I would like to learn a few things about building the Gnome Desktop Environment from the source code on a non-GUI Linux computer; but I couldn’t manage to find clear instructions about the exact procedure on the official documentation…
Thus, could some experienced developer explain me:
What exactly are the essential packages to build in order to have a minimal Gnome installation (e.g: mutter, gnome-shell, etc).
In what order to build them (a dependency graph or something like that).
The precise component list and order is specified in the Buildstream recipes. The GNOME release team, which is the team responsible for determining the components of GNOME and releasing the overall project from each component’s release archives, encodes the information into those recipes, so the contents of gnome-build-meta are as official as you can get.
It’s your job to figure out required dependencies for each project and the order in which to build them. You can get hints from the buildstream elements (and buildstream would do it in the correct order for you).
You’re missing a lot. For a complete definition of GNOME core, you’ll need to build core.bst and everything that it depends on. It should be something between 200-300 different projects.
It sounds like you’re sort of defining your own idea of what “core” is, as an interpretation of “minimal”. You have Nautilus but not Yelp, and Evince but not GNOME Text Editor, for example. You’re also missing some obvious ones like gnome-dekstop-schemas, I guess because you’re drawing your own line between core and the parts of the SDK it depends on.
As Michael said, there should be quite a few more packages there. If you’re defining your own interpretation of “core”, you’ll have a hard time getting an “official” definition.
Yes you’re right in both sentences: I should have defined more precisely what I mean by “core” and I draw a --subjective- line between what I consider to be “SDK” (things I don’t want to build, gsettings-desktop-schemas is among them), and things I want to build myself.
Basically I say “core” as the relative minimal packages/libraries that needs to be present on the system to have GDM and Gnome “boot”…
Notwithstanding the dependencies, if I manage to build the packages from the list above successfully, theorically will Gnome be able to start normally?
The things expressed in the various recipes are not there because people like to add random projects to a build: it’s because GNOME, as defined by the entity responsible, requires all those dependencies. The projects listed in core require the sdk to build, plus the additional dependencies in core-deps and sdk-deps.
I think you misunderstood my quote: of course I wasn’t expecting to be able to omit dependencies, I meant I would not want to build them myself and instead relying on installing them through my package manager.
Given that, when I finished building everything I said above, would Gnome work?
Possibly. Make sure to pick software versions that correspond to the versions of packages shipped by your distro. E.g. if your distro ships GNOME 44, you’re not going to be successful trying to build GNOME 45 using dependencies from GNOME 44 .