Control: tags -1 + pending On Tue, Oct 01, 2019 at 08:47:07PM +0200, Helmut Grohne wrote: > 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?
I've slightly updated the previous .debdiff and uploaded it to delayed/10. It'll target experimental first to clear NEW. I'll upload to unstable afterwards. Please tell if I should delay it any longer. I'm attaching the updated .debdiff. Helmut
diff --minimal -Nru vala-0.46.5/debian/changelog vala-0.46.5/debian/changelog --- vala-0.46.5/debian/changelog 2019-11-19 10:42:51.000000000 +0100 +++ vala-0.46.5/debian/changelog 2019-12-10 16:34:29.000000000 +0100 @@ -1,3 +1,11 @@ +vala (0.46.5-1.1) experimental; urgency=medium + + * Non-maintainer upload. + * Move valac to a M-A:foreign package and add cross wrappers. (Closes: + #889925) + + -- Helmut Grohne <hel...@subdivi.de> Tue, 10 Dec 2019 16:34:29 +0100 + vala (0.46.5-1) unstable; urgency=medium * New upstream release diff --minimal -Nru vala-0.46.5/debian/control vala-0.46.5/debian/control --- vala-0.46.5/debian/control 2019-11-19 10:42:51.000000000 +0100 +++ vala-0.46.5/debian/control 2019-12-10 16:34:29.000000000 +0100 @@ -24,12 +24,53 @@ Vcs-Browser: https://salsa.debian.org/gnome-team/vala Homepage: https://wiki.gnome.org/Projects/Vala/ +Package: libvalacodegen-0.46-0 +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.5-1.1~) +Replaces: valac (<< 0.46.5-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 library. 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-0 (= ${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.5-1.1~) +Replaces: valac (<< 0.46.5-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-0 (= ${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, @@ -118,6 +159,7 @@ Architecture: any Depends: ${shlibs:Depends}, libvaladoc-0.46-0 (= ${binary:Version}), + libvalacodegen-0.46-0 (= ${binary:Version}), valac (= ${binary:Version}), ${misc:Depends} Multi-Arch: foreign @@ -132,6 +174,7 @@ Multi-Arch: same Depends: ${shlibs:Depends}, libvala-0.46-0 (= ${binary:Version}), + libvalacodegen-0.46-0 (= ${binary:Version}), ${misc:Depends}, libvaladoc-0.46-data Description: API documentation generator for vala (library) diff --minimal -Nru vala-0.46.5/debian/control.in vala-0.46.5/debian/control.in --- vala-0.46.5/debian/control.in 2019-11-19 10:42:51.000000000 +0100 +++ vala-0.46.5/debian/control.in 2019-12-10 16:34:29.000000000 +0100 @@ -20,12 +20,53 @@ Vcs-Browser: https://salsa.debian.org/gnome-team/vala Homepage: https://wiki.gnome.org/Projects/Vala/ +Package: libvalacodegen-0.46-0 +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.5-1.1~) +Replaces: valac (<< 0.46.5-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 library. 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-0 (= ${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.5-1.1~) +Replaces: valac (<< 0.46.5-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-0 (= ${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, @@ -114,6 +155,7 @@ Architecture: any Depends: ${shlibs:Depends}, libvaladoc-0.46-0 (= ${binary:Version}), + libvalacodegen-0.46-0 (= ${binary:Version}), valac (= ${binary:Version}), ${misc:Depends} Multi-Arch: foreign @@ -128,6 +170,7 @@ Multi-Arch: same Depends: ${shlibs:Depends}, libvala-0.46-0 (= ${binary:Version}), + libvalacodegen-0.46-0 (= ${binary:Version}), ${misc:Depends}, libvaladoc-0.46-data Description: API documentation generator for vala (library) diff --minimal -Nru vala-0.46.5/debian/libvalacodegen-0.46-0.install vala-0.46.5/debian/libvalacodegen-0.46-0.install --- vala-0.46.5/debian/libvalacodegen-0.46-0.install 1970-01-01 01:00:00.000000000 +0100 +++ vala-0.46.5/debian/libvalacodegen-0.46-0.install 2019-12-10 16:27:29.000000000 +0100 @@ -0,0 +1 @@ +usr/lib/*/vala-*/libvalaccodegen.so* diff --minimal -Nru vala-0.46.5/debian/rules vala-0.46.5/debian/rules --- vala-0.46.5/debian/rules 2019-11-19 10:42:51.000000000 +0100 +++ vala-0.46.5/debian/rules 2019-12-10 16:34:29.000000000 +0100 @@ -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,11 @@ 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 valac-$(VALAVER).1.gz debian/valac/usr/share/man/man1/${DEB_HOST_GNU_TYPE}-valac-$(VALAVER).1.gz + ln -s ${DEB_HOST_GNU_TYPE}-valac-$(VALAVER) debian/valac/usr/bin/${DEB_HOST_GNU_TYPE}-valac + ln -s ${DEB_HOST_GNU_TYPE}-valac-$(VALAVER).1.gz debian/valac/usr/share/man/man1/${DEB_HOST_GNU_TYPE}-valac.1.gz override_dh_missing: dh_missing --fail-missing diff --minimal -Nru vala-0.46.5/debian/valac-bin.install vala-0.46.5/debian/valac-bin.install --- vala-0.46.5/debian/valac-bin.install 1970-01-01 01:00:00.000000000 +0100 +++ vala-0.46.5/debian/valac-bin.install 2019-12-10 16:34:29.000000000 +0100 @@ -0,0 +1,4 @@ +usr/bin/vala +usr/bin/vala-0.* +usr/bin/valac* +usr/share/man/man1/valac* diff --minimal -Nru vala-0.46.5/debian/valac-bin.links vala-0.46.5/debian/valac-bin.links --- vala-0.46.5/debian/valac-bin.links 1970-01-01 01:00:00.000000000 +0100 +++ vala-0.46.5/debian/valac-bin.links 2019-11-19 10:42:51.000000000 +0100 @@ -0,0 +1 @@ +/usr/share/man/man1/valac.1.gz /usr/share/man/man1/vala.1.gz diff --minimal -Nru vala-0.46.5/debian/valac-bin.lintian-overrides vala-0.46.5/debian/valac-bin.lintian-overrides --- vala-0.46.5/debian/valac-bin.lintian-overrides 1970-01-01 01:00:00.000000000 +0100 +++ vala-0.46.5/debian/valac-bin.lintian-overrides 2019-12-10 16:34:29.000000000 +0100 @@ -0,0 +1,2 @@ +# private library only used by valac +binary-or-shlib-defines-rpath usr/bin/valac-* /usr/lib/*/vala-* diff --minimal -Nru vala-0.46.5/debian/valac.install vala-0.46.5/debian/valac.install --- vala-0.46.5/debian/valac.install 2019-11-19 10:42:51.000000000 +0100 +++ vala-0.46.5/debian/valac.install 2019-12-10 16:34:29.000000000 +0100 @@ -1,13 +1,8 @@ -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* diff --minimal -Nru vala-0.46.5/debian/valac.links vala-0.46.5/debian/valac.links --- vala-0.46.5/debian/valac.links 2019-11-19 10:42:51.000000000 +0100 +++ vala-0.46.5/debian/valac.links 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -/usr/share/man/man1/valac.1.gz /usr/share/man/man1/vala.1.gz