There is potentially a case for a portage file which allows a user to fix the versions of certain packages. At the moment, you can opt to simply not upgrade a particular package, or mask it manually. This prevents you from doing 'emerge -u world', or means that you have to update the .mask file after every rsync. For example, I need the enigmail functionality of Mozilla 1.1, so I unmask it and emerge it. The problem is every time I rsync, it shows an available update to version 1.0 as being available. So I either pick the updates manually, or if there are a lot of them, I update the .mask file and emerge -u world. I don't want to use the ACCEPT_KWYWORDS approach as I don'y want any other potentially unstable stuff being available to me. Specifying the exact ebuild version in a 'packages.fix' file would allow me to fix the version. This might want to have a certain degree of flexibility about it; i.e. some users may wish to fix the exact ebuild version, ignoring all updates, but it might be nice to restrict Mozilla to version 1.1 ebuilds only, so updates arrive for the 1.1 branch and are used. This would be particularly useful for admins of a large number of machines who wish to run automated 'emerge rsync && emerge -u world' scripts, but who don't wish to surprise a user base by upgrading a key piece of software out of the blue.It may be that dependency issues implicitly force other packages into a 'fixed' status. To avoid users 'fixing' an ebuild, and forgetting that they've done it, whenever they do an emerge -u -p world for example, there needs to be a communication of the fact that an update is available, but is being ignored because the version has been fixed, sort of a : These are the packages that I would merge, in order. Calculating world dependencies ...done! [ebuild U ] net-ftp/gftp-2.0.14_rc1 Updates are available for the following packages, but these won't be merged as their versions have been fixed: [ebuild F ] net-www/mozilla-1.0.1-r3 Updates are available for the following packages, but these won't be merged as at least one package on which they depend has been fixed. [ebuild F ] net-www/another-0.0.1-r4 Note the F flag to denote a fixed package. This won't be merged as I've 'fixed' mozilla to the 1.1 branch in packages.fix. Just a thought. I know I'd find it useful. Comments appreciated.
I'm pretty sure that you can "pin" a package by doing something like the following in /var/cache/edb/world: =mozilla-1.1 To only ever have Mozilla 1.1 installed or <=mozilla-1.1 That will stop you from upgrading past Mozilla 1.1 Currently portage does not have any visible indication that the package is "pinned" by the user. The logic of the code is probably something like: Current = 1.1 New = 1.2 New > Current? yes: Is package pinned in world file? yes: Skip to the next package no: mark the package as having an update Lather, rinse, repeate
*** This bug has been marked as a duplicate of 2767 ***