gegl issue when doing rev-update

Ryan Schmidt ryandesign at macports.org
Mon Nov 12 19:04:17 UTC 2018



On Nov 12, 2018, at 11:24, Riccardo Mottola wrote:

>>> If I try to uninstall gegl:
>>> $ sudo port uninstall gegl
>>> Note: It is not recommended to uninstall/deactivate a port that has 
>>> dependents as it breaks the dependents.
>>> The following ports will break: gimp2 @2.8.22_2
>> 
>>> I wonder if it is correct and ig gimp2 is using gegl-0.4 or generic "gegl" 
>>> and by that the 0.2 version.
>> 
>> It might be. That's an obsolete version of Gimp, so maybe it needs an 
>> obsolete GEGL. That doesn't make much sense if you also have a newer version 
>> of GEGL, since the two are intimately connected and the only other port that 
>> requires GEGL is 'gnome-photos' and it currently requires 'gegl-0.3' 
>> specifically.
>> 
>> If you update to the current version of the 'gimp' port (or of 'gimp2' if you 
>> don't have the 'gimp' meta-port installed) you will get the latest version of 
>> the 'gegl-0.4' port installed as a dependency.
>> 
>>> Is this actually the expected situation? I would have thought I could have 
>>> older versions, but they should be versioned and that only latest would 
>>> have no version.
>> 
>> No, that's not how it works. You cannot rely on the current ports tree always 
>> following that rule in all cases. This is particularly true for libraries 
>> that are being actively developed, because some dependents may not work with 
>> the latest version of the library while others are updated to require it.
>> 
>> To fix this, you should update your ports tree ('port sync' or 'port 
>> selfupdate') and then 'gimp' (or 'gimp2' if you don't have the 'gimp' 
>> meta-port installed) and 'port reclaim' when finished to clean up any of the 
>> old useless versions.
> 
> 
> That is a hint. I am running gimp 2.10 actually! I even helped with a patch to have it on 10.6 !
> 
> So I never did run port reclaim, because I never had issues with old ports and actually it was handy to restore some older version of gimp when it did not work.
> 
> Reclaim goes on scanning, definitely removed lots of old gimp stuff:
> 
> 
> --->  Uninstalling gimp @2.8.22_0+quartz
> --->  Uninstalling gimp @2.10.0_0+quartz
> --->  Uninstalling gimp @2.10.2_0+quartz
> 
> --->  Uninstalling gimp2 @2.8.22_2+python27+quartz
> --->  Uninstalling gimp2 @2.10.0_0+python27+quartz
> --->  Uninstalling gimp2 @2.10.2_0+python27+quartz
> --->  Uninstalling gimp2 @2.10.2_1+python27+quartz
> --->  Uninstalling gimp2 @2.10.6_0+python27+quartz
> --->  Uninstalling gimp2 @2.10.6_1+python27+quartz
> --->  Uninstalling gimp2 @2.10.6_2+python27+quartz
> 
> 
> however… when it ends it says:
> 
> --->  Uninstalling curl-ca-bundle @7.61.1_3
> --->  Building list of distfiles still in use
>      [                                        ]  86.8 %Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
> --->  Searching for unused distfiles                     
> Found 57 files (total 350.60 MiB) that are no longer needed and can be deleted.
> [l]ist/[d]elete/[K]eep: d  		
> Deleting...
> This appears to be the first time you have run 'port reclaim'. Would you like to be reminded to run it every two weeks? [Y/n]: n
> Reminders disabled. Run 'port reclaim --enable-reminders' to enable.
> --->  Scanning binaries for linking errors
> --->  Found 12 broken files, matching files to ports     
> Warning: No port gegl found in the index; can't rebuild
> --->  Broken files found, but all associated ports are not in the index and so cannot be rebuilt.
> 
> I did rerum reclaim, it pruged further stuff and eventually gave no gegl error!
> 
> 
> However, I could now uninstall gegl without getting dependency errors. I suppose the issue is "fine" now?
> 
> I did not know that the check for broken packages would run also on "inactive" ports, this can be quite tricky, perhaps this caused more than some rebuilds for me in the past?
> 
> I still get
> 
> --->  Building list of distfiles still in use
>      [                                        ]  85.1 %Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
> 
> but, fine >(

Great, then you've solved the problem, and there was no bug.

You couldn't uninstall gegl, because an old version of gimp2 which you still had installed depended on it.

The check for broken packages only applies to active ports. rev-upgrade correctly reported that your active port gegl was broken, for whatever reason, but it couldn't be rebuilt because gegl was deliberately removed from the ports tree, because nothing current needed it anymore.

The correct solution was to uninstall gegl and the old gimp2 that depended on it, which you did by running reclaim.

The unsupported compiler warning unfortunately didn't tell us what port it applies to, but since you weren't trying to build a port at the time you can ignore it.

We also have a bug at this time that that message is sometimes displayed when it is not accurate, since a port will sometimes subsequently still build successfully. IIRC this is seen primarily (only?) on 10.8 and earlier systems with ports that use C++11 or later. We should investigate and fix that. But the situation might be different or fixed if we merge the refined compiler selection PR, so we should focus on that first, then retest. https://github.com/macports/macports-base/pull/88



More information about the macports-users mailing list