summaryrefslogtreecommitdiffstats
path: root/test/integration/test-apt-get-update-sourceslist-warning
blob: 02e1ccb2964fea45d1a3228369223fac9cb38f93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh
set -e

TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"

setupenvironment
configarchitecture 'amd64'
setupaptarchive --no-update

testsuccess apt update
testsuccess apt update --no-download

cat > rootdir/var/lib/apt/lists/example.org_debian_dists_bookworm_Release <<EOF
Origin: Debian
Label: Debian
Suite: unreleased
Codename: bookworm
Date: Sun, 29 Jan 2023 20:14:10 +0000
Architectures: amd64
Components: main contrib non-free non-free-firmware
Description: Debian x.y Bookworm - Not Released
EOF
touch rootdir/var/lib/apt/lists/example.org_debian_dists_bookworm_main_binary-amd64_Packages
touch rootdir/var/lib/apt/lists/example.org_debian_dists_bookworm_contrib_binary-amd64_Packages
touch rootdir/var/lib/apt/lists/example.org_debian_dists_bookworm_non-free_binary-amd64_Packages
touch rootdir/var/lib/apt/lists/example.org_debian_dists_bookworm_non-free-firmware_binary-amd64_Packages
find rootdir/var/lib/apt/lists/ -type f -exec chmod 644 {} \;

NOTESURL='https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.html#non-free-split'
BOILERPLATE='Reading package lists...
Building dependency tree...
All packages are up to date.'

msgmsg 'Do not suggest new non-free-firmware component if no non-free'
echo 'deb http://example.org/debian bookworm main' > rootdir/etc/apt/sources.list.d/example.list
testsuccessequal "$BOILERPLATE" apt update --no-download
echo 'deb-src http://example.org/debian bookworm main non-free' > rootdir/etc/apt/sources.list.d/example.list
testsuccessequal "$BOILERPLATE" apt update --no-download

msgmsg 'Is non-free-firmware missing?'
echo 'deb http://example.org/debian bookworm main non-free' > rootdir/etc/apt/sources.list.d/example.list
cat >> rootdir/var/lib/apt/lists/example.org_debian_dists_bookworm_non-free_binary-amd64_Packages <<EOF
Package: firmware-linux-nonfree
Architecture: all
Version: 1
EOF
testsuccessequal "$BOILERPLATE" apt update --no-download
echo -n > rootdir/var/lib/apt/lists/example.org_debian_dists_bookworm_non-free_binary-amd64_Packages
testsuccessequal "$BOILERPLATE
N: Repository 'Debian bookworm' changed its 'non-free component' value from 'non-free' to 'non-free non-free-firmware'
N: More information about this can be found online in the Release notes at: $NOTESURL" apt update --no-download

msgmsg 'Component already present'
echo 'deb http://example.org/debian bookworm non-free non-free-firmware' > rootdir/etc/apt/sources.list.d/example.list
testsuccessequal "$BOILERPLATE" apt update --no-download
echo 'deb http://example.org/debian bookworm non-free
deb http://example.org/debian bookworm non-free-firmware' > rootdir/etc/apt/sources.list.d/example.list
testsuccessequal "$BOILERPLATE" apt update --no-download

msgmsg 'Detect login info embedded in sources.list'
echo 'deb http://apt:debian@example.org/debian bookworm main' > rootdir/etc/apt/sources.list.d/example.list
testsuccessequal "$BOILERPLATE
N: Usage of apt_auth.conf(5) should be preferred over embedding login information directly in the sources.list(5) entry for 'http://example.org/debian'" apt update --no-download
echo 'deb tor+https://apt:debian@example.org/debian bookworm main' > rootdir/etc/apt/sources.list.d/example.list
testsuccessequal "$BOILERPLATE
N: Usage of apt_auth.conf(5) should be preferred over embedding login information directly in the sources.list(5) entry for 'tor+https://example.org/debian'" apt update --no-download

msgmsg 'Firmware packages without upgrades'
echo 'deb http://example.org/debian bookworm main' > rootdir/etc/apt/sources.list.d/example.list
insertinstalledpackage 'firmware-linux-nonfree' 'all' '1'
testsuccessequal "$BOILERPLATE
N: Repository 'Debian bookworm' changed its 'firmware component' value from 'non-free' to 'non-free-firmware'
N: More information about this can be found online in the Release notes at: $NOTESURL" apt update --no-download