You are not logged in.

#1 2015-12-24 17:23:07

V01D
Member
Registered: 2006-07-18
Posts: 128

avoiding breakage of locally compiled packages upon system upgrade

Hi,
I have ROS installed on my arch (it involves hundreds of packages from AUR) using pacaur.
There's a problem which often appears and it is quite annoying which is that whenever boost is upgraded, all dependant AUR packages
are broken and require recompile.

I'm thinking that it would be better to make these AUR packages depend on a specific boost-libs version so that when the system is upgraded and a new boost-libs is available, at least I will get a warning and know I'm about to break the system (then, I can hold off the upgrade until I decide I want to spend my time recompiling all packages). The problem is that this would require keeping all relevant AUR packages updated to depend on current boost version.

A better way would be to write a PKGBUILD so that a given dependency requires the the currently installed version of the corresponding package (e.g. if I have boost 1.59 installed, when I make the package the package will now have a =1.59 dependency). This would be a really good feature to have. Is this somehow possible currently? Is there any interest in this feature?

Best,
Matias

Offline

#2 2015-12-24 18:15:51

alphaniner
Member
From: Ancapistan
Registered: 2010-07-12
Posts: 2,810

Re: avoiding breakage of locally compiled packages upon system upgrade

If you just want a warning, you could put it in IgnorePkg:

$ sudo pacman -Syu
:: Synchronizing package databases...
...
:: Starting full system upgrade...
warning: ttf-inconsolata: ignoring package upgrade (20090215-5 => 20151221.480630d-1)
...

The downside is that the warning can be missed if eg you use VerbosePkgLists and there are a lot of packages to be upgraded. But it's bold and colored if you use Color.


But whether the Constitution really be one thing, or another, this much is certain - that it has either authorized such a government as we have had, or has been powerless to prevent it. In either case, it is unfit to exist.
-Lysander Spooner

Offline

#3 2015-12-24 20:05:59

mpan
Member
Registered: 2012-08-01
Posts: 1,208
Website

Re: avoiding breakage of locally compiled packages upon system upgrade

But the package does not depend on any particular version, so why should it state it does?


Sometimes I seem a bit harsh — don’t get offended too easily!

Offline

#4 2015-12-24 20:24:12

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,559

Re: avoiding breakage of locally compiled packages upon system upgrade

V01D wrote:

A better way would be to write a PKGBUILD so that a given dependency requires the the currently installed version of the corresponding package (e.g. if I have boost 1.59 installed, when I make the package the package will now have a =1.59 dependency). This would be a really good feature to have. Is this somehow possible currently? Is there any interest in this feature?

It's possible, but a huge PITA. When doing this, upgrading boost would require removing all AUR packages with that dependency, upgrading the system, then reinstalling said packages.

Offline

#5 2015-12-25 01:18:17

TheChickenMan
Member
From: United States
Registered: 2015-07-25
Posts: 354

Re: avoiding breakage of locally compiled packages upon system upgrade

That might be a nice suggestion for things pacman could track, which version of a dependent library a package was compiled against. Then it could warn when something needs to be recompiled. Doesn't gentoo's package manager offer something like this?


If quantum mechanics hasn't profoundly shocked you, you haven't understood it yet.
Niels Bohr

Offline

#6 2015-12-25 10:31:58

jjacky
Member
Registered: 2011-11-09
Posts: 347
Website

Re: avoiding breakage of locally compiled packages upon system upgrade

V01D wrote:

A better way would be to write a PKGBUILD so that a given dependency requires the the currently installed version of the corresponding package (e.g. if I have boost 1.59 installed, when I make the package the package will now have a =1.59 dependency). This would be a really good feature to have. Is this somehow possible currently? Is there any interest in this feature?

You could have your packages depend on a .so file, then makepkg tries to automatically append the version (see PKGBUILD(5) about depends array).

Scimmia wrote:

It's possible, but a huge PITA. When doing this, upgrading boost would require removing all AUR packages with that dependency, upgrading the system, then reinstalling said packages.

Well, that'd be one way of doing it. Another would be to simply use a custom/local repo, so when you see boost has been updated, you recompile every packages with the new version (all done in a clean chroot ofc) and add them to your local repo, then you can simply do a sysupgrade that will update everything.

Offline

Board footer

Powered by FluxBB