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*