From 2b54bc754edb937a5c9bfe6e0e62c2787d760976 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 6 Aug 2016 05:10:36 +0200 Subject: debian/control: Use versioned provides for same-ver library deps This simplifies the design a bit, as we do not need to read the major ABI version number from some file / command. Gbp-Dch: ignore --- debian/control | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/control b/debian/control index 77b62b4ef..daaff0e2d 100644 --- a/debian/control +++ b/debian/control @@ -47,6 +47,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends} Breaks: apt (<< 1.1~exp14), libapt-inst1.5 (<< 0.9.9~), appstream (<< 0.9.0-3~) Recommends: apt (>= ${binary:Version}) Section: libs +Provides: libapt-pkg (= ${binary:Version}) Description: package management runtime library This library provides the common functionality for searching and managing packages as well as information about packages. @@ -69,6 +70,7 @@ Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Section: libs +Provides: libapt-inst (= ${binary:Version}) Description: deb package format runtime library This library provides methods to query and extract information from deb packages. This includes the control data and the package @@ -88,7 +90,7 @@ Architecture: any Multi-Arch: same Priority: optional Pre-Depends: ${misc:Pre-Depends} -Depends: ${libapt-pkg-name} (= ${binary:Version}), ${libapt-inst-name} (= ${binary:Version}), ${misc:Depends}, zlib1g-dev +Depends: libapt-pkg (= ${binary:Version}), libapt-inst (= ${binary:Version}), ${misc:Depends}, zlib1g-dev Section: libdevel Description: development files for APT's libapt-pkg and libapt-inst This package contains the header files and libraries for -- cgit v1.2.3 From e825742bbbbe99b99d525a3b34832b25a7396c84 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 6 Aug 2016 21:40:01 +0200 Subject: CMake: debian: Switch packaging over to CMake and dh 9 This new packaging is much easier to read, although the duplication in the install files is a bit annoying. We should probably also get rid of the movefiles for solvers, planners, and https method; but then we have to keep track of which methods exist in the apt package. Another disadvantage is that building only the documentation packages also requires building the code, as there's no way to turn off code building in the project. --- debian/apt-doc.install | 1 + debian/apt-transport-https.files | 1 + debian/apt-transport-https.install | 1 - debian/apt-utils.install | 19 ++ debian/apt.files | 2 + debian/apt.install | 39 ++++ debian/apt.install.in | 9 - debian/apt.systemd.daily | 0 debian/compat | 2 +- debian/control | 2 +- debian/copyright | 1 + debian/libapt-inst2.0.install | 2 + debian/libapt-inst2.0.install.in | 2 - debian/libapt-pkg-dev.install | 3 + debian/libapt-pkg-dev.install.in | 3 - debian/libapt-pkg-doc.docs | 6 +- debian/libapt-pkg-doc.install | 1 + debian/libapt-pkg5.0.install | 2 + debian/libapt-pkg5.0.install.in | 2 - debian/libapt-pkg5.0.symbols | 8 +- debian/rules | 364 +++---------------------------------- debian/tests/run-tests | 1 + 22 files changed, 102 insertions(+), 369 deletions(-) create mode 100644 debian/apt-doc.install create mode 100644 debian/apt-transport-https.files delete mode 100644 debian/apt-transport-https.install create mode 100644 debian/apt.files create mode 100644 debian/apt.install delete mode 100644 debian/apt.install.in mode change 100644 => 100755 debian/apt.systemd.daily create mode 120000 debian/copyright create mode 100644 debian/libapt-inst2.0.install delete mode 100644 debian/libapt-inst2.0.install.in create mode 100644 debian/libapt-pkg-dev.install delete mode 100644 debian/libapt-pkg-dev.install.in create mode 100644 debian/libapt-pkg-doc.install create mode 100644 debian/libapt-pkg5.0.install delete mode 100644 debian/libapt-pkg5.0.install.in (limited to 'debian') diff --git a/debian/apt-doc.install b/debian/apt-doc.install new file mode 100644 index 000000000..be5e87159 --- /dev/null +++ b/debian/apt-doc.install @@ -0,0 +1 @@ +usr/share/doc/apt-doc diff --git a/debian/apt-transport-https.files b/debian/apt-transport-https.files new file mode 100644 index 000000000..7b14886df --- /dev/null +++ b/debian/apt-transport-https.files @@ -0,0 +1 @@ +usr/lib/apt/methods/https diff --git a/debian/apt-transport-https.install b/debian/apt-transport-https.install deleted file mode 100644 index 848f10c78..000000000 --- a/debian/apt-transport-https.install +++ /dev/null @@ -1 +0,0 @@ -bin/methods/https usr/lib/apt/methods diff --git a/debian/apt-utils.install b/debian/apt-utils.install index cdbcb2f37..178b528b7 100644 --- a/debian/apt-utils.install +++ b/debian/apt-utils.install @@ -1 +1,20 @@ usr/share/locale/*/*/apt-utils.mo + +usr/bin/apt-ftparchive +usr/bin/apt-sortpkgs +usr/bin/apt-extracttemplates + +usr/share/man/*/apt-ftparchive.* +usr/share/man/*/*/apt-ftparchive.* + +usr/share/man/*/apt-sortpkgs.* +usr/share/man/*/*/apt-sortpkgs.* + +usr/share/man/*/apt-extracttemplates.* +usr/share/man/*/*/apt-extracttemplates.* + + +usr/lib/apt/solvers/ +usr/lib/apt/planners/ + +usr/share/doc/apt-utils diff --git a/debian/apt.files b/debian/apt.files new file mode 100644 index 000000000..572475192 --- /dev/null +++ b/debian/apt.files @@ -0,0 +1,2 @@ +usr/lib/apt/solvers/dump +usr/lib/apt/planners/dump diff --git a/debian/apt.install b/debian/apt.install new file mode 100644 index 000000000..82b9ec6f4 --- /dev/null +++ b/debian/apt.install @@ -0,0 +1,39 @@ +usr/bin/apt +usr/bin/apt-get +usr/bin/apt-cache +usr/bin/apt-cdrom +usr/bin/apt-config +usr/bin/apt-key +usr/bin/apt-mark +usr/lib/apt/methods/ +usr/lib/dpkg/methods/apt/ +usr/share/locale/*/*/apt.mo +usr/lib/*/libapt-private.so* +usr/share/man/*/apt.* +usr/share/man/*/apt-get.* +usr/share/man/*/apt-cache.* +usr/share/man/*/apt-cdrom.* +usr/share/man/*/apt-config.* +usr/share/man/*/apt-key.* +usr/share/man/*/apt-mark.* +usr/share/man/*/apt-secure.* +usr/share/man/*/sources.list.* +usr/share/man/*/apt_preferences.* +usr/share/man/*/*/apt.* +usr/share/man/*/*/apt-get.* +usr/share/man/*/*/apt-cache.* +usr/share/man/*/*/apt-cdrom.* +usr/share/man/*/*/apt-config.* +usr/share/man/*/*/apt-key.* +usr/share/man/*/*/apt-mark.* +usr/share/man/*/*/apt-secure.* +usr/share/man/*/*/sources.list.* +usr/share/man/*/*/apt_preferences.* +completions/bash/* /usr/share/bash-completion/completions/ +debian/*.service /lib/systemd/system/ +debian/*.timer /lib/systemd/system/ +usr/lib/apt/apt-helper + +usr/share/doc/apt + +debian/apt.systemd.daily usr/lib/apt diff --git a/debian/apt.install.in b/debian/apt.install.in deleted file mode 100644 index f390c87aa..000000000 --- a/debian/apt.install.in +++ /dev/null @@ -1,9 +0,0 @@ -bin/apt usr/bin/ -bin/apt-* usr/bin/ -bin/methods/* usr/lib/apt/methods/ -scripts/dselect/* usr/lib/dpkg/methods/apt/ -usr/share/locale/*/*/apt.mo -bin/libapt-private.so.* usr/lib/@DEB_HOST_MULTIARCH@/ -../completions/bash/* /usr/share/bash-completion/completions/ -../debian/*.service /lib/systemd/system/ -../debian/*.timer /lib/systemd/system/ \ No newline at end of file diff --git a/debian/apt.systemd.daily b/debian/apt.systemd.daily old mode 100644 new mode 100755 diff --git a/debian/compat b/debian/compat index 7f8f011eb..ec635144f 100644 --- a/debian/compat +++ b/debian/compat @@ -1 +1 @@ -7 +9 diff --git a/debian/control b/debian/control index daaff0e2d..855b90d2d 100644 --- a/debian/control +++ b/debian/control @@ -10,7 +10,7 @@ Build-Depends: dpkg-dev (>= 1.17.14), debhelper (>= 9.20141010), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.4~), zlib1g-dev, libbz2-dev, liblzma-dev, liblz4-dev (>= 0.0~r126), xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), - autotools-dev, autoconf, automake, libgtest-dev , dh-systemd + cmake, libgtest-dev , dh-systemd Build-Depends-Indep: doxygen, w3m, graphviz Build-Conflicts: autoconf2.13, automake1.4 Vcs-Git: https://anonscm.debian.org/git/apt/apt.git diff --git a/debian/copyright b/debian/copyright new file mode 120000 index 000000000..012065c85 --- /dev/null +++ b/debian/copyright @@ -0,0 +1 @@ +../COPYING \ No newline at end of file diff --git a/debian/libapt-inst2.0.install b/debian/libapt-inst2.0.install new file mode 100644 index 000000000..a8ddd5e2d --- /dev/null +++ b/debian/libapt-inst2.0.install @@ -0,0 +1,2 @@ +usr/lib/*/libapt-inst*.so.* +usr/share/locale/*/*/libapt-inst*.mo diff --git a/debian/libapt-inst2.0.install.in b/debian/libapt-inst2.0.install.in deleted file mode 100644 index 8bcce2c28..000000000 --- a/debian/libapt-inst2.0.install.in +++ /dev/null @@ -1,2 +0,0 @@ -bin/libapt-inst*.so.* usr/lib/@DEB_HOST_MULTIARCH@/ -usr/share/locale/*/*/libapt-inst*.mo diff --git a/debian/libapt-pkg-dev.install b/debian/libapt-pkg-dev.install new file mode 100644 index 000000000..e85dc9934 --- /dev/null +++ b/debian/libapt-pkg-dev.install @@ -0,0 +1,3 @@ +usr/lib/*/libapt-pkg*.so +usr/lib/*/libapt-inst*.so +usr/include/apt-pkg/ diff --git a/debian/libapt-pkg-dev.install.in b/debian/libapt-pkg-dev.install.in deleted file mode 100644 index be8022107..000000000 --- a/debian/libapt-pkg-dev.install.in +++ /dev/null @@ -1,3 +0,0 @@ -bin/libapt-pkg*.so usr/lib/@DEB_HOST_MULTIARCH@/ -bin/libapt-inst*.so usr/lib/@DEB_HOST_MULTIARCH@/ -include/apt-pkg/*.h usr/include/apt-pkg/ diff --git a/debian/libapt-pkg-doc.docs b/debian/libapt-pkg-doc.docs index 1ad92a8bb..dcacac18b 100644 --- a/debian/libapt-pkg-doc.docs +++ b/debian/libapt-pkg-doc.docs @@ -1,7 +1,3 @@ -build/docs/design* -build/docs/dpkg-tech* -build/docs/files* -build/docs/method* doc/libapt-pkg2_to_3.txt doc/style.txt -build/doc/doxygen/html +#build/doc/doxygen/html diff --git a/debian/libapt-pkg-doc.install b/debian/libapt-pkg-doc.install new file mode 100644 index 000000000..2f233dd07 --- /dev/null +++ b/debian/libapt-pkg-doc.install @@ -0,0 +1 @@ +usr/share/doc/libapt-pkg-doc diff --git a/debian/libapt-pkg5.0.install b/debian/libapt-pkg5.0.install new file mode 100644 index 000000000..9ac53bc82 --- /dev/null +++ b/debian/libapt-pkg5.0.install @@ -0,0 +1,2 @@ +usr/lib/*/libapt-pkg*.so.* +usr/share/locale/*/*/libapt-pkg*.mo diff --git a/debian/libapt-pkg5.0.install.in b/debian/libapt-pkg5.0.install.in deleted file mode 100644 index 56bed39d3..000000000 --- a/debian/libapt-pkg5.0.install.in +++ /dev/null @@ -1,2 +0,0 @@ -bin/libapt-pkg*.so.* usr/lib/@DEB_HOST_MULTIARCH@/ -usr/share/locale/*/*/libapt-pkg*.mo diff --git a/debian/libapt-pkg5.0.symbols b/debian/libapt-pkg5.0.symbols index bec874911..e2db6bb12 100644 --- a/debian/libapt-pkg5.0.symbols +++ b/debian/libapt-pkg5.0.symbols @@ -1429,7 +1429,7 @@ libapt-pkg.so.5.0 libapt-pkg5.0 #MINVER# ### symbol versioning: APTPKG_5.0@APTPKG_5.0 1.1~exp9 ### gcc artifacts - (c++)"void std::vector >::emplace_back(APT::Configuration::Compressor&&)@APTPKG_5.0" 1.1~exp9 + (c++|optional=std)"void std::vector >::emplace_back(APT::Configuration::Compressor&&)@APTPKG_5.0" 1.1~exp9 (c++|optional=std)"void std::vector >::emplace_back(char const*&&)@APTPKG_5.0" 1.1~exp9 (c++|optional=std)"void std::vector >::emplace_back(pkgCache::GrpIterator*&&)@APTPKG_5.0" 1.1~exp9 (c++|optional=std)"void std::vector >::emplace_back(pkgCache::PkgIterator*&&)@APTPKG_5.0" 1.1~exp9 @@ -1477,6 +1477,6 @@ libapt-pkg.so.5.0 libapt-pkg5.0 #MINVER# (c++)"EDSP::WriteScenario(pkgDepCache&, FileFd&, OpProgress*)@APTPKG_5.0" 1.3~exp2 (c++)"EDSP::WriteSolutionStanza(FileFd&, char const*, pkgCache::VerIterator const&)@APTPKG_5.0" 1.3~exp2 (c++)"int __gnu_cxx::__stoa(long (*)(char const*, char**, int), char const*, char const*, unsigned long*, int)@APTPKG_5.0" 1.3~exp2 - (c++)"std::basic_istream >& std::operator>> >(std::basic_istream >&, std::_Get_time)@APTPKG_5.0" 1.3~exp2 - (c++)"std::basic_ostream >& std::operator<< >(std::basic_ostream >&, std::_Put_time)@APTPKG_5.0" 1.3~exp2 - (c++)"std::ctype::do_narrow(char, char) const@APTPKG_5.0" 1.3~exp2 + (c++|optional=std)"std::basic_istream >& std::operator>> >(std::basic_istream >&, std::_Get_time)@APTPKG_5.0" 1.3~exp2 + (c++|optional=std)"std::basic_ostream >& std::operator<< >(std::basic_ostream >&, std::_Put_time)@APTPKG_5.0" 1.3~exp2 + (c++|optional=std)"std::ctype::do_narrow(char, char) const@APTPKG_5.0" 1.3~exp2 diff --git a/debian/rules b/debian/rules index 18b3f34f3..c1dba72af 100755 --- a/debian/rules +++ b/debian/rules @@ -1,352 +1,34 @@ #!/usr/bin/make -f -# Made with the aid of dh_make, by Craig Small -# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. -# Some lines taken from debmake, by Christoph Lameter. - -# build in verbose mode by default to make it easy to diangose issues -export NOISY=1 - -export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) -export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) -export PARALLEL = $(or $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))),1) - -# FOR AUTOCONF 2.52 AND NEWER ONLY -ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) - confflags += --build $(DEB_HOST_GNU_TYPE) -else - confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) -endif - -# Set the number of procs to be run in parallel from the options. -confflags += --with-procs=$(PARALLEL) - -# See below --include build/environment.mak - -ifneq (,$(shell which dpkg-buildflags)) - # make does not export to $(shell) so we need to workaround - # (http://savannah.gnu.org/bugs/?10593) - dpkg_buildflags = DEB_BUILD_MAINT_OPTIONS=hardening=+all dpkg-buildflags - export CXXFLAGS = $(shell $(dpkg_buildflags) --get CXXFLAGS) - export LDFLAGS = $(shell $(dpkg_buildflags) --get LDFLAGS) - export CPPFLAGS = $(shell $(dpkg_buildflags) --get CPPFLAGS) -else - ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - export CXXFLAGS = -O0 -g -Wall - else - export CXXFLAGS = -O2 -g -Wall - endif -endif - -# Default rule -build: - -# Determine the build directory to use -override BASE := . -override BLD := $(BASE)/build - -# When building without , the header is available and thus the test is -# successful. When building with , the header is missing, but we still -# pretend it to be available, because configure would fail otherwise. -export ac_cv_header_gtest_gtest_h=yes - -# APT Programs in apt-utils -APT_UTILS=ftparchive sortpkgs extracttemplates - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -# Find the libapt-pkg major version for use in other control files -include buildlib/libversion.mak - -# Determine which library package names to use -LIBAPT_PKG=libapt-pkg$(LIBAPTPKG_MAJOR) -LIBAPT_INST=libapt-inst$(LIBAPTINST_MAJOR) +# Copyright (C) 2009, 2016 Julian Andres Klode +# +# Free Software, licensed under the GPL-2 or (at your option) any later version. +export DEB_LDFLAGS_MAINT_APPEND := -Wl,--as-needed +export DEB_BUILD_MAINT_OPTIONS := hardening=+all # do not fail as we are just experimenting with symbol files for now export DPKG_GENSYMBOLS_CHECK_LEVEL=0 -build-binary: build/build-binary-stamp -build-docbook: build/build-docbook-stamp -build-manpages: build/build-manpages-stamp - -# Note that this is unconditionally done first as part of loading environment.mak -# The true is needed to force make to reload environment.mak after running -# configure-stamp. Otherwise we can get stale or invalid, or missing config data. -build/environment.mak: build/configure-stamp - @true - -configure: configure.ac -build/configure-stamp: configure buildlib/config.sub buildlib/config.guess - dh_testdir - mkdir -p build - cp COPYING debian/copyright - cd build && CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)" ../configure $(confflags) - touch $@ - -build/build-binary-stamp: build/configure-stamp - # Add here commands to compile the package. - $(MAKE) binary - # compat symlink for the locale split - mkdir -p build/usr/share - cd build/usr/share && ln -f -s ../../locale . - # compile and run tests -ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS))) - $(MAKE) test -else - @echo "Tests DISABLED" -endif - touch $@ - -build/build-docbook-stamp: build/configure-stamp - # Add here commands to compile the package. - $(MAKE) docbook - touch $@ - -build/build-manpages-stamp: build/configure-stamp - # Add here commands to compile the package. - $(MAKE) manpages - touch $@ - -clean: - dh_testdir - dh_clean - - [ ! -f Makefile ] || $(MAKE) clean distclean - rm -rf build - rm -f debian/$(LIBAPT_PKG).install debian/$(LIBAPT_INST).install \ - debian/libapt-pkg-dev.install debian/apt.install - test ! -L buildlib/config.guess || rm -f buildlib/config.guess - test ! -L buildlib/config.sub || rm -f buildlib/config.sub - -debian/%.install: debian/%.install.in - sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' $< > $@ - -# Build architecture-independent files here. -libapt-pkg-doc: build-docbook - dh_testdir -p$@ - dh_testroot -p$@ - dh_prep -p$@ - dh_installdirs -p$@ -# -# libapt-pkg-doc install -# - rm -f $(BLD)/doc/doxygen/html/*.map $(BLD)/doc/doxygen/html/*.md5 - dh_installdocs -p$@ - dh_installexamples -p$@ - dh_lintian -p$@ - dh_installchangelogs -p$@ - dh_strip -p$@ - dh_compress -p$@ -X.xhtml - dh_fixperms -p$@ - dh_installdeb -p$@ - dh_gencontrol -p$@ - dh_md5sums -p$@ - dh_builddeb -p$@ - -apt-doc: build-docbook - dh_testdir -p$@ - dh_testroot -p$@ - dh_prep -p$@ -# -# apt-doc install -# - # Copy the guides - dh_installdocs -p$@ - dh_installchangelogs -p$@ - dh_compress -p$@ - dh_fixperms -p$@ - dh_installdeb -p$@ - dh_gencontrol -p$@ - dh_md5sums -p$@ - dh_builddeb -p$@ - - - -# Build architecture-dependent files here. - -apt_MANPAGES = apt apt-cache apt-cdrom apt-config apt-get apt-key apt-mark apt-secure apt apt.conf apt_preferences sources.list -apt: build-binary build-manpages debian/apt.install - dh_testdir -p$@ - dh_testroot -p$@ - dh_prep -p$@ - dh_installdirs -p$@ -# -# apt install -# - cp debian/apt.conf.autoremove debian/$@/etc/apt/apt.conf.d/01autoremove - cp debian/apt.auto-removal.sh debian/$@/etc/kernel/postinst.d/apt-auto-removal - chmod 755 debian/$@/etc/kernel/postinst.d/apt-auto-removal - # install vendor specific apt confs - find -L vendor/current -name 'apt.conf-*' | while read conf; do cp "$${conf}" "debian/$@/etc/apt/apt.conf.d/$${conf#*-}"; done - - # make rosetta happy and remove pot files in po/ (but leave stuff - # in po/domains/* untouched) and cp *.po into each domain dir - rm -f build/po/*.pot - rm -f po/*.pot - - dh_install -p$@ --sourcedir=$(BLD) - - # Remove the bits that are in apt-utils - rm $(addprefix debian/$@/usr/bin/apt-,$(APT_UTILS) dump-solver internal-solver internal-planner) - cp $(BLD)/bin/apt-dump-solver debian/$@/usr/lib/apt/solvers/dump - ln -s ../solvers/dump debian/$@/usr/lib/apt/planners/dump - - # https has its own package - rm debian/$@/usr/lib/apt/methods/https - - # move the mirror failure script in place - #mv debian/$@/usr/bin/apt-report-mirror-failure \ - # debian/$@/usr/lib/apt/apt-report-mirror-failure \ - - # move the apt-helper in place - mv debian/$@/usr/bin/apt-helper debian/$@/usr/lib/apt/apt-helper - # install apt.systemd.daily helper in the right place - install -m755 debian/apt.systemd.daily debian/$@/usr/lib/apt/ - - dh_bugfiles -p$@ - dh_lintian -p$@ - dh_installexamples -p$@ - dh_installman -p$@ $(wildcard $(patsubst %,doc/en/%.[158],$(apt_MANPAGES)) $(patsubst %,doc/*/%.*.[158],$(apt_MANPAGES))) - dh_installcron -p$@ --name=apt-compat - dh_systemd_enable -p$@ apt-daily.timer - dh_systemd_start -p$@ apt-daily.timer - dh_installdocs -p$@ - dh_installchangelogs -p$@ - dh_installlogrotate -p$@ - dh_strip -p$@ - dh_compress -p$@ - dh_fixperms -p$@ - dh_makeshlibs -p$@ - dh_installdeb -p$@ - dh_shlibdeps -p$@ - dh_gencontrol -p$@ -- -Vapt:keyring="$(shell ./vendor/getinfo keyring-package)" - dh_md5sums -p$@ - dh_builddeb -p$@ - -libapt-pkg-dev: build-binary debian/libapt-pkg-dev.install - dh_testdir -p$@ - dh_testroot -p$@ - dh_prep -p$@ - dh_installdirs -p$@ -# -# libapt-pkg-dev install -# - dh_install -p$@ --sourcedir=$(BLD) - dh_installdocs -p$@ - dh_installchangelogs -p$@ - dh_strip -p$@ - dh_compress -p$@ - dh_fixperms -p$@ - dh_installdeb -p$@ - dh_gencontrol -p$@ -- -Vlibapt-pkg-name=$(LIBAPT_PKG) -Vlibapt-inst-name=$(LIBAPT_INST) - dh_md5sums -p$@ - dh_builddeb -p$@ - -apt-utils_MANPAGES = apt-sortpkgs apt-ftparchive apt-extracttemplates -apt-utils: build-binary build-manpages - dh_testdir -p$@ - dh_testroot -p$@ - dh_prep -p$@ - dh_installdirs -p$@ - - cp $(addprefix $(BLD)/bin/apt-,$(APT_UTILS)) debian/$@/usr/bin/ - cp $(BLD)/bin/apt-internal-solver debian/$@/usr/lib/apt/solvers/apt - cp $(BLD)/bin/apt-internal-planner debian/$@/usr/lib/apt/planners/apt - - dh_install -p$@ --sourcedir=$(BLD) - dh_link -p$@ - dh_installdocs -p$@ - dh_installexamples -p$@ - - # Install the man pages.. - dh_installman -p$@ $(wildcard $(patsubst %,doc/en/%.[158],$(apt-utils_MANPAGES)) $(patsubst %,doc/*/%.*.[158],$(apt-utils_MANPAGES))) - - dh_installchangelogs -p$@ - dh_strip -p$@ - dh_compress -p$@ - dh_fixperms -p$@ - dh_makeshlibs -p$@ - dh_installdeb -p$@ - dh_shlibdeps -p$@ - dh_gencontrol -p$@ - dh_md5sums -p$@ - dh_builddeb -p$@ - -$(LIBAPT_PKG): build-binary debian/$(LIBAPT_PKG).install - dh_testdir -p$@ - dh_testroot -p$@ - dh_prep -p$@ - dh_installdirs -p$@ - - dh_install -p$@ --sourcedir=$(BLD) - dh_installdocs -p$@ - dh_installchangelogs -p$@ - dh_strip -p$@ - dh_compress -p$@ - dh_fixperms -p$@ - dh_makeshlibs -p$@ - dh_installdeb -p$@ - dh_shlibdeps -p$@ - dh_gencontrol -p$@ - dh_md5sums -p$@ - dh_builddeb -p$@ - -$(LIBAPT_INST): build-binary debian/$(LIBAPT_INST).install - dh_testdir -p$@ - dh_testroot -p$@ - dh_prep -p$@ - dh_installdirs -p$@ - - dh_install -p$@ --sourcedir=$(BLD) - dh_installdocs -p$@ - dh_installchangelogs -p$@ - dh_strip -p$@ - dh_compress -p$@ - dh_fixperms -p$@ - dh_makeshlibs -p$@ - dh_installdeb -p$@ - dh_shlibdeps -p$@ - dh_gencontrol -p$@ - dh_md5sums -p$@ - dh_builddeb -p$@ - -apt-transport-https: build-binary libapt-pkg-dev - dh_testdir -p$@ - dh_testroot -p$@ - dh_prep -p$@ - dh_installdirs -p$@ - - dh_install -p$@ --sourcedir=$(BLD) - dh_installdocs -p$@ - dh_installexamples -p$@ +%: + dh $@ --with systemd --parallel --buildsystem=cmake - # Install the man pages.. - dh_installman -p$@ +override_dh_install-indep: + dh_movefiles + dh_install --list-missing - dh_installchangelogs -p$@ - dh_strip -p$@ - dh_compress -p$@ - dh_fixperms -p$@ - dh_installdeb -p$@ - dh_shlibdeps -p$@ - dh_gencontrol -p$@ - dh_md5sums -p$@ - dh_builddeb -p$@ +override_dh_install-arch: + dh_movefiles + dh_install --fail-missing + install -m 644 debian/apt.conf.autoremove debian/apt/etc/apt/apt.conf.d/01autoremove + install -m 755 debian/apt.auto-removal.sh debian/apt/etc/kernel/postinst.d/apt-auto-removal -buildlib/config.guess buildlib/config.sub: - $(MAKE) "$@" +override_dh_gencontrol: + dh_gencontrol -- -Vapt:keyring="$(shell ./vendor/getinfo keyring-package)" -configure: - $(MAKE) configure +override_dh_installcron: + dh_installcron --name=apt-compat -# translate targets to targets required by debian-policy -binary-arch: $(LIBAPT_PKG) $(LIBAPT_INST) apt libapt-pkg-dev apt-utils apt-transport-https -binary-indep: apt-doc libapt-pkg-doc -binary: binary-indep binary-arch -build-arch: build-binary -build-indep: build-manpages build-docbook -build: build-indep build-arch -.PHONY: build clean binary-indep binary-arch binary +override_dh_auto_configure-arch: flags=-DWITH_DOC=OFF +override_dh_auto_configure-indep: flags=-DWITH_DOC=ON +override_dh_auto_configure-arch override_dh_auto_configure-indep: + dh_auto_configure -- $(flags) diff --git a/debian/tests/run-tests b/debian/tests/run-tests index e33992b28..d2fa915b8 100644 --- a/debian/tests/run-tests +++ b/debian/tests/run-tests @@ -19,5 +19,6 @@ APT_INTEGRATION_TESTS_INTERNAL_SOLVER=/usr/lib/apt/solvers/apt \ APT_INTEGRATION_TESTS_DUMP_SOLVER=/usr/lib/apt/solvers/dump \ APT_INTEGRATION_TESTS_INTERNAL_PLANNER=/usr/lib/apt/planners/apt \ APT_INTEGRATION_TESTS_BUILD_DIR=/usr/bin \ +APT_INTEGRATION_TESTS_FTPARCHIVE_BIN_DIR=/usr/bin \ APT_INTEGRATION_TESTS_LIBRARY_PATH=/dev/null/does/not/exist \ ./test/integration/run-tests -q -- cgit v1.2.3 From 8970deacc29d826c8a5d5b297f0150b0ad194b73 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 6 Aug 2016 22:49:28 +0200 Subject: releasing package apt version 1.3~pre3+cmake1 --- debian/NEWS | 14 ++++++++++++++ debian/changelog | 15 +++++++++++++++ 2 files changed, 29 insertions(+) (limited to 'debian') diff --git a/debian/NEWS b/debian/NEWS index 934391456..f82dedf41 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,3 +1,17 @@ +apt (1.3~pre3+cmake1) experimental; urgency=medium + + Early version of CMake based build system. Translations for the dselect + method and docbook guides are missing, just as the text docbook guides. + + This is mainly intended for checking building, reproducibility, and + cross-compiling. + + This is also the first release since 1999 that re-enabled a thread-local + _error. It was disabled by jgg back then due to glibc issues, but I really + hope those are fixed now. + + -- Julian Andres Klode Sat, 06 Aug 2016 21:56:19 +0200 + apt (1.2~exp1) experimental; urgency=medium [ Automatic removal of debs after install ] diff --git a/debian/changelog b/debian/changelog index cdb3c3345..7217ae21f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,18 @@ +apt (1.3~pre3+cmake1) experimental; urgency=medium + + [ Julian Andres Klode ] + * configure.ac: Re-enable pthread support for thread-local _error + * CMake: Add basic CMake build system + * CMake: Add support for building and installing .mo files + * CMake: Add initial support for documentation building + * CMake: Switch integration tests and travis over + * CMake: debian: Switch packaging over to CMake and dh 9 + + [ Jason Travis ] + * doc: update path to periodic options script + + -- Julian Andres Klode Sat, 06 Aug 2016 22:37:30 +0200 + apt (1.3~pre3) unstable; urgency=medium [ Julian Andres Klode ] -- cgit v1.2.3 From 8a76b2bdc2f9c87a16b259ecb4398d433551aa6d Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 6 Aug 2016 23:18:17 +0200 Subject: Build-depend on pkg-config --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/control b/debian/control index 855b90d2d..2c2fc8085 100644 --- a/debian/control +++ b/debian/control @@ -10,7 +10,7 @@ Build-Depends: dpkg-dev (>= 1.17.14), debhelper (>= 9.20141010), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.4~), zlib1g-dev, libbz2-dev, liblzma-dev, liblz4-dev (>= 0.0~r126), xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), - cmake, libgtest-dev , dh-systemd + cmake, pkg-config, libgtest-dev , dh-systemd Build-Depends-Indep: doxygen, w3m, graphviz Build-Conflicts: autoconf2.13, automake1.4 Vcs-Git: https://anonscm.debian.org/git/apt/apt.git -- cgit v1.2.3 From 4b94063cc2df28baf2a60970e230b780f9951d8e Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 6 Aug 2016 23:18:46 +0200 Subject: releasing package apt version 1.3~pre3+cmake2 --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 7217ae21f..2c78c5a54 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +apt (1.3~pre3+cmake2) experimental; urgency=medium + + * Build-depend on pkg-config + + -- Julian Andres Klode Sat, 06 Aug 2016 23:18:37 +0200 + apt (1.3~pre3+cmake1) experimental; urgency=medium [ Julian Andres Klode ] -- cgit v1.2.3 From 7c317e9e90ccbaaab88550f69b902e88e379055c Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 8 Aug 2016 11:31:06 +0200 Subject: debian: make autopkgtest run with CMake build dir --- debian/tests/run-tests | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'debian') diff --git a/debian/tests/run-tests b/debian/tests/run-tests index d2fa915b8..277594108 100644 --- a/debian/tests/run-tests +++ b/debian/tests/run-tests @@ -2,17 +2,18 @@ set -e -# we need the buildin webserver for the tests -if [ ! -e environment.mak ]; then - make startup +if [ ! -e build/CMakeCache.txt ]; then + mkdir build || true + ( cd build && cmake .. ) fi -make -C test/interactive-helper/ + +make -C build/test/interactive-helper # run tests against the installed apt, use "env -i" to ensure # the host env does not pollute our environment env -i \ APT_INTEGRATION_TESTS_SOURCE_DIR=$(pwd) \ -APT_INTEGRATION_TESTS_WEBSERVER_BIN_DIR=$(pwd)/build/bin \ +APT_INTEGRATION_TESTS_WEBSERVER_BIN_DIR=$(pwd)/build/test/interactive-helper \ APT_INTEGRATION_TESTS_METHODS_DIR=/usr/lib/apt/methods \ APT_INTEGRATION_TESTS_LIBEXEC_DIR=/usr/lib/apt/ \ APT_INTEGRATION_TESTS_INTERNAL_SOLVER=/usr/lib/apt/solvers/apt \ -- cgit v1.2.3 From 4924e4686cd9f4839993620e1726995f732216e8 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 8 Aug 2016 14:16:36 +0200 Subject: CMake: Bump minimum required version to 3.4.0 The SOURCE_DIR property is used for the translation building and was introduced in cmake 3.4 --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/control b/debian/control index 2c2fc8085..bc118b52d 100644 --- a/debian/control +++ b/debian/control @@ -10,7 +10,7 @@ Build-Depends: dpkg-dev (>= 1.17.14), debhelper (>= 9.20141010), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.4~), zlib1g-dev, libbz2-dev, liblzma-dev, liblz4-dev (>= 0.0~r126), xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), - cmake, pkg-config, libgtest-dev , dh-systemd + cmake (>= 3.4), pkg-config, libgtest-dev , dh-systemd Build-Depends-Indep: doxygen, w3m, graphviz Build-Conflicts: autoconf2.13, automake1.4 Vcs-Git: https://anonscm.debian.org/git/apt/apt.git -- cgit v1.2.3 From 10ec2d23f14cf5d3e4835d9bcb57d0937f803e6a Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 8 Aug 2016 21:53:46 +0200 Subject: CMake: Rewrite existing Documentation support and add doxygen This can now build all documentation. It should also be fairly reusable for other projects, as long as they follow the same naming scheme for the po4a output files and set the PACKAGE_* variables used here. We could have done all translations in a single call to po4a like the makefile based buildsystem does. While that would have made the output slightly nicer, this solution offers a huge performance gain because it can translate the documents in parallel, which also means that the xsltproc stage does not have to wait for all translations to be done first. You might think that the add_custom_command() should list the actual output files as BYPRODUCTS. This is not true however: Because the files are not always generated, Ninja will think missing byproducts mean that the target is out of date - which is not what we want. Finally, also add the missing doxygen support. Note that the packaging script cleans up some md5 and map files created by doxygen, otherwise it is fairly boring. --- debian/rules | 2 ++ 1 file changed, 2 insertions(+) (limited to 'debian') diff --git a/debian/rules b/debian/rules index c1dba72af..9537ecd93 100755 --- a/debian/rules +++ b/debian/rules @@ -15,6 +15,8 @@ override_dh_install-indep: dh_movefiles dh_install --list-missing + find debian/libapt-pkg-doc/usr/share/doc/libapt-pkg-doc/html \( -name '*.md5' -o -name '*.map' \) -delete + override_dh_install-arch: dh_movefiles dh_install --fail-missing -- cgit v1.2.3