-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
xbps-install: remove obsolete packages during update #162
base: master
Are you sure you want to change the base?
Conversation
One problem with repodata as source is, that its not signed. Most other metadata is at least checked against what the signed binary package provides on install/update. |
Is there a reason to not put signature of plists into repodata? |
The reason we have is that signatures are made at a different time than the repodata is updated. |
Ok, but why not to leave signing packages as is and start to sign repodata (it is xbps-rindex too)? Or if it is not an option, do you see some other way to publish obsoletes list? |
Signing repodata would be good. |
Signing index.plist for now, but I think it will be easier to add third plist and modify reading archive than to modify iterating packages in index.plist to skip metadata. |
e900e8a
to
493bfe0
Compare
index.plist is signed now. There is other place (xbps_repo_fetch_remote), where signature should be verified. |
Now I only see minor things to change, like passing to xbps-rindex simpler data format than XML. Please review. |
# Conflicts: # tests/xbps/xbps-install/outmoding_tests.sh
# Conflicts: # lib/transaction_ops.c
To sum up progress:
|
Relevant if we want to change uninstalling by revbump to something predictable. |
As discussed on irc, we should rather remove packages missing from repo without keeping list, using |
This is proof of concept phase of automatic removal of obsolete installed packages, with optionally installing other ones in exchange.
This is meant to solve two problems: explicit removal of packages removed from repo, like void-linux/void-packages#13423 and automatic replacing packages, like void-linux/void-packages#13379 . This PR is not meant to unindex packages to not be able to install them.
Code is based on xbps_transaction_package_replace.
Open problems:
Hard-coded list is not good enough. The list should be included into repodata to make sure it is synchronized with available packages. There are two possible ways to do that: add into root element of index.plist new top-level a metadata key that will contain the list, or add new file in addition to index.plist and index-meta.plist.
For packages to be removed, we want to completely remove templates, so there is no place to put information about what packages needs to be removed from installations. New common/successions file may be added to void-packages repository from which list in repodata will be generated.
I need some explanation why they need to be processed differently than regular packages.
Packages turned into removed packages as per current Manual.md should be automatically removed. For other, that were removed because of e.g. not able to rebuild but otherwise were OK and were removed by dropping template (and possibly removing xbps from mirror), individual decision could be made by generally they can stay installed.
Just a detail that will be solved with return code.
Lot of tests need to be done, e.g. automatic-install copying, virtual packages, interference with updates etc.
Waiting for opinions.