summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjosch <j.schauer@email.de>2015-03-18 22:25:13 +0100
committerHolger Levsen <holger@layer-acht.org>2015-03-19 14:51:18 +0100
commit6c4b4a55b30409ea6a06ce36edfaea00f309f668 (patch)
tree4cd5c657c7f61e89c36afc1fc6d220115ea04901
parent1c1f67a4a90a8e809913a8c647576d19bf98aad1 (diff)
downloadjenkins.debian.net-6c4b4a55b30409ea6a06ce36edfaea00f309f668.tar.xz
reproducible: add new package set: build-essential-depends
-rwxr-xr-xbin/reproducible_common.sh1
-rwxr-xr-xbin/reproducible_create_meta_pkg_sets.sh28
2 files changed, 29 insertions, 0 deletions
diff --git a/bin/reproducible_common.sh b/bin/reproducible_common.sh
index 3aba86ce..eba98be0 100755
--- a/bin/reproducible_common.sh
+++ b/bin/reproducible_common.sh
@@ -72,6 +72,7 @@ META_PKGSET[10]="tails_build-depends"
META_PKGSET[11]="grml"
META_PKGSET[12]="grml_build-depends"
META_PKGSET[13]="maint_pkg-perl-maintainers"
+META_PKGSET[14]="build-essential-depends"
schedule_packages() {
# these packages are manually scheduled, so should have high priority,
diff --git a/bin/reproducible_create_meta_pkg_sets.sh b/bin/reproducible_create_meta_pkg_sets.sh
index f08a4538..1a2b5e49 100755
--- a/bin/reproducible_create_meta_pkg_sets.sh
+++ b/bin/reproducible_create_meta_pkg_sets.sh
@@ -190,6 +190,34 @@ update_pkg_sets() {
grep-dctrl -sPackage -n -FMaintainer pkg-perl-maintainers@lists.alioth.debian.org $SOURCES > $TMPFILE
update_if_similar ${META_PKGSET[13]}.pkgset
fi
+
+ # build-essential-depends
+ #
+ # This set is created using the following procedure:
+ #
+ # 1. take the binary package build-essential and put it into set S
+ # 2. go over every package in S and
+ # 2.1. if it is a binary package
+ # 2.1.1 add all its Depends and Pre-Depends to S
+ # 2.1.2 add the source package it builds from to S
+ # 2.2. if it is a source package add all its Build-Depends,
+ # Build-Depends-Indep and Build-Depends-Arch to S
+ # 3. if step 2 added new packages, repeat step 2, otherwise exit
+ #
+ # This set is important because a package can only be trusted if
+ # also all its dependencies, all its build dependencies and
+ # recursively their own dependencies and build dependencies can be
+ # trusted.
+ # So making this set reproducible is required to make anything
+ # in the essential or build-essential set trusted.
+ if [ ! -z $(find $TPATH -maxdepth 1 -mtime +0 -name ${META_PKGSET[14]}.pkgset) ] || [ ! -f $TPATH/${META_PKGSET[14]}.pkgset ] ; then
+ curl http://bootstrap.debian.net/importance_metric_all.txt > $TMPFILE2
+ # retrieve the highest number in the third column (packages affect)
+ HIGHEST=`sort -n -k 3 $TMPFILE2 | tail -1 | cut -f 3`
+ # now get all lines where the third column is equal to this value
+ awk '$3 == "'$HIGHEST'" { print $1 }' $TMPFILE2 | cut -d ':' -f 2 > $TMPFILE
+ update_if_similar ${META_PKGSET[14]}.pkgset
+ fi
}
TMPFILE=$(mktemp)