Control: tags -1 + patch

Hi,

On Thu, Jul 04, 2019 at 12:44:59AM +0200, Helmut Grohne wrote:
> Let me try to summarize consensus:
> 
>  * There should be an implementation-detail package called valac-bin.
>  * valac-bin should be Multi-Arch: foreign.
>  * valac-bin should contain the (versioned) valac executable
>  * valac should depend on valac-bin.
>  * valac should ship a /usr/bin/${DEB_HOST_GNU_TYPE}-valac wrapper
>    script.

Lacking further input, I've now implemented the consensus in a minimal
way.

I am introducing another package libvalacodegen-0.46. It contains
libvalacodegen.so, because both /usr/bin/valac and /usr/bin/vapigen link
it. For the latter, we're not yet sure whether it should be M-A:foreign
and the question does not currently seem relevant. Still that means that
libvalacodegen.so can reside in neither valac nor valac-bin. I'm adding
another M-A:same package for it.

Apart from that I am closely sticking to the consensus. In particular,
everything that used to work with the old valac package continues to
work, because it depends on all packages that received files from it.

Do you see any issus with this approach?

Helmut
diff --minimal -Nru vala-0.46.1/debian/changelog vala-0.46.1/debian/changelog
--- vala-0.46.1/debian/changelog        2019-09-16 09:17:15.000000000 +0200
+++ vala-0.46.1/debian/changelog        2019-09-30 21:01:59.000000000 +0200
@@ -1,3 +1,11 @@
+vala (0.46.1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Move valac to a M-A:foreign package and add cross wrappers. (Closes:
+    #889925)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Mon, 30 Sep 2019 21:01:59 +0200
+
 vala (0.46.1-1) unstable; urgency=medium
 
   * New upstream release
diff --minimal -Nru vala-0.46.1/debian/control vala-0.46.1/debian/control
--- vala-0.46.1/debian/control  2019-09-16 09:17:15.000000000 +0200
+++ vala-0.46.1/debian/control  2019-09-30 21:01:59.000000000 +0200
@@ -24,12 +24,53 @@
 Vcs-Browser: https://salsa.debian.org/gnome-team/vala
 Homepage: https://wiki.gnome.org/Projects/Vala/
 
+Package: libvalacodegen-0.46
+Architecture: any
+Multi-Arch: same
+Depends: ${shlibs:Depends},
+         ${misc:Depends},
+Conflicts: valac-0.12, valac-0.14, valac-0.16, valac-0.18, valac-0.20,
+           valac-0.22, valac-0.24, valac-0.26, valac-0.28, valac-0.30
+Breaks: valac (<< 0.46.1-1.1~)
+Replaces: valac (<< 0.46.1-1.1~)
+Description: internal package for C# like language for the GObject system
+ Vala is a new programming language that aims to bring modern programming
+ language features to GNOME developers without imposing any additional
+ runtime requirements and without using a different ABI compared to
+ applications and libraries written in C.
+ .
+ This package contains the libvalacodegen shared libary. It should not normally
+ be used directly.
+
+Package: valac-bin
+Architecture: any
+Multi-Arch: foreign
+Depends: ${shlibs:Depends},
+         libvala-0.46-0 (= ${binary:Version}),
+         libvalacodegen-0.46 (= ${binary:Version}),
+         ${misc:Depends},
+Conflicts: valac-0.12, valac-0.14, valac-0.16, valac-0.18, valac-0.20,
+           valac-0.22, valac-0.24, valac-0.26, valac-0.28, valac-0.30
+Breaks: valac (<< 0.46.1-1.1~)
+Replaces: valac (<< 0.46.1-1.1~)
+Description: internal package for C# like language for the GObject system
+ Vala is a new programming language that aims to bring modern programming
+ language features to GNOME developers without imposing any additional
+ runtime requirements and without using a different ABI compared to
+ applications and libraries written in C.
+ .
+ This particular package is an implementation detail of the vala packaging.
+ It should not be installed directly and there should be no dependencies
+ on it. Refer to the valac package instead.
+
 Package: valac
 Architecture: any
 Depends: ${shlibs:Depends},
          libvala-0.46-0 (= ${binary:Version}),
+         libvalacodegen-0.46 (= ${binary:Version}),
          libglib2.0-dev (>= 2.48),
          valac-0.46-vapi,
+         valac-bin (= ${binary:Version}),
          ${misc:Depends}
 Recommends: gcc
 Conflicts: valac-0.12, valac-0.14, valac-0.16, valac-0.18, valac-0.20,
diff --minimal -Nru vala-0.46.1/debian/control.in vala-0.46.1/debian/control.in
--- vala-0.46.1/debian/control.in       2019-09-16 09:17:15.000000000 +0200
+++ vala-0.46.1/debian/control.in       2019-09-30 21:01:59.000000000 +0200
@@ -20,12 +20,53 @@
 Vcs-Browser: https://salsa.debian.org/gnome-team/vala
 Homepage: https://wiki.gnome.org/Projects/Vala/
 
+Package: libvalacodegen-0.46
+Architecture: any
+Multi-Arch: same
+Depends: ${shlibs:Depends},
+         ${misc:Depends},
+Conflicts: valac-0.12, valac-0.14, valac-0.16, valac-0.18, valac-0.20,
+           valac-0.22, valac-0.24, valac-0.26, valac-0.28, valac-0.30
+Breaks: valac (<< 0.46.1-1.1~)
+Replaces: valac (<< 0.46.1-1.1~)
+Description: internal package for C# like language for the GObject system
+ Vala is a new programming language that aims to bring modern programming
+ language features to GNOME developers without imposing any additional
+ runtime requirements and without using a different ABI compared to
+ applications and libraries written in C.
+ .
+ This package contains the libvalacodegen shared libary. It should not normally
+ be used directly.
+
+Package: valac-bin
+Architecture: any
+Multi-Arch: foreign
+Depends: ${shlibs:Depends},
+         libvala-0.46-0 (= ${binary:Version}),
+         libvalacodegen-0.46 (= ${binary:Version}),
+         ${misc:Depends},
+Conflicts: valac-0.12, valac-0.14, valac-0.16, valac-0.18, valac-0.20,
+           valac-0.22, valac-0.24, valac-0.26, valac-0.28, valac-0.30
+Breaks: valac (<< 0.46.1-1.1~)
+Replaces: valac (<< 0.46.1-1.1~)
+Description: internal package for C# like language for the GObject system
+ Vala is a new programming language that aims to bring modern programming
+ language features to GNOME developers without imposing any additional
+ runtime requirements and without using a different ABI compared to
+ applications and libraries written in C.
+ .
+ This particular package is an implementation detail of the vala packaging.
+ It should not be installed directly and there should be no dependencies
+ on it. Refer to the valac package instead.
+
 Package: valac
 Architecture: any
 Depends: ${shlibs:Depends},
          libvala-0.46-0 (= ${binary:Version}),
+         libvalacodegen-0.46 (= ${binary:Version}),
          libglib2.0-dev (>= 2.48),
          valac-0.46-vapi,
+         valac-bin (= ${binary:Version}),
          ${misc:Depends}
 Recommends: gcc
 Conflicts: valac-0.12, valac-0.14, valac-0.16, valac-0.18, valac-0.20,
diff --minimal -Nru vala-0.46.1/debian/libvalacodegen-0.46.install 
vala-0.46.1/debian/libvalacodegen-0.46.install
--- vala-0.46.1/debian/libvalacodegen-0.46.install      1970-01-01 
01:00:00.000000000 +0100
+++ vala-0.46.1/debian/libvalacodegen-0.46.install      2019-09-30 
21:01:59.000000000 +0200
@@ -0,0 +1 @@
+usr/lib/*/vala-*/libvalaccodegen.so*
diff --minimal -Nru vala-0.46.1/debian/rules vala-0.46.1/debian/rules
--- vala-0.46.1/debian/rules    2019-09-16 09:17:15.000000000 +0200
+++ vala-0.46.1/debian/rules    2019-09-30 21:01:59.000000000 +0200
@@ -3,6 +3,8 @@
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 export DEB_LDFLAGS_MAINT_APPEND = -Wl,-O1 -Wl,-z,defs -Wl,--as-needed
 export DEB_CFLAGS_MAINT_APPEND = -Wall
+include /usr/share/dpkg/architecture.mk
+include /usr/share/dpkg/pkg-info.mk
 
 DEB_PARALLEL_JOBS = $(patsubst parallel=%,%,$(filter 
parallel=%,$(DEB_BUILD_OPTIONS)))
 ifneq (,$(DEB_PARALLEL_JOBS))
@@ -11,6 +13,9 @@
 DEB_MAKE_PARALLEL =
 endif
 
+VALAVER = $(shell echo '$(DEB_VERSION_UPSTREAM)' | sed -e 
's/\([0-9]\+\.[0-9]\+\).*/\1/')
+
+
 %:
        dh $@ --with gnome
 
@@ -32,13 +37,13 @@
 
 override_dh_auto_configure: bootstrap
        find -name '*.vala.stamp' -delete
-       
LD_LIBRARY_PATH="$(CURDIR)/bootstrap/install/usr/lib/$(DEB_HOST_MULTIARCH):$(CURDIR)/bootstrap/install/usr/lib/$(DEB_HOST_MULTIARCH)/vala-0.46:$$LD_LIBRARY_PATH"
 \
+       
LD_LIBRARY_PATH="$(CURDIR)/bootstrap/install/usr/lib/$(DEB_HOST_MULTIARCH):$(CURDIR)/bootstrap/install/usr/lib/$(DEB_HOST_MULTIARCH)/vala-$(VALAVER):$$LD_LIBRARY_PATH"
 \
                dh_auto_configure -- \
                        VALAC="$(CURDIR)/bootstrap/install/usr/bin/valac" \
                        --enable-unversioned
 
 override_dh_auto_build:
-       
LD_LIBRARY_PATH="$(CURDIR)/bootstrap/install/usr/lib/$(DEB_HOST_MULTIARCH):$(CURDIR)/bootstrap/install/usr/lib/$(DEB_HOST_MULTIARCH)/vala-0.46:$$LD_LIBRARY_PATH"
 \
+       
LD_LIBRARY_PATH="$(CURDIR)/bootstrap/install/usr/lib/$(DEB_HOST_MULTIARCH):$(CURDIR)/bootstrap/install/usr/lib/$(DEB_HOST_MULTIARCH)/vala-$(VALAVER):$$LD_LIBRARY_PATH"
 \
                dh_auto_build
 
 # Make testsuite failures non-fatal for these architectures. The DBus
@@ -56,6 +61,9 @@
 override_dh_install:
        find debian -name '*.la' -print -delete
        dh_install
+       printf '#!/bin/sh\nexec valac-$(VALAVER) 
"--cc=$${CC:-${DEB_HOST_GNU_TYPE}-gcc}" 
"--pkg-config=$${PKG_CONFIG:-${DEB_HOST_GNU_TYPE}-pkg-config}" "$$@"\n' > 
debian/valac/usr/bin/${DEB_HOST_GNU_TYPE}-valac-$(VALAVER)
+       chmod 755 debian/valac/usr/bin/${DEB_HOST_GNU_TYPE}-valac-$(VALAVER)
+       ln -s ${DEB_HOST_GNU_TYPE}-valac-$(VALAVER) 
debian/valac/usr/bin/${DEB_HOST_GNU_TYPE}-valac
 
 override_dh_missing:
        dh_missing --fail-missing
diff --minimal -Nru vala-0.46.1/debian/valac-bin.install 
vala-0.46.1/debian/valac-bin.install
--- vala-0.46.1/debian/valac-bin.install        1970-01-01 01:00:00.000000000 
+0100
+++ vala-0.46.1/debian/valac-bin.install        2019-09-30 21:01:59.000000000 
+0200
@@ -0,0 +1,2 @@
+usr/bin/valac*
+usr/share/man/man1/valac*
diff --minimal -Nru vala-0.46.1/debian/valac.install 
vala-0.46.1/debian/valac.install
--- vala-0.46.1/debian/valac.install    2019-09-16 09:17:15.000000000 +0200
+++ vala-0.46.1/debian/valac.install    2019-09-30 21:01:59.000000000 +0200
@@ -1,13 +1,10 @@
 usr/bin/vala
 usr/bin/vala-*
 usr/bin/vala-gen-introspect*
-usr/bin/valac*
 usr/bin/vapi*
 usr/share/aclocal/
 usr/share/vala/Makefile.vapigen
 usr/share/man/man1/vala-gen-introspect*
-usr/share/man/man1/valac*
 usr/share/man/man1/vapigen*
 usr/lib/*/pkgconfig/vapigen*.pc
 usr/lib/*/vala-*/gen-introspect-*
-usr/lib/*/vala-*/libvalaccodegen.so*

Reply via email to