On Tue, Aug 10, 2010 at 11:00 AM, Matthias Matousek <[email protected]> wrote: > On Mon, Aug 09, 2010 at 02:14:55PM -0600, Gary Wright wrote: >> On Mon, Aug 9, 2010 at 9:20 AM, Matthias Matousek <[email protected]> wrote: >> > On Fri, Aug 06, 2010 at 02:37:03PM +0200, Matthias Matousek wrote: >> >> On Fri, Aug 06, 2010 at 07:12:21PM +0800, Ng Oon-Ee wrote: >> >> > On Fri, 2010-08-06 at 11:10 +0200, Matthias Matousek wrote: >> >> > > Hello, >> >> > > >> >> > > I am currently maintaining the masqmail package in aur. masqmail is a >> >> > > small mail transfer agent. Last week a new version 0.3.0 was released >> >> > > which has no compatibility to the 0.2 branch. >> >> > > The masqmail developer recommends users who already use masqmail to >> >> > > stick with the 0.2 branch and new users to take the 0.3 branch. To >> >> > > make >> >> > > that possible there needs to be a package for each branch in the aur. >> >> > > I'm not sure how I should handle that. I was thinking about creating a >> >> > > second package "masqmail-0.3" in addition to the currently existing >> >> > > package "masqmail". I wasn't able to find anything about such issues >> >> > > in >> >> > > the packaging guidelines. Are there any suggestions how this should be >> >> > > handled? >> >> > > >> >> > > Thanks, >> >> > > matou >> >> > > >> >> > As I understand, convention is to rename the old branch to masqmail-0.2 >> >> > and update masqmail to 0.3. You could include a post-install file to >> >> > inform users on updating that they may want to stick to masqmail-0.2 >> >> > >> >> > Alternatively (and this may be better) is to delete masqmail and create >> >> > masqmail-0.2 (which replaces it) and masqmail-0.3. This of course would >> >> > be a bit more future-proof if upstream is going to make releases like >> >> > this often. >> >> > >> >> >> >> Thank you very much for the answer. I guess I will go for the second >> >> option, then. >> > >> > I created masqmail-0.2 now and added a replaces=('masqmail'). But I was >> > still able to install both packages. Does masqmail need to be deleted >> > explicitely? >> > >> >> well, it will replace masqmail-$PKGVER-$PKGREL.pkg.tar.gz if it is >> installed on the system, but it won't replace >> masqmail-0.2-$PKGVER-$PKGREL.pkg.tar.gz . It will only complain >> about the other version being installed if you put a >> conflicts=('masqmail-0.2') in the -0.3 PKGBUILD. (and vice-versa in >> the -0.2 PKGBUILD.) >> >> Hope that clears things up. >> >> G >> >> *note* $PKGVER and $PKGREL aren't strict expansions of the variable in >> the current PKGBUILD, I'm just using them in place of the asterisk >> glob to prevent confusion. > > I added a conflicts entry which makes it complain about other installed > masqmail versions. > But I still want to replace 'masqmail' with 'masqmail-0.2'. But pacman or > yaourt does not try to replace masqmail. > Looks like I was wrong... usually happens when I open my mouth :P
After checking out the PKGBUILD page on ArchWiki [1], it would appear that the replaces=() array is only used by pacman -Sy when it is examining the repo.db files. When working with the AUR, there are no repo.db files to deal with, only a source tarballs that yaourt and others conveniently download and process for you. In short, makepkg and pacman -U (which is basically what yaourt does) don't care what it says in the replaces=() array. Best advice would be to add masqmail (the old pkgname) into the conflicts() array of the masqmail-0.2 PKGBUILD, and put a message up in the comments for masqmail-0.2 advising users to remove the original masqmail package before upgrading.
