Age | Commit message (Collapse) | Author |
|
Using the now removed, obsoleted package name causes the solver to want
to uninstall anything which depends on these, which isn't helpful right
now.
Theoretically, the information to generate these exists in our "retired
old-style obsoleting packages" data, but do it manually for speed right
now.
|
|
|
|
|
|
For the first time, we are expiring obsolete packages just because they
are obsolete, so it is time for the previous commit, to ensure we retain
any obsolete: hints they might have caused to be generated.
|
|
|
|
This makes out-of-order uploading of users and providers of future
versions of these smoother.
|
|
|
|
Future work: make these regexes so we don't have to add them again in a
years time.
|
|
Just as package name, only allow alphanumerics and '-._+'
Warn about other characters, just as we already warn about '-', and add
an exception for the one existing package which breaks these rules (with
a ~).
Also: '._+' should be allowed in R
|
|
|
|
This can remove packages which aren't installable any more, as they rely
on a provide which has had whatever provided it expired.
|
|
(since we're going to annotate python26 dependent packages which are
missing that, to facilitate their removal)
|
|
|
|
|
|
Allow an empty source for obsoleted catgets package, so libcatgets1 can
get properly identified as a deprecated soversion.
|
|
'libflint' and 'libturbojpeg' packages were mistakenly first made as
solib packages without a soversion number. Explicitly match them so
they get treated as old solibs
|
|
|
|
Also add a test for that.
|
|
|
|
Identify old-style obsoletion packages (where the package is empty, has
a category of _obsolete, and requires: it's replacement), and upgrade
them to the new style (where the obsoleting package has an obsoletes:).
This is done per-arch, simply because lots of these historic obsoletion
packages only exist for x86, and it's redundant to obsolete: them on
x86_64.
Treating this similarly to past_mistakes.missing_obsoletes means that a
warning occurs when new version of package is missing that expected
obsolete:
Initially only apply to packages over a certain age, so we can observe
the effect on a small number of packages to make checking it's doing the
right thing easier.
|
|
Add some more maintainer-less package anomalies, revealed by clean up in
cygwin-pkg-maint.
|
|
Also drop obsolete entries from past_mistakes.mtime_anomalies.
|
|
Record all package names persistently, to determine the set of names of
packages which have been removed.
This allows removing packages whilst still validating the names in an
obsoletes: hint, without having to manually maintain a list of those
names.
|
|
Just to avoid effecting lots of packages at once, initially, only allow
relaxed package retention to apply to sourceless debuginfo packages
(which must also be empty to be permitted to sourceless).
Phase 2 might be to allow it to apply to obsolete debuginfo packages, as
well.
|
|
|
|
An empty install package without depends should be in the '_obsolete'
category.
(We're now checking all install packages, not just ones without
external-source: (which we ignored here for somewhat bogus reasons), so
add additional exceptions to past_mistakes.)
An empty install package with depends should be in the 'virtual'
category (but there are many old obsoletion packages which look like
that, so allow '_obsolete' as well).
Also check for empty source packages (and then fix the empty rpm-doc-src
we have in test data).
|
|
Drop versions which have been expired.
|
|
The default perl annotation is now 5_032.
Use 5_26 annotation. This makes existing packages which depend on perl
5.26 uninstallable, as nothing provides: perl5_026.
|
|
Ignore install packages which have a different current version where
they've been adopted by a different source package.
Future work: This still gets confused by minizip package. The best way
to fix that is probably to simply always record a sibling source package
as external-source:
|
|
Going forward, these should either have their dependencies removed and
be made obsolete, or be marked as meta-packages (via a category?)
|
|
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.
|
|
Also improve the package/maintainer validation we do, to better detect
non-obsolete, maintainer-less packages.
Also make some unnecessarily absolute URLs relative.
|
|
Only allow hyphen in version for the specific historical package
versions which have them, not for any version of those packages.
|
|
|
|
|
|
Add a disable-check: key in pvr.hint to disable certain checks, to gradually
supersede the static list in past_mistakes (which needs calm restarting to
re-read)
disable-check: contains a list of tokens, which indicates which checks are
to be downgraded from errors to warnings
in pvr.hint, disable-check: can contain:
empty-obsolete
check that if a binary package is empty and has no source package, it
is marked obsolete
unique-version
check that this binary package has the same version as all other
packages made from the same source package
These disable-check:s end up being applied to new versions when something is
split out from an existing source. That kind of suggests something is not
quite right about the test we are doing here. But we are limited because we
don't have a source-centric view of things due to source packages not really
being a thing yet...
|
|
|
|
|
|
|
|
|
|
Clean out things no longer needed
|
|
|
|
|
|
libgc
|
|
Update TODO with an idea for a better way of doing this
|
|
This avoids any subsequent changes to the hints for a version from being
applied to all versions.
This allows the stability level tracking across versions to work correctly.
This then exposes that wasn't working correctly for gcc, and x86 gcc has a
timestamp anomaly that should have been ignoring...
|
|
|
|
Forgive some legitimate, historical cases of this condition
|
|
|
|
Perhaps this should be an error, going forwards
|