summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2016-09-01 00:53:40 +0200
committerJulian Andres Klode <jak@debian.org>2016-09-01 00:53:40 +0200
commit265c3312bd1b329dc9b54c754da46621d9019c11 (patch)
treee1c740747f84f793ee2b6ab4ffaffbc9f76cd575
parent28f0867d99398a23296ead313112402c51d4e876 (diff)
parent317bb39f3cd6626c74f25d7bdf2907f1b235f553 (diff)
Merge tag '1.3_rc3' into ubuntu/master
apt Debian release 1.3~rc3
-rw-r--r--.travis.yml7
-rw-r--r--CMake/Documentation.cmake38
-rw-r--r--CMake/FindBerkeleyDB.cmake17
-rw-r--r--CMake/FindIconv.cmake20
-rw-r--r--CMake/FindLZ4.cmake25
-rw-r--r--CMake/FindLZMA.cmake25
-rw-r--r--CMake/Misc.cmake13
-rw-r--r--CMake/Translations.cmake14
-rw-r--r--CMake/config.h.in18
-rw-r--r--CMake/endian.h.in9
-rw-r--r--CMakeLists.txt102
-rw-r--r--COPYING1
-rw-r--r--apt-inst/deb/debfile.cc2
-rw-r--r--apt-pkg/CMakeLists.txt13
-rw-r--r--apt-pkg/acquire-item.cc30
-rw-r--r--apt-pkg/acquire-worker.cc46
-rw-r--r--apt-pkg/acquire.cc65
-rw-r--r--apt-pkg/contrib/gpgv.cc2
-rw-r--r--apt-pkg/contrib/strutl.cc5
-rw-r--r--apt-pkg/deb/debindexfile.cc1
-rw-r--r--apt-pkg/deb/debsystem.cc8
-rw-r--r--apt-pkg/deb/dpkgpm.cc37
-rw-r--r--apt-pkg/edsp/edsplistparser.cc2
-rw-r--r--apt-pkg/indexcopy.cc6
-rw-r--r--apt-pkg/init.cc13
-rw-r--r--apt-pkg/install-progress.cc4
-rw-r--r--apt-pkg/install-progress.h2
-rw-r--r--apt-pkg/policy.cc9
-rw-r--r--apt-pkg/sourcelist.cc3
-rw-r--r--apt-private/private-cmndline.cc1
-rw-r--r--apt-private/private-download.cc7
-rw-r--r--apt-private/private-show.cc1
-rw-r--r--cmdline/apt-helper.cc1
-rw-r--r--cmdline/apt-key.in74
-rw-r--r--cmdline/apt-sortpkgs.cc1
-rw-r--r--debian/README.source6
-rw-r--r--debian/apt-doc.docs4
-rw-r--r--debian/apt-transport-https.dirs1
-rw-r--r--debian/apt-transport-https.install (renamed from debian/apt-transport-https.files)0
-rw-r--r--debian/apt-utils.dirs3
-rw-r--r--debian/apt-utils.examples1
-rw-r--r--debian/apt-utils.install23
-rw-r--r--debian/apt.auto-removal.sh2
-rw-r--r--debian/apt.dirs19
-rw-r--r--debian/apt.examples1
-rw-r--r--debian/apt.files2
-rw-r--r--debian/apt.install48
-rw-r--r--debian/apt.lintian-overrides3
-rw-r--r--debian/apt.maintscript1
-rw-r--r--debian/changelog54
-rw-r--r--debian/compat2
-rw-r--r--debian/control58
-rw-r--r--debian/libapt-pkg-dev.install4
-rw-r--r--debian/libapt-pkg-doc.docs1
-rw-r--r--debian/libapt-pkg-doc.lintian-overrides1
-rw-r--r--debian/libapt-pkg5.0.symbols12
-rwxr-xr-xdebian/rules9
-rw-r--r--doc/apt-cache.8.xml2
-rw-r--r--doc/apt-get.8.xml4
-rw-r--r--doc/apt-verbatim.ent2
-rw-r--r--doc/apt.conf.5.xml2
-rw-r--r--doc/docbook-html-style.xsl.cmake.in (renamed from doc/docbook-html-style.xsl)2
-rw-r--r--doc/docbook-text-style.xsl.cmake.in (renamed from doc/docbook-text-style.xsl)2
-rw-r--r--doc/manpage-style.xsl.cmake.in (renamed from doc/manpage-style.xsl)2
-rw-r--r--doc/po/apt-doc.pot26
-rw-r--r--doc/po/de.po24
-rw-r--r--doc/po/es.po24
-rw-r--r--doc/po/fr.po24
-rw-r--r--doc/po/it.po46
-rw-r--r--doc/po/ja.po46
-rw-r--r--doc/po/nl.po46
-rw-r--r--doc/po/pl.po24
-rw-r--r--doc/po/pt.po24
-rw-r--r--doc/po/pt_BR.po24
-rw-r--r--doc/sources.list.5.xml24
-rw-r--r--ftparchive/CMakeLists.txt1
-rw-r--r--methods/CMakeLists.txt2
-rw-r--r--methods/connect.cc2
-rw-r--r--methods/gpgv.cc3
-rw-r--r--po/CMakeLists.txt2
-rw-r--r--po/apt-all.pot4
-rw-r--r--po/ar.po2
-rw-r--r--po/ast.po2
-rw-r--r--po/bg.po2
-rw-r--r--po/bs.po2
-rw-r--r--po/ca.po2
-rw-r--r--po/cs.po2
-rw-r--r--po/cy.po2
-rw-r--r--po/da.po2
-rw-r--r--po/de.po2
-rw-r--r--po/dz.po2
-rw-r--r--po/el.po2
-rw-r--r--po/es.po2
-rw-r--r--po/eu.po2
-rw-r--r--po/fi.po2
-rw-r--r--po/fr.po2
-rw-r--r--po/gl.po2
-rw-r--r--po/hu.po2
-rw-r--r--po/it.po2
-rw-r--r--po/ja.po2
-rw-r--r--po/km.po2
-rw-r--r--po/ko.po2
-rw-r--r--po/ku.po2
-rw-r--r--po/lt.po2
-rw-r--r--po/mr.po2
-rw-r--r--po/nb.po2
-rw-r--r--po/ne.po2
-rw-r--r--po/nl.po2
-rw-r--r--po/nn.po2
-rw-r--r--po/pl.po2
-rw-r--r--po/pt.po2
-rw-r--r--po/pt_BR.po2
-rw-r--r--po/ro.po2
-rw-r--r--po/ru.po2
-rw-r--r--po/sk.po2
-rw-r--r--po/sl.po2
-rw-r--r--po/sv.po2
-rw-r--r--po/th.po2
-rw-r--r--po/tl.po2
-rw-r--r--po/tr.po2
-rw-r--r--po/uk.po2
-rw-r--r--po/vi.po2
-rw-r--r--po/zh_CN.po43
-rw-r--r--po/zh_TW.po2
-rwxr-xr-xprepare-release2
-rw-r--r--shippable.yml15
-rw-r--r--test/integration/framework134
-rwxr-xr-xtest/integration/run-tests40
-rwxr-xr-xtest/integration/test-apt-config2
-rwxr-xr-xtest/integration/test-apt-ftparchive-cachedb-lp127446611
-rwxr-xr-xtest/integration/test-apt-get-autoremove3
-rwxr-xr-xtest/integration/test-apt-get-changelog6
-rwxr-xr-xtest/integration/test-apt-get-install-deb32
-rwxr-xr-xtest/integration/test-apt-key24
-rwxr-xr-xtest/integration/test-apt-redirect-loop3
-rwxr-xr-xtest/integration/test-apt-update-simple24
-rwxr-xr-xtest/integration/test-authentication-basic2
-rwxr-xr-xtest/integration/test-bug-605394-versioned-or-groups4
-rwxr-xr-xtest/integration/test-bug-661537-build-profiles-support2
-rwxr-xr-xtest/integration/test-bug-712116-dpkg-pre-install-pkgs-hook-multiarch2
-rwxr-xr-xtest/integration/test-bug-722207-print-uris-even-if-very-quiet2
-rwxr-xr-xtest/integration/test-bug-769609-triggers-still-pending-after-run12
-rwxr-xr-xtest/integration/test-external-dependency-solver-protocol4
-rwxr-xr-xtest/integration/test-handle-redirect-as-used-mirror-change6
-rwxr-xr-xtest/integration/test-kernel-helper-autoremove4
-rwxr-xr-xtest/integration/test-no-fds-leaked-to-maintainer-scripts7
-rwxr-xr-xtest/integration/test-releasefile-verification13
-rw-r--r--test/interactive-helper/test_fileutl.cc1
-rw-r--r--vendor/debian/apt-vendor.ent4
-rw-r--r--vendor/debian/sources.list.in2
-rwxr-xr-xvendor/getinfo2
151 files changed, 1144 insertions, 585 deletions
diff --git a/.travis.yml b/.travis.yml
index 7931bb39a..131bf4abd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,8 +17,7 @@ before_script:
- make -C build -j4
script:
- CTEST_OUTPUT_ON_FAILURE=1 make -C build test
- - ./test/integration/run-tests -q
+ - chronic make -C build install DESTDIR=$PWD/rootdir
+ - ./test/integration/run-tests -qq
- sudo adduser --force-badname --system --home /nonexistent --no-create-home --quiet _apt || true
- - sudo ./test/integration/run-tests -q
- - make -C build install DESTDIR=$PWD/rootdir
- - find rootdir -print0 | xargs -0 ls -ld
+ - sudo ./test/integration/run-tests -qq
diff --git a/CMake/Documentation.cmake b/CMake/Documentation.cmake
index 9e7135ea4..f3bbfdc6b 100644
--- a/CMake/Documentation.cmake
+++ b/CMake/Documentation.cmake
@@ -24,6 +24,34 @@
# SOFTWARE.
+find_path(DOCBOOK_XSL manpages/docbook.xsl
+ # Debian
+ /usr/share/xml/docbook/stylesheet/docbook-xsl
+ /usr/share/xml/docbook/stylesheet/nwalsh
+ # OpenSUSE
+ /usr/share/xml/docbook/stylesheet/nwalsh/current
+ # Arch
+ /usr/share/xml/docbook/xsl-stylesheets
+ # Fedora
+ /usr/share/sgml/docbook/xsl-stylesheets
+ # Fink
+ ${CMAKE_INSTALL_PREFIX}/share/xml/xsl/docbook-xsl
+ # FreeBSD
+ ${CMAKE_INSTALL_PREFIX}/share/xsl/docbook/
+ NO_DEFAULT_PATH)
+
+if(NOT DOCBOOK_XSL)
+ message(FATAL_ERROR "Could not find docbook xsl")
+endif()
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docbook-text-style.xsl.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/docbook-text-style.xsl)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docbook-html-style.xsl.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/docbook-html-style.xsl)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/manpage-style.xsl.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/manpage-style.xsl)
+
+
# Split up a string of the form DOCUMENT[.DOCUMENT][.LANGUAGE][.SECTION].EXTENSION
#
# There might be up to two parts in the document name. The language must be
@@ -75,7 +103,7 @@ function(po4a_one stamp_out out full_document language deps)
OUTPUT ${stamp}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${language}
COMMAND po4a --previous --no-backups
- --package-name='${PROJECT}-doc'
+ --package-name='${PROJECT_NAME}-doc'
--package-version='${PACKAGE_VERSION}'
--msgid-bugs-address='${PACKAGE_MAIL}'
--translate-only ${dest}.${ext}
@@ -123,7 +151,8 @@ function(xsltproc_one)
else()
set(manpage_output "${CMAKE_CURRENT_BINARY_DIR}/${document}.${section}")
endif()
- set(manpage_stylesheet "${CMAKE_CURRENT_SOURCE_DIR}/manpage-style.xsl")
+ set(manpage_stylesheet "${CMAKE_CURRENT_BINARY_DIR}/manpage-style.xsl")
+ set(manpage_params)
install(FILES ${manpage_output}
DESTINATION ${CMAKE_INSTALL_MANDIR}/${language}/man${section}
@@ -136,7 +165,7 @@ function(xsltproc_one)
set(html_output "${CMAKE_CURRENT_BINARY_DIR}/${document}.html")
endif()
set(html_params --stringparam base.dir ${html_output})
- set(html_stylesheet "${CMAKE_CURRENT_SOURCE_DIR}/docbook-html-style.xsl")
+ set(html_stylesheet "${CMAKE_CURRENT_BINARY_DIR}/docbook-html-style.xsl")
install(DIRECTORY ${html_output}
DESTINATION ${DOC_INSTALL}
OPTIONAL)
@@ -149,7 +178,7 @@ function(xsltproc_one)
set(text_output "${CMAKE_CURRENT_BINARY_DIR}/${document}.text")
endif()
set(text_params --stringparam base.dir ${text_output})
- set(text_stylesheet "${CMAKE_CURRENT_SOURCE_DIR}/docbook-text-style.xsl")
+ set(text_stylesheet "${CMAKE_CURRENT_BINARY_DIR}/docbook-text-style.xsl")
file(RELATIVE_PATH text_output_relative ${CMAKE_CURRENT_BINARY_DIR} ${text_output})
@@ -221,6 +250,7 @@ endfunction()
function(add_docbook target)
set(generated "")
set(options HTML TEXT MANPAGE ALL)
+ set(oneValueArgs)
set(multiValueArgs INSTALL DOCUMENTS LINGUAS DEPENDS)
cmake_parse_arguments(DOC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
diff --git a/CMake/FindBerkeleyDB.cmake b/CMake/FindBerkeleyDB.cmake
index 44cfd3ddb..34bc3b0d1 100644
--- a/CMake/FindBerkeleyDB.cmake
+++ b/CMake/FindBerkeleyDB.cmake
@@ -33,14 +33,25 @@
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# We need NO_DEFAULT_PATH here, otherwise CMake helpfully picks up the wrong
+# db.h on BSD systems instead of the Berkeley DB one.
find_path(BERKELEY_DB_INCLUDE_DIRS db.h
- /usr/include/db5
+ ${CMAKE_INSTALL_FULL_INCLUDEDIR}/db5
/usr/local/include/db5
- /usr/include/db4
+ /usr/include/db5
+
+ ${CMAKE_INSTALL_FULL_INCLUDEDIR}/db4
/usr/local/include/db4
+ /usr/include/db4
+
+ ${CMAKE_INSTALL_FULL_INCLUDEDIR}
+ /usr/local/include
+ /usr/include
+
+ NO_DEFAULT_PATH
)
-find_library(BERKELEY_DB_LIBRARIES NAMES db )
+find_library(BERKELEY_DB_LIBRARIES NAMES db db-5)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Berkeley "Could not find Berkeley DB >= 4.1" BERKELEY_DB_INCLUDE_DIRS BERKELEY_DB_LIBRARIES)
diff --git a/CMake/FindIconv.cmake b/CMake/FindIconv.cmake
new file mode 100644
index 000000000..67046d95d
--- /dev/null
+++ b/CMake/FindIconv.cmake
@@ -0,0 +1,20 @@
+find_path(ICONV_INCLUDE_DIR NAMES iconv.h)
+
+find_library(ICONV_LIBRARY NAMES iconv)
+if (ICONV_LIBRARY)
+ set(ICONV_SYMBOL_FOUND "${ICONV_LIBRARY}")
+else()
+ check_function_exists(iconv_open ICONV_SYMBOL_FOUND)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Iconv DEFAULT_MESSAGE ICONV_INCLUDE_DIR ICONV_SYMBOL_FOUND)
+
+if(ICONV_LIBRARY)
+ set(ICONV_LIBRARIES "${ICONV_LIBRARY}")
+else()
+ set(ICONV_LIBRARIES)
+endif()
+set(ICONV_INCLUDE_DIRS "${ICONV_INCLUDE_DIR}")
+
+mark_as_advanced(ICONV_LIBRARY ICONV_INCLUDE_DIR)
diff --git a/CMake/FindLZ4.cmake b/CMake/FindLZ4.cmake
new file mode 100644
index 000000000..597f520a8
--- /dev/null
+++ b/CMake/FindLZ4.cmake
@@ -0,0 +1,25 @@
+# - Try to find LZ4
+# Once done, this will define
+#
+# LZ4_FOUND - system has LZ4
+# LZ4_INCLUDE_DIRS - the LZ4 include directories
+# LZ4_LIBRARIES - the LZ4 library
+find_package(PkgConfig)
+
+pkg_check_modules(LZ4_PKGCONF liblz4)
+
+find_path(LZ4_INCLUDE_DIRS
+ NAMES lz4frame.h
+ PATHS ${LZ4_PKGCONF_INCLUDE_DIRS}
+)
+
+
+find_library(LZ4_LIBRARIES
+ NAMES lz4
+ PATHS ${LZ4_PKGCONF_LIBRARY_DIRS}
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LZ4 DEFAULT_MSG LZ4_INCLUDE_DIRS LZ4_LIBRARIES)
+
+mark_as_advanced(LZ4_INCLUDE_DIRS LZ4_LIBRARIES)
diff --git a/CMake/FindLZMA.cmake b/CMake/FindLZMA.cmake
new file mode 100644
index 000000000..6abc4fa77
--- /dev/null
+++ b/CMake/FindLZMA.cmake
@@ -0,0 +1,25 @@
+# - Try to find LZMA
+# Once done, this will define
+#
+# LZMA_FOUND - system has LZMA
+# LZMA_INCLUDE_DIRS - the LZMA include directories
+# LZMA_LIBRARIES - the LZMA library
+find_package(PkgConfig)
+
+pkg_check_modules(LZMA_PKGCONF liblzma)
+
+find_path(LZMA_INCLUDE_DIRS
+ NAMES lzma.h
+ PATHS ${LZMA_PKGCONF_INCLUDE_DIRS}
+)
+
+
+find_library(LZMA_LIBRARIES
+ NAMES lzma
+ PATHS ${LZMA_PKGCONF_LIBRARY_DIRS}
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LZMA DEFAULT_MSG LZMA_INCLUDE_DIRS LZMA_LIBRARIES)
+
+mark_as_advanced(LZMA_INCLUDE_DIRS LZMA_LIBRARIES)
diff --git a/CMake/Misc.cmake b/CMake/Misc.cmake
index 68ab22758..82cb4da37 100644
--- a/CMake/Misc.cmake
+++ b/CMake/Misc.cmake
@@ -86,3 +86,16 @@ function(path_join out path1 path2)
set(${out} "${path1}/${path2}" PARENT_SCOPE)
endif()
endfunction()
+
+# install_empty_directories(path ...)
+#
+# Creates empty directories in the install destination dir. Paths may be
+# absolute or relative; in the latter case, the value of CMAKE_INSTALL_PREFIX
+# is prepended.
+function(install_empty_directories)
+ foreach(path ${ARGN})
+ path_join(full_path "${CMAKE_INSTALL_PREFIX}" "${path}")
+ INSTALL(CODE "MESSAGE(STATUS \"Creating directory: \$ENV{DESTDIR}${full_path}\")"
+ CODE "FILE(MAKE_DIRECTORY \$ENV{DESTDIR}${full_path})")
+ endforeach()
+endfunction()
diff --git a/CMake/Translations.cmake b/CMake/Translations.cmake
index 509e4e378..79f2633a7 100644
--- a/CMake/Translations.cmake
+++ b/CMake/Translations.cmake
@@ -11,6 +11,7 @@ function(apt_add_translation_domain)
set(abs_files "")
set(scripts "")
set(abs_scripts "")
+ set(mofiles)
set(targets ${NLS_TARGETS})
set(domain ${NLS_DOMAIN})
set(xgettext_params
@@ -67,16 +68,19 @@ function(apt_add_translation_domain)
# build a ${domain.pot}-tmp as a byproduct. The msgfmt command than depend
# on the byproduct while their target depends on the output, so that msgfmt
# does not have to be rerun if nothing in the template changed.
+ #
+ # Make sure the .pot-tmp has no line numbers, to avoid useless rebuilding
+ # of .mo files.
add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${domain}.pot
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${domain}.pot-tmp
- COMMAND msgcomm --more-than=0 --sort-by-file
+ COMMAND msgcomm --more-than=0 --omit-header --sort-by-file --add-location=file
${sh_pot}
${CMAKE_CURRENT_BINARY_DIR}/${domain}.c.pot
- --output=${CMAKE_CURRENT_BINARY_DIR}/${domain}.pot
- COMMAND msgcomm --more-than=0 --omit-header --sort-by-file
+ --output=${CMAKE_CURRENT_BINARY_DIR}/${domain}.pot-tmp0
+ COMMAND msgcomm --more-than=0 --sort-by-file
${sh_pot}
${CMAKE_CURRENT_BINARY_DIR}/${domain}.c.pot
- --output=${CMAKE_CURRENT_BINARY_DIR}/${domain}.pot-tmp0
+ --output=${CMAKE_CURRENT_BINARY_DIR}/${domain}.pot
COMMAND cmake -E copy_if_different
${CMAKE_CURRENT_BINARY_DIR}/${domain}.pot-tmp0
${CMAKE_CURRENT_BINARY_DIR}/${domain}.pot-tmp
@@ -146,7 +150,7 @@ function(apt_add_update_po)
continue()
endif()
add_custom_target(update-po-${langcode}
- COMMAND msgmerge -q --update --backup=none ${translation} ${output}
+ COMMAND msgmerge -q --previous --update --backup=none ${translation} ${output}
DEPENDS nls-${master_name}
)
add_dependencies(update-po update-po-${langcode})
diff --git a/CMake/config.h.in b/CMake/config.h.in
index e929646fa..6f39e2f58 100644
--- a/CMake/config.h.in
+++ b/CMake/config.h.in
@@ -25,6 +25,12 @@
/* Define if we have sys/mount.h */
#cmakedefine HAVE_MOUNT_H
+/* Define if we have sys/endian.h */
+#cmakedefine HAVE_SYS_ENDIAN_H
+
+/* Define if we have machine/endian.h */
+#cmakedefine HAVE_MACHINE_ENDIAN_H
+
/* Define if we have enabled pthread support */
#cmakedefine HAVE_PTHREAD
@@ -49,6 +55,18 @@
/* The mail address to reach upstream */
#define PACKAGE_MAIL "${PACKAGE_MAIL}"
+/* Various directories */
+#cmakedefine CMAKE_INSTALL_FULL_BINDIR "${CMAKE_INSTALL_FULL_BINDIR}"
+#cmakedefine STATE_DIR "${STATE_DIR}"
+#cmakedefine CACHE_DIR "${CACHE_DIR}"
+#cmakedefine LOG_DIR "${LOG_DIR}"
+#cmakedefine CONF_DIR "${CONF_DIR}"
+#cmakedefine LIBEXEC_DIR "${LIBEXEC_DIR}"
+#cmakedefine BIN_DIR "${BIN_DIR}"
+
+/* Group of the root user */
+#cmakedefine ROOT_GROUP "${ROOT_GROUP}"
+
#define APT_8_CLEANER_HEADERS
#define APT_9_CLEANER_HEADERS
#define APT_10_CLEANER_HEADERS
diff --git a/CMake/endian.h.in b/CMake/endian.h.in
new file mode 100644
index 000000000..1d9198c24
--- /dev/null
+++ b/CMake/endian.h.in
@@ -0,0 +1,9 @@
+#include <config.h>
+
+#ifdef HAVE_MACHINE_ENDIAN_H
+#include <machine/endian.h>
+#endif
+#ifdef HAVE_SYS_ENDIAN_H
+#include <sys/types.h>
+#include <sys/endian.h>
+#endif
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 41115cb73..ee1adf7a2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,6 +4,9 @@
# set minimum version
project(apt)
cmake_minimum_required(VERSION 3.4.0)
+# Generic header locations
+include_directories(${PROJECT_BINARY_DIR}/include)
+
enable_testing()
@@ -19,15 +22,20 @@ endif()
# Include stuff
include(Misc)
-include(Translations)
include(CheckIncludeFiles)
include(CheckFunctionExists)
include(CheckStructHasMember)
include(GNUInstallDirs)
include(TestBigEndian)
find_package(Threads)
-find_package(PkgConfig)
find_package(LFS REQUIRED)
+find_package(Iconv REQUIRED)
+
+if(USE_NLS)
+ find_package(Intl REQUIRED)
+ link_libraries(${Intl_LIBRARIES})
+ include_directories(${Intl_INCLUDE_DIRS})
+endif()
# Add large file support
add_compile_options(${LFS_COMPILE_OPTIONS})
@@ -79,25 +87,27 @@ if (BZIP2_FOUND)
set(HAVE_BZ2 1)
endif()
-pkg_check_modules(LZMA liblzma)
+find_package(LZMA)
if (LZMA_FOUND)
set(HAVE_LZMA 1)
endif()
-pkg_check_modules(LZ4 liblz4)
+
+find_package(LZ4)
if (LZ4_FOUND)
set(HAVE_LZ4 1)
endif()
# Mount()ing and stat()ing and friends
+check_symbol_exists(statfs sys/vfs.h HAVE_VFS_H)
+check_include_files(sys/params.h HAVE_PARAMS_H)
+check_symbol_exists(statfs sys/mount.h HAVE_MOUNT_H)
+if (NOT HAVE_VFS_H AND NOT HAVE_MOUNT_H)
+ message(FATAL_ERROR "Can find neither statvfs() nor statfs()")
+endif()
check_function_exists(statvfs HAVE_STATVFS)
if (NOT HAVE_STATVFS)
- check_symbol_exists(statfs sys/vfs.h HAVE_VFS_H)
- check_symbol_exists(statfs sys/mount.h HAVE_MOUNT_H)
- if (NOT HAVE_VFS_H AND NOT HAVE_MOUNT_H)
- message(FATAL_ERROR "Can find neither statvfs() nor statfs()")
- endif()
configure_file(CMake/statvfs.h.in ${PROJECT_BINARY_DIR}/include/statvfs.h COPYONLY)
endif()
@@ -112,27 +122,75 @@ check_function_exists(ptsname_r HAVE_PTSNAME_R)
check_function_exists(timegm HAVE_TIMEGM)
test_big_endian(WORDS_BIGENDIAN)
+# FreeBSD
+add_definitions(-D_WITH_GETLINE=1)
+
if (CMAKE_USE_PTHREADS_INIT)
set(HAVE_PTHREAD 1)
endif()
+CHECK_INCLUDE_FILES(machine/endian.h HAVE_MACHINE_ENDIAN_H)
+CHECK_INCLUDE_FILES(sys/endian.h HAVE_SYS_ENDIAN_H)
+CHECK_INCLUDE_FILES(endian.h HAVE_ENDIAN_H)
+if (NOT HAVE_ENDIAN_H)
+ if (HAVE_MACHINE_ENDIAN_H OR HAVE_SYS_ENDIAN_H)
+ configure_file(CMake/endian.h.in ${PROJECT_BINARY_DIR}/include/endian.h)
+ else()
+ message(FATAL_ERROR "Cannot find endian.h")
+ endif()
+endif()
+
+
+include(CheckTypeSize)
+set(CMAKE_EXTRA_INCLUDE_FILES "signal.h")
+check_type_size("sig_t" SIG_T LANGUAGE "CXX")
+check_type_size("sighandler_t" SIGHANDLER_T LANGUAGE "CXX")
+set(CMAKE_EXTRA_INCLUDE_FILES)
+if (NOT HAVE_SIGHANDLER_T)
+ if (HAVE_SIG_T)
+ add_definitions(-Dsighandler_t=sig_t)
+ else()
+ message(FATAL_ERROR "Platform defines neither sig_t nor sighandler_t")
+ endif()
+endif()
+
+# Handle resolving
+check_function_exists(res_init HAVE_LIBC_RESOLV)
+if(HAVE_LIBC_RESOLV)
+ set(RESOLV_LIBRARIES)
+else()
+ set(RESOLV_LIBRARIES -lresolv)
+endif()
+
# Configure some variables like package, version and architecture.
set(PACKAGE ${PROJECT_NAME})
set(PACKAGE_MAIL "APT Development Team <deity@lists.debian.org>")
-set(PACKAGE_VERSION "1.3~rc2ubuntu3")
+set(PACKAGE_VERSION "1.3~rc3")
if (NOT DEFINED COMMON_ARCH)
execute_process(COMMAND dpkg-architecture -qDEB_HOST_ARCH
OUTPUT_VARIABLE COMMON_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
+if (NOT DEFINED ROOT_GROUP)
+ execute_process(COMMAND id -gn root
+ OUTPUT_VARIABLE ROOT_GROUP OUTPUT_STRIP_TRAILING_WHITESPACE)
+ message(STATUS "Found root group: ${ROOT_GROUP}")
+endif()
+set(ROOT_GROUP "${ROOT_GROUP}" CACHE STRING "Group of root (e.g.: wheel or root)")
+
+# Set various directories
+set(STATE_DIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/apt" CACHE PATH "Your /var/lib/apt")
+set(CACHE_DIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/cache/apt" CACHE PATH "Your /var/cache/apt")
+set(LOG_DIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/apt" CACHE PATH "Your /var/log/apt")
+set(CONF_DIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}/apt" CACHE PATH "Your /etc/apt")
+set(LIBEXEC_DIR "${CMAKE_INSTALL_FULL_LIBEXECDIR}/apt" CACHE PATH "Your /usr/libexec/apt")
+set(BIN_DIR "${CMAKE_INSTALL_FULL_BINDIR}")
+
# Configure our configuration headers (config.h and apti18n.h)
configure_file(CMake/config.h.in ${PROJECT_BINARY_DIR}/include/config.h)
configure_file(CMake/apti18n.h.in ${PROJECT_BINARY_DIR}/include/apti18n.h)
-# Generic header locations
-include_directories(${PROJECT_BINARY_DIR}/include)
-
# Add our subdirectories
add_subdirectory(vendor)
add_subdirectory(apt-pkg)
@@ -144,8 +202,24 @@ add_subdirectory(doc)
add_subdirectory(dselect)
add_subdirectory(ftparchive)
add_subdirectory(methods)
-add_subdirectory(po)
add_subdirectory(test)
+if (USE_NLS)
+add_subdirectory(po)
+
# Link update-po4a into the update-po target
add_dependencies(update-po update-po4a)
+endif()
+
+# Create our directories.
+install_empty_directories(
+ ${CONF_DIR}/apt.conf.d
+ ${CONF_DIR}/preferences.d
+ ${CONF_DIR}/sources.list.d
+ ${CONF_DIR}/trusted.gpg.d
+ ${CACHE_DIR}/archives/partial
+ ${STATE_DIR}/lists/partial
+ ${STATE_DIR}/mirrors/partial
+ ${STATE_DIR}/periodic
+ ${LOG_DIR}
+)
diff --git a/COPYING b/COPYING
index c0e89b51a..2f9ab10e8 100644
--- a/COPYING
+++ b/COPYING
@@ -20,4 +20,3 @@ License: GPLv2+
See /usr/share/common-licenses/GPL-2, or
<http://www.gnu.org/copyleft/gpl.txt> for the terms of the latest version
of the GNU General Public License.
-
diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc
index 4853a13c7..474fb1cbe 100644
--- a/apt-inst/deb/debfile.cc
+++ b/apt-inst/deb/debfile.cc
@@ -113,7 +113,7 @@ bool debDebFile::ExtractTarMember(pkgDirStream &Stream,const char *Name)
Member = AR.FindMember(std::string(Name).append(c->Extension).c_str());
if (Member == NULL)
continue;
- Compressor = c->Binary;
+ Compressor = c->Name;
break;
}
diff --git a/apt-pkg/CMakeLists.txt b/apt-pkg/CMakeLists.txt
index ec78f49c4..34930c8e9 100644
--- a/apt-pkg/CMakeLists.txt
+++ b/apt-pkg/CMakeLists.txt
@@ -26,16 +26,21 @@ add_dependencies(apt-pkg apt-pkg-versionscript)
# Link the library and set the SONAME
target_include_directories(apt-pkg
PRIVATE ${ZLIB_INCLUDE_DIRS}
- ${BZIP2_INCLUDE_DIRS}
+ ${BZIP2_INCLUDE_DIR}
${LZMA_INCLUDE_DIRS}
- ${LZ4_INCLUDE_DIRS})
+ ${LZ4_INCLUDE_DIRS}
+ ${ICONV_DIRECTORIES}
+)
+
target_link_libraries(apt-pkg
- PRIVATE -lutil -ldl -lresolv
+ PRIVATE -lutil ${CMAKE_DL_LIBS} ${RESOLV_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
${ZLIB_LIBRARIES}
${BZIP2_LIBRARIES}
${LZMA_LIBRARIES}
- ${LZ4_LIBRARIES})
+ ${LZ4_LIBRARIES}
+ ${ICONV_LIBRARIES}
+)
set_target_properties(apt-pkg PROPERTIES VERSION ${MAJOR}.${MINOR})
set_target_properties(apt-pkg PROPERTIES SOVERSION ${MAJOR})
add_version_script(apt-pkg)
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc
index 7abb7b206..0e1614330 100644
--- a/apt-pkg/acquire-item.cc
+++ b/apt-pkg/acquire-item.cc
@@ -46,6 +46,7 @@
#include <ctime>
#include <sstream>
#include <numeric>
+#include <random>
#include <apti18n.h>
/*}}}*/
@@ -145,7 +146,7 @@ static void ReportMirrorFailureToCentral(pkgAcquire::Item const &I, std::string
<< FailCode << std::endl;
#endif
string const report = _config->Find("Methods::Mirror::ProblemReporting",
- "/usr/lib/apt/apt-report-mirror-failure");
+ LIBEXEC_DIR "/apt-report-mirror-failure");
if(!FileExists(report))
return;
@@ -1340,6 +1341,23 @@ void pkgAcqMetaClearSig::QueueIndexes(bool const verify) /*{{{*/
if (hasReleaseFile && verify == false)
hasHashes = std::any_of(IndexTargets.begin(), IndexTargets.end(),
[&](IndexTarget const &Target) { return TransactionManager->MetaIndexParser->Exists(Target.MetaKey); });
+ if (_config->FindB("Acquire::IndexTargets::Randomized", true) && likely(IndexTargets.empty() == false))
+ {
+ /* For fallback handling and to have some reasonable progress information
+ we can't randomize everything, but at least the order in the same type
+ can be as we shouldn't be telling the mirrors (and everyone else watching)
+ which is native/foreign arch, specific order of preference of translations, … */
+ auto range_start = IndexTargets.begin();
+ std::random_device rd;
+ std::default_random_engine g(rd());
+ do {
+ auto const type = range_start->Option(IndexTarget::CREATED_BY);
+ auto const range_end = std::find_if_not(range_start, IndexTargets.end(),
+ [&type](IndexTarget const &T) { return type == T.Option(IndexTarget::CREATED_BY); });
+ std::shuffle(range_start, range_end, g);
+ range_start = range_end;
+ } while (range_start != IndexTargets.end());
+ }
for (auto&& Target: IndexTargets)
{
// if we have seen a target which is created-by a target this one here is declared a
@@ -2047,7 +2065,7 @@ bool pkgAcqDiffIndex::ParseDiffIndex(string const &IndexDiffFile) /*{{{*/
HashStringList ServerHashes;
unsigned long long ServerSize = 0;
- auto const &posix = std::locale("C.UTF-8");
+ auto const &posix = std::locale::classic();
for (char const * const * type = HashString::SupportedHashes(); *type != NULL; ++type)
{
std::string tagname = *type;
@@ -3279,9 +3297,8 @@ bool pkgAcqArchive::QueueNext()
// Create the item
Local = false;
- QueueURI(Desc);
-
++Vf;
+ QueueURI(Desc);
return true;
}
return false;
@@ -3440,7 +3457,7 @@ void pkgAcqChangelog::Init(std::string const &DestDir, std::string const &DestFi
TemporaryDirectory = tmpname;
ChangeOwnerAndPermissionOfFile("Item::QueueURI", TemporaryDirectory.c_str(),
- SandboxUser.c_str(), "root", 0700);
+ SandboxUser.c_str(), ROOT_GROUP, 0700);
DestFile = flCombine(TemporaryDirectory, DestFileName);
if (DestDir.empty() == false)
@@ -3488,7 +3505,8 @@ std::string pkgAcqChangelog::URI(pkgCache::VerIterator const &Ver) /*{{{*/
pkgCache::PkgIterator const Pkg = Ver.ParentPkg();
if (Pkg->CurrentVer != 0 && Pkg.CurrentVer() == Ver)
{
- std::string const basename = std::string("/usr/share/doc/") + Pkg.Name() + "/changelog";
+ std::string const root = _config->FindDir("Dir");
+ std::string const basename = root + std::string("usr/share/doc/") + Pkg.Name() + "/changelog";
std::string const debianname = basename + ".Debian";
if (FileExists(debianname))
return "copy://" + debianname;
diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc
index a4fbc7651..7d6e6f79c 100644
--- a/apt-pkg/acquire-worker.cc
+++ b/apt-pkg/acquire-worker.cc
@@ -661,55 +661,15 @@ bool pkgAcquire::Worker::QueueItem(pkgAcquire::Queue::QItem *Item)
if (OutFd == -1)
return false;
- HashStringList const hsl = Item->GetExpectedHashes();
-
if (isDoomedItem(Item->Owner))
return true;
- if (hsl.usable() == false && Item->Owner->HashesRequired() &&
- _config->Exists("Acquire::ForceHash") == false)
- {
- std::string const Message = "400 URI Failure"
- "\nURI: " + Item->URI +
- "\nFilename: " + Item->Owner->DestFile +
- "\nFailReason: WeakHashSums";
-
- auto const ItmOwners = Item->Owners;
- for (auto &O: ItmOwners)
- {
- O->Status = pkgAcquire::Item::StatAuthError;
- O->Failed(Message, Config);
- if (Log != nullptr)
- Log->Fail(O->GetItemDesc());
- }
- // "queued" successfully, the item just instantly failed
- return true;
- }
-
- if (Item->Owner->IsRedirectionLoop(Item->URI))
- {
- std::string const Message = "400 URI Failure"
- "\nURI: " + Item->URI +
- "\nFilename: " + Item->Owner->DestFile +
- "\nFailReason: RedirectionLoop";
-
- auto const ItmOwners = Item->Owners;
- for (auto &O: ItmOwners)
- {
- O->Status = pkgAcquire::Item::StatError;
- O->Failed(Message, Config);
- if (Log != nullptr)
- Log->Fail(O->GetItemDesc());
- }
- // "queued" successfully, the item just instantly failed
- return true;
- }
-
string Message = "600 URI Acquire\n";
Message.reserve(300);
Message += "URI: " + Item->URI;
Message += "\nFilename: " + Item->Owner->DestFile;
+ HashStringList const hsl = Item->GetExpectedHashes();
for (HashStringList::const_iterator hs = hsl.begin(); hs != hsl.end(); ++hs)
Message += "\nExpected-" + hs->HashType() + ": " + hs->HashValue();
@@ -732,7 +692,7 @@ bool pkgAcquire::Worker::QueueItem(pkgAcquire::Queue::QItem *Item)
{
std::string const SandboxUser = _config->Find("APT::Sandbox::User");
ChangeOwnerAndPermissionOfFile("Item::QueueURI", Item->Owner->DestFile.c_str(),
- SandboxUser.c_str(), "root", 0600);
+ SandboxUser.c_str(), ROOT_GROUP, 0600);
}
if (Debug == true)
@@ -828,7 +788,7 @@ void pkgAcquire::Worker::PrepareFiles(char const * const caller, pkgAcquire::Que
{
if (RealFileExists(Itm->Owner->DestFile))
{
- ChangeOwnerAndPermissionOfFile(caller, Itm->Owner->DestFile.c_str(), "root", "root", 0644);
+ ChangeOwnerAndPermissionOfFile(caller, Itm->Owner->DestFile.c_str(), "root", ROOT_GROUP, 0644);
std::string const filename = Itm->Owner->DestFile;
for (pkgAcquire::Queue::QItem::owner_iterator O = Itm->Owners.begin(); O != Itm->Owners.end(); ++O)
{
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc
index 1efb772b4..b4d1b5959 100644
--- a/apt-pkg/acquire.cc
+++ b/apt-pkg/acquire.cc
@@ -80,7 +80,7 @@ void pkgAcquire::Initialize()
if (getuid() == 0 && SandboxUser.empty() == false && SandboxUser != "root") // if we aren't root, we can't chown, so don't try it
{
struct passwd const * const pw = getpwnam(SandboxUser.c_str());
- struct group const * const gr = getgrnam("root");
+ struct group const * const gr = getgrnam(ROOT_GROUP);
if (pw != NULL && gr != NULL)
{
std::string const AuthConf = _config->FindFile("Dir::Etc::netrc");
@@ -106,7 +106,7 @@ static bool SetupAPTPartialDirectory(std::string const &grand, std::string const
if (getuid() == 0 && SandboxUser.empty() == false && SandboxUser != "root") // if we aren't root, we can't chown, so don't try it
{
struct passwd const * const pw = getpwnam(SandboxUser.c_str());
- struct group const * const gr = getgrnam("root");
+ struct group const * const gr = getgrnam(ROOT_GROUP);
if (pw != NULL && gr != NULL)
{
// chown the partial dir
@@ -269,6 +269,42 @@ void pkgAcquire::Remove(Worker *Work)
it is constructed which creates a queue (based on the current queue
mode) and puts the item in that queue. If the system is running then
the queue might be started. */
+static bool CheckForBadItemAndFailIt(pkgAcquire::Item * const Item,
+ pkgAcquire::MethodConfig const * const Config, pkgAcquireStatus * const Log)
+{
+ auto SavedDesc = Item->GetItemDesc();
+ if (Item->IsRedirectionLoop(SavedDesc.URI))
+ {
+ std::string const Message = "400 URI Failure"
+ "\nURI: " + SavedDesc.URI +
+ "\nFilename: " + Item->DestFile +
+ "\nFailReason: RedirectionLoop";
+
+ Item->Status = pkgAcquire::Item::StatError;
+ Item->Failed(Message, Config);
+ if (Log != nullptr)
+ Log->Fail(SavedDesc);
+ return true;
+ }
+
+ HashStringList const hsl = Item->GetExpectedHashes();
+ if (hsl.usable() == false && Item->HashesRequired() &&
+ _config->Exists("Acquire::ForceHash") == false)
+ {
+ std::string const Message = "400 URI Failure"
+ "\nURI: " + SavedDesc.URI +
+ "\nFilename: " + Item->DestFile +
+ "\nFailReason: WeakHashSums";
+
+ auto SavedDesc = Item->GetItemDesc();
+ Item->Status = pkgAcquire::Item::StatAuthError;
+ Item->Failed(Message, Config);
+ if (Log != nullptr)
+ Log->Fail(SavedDesc);
+ return true;
+ }
+ return false;
+}
void pkgAcquire::Enqueue(ItemDesc &Item)
{
// Determine which queue to put the item in
@@ -277,6 +313,13 @@ void pkgAcquire::Enqueue(ItemDesc &Item)
if (Name.empty() == true)
return;
+ /* the check for running avoids that we produce errors
+ in logging before we actually have started, which would
+ be easier to implement but would confuse users/implementations
+ so we check the items skipped here in #Startup */
+ if (Running && CheckForBadItemAndFailIt(Item.Owner, Config, Log))
+ return;
+
// Find the queue structure
Queue *I = Queues;
for (; I != 0 && I->Name != Name; I = I->Next);
@@ -912,10 +955,20 @@ bool pkgAcquire::Queue::Startup()
if (Workers == 0)
{
URI U(Name);
- pkgAcquire::MethodConfig *Cnf = Owner->GetConfig(U.Access);
- if (Cnf == 0)
+ pkgAcquire::MethodConfig * const Cnf = Owner->GetConfig(U.Access);
+ if (unlikely(Cnf == nullptr))
return false;
-
+
+ // now-running twin of the pkgAcquire::Enqueue call
+ for (QItem *I = Items; I != 0; )
+ {
+ auto const INext = I->Next;
+ for (auto &&O: I->Owners)
+ CheckForBadItemAndFailIt(O, Cnf, Owner->Log);
+ // if an item failed, it will be auto-dequeued invalidation our I here
+ I = INext;
+ }
+
Workers = new Worker(this,Cnf,Owner->Log);
Owner->Add(Workers);
if (Workers->Start() == false)
@@ -1259,7 +1312,7 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner)
// build the status str
std::ostringstream str;
- str.imbue(std::locale("C.UTF-8"));
+ str.imbue(std::locale::classic());
str.precision(4);
str << "dlstatus" << ':' << std::fixed << i << ':' << Percent << ':' << msg << '\n';
auto const dlstatus = str.str();
diff --git a/apt-pkg/contrib/gpgv.cc b/apt-pkg/contrib/gpgv.cc
index 8796195b8..941f901e8 100644
--- a/apt-pkg/contrib/gpgv.cc
+++ b/apt-pkg/contrib/gpgv.cc
@@ -48,7 +48,7 @@ void ExecGPGV(std::string const &File, std::string const &FileGPG,
int const &statusfd, int fd[2], std::string const &key)
{
#define EINTERNAL 111
- std::string const aptkey = _config->Find("Dir::Bin::apt-key", "/usr/bin/apt-key");
+ std::string const aptkey = _config->Find("Dir::Bin::apt-key", CMAKE_INSTALL_FULL_BINDIR "/apt-key");
bool const Debug = _config->FindB("Debug::Acquire::gpgv", false);
struct exiter {
diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc
index 6c72859d4..66b0078dc 100644
--- a/apt-pkg/contrib/strutl.cc
+++ b/apt-pkg/contrib/strutl.cc
@@ -21,6 +21,7 @@
#include <apt-pkg/fileutl.h>
#include <apt-pkg/error.h>
+#include <array>
#include <algorithm>
#include <iomanip>
#include <locale>
@@ -758,7 +759,7 @@ string TimeRFC1123(time_t Date, bool const NumericTimezone)
if (gmtime_r(&Date, &Conv) == NULL)
return "";
- auto const posix = std::locale("C.UTF-8");
+ auto const posix = std::locale::classic();
std::ostringstream datestr;
datestr.imbue(posix);
APT::StringView const fmt("%a, %d %b %Y %H:%M:%S");
@@ -945,7 +946,7 @@ bool RFC1123StrToTime(const char* const str,time_t &time)
signed int year = 0; // yes, Y23K problem – we gonna worry then…
std::string weekday, month, datespec, timespec, zone;
std::istringstream ss(str);
- auto const &posix = std::locale("C.UTF-8");
+ auto const &posix = std::locale::classic();
ss.imbue(posix);
ss >> weekday;
// we only superficially check weekday, mostly to avoid accepting localized
diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc
index 65bd3e6ee..c55847305 100644
--- a/apt-pkg/deb/debindexfile.cc
+++ b/apt-pkg/deb/debindexfile.cc
@@ -30,6 +30,7 @@
#include <sstream>
#include <sys/stat.h>
+#include <unistd.h>
/*}}}*/
// Sources Index /*{{{*/
diff --git a/apt-pkg/deb/debsystem.cc b/apt-pkg/deb/debsystem.cc
index f7968ec47..899f7328b 100644
--- a/apt-pkg/deb/debsystem.cc
+++ b/apt-pkg/deb/debsystem.cc
@@ -188,7 +188,7 @@ static std::string getDpkgStatusLocation(Configuration const &Cnf) {
Configuration PathCnf;
PathCnf.Set("Dir", Cnf.Find("Dir", "/"));
PathCnf.Set("Dir::State::status", "status");
- auto const cnfstatedir = Cnf.Find("Dir::State", "var/lib/apt/");
+ auto const cnfstatedir = Cnf.Find("Dir::State", STATE_DIR + 1);
// if the state dir ends in apt, replace it with dpkg -
// for the default this gives us the same as the fallback below.
// This can't be a ../dpkg as that would play bad with symlinks
@@ -211,7 +211,7 @@ bool debSystem::Initialize(Configuration &Cnf)
Cnf.CndSet("Dir::State::extended_states", "extended_states");
if (Cnf.Exists("Dir::State::status") == false)
Cnf.Set("Dir::State::status", getDpkgStatusLocation(Cnf));
- Cnf.CndSet("Dir::Bin::dpkg","/usr/bin/dpkg");
+ Cnf.CndSet("Dir::Bin::dpkg",BIN_DIR"/dpkg");
if (d->StatusFile) {
delete d->StatusFile;
@@ -239,9 +239,9 @@ APT_PURE bool debSystem::ArchiveSupported(const char *Type)
signed debSystem::Score(Configuration const &Cnf)
{
signed Score = 0;
- if (FileExists(Cnf.FindFile("Dir::State::status","/var/lib/dpkg/status")) == true)
+ if (FileExists(Cnf.FindFile("Dir::State::status",getDpkgStatusLocation(Cnf).c_str())) == true)
Score += 10;
- if (FileExists(Cnf.Find("Dir::Bin::dpkg","/usr/bin/dpkg")) == true)
+ if (FileExists(Cnf.Find("Dir::Bin::dpkg",BIN_DIR"/dpkg")) == true)
Score += 10;
if (FileExists("/etc/debian_version") == true)
Score += 10;
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index c8807b82c..9d1739d68 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -61,6 +61,8 @@
#include <apti18n.h>
/*}}}*/
+extern char **environ;
+
using namespace std;
APT_PURE static string AptHistoryRequestingUser() /*{{{*/
@@ -417,7 +419,6 @@ bool pkgDPkgPM::SendPkgsInfo(FILE * const F, unsigned int const &Version)
bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf)
{
bool result = true;
- static bool interrupted = false;
Configuration::Item const *Opts = _config->Tree(Cnf);
if (Opts == 0 || Opts->Child == 0)
@@ -425,9 +426,8 @@ bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf)
Opts = Opts->Child;
sighandler_t old_sigpipe = signal(SIGPIPE, SIG_IGN);
- sighandler_t old_sigint = signal(SIGINT, [](int signum){
- interrupted = true;
- });
+ sighandler_t old_sigint = signal(SIGINT, SIG_IGN);
+ sighandler_t old_sigquit = signal(SIGQUIT, SIG_IGN);
unsigned int Count = 1;
for (; Opts != 0; Opts = Opts->Next, Count++)
@@ -528,9 +528,7 @@ bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf)
}
signal(SIGINT, old_sigint);
signal(SIGPIPE, old_sigpipe);
-
- if (interrupted)
- result = _error->Error("Interrupted");
+ signal(SIGQUIT, old_sigquit);
return result;
}
@@ -1343,10 +1341,16 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
std::distance(List.cbegin(), List.cend());
ExpandPendingCalls(List, Cache);
- auto const StripAlreadyDoneFromPending = [&](APT::VersionVector & Pending) {
+ /* if dpkg told us that it has already done everything to the package we wanted it to do,
+ we shouldn't ask it for "more" later. That can e.g. happen if packages without conffiles
+ are purged as they will have pass through the purge states on remove already */
+ auto const StripAlreadyDoneFrom = [&](APT::VersionVector & Pending) {
Pending.erase(std::remove_if(Pending.begin(), Pending.end(), [&](pkgCache::VerIterator const &Ver) {
auto const PN = Ver.ParentPkg().FullName();
- return PackageOps[PN].size() <= PackageOpsDone[PN];
+ auto const POD = PackageOpsDone.find(PN);
+ if (POD == PackageOpsDone.end())
+ return false;
+ return PackageOps[PN].size() <= POD->second;
}), Pending.end());
};
@@ -1679,7 +1683,9 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
{
if (I->File[0] != '/')
return _error->Error("Internal Error, Pathname to install is not absolute '%s'",I->File.c_str());
- auto const file = flNotDir(I->File);
+ auto file = flNotDir(I->File);
+ if (flExtension(file) != "deb")
+ file.append(".deb");
std::string linkpath;
if (dpkg_recursive_install_numbered)
strprintf(linkpath, "%s/%.*lu-%s", tmpdir_to_free, p, n, file.c_str());
@@ -1705,7 +1711,7 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
else if (I->Op == Item::RemovePending)
{
++I;
- StripAlreadyDoneFromPending(approvedStates.Remove());
+ StripAlreadyDoneFrom(approvedStates.Remove());
if (approvedStates.Remove().empty())
continue;
}
@@ -1714,7 +1720,7 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
++I;
// explicit removes of packages without conffiles passthrough the purge states instantly, too.
// Setting these non-installed packages up for purging generates 'unknown pkg' warnings from dpkg
- StripAlreadyDoneFromPending(approvedStates.Purge());
+ StripAlreadyDoneFrom(approvedStates.Purge());
if (approvedStates.Purge().empty())
continue;
std::remove_reference<decltype(approvedStates.Remove())>::type approvedRemoves;
@@ -1966,8 +1972,8 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
if (d->dpkg_error.empty() == false)
{
// no point in reseting packages we already completed removal for
- StripAlreadyDoneFromPending(approvedStates.Remove());
- StripAlreadyDoneFromPending(approvedStates.Purge());
+ StripAlreadyDoneFrom(approvedStates.Remove());
+ StripAlreadyDoneFrom(approvedStates.Purge());
APT::StateChanges undo;
auto && undoRem = approvedStates.Remove();
std::move(undoRem.begin(), undoRem.end(), std::back_inserter(undo.Install()));
@@ -1977,6 +1983,9 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
if (undo.Save(false) == false)
_error->Error("Couldn't revert dpkg selection for approved remove/purge after an error was encountered!");
}
+
+ StripAlreadyDoneFrom(currentStates.Remove());
+ StripAlreadyDoneFrom(currentStates.Purge());
if (currentStates.Save(false) == false)
_error->Error("Couldn't restore dpkg selection states which were present before this interaction!");
diff --git a/apt-pkg/edsp/edsplistparser.cc b/apt-pkg/edsp/edsplistparser.cc
index dd8890f0e..c6fd528da 100644
--- a/apt-pkg/edsp/edsplistparser.cc
+++ b/apt-pkg/edsp/edsplistparser.cc
@@ -21,6 +21,8 @@
#include <apt-pkg/fileutl.h>
#include <apt-pkg/pkgsystem.h>
+#include <array>
+
/*}}}*/
// ListParser::edspListParser - Constructor /*{{{*/
diff --git a/apt-pkg/indexcopy.cc b/apt-pkg/indexcopy.cc
index 4a35e3847..ca5c42cb7 100644
--- a/apt-pkg/indexcopy.cc
+++ b/apt-pkg/indexcopy.cc
@@ -207,7 +207,7 @@ bool IndexCopy::CopyPackages(string CDROM,string Name,vector<string> &List,
FinalF += URItoFileName(S);
if (rename(TargetF.c_str(),FinalF.c_str()) != 0)
return _error->Errno("rename","Failed to rename");
- ChangeOwnerAndPermissionOfFile("CopyPackages", FinalF.c_str(), "root", "root", 0644);
+ ChangeOwnerAndPermissionOfFile("CopyPackages", FinalF.c_str(), "root", ROOT_GROUP, 0644);
}
/* Mangle the source to be in the proper notation with
@@ -531,7 +531,7 @@ bool SigVerify::CopyMetaIndex(string CDROM, string CDName, /*{{{*/
Rel.Open(prefix + file,FileFd::ReadOnly);
if (CopyFile(Rel,Target) == false || Target.Close() == false)
return _error->Error("Copying of '%s' for '%s' from '%s' failed", file.c_str(), CDName.c_str(), prefix.c_str());
- ChangeOwnerAndPermissionOfFile("CopyPackages", TargetF.c_str(), "root", "root", 0644);
+ ChangeOwnerAndPermissionOfFile("CopyPackages", TargetF.c_str(), "root", ROOT_GROUP, 0644);
return true;
}
@@ -738,7 +738,7 @@ bool TranslationsCopy::CopyTranslations(string CDROM,string Name, /*{{{*/
FinalF += URItoFileName(S);
if (rename(TargetF.c_str(),FinalF.c_str()) != 0)
return _error->Errno("rename","Failed to rename");
- ChangeOwnerAndPermissionOfFile("CopyTranslations", FinalF.c_str(), "root", "root", 0644);
+ ChangeOwnerAndPermissionOfFile("CopyTranslations", FinalF.c_str(), "root", ROOT_GROUP, 0644);
}
CurrentSize += FileSize;
diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc
index fa679e6c6..292d75071 100644
--- a/apt-pkg/init.cc
+++ b/apt-pkg/init.cc
@@ -47,19 +47,19 @@ bool pkgInitConfig(Configuration &Cnf)
Cnf.CndSet("Dir","/");
// State
- Cnf.CndSet("Dir::State","var/lib/apt/");
+ Cnf.CndSet("Dir::State", STATE_DIR + 1);
Cnf.CndSet("Dir::State::lists","lists/");
Cnf.CndSet("Dir::State::cdroms","cdroms.list");
Cnf.CndSet("Dir::State::mirrors","mirrors/");
// Cache
- Cnf.CndSet("Dir::Cache","var/cache/apt/");
+ Cnf.CndSet("Dir::Cache", CACHE_DIR + 1);
Cnf.CndSet("Dir::Cache::archives","archives/");
Cnf.CndSet("Dir::Cache::srcpkgcache","srcpkgcache.bin");
Cnf.CndSet("Dir::Cache::pkgcache","pkgcache.bin");
// Configuration
- Cnf.CndSet("Dir::Etc","etc/apt/");
+ Cnf.CndSet("Dir::Etc", CONF_DIR + 1);
Cnf.CndSet("Dir::Etc::sourcelist","sources.list");
Cnf.CndSet("Dir::Etc::sourceparts","sources.list.d");
Cnf.CndSet("Dir::Etc::main","apt.conf");
@@ -69,12 +69,13 @@ bool pkgInitConfig(Configuration &Cnf)
Cnf.CndSet("Dir::Etc::preferencesparts","preferences.d");
Cnf.CndSet("Dir::Etc::trusted", "trusted.gpg");
Cnf.CndSet("Dir::Etc::trustedparts","trusted.gpg.d");
- Cnf.CndSet("Dir::Bin::methods","/usr/lib/apt/methods");
- Cnf.CndSet("Dir::Bin::solvers::","/usr/lib/apt/solvers");
+ Cnf.CndSet("Dir::Bin::methods", LIBEXEC_DIR "/methods");
+ Cnf.CndSet("Dir::Bin::solvers::",LIBEXEC_DIR "/solvers");
+ Cnf.CndSet("Dir::Bin::planners::",LIBEXEC_DIR "/planners");
Cnf.CndSet("Dir::Media::MountPath","/media/apt");
// State
- Cnf.CndSet("Dir::Log","var/log/apt");
+ Cnf.CndSet("Dir::Log", LOG_DIR + 1);
Cnf.CndSet("Dir::Log::Terminal","term.log");
Cnf.CndSet("Dir::Log::History","history.log");
Cnf.CndSet("Dir::Log::Planner","eipp.log.xz");
diff --git a/apt-pkg/install-progress.cc b/apt-pkg/install-progress.cc
index 256495420..6c3e51b2c 100644
--- a/apt-pkg/install-progress.cc
+++ b/apt-pkg/install-progress.cc
@@ -84,7 +84,7 @@ static std::string GetProgressFdString(char const * const status,
{
float const progress{Done / static_cast<float>(Total) * 100};
std::ostringstream str;
- str.imbue(std::locale("C.UTF-8"));
+ str.imbue(std::locale::classic());
str.precision(4);
str << status << ':' << pkg << ':' << std::fixed << progress << ':' << msg << '\n';
return str.str();
@@ -165,7 +165,7 @@ static std::string GetProgressDeb822String(char const * const status,
{
float const progress{Done / static_cast<float>(Total) * 100};
std::ostringstream str;
- str.imbue(std::locale("C.UTF-8"));
+ str.imbue(std::locale::classic());
str.precision(4);
str << "Status: " << status << '\n';
if (pkg != nullptr)
diff --git a/apt-pkg/install-progress.h b/apt-pkg/install-progress.h
index 23ddbbec6..b5c133676 100644
--- a/apt-pkg/install-progress.h
+++ b/apt-pkg/install-progress.h
@@ -38,7 +38,7 @@ namespace Progress {
*/
virtual void StartDpkg() {};
- virtual pid_t fork() {return fork(); };
+ virtual pid_t fork() {return ::fork(); };
virtual void Pulse() {};
virtual long GetPulseInterval() {
diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc
index ff59fb0ac..3dd6ddac4 100644
--- a/apt-pkg/policy.cc
+++ b/apt-pkg/policy.cc
@@ -180,14 +180,13 @@ void pkgPolicy::CreatePin(pkgVersionMatch::MatchType Type,string Name,
Name.erase(found);
}
- // Allow pinning by wildcards
- // TODO: Maybe we should always prefer specific pins over non-
- // specific ones.
- if (Name[0] == '/' || Name.find_first_of("*[?") != string::npos)
+ // Allow pinning by wildcards - beware of package names looking like wildcards!
+ // TODO: Maybe we should always prefer specific pins over non-specific ones.
+ if ((Name[0] == '/' && Name[Name.length() - 1] == '/') || Name.find_first_of("*[?") != string::npos)
{
pkgVersionMatch match(Data, Type);
for (pkgCache::GrpIterator G = Cache->GrpBegin(); G.end() != true; ++G)
- if (match.ExpressionMatches(Name, G.Name()))
+ if (Name != G.Name() && match.ExpressionMatches(Name, G.Name()))
{
if (Arch.empty() == false)
CreatePin(Type, string(G.Name()).append(":").append(Arch), Data, Priority);
diff --git a/apt-pkg/sourcelist.cc b/apt-pkg/sourcelist.cc
index cfd824978..0da687895 100644
--- a/apt-pkg/sourcelist.cc
+++ b/apt-pkg/sourcelist.cc
@@ -568,7 +568,8 @@ bool pkgSourceList::AddVolatileFile(std::string const &File, std::vector<std::st
return false;
std::string const ext = flExtension(File);
- if (ext == "deb")
+ // udeb is not included as installing it is usually a mistake rather than intended
+ if (ext == "deb" || ext == "ddeb")
AddVolatileFile(new debDebPkgFileIndex(File));
else if (ext == "dsc")
AddVolatileFile(new debDscFileIndex(File));
diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc
index a890aafab..d0cda08a6 100644
--- a/apt-private/private-cmndline.cc
+++ b/apt-private/private-cmndline.cc
@@ -189,6 +189,7 @@ static bool addArgumentsAPTGet(std::vector<CommandLine::Args> &Args, char const
addArg('f', "fix-broken", "APT::Get::Fix-Broken", 0);
addArg(0, "purge", "APT::Get::Purge", 0);
addArg('V',"verbose-versions","APT::Get::Show-Versions",0);
+ addArg(0, "autoremove", "APT::Get::AutomaticRemove", 0);
addArg(0, "auto-remove", "APT::Get::AutomaticRemove", 0);
addArg(0, "reinstall", "APT::Get::ReInstall", 0);
addArg(0, "solver", "APT::Solver", CommandLine::HasArg);
diff --git a/apt-private/private-download.cc b/apt-private/private-download.cc
index c85a49727..d0cbbcf50 100644
--- a/apt-private/private-download.cc
+++ b/apt-private/private-download.cc
@@ -25,7 +25,14 @@
#include <sys/types.h>
#include <pwd.h>
#include <fcntl.h>
+#ifdef HAVE_VFS_H
#include <sys/vfs.h>
+#else
+#ifdef HAVE_PARAMS_H
+#include <sys/params.h>
+#endif
+#include <sys/mount.h>
+#endif
#include <sys/statvfs.h>
#include <sys/stat.h>
#include <errno.h>
diff --git a/apt-private/private-show.cc b/apt-private/private-show.cc
index 03229476e..27338a08c 100644
--- a/apt-private/private-show.cc
+++ b/apt-private/private-show.cc
@@ -24,6 +24,7 @@
#include <apt-private/private-show.h>
#include <stdio.h>
+#include <unistd.h>
#include <ostream>
#include <string>
diff --git a/cmdline/apt-helper.cc b/cmdline/apt-helper.cc
index fd99fba8b..a6f88ad06 100644
--- a/cmdline/apt-helper.cc
+++ b/cmdline/apt-helper.cc
@@ -29,6 +29,7 @@
#include <string>
#include <vector>
+#include <unistd.h>
#include <stdlib.h>
#include <apti18n.h>
diff --git a/cmdline/apt-key.in b/cmdline/apt-key.in
index 81314c7f5..0c10e5955 100644
--- a/cmdline/apt-key.in
+++ b/cmdline/apt-key.in
@@ -232,6 +232,17 @@ remove_key_from_keyring() {
done
}
+accessible_file_exists() {
+ if ! test -s "$1"; then
+ return 1
+ fi
+ if test -r "$1"; then
+ return 0
+ fi
+ warn "The key(s) in the keyring $1 are ignored as the file is not readable by user '$USER' executing apt-key."
+ return 1
+}
+
foreach_keyring_do() {
local ACTION="$1"
shift
@@ -240,7 +251,7 @@ foreach_keyring_do() {
$ACTION "$FORCED_KEYRING" "$@"
else
# otherwise all known keyrings are up for inspection
- if [ -s "$TRUSTEDFILE" ]; then
+ if accessible_file_exists "$TRUSTEDFILE"; then
$ACTION "$TRUSTEDFILE" "$@"
fi
local TRUSTEDPARTS="/etc/apt/trusted.gpg.d"
@@ -249,7 +260,7 @@ foreach_keyring_do() {
TRUSTEDPARTS="$(readlink -f "$TRUSTEDPARTS")"
local TRUSTEDPARTSLIST="$(cd /; find "$TRUSTEDPARTS" -mindepth 1 -maxdepth 1 -name '*.gpg')"
for trusted in $(echo "$TRUSTEDPARTSLIST" | sort); do
- if [ -s "$trusted" ]; then
+ if accessible_file_exists "$trusted"; then
$ACTION "$trusted" "$@"
fi
done
@@ -302,35 +313,18 @@ import_keyring_into_keyring() {
fi
}
+catfile() {
+ cat "$1" >> "$2"
+}
+
merge_all_trusted_keyrings_into_pubring() {
# does the same as:
# foreach_keyring_do 'import_keys_from_keyring' "${GPGHOMEDIR}/pubring.gpg"
# but without using gpg, just cat and find
- local PUBRING="$(readlink -f "${GPGHOMEDIR}/pubring.gpg")"
- # if a --keyring was given, just use this one
- if [ -n "$FORCED_KEYRING" ]; then
- if [ -s "$FORCED_KEYRING" ]; then
- cp --dereference "$FORCED_KEYRING" "$PUBRING"
- fi
- else
- # otherwise all known keyrings are merged
- local TRUSTEDPARTS="/etc/apt/trusted.gpg.d"
- eval $(apt-config shell TRUSTEDPARTS Dir::Etc::TrustedParts/d)
- if [ -d "$TRUSTEDPARTS" ]; then
- rm -f "$PUBRING"
- if [ -s "$TRUSTEDFILE" ]; then
- cat "$TRUSTEDFILE" > "$PUBRING"
- fi
- TRUSTEDPARTS="$(readlink -f "$TRUSTEDPARTS")"
- (cd /; find "$TRUSTEDPARTS" -mindepth 1 -maxdepth 1 -name '*.gpg' -exec cat {} + >> "$PUBRING";)
- elif [ -s "$TRUSTEDFILE" ]; then
- cp --dereference "$TRUSTEDFILE" "$PUBRING"
- fi
- fi
-
- if [ ! -s "$PUBRING" ]; then
- touch "$PUBRING"
- fi
+ local PUBRING="$(readlink -f "${GPGHOMEDIR}")/pubring.gpg"
+ rm -f "$PUBRING"
+ touch "$PUBRING"
+ foreach_keyring_do 'catfile' "$PUBRING"
}
import_keys_from_keyring() {
@@ -480,8 +474,34 @@ if [ -z "$command" ]; then
fi
shift
+find_gpgv_status_fd() {
+ while [ -n "$1" ]; do
+ if [ "$1" = '--status-fd' ]; then
+ shift
+ echo "$1"
+ break
+ fi
+ shift
+ done
+}
+GPGSTATUSFD="$(find_gpgv_status_fd "$@")"
+
+warn() {
+ if [ -z "$GPGHOMEDIR" ]; then
+ echo >&2 'W:' "$@"
+ else
+ echo 'W:' "$@" > "${GPGHOMEDIR}/aptwarnings.log"
+ fi
+ if [ -n "$GPGSTATUSFD" ]; then
+ echo >&${GPGSTATUSFD} '[APTKEY:] WARNING' "$@"
+ fi
+}
+
cleanup_gpg_home() {
if [ -z "$GPGHOMEDIR" ]; then return; fi
+ if [ -s "$GPGHOMEDIR/aptwarnings.log" ]; then
+ cat >&2 "$GPGHOMEDIR/aptwarnings.log"
+ fi
if command_available 'gpgconf'; then
GNUPGHOME="${GPGHOMEDIR}" gpgconf --kill gpg-agent >/dev/null 2>&1 || true
fi
diff --git a/cmdline/apt-sortpkgs.cc b/cmdline/apt-sortpkgs.cc
index b80bbedd6..cf19b84ec 100644
--- a/cmdline/apt-sortpkgs.cc
+++ b/cmdline/apt-sortpkgs.cc
@@ -29,6 +29,7 @@
#include <vector>
#include <algorithm>
#include <stdio.h>
+#include <unistd.h>
#include <iostream>
#include <string>
#include <memory>
diff --git a/debian/README.source b/debian/README.source
deleted file mode 100644
index 9da152556..000000000
--- a/debian/README.source
+++ /dev/null
@@ -1,6 +0,0 @@
-Build this package with:
-$ debian/rules arch-build
-or
-$ DEB_BUILD_PROG_OPTS="-S" debian/rules arch-build
-
-make sure you have the pre-build-depds in README.arch installed
diff --git a/debian/apt-doc.docs b/debian/apt-doc.docs
index 2058000c1..bd494002c 100644
--- a/debian/apt-doc.docs
+++ b/debian/apt-doc.docs
@@ -1,6 +1,4 @@
-build/docs/guide*
-build/docs/offline*
README.progress-reporting
+doc/acquire-additional-files.txt
doc/external-dependency-solver-protocol.txt
doc/external-installation-planner-protocol.txt
-doc/acquire-additional-files.txt
diff --git a/debian/apt-transport-https.dirs b/debian/apt-transport-https.dirs
deleted file mode 100644
index 3abb3fee8..000000000
--- a/debian/apt-transport-https.dirs
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/apt/methods
diff --git a/debian/apt-transport-https.files b/debian/apt-transport-https.install
index 7b14886df..7b14886df 100644
--- a/debian/apt-transport-https.files
+++ b/debian/apt-transport-https.install
diff --git a/debian/apt-utils.dirs b/debian/apt-utils.dirs
deleted file mode 100644
index de7fa756e..000000000
--- a/debian/apt-utils.dirs
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/lib/apt/solvers
-usr/lib/apt/planners
-usr/bin
diff --git a/debian/apt-utils.examples b/debian/apt-utils.examples
deleted file mode 100644
index 25aadf996..000000000
--- a/debian/apt-utils.examples
+++ /dev/null
@@ -1 +0,0 @@
-doc/examples/apt-ftparchive.conf \ No newline at end of file
diff --git a/debian/apt-utils.install b/debian/apt-utils.install
index 178b528b7..a27f1e1e4 100644
--- a/debian/apt-utils.install
+++ b/debian/apt-utils.install
@@ -1,20 +1,13 @@
-usr/share/locale/*/*/apt-utils.mo
-
+usr/bin/apt-extracttemplates
usr/bin/apt-ftparchive
usr/bin/apt-sortpkgs
-usr/bin/apt-extracttemplates
-
-usr/share/man/*/apt-ftparchive.*
+usr/lib/apt/planners/
+usr/lib/apt/solvers/
+usr/share/doc/apt-utils
+usr/share/locale/*/*/apt-utils.mo
+usr/share/man/*/*/apt-extracttemplates.*
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
+usr/share/man/*/apt-ftparchive.*
+usr/share/man/*/apt-sortpkgs.*
diff --git a/debian/apt.auto-removal.sh b/debian/apt.auto-removal.sh
index 608d950b5..df9048cd6 100644
--- a/debian/apt.auto-removal.sh
+++ b/debian/apt.auto-removal.sh
@@ -25,7 +25,7 @@ debverlist="$(echo "$list" | cut -d' ' -f 2 | sort --unique --reverse --version-
if [ -n "$1" ]; then
installed_version="$(echo "$list" | awk "\$1 == \"$1\" { print \$2;exit; }")"
fi
-unamer="$(uname -r)"
+unamer="$(uname -r | tr '[A-Z]' '[a-z]')"
if [ -n "$unamer" ]; then
running_version="$(echo "$list" | awk "\$1 == \"$unamer\" { print \$2;exit; }")"
fi
diff --git a/debian/apt.dirs b/debian/apt.dirs
index 7d46801df..bdc5adddb 100644
--- a/debian/apt.dirs
+++ b/debian/apt.dirs
@@ -1,20 +1 @@
-usr/bin
-usr/lib/apt/methods
-usr/lib/apt/solvers
-usr/lib/apt/planners
-usr/lib/dpkg/methods/apt
-etc/apt
-etc/apt/apt.conf.d
-etc/apt/preferences.d
-etc/apt/sources.list.d
-etc/apt/trusted.gpg.d
etc/kernel/postinst.d
-etc/logrotate.d
-var/cache/apt/archives/partial
-var/lib/apt/lists/partial
-var/lib/apt/mirrors/partial
-var/lib/apt/periodic
-var/log/apt
-usr/share/bug/apt
-usr/share/bash-completion/completions/
-lib/systemd/system/
diff --git a/debian/apt.examples b/debian/apt.examples
deleted file mode 100644
index 622ef80b1..000000000
--- a/debian/apt.examples
+++ /dev/null
@@ -1 +0,0 @@
-build/docs/examples/*
diff --git a/debian/apt.files b/debian/apt.files
deleted file mode 100644
index 572475192..000000000
--- a/debian/apt.files
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib/apt/solvers/dump
-usr/lib/apt/planners/dump
diff --git a/debian/apt.install b/debian/apt.install
index a8a56c925..2c2187849 100644
--- a/debian/apt.install
+++ b/debian/apt.install
@@ -1,39 +1,41 @@
+debian/*.service /lib/systemd/system/
+debian/*.timer /lib/systemd/system/
+debian/apt.systemd.daily usr/lib/apt
+etc/apt/
usr/bin/apt
-usr/bin/apt-get
usr/bin/apt-cache
usr/bin/apt-cdrom
usr/bin/apt-config
+usr/bin/apt-get
usr/bin/apt-key
usr/bin/apt-mark
+usr/lib/*/libapt-private.so*
+usr/lib/apt/apt-helper
usr/lib/apt/methods/
+usr/lib/apt/planners/dump
+usr/lib/apt/solvers/dump
usr/lib/dpkg/methods/apt/
+usr/share/bash-completion/completions/
+usr/share/doc/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-get.*
usr/share/man/*/*/apt-key.*
usr/share/man/*/*/apt-mark.*
usr/share/man/*/*/apt-secure.*
-usr/share/man/*/*/sources.list.*
+usr/share/man/*/*/apt.*
usr/share/man/*/*/apt_preferences.*
-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
+usr/share/man/*/*/sources.list.*
+usr/share/man/*/apt-cache.*
+usr/share/man/*/apt-cdrom.*
+usr/share/man/*/apt-config.*
+usr/share/man/*/apt-get.*
+usr/share/man/*/apt-key.*
+usr/share/man/*/apt-mark.*
+usr/share/man/*/apt-secure.*
+usr/share/man/*/apt.*
+usr/share/man/*/apt_preferences.*
+usr/share/man/*/sources.list.*
+var/
diff --git a/debian/apt.lintian-overrides b/debian/apt.lintian-overrides
index e51d1119f..7d1e892a3 100644
--- a/debian/apt.lintian-overrides
+++ b/debian/apt.lintian-overrides
@@ -1,2 +1,5 @@
# the private library is for internal sharing only
apt: package-name-doesnt-match-sonames
+apt: systemd-service-file-missing-install-key lib/systemd/system/apt-daily.service
+apt: shlib-calls-exit usr/lib*/libapt-private.so.0.0.0
+apt: no-symbols-control-file usr/lib*/libapt-private.so.0.0.0
diff --git a/debian/apt.maintscript b/debian/apt.maintscript
index f461e673a..296f83bd5 100644
--- a/debian/apt.maintscript
+++ b/debian/apt.maintscript
@@ -1,4 +1,3 @@
rm_conffile /etc/apt/apt.conf.d/20changelog 1.2.4~
# we use a systemd timer unit now
rm_conffile /etc/cron.daily/apt 1.2.10~
-
diff --git a/debian/changelog b/debian/changelog
index 42a0a5ea6..bdf95c1ac 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,57 @@
+apt (1.3~rc3) unstable; urgency=medium
+
+ [ Julian Andres Klode ]
+ * Ignore SIGINT and SIGQUIT for Pre-Install hooks
+ This basically fixes Bug #832593, as long as your /bin/sh
+ is not dash, as dash is evil.
+ * prepare-release: Use equivs and gdebi-core for travis deps
+ * install-progress: Call the real ::fork() in our fork() method
+ * Packaging cleanup:
+ - debian: Install etc/apt if present (e.g., on Ubuntu)
+ - tests/control: Handle the gpg1/gpg2 mess a bit better
+ - debian: Make better use of the tree installed by CMake
+ - debian: Switch to debhelper 10
+ - debian: Add more lintian overrides
+ - debian: Drop outdated stuff
+ - debian: Run wrap-and-sort
+ - Add new symbols to symbols file
+ * Build system fixes, including:
+ - CMake: Translations: Don't rebuild .mo for line number changes
+ - CMake: Translations: Pass --previous to msgmerge.
+ Thanks to Guillem Jover for the suggestion.
+ - CMake: Do not add po/ if USE_NLS is OFF
+ - CMake: Install config and logging directories
+ - CMake: Translations: Build byproduct before output
+ - CMake: Add Large File Support (Closes: #834767)
+ * Several portability fixes (full test suite passes on FreeBSD), including:
+ - CMake: Discover docbook stylesheet in other locations
+ - Add missing includes and external definitions
+ - Use C locale instead of C.UTF-8 for protocol strings
+ - Make directory paths configurable
+ - Lower-case uname -r output in kernel autoremove helper
+ - Make root group configurable via ROOT_GROUP
+ * Accept --autoremove as alias for --auto-remove
+ * apt-inst: debfile: Pass comp. Name to ExtractTar, not Binary
+ * changelog: Respect Dir setting for local changelog getting
+ * init: Add Dir::Bin::planners default entry
+ * Switch documentation from httpredir.d.o to deb.d.o
+
+ [ Zhou Mo ]
+ * zh_CN.po: update simplified Chinese translation
+
+ [ David Kalnischkies ]
+ * do dpkg --configure before --remove/--purge --pending (Closes: 835094)
+ * prevent C++ locale number formatting in text APIs (try 3) (LP: 1611010)
+ * do fail on weakhash/loop earlier in acquire (Closes: 835195)
+ * do not restore selections for already purged packages
+ * apt-key: warn instead of fail on unreadable keyrings
+ * show apt-key warnings in apt update (Closes: 834973)
+ * treat .ddeb files like .deb, especially for dpkg (LP: #1616909)
+ * randomize acquire order for same type index files
+ * don't loop on pinning pkgs from absolute debs by regex (Closes: 835818)
+
+ -- Julian Andres Klode <jak@debian.org> Tue, 30 Aug 2016 22:20:28 +0200
+
apt (1.3~rc2ubuntu3) yakkety; urgency=medium
[ David Kalnischkies ]
diff --git a/debian/compat b/debian/compat
index ec635144f..f599e28b8 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-9
+10
diff --git a/debian/control b/debian/control
index 535d3693d..582259e20 100644
--- a/debian/control
+++ b/debian/control
@@ -4,27 +4,44 @@ Priority: important
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
XSBC-Original-Maintainer: APT Development Team <deity@lists.debian.org>
Uploaders: Michael Vogt <mvo@debian.org>,
- Julian Andres Klode <jak@debian.org>,
- David Kalnischkies <donkult@debian.org>
+ Julian Andres Klode <jak@debian.org>,
+ David Kalnischkies <donkult@debian.org>
Standards-Version: 3.9.8
-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 (>= 3.4), pkg-config, libgtest-dev <!nocheck>, dh-systemd
-Build-Depends-Indep: doxygen, w3m, graphviz
-Build-Conflicts: autoconf2.13, automake1.4
+Build-Depends: cmake (>= 3.4),
+ debhelper (>= 9.20160709~),
+ dh-systemd,
+ docbook-xml,
+ docbook-xsl,
+ dpkg-dev (>= 1.17.14),
+ gettext (>= 0.12),
+ libbz2-dev,
+ libcurl4-gnutls-dev (>= 7.19.4~),
+ libdb-dev,
+ libgtest-dev <!nocheck>,
+ liblz4-dev (>= 0.0~r126),
+ liblzma-dev,
+ pkg-config,
+ po4a (>= 0.34-2),
+ xsltproc,
+ zlib1g-dev
+Build-Depends-Indep: doxygen, graphviz, w3m
Vcs-Git: https://anonscm.debian.org/git/apt/apt.git
Vcs-Browser: https://anonscm.debian.org/git/apt/apt.git
Testsuite: autopkgtest
Package: apt
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${apt:keyring}, gpgv | gpgv2 | gpgv1, adduser
-Replaces: manpages-pl (<< 20060617-3~), manpages-it (<< 2.80-4~), sun-java6-jdk (>> 0), sun-java5-jdk (>> 0), openjdk-6-jdk (<< 6b24-1.11-0ubuntu1~), bash-completion (<< 1:2.1-4.2+fakesync1), apt-utils (<< 1.3~exp2~)
-Breaks: manpages-pl (<< 20060617-3~), manpages-it (<< 2.80-4~), sun-java6-jdk (>> 0), sun-java5-jdk (>> 0), openjdk-6-jdk (<< 6b24-1.11-0ubuntu1~), apt-utils (<< 1.3~exp2~)
+Depends: adduser,
+ gpgv | gpgv2 | gpgv1,
+ ${apt:keyring},
+ ${misc:Depends},
+ ${shlibs:Depends}
Recommends: gnupg | gnupg2 | gnupg1
-Suggests: aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), apt-doc, python-apt, powermgmt-base
+Suggests: apt-doc,
+ aptitude | synaptic | wajig,
+ dpkg-dev (>= 1.17.2),
+ powermgmt-base,
+ python-apt
Description: commandline package manager
This package provides commandline tools for searching and
managing as well as querying information about packages
@@ -44,8 +61,8 @@ Package: libapt-pkg5.0
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Breaks: apt (<< 1.1~exp14), libapt-inst1.5 (<< 0.9.9~), appstream (<< 0.9.0-3~)
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Breaks: appstream (<< 0.9.0-3~), apt (<< 1.1~exp14), libapt-inst1.5 (<< 0.9.9~)
Recommends: apt (>= ${binary:Version})
Section: libs
Provides: libapt-pkg (= ${binary:Version})
@@ -69,7 +86,7 @@ Package: libapt-inst2.0
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
Section: libs
Provides: libapt-inst (= ${binary:Version})
Description: deb package format runtime library
@@ -91,7 +108,10 @@ Architecture: any
Multi-Arch: same
Priority: optional
Pre-Depends: ${misc:Pre-Depends}
-Depends: libapt-pkg (= ${binary:Version}), libapt-inst (= ${binary:Version}), ${misc:Depends}, zlib1g-dev
+Depends: libapt-inst (= ${binary:Version}),
+ libapt-pkg (= ${binary:Version}),
+ zlib1g-dev,
+ ${misc:Depends}
Section: libdevel
Description: development files for APT's libapt-pkg and libapt-inst
This package contains the header files and libraries for
@@ -112,7 +132,7 @@ Description: documentation for APT development
Package: apt-utils
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, apt (= ${binary:Version})
+Depends: apt (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
Description: package management related utility programs
This package contains some less used commandline utilities related
to package management with APT.
@@ -125,7 +145,7 @@ Description: package management related utility programs
Package: apt-transport-https
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
Recommends: ca-certificates
Priority: optional
Description: https download transport for APT
diff --git a/debian/libapt-pkg-dev.install b/debian/libapt-pkg-dev.install
index e85dc9934..42e7c34d5 100644
--- a/debian/libapt-pkg-dev.install
+++ b/debian/libapt-pkg-dev.install
@@ -1,3 +1,3 @@
-usr/lib/*/libapt-pkg*.so
-usr/lib/*/libapt-inst*.so
usr/include/apt-pkg/
+usr/lib/*/libapt-inst*.so
+usr/lib/*/libapt-pkg*.so
diff --git a/debian/libapt-pkg-doc.docs b/debian/libapt-pkg-doc.docs
index dcacac18b..b57607e31 100644
--- a/debian/libapt-pkg-doc.docs
+++ b/debian/libapt-pkg-doc.docs
@@ -1,3 +1,2 @@
doc/libapt-pkg2_to_3.txt
doc/style.txt
-#build/doc/doxygen/html
diff --git a/debian/libapt-pkg-doc.lintian-overrides b/debian/libapt-pkg-doc.lintian-overrides
index d583d9a87..d7cbc437e 100644
--- a/debian/libapt-pkg-doc.lintian-overrides
+++ b/debian/libapt-pkg-doc.lintian-overrides
@@ -1,2 +1,3 @@
# embedded by doxygen, see /usr/share/doc/doxygen/README.jquery
libapt-pkg-doc: embedded-javascript-library
+libapt-pkg-doc: duplicate-files usr/share/doc/libapt-pkg-doc/html/*
diff --git a/debian/libapt-pkg5.0.symbols b/debian/libapt-pkg5.0.symbols
index e2db6bb12..0df11f9a5 100644
--- a/debian/libapt-pkg5.0.symbols
+++ b/debian/libapt-pkg5.0.symbols
@@ -1480,3 +1480,15 @@ libapt-pkg.so.5.0 libapt-pkg5.0 #MINVER#
(c++|optional=std)"std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char> >(std::basic_istream<char, std::char_traits<char> >&, std::_Get_time<char>)@APTPKG_5.0" 1.3~exp2
(c++|optional=std)"std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Put_time<char>)@APTPKG_5.0" 1.3~exp2
(c++|optional=std)"std::ctype<char>::do_narrow(char, char) const@APTPKG_5.0" 1.3~exp2
+ (c++)"EIPP::ApplyRequest(std::__cxx11::list<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION> > >&, pkgDepCache&)@APTPKG_5.0" 1.3~rc2
+ (c++)"EIPP::ReadRequest(int, std::__cxx11::list<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION> > >&, unsigned int&)@APTPKG_5.0" 1.3~rc2
+ (c++)"FileFd::Read(int, void*, unsigned long long, unsigned long long*)@APTPKG_5.0" 1.3~rc2
+ (c++)"pkgSourceList::AddVolatileFiles(CommandLine&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)@APTPKG_5.0" 1.3~rc2
+ (c++)"pkgSourceList::AddVolatileFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)@APTPKG_5.0" 1.3~rc2
+ (c++)"TimeRFC1123[abi:cxx11](long, bool)@APTPKG_5.0" 1.3~rc2
+ (c++)"unsigned long std::uniform_int_distribution<unsigned long>::operator()<std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul> >(std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul>&, std::uniform_int_distribution<unsigned long>::param_type const&)@APTPKG_5.0" 1.3~rc2
+ (c++)"void std::shuffle<__gnu_cxx::__normal_iterator<IndexTarget*, std::vector<IndexTarget, std::allocator<IndexTarget> > >, std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul>&>(__gnu_cxx::__normal_iterator<IndexTarget*, std::vector<IndexTarget, std::allocator<IndexTarget> > >, __gnu_cxx::__normal_iterator<IndexTarget*, std::vector<IndexTarget, std::allocator<IndexTarget> > >, std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul>&)@APTPKG_5.0" 1.3~rc2
+ (c++)"void std::vector<pkgDPkgPM::Item, std::allocator<pkgDPkgPM::Item> >::emplace_back<pkgDPkgPM::Item::Ops, pkgCache::PkgIterator>(pkgDPkgPM::Item::Ops&&, pkgCache::PkgIterator&&)@APTPKG_5.0" 1.3~rc2
+ (c++)"void std::vector<pkgDPkgPM::Item, std::allocator<pkgDPkgPM::Item> >::emplace_back<pkgDPkgPM::Item::Ops, pkgCache::PkgIterator&>(pkgDPkgPM::Item::Ops&&, pkgCache::PkgIterator&)@APTPKG_5.0" 1.3~rc2
+ (c++)"void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.0" 1.3~rc2
+ (c++)"void std::vector<std::pair<pkgDPkgPM::Item*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<pkgDPkgPM::Item*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::emplace_back<pkgDPkgPM::Item*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(pkgDPkgPM::Item*&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@APTPKG_5.0" 1.3~rc2
diff --git a/debian/rules b/debian/rules
index 1ea0e872b..24608a6b8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -11,16 +11,15 @@ export DPKG_GENSYMBOLS_CHECK_LEVEL=0
export CTEST_OUTPUT_ON_FAILURE=1
%:
- dh $@ --with systemd --parallel --buildsystem=cmake
+ dh $@
override_dh_install-indep:
- dh_movefiles
dh_install --list-missing
override_dh_install-arch:
- dh_movefiles
- if [ -e debian/tmp/etc/apt ]; then dh_install -papt etc/apt/* etc/apt; fi
- dh_install --list-missing
+ dh_install -papt-utils -X/dump
+ dh_install -papt -Xmethods/https
+ dh_install --remaining --list-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
diff --git a/doc/apt-cache.8.xml b/doc/apt-cache.8.xml
index 7ebc1c5c6..571779931 100644
--- a/doc/apt-cache.8.xml
+++ b/doc/apt-cache.8.xml
@@ -14,7 +14,7 @@
&apt-email;
&apt-product;
<!-- The last update date -->
- <date>2016-08-18T00:00:00Z</date>
+ <date>2016-08-17T00:00:00Z</date>
</refentryinfo>
<refmeta>
diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml
index f87419229..b4a3002f3 100644
--- a/doc/apt-get.8.xml
+++ b/doc/apt-get.8.xml
@@ -14,7 +14,7 @@
&apt-email;
&apt-product;
<!-- The last update date -->
- <date>2016-08-18T00:00:00Z</date>
+ <date>2016-08-26T00:00:00Z</date>
</refentryinfo>
<refmeta>
@@ -522,7 +522,7 @@
Configuration Item: <literal>APT::Get::Remove</literal>.</para></listitem>
</varlistentry>
- <varlistentry><term><option>--auto-remove</option></term>
+ <varlistentry><term><option>--auto-remove</option></term><term><option>--autoremove</option></term>
<listitem><para>If the command is either <literal>install</literal> or <literal>remove</literal>,
then this option acts like running the <literal>autoremove</literal> command, removing unused
dependency packages. Configuration Item: <literal>APT::Get::AutomaticRemove</literal>.
diff --git a/doc/apt-verbatim.ent b/doc/apt-verbatim.ent
index aaa2c1a6d..1278ff283 100644
--- a/doc/apt-verbatim.ent
+++ b/doc/apt-verbatim.ent
@@ -239,7 +239,7 @@
">
<!-- this will be updated by 'prepare-release' -->
-<!ENTITY apt-product-version "1.3~rc2ubuntu3">
+<!ENTITY apt-product-version "1.3~rc3">
<!-- (Code)names for various things used all over the place -->
<!ENTITY debian-oldstable-codename "wheezy">
diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml
index 0c2b7f763..380371230 100644
--- a/doc/apt.conf.5.xml
+++ b/doc/apt.conf.5.xml
@@ -19,7 +19,7 @@
&apt-email;
&apt-product;
<!-- The last update date -->
- <date>2016-08-18T00:00:00Z</date>
+ <date>2016-08-17T00:00:00Z</date>
</refentryinfo>
<refmeta>
diff --git a/doc/docbook-html-style.xsl b/doc/docbook-html-style.xsl.cmake.in
index e4af9f557..9216d8e6e 100644
--- a/doc/docbook-html-style.xsl
+++ b/doc/docbook-html-style.xsl.cmake.in
@@ -2,7 +2,7 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Import our base stylesheet -->
- <xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/xhtml-1_1/chunk.xsl" />
+ <xsl:import href="@DOCBOOK_XSL@/xhtml-1_1/chunk.xsl" />
<!-- Since we use xsltproc (not saxon), add a workaround to ensure UTF-8 -->
<xsl:template xmlns="http://www.w3.org/1999/xhtml" name="head.content.generator">
diff --git a/doc/docbook-text-style.xsl b/doc/docbook-text-style.xsl.cmake.in
index 376dded52..36af1bcb2 100644
--- a/doc/docbook-text-style.xsl
+++ b/doc/docbook-text-style.xsl.cmake.in
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/xhtml-1_1/docbook.xsl" />
+ <xsl:import href="@DOCBOOK_XSL@/xhtml-1_1/docbook.xsl" />
<!-- Parameters for optimal text output. -->
<xsl:param name="callout.graphics" select="0"/>
diff --git a/doc/manpage-style.xsl b/doc/manpage-style.xsl.cmake.in
index a780bad13..53d6780cb 100644
--- a/doc/manpage-style.xsl
+++ b/doc/manpage-style.xsl.cmake.in
@@ -2,7 +2,7 @@
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
-<xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl" />
+<xsl:import href="@DOCBOOK_XSL@/manpages/docbook.xsl" />
<xsl:param name="man.output.encoding" select="'UTF-8'" />
diff --git a/doc/po/apt-doc.pot b/doc/po/apt-doc.pot
index d8b2d434e..817adbbef 100644
--- a/doc/po/apt-doc.pot
+++ b/doc/po/apt-doc.pot
@@ -5,9 +5,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: apt-doc 1.3~rc2ubuntu3\n"
+"Project-Id-Version: apt-doc 1.3~rc3\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:39+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -5788,8 +5788,8 @@ msgstr ""
#: sources.list.5.xml:1
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian "
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian "
"&debian-stable-codename; main"
msgstr ""
@@ -5798,12 +5798,12 @@ msgstr ""
#, no-wrap
msgid ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
@@ -5919,12 +5919,12 @@ msgstr ""
#: sources.list.5.xml:1
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
msgstr ""
#. type: Content of: <refentry><refsect1><literallayout>
@@ -5932,7 +5932,7 @@ msgstr ""
#, no-wrap
msgid ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
msgstr ""
diff --git a/doc/po/de.po b/doc/po/de.po
index 8ae13e645..5e4e9db10 100644
--- a/doc/po/de.po
+++ b/doc/po/de.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt-doc 1.0.8\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:39+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2014-09-14 14:46+0200\n"
"Last-Translator: Chris Leick <c.leick@vollbio.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
@@ -8241,8 +8241,8 @@ msgstr ""
#| "deb http://ftp.debian.org/debian &debian-stable-codename; main\n"
#| "deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
msgid ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
msgstr ""
"deb http://ftp.debian.org/debian &debian-stable-codename; main\n"
"deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
@@ -8255,12 +8255,12 @@ msgstr ""
#| "deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
msgid ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
@@ -8408,12 +8408,12 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
msgstr ""
#. type: Content of: <refentry><refsect1><literallayout>
@@ -8421,7 +8421,7 @@ msgstr ""
#, no-wrap
msgid ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
msgstr ""
diff --git a/doc/po/es.po b/doc/po/es.po
index 48961c258..1145c74cc 100644
--- a/doc/po/es.po
+++ b/doc/po/es.po
@@ -38,7 +38,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt-doc 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:39+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2014-07-04 01:31+0200\n"
"Last-Translator: Omar Campagne <ocampagne@gmail.com>\n"
"Language-Team: Debian l10n Spanish <debian-l10n-spanish@lists.debian.org>\n"
@@ -8243,8 +8243,8 @@ msgstr ""
#| "deb http://ftp.debian.org/debian &debian-stable-codename; main\n"
#| "deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
msgid ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
msgstr ""
"deb http://ftp.debian.org/debian &debian-stable-codename; main\n"
"deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
@@ -8257,12 +8257,12 @@ msgstr ""
#| "deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
msgid ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
@@ -8408,12 +8408,12 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
msgstr ""
#. type: Content of: <refentry><refsect1><literallayout>
@@ -8421,7 +8421,7 @@ msgstr ""
#, no-wrap
msgid ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
msgstr ""
diff --git a/doc/po/fr.po b/doc/po/fr.po
index 003ec244e..ef12e4783 100644
--- a/doc/po/fr.po
+++ b/doc/po/fr.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt-doc 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:39+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2014-11-15 17:26+0100\n"
"Last-Translator: Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
@@ -8206,8 +8206,8 @@ msgstr ""
#| "deb http://ftp.debian.org/debian &debian-stable-codename; main\n"
#| "deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
msgid ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
msgstr ""
"deb http://ftp.debian.org/debian &debian-stable-codename; main\n"
"deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
@@ -8220,12 +8220,12 @@ msgstr ""
#| "deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
msgid ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
@@ -8372,12 +8372,12 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
msgstr ""
#. type: Content of: <refentry><refsect1><literallayout>
@@ -8385,7 +8385,7 @@ msgstr ""
#, no-wrap
msgid ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
msgstr ""
diff --git a/doc/po/it.po b/doc/po/it.po
index 8a2b68956..4f770b078 100644
--- a/doc/po/it.po
+++ b/doc/po/it.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt-doc 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:39+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2015-12-27 21:26+0200\n"
"Last-Translator: Beatrice Torracca <beatricet@libero.it>\n"
"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
@@ -8358,34 +8358,34 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
msgstr ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
#. type: Content of: <refentry><refsect1><literallayout>
#: sources.list.5.xml
#, no-wrap
msgid ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
msgstr ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
@@ -8528,31 +8528,31 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
msgstr ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
#. type: Content of: <refentry><refsect1><literallayout>
#: sources.list.5.xml
#, no-wrap
msgid ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
msgstr ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
diff --git a/doc/po/ja.po b/doc/po/ja.po
index 6ddbcc99d..b992b66fc 100644
--- a/doc/po/ja.po
+++ b/doc/po/ja.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt-doc 1.0.6\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:39+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2016-03-23 09:39+0900\n"
"Last-Translator: Takuma Yamada <tyamada@takumayamada.com>\n"
"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
@@ -7995,34 +7995,34 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
msgstr ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
#. type: Content of: <refentry><refsect1><literallayout>
#: sources.list.5.xml
#, no-wrap
msgid ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
msgstr ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
@@ -8169,31 +8169,31 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
msgstr ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
#. type: Content of: <refentry><refsect1><literallayout>
#: sources.list.5.xml
#, no-wrap
msgid ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
msgstr ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
diff --git a/doc/po/nl.po b/doc/po/nl.po
index 6097373ea..c7cf7e267 100644
--- a/doc/po/nl.po
+++ b/doc/po/nl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt-doc 1.1.10-nl\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:39+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2016-02-01 16:17+0100\n"
"Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n"
"Language-Team: Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>\n"
@@ -8505,34 +8505,34 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
msgstr ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
#. type: Content of: <refentry><refsect1><literallayout>
#: sources.list.5.xml
#, no-wrap
msgid ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
msgstr ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
@@ -8681,31 +8681,31 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
msgstr ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
#. type: Content of: <refentry><refsect1><literallayout>
#: sources.list.5.xml
#, no-wrap
msgid ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
msgstr ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
diff --git a/doc/po/pl.po b/doc/po/pl.po
index 246a35a73..9737f8182 100644
--- a/doc/po/pl.po
+++ b/doc/po/pl.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt-doc 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:39+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2014-07-04 02:13+0200\n"
"Last-Translator: Robert Luberda <robert@debian.org>\n"
"Language-Team: Polish <manpages-pl-list@lists.sourceforge.net>\n"
@@ -7607,8 +7607,8 @@ msgstr ""
#| "deb http://ftp.debian.org/debian &debian-stable-codename; main\n"
#| "deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
msgid ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
msgstr ""
"deb http://ftp.debian.org/debian &debian-stable-codename; main\n"
"deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
@@ -7621,12 +7621,12 @@ msgstr ""
#| "deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
msgid ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
@@ -7771,12 +7771,12 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
msgstr ""
#. type: Content of: <refentry><refsect1><literallayout>
@@ -7784,7 +7784,7 @@ msgstr ""
#, no-wrap
msgid ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
msgstr ""
diff --git a/doc/po/pt.po b/doc/po/pt.po
index 9d5487d59..9d3355c4c 100644
--- a/doc/po/pt.po
+++ b/doc/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt-doc 1.0.7\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:39+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2014-08-29 00:34+0100\n"
"Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n"
"Language-Team: Portuguese <traduz@debianpt.org>\n"
@@ -8175,8 +8175,8 @@ msgstr ""
#| "deb http://ftp.debian.org/debian &debian-stable-codename; main\n"
#| "deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
msgid ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
msgstr ""
"deb http://ftp.debian.org/debian &debian-stable-codename; main\n"
"deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
@@ -8189,12 +8189,12 @@ msgstr ""
#| "deb [ arch=amd64,armel ] http://ftp.debian.org/debian &debian-stable-codename; main"
msgid ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
@@ -8339,12 +8339,12 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
msgstr ""
#. type: Content of: <refentry><refsect1><literallayout>
@@ -8352,7 +8352,7 @@ msgstr ""
#, no-wrap
msgid ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
msgstr ""
diff --git a/doc/po/pt_BR.po b/doc/po/pt_BR.po
index 6a994944d..330a1a51f 100644
--- a/doc/po/pt_BR.po
+++ b/doc/po/pt_BR.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt-doc 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:39+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2004-09-20 17:02+0000\n"
"Last-Translator: André Luís Lopes <andrelop@debian.org>\n"
"Language-Team: <debian-l10n-portuguese@lists.debian.org>\n"
@@ -6144,8 +6144,8 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian &debian-stable-codename; main\n"
-"deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main"
+"deb http://deb.debian.org/debian &debian-stable-codename; main\n"
+"deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main"
msgstr ""
#. type: Content of: <refentry><refsect1><literallayout>
@@ -6153,12 +6153,12 @@ msgstr ""
#, no-wrap
msgid ""
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"\n"
"Types: deb\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: &debian-stable-codename;\n"
"Components: main\n"
"Architectures: amd64 armel\n"
@@ -6273,12 +6273,12 @@ msgstr ""
#: sources.list.5.xml
#, no-wrap
msgid ""
-"deb http://httpredir.debian.org/debian stable main contrib\n"
-"deb-src http://httpredir.debian.org/debian stable main contrib\n"
-"deb http://httpredir.debian.org/debian testing main contrib\n"
-"deb-src http://httpredir.debian.org/debian testing main contrib\n"
-"deb http://httpredir.debian.org/debian unstable main contrib\n"
-"deb-src http://httpredir.debian.org/debian unstable main contrib"
+"deb http://deb.debian.org/debian stable main contrib\n"
+"deb-src http://deb.debian.org/debian stable main contrib\n"
+"deb http://deb.debian.org/debian testing main contrib\n"
+"deb-src http://deb.debian.org/debian testing main contrib\n"
+"deb http://deb.debian.org/debian unstable main contrib\n"
+"deb-src http://deb.debian.org/debian unstable main contrib"
msgstr ""
#. type: Content of: <refentry><refsect1><literallayout>
@@ -6286,7 +6286,7 @@ msgstr ""
#, no-wrap
msgid ""
"Types: deb deb-src\n"
-"URIs: http://httpredir.debian.org/debian\n"
+"URIs: http://deb.debian.org/debian\n"
"Suites: stable testing unstable\n"
"Components: main contrib\n"
msgstr ""
diff --git a/doc/sources.list.5.xml b/doc/sources.list.5.xml
index 8fdc8eedb..c0960958f 100644
--- a/doc/sources.list.5.xml
+++ b/doc/sources.list.5.xml
@@ -14,7 +14,7 @@
&apt-email;
&apt-product;
<!-- The last update date -->
- <date>2016-08-06T00:00:00Z</date>
+ <date>2016-08-29T00:00:00Z</date>
</refentryinfo>
<refmeta>
@@ -441,15 +441,15 @@ Components: main contrib non-free</literallayout>
<para>The first line gets package information for the architectures in <literal>APT::Architectures</literal>
while the second always retrieves <literal>amd64</literal> and <literal>armel</literal>.</para>
- <literallayout>deb http://httpredir.debian.org/debian &debian-stable-codename; main
-deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &debian-stable-codename; main</literallayout>
+ <literallayout>deb http://deb.debian.org/debian &debian-stable-codename; main
+deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main</literallayout>
<literallayout>Types: deb
-URIs: http://httpredir.debian.org/debian
+URIs: http://deb.debian.org/debian
Suites: &debian-stable-codename;
Components: main
Types: deb
-URIs: http://httpredir.debian.org/debian
+URIs: http://deb.debian.org/debian
Suites: &debian-stable-codename;
Components: main
Architectures: amd64 armel
@@ -496,14 +496,14 @@ Suites: unstable/binary-$(ARCH)/</literallayout>
<para>Uses HTTP to get binary packages as well as sources from the stable, testing and unstable
suites and the components main and contrib.</para>
- <literallayout>deb http://httpredir.debian.org/debian stable main contrib
-deb-src http://httpredir.debian.org/debian stable main contrib
-deb http://httpredir.debian.org/debian testing main contrib
-deb-src http://httpredir.debian.org/debian testing main contrib
-deb http://httpredir.debian.org/debian unstable main contrib
-deb-src http://httpredir.debian.org/debian unstable main contrib</literallayout>
+ <literallayout>deb http://deb.debian.org/debian stable main contrib
+deb-src http://deb.debian.org/debian stable main contrib
+deb http://deb.debian.org/debian testing main contrib
+deb-src http://deb.debian.org/debian testing main contrib
+deb http://deb.debian.org/debian unstable main contrib
+deb-src http://deb.debian.org/debian unstable main contrib</literallayout>
<literallayout>Types: deb deb-src
-URIs: http://httpredir.debian.org/debian
+URIs: http://deb.debian.org/debian
Suites: stable testing unstable
Components: main contrib
</literallayout>
diff --git a/ftparchive/CMakeLists.txt b/ftparchive/CMakeLists.txt
index 1e1dc36ca..799fd7335 100644
--- a/ftparchive/CMakeLists.txt
+++ b/ftparchive/CMakeLists.txt
@@ -1,3 +1,4 @@
+include_directories(${BERKELEY_DB_INCLUDE_DIRS})
# Create the executable tasks
file(GLOB_RECURSE source "*.cc")
add_executable(apt-ftparchive ${source})
diff --git a/methods/CMakeLists.txt b/methods/CMakeLists.txt
index 2417c4dc1..82ae70e7d 100644
--- a/methods/CMakeLists.txt
+++ b/methods/CMakeLists.txt
@@ -21,7 +21,7 @@ target_link_libraries(store apt-pkg)
target_link_libraries(gpgv apt-pkg)
target_link_libraries(cdrom apt-pkg)
target_link_libraries(http apt-pkg)
-target_link_libraries(mirror apt-pkg -lresolv)
+target_link_libraries(mirror apt-pkg ${RESOLV_LIBRARIES})
target_link_libraries(https apt-pkg ${CURL_LIBRARIES})
target_link_libraries(ftp apt-pkg)
target_link_libraries(rred apt-pkg)
diff --git a/methods/connect.cc b/methods/connect.cc
index c819c1dfb..cb2f83588 100644
--- a/methods/connect.cc
+++ b/methods/connect.cc
@@ -180,8 +180,10 @@ static bool ConnectToHostname(std::string const &Host, int const Port,
memset(&Hints,0,sizeof(Hints));
Hints.ai_socktype = SOCK_STREAM;
Hints.ai_flags = 0;
+#ifdef AI_IDN
if (_config->FindB("Acquire::Connect::IDN", true) == true)
Hints.ai_flags |= AI_IDN;
+#endif
// see getaddrinfo(3): only return address if system has such a address configured
// useful if system is ipv4 only, to not get ipv6, but that fails if the system has
// no address configured: e.g. offline and trying to connect to localhost.
diff --git a/methods/gpgv.cc b/methods/gpgv.cc
index 2fed53a39..f2ef6b76e 100644
--- a/methods/gpgv.cc
+++ b/methods/gpgv.cc
@@ -39,6 +39,7 @@ using std::vector;
#define GNUPGEXPSIG "[GNUPG:] EXPSIG"
#define GNUPGREVKEYSIG "[GNUPG:] REVKEYSIG"
#define GNUPGNODATA "[GNUPG:] NODATA"
+#define APTKEYWARNING "[APTKEY:] WARNING"
struct Digest {
enum class State {
@@ -238,6 +239,8 @@ string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
ValidSigners.push_back(sig);
}
+ else if (strncmp(buffer, APTKEYWARNING, sizeof(APTKEYWARNING)-1) == 0)
+ Warning("%s", buffer + sizeof(APTKEYWARNING));
}
fclose(pipein);
free(buffer);
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index 174cc5d41..258c9b050 100644
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -1,3 +1,5 @@
+include(Translations)
+
set(languages_excluded
he ## disabled by translator request #313283
)
diff --git a/po/apt-all.pot b/po/apt-all.pot
index 4d3c0a5f9..0a20ea792 100644
--- a/po/apt-all.pot
+++ b/po/apt-all.pot
@@ -5,9 +5,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: apt 1.3~rc2ubuntu3\n"
+"Project-Id-Version: apt 1.3~rc3\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/po/ar.po b/po/ar.po
index 8cf3658a3..9ab526738 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2006-10-20 21:28+0300\n"
"Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
"Language-Team: Arabic <support@arabeyes.org>\n"
diff --git a/po/ast.po b/po/ast.po
index 2be9918f7..59078a52b 100644
--- a/po/ast.po
+++ b/po/ast.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 0.7.18\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2010-10-02 23:35+0100\n"
"Last-Translator: Iñigo Varela <ivarela@softastur.org>\n"
"Language-Team: Asturian (ast)\n"
diff --git a/po/bg.po b/po/bg.po
index 9f1f865fd..53a26ee01 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 0.7.21\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2012-06-25 17:23+0300\n"
"Last-Translator: Damyan Ivanov <dmn@debian.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
diff --git a/po/bs.po b/po/bs.po
index 7b90cd923..2a6b48c52 100644
--- a/po/bs.po
+++ b/po/bs.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 0.5.26\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2004-05-06 15:25+0100\n"
"Last-Translator: Safir Šećerović <sapphire@linux.org.ba>\n"
"Language-Team: Bosnian <lokal@lugbih.org>\n"
diff --git a/po/ca.po b/po/ca.po
index aaeb75b7d..9bd7d7786 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 0.9.7.6\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2012-10-19 13:30+0200\n"
"Last-Translator: Jordi Mallach <jordi@debian.org>\n"
"Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
diff --git a/po/cs.po b/po/cs.po
index 16fa58d1c..dd4815af2 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2015-08-29 15:24+0200\n"
"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
diff --git a/po/cy.po b/po/cy.po
index 912b7d469..d98107c89 100644
--- a/po/cy.po
+++ b/po/cy.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2005-06-06 13:46+0100\n"
"Last-Translator: Dafydd Harries <daf@muse.19inch.net>\n"
"Language-Team: Welsh <cy@pengwyn.linux.org.uk>\n"
diff --git a/po/da.po b/po/da.po
index 83cb59067..8b211aaf7 100644
--- a/po/da.po
+++ b/po/da.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2014-07-06 23:51+0200\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"
diff --git a/po/de.po b/po/de.po
index b58a32727..234d8d10e 100644
--- a/po/de.po
+++ b/po/de.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.8\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2014-09-19 13:04+0100\n"
"Last-Translator: Holger Wansing <linux@wansing-online.de>\n"
"Language-Team: Debian German <debian-l10n-german@lists.debian.org>\n"
diff --git a/po/dz.po b/po/dz.po
index b6b4d8e6b..1685d032e 100644
--- a/po/dz.po
+++ b/po/dz.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2006-09-19 09:49+0530\n"
"Last-Translator: Kinley Tshering <gasepkuenden2k3@hotmail.com>\n"
"Language-Team: Dzongkha <pgeyleg@dit.gov.bt>\n"
diff --git a/po/el.po b/po/el.po
index 2afe736ec..f7a89abd1 100644
--- a/po/el.po
+++ b/po/el.po
@@ -16,7 +16,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2008-08-26 18:25+0300\n"
"Last-Translator: Θανάσης Νάτσης <natsisthanasis@gmail.com>\n"
"Language-Team: Greek <debian-l10n-greek@lists.debian.org>\n"
diff --git a/po/es.po b/po/es.po
index af558d5cf..0e6fb98d7 100644
--- a/po/es.po
+++ b/po/es.po
@@ -34,7 +34,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 0.8.10\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2016-01-26 01:51+0100\n"
"Last-Translator: Manuel \"Venturi\" Porras Peralta <venturi@openmailbox."
"org>\n"
diff --git a/po/eu.po b/po/eu.po
index 9bfc3793f..a967934aa 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2009-05-17 00:41+0200\n"
"Last-Translator: Piarres Beobide <pi@beobide.net>\n"
"Language-Team: Euskara <debian-l10n-basque@lists.debian.org>\n"
diff --git a/po/fi.po b/po/fi.po
index 513f02588..ec61634a7 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 0.5.26\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2008-12-11 14:52+0200\n"
"Last-Translator: Tapio Lehtonen <tale@debian.org>\n"
"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
diff --git a/po/fr.po b/po/fr.po
index faf8f0b0b..d3948ca9c 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2013-12-15 16:45+0100\n"
"Last-Translator: Julien Patriarca <leatherface@debian.org>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
diff --git a/po/gl.po b/po/gl.po
index 5269edf16..747678c48 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2011-05-12 15:28+0100\n"
"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>\n"
"Language-Team: galician <proxecto@trasno.net>\n"
diff --git a/po/hu.po b/po/hu.po
index 4af8096ea..bfef5673d 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2016-04-10 19:46+0200\n"
"Last-Translator: Gabor Kelemen <kelemeng@ubuntu.com>\n"
"Language-Team: Hungarian <gnome-hu-list@gnome.org>\n"
diff --git a/po/it.po b/po/it.po
index 4fcda26d2..e396beb69 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2015-04-07 16:51+0100\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
diff --git a/po/ja.po b/po/ja.po
index 4fcee97b1..eec6163ba 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.9.3\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2016-05-18 15:31+0900\n"
"Last-Translator: Takuma Yamada <tyamada@takumayamada.com>\n"
"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
diff --git a/po/km.po b/po/km.po
index 797f7a68f..e13828526 100644
--- a/po/km.po
+++ b/po/km.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2006-10-10 09:48+0700\n"
"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
"Language-Team: Khmer <support@khmeros.info>\n"
diff --git a/po/ko.po b/po/ko.po
index cf23bd98d..fd772cf3f 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2010-08-30 02:31+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: Korean <debian-l10n-korean@lists.debian.org>\n"
diff --git a/po/ku.po b/po/ku.po
index 11951d8d2..afa163c9e 100644
--- a/po/ku.po
+++ b/po/ku.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2008-05-08 12:48+0200\n"
"Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n"
"Language-Team: ku <ubuntu-l10n-kur@lists.ubuntu.com>\n"
diff --git a/po/lt.po b/po/lt.po
index fdabe7598..8850f01ac 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2008-08-02 01:47-0400\n"
"Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
diff --git a/po/mr.po b/po/mr.po
index bbc4415d7..39a1cf6f1 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2008-11-20 23:27+0530\n"
"Last-Translator: Sampada <sampadanakhare@gmail.com>\n"
"Language-Team: Marathi, janabhaaratii, C-DAC, Mumbai, India "
diff --git a/po/nb.po b/po/nb.po
index 0974b3485..8a05533b4 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2016-06-11 22:38+0200\n"
"Last-Translator: Petter Reinholdtsen <pere@hungry.com>\n"
"Language-Team: Norwegian Bokmål <i18n-no@lister.ping.uio.no>\n"
diff --git a/po/ne.po b/po/ne.po
index 96b038e34..2d762c5ee 100644
--- a/po/ne.po
+++ b/po/ne.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2006-06-12 14:35+0545\n"
"Last-Translator: Shiva Pokharel <pokharelshiva@hotmail.com>\n"
"Language-Team: Nepali <info@mpp.org.np>\n"
diff --git a/po/nl.po b/po/nl.po
index 3609148f8..c36e73f9a 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.2.11\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2016-04-27 18:12+0200\n"
"Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n"
"Language-Team: Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>\n"
diff --git a/po/nn.po b/po/nn.po
index ea9c41067..c6c24c07b 100644
--- a/po/nn.po
+++ b/po/nn.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2005-02-14 23:30+0100\n"
"Last-Translator: Havard Korsvoll <korsvoll@skulelinux.no>\n"
"Language-Team: Norwegian nynorsk <i18n-nn@lister.ping.uio.no>\n"
diff --git a/po/pl.po b/po/pl.po
index b78db700b..fffecb673 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 0.9.7.3\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2012-07-28 21:53+0200\n"
"Last-Translator: Michał Kułach <michal.kulach@gmail.com>\n"
"Language-Team: Polish <debian-l10n-polish@lists.debian.org>\n"
diff --git a/po/pt.po b/po/pt.po
index f21bbf283..4e8a16ab0 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2012-06-29 15:45+0100\n"
"Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
"Language-Team: Portuguese <traduz@debianpt.org>\n"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 64784d6b7..b736797a7 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2008-11-17 02:33-0200\n"
"Last-Translator: Felipe Augusto van de Wiel (faw) <faw@debian.org>\n"
"Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."
diff --git a/po/ro.po b/po/ro.po
index 84f388d10..f2d911b96 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2008-11-15 02:21+0200\n"
"Last-Translator: Eddy Petrișor <eddy.petrisor@gmail.com>\n"
"Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n"
diff --git a/po/ru.po b/po/ru.po
index 28c20bb6d..64ba0902f 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.2.12\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2016-05-19 20:50+0300\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
diff --git a/po/sk.po b/po/sk.po
index 3ce6aaf4b..4aae9435a 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2012-06-28 20:49+0100\n"
"Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
diff --git a/po/sl.po b/po/sl.po
index 8d322ecc5..cabf864a5 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 0.5.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2012-06-27 21:29+0000\n"
"Last-Translator: Andrej Znidarsic <andrej.znidarsic@gmail.com>\n"
"Language-Team: Slovenian <sl@li.org>\n"
diff --git a/po/sv.po b/po/sv.po
index 079c53380..c957a7dd4 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2015-08-19 21:33+0200\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <debian-l10n-swedish@debian.org>\n"
diff --git a/po/th.po b/po/th.po
index 40eb1ba70..301c6386b 100644
--- a/po/th.po
+++ b/po/th.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2014-12-12 13:00+0700\n"
"Last-Translator: Theppitak Karoonboonyanan <thep@debian.org>\n"
"Language-Team: Thai <thai-l10n@googlegroups.com>\n"
diff --git a/po/tl.po b/po/tl.po
index a57be6586..9fd03412f 100644
--- a/po/tl.po
+++ b/po/tl.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2007-03-29 21:36+0800\n"
"Last-Translator: Eric Pareja <xenos@upm.edu.ph>\n"
"Language-Team: Tagalog <debian-tl@banwa.upm.edu.ph>\n"
diff --git a/po/tr.po b/po/tr.po
index 671ab6eb8..111a58694 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2016-07-21 18:43+0300\n"
"Last-Translator: Mert Dirik <mertdirik@gmail.com>\n"
"Language-Team: Debian l10n Turkish <debian-l10n-turkish@lists.debian.org>\n"
diff --git a/po/uk.po b/po/uk.po
index fc8a982ee..4d46be0ac 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.5\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2012-09-25 20:19+0300\n"
"Last-Translator: A. Bondarenko <artem.brz@gmail.com>\n"
"Language-Team: Українська <uk@li.org>\n"
diff --git a/po/vi.po b/po/vi.po
index 5770b6b4a..80665d9a5 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.0.8\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2014-09-12 13:48+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 8456bc89e..54cc25854 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.2.x\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
-"PO-Revision-Date: 2016-06-27 08:00+0000\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
+"PO-Revision-Date: 2016-08-20 13:00+0000\n"
"Last-Translator: Zhou Mo <cdluminate@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n"
@@ -361,12 +361,12 @@ msgstr "%s=%s 的 Changelog 不可用"
#: apt-pkg/acquire-worker.cc
#, c-format
msgid "The method '%s' is explicitly disabled via configuration."
-msgstr ""
+msgstr "方法‘%s’已经被显式设置为禁用。"
#: apt-pkg/acquire-worker.cc methods/connect.cc
#, c-format
msgid "If you meant to use Tor remember to use %s instead of %s."
-msgstr ""
+msgstr "如果您需要使用Tor,请确认使用%s而不是%s。"
#: apt-pkg/acquire-worker.cc
#, c-format
@@ -1223,43 +1223,39 @@ msgstr "无法写入临时状态文件 %s"
#: apt-pkg/edsp.cc
msgid "Send scenario to solver"
-msgstr "向solver发送情景"
+msgstr "向依赖解决器发送情景"
#: apt-pkg/edsp.cc
msgid "Send request to solver"
-msgstr "向solver发送请求"
+msgstr "向依赖解决器发送请求"
#: apt-pkg/edsp.cc
msgid "Prepare for receiving solution"
-msgstr "准备接收解决方案"
+msgstr "准备接收依赖解决方案"
#: apt-pkg/edsp.cc
msgid "External solver failed without a proper error message"
-msgstr "外部solver出错,错误信息不恰当"
+msgstr "外部依赖解决器出错,错误信息不恰当"
#: apt-pkg/edsp.cc
msgid "Execute external solver"
-msgstr "执行外部solver"
+msgstr "执行外部依赖解决器"
#: apt-pkg/edsp.cc
-#, fuzzy
msgid "Execute external planner"
-msgstr "执行外部solver"
+msgstr "执行外部安装顺序规划器"
#: apt-pkg/edsp.cc
-#, fuzzy
msgid "Send request to planner"
-msgstr "向solver发送请求"
+msgstr "向安装顺序规划器发送请求"
#: apt-pkg/edsp.cc
-#, fuzzy
msgid "Send scenario to planner"
-msgstr "向solver发送情景"
+msgstr "向安装顺序规划器发送情景"
#: apt-pkg/edsp.cc
-#, fuzzy
msgid "External planner failed without a proper error message"
-msgstr "外部solver出错,错误信息不恰当"
+msgstr "外部安装顺序规划器出错,错误信息不恰当"
#: apt-pkg/indexcopy.cc
#, c-format
@@ -2805,7 +2801,6 @@ msgid "detect proxy using apt.conf"
msgstr "用 apt.conf 检测代理设置"
#: cmdline/apt-internal-planner.cc
-#, fuzzy
msgid ""
"Usage: apt-internal-planner\n"
"\n"
@@ -2813,10 +2808,10 @@ msgid ""
"installation planner for the APT family like an external one,\n"
"for debugging or the like.\n"
msgstr ""
-"用法: apt-internal-solver\n"
+"用法: apt-internal-planner\n"
"\n"
-"apt-internal-solver 可以像外部解析器那样使用当前的APT家族内部解析器,\n"
-"以便调试等用途。\n"
+"apt-internal-planner 是一个可以像外部规划器那样使用当前的APT家族内部\n"
+"安装顺序规划器的接口,以便调试等用途。\n"
#: cmdline/apt-internal-solver.cc
msgid ""
@@ -2828,8 +2823,8 @@ msgid ""
msgstr ""
"用法: apt-internal-solver\n"
"\n"
-"apt-internal-solver 可以像外部解析器那样使用当前的APT家族内部解析器,\n"
-"以便调试等用途。\n"
+"apt-internal-solver 是一个可以像外部解析器那样使用当前的APT家族内部\n"
+"依赖解析器的接口,以便调试等用途。\n"
#: cmdline/apt-mark.cc
#, c-format
@@ -3359,7 +3354,7 @@ msgstr "无法找到文件"
#: methods/connect.cc
#, c-format
msgid "Direct connection to %s domains is blocked by default."
-msgstr ""
+msgstr "通向 %s 域名的直接连接被设为默认阻止。"
#: methods/connect.cc methods/http.cc
#, c-format
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 5d5410f27..63f09de2f 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt 1.2.X\n"
"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2016-08-24 10:13+0200\n"
+"POT-Creation-Date: 2016-08-30 22:20+0200\n"
"PO-Revision-Date: 2009-01-28 10:41+0800\n"
"Last-Translator: Tetralet <tetralet@gmail.com>\n"
"Language-Team: Debian-user in Chinese [Big5] <debian-chinese-big5@lists."
diff --git a/prepare-release b/prepare-release
index f740f2152..0004de310 100755
--- a/prepare-release
+++ b/prepare-release
@@ -178,7 +178,7 @@ elif [ "$1" = 'buildlog' ]; then
shift
done
elif [ "$1" = 'travis-ci' ]; then
- apt-get install -qy --no-install-recommends dctrl-tools equivs gdebi-core
+ apt-get install -qy --no-install-recommends dctrl-tools equivs gdebi-core moreutils
test_deb_control > test-control
equivs-build test-control
diff --git a/shippable.yml b/shippable.yml
new file mode 100644
index 000000000..24b2545f7
--- /dev/null
+++ b/shippable.yml
@@ -0,0 +1,15 @@
+language: none
+
+build:
+ pre_ci_boot:
+ image_name: ubuntu
+ image_tag: xenial
+ pull: true
+ ci:
+ - apt-get install -qq build-essential
+ - ./prepare-release travis-ci
+ - mkdir build
+ - ( cd build && cmake .. )
+ - make -C build -j 4
+ - CTEST_OUTPUT_ON_FAILURE=1 make -C build test
+ - ./test/integration/run-tests -q
diff --git a/test/integration/framework b/test/integration/framework
index 1e356ffaf..067cc6e8a 100644
--- a/test/integration/framework
+++ b/test/integration/framework
@@ -5,6 +5,8 @@ EXIT_CODE=0
while [ -n "$1" ]; do
if [ "$1" = "-q" ]; then
export MSGLEVEL=2
+ elif [ "$1" = "-qq" ]; then
+ export MSGLEVEL=1
elif [ "$1" = "-v" ]; then
export MSGLEVEL=4
elif [ "$1" = '--color=no' ]; then
@@ -31,7 +33,6 @@ if [ "${MSGCOLOR:-YES}" = 'YES' ]; then
fi
fi
-
if [ "$MSGCOLOR" != 'NO' ]; then
CERROR="\033[1;31m" # red
CWARNING="\033[1;33m" # yellow
@@ -143,6 +144,9 @@ if [ $MSGLEVEL -le 4 ]; then
msgdebug() { true; }
msgndebug() { true; }
fi
+if [ $MSGLEVEL -le 1 ]; then
+ msgpass() { true; }
+fi
msgdone() {
if [ "$1" = "debug" -a $MSGLEVEL -le 4 ] ||
[ "$1" = "info" -a $MSGLEVEL -le 3 ] ||
@@ -196,6 +200,9 @@ aptinternalplanner() { runapt "${APTINTERNALPLANNER}" "$@"; }
dpkg() {
"${TMPWORKINGDIRECTORY}/rootdir/usr/bin/dpkg" "$@"
}
+dpkg_version() {
+ command perl -MDpkg -E 'say $Dpkg::PROGVERSION'
+}
dpkgcheckbuilddeps() {
command dpkg-checkbuilddeps --admindir="${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg" "$@"
}
@@ -276,8 +283,13 @@ find_project_binary_dir() {
fi
}
setupenvironment() {
+ # Next check needs a gnu stat, let's figure that out early.
+ stat=stat
+ if command -v gnustat >/dev/null 2>&1; then
+ stat=gnustat
+ fi
# privilege dropping and testing doesn't work if /tmp isn't world-writeable (as e.g. with libpam-tmpdir)
- if [ -n "$TMPDIR" ] && [ "$(id -u)" = '0' ] && [ "$(stat --format '%a' "$TMPDIR")" != '1777' ]; then
+ if [ -n "$TMPDIR" ] && [ "$(id -u)" = '0' ] && [ "$($stat --format '%a' "$TMPDIR")" != '1777' ]; then
unset TMPDIR
fi
TMPWORKINGDIRECTORY="$(mktemp -d)"
@@ -290,12 +302,24 @@ setupenvironment() {
fi
msgninfo "Preparing environment for ${0##*/} in ${TMPWORKINGDIRECTORY}…"
+ # Setup coreutils on BSD systems
+ mkdir "${TMPWORKINGDIRECTORY}/bin"
+ for prefix in gnu g; do
+ for command in stat touch sed cp tr sha1sum sha256sum md5sum sha512sum grep date wc chmod head readlink tar expr base64; do
+ if command -v $prefix$command 2>/dev/null >/dev/null; then
+ [ -e "${TMPWORKINGDIRECTORY}/bin/$command" ] || ln -sf $(command -v $prefix$command) "${TMPWORKINGDIRECTORY}/bin/$command"
+ fi
+ done
+ done
+ export PATH="${TMPWORKINGDIRECTORY}/bin/:$PATH"
+
+
mkdir -m 700 "${TMPWORKINGDIRECTORY}/downloaded"
if [ "$(id -u)" = '0' ]; then
# relax permissions so that running as root with user switching works
umask 022
chmod 711 "$TMPWORKINGDIRECTORY"
- chown _apt:root "${TMPWORKINGDIRECTORY}/downloaded"
+ chown _apt:$(id -gn) "${TMPWORKINGDIRECTORY}/downloaded"
fi
TESTDIRECTORY="$(readlink -f "$(dirname $0)")"
@@ -352,6 +376,11 @@ setupenvironment() {
ln -s "${TMPWORKINGDIRECTORY}/keys/joesixpack.pub" rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg
echo "Dir \"${TMPWORKINGDIRECTORY}/rootdir\";" >> aptconfig.conf
+ echo "Dir::Etc \"etc\";" >> aptconfig.conf
+ echo "Dir::State \"var/lib/apt\";" >> aptconfig.conf
+ echo "Dir::Cache \"var/cache/apt\";" >> aptconfig.conf
+ echo "Dir::Etc \"etc/apt\";" >> aptconfig.conf
+ echo "Dir::Log \"var/log/apt\";" >> aptconfig.conf
echo "APT::Get::Show-User-Simulation-Note \"false\";" >> aptconfig.conf
echo "Dir::Bin::Methods \"${TMPWORKINGDIRECTORY}/rootdir/usr/lib/apt/methods\";" >> aptconfig.conf
# either store apt-key were we can access it, even if we run it as a different user
@@ -386,11 +415,13 @@ EOF
cp "${TMPWORKINGDIRECTORY}/rootdir/usr/bin/dpkg" "${TMPWORKINGDIRECTORY}/rootdir/usr/bin/gdb-dpkg"
cat >> "${TMPWORKINGDIRECTORY}/rootdir/usr/bin/dpkg" <<EOF
exec fakeroot '${DPKG:-dpkg}' --root='${TMPWORKINGDIRECTORY}/rootdir' \\
+ --admindir="${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg" \\
--log='${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log' \\
--force-not-root --force-bad-path "\$@"
EOF
cat >> "${TMPWORKINGDIRECTORY}/rootdir/usr/bin/gdb-dpkg" <<EOF
exec fakeroot gdb --quiet -ex run '${DPKG:-dpkg}' --args '${DPKG:-dpkg}' --root='${TMPWORKINGDIRECTORY}/rootdir' \\
+ --admindir="${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg" \\
--log='${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log' \\
--force-not-root --force-bad-path "\$@"
EOF
@@ -410,13 +441,15 @@ EOF
# in testcases, it can appear as if localhost has a rotation setup,
# hide this as we can't really deal with it properly
echo 'Acquire::Failure::ShowIP "false";'
+ # randomess and tests don't play well together
+ echo 'Acquire::IndexTargets::Randomized "false";'
# fakeroot can't fake everything, so disabled in production but good for tests
echo 'APT::Sandbox::Verify "true";'
} >> aptconfig.conf
cp "${TESTDIRECTORY}/apt.pem" "${TMPWORKINGDIRECTORY}/rootdir/etc/webserver.pem"
if [ "$(id -u)" = '0' ]; then
- chown _apt:root "${TMPWORKINGDIRECTORY}/rootdir/etc/webserver.pem"
+ chown _apt:$(id -gn) "${TMPWORKINGDIRECTORY}/rootdir/etc/webserver.pem"
fi
echo "Acquire::https::CaInfo \"${TMPWORKINGDIRECTORY}/rootdir/etc/webserver.pem\";" > rootdir/etc/apt/apt.conf.d/99https
echo "Apt::Cmd::Disable-Script-Warning \"1\";" > rootdir/etc/apt/apt.conf.d/apt-binary
@@ -428,16 +461,13 @@ EOF
# create some files in /tmp and look at user/group to get what this means
TEST_DEFAULT_USER="$(id -un)"
- if [ "$(uname)" = 'GNU/kFreeBSD' ]; then
- TEST_DEFAULT_GROUP='root'
- else
- TEST_DEFAULT_GROUP="$(id -gn)"
- fi
+ touch "${TMPWORKINGDIRECTORY}/test-file"
+ TEST_DEFAULT_GROUP=$(stat --format '%G' "${TMPWORKINGDIRECTORY}/test-file")
# cleanup the environment a bit
# prefer our apt binaries over the system apt binaries
export PATH="${BUILDDIRECTORY}:${PATH}:/usr/local/sbin:/usr/sbin:/sbin"
- export LC_ALL=C.UTF-8
+ export LC_ALL=C
unset LANGUAGE APT_CONFIG
unset GREP_OPTIONS DEB_BUILD_PROFILES
unset http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy
@@ -500,7 +530,15 @@ configdpkg() {
fi
fi
rm -f rootdir/etc/apt/apt.conf.d/00foreigndpkg
- if command dpkg --assert-multi-arch >/dev/null 2>&1 ; then
+ # if multi-arch make sure dpkg can detect itself as capable of it
+ if getarchitectures | grep -E -q '[^ ]+ [^ ]+'; then
+ if [ "0" = "$(dpkg -l dpkg 2> /dev/null | grep '^i' | wc -l)" ]; then
+ # dpkg doesn't really check the version as long as it is fully installed,
+ # but just to be sure we choose one above the required version
+ insertinstalledpackage 'dpkg' "all" '1.16.2+fake'
+ fi
+ fi
+ if dpkg --assert-multi-arch >/dev/null 2>&1 ; then
local ARCHS="$(getarchitectures)"
local DPKGARCH="$(dpkg --print-architecture)"
# this ensures that even if multi-arch isn't active in the view
@@ -515,14 +553,6 @@ configdpkg() {
fi
fi
done
- # if multi-arch make sure dpkg can detect itself as capable of it
- if echo "$ARCHS" | grep -E -q '[^ ]+ [^ ]+'; then
- if [ "0" = "$(dpkg -l dpkg 2> /dev/null | grep '^i' | wc -l)" ]; then
- # dpkg doesn't really check the version as long as it is fully installed,
- # but just to be sure we choose one above the required version
- insertinstalledpackage 'dpkg' "all" '1.16.2+fake'
- fi
- fi
fi
}
@@ -568,7 +598,11 @@ int execvp(const char *file, char *const argv[]) {
return func_execvp(newfile, argv);
}
EOF
- testempty --nomsg gcc -Wall -Wextra -fPIC -shared -o noopchroot.so noopchroot.c -ldl
+ if cc -ldl 2>&1 | grep -q dl; then
+ testempty --nomsg cc -Wall -Wextra -fPIC -shared -o noopchroot.so noopchroot.c
+ else
+ testempty --nomsg cc -Wall -Wextra -fPIC -shared -o noopchroot.so noopchroot.c -ldl
+ fi
}
configcompression() {
if [ "$1" = 'ALL' ]; then
@@ -626,10 +660,10 @@ _setupsimplenativepackage() {
local VERSION="$3"
local RELEASE="${4:-unstable}"
local DEPENDENCIES="$5"
- local DESCRIPTION="${6:-"an autogenerated dummy ${NAME}=${VERSION}/${RELEASE}
+ local DESCRIPTION="${6:-an autogenerated dummy ${NAME}=${VERSION}/${RELEASE}
If you find such a package installed on your system,
something went horribly wrong! They are autogenerated
- und used only by testcases and serve no other purpose…"}"
+ und used only by testcases and serve no other purpose…}"
local SECTION="${7:-others}"
local PRIORITY="${8:-optional}"
@@ -662,7 +696,7 @@ Standards-Version: 3.9.3"
if [ "$SECTION" != '<none>' ]; then
echo "Section: $SECTION"
fi
- local BUILDDEPS="$(echo "$DEPENDENCIES" | grep '^Build-')"
+ local BUILDDEPS="$(printf "%b\n" "$DEPENDENCIES" | grep '^Build-')"
test -z "$BUILDDEPS" || echo "$BUILDDEPS"
echo "
Package: $NAME"
@@ -672,21 +706,33 @@ Package: $NAME"
else
echo "Architecture: any"
fi
- local DEPS="$(echo "$DEPENDENCIES" | grep -v '^Build-')"
+ local DEPS="$(printf "%b\n" "$DEPENDENCIES" | grep -v '^Build-')"
test -z "$DEPS" || echo "$DEPS"
- echo "Description: $DESCRIPTION"
+ printf "%b\n" "Description: $DESCRIPTION"
} > "${BUILDDIR}/debian/control"
echo '3.0 (native)' > "${BUILDDIR}/debian/source/format"
}
+make_tiny_rules() {
+ local OUT="$1"
+ if command -v gmake >/dev/null 2>&1; then
+ [ -e ${TMPWORKINGDIRECTORY}/bin/make ] || ln -s $(command -v gmake) ${TMPWORKINGDIRECTORY}/bin/make
+ echo "#!${TMPWORKINGDIRECTORY}/bin/make -f" > "$OUT"
+ else
+ echo '#!/usr/bin/make -f' > "$OUT"
+ fi
+ echo '%:' >> "$OUT"
+ echo ' dh $@' >> "$OUT"
+}
+
setupsimplenativepackage() {
_setupsimplenativepackage "$@"
local NAME="$1"
local VERSION="$3"
local BUILDDIR="${TMPWORKINGDIRECTORY}/incoming/${NAME}-${VERSION}"
test -e "${BUILDDIR}/debian/compat" || echo '7' > "${BUILDDIR}/debian/compat"
- test -e "${BUILDDIR}/debian/rules" || cp /usr/share/doc/debhelper/examples/rules.tiny "${BUILDDIR}/debian/rules"
+ test -e "${BUILDDIR}/debian/rules" || make_tiny_rules "${BUILDDIR}/debian/rules"
}
buildsimplenativepackage() {
@@ -767,7 +813,7 @@ buildpackage() {
if [ "$ARCH" = "all" ]; then
ARCH="$(dpkg-architecture -qDEB_HOST_ARCH 2> /dev/null)"
fi
- testsuccess --nomsg dpkg-buildpackage -uc -us -a$ARCH
+ testsuccess --nomsg dpkg-buildpackage -uc -us -a$ARCH -d
cp "${TMPWORKINGDIRECTORY}/rootdir/tmp/testsuccess.output" "$BUILDLOG"
local PKGS="$(grep '^dpkg-deb: building package' "$BUILDLOG" | cut -d'/' -f 2 | sed -e "s#'\.##")"
local SRCS="$(grep '^dpkg-source: info: building' "$BUILDLOG" | grep -o '[a-z0-9._+~-]*$')"
@@ -844,10 +890,10 @@ insertpackage() {
local VERSION="$4"
local DEPENDENCIES="$5"
local PRIORITY="${6:-optional}"
- local DESCRIPTION="${7:-"an autogenerated dummy ${NAME}=${VERSION}/${RELEASES}
+ local DESCRIPTION="${7:-an autogenerated dummy ${NAME}=${VERSION}/${RELEASES}
If you find such a package installed on your system,
something went horribly wrong! They are autogenerated
- und used only by testcases and serve no other purpose…"}"
+ und used only by testcases and serve no other purpose…}"
local ARCHS=""
for RELEASE in $(printf '%s' "$RELEASES" | tr ',' '\n'); do
if [ "$RELEASE" = 'installed' ]; then
@@ -872,9 +918,10 @@ Maintainer: Joe Sixpack <joe@example.org>"
test "$arch" = 'none' || echo "Architecture: $arch"
echo "Version: $VERSION
Filename: pool/main/${NAME}/${NAME}_${VERSION}_${arch}.deb"
- test -z "$DEPENDENCIES" || echo "$DEPENDENCIES"
+ test -z "$DEPENDENCIES" || printf "%b\n" "$DEPENDENCIES"
echo "Description: $(printf '%s' "$DESCRIPTION" | head -n 1)"
echo "Description-md5: $(printf '%s' "$DESCRIPTION" | md5sum | cut -d' ' -f 1)"
+ echo "SHA256: 0000000000000000000000000000000000000000000000000000000000000000"
echo
} >> "${PPATH}/Packages"
done
@@ -907,7 +954,7 @@ Binary: $BINARY
Version: $VERSION
Maintainer: Joe Sixpack <joe@example.org>
Architecture: $ARCH" >> $FILE
- test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> "$FILE"
+ test -z "$DEPENDENCIES" || printf "%b\n" "$DEPENDENCIES" >> "$FILE"
echo "Files:
$(echo -n "$DSCFILE" | md5sum | cut -d' ' -f 1) $(echo -n "$DSCFILE" | wc -c) "$DSCFILE"
$(echo -n "$TARFILE" | md5sum | cut -d' ' -f 1) $(echo -n "$TARFILE" | wc -c) "$TARFILE"
@@ -925,10 +972,10 @@ insertinstalledpackage() {
local DEPENDENCIES="$4"
local PRIORITY="${5:-optional}"
local STATUS="${6:-install ok installed}"
- local DESCRIPTION="${7:-"an autogenerated dummy ${NAME}=${VERSION}/installed
+ local DESCRIPTION="${7:-an autogenerated dummy ${NAME}=${VERSION}/installed
If you find such a package installed on your system,
something went horribly wrong! They are autogenerated
- und used only by testcases and serve no other purpose…"}"
+ und used only by testcases and serve no other purpose…}"
local FILE='rootdir/var/lib/dpkg/status'
local INFO='rootdir/var/lib/dpkg/info'
@@ -941,8 +988,8 @@ Installed-Size: 42
Maintainer: Joe Sixpack <joe@example.org>
Version: $VERSION" >> "$FILE"
test "$arch" = 'none' || echo "Architecture: $arch" >> "$FILE"
- test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> "$FILE"
- echo "Description: $DESCRIPTION" >> "$FILE"
+ test -z "$DEPENDENCIES" || printf "%b\n" "$DEPENDENCIES" >> "$FILE"
+ printf "%b\n" "Description: $DESCRIPTION" >> "$FILE"
echo >> "$FILE"
if [ "$(dpkg-query -W --showformat='${Multi-Arch}')" = 'same' ]; then
echo -n > "${INFO}/${NAME}:${arch}.list"
@@ -1275,7 +1322,12 @@ changetowebserver() {
}
changetohttpswebserver() {
- if ! command -v stunnel4 >/dev/null 2>&1; then
+ local stunnel4
+ if command -v stunnel4 >/dev/null 2>&1; then
+ stunnel4=stunnel4
+ elif command -v stunnel >/dev/null 2>&1; then
+ stunnel4=stunnel
+ else
msgdie 'You need to install stunnel4 for https testcases'
fi
if [ ! -e "${TMPWORKINGDIRECTORY}/aptarchive/aptwebserver.pid" ]; then
@@ -1289,14 +1341,14 @@ output = /dev/null
accept = 0
connect = $APTHTTPPORT
" > "${TMPWORKINGDIRECTORY}/stunnel.conf"
- stunnel4 "${TMPWORKINGDIRECTORY}/stunnel.conf"
+ $stunnel4 "${TMPWORKINGDIRECTORY}/stunnel.conf"
waitforpidfile "${TMPWORKINGDIRECTORY}/aptarchive/stunnel.pid"
local PID="$(cat "${TMPWORKINGDIRECTORY}/aptarchive/stunnel.pid")"
if [ -z "$PID" ]; then
- msgdie 'Could not fork stunnel4 successfully'
+ msgdie 'Could not fork $stunnel4 successfully'
fi
addtrap 'prefix' "kill ${PID};"
- APTHTTPSPORT="$(lsof -i -n | awk "/^stunnel4 / && \$2 == \"${PID}\" {print \$9; exit; }" | cut -d':' -f 2)"
+ APTHTTPSPORT="$(lsof -i -n | awk "/^$stunnel4 / && \$2 == \"${PID}\" {print \$9; exit; }" | cut -d':' -f 2)"
webserverconfig 'aptwebserver::port::https' "$APTHTTPSPORT" "https://localhost:${APTHTTPSPORT}"
rewritesourceslist "https://localhost:${APTHTTPSPORT}/"
}
@@ -1916,7 +1968,7 @@ mkdir() {
command mkdir -m 700 -p "${TMPWORKINGDIRECTORY}/rootdir/var/lib/apt/lists/partial"
touch "${TMPWORKINGDIRECTORY}/rootdir/var/lib/apt/lists/lock"
if [ "$(id -u)" = '0' ]; then
- chown _apt:root "${TMPWORKINGDIRECTORY}/rootdir/var/lib/apt/lists/partial"
+ chown _apt:$(id -gn) "${TMPWORKINGDIRECTORY}/rootdir/var/lib/apt/lists/partial"
fi
else
command mkdir "$@"
@@ -1988,7 +2040,7 @@ testaptautotestnodpkgwarning() {
if expr match "$2" '^-dy\?' >/dev/null 2>&1; then return; fi # download-only mode
shift
done
- testfailure grep '^dpkg: warning:.*ignor.*' "${TMPWORKINGDIRECTORY}/rootdir/tmp-before/${TESTCALL}.output"
+ testfailure grep '^dpkg: warning:.*\(ignor\|unknown\).*' "${TMPWORKINGDIRECTORY}/rootdir/tmp-before/${TESTCALL}.output"
}
aptautotest_aptget_install() { testaptautotestnodpkgwarning "$@"; }
diff --git a/test/integration/run-tests b/test/integration/run-tests
index 78f24fbaf..7c0b74ce2 100755
--- a/test/integration/run-tests
+++ b/test/integration/run-tests
@@ -5,6 +5,8 @@ TESTTORUN=''
while [ -n "$1" ]; do
if [ "$1" = "-q" ]; then
export MSGLEVEL=2
+ elif [ "$1" = "-qq" ]; then
+ export MSGLEVEL=1
elif [ "$1" = "-v" ]; then
export MSGLEVEL=4
elif [ "$1" = '--color=no' ]; then
@@ -50,7 +52,9 @@ if [ -n "$TESTTORUN" ]; then
CURRENTTRAP="rm -f \"$OUTPUT\"; $CURRENTTRAP"
trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
{
- if [ "$MSGLEVEL" -le 2 ]; then
+ if [ "$MSGLEVEL" -le 1 ]; then
+ printf "${TESTTORUN##*/}"
+ elif [ "$MSGLEVEL" -le 2 ]; then
printf "${CTEST}Testcase ${CHIGH}${TESTTORUN##*/}${CRESET}: "
else
printf "${CTEST}Run Testcase ${CHIGH}${TESTTORUN##*/}${CRESET}\n"
@@ -58,12 +62,20 @@ if [ -n "$TESTTORUN" ]; then
if ! "$TESTTORUN"; then
FAIL='yes'
if [ "$MSGLEVEL" -le 2 ]; then
+ printf >&2 "\n${CHIGH}Running ${TESTTORUN##*/} -> FAILED${CRESET}\n"
+ elif [ "$MSGLEVEL" -le 2 ]; then
printf >&2 "\n${CHIGH}Running ${TESTTORUN##*/} -> FAILED${CRESET}"
else
echo >&2 "${CHIGH}Running ${TESTTORUN##*/} -> FAILED${CRESET}"
fi
+ else
+ if [ "$MSGLEVEL" -le 1 ]; then
+ printf " "
+ fi
fi
- if [ "$MSGLEVEL" -le 2 ]; then
+ if [ "$MSGLEVEL" -le 1 ]; then
+ :
+ elif [ "$MSGLEVEL" -le 2 ]; then
echo
fi
} >"$OUTPUT" 2>&1
@@ -89,11 +101,20 @@ if [ -n "$APT_TEST_JOBS" ]; then
if [ "$MSGCOLOR" != 'NO' ]; then
export MSGCOLOR='ALWAYS'
fi
- exec parallel -j "$APT_TEST_JOBS" "./$(basename "$0")" -- $(echo "$TESTLIST")
+ parallel=parallel
+ if command -v moreutils-parallel >/dev/null 2>&1; then
+ parallel=moreutils-parallel
+ fi
+ exec $parallel -j "$APT_TEST_JOBS" "./$(basename "$0")" -- $(echo "$TESTLIST")
fi
TOTAL="$(echo "$TESTLIST" | wc -l)"
+if [ "$MSGLEVEL" -le 1 ]; then
+ printf "${CTEST}Running testcases${CRESET}: "
+fi
for testcase in $TESTLIST; do
- if [ "$MSGLEVEL" -le 2 ]; then
+ if [ "$MSGLEVEL" -le 1 ]; then
+ printf "${testcase##*/}"
+ elif [ "$MSGLEVEL" -le 2 ]; then
printf "($(($ALL+1))/${TOTAL}) ${CTEST}Testcase ${CHIGH}${testcase##*/}${CRESET}: "
else
printf "${CTEST}Run Testcase ($(($ALL+1))/${TOTAL}) ${CHIGH}${testcase##*/}${CRESET}\n"
@@ -101,16 +122,23 @@ for testcase in $TESTLIST; do
if ! ${testcase}; then
FAIL=$((FAIL+1))
FAILED_TESTS="$FAILED_TESTS ${testcase##*/}"
- if [ "$MSGLEVEL" -le 2 ]; then
+ if [ "$MSGLEVEL" -le 1 ]; then
+ printf >&2 "\n${CHIGH}Running ${testcase##*/} -> FAILED${CRESET}\n"
+ elif [ "$MSGLEVEL" -le 2 ]; then
printf >&2 "\n${CHIGH}Running ${testcase##*/} -> FAILED${CRESET}"
else
echo >&2 "${CHIGH}Running ${testcase##*/} -> FAILED${CRESET}"
fi
else
PASS=$((PASS+1))
+ if [ "$MSGLEVEL" -le 1 ]; then
+ printf " "
+ fi
fi
ALL=$((ALL+1))
- if [ "$MSGLEVEL" -le 2 ]; then
+ if [ "$MSGLEVEL" -le 1 ]; then
+ :
+ elif [ "$MSGLEVEL" -le 2 ]; then
echo
fi
done
diff --git a/test/integration/test-apt-config b/test/integration/test-apt-config
index abae83ee6..f2068b789 100755
--- a/test/integration/test-apt-config
+++ b/test/integration/test-apt-config
@@ -24,7 +24,7 @@ testsuccessequal "ARCH='amd64'" aptconfig shell ARCH APT::Architecture
ROOTDIR="$(readlink -f rootdir)"
testsuccessequal "CONFIG='apt.conf'" aptconfig shell CONFIG Dir::Etc::main
testsuccessequal "CONFIG='${ROOTDIR}/etc/apt/apt.conf'" aptconfig shell CONFIG Dir::Etc::main/f
-testsuccessequal "CONFIG='etc/apt/'" aptconfig shell CONFIG Dir::Etc
+testsuccessequal "CONFIG='etc/apt'" aptconfig shell CONFIG Dir::Etc
testsuccessequal "CONFIG='${ROOTDIR}/etc/apt/'" aptconfig shell CONFIG Dir::Etc/ # old style
testsuccessequal "CONFIG='${ROOTDIR}/etc/apt/'" aptconfig shell CONFIG Dir::Etc/d
diff --git a/test/integration/test-apt-ftparchive-cachedb-lp1274466 b/test/integration/test-apt-ftparchive-cachedb-lp1274466
index c230e47dc..3a5527230 100755
--- a/test/integration/test-apt-ftparchive-cachedb-lp1274466
+++ b/test/integration/test-apt-ftparchive-cachedb-lp1274466
@@ -11,14 +11,19 @@ setupenvironment
configarchitecture "i386"
confighashes 'MD5' 'SHA1' 'SHA256' 'SHA512'
+db_dump=db_dump
+if command -v db_dump-5 >/dev/null 2>&1; then
+ db_dump=db_dump-5
+fi
+
# gather the db and the deb, ensure mtime is not modfied as its saved in the DB
cp -p "$TESTDIR/deb-lp1274466-cachedb.deb" foo_1_i386.deb
cp -p "$TESTDIR/cachedb-lp1274466-old-format.db" old-format.db
# verify that the format is different
testsuccess aptftparchive --db new-format.db packages .
-db_dump new-format.db > new-format.dump
-db_dump old-format.db > old-format.dump
+$db_dump new-format.db > new-format.dump
+$db_dump old-format.db > old-format.dump
testfailure diff -u old-format.dump new-format.dump
# ensure the new format as the sha512
@@ -47,7 +52,7 @@ Description: an autogenerated dummy foo=1/test
" aptftparchive --db old-format.db packages .
# ensure that the db is updated and contains the new sha512
-db_dump old-format.db > old-format.dump
+$db_dump old-format.db > old-format.dump
testsuccess grep 7da58ff901a40ecf42a730dc33198b182e9ba9ec98799fc2c2b6fabeeee40cc12a0e7cadb4b66764235c56e1009dbfe8a9a566fb1eedf47a992d1fff2cc3332c old-format.dump
diff --git a/test/integration/test-apt-get-autoremove b/test/integration/test-apt-get-autoremove
index cfee748af..8af864acb 100755
--- a/test/integration/test-apt-get-autoremove
+++ b/test/integration/test-apt-get-autoremove
@@ -152,3 +152,6 @@ Remv foo-multi2-1 [1]
Remv foo-multi2-2 [1]
Remv foo-plus-1 [1]
Remv foo-plus-2 [1]' apt autoremove -s
+
+testdpkgstatus 'pi' '1' 'unrelated'
+testsuccess apt purge unrelated -y
diff --git a/test/integration/test-apt-get-changelog b/test/integration/test-apt-get-changelog
index 0812db500..ee7b3ef97 100755
--- a/test/integration/test-apt-get-changelog
+++ b/test/integration/test-apt-get-changelog
@@ -122,13 +122,13 @@ testsuccess apt install dpkg -y
# at this moment, we still have the Releasefile claim to be origin:ubuntu
echo 'Acquire::Changelogs::AlwaysOnline::Origin::Ubuntu "false";' >> rootdir/etc/apt/apt.conf.d/nooriginchangelogs
testsuccessequal "'http://localhost:${APTHTTPPORT}/pool/main/d/dpkg/dpkg_42/changelog' dpkg.changelog" apt changelog dpkg --print-uris
-testsuccessequal "'gzip:///usr/share/doc/dpkg/changelog.Debian.gz' dpkg.changelog" apt changelog dpkg --print-uris -o Acquire::Changelogs::AlwaysOnline=false
+testsuccessequal "'copy://${TMPWORKINGDIRECTORY}/rootdir/usr/share/doc/dpkg/changelog' dpkg.changelog" apt changelog dpkg --print-uris -o Acquire::Changelogs::AlwaysOnline=false
testsuccessequal "'http://localhost:${APTHTTPPORT}/pool/main/d/dpkg/dpkg_42/changelog' dpkg.changelog" apt changelog dpkg --print-uris -o Acquire::Changelogs::AlwaysOnline=true
testsuccessequal "'http://localhost:${APTHTTPPORT}/pool/main/d/dpkg/dpkg_42/changelog' dpkg.changelog" apt changelog dpkg --print-uris -o Acquire::Changelogs::AlwaysOnline=false -o Acquire::Changelogs::AlwaysOnline::Origin::Ubuntu=true
-testsuccessequal "'gzip:///usr/share/doc/dpkg/changelog.Debian.gz' dpkg.changelog" apt changelog dpkg --print-uris -o Acquire::Changelogs::AlwaysOnline=false -o Acquire::Changelogs::AlwaysOnline::Origin::Debian=true
+testsuccessequal "'copy://${TMPWORKINGDIRECTORY}/rootdir/usr/share/doc/dpkg/changelog' dpkg.changelog" apt changelog dpkg --print-uris -o Acquire::Changelogs::AlwaysOnline=false -o Acquire::Changelogs::AlwaysOnline::Origin::Debian=true
testsuccess apt changelog dpkg -d
testfilestats 'dpkg.changelog' '%U:%G:%a' '=' "${TEST_DEFAULT_USER}:${TEST_DEFAULT_GROUP}:644"
head -n 3 dpkg.changelog > dpkg.change
-testfileequal 'dpkg.change' "$(apthelper cat-file '/usr/share/doc/dpkg/changelog.Debian.gz' | head -n 3)"
+testfileequal 'dpkg.change' "$(apthelper cat-file 'rootdir/usr/share/doc/dpkg/changelog' | head -n 3)"
rm -f dpkg.change dpkg.changelog
diff --git a/test/integration/test-apt-get-install-deb b/test/integration/test-apt-get-install-deb
index 5f2877dfd..36e94a2dc 100755
--- a/test/integration/test-apt-get-install-deb
+++ b/test/integration/test-apt-get-install-deb
@@ -125,8 +125,12 @@ createpkg 'leading-newline' '
createpkg 'trailing-newline' '' '
'
+echo 'Package: /pkg-/
+Pin: release a=experimental
+Pin-Priority: 501' > rootdir/etc/apt/preferences.d/pinit
+
testsuccess aptget install ./incoming/pkg-as-it-should-be_0_all.deb
-testsuccess aptget install ./incoming/pkg-leading-newline_0_all.deb
+testsuccess aptget install "$(readlink -f ./incoming/pkg-leading-newline_0_all.deb)"
testsuccess aptget install ./incoming/pkg-trailing-newline_0_all.deb
testempty apt clean
@@ -168,3 +172,29 @@ testsuccess apt show --with-source ./Packages pkg-as-it-should-be
testequal 'Package: pkg-as-it-should-be' head -n1 rootdir/tmp/testsuccess.output
testsuccess apt install -y --with-source ./Packages pkg-as-it-should-be
testdpkginstalled 'pkg-as-it-should-be'
+rm -f ./Packages
+
+echo 'dpkg::install::recursive "true";
+dpkg::install::recursive::force "true";
+dpkg::install::recursive::minimum "0";' > rootdir/etc/apt/apt.conf.d/lowerminimum.conf
+mv ./incoming/pkg-as-it-should-be_0_all.deb ./incoming/pkg-as-it-should-be_0_all.ddeb
+testsuccess aptget install -y ./incoming/pkg-as-it-should-be_0_all.ddeb --reinstall
+testfailure grep 'is already the newest version' rootdir/tmp/testsuccess.output
+testsuccess apt purge -y pkg-as-it-should-be
+testdpkgnotinstalled 'pkg-as-it-should-be'
+
+mv ./incoming/pkg-as-it-should-be_0_all.ddeb ./incoming/pkg-as-it-should-be_0_all.foobar
+echo "Package: pkg-as-it-should-be
+Architecture: all
+Version: 0
+Installed-Size: 2903
+Filename: incoming/pkg-as-it-should-be_0_all.foobar
+Size: $(stat -c %s incoming/pkg-as-it-should-be_0_all.foobar)
+SHA256: $(sha256sum incoming/pkg-as-it-should-be_0_all.foobar | cut -d' ' -f 1)
+" | gzip > Packages.gz
+testsuccess apt install --with-source ./Packages.gz pkg-as-it-should-be -s
+testsuccess apt install --with-source ./Packages.gz pkg-as-it-should-be --print-uris
+testsuccess apt show --with-source ./Packages.gz pkg-as-it-should-be
+testequal 'Package: pkg-as-it-should-be' head -n1 rootdir/tmp/testsuccess.output
+testsuccess apt install -y --with-source ./Packages.gz pkg-as-it-should-be
+testdpkginstalled 'pkg-as-it-should-be'
diff --git a/test/integration/test-apt-key b/test/integration/test-apt-key
index 759ce1487..96cfe41fa 100755
--- a/test/integration/test-apt-key
+++ b/test/integration/test-apt-key
@@ -81,6 +81,20 @@ gpg: unchanged: 1' aptkey --fakeroot update
testsuccess --nomsg aptkey --fakeroot del d141dbac8dae
testempty aptkey list
+ if [ "$(id -u)" != '0' ]; then
+ msgtest 'Test key removal with' 'unreadable key'
+ cleanplate
+ cp -a "${KEYDIR}/joesixpack.pub" "${ROOTDIR}/etc/apt/trusted.gpg.d/joesixpack.gpg"
+ echo 'foobar' > "${ROOTDIR}/etc/apt/trusted.gpg.d/unreadablekey.gpg"
+ chmod 000 "${ROOTDIR}/etc/apt/trusted.gpg.d/unreadablekey.gpg"
+ testwarning --nomsg aptkey --fakeroot del d141dbac8dae
+ testwarning aptkey list
+ chmod 644 "${ROOTDIR}/etc/apt/trusted.gpg.d/unreadablekey.gpg"
+ rm -f "${ROOTDIR}/etc/apt/trusted.gpg.d/unreadablekey.gpg"
+ grep -v '^W: ' "${ROOTDIR}/tmp/testwarning.output" > "${ROOTDIR}/aptkeylist.output" || true
+ testempty cat "${ROOTDIR}/aptkeylist.output"
+ fi
+
msgtest 'Test key removal with' 'single key in real file'
cleanplate
cp -a "${KEYDIR}/joesixpack.pub" "${ROOTDIR}/etc/apt/trusted.gpg.d/joesixpack.gpg"
@@ -202,6 +216,16 @@ gpg: unchanged: 1' aptkey --fakeroot update
msgtest 'Test verify a file' 'with all keys'
testsuccess --nomsg aptkey --quiet --readonly verify "${SIGNATURE}.gpg" "${SIGNATURE}"
+ if [ "$(id -u)" != '0' ]; then
+ msgtest 'Test verify a file' 'with unreadable key'
+ echo 'foobar' > "${ROOTDIR}/etc/apt/trusted.gpg.d/unreadablekey.gpg"
+ chmod 000 "${ROOTDIR}/etc/apt/trusted.gpg.d/unreadablekey.gpg"
+ testwarning --nomsg aptkey --quiet --readonly verify "${SIGNATURE}.gpg" "${SIGNATURE}"
+ testwarning aptkey list
+ chmod 644 "${ROOTDIR}/etc/apt/trusted.gpg.d/unreadablekey.gpg"
+ rm -f "${ROOTDIR}/etc/apt/trusted.gpg.d/unreadablekey.gpg"
+ fi
+
msgtest 'Test verify a file' 'with good keyring'
testsuccess --nomsg aptkey --quiet --readonly --keyring "${KEYDIR}/testcase-multikey.pub" verify "${SIGNATURE}.gpg" "${SIGNATURE}"
diff --git a/test/integration/test-apt-redirect-loop b/test/integration/test-apt-redirect-loop
index b54f74276..e1a8aeea0 100755
--- a/test/integration/test-apt-redirect-loop
+++ b/test/integration/test-apt-redirect-loop
@@ -7,9 +7,6 @@ TESTDIR="$(readlink -f "$(dirname "$0")")"
setupenvironment
configarchitecture "i386"
-insertpackage 'stable' 'apt' 'all' '1'
-setupaptarchive --no-update
-
echo 'alright' > aptarchive/working
changetohttpswebserver
webserverconfig 'aptwebserver::redirect::replace::/redirectme3/' '/redirectme/'
diff --git a/test/integration/test-apt-update-simple b/test/integration/test-apt-update-simple
index ca969e61b..ccf719790 100755
--- a/test/integration/test-apt-update-simple
+++ b/test/integration/test-apt-update-simple
@@ -6,10 +6,28 @@ TESTDIR="$(readlink -f "$(dirname "$0")")"
setupenvironment
configarchitecture 'amd64'
-insertpackage 'unstable' 'unrelated' 'all' '0.5~squeeze1'
-insertsource 'unstable' 'unrelated' 'all' '0.5~squeeze1'
+insertpackage 'unstable' 'foo' 'all' '1'
+insertpackage 'unstable' 'bar' 'amd64' '1'
+insertpackage 'unstable' 'bar' 'i386' '1'
+insertsource 'unstable' 'foo' 'all' '1'
+
+sed -e 's#^Description-en:#Description-de:#' \
+ aptarchive/dists/unstable/main/i18n/Translation-en > aptarchive/dists/unstable/main/i18n/Translation-de
setupaptarchive --no-update
changetowebserver
-testsuccess aptget update -o Debug::Acquire::Auth=1
+# the framework modifies some configs to ensure testability,
+# at the expense of creating an environment which doesn't always
+# reflect apts "normal" behavior on a "normal" system
+echo 'Acquire::IndexTargets::Randomized "true";
+Acquire::Languages { "environment"; "en"; "de"; };
+' > rootdir/etc/apt/apt.conf.d/restore-simplicity
+
+testempty aptget indextargets
+testsuccess aptget update
+testequal 'main/source/Sources
+main/binary-amd64/Packages
+main/binary-all/Packages
+main/i18n/Translation-en
+main/i18n/Translation-de' aptget indextargets --format '$(METAKEY)'
diff --git a/test/integration/test-authentication-basic b/test/integration/test-authentication-basic
index 9a15c7604..3bfd076ce 100755
--- a/test/integration/test-authentication-basic
+++ b/test/integration/test-authentication-basic
@@ -30,7 +30,7 @@ testauthsuccess() {
# lets see if got/retains acceptable permissions
if [ -n "$AUTHCONF" ]; then
if [ "$(id -u)" = '0' ]; then
- testfilestats "$AUTHCONF" '%U:%G:%a' '=' "_apt:root:600"
+ testfilestats "$AUTHCONF" '%U:%G:%a' '=' "_apt:$(id -gn):600"
else
testfilestats "$AUTHCONF" '%U:%G:%a' '=' "${TEST_DEFAULT_USER}:${TEST_DEFAULT_GROUP}:600"
fi
diff --git a/test/integration/test-bug-605394-versioned-or-groups b/test/integration/test-bug-605394-versioned-or-groups
index a362463d5..43f35f79b 100755
--- a/test/integration/test-bug-605394-versioned-or-groups
+++ b/test/integration/test-bug-605394-versioned-or-groups
@@ -24,3 +24,7 @@ if aptget dist-upgrade --trivial-only -o Debug::pkgProblemResolver=1 -o Debug::p
else
msgpass
fi
+
+# the Packages file includes only MD5
+testfailure aptget dist-upgrade -y
+testsuccess grep 'Insufficient information available to perform this download securely' rootdir/tmp/testfailure.output
diff --git a/test/integration/test-bug-661537-build-profiles-support b/test/integration/test-bug-661537-build-profiles-support
index 91115ea18..d24484de9 100755
--- a/test/integration/test-bug-661537-build-profiles-support
+++ b/test/integration/test-bug-661537-build-profiles-support
@@ -76,7 +76,7 @@ Building dependency tree...
}
msgtest 'Check if version of installed dpkg is high enough for' 'build profiles support'
-if dpkg --compare-versions "$(command dpkg-query --showformat='${Version}' --show dpkg)" 'ge' '1.17.14'; then
+if dpkg --compare-versions "$(dpkg_version)" 'ge' '1.17.14'; then
msgpass
testwithdpkg() {
msgtest "Test with" "dpkg-checkbuilddeps -d '$1' -P '$2'"
diff --git a/test/integration/test-bug-712116-dpkg-pre-install-pkgs-hook-multiarch b/test/integration/test-bug-712116-dpkg-pre-install-pkgs-hook-multiarch
index d9fd3d30d..bf93367c9 100755
--- a/test/integration/test-bug-712116-dpkg-pre-install-pkgs-hook-multiarch
+++ b/test/integration/test-bug-712116-dpkg-pre-install-pkgs-hook-multiarch
@@ -32,7 +32,7 @@ if [ -n \"${2}\" ]; then
FD=\$APT_HOOK_INFO_FD
if [ "\$FD" != \"${2}\" ]; then echo \"ERROR: Information is not on requested FD: \$FD != ${2}\" >> ${hook}-v${1}.list; fi
fi
-while read </proc/\$\$/fd/\$FD line; do
+while read </dev/fd/\$FD line; do
if echo \"\$line\" | grep -Fq '**'; then
echo \"\$line\"
fi
diff --git a/test/integration/test-bug-722207-print-uris-even-if-very-quiet b/test/integration/test-bug-722207-print-uris-even-if-very-quiet
index d8d3c7218..82c1d715f 100755
--- a/test/integration/test-bug-722207-print-uris-even-if-very-quiet
+++ b/test/integration/test-bug-722207-print-uris-even-if-very-quiet
@@ -20,7 +20,7 @@ APTARCHIVE=$(readlink -f ./aptarchive)
testsuccessequal "'file://${APTARCHIVE}/pool/main/apt/apt_2_all.deb' apt_2_all.deb 0 " aptget upgrade -qq --print-uris
testsuccessequal "'file://${APTARCHIVE}/pool/main/apt/apt_2_all.deb' apt_2_all.deb 0 " aptget dist-upgrade -qq --print-uris
testsuccessequal "'file://${APTARCHIVE}/pool/main/apt/apt_2_all.deb' apt_2_all.deb 0 " aptget install apt -qq --print-uris
-testsuccessequal "'file://${APTARCHIVE}/pool/main/apt/apt_2_all.deb' apt_2_all.deb 0 " aptget download apt -qq --print-uris
+testsuccessequal "'file://${APTARCHIVE}/pool/main/apt/apt_2_all.deb' apt_2_all.deb 0 SHA256:0000000000000000000000000000000000000000000000000000000000000000" aptget download apt -qq --print-uris
testsuccessequal "'file://${APTARCHIVE}/apt_2.dsc' apt_2.dsc 9 SHA256:7776436a6d741497f1cd958014e1a05b352224231428152aae39da3c17fd2fd4
'file://${APTARCHIVE}/apt_2.tar.gz' apt_2.tar.gz 12 SHA256:f57f565eabe3fde0ec6e6e0bcc8db1d86fe2b4d6344a380a23520ddbb7728e99" aptget source apt -qq --print-uris
testsuccessequal "'http://metadata.ftp-master.debian.org/changelogs/main/a/apt/apt_2_changelog' apt.changelog" aptget changelog apt -qq --print-uris
diff --git a/test/integration/test-bug-769609-triggers-still-pending-after-run b/test/integration/test-bug-769609-triggers-still-pending-after-run
index bd43578a5..ce2c193dd 100755
--- a/test/integration/test-bug-769609-triggers-still-pending-after-run
+++ b/test/integration/test-bug-769609-triggers-still-pending-after-run
@@ -8,7 +8,7 @@ setupenvironment
configarchitecture 'amd64'
msgtest 'Check if installed dpkg supports' 'noawait trigger'
-if dpkg-checkbuilddeps -d 'dpkg (>= 1.16.1)' /dev/null; then
+if dpkg --compare-versions "$(dpkg_version)" 'ge' '1.16.1'; then
msgpass
else
msgskip 'dpkg version too old'
@@ -23,7 +23,7 @@ buildtriggerpackages() {
cat >"${BUILDDIR}/debian/postinst" <<EOF
#!/bin/sh
if [ "\$1" = 'triggered' ]; then
- ls -l /proc/self/fd/
+ echo "TRIGGER IS RUNNING"
fi
EOF
echo "$TYPE /usr/share/doc" > "${BUILDDIR}/debian/triggers"
@@ -49,26 +49,26 @@ runtests() {
testsuccess aptget install trigdepends-$TYPE -y --reinstall
cp rootdir/tmp/testsuccess.output terminal.output
testsuccess grep '^REWRITE ' terminal.output
- testsuccess grep ' root root ' terminal.output
+ testsuccess grep 'TRIGGER IS RUNNING' terminal.output
testdpkginstalled triggerable-$TYPE trigdepends-$TYPE
testsuccess aptget install trigstuff -y
cp rootdir/tmp/testsuccess.output terminal.output
testsuccess grep '^REWRITE ' terminal.output
- testsuccess grep ' root root ' terminal.output
+ testsuccess grep 'TRIGGER IS RUNNING' terminal.output
testdpkginstalled triggerable-$TYPE trigdepends-$TYPE trigstuff
testsuccess aptget purge trigstuff -y
cp rootdir/tmp/testsuccess.output terminal.output
testsuccess grep '^REWRITE ' terminal.output
- testsuccess grep ' root root ' terminal.output
+ testsuccess grep 'TRIGGER IS RUNNING' terminal.output
testdpkginstalled triggerable-$TYPE trigdepends-$TYPE
testdpkgnotinstalled trigstuff
testsuccess aptget purge trigdepends-$TYPE -y
cp rootdir/tmp/testsuccess.output terminal.output
testfailure grep '^REWRITE ' terminal.output
- testfailure grep ' root root ' terminal.output
+ testfailure grep 'TRIGGER IS RUNNING' terminal.output
testdpkgnotinstalled triggerable-$TYPE trigdepends-$TYPE
}
#runtests 'interest'
diff --git a/test/integration/test-external-dependency-solver-protocol b/test/integration/test-external-dependency-solver-protocol
index 10b07e896..17a30cf2f 100755
--- a/test/integration/test-external-dependency-solver-protocol
+++ b/test/integration/test-external-dependency-solver-protocol
@@ -26,7 +26,7 @@ insertpackage 'experimental' 'coolstuff' 'i386,amd64' '3' 'Depends: cool, stuff'
setupaptarchive
testsuccess aptget install --solver apt coolstuff -s
-testempty find -name 'edsp.last.*'
+testempty find . -name 'edsp.last.*'
echo 'Dir::Log::Solver "edsp.last.xz";' > rootdir/etc/apt/apt.conf.d/log-edsp.conf
testfailure aptget install --solver dump coolstuff -s
@@ -152,7 +152,7 @@ testsuccess grep 'ERR_UNSOLVABLE' rootdir/tmp/testfailure.output
configarchitecture 'armel'
testfailure aptget install --solver apt awesomecoolstuff:i386 -s
msgtest 'An invalid EDSP file generates a' 'hard error'
-if echo "Request: This is a test\nFoo: bar\n\n" | aptinternalsolver > solver.result 2>&1; then
+if printf "%b\n" "Request: This is a test\nFoo: bar\n\n" | aptinternalsolver > solver.result 2>&1; then
cat solver.result
msgfail
else
diff --git a/test/integration/test-handle-redirect-as-used-mirror-change b/test/integration/test-handle-redirect-as-used-mirror-change
index 2e8fbeff6..2655f713c 100755
--- a/test/integration/test-handle-redirect-as-used-mirror-change
+++ b/test/integration/test-handle-redirect-as-used-mirror-change
@@ -78,3 +78,9 @@ testsuccessequal "Ign:1 http://0.0.0.0:${APTHTTPPORT}/storage unstable InRelease
404 Not Found
Hit:2 http://0.0.0.0:${APTHTTPPORT} unstable Release
Reading package lists..." aptget update
+
+rm -rf rootdir/var/lib/apt/lists
+find aptarchive -name 'Release.gpg' -delete
+find aptarchive -name 'Release' -delete
+testwarning aptget update
+testsuccess grep 'does not have a Release file' rootdir/tmp/testwarning.output
diff --git a/test/integration/test-kernel-helper-autoremove b/test/integration/test-kernel-helper-autoremove
index 417dafd65..a70841d9d 100755
--- a/test/integration/test-kernel-helper-autoremove
+++ b/test/integration/test-kernel-helper-autoremove
@@ -6,7 +6,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")"
setupenvironment
configarchitecture 'amd64'
-CURRENTKERNEL="linux-image-$(uname -r)"
+CURRENTKERNEL="linux-image-$(uname -r | tr '[A-Z]' '[a-z]')"
insertinstalledpackage "$CURRENTKERNEL" 'amd64' '5-1'
# debug packages do not need our protection
insertinstalledpackage "${CURRENTKERNEL}-dbg" 'amd64' '5-1'
@@ -49,7 +49,7 @@ testprotected() {
testsuccess --nomsg grep '^\^linux-image-100\\\.0\\\.0-1-generic\$$' protected.list
msgtest 'Check kernel autoremoval protection list includes' 'running kernel'
- testsuccess --nomsg grep "^\\^linux-image-$(uname -r | sed -e 's#\.#\\\\.#g')\\\$\$" protected.list
+ testsuccess --nomsg grep "^\\^linux-image-$(uname -r | tr '[A-Z]' '[a-z]' | sed -e 's#\.#\\\\.#g')\\\$\$" protected.list
msgtest 'Check kernel autoremoval protection list does not include' 'metapackages'
testfailure --nomsg grep -e '^\^linux-image-amd64\$$' -e '^\^linux-image-686-pae\$$' -e ':i386' protected.list
diff --git a/test/integration/test-no-fds-leaked-to-maintainer-scripts b/test/integration/test-no-fds-leaked-to-maintainer-scripts
index baf85e311..7b5d6727e 100755
--- a/test/integration/test-no-fds-leaked-to-maintainer-scripts
+++ b/test/integration/test-no-fds-leaked-to-maintainer-scripts
@@ -8,6 +8,11 @@ setupenvironment
configarchitecture 'amd64' 'i386'
configdpkgnoopchroot
+if [ ! -e /proc/self/fd ]; then
+ msgskip "needs /proc/self/fd"
+ exit 0
+fi
+
setupsimplenativepackage "fdleaks" 'all' '1.0' 'unstable'
BUILDDIR="incoming/fdleaks-1.0"
for script in 'preinst' 'postinst' 'prerm' 'postrm'; do
@@ -24,7 +29,7 @@ buildpackage "$BUILDDIR" 'unstable' 'main' 'native'
rm -rf "$BUILDDIR"
PKGNAME='fdleaks:all'
-if ! dpkg-checkbuilddeps -d 'dpkg (>= 1.16.2)' /dev/null >/dev/null 2>&1; then
+if dpkg --compare-versions "$(dpkg_version)" 'lt' '1.16.2'; then
PKGNAME='fdleaks'
fi
diff --git a/test/integration/test-releasefile-verification b/test/integration/test-releasefile-verification
index 20ca613da..e043fa8b5 100755
--- a/test/integration/test-releasefile-verification
+++ b/test/integration/test-releasefile-verification
@@ -107,6 +107,19 @@ runtest() {
" aptcache show apt
installaptold
+ if [ "$(id -u)" != '0' ]; then
+ msgmsg 'Cold archive signed by' 'Joe Sixpack + unreadable key'
+ rm -rf rootdir/var/lib/apt/lists
+ echo 'foobar' > rootdir/etc/apt/trusted.gpg.d/unreadablekey.gpg
+ chmod 000 rootdir/etc/apt/trusted.gpg.d/unreadablekey.gpg
+ updatewithwarnings '^W: .* is not readable by user'
+ chmod 644 rootdir/etc/apt/trusted.gpg.d/unreadablekey.gpg
+ rm -f rootdir/etc/apt/trusted.gpg.d/unreadablekey.gpg
+ testsuccessequal "$(cat "${PKGFILE}")
+" aptcache show apt
+ installaptold
+ fi
+
msgmsg 'Good warm archive signed by' 'Joe Sixpack'
prepare "${PKGFILE}-new"
signreleasefiles 'Joe Sixpack'
diff --git a/test/interactive-helper/test_fileutl.cc b/test/interactive-helper/test_fileutl.cc
index e660c2981..7c4b95759 100644
--- a/test/interactive-helper/test_fileutl.cc
+++ b/test/interactive-helper/test_fileutl.cc
@@ -4,6 +4,7 @@
#include <sys/types.h>
#include <sys/stat.h>
+#include <sys/wait.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
diff --git a/vendor/debian/apt-vendor.ent b/vendor/debian/apt-vendor.ent
index 8d5416ced..41484c42e 100644
--- a/vendor/debian/apt-vendor.ent
+++ b/vendor/debian/apt-vendor.ent
@@ -6,10 +6,10 @@
<!ENTITY keyring-master-filename "">
<!ENTITY keyring-uri "">
-<!ENTITY sourceslist-list-format "deb http://httpredir.debian.org/debian &debian-stable-codename; main contrib non-free
+<!ENTITY sourceslist-list-format "deb http://deb.debian.org/debian &debian-stable-codename; main contrib non-free
deb http://security.debian.org &debian-stable-codename;/updates main contrib non-free">
<!ENTITY sourceslist-sources-format "Types: deb
-URIs: http://httpredir.debian.org/debian
+URIs: http://deb.debian.org/debian
Suites: &debian-stable-codename;
Components: main contrib non-free
diff --git a/vendor/debian/sources.list.in b/vendor/debian/sources.list.in
index 0fae88e5e..73a2ec9c4 100644
--- a/vendor/debian/sources.list.in
+++ b/vendor/debian/sources.list.in
@@ -3,5 +3,5 @@
&sourceslist-list-format;
# Uncomment if you want the apt-get source function to work
-#deb-src http://httpredir.debian.org/debian &debian-stable-codename; main contrib non-free
+#deb-src http://deb.debian.org/debian &debian-stable-codename; main contrib non-free
#deb-src http://security.debian.org &debian-stable-codename;/updates main contrib non-free
diff --git a/vendor/getinfo b/vendor/getinfo
index 37e0c1480..37eb74cef 100755
--- a/vendor/getinfo
+++ b/vendor/getinfo
@@ -6,7 +6,7 @@ BASEDIR="$(readlink -f "$(dirname $0)")"
getcurrent() {
# search for an exact match to use the correct sources.list example
cd $BASEDIR
- DISTROS="$(find -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 2)"
+ DISTROS="$(find . -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 2)"
for DISTRO in $DISTROS; do
if dpkg-vendor --is $DISTRO; then
echo $DISTRO