repology / repology-updater

Repology backend service to update repository and package data
https://repology.org
GNU General Public License v3.0
496 stars 174 forks source link

Nixpkgs issues #1226

Closed jonringer closed 2 months ago

jonringer commented 2 years ago

Tracking issue for nixpkgs related issues

Issues:

AMDmi3 commented 2 years ago

I've rephrased the last issue.

The problem is not really missing prefixes - prefixes are just needed to distinguish specific realms of packages from others, which, being mixed together, are likely to cause conflicts. We can instead use categories for that as it's done for haskell and node modules.

The problem is that when a new category appears, we don't yet have a rule for it, and it immediately causes a lot of conflicts as it has already happened with the mentioned haskell and node modules.

I can handle this on Repology side by dropping nix packages which have category, unless there's a rule for it. However, there will be need to maintain a whitelist of categories which do not require prefixes

            category            | count 
--------------------------------+-------
 CuboCore                       |    22
 androidStudioPackages          |     3
 apacheHttpdPackages            |    20
 arcan                          |     8
 aspellDicts                    |    91
 bat-extras                     |     5
 beetsExternalPlugins           |     3
 bitscope                       |     8
 chickenPackages_4              |     2
 cinnamon                       |    23
 coqPackages                    |    73
 coreboot-toolchain             |     7
 cudaPackages                   |     9
 dhallPackages                  |     1
 dictdDBs                       |     2
 dotnetCorePackages             |     4
 dotnetPackages                 |    19
 driversi686Linux               |     8
 dwarf-fortress-packages        |    31
 eclipses                       |     9
 elasticsearchPlugins           |     8
 elmPackages                    |    11
 emacs27Packages                |  5353
 emscriptenPackages             |     4
 enlightenment                  |     8
 fcitx-engines                  |    12
 fdbPackages                    |     4
 fishPlugins                    |     9
 fusePackages                   |     1
 gawkextlib                     |    17
 gimpPlugins                    |     9
 glimpsePlugins                 |     9
 gnome                          |   111
 gnome2                         |    25
 gnomeExtensions                |   564
 gns3Packages                   |     2
 gnuradio3_8Packages            |     7
 gnuradio3_9Packages            |     1
 gnustep                        |     9
 graylogPlugins                 |    18
 greetd                         |     5
 gsignondPlugins                |     4
 gst_all_1                      |    11
 haskell                        |    16
 haskellPackages                | 16801
 haxePackages                   |     5
...

The problem with that solution is that we don't yet have a mechanism which would report that a new unhandled category appeared, so we'll silently lose some packages.

AMDmi3 commented 2 years ago

Regarding the first two issues, btw, I've implemented the solution mentioned in https://github.com/repology/repology-updater/pull/1225#issuecomment-1034911775. After your changes it's no longer needed for nix_unstable, but it allowed to avoid dropping some packages in stable branches.