[pacman-dev] should repo-add handle *.links.db?
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hi, I'm looking into creating links databases for archlinux32 and saw (thanks, Eli) that they are created asynchronously by systemd timers here: https://git.archlinux.org/infrastructure.git/tree/roles/sogrep/files I was wondering, if it wouldn't be better to create them during repo-add (and repo-remove) at a similar point, where *.files.db entries are created - - ignoring deltas (can we ignore deltas already?), this would be somewhere down in db_write_entry() in repo-add - but even including deltas, it should not need changes at too many places. However, before I start trying to patch repo-add and repo-remove to maintain a *.links.db, I wanted to ask if there are any objections to include this functionality there. Cheers, Erich -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE3p92iMrPBP64GmxZCu7JB1Xae1oFAlyaLrQACgkQCu7JB1Xa e1o26g/+PU80nwWnMcT/zwhzWuuTAP8hwIlb1dvovfFp5vkq9XjPC/A3yApfSg6m nUPb7Vjq9w3KGoKCMTwBWYO6jXLjLhvcB2gSBmhFlblDrMgGTnABrjNdfcaSUwcB hqF7cYDhSDJuUb+SyMBYKLoGDZL/Rxye/BAItiqBXfgitbxAcPWbNyZCKk3DYOBz /WHCHn3hMHJndxC7FJ9hfpGukES9Um2EW4bB8DGrz44AJwzyA8EyDO9e86QtR64z PX6qC2qEuAix55Ggvk2GILErPaea/5IuwhmyrZy6UtTEDysDfdkMSKWqV+r8wHJY 61fO7RGZnJH6F4h6YEpTncdEI4jnuIuR7FrheWauV83jMJ4E/X4nvNTNBlPDZUIt DC8Nj1nsSrTeD7HZmi6QiKHhPLpA5ZiE0ls+jdb/CcE0RaB+kqRtMRShanKDNiJi E4lhLO7nj6frNtpWhU3Iqb2O7azampIpL7VyCHDAfkuWPrIHfMGSRnwWmG2DW0G/ UTxHqDKqVFTDwBF2h6+4+J/xFO2T1uqm5OrAnR9ZsjGG6UMZEbsNvO0KxFiOdlYc UFPJJlwVn7OS28H94010tRU73LfE1xwZqRKiWxiR2NckjB9fvOf5lPUV5neZfeS1 O9yS9omfa9QzVH6dD/wDJArnt4RGj8mHBEXa3vwOZGEfXaF+waQ= =ny8G -----END PGP SIGNATURE-----
On 03/26/19 at 02:52pm, Erich Eckner wrote:
Hi,
I'm looking into creating links databases for archlinux32 and saw (thanks, Eli) that they are created asynchronously by systemd timers here: https://git.archlinux.org/infrastructure.git/tree/roles/sogrep/files
I was wondering, if it wouldn't be better to create them during repo-add (and repo-remove) at a similar point, where *.files.db entries are created - ignoring deltas (can we ignore deltas already?), this would be somewhere down in db_write_entry() in repo-add - but even including deltas, it should not need changes at too many places.
However, before I start trying to patch repo-add and repo-remove to maintain a *.links.db, I wanted to ask if there are any objections to include this functionality there.
What is a links database?
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On Tue, 26 Mar 2019, Andrew Gregory wrote:
On 03/26/19 at 02:52pm, Erich Eckner wrote:
Hi,
I'm looking into creating links databases for archlinux32 and saw (thanks, Eli) that they are created asynchronously by systemd timers here: https://git.archlinux.org/infrastructure.git/tree/roles/sogrep/files
I was wondering, if it wouldn't be better to create them during repo-add (and repo-remove) at a similar point, where *.files.db entries are created - ignoring deltas (can we ignore deltas already?), this would be somewhere down in db_write_entry() in repo-add - but even including deltas, it should not need changes at too many places.
However, before I start trying to patch repo-add and repo-remove to maintain a *.links.db, I wanted to ask if there are any objections to include this functionality there.
What is a links database?
Hi, sry, I should have been clear - I mean this one: https://mirror.pkgbuild.com/core/os/x86_64/core.links.tar.gz It contains (as far as I can tell) the names and versions of libraries against which binaries in a package are linked. regards, Erich -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE3p92iMrPBP64GmxZCu7JB1Xae1oFAlyal5MACgkQCu7JB1Xa e1p9Nw/+OTkQCO+3HmnQnoy7lEMqsWvKTejrzNc1XogX050OhRufbdc4vF1cPyKR l98paeIHwp9q/sUoRKLmdrWetboJB5bEpJqCZqNx2Ik05FQPQzUzj/NFFXuBnYeK +uppeM8EU0NDPxTCjvwZP4GJklrkl1GcWthIz1HS/nVhZROQ/1iXEH7Vnmr3LY9f bHLXiQv8AlF37SvkjRM0DtnBQVPsbb8rPWz2nIWkykgGFiMH73j8tR0h0+/Hti9m euY3BhtZiBl2LQdW+XZ4LMFjgSTVXE338cYayP95KZ7Lo/QuuePSLiLOW8a4ao8y 7YF2Oa8eOdA/GaIvT4zWDMR+jW7mud2b9HovTmNRGE+ZAqdr5S+FTn2J993/oLab huzzqPzQALzYvruwse3sfHaTY2rRpr7OEVAkWR2rGYYOVACygAxSoFpHVRTerWGG 4kOKvnGcJJ9HLfQwHmJ7KMx/sa6KAjitDeWZFMnmjoZyqL5H7xucPcaSy7zpo9df WoEtJXfEDRDi/Amvfa6ub6HbYsOLOggGraDuwSj28G1L6jgbpwm/wYdwEdqDbngZ T3et2BeHET/n5mgtpvlTkbFEdVK0CasR4He15bd0JuBPF5HPXVKx/MglTbC+oD6n OJejPzusOHd1L/u5ZSsESKmyuUsN14tMn1chgO32LrkQfJmW/yg= =6u7q -----END PGP SIGNATURE-----
On 27/3/19 7:20 am, Erich Eckner wrote:
https://mirror.pkgbuild.com/core/os/x86_64/core.links.tar.gz
It contains (as far as I can tell) the names and versions of libraries against which binaries in a package are linked.
This is not a repo, so should not be managed by repo-add. Allan
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On Wed, 27 Mar 2019, Allan McRae wrote:
On 27/3/19 7:20 am, Erich Eckner wrote:
https://mirror.pkgbuild.com/core/os/x86_64/core.links.tar.gz
It contains (as far as I can tell) the names and versions of libraries against which binaries in a package are linked.
This is not a repo, so should not be managed by repo-add.
Thanks for your answer, but: Is the *.files.tar.gz a "repo"? My interpretaion (so far) was, that the *.files.tar.gz and *.links.tar.gz files are caches for search accellerations inside the repo (the first for "who owns that file" and the second for "who links against that file") - is this not the case? Also note, that managing the *.links.tar.gz file with repo-add would have benefits from a cleanness point of view: currently it's created asynchronously but it could be created synchronously (e.g. *.db.tar.gz, *.files.tar.gz and *.links.tar.gz would be always in-sync). Furthermore, each downstream distribution wanting to have sogrep needs to implement the createlinks script asynchronously, too. This would become obsolete if it was part of repo-add. Cheers, Erich -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE3p92iMrPBP64GmxZCu7JB1Xae1oFAlyanM0ACgkQCu7JB1Xa e1pZXxAAuCHROvweoz1+hHngXF9rCQcd3s8wAI8VmWJ+8goplAiZG3WVf5k5V/Ua 1hVE7dR609hMt+LkQbaiudYTI4Hrzr24b0TrtQnMaRrC3Yd20E+yMdESNRa0p8qD tqsd4Fsz9TrUGfi8eOTnpS4/Kzrqa0ci8Or7bOiuPmeE/zmOU0K+AOS5qQO955a3 PvfcXemImjbxX0AfLHpXGUaj+T7ksHYhKg17rQ4ca1mHu2LyFgIRxghD/TTSoxBY 0Zwc7PjLTbtcElY0yoqbqoa6IPe5kPOSynBXwtTtAf/VVgpiyI/Go3lLl3xNGTou GWKT/n8F87D29Hs7HqYZ5WxCic/QswqjBiuRDdEpbXl7EPRZJPAjXBJBAId+PWA+ fmC7Rb9CzWub4SgiOpDsPZeu6DpaNKVmlaKuHgXoMiFR8H1GJEYchwnvZP//Ja4X 2tDnATp4k+ISdhaT3vTBFg1fZNJc6m8fxybuwfkPyVWNtFDhXpIpY9xLE7cycLfB xa6eqOagsQbfRnQ7qw67Hme6xfkwDVwYllWUggh4Ar2s0938yQR/ETOw3E2SI1ke ZH49yWZQxqFqpe4D870e3Ld/yFQfXGfYhbvMMoiPbFTI5U09JIeYI7VFOcwoYCNk 9sXMKnw/TcMdouhS+NSw4n4dW8AawEvZWpdmbf4q5MaDK190CIc= =crRh -----END PGP SIGNATURE-----
On 03/26/19 at 10:42pm, Erich Eckner wrote:
On Wed, 27 Mar 2019, Allan McRae wrote:
On 27/3/19 7:20 am, Erich Eckner wrote:
https://mirror.pkgbuild.com/core/os/x86_64/core.links.tar.gz
It contains (as far as I can tell) the names and versions of libraries against which binaries in a package are linked.
This is not a repo, so should not be managed by repo-add.
Thanks for your answer, but:
Is the *.files.tar.gz a "repo"?
Yes. The .files databases are complete repos with full package information capable of being used by alpm; they are not just lists of package files. People can use .files databases exclusively without ever needing to touch the "normal" databases.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On Tue, 26 Mar 2019, Andrew Gregory wrote:
On 03/26/19 at 10:42pm, Erich Eckner wrote:
On Wed, 27 Mar 2019, Allan McRae wrote:
On 27/3/19 7:20 am, Erich Eckner wrote:
https://mirror.pkgbuild.com/core/os/x86_64/core.links.tar.gz
It contains (as far as I can tell) the names and versions of libraries against which binaries in a package are linked.
This is not a repo, so should not be managed by repo-add.
Thanks for your answer, but:
Is the *.files.tar.gz a "repo"?
Yes. The .files databases are complete repos with full package information capable of being used by alpm; they are not just lists of package files. People can use .files databases exclusively without ever needing to touch the "normal" databases.
ah, right, my mistake: it also contains the "desc" file - We could include that in *.links.tar.gz, too. But this makes probably no sense, because no program uses links and desc together, right? cheers, Erich -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE3p92iMrPBP64GmxZCu7JB1Xae1oFAlyaoJoACgkQCu7JB1Xa e1qV8xAAm9E7mwqihiP0scvGcPDpF+RMSLBqSxrcOqTyM3W4WEikmuehhGSVAYhd r6LSe2lfP6zSlEuWx/agFRzxcExiGFcJq4cuwxDFfgWFkTRtkBRuvEWMJiba20B8 D4KUvERn6qv0iPM27z/w1gGZPUAOqDvQ7uQA63EdgQmnjdBrf7CyhQA+k+DD1ZkB DTE5YNxPDfgVHty3lj9ZN0vIrdaW4jFm5cT6G/IncO3VNbE5sfnjF4GeEcp/afZM AAtRFDp8B8k/PI371ASRDjLbuiYKBrPhBOIlUNA8CVOqxVzZQf7OrdIF/pHTiIag dmx9IlwmNVTa/yn0qGpq0ORelEL0Fvmhqdh9gyyWax25EqOBRk5QhsS5p9si5jQG SqlR5KAv/Qr49ub2JkhbzKBwfpmJhCdulSYSKdy9V63ua5f6eR97rKUOTy6+SJXs 4BBRCAlQ8VeQOI1h/jzBXkVvj+M8w5CZoef3T6+gZGjqSVbACQfLNzabvvrX8jxw jc2Z2ljuj9xkI8wcyWxv4dhLZm2UWx1Lbo0Ft1agshdJlJRi0ijE7lfNIaBiOcz/ WlZXj8Z1hp1mw9lOdPMMlajLP1Fg6wFbjNwOyoF+vVsWR07NbJ9J7RdcLY348lUD ZilyqLhEDTPJgHPiOklhZ7No/DebAv3CPLC4I+qeaB37Mf5/kio= =ebeN -----END PGP SIGNATURE-----
On 03/26/19 at 10:42pm, Erich Eckner wrote:
On Wed, 27 Mar 2019, Allan McRae wrote:
On 27/3/19 7:20 am, Erich Eckner wrote:
https://mirror.pkgbuild.com/core/os/x86_64/core.links.tar.gz
It contains (as far as I can tell) the names and versions of libraries against which binaries in a package are linked.
This is not a repo, so should not be managed by repo-add.
Thanks for your answer, but:
Is the *.files.tar.gz a "repo"?
My interpretaion (so far) was, that the *.files.tar.gz and *.links.tar.gz files are caches for search accellerations inside the repo (the first for "who owns that file" and the second for "who links against that file") - is this not the case?
Also note, that managing the *.links.tar.gz file with repo-add would have benefits from a cleanness point of view: currently it's created asynchronously but it could be created synchronously (e.g. *.db.tar.gz, *.files.tar.gz and *.links.tar.gz would be always in-sync).
Furthermore, each downstream distribution wanting to have sogrep needs to implement the createlinks script asynchronously, too. This would become obsolete if it was part of repo-add.
I don't understand these arguments. sogrep is the only thing consuming these databases and no other uses have been proposed. Why can't sogrep provide a script to create its own databases that distributions can use in their tools at the same time they call repo-add? I'm not very familiar with them, but I know Arch has various scripts for building packages and managing repos; just have them call `buildlinksdb`, or whatever, immediately after repo-add.
participants (3)
-
Allan McRae
-
Andrew Gregory
-
Erich Eckner