Age | Commit message (Collapse) | Author |
|
Expire shared library versions which are:
- unused: no packages depend on it (rdepends is empty)
- deprecated: a later soversion exists (or the solibrary is no longer generated by the source)
- old: more than some number [1] of years old
girepository packages are 1:1 correspondence with the solib they are a
binding for, so shouldn't be cause of retention either (but don't
include them in the deprecated soversions report)
[1] initally 10 years, which is sufficently far back not to catch any
packages. We will wind that forward gradually, so we can observe the
effect on a small number of packages initially.
|
|
Expire superseded test versions (that is: expire test versions where a
non-test version with a higher version number exists), unless disabled by
the 'keep-superseded-test' hint.
(For this to work as expected, don't unconditionally mark the version
assigned to the test: stability level as not to be expired, so it can be
expired if superseded).
|
|
|
|
Create separate package objects for the binary and source packages. This
is generally a simplification to the data model.
One slight wrinkle is that stale file detection needs to be aware that
.hint files may now be used by both a binary and source packages, and so
should only be removed if both packages are stale. (Since the source
package cannot be stale if the binary package isn't, we solve this by
making the source package control the staleness of the hint, in that
case [except for archives which are sourceless for permitted reasons,
which we now explicitly annotate as such]).
'external-source' is now always followed, rather than checking for the
source for a given version in the current package first. This exposes a
handful of (migrated) hints which contain an unnecessary
external-source.
Write separate package summary pages for source packages
Always create binary packages when uploading to allow replacement hints,
otherwise, only create a package if there's archives for it to contain
to avoid creating empty packages from the relarea.
Note: since we don't put source packages into a separate namespace,
there is a potential collision if both 'foo' (source package 'foo-src'),
and 'foo-src' (source package 'foo-src-src') exist. That would be daft,
and there aren't currently any examples of this. Forbid package names
ending in '-src' to avoid such problems.
|
|
|
|
Unlike pvr.hint, it can be valid if it doesn't contain anything
|
|
|
|
|
|
|
|
Also, don't fail if irkerd isn't running.
|
|
Update TODO with an idea for a better way of doing this
|
|
SIGUSR1 tells it to re-read the upload area
SIGUSR2 tells it to re-read the release area
This avoids maintainers having to wait a random amount of time to discover
the result of their uploads
For the moment, we still re-read everything every 30 minutes, but this could
be increased, which would be a good deal more efficient, as we won't be
re-reading the state of the relarea when nothing has changed.
|
|
|
|
source-only
We've always thought this wasn't right, since installing these packages does
nothing, and letting these appear in the package list just causes confusion,
but didn't do this initially for upset compatibility.
Fix tests which used empty install packages
|
|
|
|
Log an error if we need to access a package file in the release area which
isn't a valid compressed archive. Ideally, we'd use tarfile.is_tarfile() to
check that, but that can propagate exceptions from the decompressor.
(Perhaps we should also ignore these invalid files, but I'm not sure that is
a good idea.)
Note that we avoid opening the package files in the release area unless
unavoidable, as it's expensive. Validating a tar file involves reading the
entire file.
Always validate uploaded package files, and reject attempts to upload such
invalid files
Add appropriate tests
|
|
|
|
|
|
Have I mentioned lately how much I hate shell scripts...
v2:
Backup existing .ini file, rather than overwriting it
Add an option to control where we look for setup executable
v3:
Use shutil.move rather than os.rename for case when /tmp isn't on the
same filesystem as release area
|
|
Deal with access to /packages/index.html by redirecting to
package_list.html, rather than letting the server index a very large
directory
Also fix --force to apply to .htaccess files
Adjust logging capitalization harmonize with everything else
Update tests
|
|
|
|
Refactor various parts to make it possible to have a single command to
validate the package set as it processes uploads
Also remove TODO
Also say something if we aren't going to write setup.ini due to an error
|
|
|