[arch-dev-public] Pacman epoch and what you need to know
With 3.5.0 out, we no longer recognize the "force" option in PKGBUILDs; this has been replaced by the 'epoch' variable. What you need to know: * If you've never forced a package upgrade, don't go introducing epoch. * Default epoch is 0. * If you've ever used 'force' in a package (even if it isn't there now!), you should probably set epoch to 1 next time you build the package. * Each time you increment epoch, it will completely and utterly outrank any previous version of the package. Make sure this is what you want. * epoch should be seen as a last resort. Can someone forward this along to the TU list as well? And anyone that wants to have a command-line skillz showdown, I challenge you to top this one [1], the list of all packages currently using force. -Dan [1] dmcgee@galway ~ $ zgrep -aE -A1 'FILENAME|FORCE' /var/lib/pacman/sync/*.db | grep -vaE 'FILENAME|--' | grep -a -B1 FORCE | grep pkg /var/lib/pacman/sync/community.db:alltray-0.7.4dev-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:anki-1.2.7-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:cedet-1.0-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:coq-8.3pl1-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:dokuwiki-20101107a-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:fbnews-0.5-4-any.pkg.tar.xz /var/lib/pacman/sync/community.db:gnump3d-3.0-5-any.pkg.tar.xz /var/lib/pacman/sync/community.db:gnunet-0.8.1b-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:gnunet-gtk-0.8.1-1-x86_64.pkg.tar.gz /var/lib/pacman/sync/community.db:gobby-0.4.12-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:hex-a-hop-1.1.0-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:keysafe-0.5-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:kvpnc-0.9.6a-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:libev-4.01-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:libextractor-0.5.22-2-x86_64.pkg.tar.gz /var/lib/pacman/sync/community.db:mcabber-0.10.1-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mingw32-gcc-4.5.2-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mingw32-gcc-base-4.5.0-3-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mythplugins-mytharchive-0.24-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mythplugins-mythbrowser-0.24-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mythplugins-mythgallery-0.24-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mythplugins-mythgame-0.24-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mythplugins-mythmusic-0.24-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mythplugins-mythnetvision-0.24-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mythplugins-mythnews-0.24-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mythplugins-mythvideo-0.24-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mythplugins-mythweather-0.24-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mythplugins-mythweb-0.24-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:mythplugins-mythzoneminder-0.24-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:myththemes-0.24-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:mythtv-0.24-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:nuvexport-0.24-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:perl-anyevent-xmpp-0.51-2-any.pkg.tar.xz /var/lib/pacman/sync/community.db:perl-authen-sasl-2.15-2-any.pkg.tar.xz /var/lib/pacman/sync/community.db:perl-color-calc-1.061-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:perl-common-sense-3.4-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:perl-curses-ui-poe-0.035-1-any.pkg.tar.gz /var/lib/pacman/sync/community.db:perl-datetime-0.66-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:perl-json-xs-2.3-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:perl-sgmls-1.03ii-3-any.pkg.tar.xz /var/lib/pacman/sync/community.db:perl-sub-uplevel-0.22-1-any.pkg.tar.gz /var/lib/pacman/sync/community.db:perl-text-markdown-1.000031-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:pitivi-0.13.5-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:prosody-0.7.0-4-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:pyaimt-0.8.0.1-3-any.pkg.tar.xz /var/lib/pacman/sync/community.db:pygoocanvas-0.14.1-3-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:pyinotify-0.9.1-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:python-beautifulsoup-3.2.0-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:python-lcms-1.19-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:python2-poppler-0.12.1-3-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:rocksndiamonds-3.3.0.1-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:rocksndiamonds-data-3.3.0.1-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:root-5.28.00a-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:roundcubemail-0.5.1-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:s3cmd-1.0.0-2-any.pkg.tar.xz /var/lib/pacman/sync/community.db:scribes-0.4.849-1-any.pkg.tar.xz /var/lib/pacman/sync/community.db:sdlmame-0.141u3-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:smbnetfs-0.5.3a-3-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:sshguard-1.5rc4-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:texvc-1.16.0-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/community.db:ttf-liberation-1.06.0.20100721-1-any.pkg.tar.xz /var/lib/pacman/sync/core.db:vi-050325-4-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:blas-3.3.0-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:botan-1.8.11-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:capseo-0.3-1-x86_64.pkg.tar.gz /var/lib/pacman/sync/extra.db:ffmpeg-20110121-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:foomatic-db-4.0.6_20101215-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:foomatic-db-engine-4.0.6_20101215-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:foomatic-db-nonfree-4.0.6_20101215-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:foomatic-filters-4.0.6_20101215-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:gsfonts-1.0.7pre44-2-any.pkg.tar.xz /var/lib/pacman/sync/extra.db:hsqldb-java-1.8.0.10-1-any.pkg.tar.xz /var/lib/pacman/sync/extra.db:hunspell-nl-2.00g-1-any.pkg.tar.xz /var/lib/pacman/sync/extra.db:libdmapsharing-2.1.8-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:libffi-3.0.9-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:libmythes-1.2.1-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:libraw1394-2.0.7-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:libshout-2.2.2-3-x86_64.pkg.tar.gz /var/lib/pacman/sync/extra.db:libvdpau-0.4.1-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:meld-1.4.0-3-any.pkg.tar.xz /var/lib/pacman/sync/extra.db:moc-2.4.4-3-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:monodevelop-2.4.2-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:netcdf-4.1.1-3-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:openbox-3.4.11.2-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:perl-anyevent-5.24-1-any.pkg.tar.gz /var/lib/pacman/sync/extra.db:strigi-git20110107-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:tdb-1.2.1-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:truecrypt-7.0a-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:ttf-tibetan-machine-1.901-4-any.pkg.tar.xz /var/lib/pacman/sync/extra.db:vim-vcscommand-1.99.42-1-any.pkg.tar.xz /var/lib/pacman/sync/extra.db:xaw3d-1.5E-2-x86_64.pkg.tar.gz /var/lib/pacman/sync/extra.db:xf86-video-mga-1.4.13-2-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:xf86-video-nouveau-0.0.16_git20101217-1-x86_64.pkg.tar.xz /var/lib/pacman/sync/extra.db:xf86-video-openchrome-0.2.904-4-x86_64.pkg.tar.xz /var/lib/pacman/sync/multilib.db:lib32-tdb-1.2.1-3-x86_64.pkg.tar.xz /var/lib/pacman/sync/multilib.db:q4wine-0.120_r1-1-x86_64.pkg.tar.xz
On Thu, 17 Mar 2011 04:23:03 -0500, Dan McGee wrote:
With 3.5.0 out, we no longer recognize the "force" option in PKGBUILDs; this has been replaced by the 'epoch' variable. What you need to know:
* If you've never forced a package upgrade, don't go introducing epoch. * Default epoch is 0. * If you've ever used 'force' in a package (even if it isn't there now!), you should probably set epoch to 1 next time you build the package.
Could you explain why this would be needed? If the force flag was removed the current version is probably higher than any of the previous.
* Each time you increment epoch, it will completely and utterly outrank any previous version of the package. Make sure this is what you want. * epoch should be seen as a last resort.
-- Pierre Schmitz, https://users.archlinux.de/~pierre
On Thu, Mar 17, 2011 at 4:33 AM, Pierre Schmitz <pierre@archlinux.de> wrote:
On Thu, 17 Mar 2011 04:23:03 -0500, Dan McGee wrote:
With 3.5.0 out, we no longer recognize the "force" option in PKGBUILDs; this has been replaced by the 'epoch' variable. What you need to know:
* If you've never forced a package upgrade, don't go introducing epoch. * Default epoch is 0. * If you've ever used 'force' in a package (even if it isn't there now!), you should probably set epoch to 1 next time you build the package.
Could you explain why this would be needed? If the force flag was removed the current version is probably higher than any of the previous.
Sure. First, I disagree with your conclusion- I think people remove it when it has been "long enough", they don't care about whether the version will actually always compare higher than anything built before. I think I found one in this category: svn log anthy/trunk/, rev 110860 removed a force (version 9100h), rev 28115 added force (bump to 9100h from 9100). Note that the force was in theory still necessary here. I'm not going to go digging around for a better example; this proves my point that they can be invalidly removed. dmcgee@galway ~ $ sudo pacman -Su Password: :: Starting full system upgrade... warning: scorched3d: local (43.2-1) is newer than community (43.2a-1) warning: wget: local (1.12-6) is newer than core (1.12-5) there is nothing to do Note whatever I have going on here- someone used 'force' for sure on scorched3d, so that is now stuck in some limbo. Setting epoch will make sure this doesn't happen. * no force, force, force removed - anyone that didn't catch the upgrade with 3.4.3 will never see it until your conclusion above takes effect (current version > all versions ever). * no force, currently being forced - force isn't read anymore by pacman. You need to use epoch to have it override the local version and comparison. So if you are sure you are at the highest version ever, you don't need to add an epoch- but if you are not, then definitely think about setting it to 1. -Dan
participants (2)
-
Dan McGee
-
Pierre Schmitz