Many of the GNOME 40 Ports are using directories like 40/ instead of 3.X/ in the mirror directories. This change
will let us use both the 40/ and 3.X/ in tandem
Details
Diff Detail
- Repository
- rP FreeBSD ports repository
- Lint
No Lint Coverage - Unit
No Test Coverage - Build Status
Buildable 39521 Build 36410: arc lint + arc unit
Event Timeline
GNOME project upstream announced new versioning scheme back in September 2020. https://mail.gnome.org/archives/distributor-list/2020-September/msg00000.html
This change makes sense; this is the new default for GNOME components that are tied to the desktop, while allowing non-desktop libraries (glib, gtk, etc) to keep their previous versioning schemes. It does not make sense to use the subdirectory scheme GNOME/sources/${PORTNAME}/40 as was suggested before, not now or when more GNOME 40 ports land in the tree, as it creates technical debt.
@vishwin and @fluffy feel free to commit this on my behalf (just set "Neel Chauhan <nc@FreeBSD.org>" as the author).
If you don't want to I can commit, but I live in US/Pacific and worry that the portmgr will approve while I am sleeping. Some already-committed GNOME ports updated to 40.x need this change, otherwise they won't fetch.
Arrived here from: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256202
So I'm adding some positive feedback here, applying this patch appears to fix the ports tree :-).
Can you test locally that all the ports using MASTER_SITES=GNOME still fetch with this change?
For example, install ports-mgmt/distilator, run it for all of those ports before and after the change, and compare the output, to see if some ports are now not fetchable any more.
Oh, that's a cute pointer, didn't know distilator, thank you.
Did a thing to test this:
https://git.sr.ht/~evilham/freebsd-ports/commit/6a7609bcfa5ff3a402312afcc49f91fb2300b367
These are the results:
https://builds.sr.ht/~evilham/job/514735
There are 3 interesting steps for this diff, hopefully the names are self-explanatory:
- checkgnomewithout
- checkgnomewithpatch
- diffgnomedistilator
Particularly, this is the requested diff: https://yui.runners.sr.ht/logs/514735/diffgnomedistilator/log
You probably need to sort the output of distillator, it is somewhat multi-thread and will output results as they come, which means its output is non reproducible, so, sort.
I have a sorted log (based on @github_evilham.com's output): http://misc.neelc.org/sorted_log
Oh, true. Good thing sr.ht saves the output for each step :-).
I guess this is equivalent
curl -L http://yui.runners.sr.ht/logs/514735/checkgnomewithout/log | sort > without.patch curl -L http://yui.runners.sr.ht/logs/514735/checkgnomewithpatch/log | sort > with.patch diff -u without.patch with.patch
Ok, let's take a step back.
Framework changes change the framework, they affect all ports.
When working on a framework update, it is the duty of the one working on the update to make sure all ports still work afterwards.
During the review process of framework changes, reviewers will often think of things you did not think about, and ask you to check stuff.
In this case, the easiest would be use distilator to figure out if a port that used to fetch does not fetch any more.
While I asked for you to use distillator to figure out if stuff would get broken, it was so that you would do the figuring out, I personnaly don't need to see the logs, diffs or such, they are means to help you figure out if stuff need to be fixed.
So, as you are changing the MASTER_SITE of many ports, things that you are looking for are ports that:
- don't fetch any more from GNOME, and need to be fixed after this change.
- use some version of GNOME/source/... that can be simplified to simply GNOME after this change.
If there are any ports in those two categories, then you must provide patches for them, easiest way is to add them in this review, so that they can be reviewed too.
x11-fonts/cantarell-fonts failed to fetch with this syntax, since it resolved to sources/cantarell-fonts/0/cantarell-fonts-0.301.txz. Casual reminder that libraries and other items that are not directly "the desktop" can keep their existing versioning schemes.