Ansgar Burchardt [Sun, 22 May 2016 14:10:48 +0000 (16:10 +0200)]
Do not remove "by-hash" directory
Ansgar Burchardt [Sun, 22 May 2016 14:07:07 +0000 (16:07 +0200)]
Quote argument to --exclude
There must only be one argument passed to rsync's --exclude option,
the wildcard should not be expanded by the shell.
Ansgar Burchardt [Sun, 22 May 2016 14:06:56 +0000 (16:06 +0200)]
dep11-basic-validate: Forbid symlinks for now
Ansgar Burchardt [Sun, 22 May 2016 14:04:03 +0000 (16:04 +0200)]
Correct indention.
Ansgar Burchardt [Sat, 21 May 2016 13:51:17 +0000 (15:51 +0200)]
Merge remote-tracking branch 'jcristau/cs-set-log-suite'
Julien Cristau [Sat, 21 May 2016 13:48:17 +0000 (15:48 +0200)]
control_suite: log suite name in "dak control-suite --set"
Signed-off-by: Julien Cristau <jcristau@debian.org>
Ansgar Burchardt [Sat, 21 May 2016 12:20:27 +0000 (14:20 +0200)]
Merge remote-tracking branch 'jcristau/formatone-no-tar-sig'
Julien Cristau [Fri, 20 May 2016 11:03:52 +0000 (13:03 +0200)]
srcformats: reject orig.tar.gz.asc files in source format 1.0
dpkg-source in jessie doesn't know what to do with them.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Ansgar Burchardt [Fri, 20 May 2016 07:34:46 +0000 (09:34 +0200)]
Merge remote-tracking branch 'jcristau/fix-orig-sig-check'
Julien Cristau [Fri, 20 May 2016 07:27:41 +0000 (09:27 +0200)]
Add a couple of check_dsc_files tests
Signed-off-by: Julien Cristau <jcristau@debian.org>
Ansgar Burchardt [Fri, 20 May 2016 07:04:26 +0000 (09:04 +0200)]
Merge remote-tracking branch 'jcristau/fix-orig-sig-check'
Matthias Klumpp [Wed, 18 May 2016 20:11:00 +0000 (22:11 +0200)]
dep11: Properly validate Time and Priority fields
Matthias Klumpp [Wed, 18 May 2016 20:11:20 +0000 (22:11 +0200)]
dep11: Validate .xz compressed files as well
Julien Cristau [Fri, 20 May 2016 06:31:03 +0000 (08:31 +0200)]
Move more specific source file regexes before general ones, again
Otherwise foo.orig.tar.gz.asc matches orig_tar before it has a change to
be matched against orig_tar_sig.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Ansgar Burchardt [Wed, 18 May 2016 21:53:03 +0000 (23:53 +0200)]
Do not try to add same hashfile multiple times
Doing so would violate the database constraints.
Ansgar Burchardt [Wed, 18 May 2016 17:17:43 +0000 (19:17 +0200)]
Use correct db_name for MD5 hash
Ansgar Burchardt [Wed, 18 May 2016 16:34:57 +0000 (18:34 +0200)]
update-buildd-archive: Also copy zzz-dists
Ansgar Burchardt [Wed, 18 May 2016 15:31:40 +0000 (17:31 +0200)]
Merge remote-tracking branch 'jcristau/by-hash-v5'
Ansgar Burchardt [Wed, 18 May 2016 15:21:42 +0000 (17:21 +0200)]
Merge remote-tracking branch 'jcristau/known-hashes'
Ansgar Burchardt [Wed, 18 May 2016 15:20:34 +0000 (17:20 +0200)]
Merge remote-tracking branch 'jcristau/multivalued'
Julien Cristau [Tue, 17 May 2016 14:20:46 +0000 (16:20 +0200)]
daklib: kill unused utils.known_hashes
Its last use seems to have been removed in
90885e3cbeee73afe199d6c77cd8d4e58cedf5ac.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Julien Cristau [Wed, 18 May 2016 14:10:01 +0000 (16:10 +0200)]
clean_suites: fix clean_byhash when Dinstall::SuiteSuffix is set
Signed-off-by: Julien Cristau <jcristau@debian.org>
Julien Cristau [Wed, 18 May 2016 13:50:17 +0000 (15:50 +0200)]
generate_releases: refactor by-hash handling
Move hashfile update and by-hash links creation to separate methods. No
actual code changes.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Julien Cristau [Wed, 18 May 2016 13:45:57 +0000 (15:45 +0200)]
generate_releases: reduce number of sql queries for by-hash files
Instead of doing two queries per filename and per hash function, store a
set of known hashfiles up front and group the UPDATEs in a single query.
Suggested by Colin Watson.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Julien Cristau [Wed, 18 May 2016 13:38:47 +0000 (15:38 +0200)]
generate_releases: expire by-hash files for all suites
When setting suite.byhash to false, the suite's existing hashfiles need
to be marked as unreferenced so they can be cleaned up.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Julien Cristau [Wed, 18 May 2016 13:33:07 +0000 (15:33 +0200)]
generate_releases: separate hashfile table update from hardlink creation
This way we only touch the filesystem after the db is updated.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Julien Cristau [Tue, 17 May 2016 14:16:42 +0000 (16:16 +0200)]
generate_releases: replace hashfuncs initialization with a legible version
Group knowledge of hash function and corresponding name in our db and in
Release files in a class instead of playing clever but unreadable
tricks.
Suggested by Colin Watson.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Ansgar Burchardt [Wed, 18 May 2016 08:03:55 +0000 (10:03 +0200)]
Move Release files to zzz-dists
This makes sure the Release files are synced last, after all Packages
indices (and their correspondig by-hash files).
Julien Cristau [Tue, 17 May 2016 08:14:19 +0000 (10:14 +0200)]
show_deferred: drop workaround for old python-debian bug
Fixed in python-debian 0.1.11; squeeze had 0.1.18.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Ansgar Burchardt [Mon, 16 May 2016 18:15:04 +0000 (20:15 +0200)]
Remove more changelog-related settings
These seem to no longer be used as of
c91ff0bda6190f7b80b7976b578c10e68f97c5b1
Ansgar Burchardt [Mon, 16 May 2016 18:13:19 +0000 (20:13 +0200)]
dak.conf: Remove changelog export path
This is controlled via the database, however
fcfcdcc15785c01785b18fecc903b3aef2b367f6 left the setting in
config/debian/dak.conf.
Ansgar Burchardt [Mon, 16 May 2016 18:01:00 +0000 (20:01 +0200)]
debian-security/dak.conf: Remove `Security-Install` block
It doesn't seem to be used anywhere.
Ansgar Burchardt [Mon, 16 May 2016 17:59:40 +0000 (19:59 +0200)]
debian-security/dak.conf: Remove references to non-US
Ansgar Burchardt [Mon, 16 May 2016 17:57:15 +0000 (19:57 +0200)]
debian-security/dak.conf: set changelog export directory
Ansgar Burchardt [Mon, 16 May 2016 15:58:50 +0000 (17:58 +0200)]
Merge remote-tracking branch 'jcristau/by-hash-v4'
Julien Cristau [Wed, 27 Apr 2016 08:06:08 +0000 (10:06 +0200)]
Add by-hash support
Add a per-suite boolean to enable by-hash; store the by-hash files in
the db, and record when they stopped being referenced, so that
clean-suites can delete them after the archive's stayofexecution time.
In generate-release, where we have checksums for all the things,
hardlink files to the by-hash dir for each of the suite's configured
hash methods.
Signed-off-by: Julien Cristau <jcristau@debian.org>
---
changes in v2:
- use archive.stayofexecution as delay before removing files from
by-hash
- don't assume any particular ordering for suite.checksums
changes in v3:
- rebase on latest master, update115 is now update116
- handle missing files in clean_byhash
changes in v4:
- use hardlinks instead of symlinks
- don't initialize `unreferenced` to its default value
- in clean_byhash, remove useless fetchall, and handle ENOENT from
unlink instead of checking for existence beforehand
Luke Faraone [Sat, 30 Apr 2016 21:59:52 +0000 (21:59 +0000)]
Add python-debianbts as a dependency in setup/README (Closes: #823118)
Needed to run the test suite:
======================================================================
ERROR: test_importing_rm (test_imports.ImportTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/srv/daksrc/tests/test_imports.py", line 15, in test_fn
__import__('dak', fromlist=[cmd])
File "/srv/daksrc/dak/rm.py", line 54, in <module>
from daklib.rm import remove
File "/srv/daksrc/dak/daklib/rm.py", line 52, in <module>
import debianbts as bts
ImportError: No module named debianbts
Signed-off-by: Luke Faraone <lfaraone@debian.org>
Ansgar Burchardt [Tue, 3 May 2016 20:57:57 +0000 (22:57 +0200)]
Notify w-b earlier
Before Debian LTS started to use the security archive, all uploads that
would trigger buildds would be sourceful uploads to a policy queue. So
new packages entering the build queues and pushing the public mirrors
would likely not happen in the same cron.unchecked run.
With Debian LTS, uploads would go to both the build queues and trigger a
public mirror push. If the mirror push takes more than three minutes,
cron.buildd would however not notify w-b of changes.
This patch moves the w-b notification right behind the update of the
build queues and before the mirror push to avoid the problem. Ideally
we would not rely on anything happening within the last three minutes
though.
Julien Cristau [Wed, 27 Apr 2016 08:26:28 +0000 (10:26 +0200)]
dak: don't ignore SystemExit
Let the python interpreter handle it and actually exit with the right
status, otherwise when a sub-command calls sys.exit(1) we end up exiting
0 instead, which is confusing if not dangerous.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Ansgar Burchardt [Sun, 1 May 2016 14:56:35 +0000 (16:56 +0200)]
Publish security archive on all changes
With "wheezy" being used for Debian LTS, the archive needs to be
published not only when policy queue uploads are accepted, but also
when direct uploads to "wheezy" arrive.
The same applies to uploads to "jessie-kfreebsd".
Ansgar Burchardt [Sun, 1 May 2016 14:55:11 +0000 (16:55 +0200)]
Keep track of when a package was last added to a suite
Ansgar Burchardt [Sun, 1 May 2016 14:48:22 +0000 (16:48 +0200)]
Work with newer SQLAlchemy versions
Newer SQLAlchemy versions seem to track the `binary` attribute of
`BinaryMetadata`. This means the association proxy in `DBBinary`
would first create a `BinaryMetadata` with `binary` set to `None`,
flush this to the database and then set the actual value of `binary`
we want. However the flush fails, as `NULL` is not allowed for the
`binary_id` column.
The problem can be avoided by not setting `binary` to `None`. This is
treated as an "undefined value" by SQLAlchemy and changing it later
means the database row never sees `NULL`.
The same applies to the `source` attribute of `SourceMetadata`.
Guillem Jover [Sat, 23 Apr 2016 12:02:16 +0000 (14:02 +0200)]
Move more specific source file regexes before general ones
The orig tarball regexes match also the orig tarball detached
signatures because they are not anchored at the end, and the loop
short-circuits on first match. So we have to move them before their
more general counterparts.
Fixes commit
84f230b6cfb4b3eb1ef5fbe672e121b1a8e7aabb.
Ansgar Burchardt [Fri, 15 Apr 2016 07:49:54 +0000 (09:49 +0200)]
Read files in chunks
Calling `f.read()` would read the entire file at once which is
wasteful. It's also not intended given the read loop.
Also replace a use of `readline()` with `read(65536)` as well where we
want to read the entire file and not only single lines.
Ansgar Burchardt [Fri, 15 Apr 2016 06:37:10 +0000 (08:37 +0200)]
Do not pass all file descriptiors to external process.
Guillem Jover [Thu, 11 Feb 2016 09:27:16 +0000 (10:27 +0100)]
Fix support for detached upstream signatures
We should only allow upstream tarballs with detached signatures, but not
native tarballs, «<source>_<version>.orig.asc» or «<source>_<version>.asc»
filenames. We also need to allow this on all relevant regexes. This commit
fixes and refactors the regexes to implement the above, and to make it
easier to modify a single place in the future.
Fixes commit
4911282cbf231b116872a6f16eb838f7862ebc36.
Closes: #759401
Guillem Jover [Thu, 11 Feb 2016 09:27:13 +0000 (10:27 +0100)]
Stop using undefined reject function in check_dsc_files
When there's an unknown file in a source package, the function spits
this:
,---
Processing raised an exception: global name 'reject' is not defined.
Traceback (most recent call last):
File "/srv/ftp-master.debian.org/dak/dak/daklib/archive.py", line 966, in check
chk().check(self)
File "/srv/ftp-master.debian.org/dak/dak/daklib/checks.py", line 497, in check
rejects = utils.check_dsc_files(dsc_fn, control, source.files.keys())
File "/srv/ftp-master.debian.org/dak/dak/daklib/utils.py", line 343, in check_dsc_files
reject("%s: unexpected source file '%s'" % (dsc_filename, f))
NameError: global name 'reject' is not defined
`---
Just set the reject message and break from the loop.
Guillem Jover [Thu, 11 Feb 2016 09:27:10 +0000 (10:27 +0100)]
Remove unused re_source_ext import
Guillem Jover [Thu, 11 Feb 2016 09:26:57 +0000 (10:26 +0100)]
Escape dots in file type check in check_dsc_files
Joerg Jaspert [Sat, 2 Apr 2016 13:03:52 +0000 (15:03 +0200)]
Implement mirrorpush-release function
Ansgar Burchardt [Sat, 2 Apr 2016 12:21:02 +0000 (14:21 +0200)]
Add "mirror" so POSSIBLEARGS
Ansgar Burchardt [Sat, 2 Apr 2016 12:20:41 +0000 (14:20 +0200)]
README.stable-point-release: updates from 7.10
Joerg Jaspert [Sat, 2 Apr 2016 12:05:22 +0000 (14:05 +0200)]
Ups, that backports dir is still in use
Joerg Jaspert [Sat, 2 Apr 2016 12:01:37 +0000 (14:01 +0200)]
Generate new.html stuff atomic
Joerg Jaspert [Sat, 2 Apr 2016 11:59:34 +0000 (13:59 +0200)]
Remove an old backports-master dir, remove lock unchecked after usage
Ansgar Burchardt [Sat, 2 Apr 2016 10:05:04 +0000 (12:05 +0200)]
README.stable-point-release: updates from 8.4
Ansgar Burchardt [Thu, 31 Mar 2016 19:17:44 +0000 (21:17 +0200)]
Use parameter passed to the --suite option
We used the remaining parameters before which is somewhat confusing.
Ansgar Burchardt [Thu, 31 Mar 2016 19:12:54 +0000 (21:12 +0200)]
The --suite option has an argument.
Ansgar Burchardt [Thu, 31 Mar 2016 18:32:50 +0000 (20:32 +0200)]
debian: Add release team key to import testing-debug
Ansgar Burchardt [Wed, 30 Mar 2016 22:04:58 +0000 (00:04 +0200)]
Revert "Use only 'xz' as default compression for Sources and Packages"
This reverts commit
196b3433d455b925758d6a46751a1f0b01617213.
Ansgar Burchardt [Wed, 30 Mar 2016 21:36:23 +0000 (23:36 +0200)]
Acquire a lock in the main process when writing Contents
This should prevent changes to the {src,bin}_contents tables and result
in all helper processes seeing the same data.
Ansgar Burchardt [Wed, 30 Mar 2016 21:26:17 +0000 (23:26 +0200)]
Use only 'xz' as default compression for Sources and Packages
Ansgar Burchardt [Wed, 30 Mar 2016 21:23:13 +0000 (23:23 +0200)]
Remove files that are (no longer) generated
This makes it less error-prone to switch compression methods: the files
that are no longer generated are automatically removed. Before they had
to be removed manually.
Joerg Jaspert [Tue, 15 Mar 2016 22:25:59 +0000 (23:25 +0100)]
Hopefully enable g-i-d to deal with .xz files
which is helpful when there are no .gz/.bz2 ones around to
look at.
Joerg Jaspert [Tue, 15 Mar 2016 21:57:18 +0000 (22:57 +0100)]
Remove suite alias, use suite directly
Joerg Jaspert [Tue, 15 Mar 2016 21:44:30 +0000 (22:44 +0100)]
Merge remote-tracking branch 'juliank/master'
* juliank/master:
Only generate binary checksum fields for the requested ones
Only generate fields in Sources for requested checksums
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Sun, 13 Mar 2016 14:23:34 +0000 (15:23 +0100)]
Replace hardcoded hashfuncs with values generated from database
Julian Andres Klode [Sun, 13 Mar 2016 14:01:46 +0000 (15:01 +0100)]
Only generate binary checksum fields for the requested ones
This is the second step. As we are simply concatenating things,
we can just concatenate an empty string if we do not want a
checksum.
Julian Andres Klode [Sun, 13 Mar 2016 13:48:51 +0000 (14:48 +0100)]
Only generate fields in Sources for requested checksums
We make use of the fact that STRING_AGG ignores NULL values
when joining the values, so we do not get empty lines in there.
Joerg Jaspert [Sun, 13 Mar 2016 13:29:54 +0000 (14:29 +0100)]
Add checksums column to suite table
Joerg Jaspert [Sun, 13 Mar 2016 13:02:41 +0000 (14:02 +0100)]
No need to export backports changelogs anymore
Joerg Jaspert [Sun, 13 Mar 2016 12:57:40 +0000 (13:57 +0100)]
Stop work in the backports archive
Mind, its still configured and exists, need to remove that, but this
should stop pushing the mirrors and changing it around.
Ansgar Burchardt [Sat, 6 Feb 2016 13:38:58 +0000 (14:38 +0100)]
Architecture names can have more than one character
Ansgar Burchardt [Sat, 6 Feb 2016 11:37:00 +0000 (12:37 +0100)]
Components-*.yml can exist for all architectures
Joerg Jaspert [Sat, 23 Jan 2016 21:33:53 +0000 (22:33 +0100)]
Take away static-update-components stdin, its ssh eats it
Which makes running it inside a while loop a pain.
(Its ssh could use a -n,but this works too)
Joerg Jaspert [Sat, 23 Jan 2016 21:17:15 +0000 (22:17 +0100)]
Various small fixups/style issues
Ansgar Burchardt [Sat, 23 Jan 2016 13:38:35 +0000 (14:38 +0100)]
README.stable-point-release: updates from 8.3
Ansgar Burchardt [Sat, 23 Jan 2016 11:30:30 +0000 (12:30 +0100)]
Add new "mirror" cronscript
This just prepares the mirror tree and pushes the changes to the
mirrors. It is intended to be used for point releases or in other
situations where a manual mirror push is needed.
Guillem Jover [Sun, 17 Jan 2016 01:08:12 +0000 (02:08 +0100)]
Add support for detached upstream signatures
Upstream tarballs usually come with detached signatures, which would be
useful to have in the source package, as an additional check that could
be performed to verify its integrity and provenance.
dpkg-source supports this since 1.17.20.
Closes: #759401
Julien Cristau [Tue, 19 Jan 2016 22:43:10 +0000 (23:43 +0100)]
Fix proposed-updates handling in byhand-di and byhand-win32-loader
To: debian-dak@lists.debian.org
Cc: kibi@debian.org, Julien Cristau <jcristau@debian.org>
Date: Tue, 19 Jan 2016 11:40:01 +0100 (12 hours, 2 minutes, 47 seconds ago)
Resent-From: debian-dak@lists.debian.org
stable-proposed-updates is called "proposed-updates" in projectb, so
that's what we pass to the byhand script. It shouldn't be turned into
"proposed-updates-proposed-updates".
Signed-off-by: Julien Cristau <jcristau@debian.org>
Ansgar Burchardt [Mon, 18 Jan 2016 19:28:31 +0000 (20:28 +0100)]
Reject arch:all binNMUs
While arch:all binNMUs might work for some packages, they still tend
to create problems due to versioned dependencies using
arch-all-package (= ${source:Version})
as these will be broken by the binNMU. To avoid these, we reject
arch:all binNMUs for now.
Ansgar Burchardt [Sat, 16 Jan 2016 16:58:36 +0000 (17:58 +0100)]
Run new SuiteCheck as a per-suite check
Ansgar Burchardt [Sat, 16 Jan 2016 15:14:06 +0000 (16:14 +0100)]
Debug suites might also miss the source package
If a binary-only upload including debug packages gets accepted from a
policy queue, the source might be missing from the debug suite.
Reported-by: Matthias Klumpp <mak@debian.org>
Ansgar Burchardt [Sat, 16 Jan 2016 14:48:11 +0000 (15:48 +0100)]
Do not consider MD5-based signatures valid
Ansgar Burchardt [Sat, 16 Jan 2016 14:28:44 +0000 (15:28 +0100)]
Do not accept direct uploads to new build queues
Ansgar Burchardt [Sat, 16 Jan 2016 14:23:39 +0000 (15:23 +0100)]
Add option to forbid source and/or binary uploads to a suite
This is intended to be used to forbid uploads to policy queues and build
queues which would result in confusing results. While we already have a
"reject" option in the dak.conf's SuiteMappings, having the option in
the database means we don't have to edit dak.conf when configuring new
suites.
Another usecase will be the "unstable" suite for Debian Ports: here we
want to import the source packages (and arch:all) from the main archive
and only accept binary uploads. Additional source packages must go into
the "unreleased-*" suites. This was not possible via SuiteMappings.
Bug: https://bugs.debian.org/783115
Ansgar Burchardt [Sat, 16 Jan 2016 14:07:47 +0000 (15:07 +0100)]
Check for debug suite for upload suite, not override suite
Debug packages are exempt from NEW if the target suite has a seperate
debug suite. However the code checked if the target's override suite
had a debug suite... For the Debian archive this went unnoticed as
experimental's override suite is unstable and both suites have a
seperate debug suite.
Reported-by: Matthias Klumpp <mak@debian.org>
Joerg Jaspert [Tue, 5 Jan 2016 22:12:08 +0000 (23:12 +0100)]
Link tracefiles into webview
Joerg Jaspert [Mon, 4 Jan 2016 21:47:21 +0000 (22:47 +0100)]
Also create Date: line in archives tracefiles
Joerg Jaspert [Mon, 4 Jan 2016 21:44:44 +0000 (22:44 +0100)]
Create archive serial
Joerg Jaspert [Mon, 4 Jan 2016 21:17:13 +0000 (22:17 +0100)]
Link "master" to the tracefile, to have one name only
Ansgar Burchardt [Mon, 4 Jan 2016 10:19:28 +0000 (11:19 +0100)]
Merge remote-tracking branch 'dktrkranz/fixes'
Luca Falavigna [Sun, 3 Jan 2016 18:41:35 +0000 (18:41 +0000)]
Define correct RM version when binary name is different than source
Joerg Jaspert [Sat, 2 Jan 2016 22:28:19 +0000 (23:28 +0100)]
Style foo
Joerg Jaspert [Sat, 2 Jan 2016 22:25:02 +0000 (23:25 +0100)]
New function for tempfile generation
Especially proper adding to the TMPFILES variable to get rid of em
again.
Joerg Jaspert [Sat, 2 Jan 2016 21:46:04 +0000 (22:46 +0100)]
Remove dead code
Joerg Jaspert [Sat, 2 Jan 2016 13:38:26 +0000 (14:38 +0100)]
Make timestamping configurable and only let dinstall have it for now
Joerg Jaspert [Sat, 2 Jan 2016 13:34:47 +0000 (14:34 +0100)]
Merge remote-tracking branch 'DktrKranz/fixes'
* DktrKranz/fixes:
Removal dep check only considers latest sources (Closes: #792578)
Allow closing bugs if more than one source version is available.
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joachim Breitner [Sat, 2 Jan 2016 13:21:27 +0000 (13:21 +0000)]
Removal dep check only considers latest sources (Closes: #792578)
Joerg Jaspert [Sat, 2 Jan 2016 13:20:31 +0000 (14:20 +0100)]
Proper timestamps in the logs