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
76
77
|
#!/bin/bash
# Copyright 2014 Holger Levsen <holger@layer-acht.org>
# released under the GPLv=2
#
# included by all reproducible_*.sh scripts
#
# define db
PACKAGES_DB=/var/lib/jenkins/reproducible.db
INIT=/var/lib/jenkins/reproducible.init
if [ -f $PACKAGES_DB ] && [ -f $INIT ] ; then
if [ -f $PACKAGES_DB.lock ] ; then
for i in $(seq 0 100) ; do
sleep 15
if [ ! -f $PACKAGES_DB.lock ] ; then
break
fi
done
echo "$PACKAGES_DB.lock still exist, exiting."
exit 1
fi
elif [ ! -f ${PACKAGES_DB} ] ; then
echo "Warning: $PACKAGES_DB doesn't exist, creating it now."
echo
# create sqlite db if needed
sqlite3 ${PACKAGES_DB} '
CREATE TABLE source_packages
(name TEXT NOT NULL,
version TEXT NOT NULL,
status TEXT NOT NULL
CHECK (status IN ("blacklisted", "FTBFS","reproducible","unreproducible","404", "not for us")),
build_date TEXT NOT NULL,
PRIMARY KEY (name))'
sqlite3 ${PACKAGES_DB} '
CREATE TABLE sources_scheduled
(name TEXT NOT NULL,
date_scheduled TEXT NOT NULL,
date_build_started TEXT NOT NULL,
PRIMARY KEY (name))'
sqlite3 ${PACKAGES_DB} '
CREATE TABLE sources
(name TEXT NOT NULL,
version TEXT NOT NULL)'
sqlite3 ${PACKAGES_DB} '
CREATE TABLE stats_pkg_state
(datum TEXT NOT NULL,
suite TEXT NOT NULL,
untested INTEGER,
reproducible INTEGER,
unreproducible INTEGER,
FTBFS INTEGER,
other INTEGER,
PRIMARY KEY (datum))'
sqlite3 ${PACKAGES_DB} '
CREATE TABLE stats_builds_per_day
(datum TEXT NOT NULL,
suite TEXT NOT NULL,
reproducible INTEGER,
unreproducible INTEGER,
FTBFS INTEGER,
other INTEGER,
PRIMARY KEY (datum))'
sqlite3 ${PACKAGES_DB} '
CREATE TABLE stats_builds_age
(datum TEXT NOT NULL,
suite TEXT NOT NULL,
oldest_reproducible REAL,
oldest_unreproducible REAL,
oldest_FTBFS REAL,
PRIMARY KEY (datum))'
# 60 seconds timeout when trying to get a lock
cat >/var/lib/jenkins/reproducible.init <<-EOF
.timeout 60000
EOF
fi
|