Page MenuHomeFreeBSD

devel/arcanist: Add slave to avoid conflicting with archivers/arc
ClosedPublic

Authored by crees on Apr 16 2019, 9:11 AM.
Tags
None
Referenced Files
F106044787: D19920.diff
Tue, Dec 24, 10:13 AM
Unknown Object (File)
Sat, Dec 21, 4:10 PM
Unknown Object (File)
Fri, Dec 20, 2:42 PM
Unknown Object (File)
Fri, Dec 20, 2:22 PM
Unknown Object (File)
Fri, Dec 20, 2:11 PM
Unknown Object (File)
Fri, Dec 20, 1:56 PM
Unknown Object (File)
Wed, Dec 18, 10:07 PM
Unknown Object (File)
Sun, Dec 8, 10:14 PM
Subscribers

Details

Summary

archivers/arc predates arcanist by decades, and security/clamav installs it by default, which causes a conflict with arcanist. Not installing the symlink solves this problem, and making an alias for arc in shell configuration gives a useful solution, given that it's unlikely that archivers/arc is useful in any interactive session.

Test Plan

I have installed this flavour and it works fine. Package creation and orphans work well

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 23875
Build 22805: arc lint + arc unit

Event Timeline

Just realised, the CONFLICTS line should have [0-9] in it.

Nope, CONFLICTS has changed its behaviour, so remove the globs entirely.

grembo requested changes to this revision.Apr 16 2019, 11:52 AM

I like the idea of this - unfortunately this approach kills the existing flavours:

# pkg search arcanist
arcanist-php71-20181231_1      Command line interface for Phabricator
arcanist-php72-20181231_1      Command line interface for Phabricator
arcanist-php73-20181231_1      Command line interface for Phabricator

After applying the patch, building those flavours isn't possible any more:

# poudriere testport -j112amd64 -p builder devel/arcanist@php71
[00:00:00] Creating the reference jail... done
[00:00:01] Mounting system devices for 112amd64-builder
[00:00:01] Mounting ports/packages/distfiles
[00:00:01] Using packages from previously failed build
[00:00:01] Mounting packages from: /usr/local/poudriere/data/packages/112amd64-builder
[00:00:01] Copying /var/db/ports from: /usr/local/etc/poudriere.d/112amd64-builder-options  
/etc/resolv.conf -> /usr/local/poudriere/data/.m/112amd64-builder/ref/etc/resolv.conf
[00:00:01] Starting jail 112amd64-builder
[00:00:01] Ports supports: FLAVORS SELECTED_OPTIONS
[00:00:02] Error: Invalid FLAVOR 'php71' for devel/arcanist
[00:00:02] Cleaning up
[00:00:02] Unmounting file systems

An alternative approach would be to create a meta port that only does the symlink (thus, splitting the port in two) - similar to what lang/python2 does.

This revision now requires changes to proceed.Apr 16 2019, 11:52 AM

Yeah, I wondered what would happen about the php flavours :(

I'll look into the meta port idea, seems a good one! Or perhaps just a slave? They'll have the same effect.

Yeah, I wondered what would happen about the php flavours :(

I'll look into the meta port idea, seems a good one! Or perhaps just a slave? They'll have the same effect.

Just make sure to take the fact that devel/phabricator also depends on devel/arcanist into account.

So, assuming that phabricator doesn't need the arc binary in PATH (something to be verified), we would ideally have a port devel/arcanist-dep (or maybe a better name), which phabricator can depend on and a port called devel/arcanist, which also depends on arcanist-dep(/base/whatever) and brings in the symlink. So "normal" users would be able to install arcanist by calling pkg install arcanist.

You are trying to coerce subpackages into flavors, so no.

linimon retitled this revision from Add flavour to avoid conflicting with archivers/arc to devel/arcanist: Add flavour to avoid conflicting with archivers/arc.Apr 19 2019, 4:57 PM

Create slave port -lib to install everything except the symlink, and change devel/arcanist to only install the bin symlink

I think this does as expected. My poudriere instance is currently out of order, so I'm not able to test it yet, but is there anything you'd like to change about this before I get testing?

crees retitled this revision from devel/arcanist: Add flavour to avoid conflicting with archivers/arc to devel/arcanist: Add slave to avoid conflicting with archivers/arc.Apr 25 2019, 12:39 AM

NO_FETCH isn't actually a thing of course.

mat requested changes to this revision.Apr 30 2019, 1:52 PM

Could you please not rename the port so that pkg upgrade keeps on working.

This revision now requires changes to proceed.Apr 30 2019, 1:52 PM
In D19920#432640, @mat wrote:

Could you please not rename the port so that pkg upgrade keeps on working.

Mmm, I just saw that the SLAVE_PKGNAMESUFFIX was only set in the "lib" case.

devel/arcanist-lib/Makefile
45

Instead of this, globally set:

PLIST=  ${.CURDIR}/pkg-plist
53

Could you please use ${RLN} instead of ${LN} -sf.

In D19920#432741, @mat wrote:
In D19920#432640, @mat wrote:

Could you please not rename the port so that pkg upgrade keeps on working.

Mmm, I just saw that the SLAVE_PKGNAMESUFFIX was only set in the "lib" case.

@mat Not sure if you received my email that described that (no feedback)

Anyway, besides what @mat said (setting PLIST) I would prefer to to simplify the structure a bit (less details about devel/arcanist in the master port), but frankly, I could also do these changes later on myself as the maintainer, as they're non-functional.

@crees I'm grateful you picked this one up, thanks!

OK, Mat's feedback incorporated.

Hope this is OK now?

Assuming this builds correctly in poudriere (didn't test myself). Thanks!

Would be great to do automatic poudriere runs using harbormaster for reviews of ports.

This revision is now accepted and ready to land.May 13 2019, 11:09 AM
This revision was automatically updated to reflect the committed changes.