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