[Debian-med-packaging] Bug#989367: libace-perl FTCBFS -- multiple reasons
Nilesh Patra
nilesh at debian.org
Tue Jun 1 21:42:55 BST 2021
Package: libace-perl
Version: 1.92-10
Severity: normal
X-Debbugs-Cc: nilesh at debian.org
Dear Maintainer,
libace-erl fails to cross build from source:
a) It uses build compiler and linker instead of host compiler at various
places
b) It uses the triplet of build compiler for installation
The patch attached below fixes the problem. I'll also commit this to
salsa shortly after filing this bug report, so we can upload this after
bullseye release.
-- System Information:
Debian Release: bullseye/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 5.7.0-2-amd64 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages libace-perl depends on:
ii libc6 2.31-3
pn libcache-cache-perl <none>
ii perl 5.30.3-4
pn perlapi-5.32.1 <none>
Versions of packages libace-perl recommends:
ii libcgi-pm-perl 4.50-1
ii libgd-perl 2.72-2
libace-perl suggests no packages.
-------------- next part --------------
commit 7afbb565e411547d921be65713504659e58ca46f
Author: Nilesh Patra <nilesh at debian.org>
Date: Wed Jun 2 02:08:15 2021 +0530
d/p/cross.patch,d/rules,d/control: Make build cross buildable
diff --git a/debian/control b/debian/control
index 483b0af..e696474 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,8 @@ Section: perl
Testsuite: autopkgtest-pkg-perl
Priority: optional
Build-Depends: debhelper-compat (= 13),
- libtirpc-dev
+ libtirpc-dev,
+ perl-xs-dev
Standards-Version: 4.5.1
Vcs-Browser: https://salsa.debian.org/med-team/libace-perl
Vcs-Git: https://salsa.debian.org/med-team/libace-perl.git
diff --git a/debian/patches/cross.patch b/debian/patches/cross.patch
new file mode 100644
index 0000000..7d9505f
--- /dev/null
+++ b/debian/patches/cross.patch
@@ -0,0 +1,78 @@
+Description: Use host compiler and linker instead of build compiler
+Author: Nilesh Patra <nilesh at debian.org>
+Last-Update: 2021-06-01
+--- a/acelib/Makefile
++++ b/acelib/Makefile
+@@ -2,6 +2,7 @@
+ false = 0
+ RANLIB_NEEDED = true # default overridable in $(ACEDB_MACHINE)_DEF
+ AR_OPTIONS = rlu # default overridable in $(ACEDB_MACHINE)_DEF
++AR = ar
+
+ RPCGEN_FLAGS = -I -K -1
+ # -I -K -1 good for alpha
+@@ -42,7 +43,7 @@
+ ## Different platforms use CC or COMPILE.c
+ # (USEROPTS - see comments at top of file)
+ #
+-CC = $(COMPILER) $(CFLAGS) $(CPPFLAGS) $(USEROPTS) $(IDIR) -D$(NAME) -c
++CC_compile = $(COMPILER) $(CFLAGS) $(CPPFLAGS) $(USEROPTS) $(IDIR) -D$(NAME) -c
+ COMPILE.c = $(COMPILER) $(CFLAGS) $(CPPFLAGS) $(USEROPTS) $(IDIR) -D$(NAME) -c
+
+ ###########################################################
+@@ -63,11 +64,11 @@
+ ################## libraries #########################
+
+ libaceperl.a : $(FREE_OBJS) aceclientlib.o rpcace_clnt.o rpcace_xdr.o
+- ar $(AR_OPTIONS) $@ $?
++ $(AR) $(AR_OPTIONS) $@ $?
+ if ( $(RANLIB_NEEDED) ) then ranlib $@; fi
+
+ libfree.a : $(FREE_OBJS)
+- ar $(AR_OPTIONS) libfree.a $?
++ $(AR) $(AR_OPTIONS) libfree.a $?
+ if ( $(RANLIB_NEEDED) ) then ranlib libfree.a; fi
+
+ #########################################
+@@ -87,7 +88,7 @@
+ LIBACE_OBJS = $(GENERIC_ACE_OBJS) $(GENERIC_ACE_NONGRAPH_OBJS) aceversion.o
+
+ libace.a : $(LIBACE_OBJS)
+- ar $(AR_OPTIONS) libace.a $?
++ $(AR) $(AR_OPTIONS) libace.a $?
+ if ( $(RANLIB_NEEDED) ) then ranlib libace.a; fi
+
+ ######################################################
+@@ -106,7 +107,7 @@
+ rpcace_sp.o: rpcace_sp.c rpcace_svc.c
+
+ aceclientlib.o: aceclientlib.c rpcace.h
+- $(CC) $(LDFLAGS) -c $<
++ $(CC_compile) $(LDFLAGS) -c $<
+
+ RPC_CLIENT_OBJS = aceclientlib.o rpcace_clnt.o rpcace_xdr.o
+ RPC_SERVER_OBJS = rpcace_sp.o rpcace_xdr.o
+@@ -114,7 +115,7 @@
+ RPC_X_CLIENT_OBJS = xclient.o aceclientlib.o rpcace_clnt.o rpcace_xdr.o
+
+ libacecl.a : aceclientlib.o rpcace_clnt.o rpcace_xdr.o
+- ar $(AR_OPTIONS) libacecl.a $?
++ $(AR) $(AR_OPTIONS) libacecl.a $?
+ if ( $(RANLIB_NEEDED) ) then ranlib libacecl.a; fi
+
+ ###########################################################
+--- a/acelib/wmake/LINUX_DEF
++++ b/acelib/wmake/LINUX_DEF
+@@ -15,9 +15,10 @@
+ ##### following the explanations given in wmake/truemake #####
+ #################################################################
+
++CC = gcc
+ NAME = LINUX
+-COMPILER = gcc -g -Wall -O2 -DACEDB4
+-LINKER = gcc -g
++COMPILER = $(CC) -g -Wall -O2 -DACEDB4
++LINKER = $(CC) -g
+ USEROPTS=-fPIC
+
+ LIBS = -lm
diff --git a/debian/patches/series b/debian/patches/series
index 1baabf4..a794d09 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@ parallel-ftbfs.patch
defined_hash_array.patch
libtirpc.patch
hardening.patch
+cross.patch
diff --git a/debian/rules b/debian/rules
index b017896..254dd35 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,6 +5,10 @@ PACKAGE = $(shell dh_listpackages)
TMP = $(CURDIR)/debian/$(PACKAGE)
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+include /usr/share/dpkg/buildtools.mk
+include /usr/share/dpkg/architecture.mk
+PERLVER := $(shell perl -MConfig -e 'print $$Config{version}')
+ARCHLIB := $(shell perl -I/usr/lib/$(DEB_HOST_MULTIARCH)/perl/cross-config-$(PERLVER) -MConfig -e 'print $$Config{vendorarch}')
%:
dh $@
@@ -27,8 +31,9 @@ override_dh_auto_build:
# Directory for the acebrowser CGI scripts (~username ok): [/usr/local/apache/cgi-bin/ace]
# Directory does not exist. Shall I create it for you? [y]
# Directory for the acebrowser HTML files and images (~username ok): [/usr/local/apache/htdocs/ace]
- perl -e "print qq(3\ny\n$(CURDIR)/debian/$(PACKAGE)/etc/libace-perl\ny\n$(CURDIR)/debian/$(PACKAGE)/usr/lib/cgi-bin\ny\n$(CURDIR)/debian/$(PACKAGE)/usr/share/$(PACKAGE))" | $(PERL) Makefile.PL INSTALLDIRS=vendor
- dh_auto_build -- OPTIMIZE="$(CFLAGS)" LD_RUN_PATH="" OTHERLDFLAGS="$(LDFLAGS)"
+ perl -e "print qq(3\ny\n$(CURDIR)/debian/$(PACKAGE)/etc/libace-perl\ny\n$(CURDIR)/debian/$(PACKAGE)/usr/lib/cgi-bin\ny\n$(CURDIR)/debian/$(PACKAGE)/usr/share/$(PACKAGE))" | $(PERL) Makefile.PL \
+ INSTALLDIRS=vendor CC=$(CC) LD=$(CC) INSTALLVENDORARCH=$(ARCHLIB) INSTALLARCHLIB=$(ARCHLIB)
+ dh_auto_build --buildsystem=makefile -- OPTIMIZE="$(CFLAGS)" LD_RUN_PATH="" OTHERLDFLAGS="$(LDFLAGS)"
override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
More information about the Debian-med-packaging
mailing list