Improve README instructions
Closed this issue · 3 comments
Sorry if I am mistaken but I think..
That when building new versions of hyprland
Should be enough to create masterdir with new name
(You can have as many as you want)
Then your builds will be separated from each other
(Same as is done for different architectures)
or this could help with that (taken from ./xbps-src -h)
remove-autodeps
Removes all package dependencies that were installed automatically.
purge-distfiles
Removes all obsolete distfiles in /sources.
-H
Absolute path to a directory to be bind mounted at /host.
The host directory stores binary packages, sources and package dependencies
downloaded from remote repositories.
If unset defaults to void-packages/hostdir.
-m
Absolute path to a directory to be used as masterdir.
The masterdir is the main directory to build/store/compile packages.
If unset defaults to void-packages/masterdir-.
-t
Create a temporary masterdir to not pollute the current one. Note that
the existing masterdir must be fully populated with binary-bootstrap first.
Once the target has finished, this temporary masterdir will be removed.
This flag requires xbps-uchroot(1), and won't work on filesystems that don't
support overlayfs.
If nothing else works then
zap
Removes a masterdir but preserving ccache, distcc and host directories.
I'm not really sure what you're trying to get at, is this just to reduce collision between rebuilds? The main problem that causes the instructions to be so convoluted is just because not everything gets handled cleanly between versions.
For example, if there is a patches
directory inside srcpkgs/hyprland
and the patches
directory gets removed, when cp -r srcpkgs/* ../void-packages/srcpkgs/
is run the patches
directory will not get removed because this just replaces present files for present files.
Similarly, we may have to change common/shlibs
or even update some packages from void-packages before they are updated by the distro, and the only way to subsequently update your clone of void-packages is to git clean -fd
and git reset --hard
so that all the files (hopefully) are reset to the state they were before being modified with hyprland-void's versions; however, I have found this to ultimately be unreliable.
The only way I could see to reliably update every single time would be to just reclone void-packages every single time. However, doing this means you also have to redo binary-bootstrap
and that can waste time and bandwidth redoing over and over.
Ideally the best thing would be to just get away from user instructions entirely, and switch to using a script which automates the process. Even better would be to build the packages remotely and store them in a of third party repository so we don't have to deal with users attempting and failing to build locally because they didn't follow instructions or have a strange configuration that I can't possibly know about... but I haven't a clue how to go about making a repository xbps-install -R
can access remotely, and the closest other option would be to just make archived tarballs of the packages whenever a commit is added, as for example was done in #47.
I simplified the installation instructions using the release tarballs that are built automatically. I still have some potential ideas for further improvement, but this should do for now. Installing/updating from the tarballs should be far simpler than that huge list of instructions it had before.
Figured out how to sign and push the repo using CI. Users can now just add the repo to xbps and install hyprland directly - at least if using glibc. Might consider trying to add a musl repo if there aren't too many problems.