Skip to content
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

Incorrect packages names or versions according to repology #68531

Closed
1 of 93 tasks
jtojnar opened this issue Sep 12, 2019 · 16 comments
Closed
1 of 93 tasks

Incorrect packages names or versions according to repology #68531

jtojnar opened this issue Sep 12, 2019 · 16 comments
Labels
0.kind: bug Something is broken 3.skill: sprintable A larger issue which is split into distinct actionable tasks 6.topic: repology https://repology.org/

Comments

@jtojnar
Copy link
Member

jtojnar commented Sep 12, 2019

The following https://github.com/repology/repology-rules refer specifically to incorrect packages in Nixpkgs. We should evaluate why we have incorrect information in each of the cases and then carry out a collection.

  • 100.prefix-suffix.yaml

  • 750.exceptions.yaml

    • 68:- { setname: "python:pycryptodome", name: "python:pycrypto", verpat: "3.*", ruleset: nix } # different package XXX: problem
  • 899.version-fixes.global.yaml

    • 37:- { ver: "1003.1-2008", ruleset: nix, ignore: true } # WTF is that? versions like "1003.1-2008" split unix utilities (repology/repology-rules@326e26a) not sure what to do about them
    • 47:- { verpat: "(git|hg)-(20[0-9]{2}-[0-9]{2}-[0-9]{2})", ruleset: nix, setver: $2, snapshot: true } # see repology#854
    • 48:- { verpat: ".*-wrapper", ruleset: nix, ignore: true }
    • 50:- { verpat: ".*-[0-9]+", namepat: "lua.*", ruleset: nix, untrusted: true } # uses luarocks versions which add extra component
  • 900.version-fixes/v.yaml

    • 4:- { name: v4l2loopback, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
    • 5:- { name: v86d, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
    • 18:- { name: vcsh, ver: "1.20170226", incorrect: true } # nix fake
    • 20:- { name: vcsh, ruleset: nix, untrusted: true }
    • 32:- { name: virtualbox-guestadditions, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
    • 33:- { name: virtualbox-modules, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
    • 40:- { name: vivaldi, verpat: ".*-.*", ruleset: nix, debianism: true }
  • 900.version-fixes/p.yaml

    • 26:- { name: patchage, ver: "1.0.1", ruleset: nix, incorrect: true }
    • 27:- { name: patchage, ruleset: nix, untrusted: true } # accused of fake 1.0.1
    • 28:- { name: patchelf, verpat: ".*pre.*", snapshot: true } # nix
    • 166:- { name: protonmail-bridge, verpat: ".*-.*", ruleset: nix, debianism: true }
    • 170:- { name: psftools, ver: "1.1.10", ruleset: homebrew, incorrect: true } # 1.0.10 actually; any incorrcet URL like https://www.seasip.info/Unix/PSF/psftools-X.Y.Z.tar.gz downloads as the latest version
  • 900.version-fixes/g.yaml

    • 182:- { name: gnuradio, ver: "3.7.11.1", ruleset: nix, incorrect: true }
    • 183:- { name: gnuradio, ruleset: nix, untrusted: true }
  • 900.version-fixes/a.yaml

    • 12:- { name: abseil-cpp, verpat: ".*[0-9a-f]{40}", incorrect: true } # nix
    • 25:- { name: acpi-call, verpat: "[45]\\..*", ruleset: nix, incorrect: true } # uses kernel versions instead of software's
    • 68:- { name: amarok, verpat: ".*20[0-9]{6}.*", snapshot: true } # nix garbage
    • 76:- { name: amtterm, verpat: ".*-.*", ruleset: nix, snapshot: true }
    • 82:- { name: amzn-drivers, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
  • 900.version-fixes/lib.yaml

    • 28:- { name: libcangjie, verpat: ".*[0-9a-f]{40}", incorrect: true } # nix crap
    • 182:- { name: libtelnet, verpat: ".*\\+[0-9a-f]{7}", incorrect: true } # nix fake
    • 188:- { name: libtorrent, verpat: "20[0-9]{2}.*", snapshot: true } # nix, vcpkg garbage
  • 900.version-fixes/c.yaml

    • 30:- { name: cargo, verpat: "1\\..*", ruleset: nix, incorrect: true } # rust version used?
    • 81:- { name: chez-scheme, ver: "9.5.1", ruleset: nix, incorrect: true }
    • 109:- { name: clojure, verpat: "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]{3,}", incorrect: true } # homebrew and nix garbage
    • 132:- { name: commandergenius, verpat: ".*[0-9]{4}.*", ignore: true } # nixpkgs weirdness
  • 900.version-fixes/x.yaml

    • 84:- { name: xtreemfs, verlonger: 3, ruleset: nix, incorrect: true } – claims git snapshot is fictious version number → change to unstable-yyyy-mm-dd
    • 92:- { name: xzoom, verlonger: 2, debianism: true } # nix
  • 900.version-fixes/l.yaml

    • 33:- { name: linenoise, verlonger: 2, ruleset: nix, incorrect: true }
    • 83:- { name: "lua:penlight", verpat: "5.*", incorrect: true } # nix garbage - uses lua version
  • 900.version-fixes/n.yaml

    • 12:- { name: ndiswrapper, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
    • 54:- { name: noip, verpat: "[0-9]+\\.[0-9]+\\.[0-9]+-.*", incorrect: true} # nix fake
    • 84:- { name: nvidia, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
    • 85:- { name: nvidiabl, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
  • 900.version-fixes/s.yaml

    • 17:- { name: sbcl, verpat: ".*20[0-9]{6}.*", ignore: true } # nixpkgs garbage
    • 18:- { name: sblim-sfcc, ver: "2.2.9", ruleset: nix, incorrect: true } # prerelease
    • 19:- { name: sblim-sfcc, ruleset: nix, untrusted: true }
    • 126:- { name: solvespace, verpat: ".*[0-9]{8}.*", ignore: true } # nix garbage
    • 168:- { name: spl, ruleset: nix, untrusted: true } # nix appends kernel version
    • 250:- { name: systemtap, verpat: ".*-.*", ruleset: nix, incorrect: true } # total garbage not even including the official version
  • 900.version-fixes/k.yaml

    • 56:- { name: kdiff3, verpat: "1\\.7\\.0-[0-8a-f]{7}.*", ignore: true } # nix snapshot
    • 57:- { name: kdiff3, verpat: ".*201[789].*", ignore: true } # nix snapshot
    • 68:- { name: kget, verpat: "20[0-9]{6}", ignore: true } # nix snapshot
  • 900.version-fixes/h.yaml

    • 21:- { name: hitori, ver: "3.24.1", ruleset: nix, incorrect: true }
    • 22:- { name: hitori, ruleset: nix, untrusted: true }
  • 900.version-fixes/e.yaml

    • 14:- { name: ecdsautils, ver: "0.4.0", ruleset: nix, incorrect: true }
    • 15:- { name: ecdsautils, ruleset: nix, untrusted: true }
    • 110:- { name: exuberant-ctags, verpat: "[0-9]{3}", incorrect: true } # nix: revision
  • 900.version-fixes/python.yaml

    • 60:- { name: "python:pystache", verpat: "[0-9]+(\\.[0-9]+){2}-[0-9.]+", incorrect: true } # nix garbage
  • 900.version-fixes/j.yaml

    • 5:- { name: jade, verpat: "1\\.2\\.1-[0-9]{2}.*", ignore: true } # nix, adds debian patchlevel
  • 900.version-fixes/m.yaml

    • 117:- { name: morituri, verpat: ".*20[0-9]{6}", ignore: true } # nix snapshot
  • 900.version-fixes/d.yaml

    • 88:- { name: dpdk, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
  • 900.version-fixes/o.yaml

    • 6:- { name: "ocaml:calendar", ver: "2.5", ruleset: nix, incorrect: true }
    • 7:- { name: "ocaml:calendar", ruleset: nix, untrusted: true } # accused of fake 2.5 (it's really 2.03.2)
    • 8:- { name: "ocaml:libvirt", verpat: ".*unstable", incorrect: true } # nix garbage
    • 40:- { name: openafs, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
  • 900.version-fixes/f.yaml

    • 3:- { name: f3, verpat: ".*unstable", ignore: true } # nix garbage
  • 900.version-fixes/y.yaml

    • 15:- { name: yosys, verpat: "20[0-9]{2}.*", snapshot: true } # nix
  • 900.version-fixes/u.yaml

    • 28:- { name: unnethack, ver: "5.3.1", ruleset: nix, incorrect: true } upstream confusion, fixed in master since June 2019 (048e0b6)
    • 29:- { name: unnethack, ruleset: nix, untrusted: true }
    • 41:- { name: urlview, verpat: "(0\\.9)-[0-9]+", setver: $1 } # debian suffix copied by homebrew, macports and nix
  • 900.version-fixes/t.yaml

    • 3:- { name: tabbed, verpat: "20[0-9]{6}", ignore: true } # nix snapshot
    • 26:- { name: tcpflow, ver: "1.4.6", ruleset: nix, incorrect: true }
    • 104:- { name: tp-smapi, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
  • 900.version-fixes/w.yaml

    • 17:- { name: wego, verpat: "20[0-9]{2}.*", ignore: true } # nix
  • 900.version-fixes/i.yaml

    • 72:- { name: iverilog, verpat: ".*20[0-9]{2}\\.?[0-9]{2}\\.?[0-9]{2}.*", ignore: true } # nixpkgs garbage
  • 800.renames-and-merges/p.yaml

    • 80:- { setname: phoenix-emu, name: phoenix-emu-project }
  • 800.renames-and-merges/g.yaml

    • 164:- { setname: glucose, name: glucose-syrup, addflavor: true } # (nix parallel vs. sequential version)
    • 297:- { setname: gphotofs, name: gphoto2fs } # nix, problem
  • 850.split-ambiguities/v.yaml

    • 10:- { name: vapor, ruleset: nix, setname: love-vapor }
  • 850.split-ambiguities/a.yaml

    • 79:- { name: ape, ruleset: nix, setname: ape-attempto-controlled-english }
  • 850.split-ambiguities/l.yaml

    • 6:- { name: ldm, ruleset: nix, setname: ldm-mounter }
  • 800.renames-and-merges/ocaml.yaml

    • 47: ruleset: nix
  • 850.split-ambiguities/h.yaml

    • 36:- { name: hydra, wwwpart: ory.am, setname: hydra-openid } # XXX: must be before hydra-nix rule
    • 37:- { name: hydra, wwwpart: nixos, setname: hydra-nix }
    • 38:- { name: hydra, ruleset: nix, setname: hydra-nix }
  • 850.split-ambiguities/e.yaml

    • 35:- { name: elm, ruleset: nix, setname: elm-lang }
    • 38:- { name: emma, setname: emma-coverage, ruleset: [sisyphus, fedora, gentoo, mageia, rosa, nix] }
  • 800.renames-and-merges/c.yaml

    • 109:- { setname: clang, name: clang-wrapper, ruleset: nix } # see report
  • 900.version-fixes/b.yaml

    • 20:- { name: batman-adv, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
    • 24:- { name: bbswitch, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
    • 111:- { name: bzip2, ver: "1.0.6.0.1", incorrect: true } # nix fake; real version is 1.0.6
    • 112:- { name: bzip2, ruleset: nix, untrusted: true } # accused of fake 1.0.6.0.1
  • 900.version-fixes/z.yaml

    • 15:- { name: zfs, verpat: ".*-.*", ruleset: nix, incorrect: true } # kernel version appended
  • 800.renames-and-merges/l.yaml

  • 900.version-fixes/r.yaml

    • 66:- { name: rtorrent, verpat: "20[0-9]{6}.*", ignore: true } # nix fake
@jtojnar jtojnar added 0.kind: bug Something is broken 3.skill: sprintable A larger issue which is split into distinct actionable tasks 6.topic: repology https://repology.org/ labels Sep 12, 2019
@teto
Copy link
Member

teto commented Sep 12, 2019

as for luarocks-nix it's a fork of luarocks, the name doesn't matter much as it's supposed to be used only in nixpkgs. Not sure what to do to solve the issue but let me know.

@jtojnar
Copy link
Member Author

jtojnar commented Sep 12, 2019

That one is marked as a flavor, not incorrect or ignored, so we probably do not mind.

@ryantm
Copy link
Member

ryantm commented Sep 21, 2019

On the NixOS office hours https://www.youtube.com/watch?v=siR3pvmxFlU , I noticed that @worldofpeace wants to move "unstable" from version to pname in derivations. I feel like the "unstable" is really part of the version, not the package name, so maybe this should be solved at the level of the website JSON generator and not at the derivation level.

@worldofpeace
Copy link
Contributor

I think I looked at the wrong issue @ryantm.
See #68518

@worldofpeace
Copy link
Contributor

Great summary @volth.

@jonringer
Copy link
Contributor

This makes me believe that we should have a different mechanism to capture that the source is not part of an official release, maybe something to the effect of:

  pname = "foo";
  version = "2019-10-07";
  unstable = true;

and in the construction of name in mkDerivation:

name = attrs.name or "${attrs.pname}${lib.optionalString unstable "-unstable"}-${attrs.version}";

@ryantm
Copy link
Member

ryantm commented Oct 7, 2019

Instead of unstable maybe unofficialRelease?

@jonringer
Copy link
Contributor

that seems like a more meaningful name than unstable

@jonringer
Copy link
Contributor

would you also advocate for

name = attrs.name or "${attrs.pname}${lib.optionalString unofficialRelease "-unofficial"}-${attrs.version}";

as well? seems like it would be more aligned, even though a larger break from the pre-existing unstable paradigm

@jtojnar
Copy link
Member Author

jtojnar commented Oct 7, 2019

unofficialRelease sounds good, we might also want to add variant repology/repology-updater#854 (comment)

@bb010g
Copy link
Contributor

bb010g commented Oct 9, 2019

I like variant.

@teto
Copy link
Member

teto commented Oct 9, 2019

would it be useful to have this field report "outdated" as well ?
For instance we have many love packages:

  love_0_7 = callPackage ../development/interpreters/love/0.7.nix { lua=lua5_1; };
  love_0_8 = callPackage ../development/interpreters/love/0.8.nix { lua=lua5_1; };
  love_0_9 = callPackage ../development/interpreters/love/0.9.nix { };

0_7 and 0_8 could be marked "outdated" (by 0_9).

I don't think it is but I prefer to mention it now.

@jtojnar
Copy link
Member Author

jtojnar commented Oct 9, 2019

I do not think it makes sense to report outdated status in the name field. First, we would have to change the name of every love package when a new one is added. And second, it should be possible to determine the status by checking the set of tuples pname * version.

@bb010g
Copy link
Contributor

bb010g commented Oct 19, 2019

It might be a useful meta attribute though, like a weaker broken that tools could warn about.

@domenkozar
Copy link
Member

Probably best to create a new issue with refreshed data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.kind: bug Something is broken 3.skill: sprintable A larger issue which is split into distinct actionable tasks 6.topic: repology https://repology.org/
Projects
None yet
Development

No branches or pull requests

8 participants
@ryantm @domenkozar @bb010g @jtojnar @teto @jonringer @worldofpeace and others