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