1
0
Fork 0

Adding debian version 3.0.2.

Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
Daniel Baumann 2025-06-20 21:10:44 +02:00
parent 6810ba718b
commit c7f0765a64
Signed by: daniel.baumann
GPG key ID: BCC918A2ABD66424
47 changed files with 16681 additions and 0 deletions

335
debian/NEWS vendored Normal file
View file

@ -0,0 +1,335 @@
apt (2.9.24) unstable; urgency=medium
/etc/apt/trusted.gpg is no longer trusted. Setting the Dir::Etc::trusted
option manually continues to work for some more time.
sources.list(5) entries without the Signed-By field are deprecated;
migrate any legacy entries to the deb822 .sources format. See the
apt-secure(8) manual page for best practices for signer configuration.
This deprecates the /etc/apt/trusted.gpg.d directory.
-- Julian Andres Klode <jak@debian.org> Tue, 21 Jan 2025 12:17:36 +0100
apt (2.9.19) unstable; urgency=medium
This release switches to OpenSSL for hashing and TLS, replacing the
GnuTLS and gcrypt libraries.
This release switches to Sequoia for OpenPGP verification on supported
Debian platforms. A Sequoia policy override enabling SHA1 self-signatures
until 2026 is included. To override the policy, the following environment
variables and files are considered:
* The APT_SEQUOIA_CRYPTO_POLICY environment variable, and failing that:
- /etc/crypto-policies/back-ends/apt-sequoia.config,
- /var/lib/crypto-config/profiles/current/apt-sequoia.config
* The SEQUOIA_CRYPTO_POLICY environment variable, and failing that:
- /etc/crypto-policies/back-ends/sequoia.config
- /var/lib/crypto-config/profiles/current/sequoia.config
-- Julian Andres Klode <jak@debian.org> Mon, 23 Dec 2024 12:16:22 +0100
apt (2.9.15) unstable; urgency=medium
This release stops using apt-key to verify the signatures.
Final call to stop using it before it's gone next week.
Please note that due to the switch to internal verification, APT now
has the same requirements on files in trusted.gpg.d as for other .d
directories: Only alphanumerical characters, '_', '-', ':' and '.'
are supported, other characters such as '@' cause the file to silently
be ignored.
-- Julian Andres Klode <jak@debian.org> Thu, 28 Nov 2024 19:31:24 +0100
apt (2.9.11) unstable; urgency=medium
The ftp, rsh, and ssh methods have been removed. They have been unsupported
and disabled since 1.8. Please, migrate to http(s) instead, or contribute
an sftp method.
If you need ad hoc access to a remote repository, you can usually run
`python3 -m http.server` on that machine and use SSH port forwarding to
run HTTP over SSH.
-- Julian Andres Klode <jak@debian.org> Thu, 07 Nov 2024 14:02:07 +0100
apt (2.5.2) unstable; urgency=medium
Installing or upgrading a binary package now upgrades other binaries from
the same source package if they have the same candidate version. You can
disable this by setting `APT::Get::Upgrade-By-Source-Package` to `false`.
-- Julian Andres Klode <juliank@ubuntu.com> Sun, 24 Jul 2022 15:45:15 +0200
apt (2.4.0) unstable; urgency=medium
GPG verification now first tries only the trusted.gpg.d keys, before
then falling back to the legacy trusted.gpg keyring and issuing a
warning to migrate keys if verification succeeded in the fallback.
-- Julian Andres Klode <jak@debian.org> Tue, 22 Feb 2022 20:01:00 +0100
apt (2.3.12) unstable; urgency=medium
The solver will no longer try to remove Essential or Protected packages,
any dependency problem that would need such a solution will have to be
resolved manually.
The "Yes, do as I say" prompt for removing essential packages has been
replaced by an error message. The appropriate command-line option needs
to be used instead.
Thank you to Linus Tech Tips and System76 for bringing this issue
to our attention.
-- Julian Andres Klode <jak@debian.org> Wed, 17 Nov 2021 18:26:40 +0100
apt (2.1.16) unstable; urgency=medium
Automatically remove unused kernels on apt {dist,full}-upgrade. To revert
to previous behavior, set APT::Get::AutomaticRemove::Kernels to false or
pass --no-auto-remove to the command. apt-get remains unchanged.
Packages files can now set the Phased-Update-Percentage field to restrict
update rollout to a specified percentage of machines. Previously, this has
only been available to users of Ubuntu's update-manager tool. See
apt_preferences(5) for details and how to configure multiple systems to get
the same updates. Phased updates are disabled in chroots for now to not
break buildd-style setups.
-- Julian Andres Klode <jak@debian.org> Fri, 08 Jan 2021 22:01:50 +0100
apt (1.9.11) experimental; urgency=medium
apt(8) now waits for the lock indefinitely if connected to a tty, or
for 120 seconds if not.
-- Julian Andres Klode <jak@debian.org> Wed, 26 Feb 2020 20:30:33 +0100
apt (1.9.6) experimental; urgency=medium
apt(8) no longer treats package names passed as regular expressions or fnmatch
expressions, requiring the use of patterns (apt-patterns(7)) to perform complex
searches. For ease of use, regular expressions starting with ^ or ending with
$ continue to work.
This fixes the problem where e.g. g++ could mean either "the package g++"
or, if there is no g++ package, "all packages containing g". This change
will propagate to apt-* after the release of Debian bullseye.
-- Julian Andres Klode <jak@debian.org> Wed, 15 Jan 2020 21:45:18 +0100
apt (1.9.5) unstable; urgency=medium
Credentials in apt_auth.conf(5) now only apply to https and tor+https
sources to avoid them being leaked over plaintext (Closes: #945911). To
opt-in to http, add http:// before the hostname. Note that this will transmit
credentials in plain text, which you do not want on devices that could be
operating in an untrusted network.
-- Julian Andres Klode <juliank@ubuntu.com> Mon, 02 Dec 2019 11:45:52 +0100
apt (1.8.0~alpha3) unstable; urgency=medium
The PATH for running dpkg is now configured by the option DPkg::Path,
and defaults to "/usr/sbin:/usr/bin:/sbin:/bin". Previous behavior of
not changing PATH may be restored by setting the option to an empty string.
Support for /etc/apt/auth.conf.d/ has been added, see apt_auth.conf(5).
-- Julian Andres Klode <jak@debian.org> Tue, 18 Dec 2018 15:02:11 +0100
apt (1.6~rc1) unstable; urgency=medium
Seccomp sandboxing has been turned off by default for now. If it works
for you, you are encouraged to re-enable it by setting APT::Sandbox::Seccomp
to true.
-- Julian Andres Klode <jak@debian.org> Fri, 06 Apr 2018 14:14:29 +0200
apt (1.6~beta1) unstable; urgency=medium
APT now verifies that the date of Release files is not in the future. By
default, it may be 10 seconds in the future to allow for some clock drift.
Two new configuration options can be used to tweak the behavior:
Acquire::Check-Date
Acquire::Max-DateFuture
These can be overridden in sources.list entries using the check-date
and date-future-max options. Note that disabling check-date also
disables checks on valid-until: It is considered to mean that your
machine's time is not reliable.
-- Julian Andres Klode <jak@debian.org> Mon, 26 Feb 2018 13:14:13 +0100
apt (1.6~alpha1) unstable; urgency=medium
All methods provided by apt except for cdrom, gpgv, and rsh now
use seccomp-BPF sandboxing to restrict the list of allowed system
calls, and trap all others with a SIGSYS signal. Three options
can be used to configure this further:
APT::Sandbox::Seccomp is a boolean to turn it on/off
APT::Sandbox::Seccomp::Trap is a list of names of more syscalls to trap
APT::Sandbox::Seccomp::Allow is a list of names of more syscalls to allow
Also, sandboxing is now enabled for the mirror method.
-- Julian Andres Klode <jak@debian.org> Mon, 23 Oct 2017 01:58:18 +0200
apt (1.5~beta1) unstable; urgency=medium
[ New HTTPS method ]
The default http method now supports HTTPS itself, including encrypted proxies
and connecting to HTTPS sites via HTTPS proxies; and the apt-transport-https
package only provides a "curl+https" method now as a fallback, but will be
removed shortly. If TLS support is unwanted, it can be disabled overall by
setting the option Acquire::AllowTLS to "false".
As for backwards compatibility, the options IssuerCert and SslForceVersion
are not supported anymore, and any specified certificate files must be in the
PEM format (curl might have allowed DER files as well).
[ Changes to unauthenticated repositories ]
The security exception for apt-get to only raise warnings if it encounters
unauthenticated repositories in the "update" command is gone now, so that it
will raise errors just like apt and all other apt-based front-ends do since
at least apt version 1.3.
It is possible (but STRONGLY ADVISED AGAINST) to revert to the previous
behaviour of apt-get by setting the option
Binary::apt-get::Acquire::AllowInsecureRepositories "true";
See apt-secure(8) manpage for configuration details.
[ Release Info Changes ]
If values like Origin, Label, and Codename change in a Release file,
update fails, or asks a user (if interactive). Various
--allow-releaseinfo-change are provided for non-interactive use.
-- Julian Andres Klode <jak@debian.org> Mon, 03 Jul 2017 15:09:23 +0200
apt (1.4.2) unstable; urgency=medium
If periodic updates and unattended upgrades are enabled, the start of
periodic updates are now distributed over 24 hour intervals (as in 1.2
to 1.4), whereas starting unattended-upgrade has been restricted to a
time between 6 and 7 am. This only affects systems using systemd, other
systems still use the classical hourly cron job.
-- Julian Andres Klode <jak@debian.org> Thu, 04 May 2017 22:54:02 +0200
apt (1.4~beta1) unstable; urgency=medium
Support for GPG signatures using the SHA1 or RIPE-MD/160 hash
algorithms has been disabled. Repositories using Release files
signed in such a way will stop working. This change has been made
due to security considerations, especially with regards to possible
further breakthroughs in SHA1 breaking during the lifetime
of this APT release series.
It is possible (but STRONGLY ADVISED AGAINST) to revert to the previous
behaviour by setting the options
APT::Hashes::SHA1::Weak "yes";
APT::Hashes::RIPE-MD/160::Weak "yes";
Note that setting these options only affects the verification of the overall
repository signature.
-- Julian Andres Klode <jak@debian.org> Fri, 25 Nov 2016 13:19:32 +0100
apt (1.2~exp1) experimental; urgency=medium
[ Automatic removal of debs after install ]
After packages are successfully installed by apt(8),
the corresponding .deb package files will be
removed from the /var/cache/apt/archives cache directory.
This can be changed by setting the apt configuration option
"Binary::apt::APT::Keep-Downloaded-Packages" to "true". E.g:
# echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' \
> /etc/apt/apt.conf.d/01keep-debs
Please note that the behavior of apt-get is unchanged. The
downloaded debs will be kept in the cache directory after they
are installed. To enable the behavior for other tools, you can set
"APT::Keep-Downloaded-Packages" to false.
[ Compressed indices ]
If you use Acquire::gzipIndexes, or any other compressed index targets,
those will now be compressed with the fastest supported algorithm,
currently lz4.
-- Michael Vogt <mvo@debian.org> Tue, 05 Jan 2016 19:22:16 +0100
apt (1.1~exp9) experimental; urgency=medium
A new algorithm for pinning has been implemented, it now assigns a
pin priority to a version instead of assigning a pin to a package.
This might break existing corner cases of pinning, if they use multiple
pins involving the same package name or patterns matching the same
package name, but should overall lead to pinning that actually works
as intended and documented.
-- Julian Andres Klode <jak@debian.org> Mon, 17 Aug 2015 14:45:17 +0200
apt (0.8.11) unstable; urgency=low
* apt-get install pkg/experimental will now not only switch the
candidate of package pkg to the version from the release experimental
but also of all dependencies of pkg if the current candidate can't
satisfy a versioned dependency.
-- David Kalnischkies <kalnischkies@gmail.com> Fri, 03 Dec 2010 14:09:12 +0100
apt (0.7.26~exp3) experimental; urgency=low
* apt-ftparchive now reads the standard configuration files in
/etc/apt/apt.conf and /etc/apt/apt.conf.d.
-- Julian Andres Klode <jak@debian.org> Fri, 26 Mar 2010 15:34:16 +0100
apt (0.7.24) unstable; urgency=low
* Already included in the last version but now with better documentation
is the possibility to add/prefer different compression types while
downloading archive information, which can decrease the time needed for
update on slow machines. See apt.conf (5) manpage for details.
* APT manages his manpage translations now with po4a, thanks to Nicolas
François and Kurasawa Nozomu, who also provide the ja translation.
Thanks to Christian Perrier we have already a fr translation and
a few more are hopefully added in the near future.
* This version also introduces some _experimental_ configuration options
to make more aggressive use of dpkg's triggers. If you want to help
testing these _experimental_ options see apt.conf (5) manpage.
-- David Kalnischkies <kalnischkies@gmail.com> Thu, 24 Sep 2009 15:13:16 +0200
apt (0.7.23) unstable; urgency=low
* Code that determines which proxy to use was changed. Now
'Acquire::{http,ftp}::Proxy[::<host>]' options have the highest priority,
and '{http,ftp}_proxy' environment variables are used only if options
mentioned above are not specified.
-- Eugene V. Lyubimkin <jackyf.devel@gmail.com> Thu, 19 Aug 2009 11:26:16 +0200
apt (0.6.44) unstable; urgency=low
* apt-ftparchive --db now uses Berkeley DB_BTREE instead of DB_HASH.
If you use a database created by an older version of apt, delete
it and allow it to be recreated the next time.
-- Michael Vogt <mvo@debian.org> Wed, 26 Apr 2006 12:57:53 +0200
apt (0.5.25) unstable; urgency=low
* apt-ftparchive --db now uses Berkeley DB version 4.2. If used with a
database created by an older version of apt, an attempt will be made
to upgrade the database, but this may not work in all cases. If your
database is not automatically upgraded, delete it and allow it to be
recreated the next time.
-- Matt Zimmerman <mdz@debian.org> Sat, 8 May 2004 12:38:07 -0700

12
debian/apt-daily-upgrade.service vendored Normal file
View file

@ -0,0 +1,12 @@
[Unit]
Description=Daily apt upgrade and clean activities
Documentation=man:apt(8)
ConditionACPower=true
After=apt-daily.service network.target network-online.target systemd-networkd.service NetworkManager.service connman.service
[Service]
Type=oneshot
ExecStartPre=-/usr/lib/apt/apt-helper wait-online
ExecStart=/usr/lib/apt/apt.systemd.daily install
KillMode=process
TimeoutStopSec=900

11
debian/apt-daily-upgrade.timer vendored Normal file
View file

@ -0,0 +1,11 @@
[Unit]
Description=Daily apt upgrade and clean activities
After=apt-daily.timer
[Timer]
OnCalendar=*-*-* 6:00
RandomizedDelaySec=60m
Persistent=true
[Install]
WantedBy=timers.target

11
debian/apt-daily.service vendored Normal file
View file

@ -0,0 +1,11 @@
[Unit]
Description=Daily apt download activities
Documentation=man:apt(8)
ConditionACPower=true
After=network.target network-online.target systemd-networkd.service NetworkManager.service connman.service
[Service]
Type=oneshot
ExecStartPre=-/usr/lib/apt/apt-helper wait-online
ExecStart=/usr/lib/apt/apt.systemd.daily update

10
debian/apt-daily.timer vendored Normal file
View file

@ -0,0 +1,10 @@
[Unit]
Description=Daily apt download activities
[Timer]
OnCalendar=*-*-* 6,18:00
RandomizedDelaySec=12h
Persistent=true
[Install]
WantedBy=timers.target

13
debian/apt-doc.doc-base.guide vendored Normal file
View file

@ -0,0 +1,13 @@
Document: apt-user-guide
Title: APT User's Guide
Author: Jason Gunthorpe
Abstract: The APT User's Guide provides an overview of how to use the
APT package manager, and provides a detailed look at the apt-get tool.
Section: Debian
Format: html
Index: /usr/share/doc/apt-doc/guide.html/index.html
Files: /usr/share/doc/apt-doc/guide.html/*.html
Format: text
Files: /usr/share/doc/apt-doc/guide.text.gz

13
debian/apt-doc.doc-base.offline vendored Normal file
View file

@ -0,0 +1,13 @@
Document: apt-offline-usage-guide
Title: APT Offline Usage Guide
Author: Jason Gunthorpe
Abstract: The APT Offline Usage Guide provides detailed instructions and
examples of how to use APT on an unconnected computer.
Section: Debian
Format: html
Index: /usr/share/doc/apt-doc/offline.html/index.html
Files: /usr/share/doc/apt-doc/offline.html/*.html
Format: text
Files: /usr/share/doc/apt-doc/offline.text.gz

6
debian/apt-doc.docs vendored Normal file
View file

@ -0,0 +1,6 @@
doc/acquire-additional-files.md
doc/external-dependency-solver-protocol.md
doc/external-installation-planner-protocol.md
doc/json-hooks-protocol.md
doc/progress-reporting.md
doc/srv-records-support.md

1
debian/apt-doc.install vendored Normal file
View file

@ -0,0 +1 @@
usr/share/doc/apt-doc

1
debian/apt-utils.examples vendored Normal file
View file

@ -0,0 +1 @@
usr/share/doc/apt-utils/examples/*

5
debian/apt-utils.install vendored Normal file
View file

@ -0,0 +1,5 @@
usr/bin/apt-ftparchive
usr/bin/apt-sortpkgs
usr/lib/apt/planners/
usr/lib/apt/solvers/
usr/share/locale/*/*/apt-utils.mo

2
debian/apt-utils.links vendored Normal file
View file

@ -0,0 +1,2 @@
../lib/apt/apt-extracttemplates usr/bin/apt-extracttemplates

6
debian/apt-utils.manpages vendored Normal file
View file

@ -0,0 +1,6 @@
usr/share/man/*/*/apt-extracttemplates.*
usr/share/man/*/*/apt-ftparchive.*
usr/share/man/*/*/apt-sortpkgs.*
usr/share/man/*/apt-extracttemplates.*
usr/share/man/*/apt-ftparchive.*
usr/share/man/*/apt-sortpkgs.*

55
debian/apt.apt-compat.cron.daily vendored Normal file
View file

@ -0,0 +1,55 @@
#!/bin/sh
set -e
# Systemd systems use a systemd timer unit which is preferable to
# run. We want to randomize the apt update and unattended-upgrade
# runs as much as possible to avoid hitting the mirrors all at the
# same time. The systemd time is better at this than the fixed
# cron.daily time
if [ -d /run/systemd/system ]; then
exit 0
fi
check_power()
{
# laptop check, on_ac_power returns:
# 0 (true) System is on main power
# 1 (false) System is not on main power
# 255 (false) Power status could not be determined
# Desktop systems always return 255 it seems
if command -v on_ac_power >/dev/null; then
if on_ac_power; then
:
elif [ $? -eq 1 ]; then
return 1
fi
fi
return 0
}
# sleep for a random interval of time (default 30min)
# (some code taken from cron-apt, thanks)
random_sleep()
{
RandomSleep=1800
eval $(apt-config shell RandomSleep APT::Periodic::RandomSleep)
if [ $RandomSleep -eq 0 ]; then
return
fi
if [ -z "$RANDOM" ] ; then
# A fix for shells that do not have this bash feature.
RANDOM=$(( $(dd if=/dev/urandom bs=2 count=1 2> /dev/null | cksum | cut -d' ' -f1) % 32767 ))
fi
TIME=$(($RANDOM % $RandomSleep))
sleep $TIME
}
# delay the job execution by a random amount of time
random_sleep
# ensure we don't do this on battery
check_power || exit 0
# run daily job
exec /usr/lib/apt/apt.systemd.daily

29
debian/apt.bug-script vendored Executable file
View file

@ -0,0 +1,29 @@
#!/bin/bash
set -e
cat <<EOF
I can automatically include various information about your apt configuration in
your bug report. This information may help to diagnose your problem.
EOF
yesno "May I include your apt configuration (/etc/apt/apt.conf et al)? [Y/n] " yep
if [ "$REPLY" = "yep" ]; then
printf "\n-- apt-config dump --\n\n" >&3
apt-config dump >&3 2>&1
fi
for config in /etc/apt/preferences /etc/apt/preferences.d/* /etc/apt/sources.list /etc/apt/sources.list.d/* ; do
if [ -f "$config" ]; then
yesno "May I include your $config configuration file? [Y/n] " yep
if [ "$REPLY" = "yep" ]; then
printf "\n-- %s --\n\n" "$config" >&3
cat "$config" >&3
else
printf "\n-- (%s present, but not submitted) --\n\n" "$config" >&3
fi
else
printf "\n-- (no %s present) --\n\n" "$config" >&3
fi
done

32
debian/apt.conf.autoremove vendored Normal file
View file

@ -0,0 +1,32 @@
APT
{
NeverAutoRemove
{
"^firmware-linux.*";
"^linux-firmware$";
"^linux-image-[a-z0-9]*$";
"^linux-image-[a-z0-9]*-[a-z0-9]*$";
};
VersionedKernelPackages
{
# kernels
"linux-.*";
"kfreebsd-.*";
"gnumach-.*";
# (out-of-tree) modules
".*-modules";
".*-kernel";
};
Never-MarkAuto-Sections
{
"metapackages";
"tasks";
};
Move-Autobit-Sections
{
"oldlibs";
};
};

3
debian/apt.dirs vendored Normal file
View file

@ -0,0 +1,3 @@
etc/kernel/postinst.d
usr/share/bug/apt
etc/apt/keyrings

1
debian/apt.docs vendored Normal file
View file

@ -0,0 +1 @@
README.md

1
debian/apt.examples vendored Normal file
View file

@ -0,0 +1 @@
usr/share/doc/apt/examples/*

21
debian/apt.install vendored Normal file
View file

@ -0,0 +1,21 @@
debian/*.service /usr/lib/systemd/system/
debian/*.timer /usr/lib/systemd/system/
debian/apt.systemd.daily usr/lib/apt
debian/default-sequoia.config usr/share/apt/
etc/apt/
usr/bin/apt
usr/bin/apt-cache
usr/bin/apt-cdrom
usr/bin/apt-config
usr/bin/apt-get
usr/bin/apt-mark
usr/lib/*/libapt-private.so*
usr/lib/apt/apt-helper
usr/lib/apt/apt-extracttemplates
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/locale/*/*/apt.mo
var/

10
debian/apt.lintian-overrides vendored Normal file
View file

@ -0,0 +1,10 @@
# the private library is for internal sharing only
apt: package-name-doesnt-match-sonames
apt: exit-in-shared-library [usr/lib*/libapt-private.so.0.0.0]
# we are implementing our own fallback and it is a minor usecase only
apt: missing-depends-on-sensible-utils sensible-pager [usr/lib*/libapt-private.so.0.0.0]
# these man pages document usage/config for things called via apt
apt: spare-manual-page [usr/share/man*/man1/apt-transport-http.1.gz]
apt: spare-manual-page [usr/share/man*/man1/apt-transport-https.1.gz]
apt: spare-manual-page [usr/share/man*/man1/apt-transport-mirror.1.gz]
apt: spare-manual-page [usr/share/man*/man8/apt-secure.8.gz]

16
debian/apt.logrotate vendored Normal file
View file

@ -0,0 +1,16 @@
/var/log/apt/term.log {
rotate 12
monthly
compress
missingok
notifempty
}
/var/log/apt/history.log {
rotate 12
monthly
compress
missingok
notifempty
}

4
debian/apt.maintscript vendored Normal file
View file

@ -0,0 +1,4 @@
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~
rm_conffile /etc/kernel/postinst.d/apt-auto-removal 2.4.5~

24
debian/apt.manpages vendored Normal file
View file

@ -0,0 +1,24 @@
usr/share/man/*/*/apt-cache.*
usr/share/man/*/*/apt-cdrom.*
usr/share/man/*/*/apt-config.*
usr/share/man/*/*/apt-get.*
usr/share/man/*/*/apt-mark.*
usr/share/man/*/*/apt-secure.*
usr/share/man/*/*/apt-patterns.*
usr/share/man/*/*/apt.*
usr/share/man/*/*/apt_preferences.*
usr/share/man/*/*/apt_auth.*
usr/share/man/*/*/apt-transport-*.*
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-mark.*
usr/share/man/*/apt-secure.*
usr/share/man/*/apt-patterns.*
usr/share/man/*/apt.*
usr/share/man/*/apt_preferences.*
usr/share/man/*/apt_auth.*
usr/share/man/*/apt-transport-*.*
usr/share/man/*/sources.list.*

15
debian/apt.postinst vendored Executable file
View file

@ -0,0 +1,15 @@
#! /bin/sh
set -e
if [ "$1" = 'configure' ] && [ -z "$DPKG_ROOT" ] && ! getent passwd _apt >/dev/null; then
# add unprivileged user for the apt methods
adduser --force-badname --system --home /nonexistent \
--no-create-home --quiet _apt || true
fi
if [ "$1" = "configure" ] && [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl "2.4.5~"; then
rm -f /etc/apt/apt.conf.d/01autoremove-kernels
fi
#DEBHELPER#

22
debian/apt.postrm vendored Executable file
View file

@ -0,0 +1,22 @@
#! /bin/sh
# apt postrm
# Copyright (C) 1998, Ben Gertzfield <che@debian.org>
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
set -e
#DEBHELPER#
case "$1" in
remove)
;;
purge)
rm -rf /var/cache/apt
rm -rf /var/lib/apt
esac

538
debian/apt.systemd.daily vendored Executable file
View file

@ -0,0 +1,538 @@
#!/bin/sh
#set -e
#
# This file understands the following apt configuration variables:
# Values here are the default.
# Create /etc/apt/apt.conf.d/10periodic file to set your preference.
#
# All of the n-days interval options also accept the suffixes
# s for seconds, m for minutes, h for hours, d for days or
# the "always" value to do the action for every job run,
# which can be used with systemd OnCalendar overrides to
# define custom schedules for the apt update/upgrade jobs.
#
# Dir "/";
# - RootDir for all configuration files
#
# Dir::Cache "var/cache/apt/";
# - Set apt package cache directory
#
# Dir::Cache::Archives "archives/";
# - Set package archive directory
#
# APT::Periodic::Enable "1";
# - Enable the update/upgrade script (0=disable)
#
# APT::Periodic::BackupArchiveInterval "0";
# - Backup after n-days if archive contents changed.(0=disable)
#
# APT::Periodic::BackupLevel "3";
# - Backup level.(0=disable), 1 is invalid.
#
# Dir::Cache::Backup "backup/";
# - Set periodic package backup directory
#
# APT::Archives::MaxAge "0"; (old, deprecated)
# APT::Periodic::MaxAge "0"; (new)
# - Set maximum allowed age of a cache package file. If a cache
# package file is older it is deleted (0=disable)
#
# APT::Archives::MinAge "2"; (old, deprecated)
# APT::Periodic::MinAge "2"; (new)
# - Set minimum age of a package file. If a file is younger it
# will not be deleted (0=disable). Useful to prevent races
# and to keep backups of the packages for emergency.
#
# APT::Archives::MaxSize "0"; (old, deprecated)
# APT::Periodic::MaxSize "0"; (new)
# - Set maximum size of the cache in MB (0=disable). If the cache
# is bigger, cached package files are deleted until the size
# requirement is met (the oldest packages will be deleted
# first).
#
# APT::Periodic::Update-Package-Lists "0";
# - Do "apt-get update" automatically every n-days (0=disable)
#
# APT::Periodic::Download-Upgradeable-Packages "0";
# - Do "apt-get upgrade --download-only" every n-days (0=disable)
#
# APT::Periodic::Download-Upgradeable-Packages-Debdelta "1";
# - Use debdelta-upgrade to download updates if available (0=disable)
#
# APT::Periodic::Unattended-Upgrade "0";
# - Run the "unattended-upgrade" security upgrade script
# every n-days (0=disabled)
# Requires the package "unattended-upgrades" and will write
# a log in /var/log/unattended-upgrades
#
# APT::Periodic::AutocleanInterval "0";
# - Do "apt-get autoclean" every n-days (0=disable)
#
# APT::Periodic::CleanInterval "0";
# - Do "apt-get clean" every n-days (0=disable)
#
# APT::Periodic::Verbose "0";
# - Send report mail to root
# 0: no report (or null string)
# 1: progress report (actually any string)
# 2: + command outputs (remove -qq, remove 2>/dev/null, add -d)
# 3: + trace on
#
check_stamp()
{
stamp="$1"
interval="$2"
if [ "$interval" = always ]; then
debug_echo "check_stamp: ignoring time stamp file, interval set to always"
# treat as enough time has passed
return 0
fi
if [ "$interval" = 0 ]; then
debug_echo "check_stamp: interval=0"
# treat as no time has passed
return 1
fi
if [ ! -f "$stamp" ]; then
debug_echo "check_stamp: missing time stamp file: $stamp."
# treat as enough time has passed
return 0
fi
# compare midnight today to midnight the day the stamp was updated
stamp_file="$stamp"
stamp=$(date --date="$(date -r "$stamp_file" --iso-8601)" +%s 2>/dev/null)
if [ "$?" != "0" ]; then
# Due to some timezones returning 'invalid date' for midnight on
# certain dates (e.g. America/Sao_Paulo), if date returns with error
# remove the stamp file and return 0. See coreutils bug:
# http://lists.gnu.org/archive/html/bug-coreutils/2007-09/msg00176.html
rm -f "$stamp_file"
return 0
fi
now=$(date --date="$(date --iso-8601)" +%s 2>/dev/null)
if [ "$?" != "0" ]; then
# As above, due to some timezones returning 'invalid date' for midnight
# on certain dates (e.g. America/Sao_Paulo), if date returns with error
# return 0.
return 0
fi
delta=$((now-stamp))
# Calculate the interval in seconds depending on the unit specified
if [ "${interval%s}" != "$interval" ] ; then
interval="${interval%s}"
elif [ "${interval%m}" != "$interval" ] ; then
interval="${interval%m}"
interval=$((interval*60))
elif [ "${interval%h}" != "$interval" ] ; then
interval="${interval%h}"
interval=$((interval*60*60))
else
interval="${interval%d}"
interval=$((interval*60*60*24))
fi
debug_echo "check_stamp: interval=$interval, now=$now, stamp=$stamp, delta=$delta (sec)"
# remove timestamps a day (or more) in the future and force re-check
if [ "$stamp" -gt $((now+86400)) ]; then
echo "WARNING: file $stamp_file has a timestamp in the future: $stamp"
rm -f "$stamp_file"
return 0
fi
if [ $delta -ge $interval ]; then
return 0
fi
return 1
}
update_stamp()
{
stamp="$1"
touch "$stamp"
}
# we check here if autoclean was enough sizewise
check_size_constraints()
{
MaxAge=0
eval $(apt-config shell MaxAge APT::Archives::MaxAge)
eval $(apt-config shell MaxAge APT::Periodic::MaxAge)
MinAge=2
eval $(apt-config shell MinAge APT::Archives::MinAge)
eval $(apt-config shell MinAge APT::Periodic::MinAge)
MaxSize=0
eval $(apt-config shell MaxSize APT::Archives::MaxSize)
eval $(apt-config shell MaxSize APT::Periodic::MaxSize)
Cache="/var/cache/apt/archives/"
eval $(apt-config shell Cache Dir::Cache::archives/d)
# sanity check
if [ -z "$Cache" ]; then
echo "empty Dir::Cache::archives, exiting"
exit
fi
# check age
if [ ! $MaxAge -eq 0 ] && [ ! $MinAge -eq 0 ]; then
debug_echo "aged: ctime <$MaxAge and mtime <$MaxAge and ctime>$MinAge and mtime>$MinAge"
find $Cache -name "*.deb" \( -mtime +$MaxAge -and -ctime +$MaxAge \) -and -not \( -mtime -$MinAge -or -ctime -$MinAge \) -print0 | xargs -r -0 rm -f
elif [ ! $MaxAge -eq 0 ]; then
debug_echo "aged: ctime <$MaxAge and mtime <$MaxAge only"
find $Cache -name "*.deb" -ctime +$MaxAge -and -mtime +$MaxAge -print0 | xargs -r -0 rm -f
else
debug_echo "skip aging since MaxAge is 0"
fi
# check size
if [ ! $MaxSize -eq 0 ]; then
# maxSize is in MB
MaxSize=$((MaxSize*1024))
#get current time
now=$(date --date="$(date --iso-8601)" +%s)
MinAge=$((MinAge*24*60*60))
# reverse-sort by mtime
for file in $(ls -rt $Cache/*.deb 2>/dev/null); do
du=$(du -s $Cache)
size=${du%%/*}
# check if the cache is small enough
if [ $size -lt $MaxSize ]; then
debug_echo "end remove by archive size: size=$size < $MaxSize"
break
fi
# check for MinAge of the file
if [ $MinAge -ne 0 ]; then
# check both ctime and mtime
mtime=$(stat -c %Y "$file")
ctime=$(stat -c %Z "$file")
if [ "$mtime" -gt "$ctime" ]; then
delta=$((now-mtime))
else
delta=$((now-ctime))
fi
if [ $delta -le $MinAge ]; then
debug_echo "skip remove by archive size: $file, delta=$delta < $MinAge"
break
else
# delete oldest file
debug_echo "remove by archive size: $file, delta=$delta >= $MinAge (sec), size=$size >= $MaxSize"
rm -f "$file"
fi
fi
done
fi
}
# deal with the Apt::Periodic::BackupArchiveInterval
do_cache_backup()
{
BackupArchiveInterval="$1"
if [ "$BackupArchiveInterval" = always ]; then
:
elif [ "$BackupArchiveInterval" = 0 ]; then
return
fi
# Set default values and normalize
CacheDir="/var/cache/apt"
eval $(apt-config shell CacheDir Dir::Cache/d)
CacheDir=${CacheDir%/}
if [ -z "$CacheDir" ]; then
debug_echo "practically empty Dir::Cache, exiting"
return 0
fi
Cache="${CacheDir}/archives/"
eval $(apt-config shell Cache Dir::Cache::Archives/d)
if [ -z "$Cache" ]; then
debug_echo "practically empty Dir::Cache::archives, exiting"
return 0
fi
BackupLevel=3
eval $(apt-config shell BackupLevel APT::Periodic::BackupLevel)
if [ $BackupLevel -le 1 ]; then
BackupLevel=2 ;
fi
Back="${CacheDir}/backup/"
eval $(apt-config shell Back Dir::Cache::Backup/d)
if [ -z "$Back" ]; then
echo "practically empty Dir::Cache::Backup, exiting" 1>&2
return
fi
CacheArchive="$(basename "${Cache}")"
test -n "${CacheArchive}" || CacheArchive="archives"
BackX="${Back}${CacheArchive}/"
for x in $(seq 0 1 $((BackupLevel-1))); do
eval "Back${x}=${Back}${x}/"
done
# backup after n-days if archive contents changed.
# (This uses hardlink to save disk space)
BACKUP_ARCHIVE_STAMP=/var/lib/apt/periodic/backup-archive-stamp
if check_stamp $BACKUP_ARCHIVE_STAMP "$BackupArchiveInterval"; then
if [ $({ (cd $Cache 2>/dev/null; find . -name "*.deb"); (cd $Back0 2>/dev/null;find . -name "*.deb") ;}| sort|uniq -u|wc -l) -ne 0 ]; then
mkdir -p $Back
rm -rf $Back$((BackupLevel-1))
for y in $(seq $((BackupLevel-1)) -1 1); do
eval BackY=${Back}$y
eval BackZ=${Back}$((y-1))
if [ -e $BackZ ]; then
mv -f $BackZ $BackY ;
fi
done
cp -la $Cache $Back ; mv -f $BackX $Back0
update_stamp $BACKUP_ARCHIVE_STAMP
debug_echo "backup with hardlinks. (success)"
else
debug_echo "skip backup since same content."
fi
else
debug_echo "skip backup since too new."
fi
}
debug_echo()
{
# Display message if $VERBOSE >= 1
if [ "$VERBOSE" -ge 1 ]; then
echo "$1" 1>&2
fi
}
# ------------------------ main ----------------------------
if [ "$1" = "lock_is_held" ]; then
shift
else
# Maintain a lock on fd 3, so we can't run the script twice at the same
# time.
eval $(apt-config shell StateDir Dir::State/d)
exec 3>${StateDir}/daily_lock
if ! flock -w 3600 3; then
echo "E: Could not acquire lock" >&2
exit 1
fi
# We hold the lock. Rerun this script as a child process, which
# can run without propagating an extra fd to all of its children.
"$0" lock_is_held "$@" 3>&-
exit $?
fi
if test -r /var/lib/apt/extended_states; then
# Backup the 7 last versions of APT's extended_states file
# shameless copy from dpkg cron
if cd /var/backups ; then
if ! cmp -s apt.extended_states.0 /var/lib/apt/extended_states; then
cp -p /var/lib/apt/extended_states apt.extended_states
savelog -c 7 apt.extended_states >/dev/null
fi
fi
fi
# check apt-config existence
if ! command -v apt-config >/dev/null; then
exit 0
fi
# check if the user really wants to do something
AutoAptEnable=1 # default is yes
eval $(apt-config shell AutoAptEnable APT::Periodic::Enable)
if [ $AutoAptEnable -eq 0 ]; then
exit 0
fi
# Set VERBOSE mode from apt-config (or inherit from environment)
VERBOSE=0
eval $(apt-config shell VERBOSE APT::Periodic::Verbose)
debug_echo "verbose level $VERBOSE"
if [ "$VERBOSE" -le 1 ]; then
# quiet for 0/1
XSTDOUT=">/dev/null"
XSTDERR="2>/dev/null"
XAPTOPT="-qq"
XUUPOPT=""
else
XSTDOUT=""
XSTDERR=""
XAPTOPT=""
XUUPOPT="-d"
fi
if [ "$VERBOSE" -ge 3 ]; then
# trace output
set -x
fi
# check if we can lock the cache and if the cache is clean
if command -v apt-get >/dev/null && ! eval apt-get check $XAPTOPT $XSTDERR ; then
debug_echo "error encountered in cron job with \"apt-get check\"."
exit 0
fi
# Global current time in seconds since 1970-01-01 00:00:00 UTC
now=$(date +%s)
# Support old Archive for compatibility.
# Document only Periodic for all controlling parameters of this script.
UpdateInterval=0
eval $(apt-config shell UpdateInterval APT::Periodic::Update-Package-Lists)
DownloadUpgradeableInterval=0
eval $(apt-config shell DownloadUpgradeableInterval APT::Periodic::Download-Upgradeable-Packages)
UnattendedUpgradeInterval=0
eval $(apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade)
AutocleanInterval=0
eval $(apt-config shell AutocleanInterval APT::Periodic::AutocleanInterval)
CleanInterval=0
eval $(apt-config shell CleanInterval APT::Periodic::CleanInterval)
BackupArchiveInterval=0
eval $(apt-config shell BackupArchiveInterval APT::Periodic::BackupArchiveInterval)
Debdelta=1
eval $(apt-config shell Debdelta APT::Periodic::Download-Upgradeable-Packages-Debdelta)
# check if we actually have to do anything that requires locking the cache
if [ $UpdateInterval = always ] ||
[ $DownloadUpgradeableInterval = always ] ||
[ $UnattendedUpgradeInterval = always ] ||
[ $BackupArchiveInterval = always ] ||
[ $AutocleanInterval = always ] ||
[ $CleanInterval = always ] ; then
:
elif [ $UpdateInterval = 0 ] &&
[ $DownloadUpgradeableInterval = 0 ] &&
[ $UnattendedUpgradeInterval = 0 ] &&
[ $BackupArchiveInterval = 0 ] &&
[ $AutocleanInterval = 0 ] &&
[ $CleanInterval = 0 ] ; then
# check cache size
check_size_constraints
exit 0
fi
if [ "$1" = "update" ] || [ -z "$1" ] ; then
# deal with BackupArchiveInterval
do_cache_backup $BackupArchiveInterval
# include default system language so that "apt-get update" will
# fetch the right translated package descriptions
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE LC_MESSAGES LC_ALL
fi
# update package lists
UPDATED=0
UPDATE_STAMP=/var/lib/apt/periodic/update-stamp
if check_stamp $UPDATE_STAMP $UpdateInterval; then
if eval apt-get $XAPTOPT -y update $XSTDERR; then
debug_echo "download updated metadata (success)."
update_stamp $UPDATE_STAMP
UPDATED=1
else
debug_echo "download updated metadata (error)"
fi
else
debug_echo "download updated metadata (not run)."
fi
# download all upgradeable packages (if it is requested)
DOWNLOAD_UPGRADEABLE_STAMP=/var/lib/apt/periodic/download-upgradeable-stamp
if [ $UPDATED -eq 1 ] && check_stamp $DOWNLOAD_UPGRADEABLE_STAMP $DownloadUpgradeableInterval; then
if [ $Debdelta -eq 1 ]; then
debdelta-upgrade >/dev/null 2>&1 || true
fi
if eval apt-get $XAPTOPT -y -d dist-upgrade $XSTDERR; then
update_stamp $DOWNLOAD_UPGRADEABLE_STAMP
debug_echo "download upgradable (success)"
else
debug_echo "download upgradable (error)"
fi
else
debug_echo "download upgradable (not run)"
fi
if command -v unattended-upgrade >/dev/null && env LC_ALL=C.UTF-8 unattended-upgrade --help | grep -q download-only && check_stamp $DOWNLOAD_UPGRADEABLE_STAMP $UnattendedUpgradeInterval; then
if unattended-upgrade --download-only $XUUPOPT; then
update_stamp $DOWNLOAD_UPGRADEABLE_STAMP
debug_echo "unattended-upgrade -d (success)"
else
debug_echo "unattended-upgrade -d (error)"
fi
else
debug_echo "unattended-upgrade -d (not run)"
fi
fi
if [ "$1" = "install" ] || [ -z "$1" ] ; then
# auto upgrade all upgradeable packages
UPGRADE_STAMP=/var/lib/apt/periodic/upgrade-stamp
if command -v unattended-upgrade >/dev/null && check_stamp $UPGRADE_STAMP $UnattendedUpgradeInterval; then
if unattended-upgrade $XUUPOPT; then
update_stamp $UPGRADE_STAMP
debug_echo "unattended-upgrade (success)"
else
debug_echo "unattended-upgrade (error)"
fi
else
debug_echo "unattended-upgrade (not run)"
fi
# clean package archive
CLEAN_STAMP=/var/lib/apt/periodic/clean-stamp
if check_stamp $CLEAN_STAMP $CleanInterval; then
if eval apt-get $XAPTOPT -y clean $XSTDERR; then
debug_echo "clean (success)."
update_stamp $CLEAN_STAMP
else
debug_echo "clean (error)"
fi
else
debug_echo "clean (not run)"
fi
# autoclean package archive
AUTOCLEAN_STAMP=/var/lib/apt/periodic/autoclean-stamp
if check_stamp $AUTOCLEAN_STAMP $AutocleanInterval; then
if eval apt-get $XAPTOPT -y autoclean $XSTDERR; then
debug_echo "autoclean (success)."
update_stamp $AUTOCLEAN_STAMP
else
debug_echo "autoclean (error)"
fi
else
debug_echo "autoclean (not run)"
fi
# check cache size
check_size_constraints
fi
#
# vim: set sts=4 ai :
#

13604
debian/changelog vendored Normal file

File diff suppressed because it is too large Load diff

161
debian/control vendored Normal file
View file

@ -0,0 +1,161 @@
Source: apt
Section: admin
Priority: required
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>
Rules-Requires-Root: no
Standards-Version: 4.1.1
Build-Depends: dpkg-dev (>= 1.22.5) <!pkg.apt.ci>,
cmake (>= 3.4),
debhelper-compat (= 12),
docbook-xml <!nodoc>,
docbook-xsl <!nodoc>,
dpkg-dev (>= 1.20.8),
gettext (>= 0.12),
googletest <!nocheck> | libgtest-dev <!nocheck>,
libbz2-dev,
libdb-dev,
libssl-dev,
liblz4-dev (>= 0.0~r126),
liblzma-dev,
libseccomp-dev (>= 2.4.2) [amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el s390x hppa powerpc powerpcspe ppc64 x32],
libsystemd-dev [linux-any],
libudev-dev [linux-any],
libxxhash-dev (>= 0.8),
libzstd-dev (>= 1.0),
ninja-build,
pkg-config,
po4a (>= 0.34-2) <!nodoc>,
sqv (>= 1.3.0) [amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x hurd-amd64 hurd-i386 loong64 powerpc ppc64 sparc64] <!pkg.apt.nosqv> | gpgv,
triehash,
xsltproc <!nodoc>,
zlib1g-dev
Build-Depends-Indep: doxygen <!nodoc !pkg.apt.nodoxygen>, graphviz <!nodoc !pkg.apt.nodoxygen>, w3m <!nodoc>
Vcs-Git: https://salsa.debian.org/apt-team/apt.git
Vcs-Browser: https://salsa.debian.org/apt-team/apt
Package: apt
Architecture: any
Depends: base-passwd (>= 3.6.1) | adduser,
${openpgp:Depends},
libapt-pkg7.0 (>= ${binary:Version}),
${apt:keyring},
${misc:Depends},
${shlibs:Depends}
Replaces: apt-transport-https (<< 1.5~alpha4~), apt-utils (<< 1.3~exp2~)
Breaks: apt-transport-https (<< 1.5~alpha4~),
apt-utils (<< 1.3~exp2~),
aptitude (<< 0.8.10)
Conflicts: apt-verify, libnettle8 (<< 3.9.1-2.2~)
Provides: apt-transport-https (= ${binary:Version})
Recommends: ca-certificates
Suggests: apt-doc,
aptitude | synaptic | wajig,
dpkg-dev (>= 1.17.2),
gnupg | gnupg2 | gnupg1,
powermgmt-base
Description: commandline package manager
This package provides commandline tools for searching and
managing as well as querying information about packages
as a low-level access to all features of the libapt-pkg library.
.
These include:
* apt-get for retrieval of packages and information about them
from authenticated sources and for installation, upgrade and
removal of packages together with their dependencies
* apt-cache for querying available information about installed
as well as installable packages
* apt-cdrom to use removable media as a source for packages
* apt-config as an interface to the configuration settings
* apt-extracttemplates is used by debconf to prompt for configuration
questions before installation.
Package: libapt-pkg7.0
Architecture: any
Multi-Arch: same
Priority: optional
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: appstream (<< 0.9.0-3~), apt (<< 1.6~), aptitude (<< 0.8.9), libapt-inst1.5 (<< 0.9.9~), dpkg (<< 1.20.8)
Recommends: apt (>= ${binary:Version})
Conflicts: libnettle8 (<< 3.9.1-2.2~)
Section: libs
Provides: ${t64:Provides}, libapt-pkg (= ${binary:Version})
Description: package management runtime library
This library provides the common functionality for searching and
managing packages as well as information about packages.
Higher-level package managers can depend upon this library.
.
This includes:
* retrieval of information about packages from multiple sources
* retrieval of packages and all dependent packages
needed to satisfy a request either through an internal
solver or by interfacing with an external one
* authenticating the sources and validating the retrieved data
* installation and removal of packages in the system
* providing different transports to retrieve data over cdrom and
http(s) as well as an interface to add more transports like
tor+http(s) (apt-transport-tor).
Package: apt-doc
Architecture: all
Priority: optional
Depends: ${misc:Depends}
Section: doc
Multi-Arch: foreign
Build-Profiles: <!nodoc>
Description: documentation for APT
This package contains the user guide and offline guide for various
APT tools which are provided in a html and a text-only version.
Package: libapt-pkg-dev
Architecture: any
Multi-Arch: same
Priority: optional
Pre-Depends: ${misc:Pre-Depends}
Depends: libapt-pkg (= ${binary:Version}),
${misc:Depends}
Section: libdevel
Description: development files for APT's libapt-pkg and libapt-inst
This package contains the header files and libraries for
developing with APT's libapt-pkg Debian package manipulation
library and the libapt-inst deb/tar/ar library.
Package: libapt-pkg-doc
Architecture: all
Priority: optional
Depends: ${misc:Depends}
Section: doc
Multi-Arch: foreign
Build-Profiles: <!nodoc>
Description: documentation for APT development
This package contains documentation for development of the APT
Debian package manipulation program and its libraries.
.
This includes the source code documentation generated by doxygen
in html format.
Package: apt-utils
Architecture: any
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.
.
* apt-ftparchive is used to create Packages and other index files
needed to publish an archive of Debian packages
* apt-sortpkgs is a Packages/Sources file normalizer.
Package: apt-transport-https
Architecture: all
Multi-Arch: foreign
Depends: apt (>= 1.5~alpha4), ${misc:Depends}
Priority: optional
Section: oldlibs
Description: transitional package for https support
This is a dummy transitional package - https support has been moved into
the apt package in 1.5. It can be safely removed.

156
debian/copyright vendored Normal file
View file

@ -0,0 +1,156 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: apt
Upstream-Contact: APT Development Team <deity@lists.debian.org>
Source: https://salsa.debian.org/apt-team/apt
Comment:
APT is an old software with lots of contributors over its lifetime. This
file is a best effort to document the statements of copyright and licenses
as stated in the file, but is not a complete representation of all copyright
holders - those have been lost to times.
.
Several bits of apt-pkg/contrib have had public domain dedications but
contributions from authors in countries not recognizing a public domain
concept. We believe that these contributions have been done in good faith,
and we treat them as if they had been made under the GPL-2+ as we believe
some contributors may have missed these facts and the overall license statement
for the project has always been GPL-2+, so we cannot be sure that contributors
meant to grant additional permissions.
.
Translation files are also considered to generally be GPL-2+,
but they might include strings used in code with other licenses.
.
The apt-pkg/contrib/fileutl.cc file states "RunScripts()" is "GPLv2".
We believe that this was not meant to exclude later versions of the GPL,
as that would have changed the overall project license.
Files: *
Copyright: 1997-1999 Jason Gunthorpe and others
2018, 2019 Canonical Ltd
2009, 2010, 2015, 2016 Julian Andres Klode <jak@debian.org>
1998, Ben Gertzfield <che@debian.org>
2002-2019 Free Software Foundation, Inc.
2003, 2004, 2005, 2009, 2010, 2012 Software in the Public Interest
2002-2003 Lars Bahner <bahner@debian.org>
2003-2004 Axel Bojer <axelb@skolelinux.no>
2004 Klaus Ade Johnstad <klaus@skolelinux.no>
2004 Bjorn Steensrud <bjornst@powertech.no>
2003, 2005-2010 Hans Fredrik Nordhaug <hans@nordhaug.priv.no>
2016, 2018 Petter Reinholdtsen <pere@hungry.com>
2009 Rosetta Contributors and Canonical Ltd 2009
2013 Debian L10n Turkish 2013
2013-2018 Mert Dirik <mertdirik@gmail.com>
2004 Krzysztof Fiertek <akfedux@megapolis.pl>
2000-2004, 2010, 2012 Robert Luberda <robert@debian.org>
2000-2017 Debian Italian l10n team <debian-l10n-italian@lists.debian.org>
2003-2017 Debian Japanese List <debian-japanese@lists.debian.org>
2000-2018 Debian French l10n team <debian-l10n-french@lists.debian.org>
1997 Manoj Srivastava
1997 Tom Lees
2014 Anthony Towns
License: GPL-2+
Files: methods/connect.c
Copyright: Copyright (c) 1996 - 2023, Daniel Stenberg, <daniel@haxx.se>, and many contributors
License: GPL-2+ and curl
Files: CMake/FindBerkeley.cmake
Copyright: 2006, Alexander Dymo, <adymo@kdevelop.org>
2016, Julian Andres Klode <jak@debian.org>
License: BSD-3-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
.
1. Redistributions of source code must retain the copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Files: CMake/Documentation.cmake
CMake/FindLFS.cmake
Copyright: 2016 Julian Andres Klode <jak@debian.org>
License: Expat
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
.
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
License: GPL-2
This package is free software; you can redistribute it and/or modify
it under the terms version 2 of the GNU General Public License
as published by the Free Software Foundation.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>
Comment:
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
License: GPL-2+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
Comment:
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
License: curl
Permission to use, copy, modify, and distribute this software for any purpose
with or without fee is hereby granted, provided that the above copyright
notice and this permission notice appear in all copies.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.
.
Except as contained in this notice, the name of a copyright holder shall not
be used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization of the copyright holder.

18
debian/default-sequoia.config vendored Normal file
View file

@ -0,0 +1,18 @@
# Default APT Sequoia configuration. To overwrite, consider copying this
# to /etc/crypto-policies/back-ends/apt-sequoia.config and modify the
# desired values.
[asymmetric_algorithms]
dsa2048 = 2024-02-01
dsa3072 = 2024-02-01
dsa4096 = 2024-02-01
brainpoolp256 = 2028-02-01
brainpoolp384 = 2028-02-01
brainpoolp512 = 2028-02-01
rsa2048 = 2030-02-01
[hash_algorithms]
sha1.second_preimage_resistance = 2026-02-01 # Extend the expiry for legacy repositories
sha224 = 2026-02-01
[packets]
signature.v3 = 2026-02-01 # Extend the expiry

10
debian/gbp.conf vendored Normal file
View file

@ -0,0 +1,10 @@
[DEFAULT]
; we need a preexport here
;preexport = ./prepare-release pre-export
prebuild = ./prepare-release pre-build
postbuild = ./prepare-release post-build
debian-branch = main
debian-tag = %(version)s
export-dir = ../build-area
sign-tags = True
multimaint-merge = True

3
debian/libapt-pkg-dev.install vendored Normal file
View file

@ -0,0 +1,3 @@
usr/include/apt-pkg/
usr/lib/*/libapt-pkg*.so
usr/lib/*/pkgconfig/apt-*.pc

14
debian/libapt-pkg-doc.doc-base.design vendored Normal file
View file

@ -0,0 +1,14 @@
Document: libapt-pkg-doc-design
Title: APT Design Document
Author: Jason Gunthorpe
Abstract: The APT Design Document is an overview of the specifications and
design goals of the APT project. It also attempts to give a broad
description of the implementation as well.
Section: Debian
Format: html
Index: /usr/share/doc/libapt-pkg-doc/design.html/index.html
Files: /usr/share/doc/libapt-pkg-doc/design.html/*.html
Format: text
Files: /usr/share/doc/libapt-pkg-doc/design.text.gz

View file

@ -0,0 +1,13 @@
Document: libapt-pkg-doc-dpkg-tech
Title: APT's interpretation of DPkg Technical Specification
Author: Jason Gunthorpe
Abstract: The DPkg Technical Manual gives an overview of dpkg's external
functions(as APT sees them) and describes how it views the world.
Section: Debian
Format: html
Index: /usr/share/doc/libapt-pkg-doc/dpkg-tech.html/index.html
Files: /usr/share/doc/libapt-pkg-doc/dpkg-tech.html/*.html
Format: text
Files: /usr/share/doc/libapt-pkg-doc/dpkg-tech.text.gz

14
debian/libapt-pkg-doc.doc-base.files vendored Normal file
View file

@ -0,0 +1,14 @@
Document: libapt-pkg-doc-files
Title: APT Files
Author: Jason Gunthorpe
Abstract: The APT Files document describes the complete implementation and
format of the installed APT directory structure. It also serves as guide
to how APT views the Debian archive.
Section: Debian
Format: html
Index: /usr/share/doc/libapt-pkg-doc/files.html/index.html
Files: /usr/share/doc/libapt-pkg-doc/files.html/*.html
Format: text
Files: /usr/share/doc/libapt-pkg-doc/files.text.gz

14
debian/libapt-pkg-doc.doc-base.method vendored Normal file
View file

@ -0,0 +1,14 @@
Document: libapt-pkg-doc-method
Title: APT Method Interface
Author: Jason Gunthorpe
Abstract: The APT Method Interface document describes the interface that
APT uses to the archive access methods.
Section: Debian
Format: html
Index: /usr/share/doc/libapt-pkg-doc/method.html/index.html
Files: /usr/share/doc/libapt-pkg-doc/method.html/*.html
Format: text
Files: /usr/share/doc/libapt-pkg-doc/method.text.gz

2
debian/libapt-pkg-doc.docs vendored Normal file
View file

@ -0,0 +1,2 @@
doc/libapt-pkg2_to_3.txt
doc/style.txt

1
debian/libapt-pkg-doc.install vendored Normal file
View file

@ -0,0 +1 @@
usr/share/doc/libapt-pkg-doc

View file

@ -0,0 +1 @@
libapt-pkg-doc: duplicate-files usr/share/doc/libapt-pkg-doc/html/*

2
debian/libapt-pkg7.0.install vendored Normal file
View file

@ -0,0 +1,2 @@
usr/lib/*/libapt-pkg*.so.*
usr/share/locale/*/*/libapt-pkg*.mo

1325
debian/libapt-pkg7.0.symbols vendored Normal file

File diff suppressed because it is too large Load diff

61
debian/rules vendored Executable file
View file

@ -0,0 +1,61 @@
#!/usr/bin/make -f
# Copyright (C) 2009, 2016 Julian Andres Klode <jak@debian.org>
#
# Free Software, licensed under the GPL-2 or (at your option) any later version.
export DEB_LDFLAGS_MAINT_APPEND := -Wl,--as-needed
export DEB_BUILD_MAINT_OPTIONS := hardening=+all
# do not fail as we are just experimenting with symbol files for now
export DPKG_GENSYMBOLS_CHECK_LEVEL=0
export CTEST_OUTPUT_ON_FAILURE=1
ifneq ($(filter nocheck,$(DEB_BUILD_OPTIONS)),)
configure_test_flags = -DWITH_TESTS=OFF
else
configure_test_flags =
endif
%:
dh $@ --buildsystem=cmake+ninja
override_dh_clean:
cp COPYING debian/copyright
dh_clean
override_dh_install-arch:
dh_install -papt-utils -X/dump
dh_install -papt -Xmethods/curl -Xmethods/curl+https -Xmethods/curl+http
dh_install --remaining
install -m 644 debian/apt.conf.autoremove debian/apt/etc/apt/apt.conf.d/01autoremove
override_dh_gencontrol:
dh_gencontrol -- -Vapt:keyring="$(shell ./vendor/getinfo keyring-package)" -Vopenpgp:Depends="$(shell test -e /usr/bin/sqv && echo "sqv (>= 1.3.0)" || echo gpgv)"
override_dh_installcron:
dh_installcron --name=apt-compat
override_dh_installsystemd:
# Do not restart "apt-daily.service" because this script runs
# unattended-upgrades. So if apt itself is upgraded as part of
# an unattended-upgrades run it would kill itself
dh_installsystemd -papt apt-daily.timer apt-daily-upgrade.timer
dh_installsystemd -papt --no-restart-on-upgrade --no-restart-after-upgrade --no-start apt-daily.service apt-daily-upgrade.service
dh_installsystemd --remaining-packages
ifneq ($(filter pkg.apt.nodoxygen,$(DEB_BUILD_PROFILES)),)
override_dh_auto_configure-arch: configure_doc_flags=-DWITH_DOC=OFF -DWITH_DOC_MANPAGES=ON -DWITH_DOC_EXAMPLES=ON
override_dh_auto_configure-indep: configure_doc_flags=-DWITH_DOC=OFF -DWITH_DOC_GUIDES=ON -DWITH_DOC_EXAMPLES=ON
else
ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),)
override_dh_auto_configure-arch: configure_doc_flags=-DWITH_DOC=OFF
override_dh_auto_configure-indep: configure_doc_flags=-DWITH_DOC=OFF
else
override_dh_auto_configure-arch: configure_doc_flags=-DWITH_DOC=OFF -DWITH_DOC_MANPAGES=ON -DWITH_DOC_EXAMPLES=ON
override_dh_auto_configure-indep: configure_doc_flags=-DWITH_DOC=ON
endif
endif
override_dh_auto_configure-arch override_dh_auto_configure-indep:
dh_auto_configure -- -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON $(configure_doc_flags) $(configure_test_flags)

1
debian/source/format vendored Normal file
View file

@ -0,0 +1 @@
3.0 (native)

15
debian/tests/control vendored Normal file
View file

@ -0,0 +1,15 @@
Tests: pkg-config-test
Restrictions: superficial
Depends: libapt-pkg-dev, pkg-config, g++
Tests: run-tests
Restrictions: allow-stderr
Depends: @, @builddeps@, dpkg (>= 1.20.8), expect, fakeroot, wget, stunnel4, lsof, db-util,
gpgv,
gpgv-sq,
sq (>= 0.40),
sqv,
moreutils,
jq,
libfile-fcntllock-perl, python3-apt, aptitude,
valgrind-if-available [!armhf !ppc64el], gdb

32
debian/tests/pkg-config-test vendored Normal file
View file

@ -0,0 +1,32 @@
#!/bin/sh
set -e
if [ -z "$AUTOPKGTEST_TMP" ]; then
WORKDIR=''
cleanup() {
if [ -n "$WORKDIR" ]; then cd /; rm -rf -- "$WORKDIR"; fi
WORKDIR=''
}
trap 'cleanup' 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
WORKDIR="$(mktemp -d)"
cd "$WORKDIR"
else
cd "$AUTOPKGTEST_TMP"
fi
cat >pkgconfigtest.cc <<EOF
#include <apt-pkg/init.h>
#include <cstdio>
int main()
{
printf("APT Version: %s\n", pkgVersion);
return 0;
}
EOF
g++ -Wall -Wextra -o pkgconfigtest pkgconfigtest.cc `pkg-config --cflags --libs apt-pkg`
echo 'build: OK'
test -x pkgconfigtest
./pkgconfigtest
echo 'run: OK'

37
debian/tests/run-tests vendored Normal file
View file

@ -0,0 +1,37 @@
#!/bin/sh
set -e
SOURCE_DIR="$(pwd)"
if [ -z "$AUTOPKGTEST_TMP" ]; then
BUILD_DIR=''
cleanup() {
if [ -n "$BUILD_DIR" ]; then cd /; rm -rf -- "$BUILD_DIR"; fi
BUILD_DIR=''
}
trap 'cleanup' 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
BUILD_DIR="$(mktemp -d)"
else
BUILD_DIR="$AUTOPKGTEST_TMP"
fi
if [ ! -e "${BUILD_DIR}/CMakeCache.txt" ]; then
cmake -S "$SOURCE_DIR" -B "$BUILD_DIR" -DUSE_SYSTEM_APTPKG=ON -DWITH_DOC=OFF -DUSE_NLS=OFF
fi
make -C "${BUILD_DIR}/test/interactive-helper"
# run tests against the installed apt, use "env -i" to ensure
# the host env does not pollute our environment
env -i \
APT_INTEGRATION_TESTS_SOURCE_DIR="${SOURCE_DIR}" \
APT_INTEGRATION_TESTS_BUILD_DIR="${BUILD_DIR}" \
APT_INTEGRATION_TESTS_METHODS_DIR=/usr/lib/apt/methods \
APT_INTEGRATION_TESTS_LIBEXEC_DIR=/usr/lib/apt/ \
APT_INTEGRATION_TESTS_INTERNAL_SOLVER=/usr/lib/apt/solvers/apt \
APT_INTEGRATION_TESTS_DUMP_SOLVER=/usr/lib/apt/solvers/dump \
APT_INTEGRATION_TESTS_INTERNAL_PLANNER=/usr/lib/apt/planners/apt \
APT_INTEGRATION_TESTS_FTPARCHIVE_BIN_DIR=/usr/bin \
APT_INTEGRATION_TESTS_CMDLINE_BIN_DIR=/usr/bin \
APT_INTEGRATION_TESTS_LIBRARY_PATH=/dev/null/does/not/exist \
APT_INTEGRATION_TESTS_ARTIFACTS_DIR="${AUTOPKGTEST_ARTIFACTS}" \
"${SOURCE_DIR}/test/integration/run-tests" -q