[arch-general] Updating a (local) repository based on dependency changes

Marius Kittler mkittler at suse.de
Wed Feb 23 16:32:20 UTC 2022


Hi,

Most importantly, I keep track of Arch Linux's TODOs:
https://archlinux.org/todo

I think that adding soname-dependencies (as many official packages already 
have, e.g. ffmpeg) is quite beneficial as it at least blocks any updates which 
would break the system otherwise. The corresponding provide needs to be 
present in the official (e.g. x264 needs `provides=(libx264.so)`) so I'd 
appreciate if more official packages would declare such provides. I suppose 
that has already been brought up on this list not too long ago.

I also wrote a build service which can check for necessary rebuilds on soname-
level (it also works for Windows DLLs/executables as I build also lots of 
mingw-w64 packages and also covers Python and Perl modules):
https://github.com/Martchus/arch-repo-manager
So the tool avoids reporting necessary rebuilds unless an soname changed (or 
an explicitly specified dependency is broken). It also moves packages I build 
myself automatically to my own staging repository as necessary (to avoid 
breakage within my repository). It also automatically increments pkgrel to 
reduce manual work.
The only problem is that it is highly experimental at this point as it is also 
my playinground for using tech like io_uring and reflection in C++. Besides, 
this kind of solution is likely also way too much for the average user.

I also usually try to rebuild already against staging packages (e.g. quite 
recently ffmpeg 5.0) to sort out problems early (e.g. in this case filing an 
upstream bug for subtitlecomposer and picking up existing patches for other 
projects). Then I'll just move packages from my own staging to my own testing 
and then to my own regular repository as upstream packages move in the 
corresponding upstream repositories. For building against the official 
staging/testing repositories I recommend using makechrootpkg (as makepkg is 
obviously not good enough). That's also generally useful (e.g. rebuilding the 
custom ffmpeg package you might have against a new x264 package is otherwise 
not possible without breaking your normal system).

I've never considered creating an own mirror of upstream repositories (like 	
Maarten) described it, though. It seems too much effort and users of my 
repository likely don't want to swap out their normal mirrors with a custom 
one. Normally it seems sufficient to be reasonably fast with rebuilds. Since 
Arch devs also need some time (e.g. ffmpeg 5.0 was in staging for quite a 
while) one has usually a window to be fast enough.

By the way, that's my repository (maybe you'll find some of the packages you 
need there and thus don't need to rebuild them yourself):
https://wiki.archlinux.org/title/Unofficial_user_repositories#ownstuff


Best Regards
Marius




More information about the arch-general mailing list