nixpkgs has huge coverage of the available software, and that’s partly because of auto-generated package files, e.g. for Haskell packages. But often these packaged cannot actually be built, so from a user point of view that’s almost as if they were not packaged. It’s a bit like a Debian package where there is a source tarbarll in the archive, but no binary packages could be built (and thus no binary packages would be reported to repology).
Luckily, they are usually marked as “broken”, and this information is available in the packages.json that is fetched by the repo updater, see the fourth line of this snippet:
"adtool": {
"meta": {
"available": false,
"broken": true,
"description": "Active Directory administration utility for Unix",
"homepage": "https://gp2x.org/adtool",
"insecure": false,
"license": {
"deprecated": true,
"free": true,
"fullName": "GNU General Public License v2.0",
"redistributable": true,
"shortName": "gpl2",
"spdxId": "GPL-2.0",
"url": "https://spdx.org/licenses/GPL-2.0.html"
},
"maintainers": [
{
"email": "peter@hoeg.com",
"github": "peterhoeg",
"githubId": 722550,
"matrix": "@peter:hoeg.com",
"name": "Peter Hoeg"
}
],
"name": "adtool-1.3.3",
"outputsToInstall": [
"out"
],
"position": "pkgs/tools/admin/adtool/default.nix:40",
"unfree": false,
"unsupported": false
},
"name": "adtool-1.3.3",
"outputName": "out",
"outputs": {
"out": null
},
"pname": "adtool",
"system": "x86_64-linux",
"version": "1.3.3"
},
I suggest to ignore any package marked as broken in, probably somewhere around here:
|
skip = False |
|
if packagedata['pname'] in _BLACKLIST1: |
|
for verprefix in _BLACKLIST1[packagedata['pname']]: |
|
if packagedata['version'].startswith(verprefix): |
|
pkg.log('dropping {}, "{}" does not belong to version'.format(packagedata['name'], verprefix), severity=Logger.ERROR) |
|
skip = True |
|
break |
|
|
|
if packagedata['pname'] in _BLACKLIST2: |
|
pkg.log('dropping {}, "{}" does not belong to name'.format(packagedata['name'], packagedata['pname'].rsplit('-')[-1]), severity=Logger.ERROR) |
|
skip = True |
|
|
|
for verprefix in ['100dpi', '75dpi']: |
|
if packagedata['version'].startswith(verprefix): |
|
pkg.log('dropping "{}", "{}" does not belong to version'.format(packagedata['name'], verprefix), severity=Logger.ERROR) |
|
skip = True |
|
break |
|
|
|
if skip: |
nixpkgs has huge coverage of the available software, and that’s partly because of auto-generated package files, e.g. for Haskell packages. But often these packaged cannot actually be built, so from a user point of view that’s almost as if they were not packaged. It’s a bit like a Debian package where there is a source tarbarll in the archive, but no binary packages could be built (and thus no binary packages would be reported to repology).
Luckily, they are usually marked as “broken”, and this information is available in the
packages.jsonthat is fetched by the repo updater, see the fourth line of this snippet:I suggest to ignore any package marked as broken in, probably somewhere around here:
repology-updater/repology/parsers/parsers/nix.py
Lines 119 to 137 in 72800a4