Page MenuHomeFreeBSD

Needs ReviewPublic

Authored by nc on May 27 2021, 8:06 PM.


Group Reviewers

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

Diff Detail

rP FreeBSD ports repository
No Linters Available
No Unit Test Coverage
Build Status
Buildable 39521
Build 36410: arc lint + arc unit

Event Timeline

nc requested review of this revision.May 27 2021, 8:06 PM

GNOME project upstream announced new versioning scheme back in September 2020.

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 <>" 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:

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:

These are the results:

There are 3 interesting steps for this diff, hopefully the names are self-explanatory:

  • checkgnomewithout
  • checkgnomewithpatch
  • diffgnomedistilator

Particularly, this is the requested diff:

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.

Oh, true. Good thing saves the output for each step :-).

I guess this is equivalent

curl -L | sort > without.patch
curl -L | 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.