On Sunday, October 8, 2017 at 6:23:33 AM UTC-5, kraileth wrote:
I did this for a simple reason: I'm trying to eventually introduce Ravenports in the company that I'm working for. Most of the other admins do not share my passion for *BSD. They know how to use Pkg, though. Different package names should not be too much of a problem but in general I'd like to keep things as they are as much as possible. Now with zstd implemented, I don't have a choice in that regard, anyway (execpt FreeBSD is going to adopt the changes, that is. Allan Jude mentioned that he'd be interested in getting zstd compression an option for ZFS - probably there's also interest in pulling it in for mainline Pkg?).
I would guess FreeBSD is not going to take my modifications to package for 2 reasons:
1) They have a long-term plan to remove libarchive and create a new package format, and then use zstd directly to compress packages. That is probably a year away, but it is a superior approach. When that modification is released, Ravenports will likely adopt it (which is not only better performance, it's less linkage and I can drop the custom patches).
2) the "repo" command is hard coded to .txz format. You can't modify it. Since they aren't going to drop txz before (1) happens, they can't adopt my patches unless they also fix the "repo" command to allow the package format to be something other than "txz". (which means all the other support formats are useless, meaning libarchive is mostly useless)
Somebody else already asked about changing localbase to something else outside of /raven. I read your answer that this requires rebuilding the whole Ravenports infrastructure and is not an easy thing to do. It's not very high priority, but in the long run I'd like to take a look at setting it to /usr/local so that Ravenports is getting much closer to a drop-in replacement for FreeBSD packages. For the time being I'm going to "cheat" by symlinking /usr/local/bin -> /raven/bin, /usr/local/sbin -> /raven/sbin and /usr/local/etc -> /raven/etc and so on.
I wouldn't advise this. Even if you take care of the linking issue by using symlinks instead of /bin/mv, the config files are still looked for at /raven/etc.
I wouldn't say relocating the localbase is a particularly hard thing to do either. I haven't done it myself (so there may be a gotcha) but basically it's just starting with an empty package set, then rebuilding the ravensys-root:* package, the gcc7 package, then the ravensys-toolchain package with the new localbase). Then you install them, use another empty package directory and rebuild all the needed packages.
But you are doomed to building your own packages always at that point.
And you lose the option to use freebsd packages simultaneously with ravenports. Currently they can coexist.
Don't forget third-party vendors also like to use /usr/local,
I'll be starting over with a clean system and rebuilding my repo. Looking forward to working with the new zstd archives!
They make a huge difference for a package builder.
llvm40 build time dropped about 50 minutes. Instead of taking 52 minutes or so to compress packages, zstd did it in about 90 seconds. The packages are bigger (maybe 25%) but that just means compression drops from 7.5% to 10%. (using general numbers, every package is different of course). The bigger packages are well worth the speed increases for the builder and even the user (they unpack a bit faster than xz)