# freebsd 13.0 get ports tree



## bagas (Jul 31, 2021)

Hello.
After installing system 13.0, further strange in my opinion.
We use portsnap to get the ports tree, then install git.
Next, delete the entire ports tree and get a new one with git.
And if you add gitup or an analogue to the distribution kit to get ports?


----------



## Tieks (Jul 31, 2021)

bagas said:
			
		

> And if you add gitup or an analogue to the distribution kit



Git is not part of of FreeBSD, hence has to be installed either from ports or as a package. If you didn't install ports during installation, you can install the git package directly without having to use portsnap. See the handbook.


----------



## mtu (Jul 31, 2021)

It's a known problem that the base system is unable to fetch an up-to-date ports tree: PR 254856

Nobody seems to be in a hurry to do anything about it.


----------



## bagas (Jul 31, 2021)

All this is illogical.
Why then the admin / custom version of the ports tree was translated to git?
Would have done only for the developers of the git.
After all, for admins / users in 99% of the case, ports are needed only for installing software, and not for testing different branches.


----------



## mtu (Jul 31, 2021)

bagas said:


> All this is illogical.
> Why then the admin / custom version of the ports tree was translated to git?
> Would have done only for the developers of the git.
> After all, for admins / users in 99% of the case, ports are needed only for installing software, and not for testing different branches.


I absolutely agree. My interpretation is that the needs and comfort of the developers was deemed more important than the admin/user perspective.


----------



## Geezer (Aug 1, 2021)

I don't think it is a big thing. Just install git from pkg and then get the ports.

It actually takes less time than portsnap.


----------



## richardtoohey2 (Aug 1, 2021)

I think just in a state of flux at the moment.

portsnap still works (but might be gone by 14.0) or you can use gitup - you don’t need git.


----------



## bagas (Aug 1, 2021)

richardtoohey2 said:


> I think just in a state of flux at the moment.
> 
> portsnap still works (but might be gone by 14.0) or you can use gitup - you don’t need git.


I am aware of gitup.
Can initially add it to the 13.0 distribution kit?
Why unnecessary actions with the tree ports, download / delete / download !?


----------



## mer (Aug 1, 2021)

bagas said:


> I am aware of gitup.
> Can initially add it to the 13.0 distribution kit?
> Why unnecessary actions with the tree ports, download / delete / download !?


A reason that I can see is "Not everyone wants to use the ports tree or build things from source".
If you are "just using" the system, binary  packages, freebsd-update and pkg upgrade work just fine and one would never need to install git/gitup/anything else.

If you are interested in looking at source, maybe maintaining a port or investigating a problem, then you probably already know to install the tools/source you need.

"Could it be added to a distribution?"  Sure, but is it needed in a distribution?  There used to be similar arguments when CVS was being used and even when the switch was to Subversion was done.

A ports tree is not needed to install software unless you want different options/configuration than the defaults.


----------



## zirias@ (Aug 1, 2021)

mtu said:


> It's a known problem that the base system is unable to fetch an up-to-date ports tree: PR 254856
> 
> Nobody seems to be in a hurry to do anything about it.


That's not true, probably someone should close this PR (or maybe it's left open because somehow supporting GIT in base is wanted for the future). Anyways, the portsnap backend works with GIT for quite a while now.

Portsnap snapshots were never perfectly "up to date", but pretty close, this didn't change. The idea to remove portsnap (for many reasons, the most important one being it never supported the "quarterly" ports) exists, but that's kind of unrelated. As of 13, portsnap is still supported.



bagas said:


> Next, delete the entire ports tree and get a new one with git.


Well, if you don't want to actually use GIT (there are reasons you might want to), this step is unnecessary. Just continue to use portsnap if you're fine with it.

*edit:* claims that you *need* git (or gitup) are from the short time after 13.0-RELEASE when the portsnap backend wasn't adapted to GIT yet. Back then, they were true. And just for completeness, it's not related to 13 at all, the timing was just coincidence – ports are independent from base system releases, so all this applied to users of 11 or 12 as well.

The situation for getting/updating your ports tree ist mostly the same as it was with SVN: You still either just use portsnap, or you get it directly from the source repository. The only difference is that for the latter option, there's `svnlite` in base, while there is no such tool for GIT. It doesn't matter as long as you use portsnap. Even if portsnap would be gone in 14, I personally don't think GIT support in base is needed, as you can always install an initial ports tree from your installation media and build/install git from there. But I guess that's still an open discussion, one possible solution could also be to e.g. include gitup in base.


----------

