Using Quarterly Ports Branches

Chris Wells freebsd at chriswells.io
Sat Mar 4 01:01:18 UTC 2017



On 03/03/17 05:09, Mathieu Arnold wrote:
>
> Currently, all our tools working automatically with the quarterly
> branches do this before any run:
>
> latest_branch=$(svn ls https://svn.freebsd.org/ports/branches/|sed -ne
> '/^2.*Q./s|/$||p'|tail -1)
>
> All you'd need to do before running svn update would be to run:
>
> svn switch ^/branches/$(svn ls
> https://svn.freebsd.org/ports/branches/|sed -ne '/^2.*Q./s|/$||p'|tail -1)
>
> and it would automagically switch to the new branch when a new branch
> happens.
>

Thank you!  At least I can create a script to update ports.  That solves 
the problem for me.

>> If the symlink would work and easy enough to manage, it would be a
>> great portsnap default in the base system to match pkg. The icing on
>> the cake would be a persistent local setting to tell portsnap what
>> branch to use so the commands to fetch/update the ports tree are
>> consistent whether using HEAD or a branch.
>
> The problems with symbolic links, is that they do not work on all
> filesystems.
>

I've never managed an SVN server, so please forgive my ignorance.  If a 
symlink can't (always) be created on the server side, maybe an Apache 
alias or a rewrite could be used.  It sounds like an SVN external might 
serve a similar purpose on the SVN side:

http://svnbook.red-bean.com/en/1.7/svn.advanced.externals.html

The goal would be to both simplify the pkg/ports management process and 
reduce the learning curve for new users.  Imagine never having used 
FreeBSD before (or even SVN!) and needing to learn that pkg pointed to 
"latest" builds from HEAD of the ports tree, but the default for pkg is 
to use "quarterly" which points to whatever is the current quarterly 
branch with a naming convention of YYYYQ#.  If you use ports, you can't 
use them by default unless you change pkg to latest so it builds from 
HEAD.  You could use SVN to get a quarterly ports tree instead, but then 
you have to use a tool other than portsnap.  I'm sure you can see the 
frustration a new user would have, and that's just to manage software on 
the system.

It would be nice to have some consistency at a minimum in the 
terminology/settings.  For example, having a latest and quarterly SVN 
external (?) in the ports tree so "SVN" doesn't have to come up in the 
conversation about managing packages and ports: we could have a config 
property for portsnap set to "quarterly" by default so it "just works" 
no matter what month and year it is today.  Alternatively, both pkg and 
portsnap could use the same CURRENT/STABLE labels as the base system 
rather than latest/quarterly so all 3 make sense once you learn the 
terminology.

No pressure here.  I'm 110% sure you guys are all very busy already, but 
the back and forth in the following thread sparked the idea for me and I 
thought it was worth mentioning:

https://forums.freebsd.org/threads/49694/

Chris


More information about the freebsd-ports mailing list