#!/usr/bin/make -f DEB_BUILD_MAINT_OPTIONS = hardening=+all DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/buildflags.mk include /usr/share/python/python.mk # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 include /usr/share/dpkg/architecture.mk ifeq ($(filter stage1,$(DEB_STAGE))$(filter nopython,$(DEB_BUILD_PROFILES)),) PYVERS := $(shell pyversions -vs) PY3VERS := $(shell py3versions -vs) DH_WITH_PARAMETERS := python2,python3 # python2.7 export PYTHONPATH:=/usr/lib/python2.7/plat-$(DEB_HOST_MULTIARCH)$(if $(PYTHONPATH),:$(PYTHONPATH)) # python3.X, see pybuild for their meaning. export _PYTHON_HOST_PLATFORM:=$(DEB_HOST_ARCH_OS)-$(DEB_HOST_ARCH) export _PYTHON_SYSCONFIGDATA_NAME:=_sysconfigdata_m_$(DEB_HOST_ARCH_OS)_$(DEB_HOST_MULTIARCH) else NOPYTHON_OPTIONS = -Npython-cracklib -Npython3-cracklib DH_WITH_PARAMETERS := endif ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) CRACKLIB_PACKER=$(CURDIR)/debian/buildtmp/base/util/cracklib-packer else CRACKLIB_PACKER=/usr/sbin/cracklib-packer endif override_dh_auto_configure: aclocal && libtoolize && automake --add-missing && autoreconf mkdir -p $(CURDIR)/debian/buildtmp/base cd $(CURDIR)/debian/buildtmp/base; \ $(CURDIR)/configure \ --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=/usr --disable-rpath --without-python \ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ --with-default-dict=/var/cache/cracklib/cracklib_dict \ CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" for i in $(PYVERS) $(PY3VERS); do \ mkdir -p $(CURDIR)/debian/buildtmp/python$$i; \ cd $(CURDIR)/debian/buildtmp/python$$i; \ $(CURDIR)/configure \ --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=/usr --disable-rpath \ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ --with-default-dict=/var/cache/cracklib/cracklib_dict \ PYTHON_PREFIX=$(call py_builddir_sh,$$i) \ PYTHON=/usr/bin/python$$i \ CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"; \ done override_dh_auto_build: $(MAKE) -C $(CURDIR)/debian/buildtmp/base ifeq ($(filter stage1,$(DEB_STAGE))$(filter nopython,$(DEB_BUILD_PROFILES)),) ln -s $(CURDIR)/debian/crack.py $(CURDIR)/python; \ for i in $(PYVERS) $(PY3VERS); do \ cd $(CURDIR)/debian/buildtmp/python$$i; \ rm -rf lib; ln -s $(CURDIR)/debian/buildtmp/base/lib lib; \ cd python; \ CFLAGS="-I$(CURDIR)/lib $(CFLAGS)" LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)" python$$i setup.py build ; \ done endif docbook2html -o debian/doc --nochunks debian/libcrack2.xml docbook2html -o debian/doc --nochunks debian/cracklib-runtime.xml override_dh_auto_test: ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) mkdir $(CURDIR)/debian/tmp ifeq ($(filter stage1,$(DEB_STAGE))$(filter nopython,$(DEB_BUILD_PROFILES))$(filter nocheck,$(DEB_BUILD_OPTIONS)),) $(CRACKLIB_PACKER) $(CURDIR)/debian/tmp/cracklib_dict < \ $(CURDIR)/dicts/cracklib-small for i in $(PYVERS) $(PY3VERS); do \ cd $(CURDIR)/debian/buildtmp/python$$i/python/$(call py_builddir_sh,$$i); \ LD_LIBRARY_PATH=$(CURDIR)/debian/buildtmp/base/lib/.libs python$$i \ -c 'import cracklib; cracklib.test(dictpath="$(CURDIR)/debian/tmp/cracklib_dict")'; \ done endif endif override_dh_auto_clean: rm -rf debian/buildtmp rm -rf debian/doc if [ -f Makefile ]; then $(MAKE) clean; fi if [ -f Makefile ]; then $(MAKE) distclean; fi # remove files created or modified by autogen.sh rm -f config.guess config.sub Makefile.in aclocal.m4 configure \ dicts/Makefile.in doc/Makefile.in lib/Makefile.in m4/Makefile.in \ py-compile python/Makefile.in util/Makefile.in ltmain.sh \ m4/ltoptions.m4 m4/ltversion.m4 m4/libtool.m4 m4/ltsugar.m4 \ m4/lt~obsolete.m4 compile # remove files created or changed by build rm -rf python/crack.py python/cracklib.egg-info dh_auto_clean override_dh_auto_install: $(MAKE) -C $(CURDIR)/debian/buildtmp/base DESTDIR=$(CURDIR)/debian/libcrack2 install # copy files for libcrack2-udeb mkdir -p $(CURDIR)/debian/libcrack2-udeb/usr/lib/$(DEB_HOST_MULTIARCH) \ $(CURDIR)/debian/libcrack2-udeb/usr/share/locale \ $(CURDIR)/debian/libcrack2-udeb/var/cache/cracklib cp -P $(CURDIR)/debian/libcrack2/usr/lib/$(DEB_HOST_MULTIARCH)/*.so.* \ $(CURDIR)/debian/libcrack2-udeb/usr/lib/$(DEB_HOST_MULTIARCH) cp -r $(CURDIR)/debian/libcrack2/usr/share/locale/* \ $(CURDIR)/debian/libcrack2-udeb/usr/share/locale $(CRACKLIB_PACKER) $(CURDIR)/debian/libcrack2-udeb/var/cache/cracklib/cracklib_dict < \ $(CURDIR)/dicts/cracklib-small # move files to libcrack2-dev mkdir -p $(CURDIR)/debian/libcrack2-dev/usr/lib/$(DEB_HOST_MULTIARCH) mv $(CURDIR)/debian/libcrack2/usr/include \ $(CURDIR)/debian/libcrack2-dev/usr mv $(CURDIR)/debian/libcrack2/usr/lib/$(DEB_HOST_MULTIARCH)/*.a \ $(CURDIR)/debian/libcrack2-dev/usr/lib/$(DEB_HOST_MULTIARCH) # move files to cracklib-runtime mkdir -p $(CURDIR)/debian/cracklib-runtime/usr/share/dict mv $(CURDIR)/debian/libcrack2/usr/sbin \ $(CURDIR)/debian/cracklib-runtime/usr mv $(CURDIR)/debian/libcrack2/usr/share/cracklib/cracklib-small \ $(CURDIR)/debian/cracklib-runtime/usr/share/dict # remove unused files rm -f $(CURDIR)/debian/libcrack2/usr/lib/$(DEB_HOST_MULTIARCH)/*.la \ $(CURDIR)/debian/libcrack2/usr/lib/$(DEB_HOST_MULTIARCH)/libcrack.so rm -rf $(CURDIR)/debian/libcrack2/usr/share/cracklib chrpath -d \ $(CURDIR)/debian/cracklib-runtime/usr/sbin/cracklib-check \ $(CURDIR)/debian/cracklib-runtime/usr/sbin/cracklib-packer \ $(CURDIR)/debian/cracklib-runtime/usr/sbin/cracklib-unpacker ifeq ($(filter stage1,$(DEB_STAGE))$(filter nopython,$(DEB_BUILD_PROFILES)),) for i in $(PYVERS); do \ cd $(CURDIR)/debian/buildtmp/python$$i/python; \ python$$i setup.py install --install-layout=deb --root $(CURDIR)/debian/python-cracklib; \ done for i in $(PY3VERS); do \ cd $(CURDIR)/debian/buildtmp/python$$i/python; \ python$$i setup.py install --install-layout=deb --root $(CURDIR)/debian/python3-cracklib; \ done endif override_dh_link: dh_link -plibcrack2-dev usr/lib/$(DEB_HOST_MULTIARCH)/libcrack.so.2 \ usr/lib/$(DEB_HOST_MULTIARCH)/libcrack.so dh_link override_dh_installchangelogs: dh_installchangelogs NEWS ifeq ($(filter stage1,$(DEB_STAGE))$(filter nopython,$(DEB_BUILD_PROFILES)),) override_dh_python2: dh_python2 -ppython-cracklib override_dh_python3: dh_python3 -ppython3-cracklib endif %: dh $@ --with=$(DH_WITH_PARAMETERS) $(NOPYTHON_OPTIONS)