From: Peter Michael Green Date: Thu, 24 Aug 2017 21:06:22 +0000 (+0000) Subject: Manual merge of version 3.10.3-1+rpi1 and 3.10.3-3 to produce 3.10.3-3+rpi1 X-Git-Tag: archive/raspbian/3.10.3-3+rpi1~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d476626ca7b5bf8dd5d22fb9ef01adc5300c93d4;p=atlas.git Manual merge of version 3.10.3-1+rpi1 and 3.10.3-3 to produce 3.10.3-3+rpi1 --- d476626ca7b5bf8dd5d22fb9ef01adc5300c93d4 diff --cc debian/changelog index 3561ad6,28ac7c4..c8bd4b8 --- a/debian/changelog +++ b/debian/changelog @@@ -1,12 -1,70 +1,80 @@@ - atlas (3.10.3-1+rpi1) stretch-staging; urgency=medium ++atlas (3.10.3-3+rpi1) buster-staging; urgency=medium + + [changes brought forward from 3.10.2-6+rpi1 by Peter Michael Green at Wed, 07 Jan 2015 01:41:03 +0000] + * Use generic build for raspbian. + * Make testsuite failure non-fatal + * Build some stuff for libatlas-test manually as it doesn't seem to get built + if the testsuite fails. + - -- Raspbian forward porter Thu, 25 Aug 2016 08:30:34 +0000 ++ -- Peter Michael Green Thu, 24 Aug 2017 16:04:25 +0000 ++ + atlas (3.10.3-3) unstable; urgency=medium + + * d/control: libatlas-base-dev now directly depends on libblas-dev. + This is necessary for having cblas.h under /usr/include (as was + the case before libatlas-dev was dropped). + * Add archdef for sparc64. + * d/control: mark libatlas-doc as M-A foreign. + * d/orig-tar.{sh,exclude}: fetch TexDoc subdir from git instead of CVS. + + -- Sébastien Villemot Wed, 16 Aug 2017 22:30:36 +0200 + + atlas (3.10.3-2) unstable; urgency=medium + + * “The frantic post-release package overhaul” + + [ Sébastien Villemot ] + * d/copyright: complete rewrite using machine-readable format 1.0. + * Merge libatlas-dev into libatlas-base-dev, drop the former. + * Drop useless patches: + + d/p/10_s390.diff + + d/p/17_hppa.diff + + d/p/18_alpha.diff + + d/p/20_armel.diff + + d/p/22_sh.diff + + d/p/16_warning-removed.diff + * d/p/ppc64-endianness.patch: new patch, fix machine detection on ppc64. + * d/p/fix-typos.patch: new patch. + * d/p/missing-cflags.patch: new patch. + * Drop patches for creating full BLAS and LAPACK libs, and shared libs. + Replace them by rules in debian/rules. + Also no longer embed lib(pt)?cblas.a into liblapack.a, not needed. + * d/rules: + + Rewrite and simplify using dh (drop cdbs). + + Support parallel=N in DEB_BUILD_OPTIONS. + + Support nodoc in DEB_BUILD_OPTIONS. + + Inject flags from dpkg-buildflags into the generic package. + Incidentally, this means that the noopt and nostrip flags of + DEB_BUILD_OPTIONS are now supported. (Closes: #697203) + + Do not use "-Ss flapack" option of configure, it does not work. + * d/watch: + + Bump to format version 4. Update d/orig-tar.sh to make it compatible with + the new invocation syntax. + + Add +ds suffix to orig tarball, since we're repacking it. + * d/control: + + Use canonical URL in Vcs-Browser. + + Drop Suggests on libblas-doc, superseded by liblapack-doc. + + Remove several unnecessary build-dependencies. + + Bump Standards-Version to 4.0.1. + + libatlas-test now marked priority optional, per Policy 4.0.1. + * Bump debhelper compat level to 10. + * Remove obsolete TODO. + * d/lapack-atlas.in: add Requires.private on blas. + * Custom package: + + Use DEB_BUILD_OPTIONS=custom as new interface. + By the way, no longer automatically append a changelog entry. + (Closes: #854781) + + Improve the instructions in README.Debian. + + Add -lpthread to dynamic libs and .pc file when relevant. + + Ship libpt{c,f77}blas.so when relevant. (Closes: #737834) + * armhf generic package: stop using Cortex-a7 machtype, enable VFPv3-D16. + * Add archdef for ppc64. + + [ Dimitri John Ledkov ] + * d/rules: on Ubuntu s390x set ARCHS to z12. + * d/archdefs/s390x: add IBMz12 tarball + + -- Sébastien Villemot Thu, 10 Aug 2017 18:39:08 +0200 atlas (3.10.3-1) unstable; urgency=low diff --cc debian/rules index f996027,11a303f..7f4ba0e --- a/debian/rules +++ b/debian/rules @@@ -1,187 -1,211 +1,218 @@@ #!/usr/bin/make -f - # Copyright 2008-2010 Sylvestre Ledru - include /usr/share/cdbs/1/rules/debhelper.mk + # Some ATLAS code uses improper format strings, so disable this + export DEB_BUILD_MAINT_OPTIONS=hardening=-format - # NB: the following strings and numbers come from xprint_enums (compilable from the build - # directory with "make xprint_enums); they can change across releases - # - # The trailing number in ARCHS corresponds to the instruction set (ISA): - # - 1 means no instruction set extension - # - 768 means SSE1+SSE2 (always available on amd64) + include /usr/share/dpkg/default.mk + + # Parallel make variable, used by ATLAS build system + PMAKE := make + ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + PMAKE += -j $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + endif + + GFORTRAN_LIB_PATH := $(shell $(CC) -print-search-dirs | grep ^install: | awk '{print $$2}') + + # Flags common to both the generic and custom packages + CONFIGURE_FLAGS := --prefix="$(CURDIR)/debian/tmp" \ + --incdir="$(CURDIR)/debian/tmp/usr/include/" \ + --libdir="$(CURDIR)/debian/tmp/usr/lib/" \ + --shared \ + -D c -DWALL \ + -Ss f77lib "-L$(GFORTRAN_LIB_PATH) -lgfortran -lgcc_s -lpthread" \ + -Ss pmake '$(PMAKE)' \ + -v 2 + + ifeq (,$(filter custom,$(DEB_BUILD_OPTIONS))) + # Building the generic package, so enforce more configuration settings to make + # the package independent of the build host hardware. + + # In particular, force the MACHTYPE and ISA. + # The following strings and numbers come from xprint_enums (compilable + # with "make -C build xprint_enums"). + # N.B.: They can change across releases! + + ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes)) + UBUNTU := yes + endif + + # Select the machine type ifeq ($(DEB_HOST_ARCH),s390x) - ARCHS=base_IBMz9_1 + MACHTYPE := $(if $(UBUNTU),IBMz12,IBMz9) else ifeq ($(DEB_HOST_ARCH_CPU),ppc64el) - ARCHS=base_POWER8_1 + MACHTYPE := POWER8 else ifeq ($(DEB_HOST_ARCH_CPU),i386) # See http://math-atlas.sourceforge.net/atlas_install/node32.html - ARCHS=base_x86x87_1 + MACHTYPE := x86x87 else ifeq ($(DEB_HOST_ARCH_CPU),amd64) - ARCHS=base_x86SSE2_768 - else ifeq ($(DEB_HOST_ARCH),armhf) - ARCHS=base_GENERIC_1 + MACHTYPE := x86SSE2 else - # The same as 0 (UNKNOWN), except that it does not try autodetection + # The same as UNKNOWN, except that it does not try autodetection # See debian/patches/generic.diff - ARCHS=base_GENERIC_1 + MACHTYPE := GENERIC endif - # Pointer bitwidth - MODE_BITWIDTH = $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS) - - DEB_SHLIBDEPS_INCLUDE_libatlas3-base := $(CURDIR)/debian/libatlas3-base/usr/lib/atlas-base/:$(CURDIR)/debian/libatlas3-base/usr/lib/atlas-base/atlas/ + # ISA corresponds to the instruction set architecture: + # - 1 means no instruction set extension + # - 768 means SSE1+SSE2 (always available on amd64) + # - 16384 means FPV3D16MAC (always available on armhf) + # VSX should also be enabled on ppc64el, but as of 3.10.3-2 it FTBFS. + ifeq ($(DEB_HOST_ARCH_CPU),amd64) + ISA := 768 + else ifeq ($(DEB_HOST_ARCH),armhf) -ISA := 16384 ++# Unlike Debian armhf raspbian does not require VFPV3D16, only VFPV2 ++ISA := 1 + else + ISA := 1 + endif - DEB_DH_GENCONTROL_ARGS_ALL := -- -VBuilt-Using="`dpkg-query -W -f='$${source:Package} (= $${source:Version})' liblapack-pic`" + # - the cripple-atlas-performance flag is needed for disabling the CPU + # throttling check, because on some buildds CPU throttling is enabled and we + # have no way of disabling it; + # - disable multi-threading (-t 0), because otherwise the package FTBFS on some + # single-processor machines; + # - enforce gcc as the compiler for all uses (except for compiling probes, + # in --cc), because otherwise architectural defaults do not work. + CONFIGURE_FLAGS += \ + -b $(DEB_HOST_ARCH_BITS) \ + -A $(MACHTYPE) \ + -V $(ISA) \ + -t 0 \ + --cc="$(CC)" \ + --cflags="$(CPPFLAGS) $(CFLAGS)" \ + -C acg gcc \ + -F acg "$(CPPFLAGS) $(CFLAGS)" \ + -C if gfortran \ + -F if "$(FFLAGS)" \ + -Ss ADdir ../../debian/archdefs/$(DEB_HOST_ARCH_CPU) \ + --cripple-atlas-performance - GFORTRAN_LIB_PATH=`$(CC) -print-search-dirs|grep ^install:|awk '{print $$2}'` + else + # Flags specific to the custom package - # Flags common to both the generic and custom packages - COMMON_CONFIG_PARAMS := --prefix="$(DEB_DESTDIR)" \ - --incdir="$(DEB_DESTDIR)/usr/include/" \ - --libdir="$(DEB_DESTDIR)/usr/lib/$$targetName" \ - --cc="${CC}" \ - --cflags="${CFLAGS}" \ - -D c -DWALL \ - -b $(MODE_BITWIDTH) \ - -Fa alg '-fPIC' \ - -Ss f77lib "-L$(GFORTRAN_LIB_PATH) -lgfortran -lgcc_s -lpthread" \ - -Ss pmake '$(MAKE)' \ - -Ss flapack /usr/lib/liblapack_pic.a \ - -A $$atlasArch \ - -V $$atlasISA \ - -v 2 + # Uncomment the following if the ATLAS build system still complains after you + # have set all the CPU governors to "performance" + #CONFIGURE_FLAGS += --cripple-atlas-performance + endif - # Flags used only for the generic package - # The cripple-atlas-performance flag is needed for disabling the CPU throttling - # check, because on some buildds CPU throttling is enabled and we have no way - # of disabling it. - GENERIC_CONFIG_PARAMS := \ - -t 0 \ - -Ss ADdir ../../../debian/archdefs/$(DEB_HOST_ARCH_CPU) \ - --cripple-atlas-performance - # Build a custom package optimized for the current arch - custom: custom-stamp - .PHONY: custom - custom-stamp: - rm -f configure-stamp - - ncpu=$$(LANG=C cpufreq-info | grep "analyzing CPU" -c);\ - cpu=0;\ - while test $$cpu -lt $$ncpu ; do\ - if test $$(cpufreq-info -p 2>&1 > /dev/null; echo $$?) \ - -eq 0 -a -z "$$(LANG=C cpufreq-info -p -c $$cpu | grep performance)" ; then \ - echo "frequency governor on cpu=$$cpu is not set to 'performance'"; \ - echo "run: 'sudo cpufreq-set -g performance -c cpu#' for each cpu"; \ - echo "aborting atlas build"; \ - exit 1; \ - fi; \ - cpu=$$((cpu+1)) ;\ - done - - # Here, the trick is pretty simple: - # * We don't want to build all the optimized version of Atlas. Just the - # one for the current CPU - # * We override ARCHS by base__ - # * Base is the name of the package (libatlas3-base) - # * __ is provided to have the right expression - # * the regexp will consider that atlasArch and atlasISA are empty - # therefor, leaving the choice of the optimization to Atlas - # * After that, we fall back to the normal build procedure by calling - # debian/rules itself (yep, recursively) - - # Remove all the other archs in this case - dch --local='+custom' "custom build on: `uname -a`" - LANG=C debian/rules ARCHS=base__ binary - touch $@ - - common-configure-arch common-configure-indep:: configure-stamp - configure-stamp: - dh_testdir - - set -e; \ - targetName=`echo $(ARCHS)|sed -e "s|\(.*\)_.*_.*|atlas-\1|g"`; \ - atlasArch=`echo $(ARCHS)|sed -e "s|.*_\(.*\)_.*|\1|g"`; \ - atlasISA=`echo $(ARCHS)|sed -e "s|.*_.*_\(.*\)|\1|g"`; \ - mkdir -p build/$$targetName; \ - cd build/$$targetName; \ - if test "$(ARCHS)" != "base__"; then \ - ../../configure $(COMMON_CONFIG_PARAMS) $(GENERIC_CONFIG_PARAMS); \ - else \ - ../../configure $(COMMON_CONFIG_PARAMS); \ - fi; \ - echo "Configure done. targetName = $$targetName / atlasArch = $$atlasArch / atlasISA = $$atlasISA"; \ - if test ! -s Make.inc; then echo "Configure failed: Make.inc not found"; exit 1; fi; \ - cat Make.inc |grep ARCH|head -1|awk '{print $$3}'; \ - echo "=============================================="; \ - cd - - touch $@ - - debian/blas-atlas.pc: debian/blas-atlas.pc.in - sed -e "s%@DEB_UPSTREAM_VERSION@%$(DEB_UPSTREAM_VERSION)%" < $< > $@ - - debian/lapack-atlas.pc: debian/lapack-atlas.pc.in - sed -e "s%@DEB_UPSTREAM_VERSION@%$(DEB_UPSTREAM_VERSION)%" < $< > $@ - - common-build-arch common-build-indep:: build-stamp - build-stamp: debian/blas-atlas.pc debian/lapack-atlas.pc - dh_testdir - set -e; \ - targetName=`echo $(ARCHS)|sed -e "s|\(.*\)_.*_.*|atlas-\1|g"`; \ - cd build/$$targetName; \ - $(MAKE) build; \ - $(MAKE) check || true; - test -f build/$$targetName/lib/libptcblas.a && $(MAKE) ptcheck; \ - echo "=============================================="; \ - cd ../../../ - # Do not build the help when building the custom package - if test "$(ARCHS)" != "base__"; then \ - make -C TexDoc atlas_contrib.pdf atlas_devel.pdf atlas_install.pdf cblasqref.pdf f77blasqref.pdf lapackqref.pdf; \ - fi - #build some stuff manually that is needed for libatlas-test and - #seems to not get built if the testsuite fails - cd build/atlas-base/interfaces/blas/C/testing && $(MAKE) - cd build/atlas-base/interfaces/blas/F77/testing && $(MAKE) - touch $@ - - clean:: clean-work - clean-work: - dh_testdir - dh_testroot - rm -rf build check - rm -f debian/blas-atlas.pc debian/lapack-atlas.pc - rm -f configure-stamp build-stamp - rm -f TexDoc/*.pdf - [ ! -f Makefile ] || $(MAKE) distclean - .PHONY: clean-work - - common-install-arch common-install-indep:: - dh_testdir - dh_testroot - - set -e; \ - targetName=`echo $(ARCHS)|sed -e "s|\(.*\)_.*_.*|atlas-\1|g"`; \ - cd build/$$targetName; \ - echo "make install of $$targetName to $(DEB_DESTDIR)"; \ - $(MAKE) DESTDIR=$(DEB_DESTDIR) install; \ - echo "============================================="; \ - cd - - - install/libatlas-dev:: - if test -d $(CURDIR)/debian/libatlas-dev/usr/include/; then \ - rm -rf $(CURDIR)/debian/libatlas-dev/usr/include/; \ + %: + dh $@ + + override_dh_auto_configure: + mkdir -p build/ + cd build && ../configure $(CONFIGURE_FLAGS) + @echo "==============================================" + @echo -n "Configured arch: " + @grep ARCH < build/Make.inc | head -1 | awk '{print $$3}' + @echo "==============================================" + + # Create pkgconfig files + sed -e "s%@DEB_VERSION_UPSTREAM@%$(DEB_VERSION_UPSTREAM)%" < debian/blas-atlas.pc.in > debian/blas-atlas.pc + sed -e "s%@DEB_VERSION_UPSTREAM@%$(DEB_VERSION_UPSTREAM)%" < debian/lapack-atlas.pc.in > debian/lapack-atlas.pc + + override_dh_auto_build: + make -C build + + # We do not ship the lib{s,t}atlas.so created by ATLAS build system, they have an awkward name and an incorrect SONAME + # Rather create our shared versions of individual ATLAS libraries + gfortran $(LDFLAGS) -shared -Wl,-soname=libatlas.so.3 -o libatlas.so.$(DEB_VERSION_UPSTREAM) \ + -Wl,--whole-archive build/lib/libatlas.a -Wl,--no-whole-archive \ + $$(test -f build/lib/libptcblas.a && echo -lpthread) -lc -lm + ln -sf libatlas.so.$(DEB_VERSION_UPSTREAM) libatlas.so.3 + ln -sf libatlas.so.$(DEB_VERSION_UPSTREAM) libatlas.so + + gfortran $(LDFLAGS) -shared -Wl,-soname=libcblas.so.3 -o libcblas.so.$(DEB_VERSION_UPSTREAM) \ + -Wl,--whole-archive build/lib/libcblas.a -Wl,--no-whole-archive \ + -L. -latlas -lm -lc + ln -sf libcblas.so.$(DEB_VERSION_UPSTREAM) libcblas.so.3 + ln -sf libcblas.so.$(DEB_VERSION_UPSTREAM) libcblas.so + + gfortran $(LDFLAGS) -shared -Wl,-soname=libf77blas.so.3 -o libf77blas.so.$(DEB_VERSION_UPSTREAM) \ + -Wl,--whole-archive build/lib/libf77blas.a -Wl,--no-whole-archive \ + -L. -lcblas -latlas -lm -lc + ln -sf libf77blas.so.$(DEB_VERSION_UPSTREAM) libf77blas.so.3 + ln -sf libf77blas.so.$(DEB_VERSION_UPSTREAM) libf77blas.so + + gfortran $(LDFLAGS) -shared -Wl,-soname=liblapack_atlas.so.3 -o liblapack_atlas.so.$(DEB_VERSION_UPSTREAM) \ + -Wl,--whole-archive build/lib/liblapack_atlas.a -Wl,--no-whole-archive \ + -L. -lf77blas -lcblas -latlas -lm -lc + ln -sf liblapack_atlas.so.$(DEB_VERSION_UPSTREAM) liblapack_atlas.so.3 + ln -sf liblapack_atlas.so.$(DEB_VERSION_UPSTREAM) liblapack_atlas.so + + if test -f build/lib/libptcblas.a; then \ + gfortran $(LDFLAGS) -shared -Wl,-soname=libptcblas.so.3 \ + -o libptcblas.so.$(DEB_VERSION_UPSTREAM) \ + -Wl,--whole-archive build/lib/libptcblas.a -Wl,--no-whole-archive \ + -L. -latlas -lm -lc; \ + ln -sf libptcblas.so.$(DEB_VERSION_UPSTREAM) libptcblas.so.3; \ + ln -sf libptcblas.so.$(DEB_VERSION_UPSTREAM) libptcblas.so; \ fi - mkdir -p $(CURDIR)/debian/libatlas-dev/usr/include/ - mv $(CURDIR)/debian/tmp/usr/include/*.h $(CURDIR)/debian/tmp/usr/include/atlas/ - mv $(CURDIR)/debian/tmp/usr/include/atlas $(CURDIR)/debian/libatlas-dev/usr/include/ - - install/libatlas-doc:: - if test "$(ARCHS)" != "base__"; then \ - mkdir -p $(CURDIR)/debian/libatlas-doc/usr/share/doc/libatlas-doc/; \ - cp -R $(CURDIR)/doc/* $(CURDIR)/TexDoc/*.pdf $(CURDIR)/debian/libatlas-doc/usr/share/doc/libatlas-doc/; \ - rm $(CURDIR)/debian/libatlas-doc/usr/share/doc/libatlas-doc/ChangeLog; \ + + if test -f build/lib/libptf77blas.a; then \ + gfortran $(LDFLAGS) -shared -Wl,-soname=libptf77blas.so.3 \ + -o libptf77blas.so.$(DEB_VERSION_UPSTREAM) \ + -Wl,--whole-archive build/lib/libptf77blas.a -Wl,--no-whole-archive \ + -L. -lptcblas -latlas -lm -lc; \ + ln -sf libptf77blas.so.$(DEB_VERSION_UPSTREAM) libptf77blas.so.3; \ + ln -sf libptf77blas.so.$(DEB_VERSION_UPSTREAM) libptf77blas.so; \ fi + # Create static and shared full BLAS + mkdir tmp + cd tmp && \ + ar x ../build/lib/libatlas.a && \ + if test -f ../build/lib/libptf77blas.a -a -f ../build/lib/libptcblas.a; then \ + ar x ../build/lib/libptf77blas.a && \ + ar x ../build/lib/libptcblas.a; \ + else \ + ar x ../build/lib/libf77blas.a && \ + ar x ../build/lib/libcblas.a; \ + fi + ar r libblas.a tmp/*.o + rm -rf tmp + gfortran $(LDFLAGS) -shared -Wl,-soname=libblas.so.3 -o libblas.so.$(DEB_VERSION_UPSTREAM) \ + -Wl,--whole-archive libblas.a -Wl,--no-whole-archive \ + -L. -latlas $$(test -f build/lib/libptcblas.a && echo -lpthread) -lm -lc + ln -sf libblas.so.$(DEB_VERSION_UPSTREAM) libblas.so.3 + ln -sf libblas.so.$(DEB_VERSION_UPSTREAM) libblas.so + + # Kludge to fix blas-atlas.pc by adding -lpthread when needed + if test -f build/lib/libptcblas.a; then sed -i 's/^Libs.private: \(.*\)/Libs.private: \1 -lpthread/' debian/blas-atlas.pc; fi + + # Create static and shared full LAPACK + # Note that we unpack liblapack_atlas.a after liblapack_pic.a, in order to overwrite routines in the latter + mkdir tmp + cd tmp && \ + ar x /usr/lib/liblapack_pic.a && \ + ar x ../build/lib/liblapack_atlas.a + ar r liblapack.a tmp/*.o + rm -rf tmp + gfortran $(LDFLAGS) -shared -Wl,-soname=liblapack.so.3 -o liblapack.so.$(DEB_VERSION_UPSTREAM) \ + -Wl,--whole-archive liblapack.a -Wl,--no-whole-archive \ + -L. -lblas -latlas -lm -lc + ln -sf liblapack.so.$(DEB_VERSION_UPSTREAM) liblapack.so.3 + ln -sf liblapack.so.$(DEB_VERSION_UPSTREAM) liblapack.so + + # Build PDF documentation + ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS))) + make -C TexDoc atlas_contrib.pdf atlas_devel.pdf atlas_install.pdf cblasqref.pdf f77blasqref.pdf lapackqref.pdf + endif + ++ #build some stuff manually that is needed for libatlas-test and ++ #seems to not get built if the testsuite fails ++ cd build/atlas-base/interfaces/blas/C/testing && $(MAKE) ++ cd build/atlas-base/interfaces/blas/F77/testing && $(MAKE) ++ ++ + override_dh_auto_test: - make -C build check ++ make -C build check || true + if test -f build/lib/libptcblas.a; then make -C build ptcheck; fi + + override_dh_auto_install: + make -C build install # The build system does not support setting DESTDIR at install time + mv debian/tmp/usr/include/*.h debian/tmp/usr/include/atlas/ + # We want packages using libblas/liblapack to depend on any BLAS/LAPACK # alternative, and we want packages depending on ATLAS-specific libraries # (e.g. libatlas.so) to depend specifically on libatlas3-base.