Solved Is a base system replacement for bootstrapping ports being created?

It's been one year since the portsnap deprecation announcement. I understand that the current non-deprecated method to bootstrapping ports is to install the net/gitup package and run gitup ports. I haven't see any mention of a user-friendly base system method to bootstrap the ports tree. Is anyone aware of work on a replacement in the base system for portsnap?
 
Doesn't pkg install gitup work? I started with a fresh 13.0 install on a machine and went straight to pkg install vim and that sorted out pkg for me - so it might work for gitup as well.
 
Yes, in the mean time 13.0 was released and it still has portsnap(8). So don't expect this to be removed any time soon, it's likely going to be 14.0 at the earliest.

I haven't see any mention of a user-friendly base system method to bootstrap the ports tree. Is anyone aware of work on a replacement in the base system for portsnap?
Hopefully, when development has been finished on it, gitup can be added to the base system. But at the moment there's still a lot of work being done on it.
 
Doesn't pkg install gitup work? I started with a fresh 13.0 install on a machine and went straight to pkg install vim and that sorted out pkg for me - so it might work for gitup as well.
Well yes, you can always install extra packages. I believe the OP seemed interested in using ports via just the "base" install.

That said, since gitup seems to be the way FreeBSD is going (and may end up in base), your solution is perhaps the most correct at the moment.
 
The following excerpt is from FreeBSD Quarterly Status Report - Second Quarter 2021
Code:
Git Migration Working Group
...


The Git Working Group continues to track progress on two permissively-licensed git
compatible tools: Gitup and Game of Trees. Gitup is a small, dependency-free tool to clone
and update git repositories. It is used only to keep a local tree up-to-date, and has no
support for local commits.

Game of Trees is a version control client that is compatible with Git repositories. It provides
a user interface and workflow that is distinct from that of Git. It is in no way intended to be
a drop-in replacement for git, but can be used to develop software maintained in a Git
repository.

Gitup and Game of Trees are currently available as ports and packages. Future work will
evaluate them as candidates for the base system.
 
Yes, in the mean time 13.0 was released and it still has portsnap(8). So don't expect this to be removed any time soon, it's likely going to be 14.0 at the earliest.


Hopefully, when development has been finished on it, gitup can be added to the base system. But at the moment there's still a lot of work being done on it.
Great info, thanks. IIRC, gitup can be configured for different branches whereas portsnap only synced to the main branch, yes?
 
gitup can be configured for different branches whereas portsnap only synced to the main branch, yes?
Yes. It comes pre-configured for it so you don't even have to track the different git branches (2021Q1, 2021Q2, etc), just gitup quarterly.
 
FYI, for everybody that replied, I found this message on the freebsd-ports mailing list and did some experimenting to find that the most recent snapshot of the MAIN ports branch can be downloaded here:


You can replace "main" with any branch (e.g.: 2021Q3) or tag (release/13.0.0) to download tarballs for those snapshots.

CAUTION: https://download.freebsd.org/ftp/ports/ports/ and mirrors are FOUR MONTHS OUT OF DATE! I would definitely avoid using it anymore.

Edit: untar the download with tar -xf main.tar.gz --strip-components 1 -C /usr/ports replace 2021Q3 with the name of the branch you downloaded. --strip components is to remove the top level directory in the tarball and -C is to make sure it goes in the right destination.
 
Last edited:
Yes. It comes pre-configured for it so you don't even have to track the different git branches (2021Q1, 2021Q2, etc), just gitup quarterly.
Sweet! that's pretty much exactly what I'd like to see. I've been very puzzled why the default since 10.2 is for "main" ports and "quarterly" packages. This seems like it will make mixing and matching in a pinch a lot easier and safer. Thanks!
 
Uh ... this file hasn't been updated since April 1, 2021. I think the project may need to make some infrastructure updates.
Oooh, I thought when you mentioned you wanted a ports snapshot, you wanted one very out of date. Please be more clear in future! :p

/jk, my mistake. I thought that was more recent!

Cheers for letting me know. I will update my post, in case anyone else reads that and I send them on a wild goose chase!

Looking at something a bit newer. You could perhaps grab the one off GitHub (https://github.com/freebsd/freebsd-ports)

$ fetch https://github.com/freebsd/freebsd-ports/archive/refs/heads/main.tar.gz

This is quite nice because if you check out their branches, you can grab the one for each quarter which I think corresponds with the packages. So I *think* you could safely mix the ports built from these snapshots with the respective quarterly package repos. At the very least they are deterministic.
 
I've asked repeatedly for this to be fixed. I've asked again. Hopefully it'll get done this time. Sorry.
Some good news for you. cgit.freebsd.org has snapshots of the base system and ports for each branch and release.

Here are my instructions for ports .

The CURRENT base system can be downloaded with fetch https://cgit.freebsd.org/src/snapshot/main.tar.gz and then untar it with tar -xf main.tar.gz --strip-components 1 -C /usr/src. ( --strip-components removes directories above the src tree. Without it, you'll extract the tree into a directory named "main")

You can replace main in the fetch command with any branch (e.g.: stable/13, releng/12.2). Just replace "main" in the extraction with the base name of the downloaded branch (e.g.: 13 for stable/13 or 12.2 for releng/12.2) and change --strip-components 1 to --strip-components 2.

EDIT: Correction and clarification on using other branches besides CURRENT/main.
Thanks, grahamperrin for catching an error in my original post.
 
Last edited:
I
Yes, in the mean time 13.0 was released and it still has portsnap(8). So don't expect this to be removed any time soon, it's likely going to be 14.0 at the earliest.
That's what I wanted to hear.

portsnap works for me on a daily basis and will continue at least another year, so no change to my tutorial or time reinforced habits til portsnap fetch update returns a command not found error.
 
Back
Top