Source: cracklib2
Version: 2.9.6-3
Severity: important
Tags: patch
User: debian-cr...@lists.debian.org
Usertags: ftcbfs

cracklib2 fails to cross build from source, because the cross building
support was removed in the most recent upload. It did break python3.8,
because 3.8 dropped an "m" after _sysconfigdata_. I understand that
python's cross build APIs are less than ideal, but cracklib2 is relevant
to bootstrapping and thus needs to support cross building. Here is a
patch to add the support back in a way that is compatible with 3.8.

Helmut
diff --minimal -Nru cracklib2-2.9.6/debian/changelog 
cracklib2-2.9.6/debian/changelog
--- cracklib2-2.9.6/debian/changelog    2019-10-23 13:02:23.000000000 +0200
+++ cracklib2-2.9.6/debian/changelog    2019-10-25 15:56:49.000000000 +0200
@@ -1,3 +1,10 @@
+cracklib2 (2.9.6-3.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: Revert removal of _PYTHON_* variables.
+
+ -- Helmut Grohne <hel...@subdivi.de>  Fri, 25 Oct 2019 15:56:49 +0200
+
 cracklib2 (2.9.6-3) unstable; urgency=medium
 
   * Fix "fails to build Python 3.8 extensions" by removing the
diff --minimal -Nru cracklib2-2.9.6/debian/rules cracklib2-2.9.6/debian/rules
--- cracklib2-2.9.6/debian/rules        2019-10-23 13:02:23.000000000 +0200
+++ cracklib2-2.9.6/debian/rules        2019-10-25 15:56:49.000000000 +0200
@@ -33,6 +33,8 @@
                --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
                --with-default-dict=/var/cache/cracklib/cracklib_dict \
                CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
+       # The _PYTHON_* asssignments are required for cross building. Don't
+       # delete them unless you verify that cross building keeps working.
        set -e; \
        for i in $(PY3VERS); do \
                mkdir -p $(CURDIR)/debian/buildtmp/python$$i; \
@@ -42,6 +44,8 @@
                        --prefix=/usr --disable-rpath \
                        --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
                        --with-default-dict=/var/cache/cracklib/cracklib_dict \
+                       
_PYTHON_HOST_PLATFORM=$(DEB_HOST_ARCH_OS)-$(DEB_HOST_GNU_CPU) \
+                       _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$$(test "$$i" 
= 3.7 && echo m)_$(DEB_HOST_ARCH_OS)_$(DEB_HOST_MULTIARCH) \
                        PYTHON_PREFIX=$(call py_builddir_sh,$$i) \
                        PYTHON=/usr/bin/python$$i \
                        CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" 
LDFLAGS="$(LDFLAGS)"; \
@@ -56,6 +60,8 @@
                cd $(CURDIR)/debian/buildtmp/python$$i; \
                rm -rf lib; ln -s $(CURDIR)/debian/buildtmp/base/lib lib; \
                cd python; \
+               _PYTHON_HOST_PLATFORM=$(DEB_HOST_ARCH_OS)-$(DEB_HOST_GNU_CPU) \
+               _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$$(test "$$i" = 3.7 
&& echo m)_$(DEB_HOST_ARCH_OS)_$(DEB_HOST_MULTIARCH) \
                CFLAGS="-I$(CURDIR)/lib $(CFLAGS)" LDFLAGS="$(LDFLAGS)" 
CPPFLAGS="$(CPPFLAGS)" python$$i setup.py build ; \
        done
 endif
@@ -71,6 +77,8 @@
        set -e; \
        for i in $(PY3VERS); do \
                cd $(CURDIR)/debian/buildtmp/python$$i/python/$(call 
py_builddir_sh,$$i); \
+               _PYTHON_HOST_PLATFORM=$(DEB_HOST_ARCH_OS)-$(DEB_HOST_GNU_CPU) \
+               _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$$(test "$$i" = 3.7 
&& echo m)_$(DEB_HOST_ARCH_OS)_$(DEB_HOST_MULTIARCH) \
                LD_LIBRARY_PATH=$(CURDIR)/debian/buildtmp/base/lib/.libs 
python$$i \
                -c 'import cracklib; 
cracklib.test(dictpath="$(CURDIR)/debian/tmp/cracklib_dict")'; \
        done
@@ -129,6 +137,8 @@
        set -e; \
        for i in $(PY3VERS); do \
                cd $(CURDIR)/debian/buildtmp/python$$i/python; \
+               _PYTHON_HOST_PLATFORM=$(DEB_HOST_ARCH_OS)-$(DEB_HOST_ARCH) \
+               _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$$(test "$$i" = 3.7 
&& echo m)_$(DEB_HOST_ARCH_OS)_$(DEB_HOST_MULTIARCH) \
                python$$i setup.py install --install-layout=deb --root 
$(CURDIR)/debian/python3-cracklib; \
        done
 endif

Reply via email to