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.
Details
- Reviewers
grembo - Commits
- rP501749: devel/arcanist: Split into arcanist-lib and arcanist.
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 23881 Build 22811: arc lint + arc unit
Event Timeline
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.
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.
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?
Poudriere builds both no problem:
https://www.bayofrum.net/pkg/120amd64-system/2019-04-25_01h02m55s/build.html
@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!
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.