File: make-esslist.sh

package info (click to toggle)
build-essential 12.12
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 404 kB
  • sloc: sh: 557; makefile: 123; python: 78
file content (75 lines) | stat: -rwxr-xr-x 1,894 bytes parent folder | download
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
75
#!/bin/bash

set -e

if ! which lsb_release >/dev/null 2>&1; then
    echo >&2 install the lsb-release package to run this script
    exit 1
fi

if ! which grep-status >/dev/null 2>&1; then
    echo >&2 install the dctrl-tools package to run this script
    exit 1
fi

esslist=essential-packages-list
case "`lsb_release -is`" in
    Debian)
	dist='sid'
	#mirror_list=http://ftp.debian.org/debian
	mirror_list="$mirror_list http://ftp.de.debian.org/debian"
	mirror_list="$mirror_list http://ftp.debian-ports.org/debian"
	;;
    Ubuntu)
	dist=`lsb_release -cs`
	mirror_list="$mirror_list http://archive.ubuntu.com/ubuntu"
	mirror_list="$mirror_list http://ports.ubuntu.com/ubuntu-ports"
	;;
    *)
	dist='n/a';;
esac

# include only linux, hurd archs
# remove discontinuted archs (e.g. arm, sh)
arches=`dpkg-architecture -L \
	| egrep '^(hurd-)?[^-]+$' \
	| egrep -v '^(hurd-)?(arm|armeb|avr32|m32r|or1k|mips|powerpcel|powerpcspe|s390|sh|sh3|sh3eb|sh4eb)$'`

for arch in $arches
do
	if [ ! -f Packages-$arch ]
	then
		for mirror in $mirror_list; do
			if wget -O Packages-$arch.xz $mirror/dists/$dist/main/binary-$arch/Packages.xz
			then
				unxz -f Packages-$arch.xz
				break
			elif wget -O Packages-$arch.bz2 $mirror/dists/$dist/main/binary-$arch/Packages.bz2
			then
				bunzip2 -f Packages-$arch.bz2
				break
			elif wget -O Packages-$arch.gz $mirror/dists/$dist/main/binary-$arch/Packages.gz
			then
				gunzip -f Packages-$arch.gz
				break
			fi
		done
		rm -f Packages-$arch.{xz,bz2,gz}
	fi
	if [ ! -f Packages-$arch ]
	then
		continue
	fi

	printf > $esslist-$arch \
		'This list was generated on %s for %s\n' \
		"`LANG=C date`" "$arch"
	echo >> $esslist-$arch \
		'It contains a list of essential packages' \
		'(which are also build-essential).'
	echo >> $esslist-$arch

	grep-status -FEssential -sPackage -ni yes Packages-$arch \
		| sort >> $esslist-$arch
done
rm -f Packages-*