initial commit
This commit is contained in:
commit
e4518918de
2 changed files with 276 additions and 0 deletions
136
control_triggers_packages
Normal file
136
control_triggers_packages
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
appstream-index
|
||||||
|
apt-cudf
|
||||||
|
auctex
|
||||||
|
bamfdaemon
|
||||||
|
bilibop-lockfs
|
||||||
|
bilibop-rules
|
||||||
|
bumblebee
|
||||||
|
ca-certificates
|
||||||
|
ca-certificates-java
|
||||||
|
ccache
|
||||||
|
cracklib-runtime
|
||||||
|
cups
|
||||||
|
dbus
|
||||||
|
desktop-file-utils
|
||||||
|
dictionaries-common
|
||||||
|
distcc
|
||||||
|
doc-base
|
||||||
|
dovecot-core
|
||||||
|
dovecot-imapd
|
||||||
|
dovecot-ldap
|
||||||
|
dovecot-lmtpd
|
||||||
|
dovecot-lucene
|
||||||
|
dovecot-managesieved
|
||||||
|
dovecot-mysql
|
||||||
|
dovecot-pgsql
|
||||||
|
dovecot-pop3d
|
||||||
|
dovecot-sieve
|
||||||
|
dovecot-solr
|
||||||
|
dovecot-sqlite
|
||||||
|
dracut
|
||||||
|
epoptes
|
||||||
|
fontconfig
|
||||||
|
fusiondirectory
|
||||||
|
fusionforge-plugin-mediawiki
|
||||||
|
gap-core
|
||||||
|
gconf2
|
||||||
|
ghc
|
||||||
|
ghc-doc
|
||||||
|
gnome-icon-theme
|
||||||
|
gnome-menus
|
||||||
|
gosa
|
||||||
|
graphite-carbon
|
||||||
|
guile-1.8-libs
|
||||||
|
guile-2.0-libs
|
||||||
|
gxine
|
||||||
|
hicolor-icon-theme
|
||||||
|
hoogle
|
||||||
|
ibid
|
||||||
|
icecc
|
||||||
|
initramfs-tools
|
||||||
|
install-info
|
||||||
|
libapache2-mod-php5
|
||||||
|
libapache2-mod-php5filter
|
||||||
|
libc-bin
|
||||||
|
libglib2.0-0
|
||||||
|
libgtk2.0-0
|
||||||
|
libgtk-3-0
|
||||||
|
libjs-protoaculous
|
||||||
|
libomxil-bellagio0
|
||||||
|
libpam-unix2
|
||||||
|
libreoffice-common
|
||||||
|
libreoffice-presentation-minimizer
|
||||||
|
ltsp-client-core
|
||||||
|
man-db
|
||||||
|
mate-icon-theme
|
||||||
|
maxima
|
||||||
|
mcollective
|
||||||
|
menu
|
||||||
|
mime-support
|
||||||
|
munin-node
|
||||||
|
ntfs-3g
|
||||||
|
octave
|
||||||
|
openstack-dashboard
|
||||||
|
pdl
|
||||||
|
pdns-server
|
||||||
|
php5-common
|
||||||
|
php5-curl
|
||||||
|
php5-enchant
|
||||||
|
php5-fpm
|
||||||
|
php5-gd
|
||||||
|
php5-gmp
|
||||||
|
php5-imap
|
||||||
|
php5-interbase
|
||||||
|
php5-intl
|
||||||
|
php5-ldap
|
||||||
|
php5-mcrypt
|
||||||
|
php5-mysql
|
||||||
|
php5-mysqlnd
|
||||||
|
php5-odbc
|
||||||
|
php5-pgsql
|
||||||
|
php5-pspell
|
||||||
|
php5-readline
|
||||||
|
php5-recode
|
||||||
|
php5-snmp
|
||||||
|
php5-sqlite
|
||||||
|
php5-sybase
|
||||||
|
php5-tidy
|
||||||
|
php5-xmlrpc
|
||||||
|
php5-xsl
|
||||||
|
php-kolab
|
||||||
|
php-kolabformat
|
||||||
|
postgresql-common
|
||||||
|
pypy
|
||||||
|
python3-django-countries
|
||||||
|
python-axiom
|
||||||
|
python-django-countries
|
||||||
|
python-nevow
|
||||||
|
python-support
|
||||||
|
python-twisted-core
|
||||||
|
python-wokkel
|
||||||
|
readahead-fedora
|
||||||
|
reconf-inetd
|
||||||
|
redmine
|
||||||
|
resolvconf
|
||||||
|
rkhunter
|
||||||
|
ruby
|
||||||
|
rygel
|
||||||
|
sa-compile
|
||||||
|
sgml-base
|
||||||
|
shared-mime-info
|
||||||
|
smlnj-runtime
|
||||||
|
spamassassin
|
||||||
|
sphinx-common
|
||||||
|
swi-prolog-nox
|
||||||
|
systemd
|
||||||
|
tex-common
|
||||||
|
udev
|
||||||
|
ufw
|
||||||
|
unhide.rb
|
||||||
|
vlc-nox
|
||||||
|
wims
|
||||||
|
wims-modules
|
||||||
|
wordpress
|
||||||
|
xen-tools
|
||||||
|
xfonts-traditional
|
||||||
|
yorick-doc
|
140
setup.sh
Executable file
140
setup.sh
Executable file
|
@ -0,0 +1,140 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
ARCH="amd64"
|
||||||
|
DIST="sid"
|
||||||
|
MIRROR="http://snapshot.debian.org/archive/debian/20141211T041251Z/"
|
||||||
|
DIRECTORY="`pwd`/debian-$DIST-$ARCH"
|
||||||
|
|
||||||
|
#FIXME: if the host has more than one arch enabled then those Packages files will be downloaded as well
|
||||||
|
|
||||||
|
APT_OPTS="-y"
|
||||||
|
APT_OPTS=$APT_OPTS" -o Apt::Architecture=$ARCH"
|
||||||
|
APT_OPTS=$APT_OPTS" -o Dir::Etc::TrustedParts=$DIRECTORY/etc/apt/trusted.gpg.d"
|
||||||
|
APT_OPTS=$APT_OPTS" -o Dir::Etc::Trusted=$DIRECTORY/etc/apt/trusted.gpg"
|
||||||
|
APT_OPTS=$APT_OPTS" -o Dir=$DIRECTORY/"
|
||||||
|
APT_OPTS=$APT_OPTS" -o Dir::Etc=$DIRECTORY/etc/apt/"
|
||||||
|
APT_OPTS=$APT_OPTS" -o Dir::Etc::SourceList=$DIRECTORY/etc/apt/sources.list"
|
||||||
|
APT_OPTS=$APT_OPTS" -o Dir::State=$DIRECTORY/var/lib/apt/"
|
||||||
|
APT_OPTS=$APT_OPTS" -o Dir::State::Status=$DIRECTORY/var/lib/dpkg/status"
|
||||||
|
APT_OPTS=$APT_OPTS" -o Dir::Cache=$DIRECTORY/var/cache/apt/"
|
||||||
|
APT_OPTS=$APT_OPTS" -o Acquire::Check-Valid-Until=false" # because we use snapshot
|
||||||
|
|
||||||
|
mkdir -p $DIRECTORY
|
||||||
|
mkdir -p $DIRECTORY/etc/apt/
|
||||||
|
mkdir -p $DIRECTORY/etc/apt/trusted.gpg.d/
|
||||||
|
mkdir -p $DIRECTORY/etc/apt/sources.list.d/
|
||||||
|
mkdir -p $DIRECTORY/etc/apt/preferences.d/
|
||||||
|
mkdir -p $DIRECTORY/var/lib/apt/
|
||||||
|
mkdir -p $DIRECTORY/var/lib/apt/lists/partial/
|
||||||
|
mkdir -p $DIRECTORY/var/lib/dpkg/
|
||||||
|
mkdir -p $DIRECTORY/var/cache/apt/
|
||||||
|
mkdir -p $DIRECTORY/var/cache/apt/apt-file/
|
||||||
|
|
||||||
|
cp /etc/apt/trusted.gpg.d/* $DIRECTORY/etc/apt/trusted.gpg.d/
|
||||||
|
|
||||||
|
touch $DIRECTORY/var/lib/dpkg/status
|
||||||
|
|
||||||
|
echo deb $MIRROR $DIST main > $DIRECTORY/etc/apt/sources.list
|
||||||
|
|
||||||
|
apt-get $APT_OPTS update
|
||||||
|
|
||||||
|
APT_FILE_OPTS="--architecture $ARCH"
|
||||||
|
APT_FILE_OPTS=$APT_FILE_OPTS" --cache $DIRECTORY/var/cache/apt/apt-file"
|
||||||
|
APT_FILE_OPTS=$APT_FILE_OPTS" --sources-list $DIRECTORY/etc/apt/sources.list"
|
||||||
|
|
||||||
|
apt-file $APT_FILE_OPTS update
|
||||||
|
|
||||||
|
printf "" > interested-file
|
||||||
|
printf "" > interested-explicit
|
||||||
|
printf "" > activated-file
|
||||||
|
printf "" > activated-explicit
|
||||||
|
|
||||||
|
cat control_triggers_packages | while read pkg; do
|
||||||
|
echo "working on $pkg..." >&2
|
||||||
|
apt-get $APT_OPTS download $pkg
|
||||||
|
dpkg-deb --control ${pkg}_*.deb
|
||||||
|
if [ ! -f DEBIAN/triggers ]; then
|
||||||
|
rm -r DEBIAN
|
||||||
|
rm ${pkg}_*.deb
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
# find all triggers that are either interest or interest-await
|
||||||
|
# and which are file triggers (start with a slash)
|
||||||
|
egrep "^\s*interest(-await)?\s+/" DEBIAN/triggers | while read line; do
|
||||||
|
echo "$pkg $line"
|
||||||
|
done >> interested-file
|
||||||
|
egrep "^\s*interest(-await)?\s+[^/]" DEBIAN/triggers | while read line; do
|
||||||
|
echo "$pkg $line"
|
||||||
|
done >> interested-explicit
|
||||||
|
egrep "^\s*activate(-await)?\s+/" DEBIAN/triggers | while read line; do
|
||||||
|
echo "$pkg $line"
|
||||||
|
done >> activated-file
|
||||||
|
egrep "^\s*activate(-await)?\s+[^/]" DEBIAN/triggers | while read line; do
|
||||||
|
echo "$pkg $line"
|
||||||
|
done >> activated-explicit
|
||||||
|
rm -r DEBIAN
|
||||||
|
rm ${pkg}_*.deb
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "" > result-file
|
||||||
|
|
||||||
|
# go through those that are interested in a path and check them against the
|
||||||
|
# files provided by its dependency closure
|
||||||
|
cat interested-file | while read pkg ttype ipath; do
|
||||||
|
echo "working on $pkg..." >&2
|
||||||
|
echo "getting dependency closure..." >&2
|
||||||
|
# go through all packages in the dependency closure and check if any
|
||||||
|
# of the files they ship match one of the interested paths
|
||||||
|
dose-ceve -c $pkg -T cudf -t deb \
|
||||||
|
$DIRECTORY/var/lib/apt/lists/*_dists_${DIST}_main_binary-${ARCH}_Packages \
|
||||||
|
| awk '/^package:/ { print $2 }' \
|
||||||
|
| apt-file $APT_FILE_OPTS show -F --from-file - \
|
||||||
|
| sed -ne "s ^\([^:]\+\):\s\+\(${ipath}/.*\) \1\t\2 p" \
|
||||||
|
| while read dep cpath; do
|
||||||
|
[ "$pkg" != "$dep" ] || continue
|
||||||
|
echo "$pkg $ipath $dep $cpath"
|
||||||
|
done >> result-file
|
||||||
|
done
|
||||||
|
|
||||||
|
# go through those that are interested in a path and check them against the
|
||||||
|
# packages in the dependency closure which activate such a path
|
||||||
|
cat interested-file | while read pkg ttype ipath; do
|
||||||
|
echo "working on $pkg..." >&2
|
||||||
|
echo "getting dependency closure..." >&2
|
||||||
|
# go through all packages in the dependency closure and check if any
|
||||||
|
# of them activate a matching path
|
||||||
|
dose-ceve -c $pkg -T cudf -t deb \
|
||||||
|
$DIRECTORY/var/lib/apt/lists/*_dists_${DIST}_main_binary-${ARCH}_Packages \
|
||||||
|
| awk '/^package:/ { print $2 }' \
|
||||||
|
| while read dep; do
|
||||||
|
[ "$pkg" != "$dep" ] || continue
|
||||||
|
# using the space as sed delimeter because ipath has slashes
|
||||||
|
# a space should work because neither package names nor paths have them
|
||||||
|
sed -ne "s ^$dep\s\+activate\(-await\)\?\s\+\($ipath.*\) \2 p" activated-file | while read cpath; do
|
||||||
|
echo "$pkg $ipath $dep $cpath"
|
||||||
|
done
|
||||||
|
done >> result-file
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "" > result-explicit
|
||||||
|
|
||||||
|
# go through those that are interested in an explicit trigger and check them
|
||||||
|
# against the packages in their dependency closure which activate it
|
||||||
|
#cat interested-explicit | while read pkg ttype iname; do
|
||||||
|
echo wims-modules interest wims-reindex | while read pkg ttype iname; do
|
||||||
|
echo "working on $pkg..." >&2
|
||||||
|
echo "getting dependency closure..." >&2
|
||||||
|
# go through all packages in the dependency closure and check if any of
|
||||||
|
# them activate the trigger in which this package is interested
|
||||||
|
dose-ceve -c $pkg -T cudf -t deb \
|
||||||
|
$DIRECTORY/var/lib/apt/lists/*_dists_${DIST}_main_binary-${ARCH}_Packages \
|
||||||
|
| awk '/^package:/ { print $2 }' \
|
||||||
|
| while read dep; do
|
||||||
|
[ "$pkg" != "$dep" ] || continue
|
||||||
|
if egrep "^$dep\s+activate(-await)?\s+$iname\s*$" activated-explicit > /dev/null; then
|
||||||
|
echo "$pkg $iname $dep"
|
||||||
|
fi
|
||||||
|
done >> result-explicit
|
||||||
|
done
|
Loading…
Reference in a new issue