-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix and improve Guix support #218
Comments
Guix support is there since February: https://repology.org/repository/gnuguix. |
Thanks for the reply. Oh, okay. That wasn't very obvious to me but it makes sense to name it like that. In the link you pasted, the links to the gnu.org page could be renamed in my opinion. Moving on: The "packages" pages on the website are generated nightly directly from master. |
Done
Can do. Is there an example on how to extract metadata for all packages with guile and dump it into something which can be easily parsed from python? |
Thanks! I'm afraid that the extraction option is currently nothing I can help with, I have too much other issues to work out currently. |
Apparently there is json available. For the how, what, which I can't help you. https://lists.gnu.org/archive/html/guix-devel/2017-05/msg00027.html |
This contains too little data: only name+version+homepage, while website also has summary and license, and I could make use of even more data (maintainer, category, source download urls). |
In this case I advise you to file a bug report for feature request (details on the right list are listed at the bottom here: https://www.gnu.org/software/guix/), pointing to this github bug as reference. |
GUIX support was disabled after the website layout change, for it's no longer possible to extract the needed data. |
Someone else should pick this up eventually or communicate it to the right channels (guix-devel ML forwarded), I'm currently not active in Guix or Guix System. |
Which info do you need? A simple scheme program like this:
produce a json dictionary with {"name":"version", ...}. I'm new to scheme but I think I'll be able to provide at least also url and license. Probably it's possible to clone the repo and generate the json in a CI |
Sorry, running scheme code in Repology is not an option.
I'd prefer official dump. CI based updates do not sound reliable. |
Finally we added the json here: https://guix.gnu.org/packages.json |
Great, I'm on it! Could more info be included there, such as license, downloads URLs (these were available to legacy website parser and were useful to Repology, which could also report broken URLs back) and source reference (e.g. |
Also some |
Also can't a |
@AMDmi3, to complement what @nico202 had implemented, I added what you requested (and more) to https://guix.gnu.org/packages.json . So you'll now find source code URLs, commits/revisions, package definition location, and the Common Platform Enumeration (CPE) name when available. Let us know what you think! |
This is just great! But what about homepage=false and version/revision split? |
as a note, the one with homepage == false are: curl https://guix.gnu.org/packages.json | jq -c '.[] | select( .homepage == false)'
{"name":"binutils-bootstrap","version":"0","synopsis":"Bootstrap binaries of the GNU Binutils","homepage":false,"location":"gnu/packages/bootstrap.scm:106"}
{"name":"bootstrap-binaries","version":"0","synopsis":"Bootstrap binaries of Coreutils, Awk, etc.","homepage":false,"location":"gnu/packages/bootstrap.scm:106"}
{"name":"bootstrap-tarballs","version":"0","synopsis":"Tarballs containing all the bootstrap binaries","homepage":false,"location":"gnu/packages/make-bootstrap.scm:881"}
{"name":"gcc-bootstrap","version":"0","synopsis":"Bootstrap binaries of the GNU Compiler Collection","homepage":false,"location":"gnu/packages/bootstrap.scm:507"}
{"name":"glibc-bootstrap","version":"0","synopsis":"Bootstrap binaries and headers of the GNU C Library","homepage":false,"location":"gnu/packages/bootstrap.scm:436"}
{"name":"gnome-default-applications","version":"0","synopsis":"Default MIME type associations for the GNOME desktop","homepage":false,"location":"gnu/packages/gnome.scm:6558"}
{"name":"guile-bootstrap","version":"2.0","synopsis":"Bootstrap Guile","homepage":false,"location":"gnu/packages/bootstrap.scm:343"}
{"name":"static-binaries-tarball","version":"0","synopsis":"Statically-linked bootstrap binaries","homepage":false,"location":"gnu/packages/make-bootstrap.scm:814"} |
I've fixed the As for the version/revision split, |
👍 I've run into another technical problem:
The date does not change which would prevent Repology from updating
This still does not allow to extract upstream version reliably. For instance, here are 4 cases with
|
I noticed the
I'm not sure what you mean. I was thinking that, in those cases, the version string that Guix uses is irrelevant to Repology given that you have the revision number (or commit ID). And precisely, in those cases, there is no "upstream version": we're using an snapshot that does not correspond to a release. (Those cases should be quite rare, fortunately.) Or did you have something else in mind? |
👍
Not really. If closest official version before the snapshot can be extracted (say, More thoughts here: #345 (comment) |
I would argue that, like you wrote, you should ignore Now, if you'd rather work on the HTH! |
Well anyway we can start from this. I'll deploy new parser after some more testing and when |
@AMDmi3 I saw you are working on this, thanks! Btw, why do you need the Last-Modified? Isn't ETag preferred? |
It isn't. Repology uses Last-Modified. |
A humble request: next time please open a new ticket, github's nice UI took me long enough to not get notification emails about this and I still can't move it out of my own open tickets. So once you all have fixed this issue, open a new one if new issues with Guix arise. Thanks. |
I've deployed it. It won't update because of still not fixed |
So the
This has only just changed, so maybe this will lead to more up to date information about Guix, but let me know if more is needed to make that happen. |
Reported at <repology/repology-updater#218 (comment)>. * website/apps/packages/builder.scm (packages-json-builder): Do not emit "homepage" when it's false.
Guix and its system distribution GuixSD run from one repository, like NixOS and nixpkgs.
Our website is at https://gnu.org/s/guix and our master source is at https://git.savannah.gnu.org/cgit/guix.git/log/
Parsing depends on where you read from. All packages are definitions in scheme modules located in "gnu/packages/", the listing on our website is currently not very 3rd party friendly, though someone else might be able to provide more insight on the website.
The text was updated successfully, but these errors were encountered: