Bug#889925: valac is unusable for cross-compilation
Helmut Grohne
helmut at subdivi.de
Tue Dec 10 21:36:23 GMT 2019
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
-------------- next part --------------
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 <helmut at 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
More information about the pkg-gnome-maintainers
mailing list