Page MenuHomeFreeBSD

got-0.86
Needs ReviewPublic

Authored by jreynolds1729_gmail.com on Apr 8 2023, 11:01 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Apr 25, 10:24 PM
Unknown Object (File)
Thu, Apr 25, 10:24 PM
Unknown Object (File)
Thu, Apr 25, 10:24 PM
Unknown Object (File)
Thu, Apr 25, 10:24 PM
Unknown Object (File)
Apr 18 2024, 4:42 PM
Unknown Object (File)
Apr 16 2024, 6:33 AM
Unknown Object (File)
Dec 20 2023, 2:13 AM
Unknown Object (File)
Dec 16 2023, 5:21 PM
Subscribers

Details

Reviewers
emaste
Group Reviewers
portmgr
Summary

Repository manager

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 50811
Build 47702: arc lint + arc unit

Event Timeline

  • mounted() update pattern to match anything between parenthesis

Updating D39472: Ports tree bootstrap tool using git. The program downloads required

source from https://cgit.freebsd.org/ports/plain/ and installs git.
It then uses the newly installed git to clone the ports tree repository.

  • mounted() update pattern to match anything between parenthesis

Updating D39472: Ports tree bootstrap tool using git. The program downloads required

source from https://cgit.freebsd.org/ports/plain/ and installs git.
It then uses the newly installed git to clone the ports tree repository.

what advantages does this have over pkg add git?
Or even the following to get the sources and build it (for some tag that may or may not be master):
% fetch https://github.com/git/git/archive/refs/heads/master.zip
% tar xvf master.zip
% cd git-master
% make

and then use that git, uninstalled, to clone the FreeBSD ports repo?

bofh retitled this revision from Ports tree bootstrap tool using git. The program downloads required source from https://cgit.freebsd.org/ports/plain/ and installs git. It then uses the newly installed git to clone the ports tree repository. to Ports tree bootstrap tool using git. The program downloads requiredsource from https://cgit.freebsd.org/ports/plain/ and installs git.It then uses the newly installed git to clone the ports tree repository..Apr 9 2023, 5:25 PM
bofh added reviewers: portmgr, emaste.
bofh added a subscriber: bofh.

@emaste @imp Does anyone have any updates of getting got into base? From the presentation of EuroBSDCON it looked like got was production ready as a client.

Importing got is also an option. It lacks https:// support, though. It's syntax and defaults differ from the normal git client.
However, the repos are 100% git compatible, so you can switch back and forth between them.
@emaste: maybe that's how we cope here: just import got?
My experience with got is limited, but does seem to be able to clone FreeBSD/src and FreeBSD/ports w/o hassle. I've not 100% checked or verified the resulting trees are the same for everything that matters.
I'm not sure what got.conf, the only visible difference I could see, would do to our builds, etc.
Worth the risk, imho.

I realise I wanted to do too many things at once. The main goal was to have a tool in base that could be able to work with the current ports tree managment. I also had in mind to allow a user to build only one or more port(s) with custom options without having to download/keep the hole ports tree (not implemented but the core functions are there). Anyway, I looked at got and it is the appropriate tool in my opinion.

I realise I wanted to do too many things at once. The main goal was to have a tool in base that could be able to work with the current ports tree managment. I also had in mind to allow a user to build only one or more port(s) with custom options without having to download/keep the hole ports tree (not implemented but the core functions are there). Anyway, I looked at got and it is the appropriate tool in my opinion.

I would like to discuss briefly why this will not be accepted in the base tree:

  1. portmgr@ actually discourages usage of ports tree for building ports at end users. Either use binary pkgs or use a poudriere setup to make custom OPTIONS ports for yourself.
  2. Why? Because binary pkg upgrades are well tested. In addition to that there are fewer chances of a broken ports tree dangling in between the systems. In poudriere you can get to know like whether if there are any ports broken before someone wants to upgrade the system. Which is not the case for portmaster or other methods of portsupgrade.
  3. When someone is choosing off the beaten path of ports building rather than poudriere building they should be aware about what they are signing up for. However that is not the case at all. There are more bugs reported for ports tree which is the cause of a broken tree on the end users system rather than an actual issue with the tree. However this really affects the time for the committers and is counter productive for them.
  4. Partial ports tree is not at all something supported by the portmgr@ and never encouraged. Again if someone wants a hack for themselves that is totally upto them and they should be aware of what they are signing up for. And as said as this is not at all encouraged by portmgr@ neither this script will land into base as this will eventually mean that portmgr@ is encouraging partial ports tree which is not correct from the portmgr.

After the evolution of git in our Project undoubtedly we need a solution to bootstrap src and ports tree using git but as git is LICENSED not in favor of our Project we will need to look at it from a different angle and come up with a solution to have a git client to get the ports tree.

However thanks for your work and hacks.

jreynolds1729_gmail.com retitled this revision from Ports tree bootstrap tool using git. The program downloads requiredsource from https://cgit.freebsd.org/ports/plain/ and installs git.It then uses the newly installed git to clone the ports tree repository. to got-0.86.Apr 11 2023, 3:56 PM
jreynolds1729_gmail.com edited the summary of this revision. (Show Details)

I understand. Thank you for your concern.

As you may have noticed, I was ready to update the review with got-0.86. I prepared the source with the got command only. It is a bit slow in comparaison to git but accomplishes the job.
Should I update it?

I understand. Thank you for your concern.

As you may have noticed, I was ready to update the review with got-0.86. I prepared the source with the got command only. It is a bit slow in comparaison to git but accomplishes the job.
Should I update it?

As mentioned in my comment about point 4 if it is trying to accomplish installing git using partial ports tree then it really doesn't matter whether if you are using git or got but that will not allow this script to land in the base.

And truly speaking, now I really don't understand the exact purpose of this script compared to a pkg install git-lite and git clone and then install whatever you like to do with the ports tree. I think you should read my previous comments again.

Sorry if I misspoke, I meant got itself not my script. (I) ported got-0.86 sources in /usr/src/contrib. and I use those to build /usr/bin/got and some requirements in /usr/libexec/got/.