{"id":22837390,"url":"https://github.com/hubtou/portlint2","last_synced_at":"2025-03-31T03:29:38.320Z","repository":{"id":224330653,"uuid":"762995893","full_name":"HubTou/portlint2","owner":"HubTou","description":"FreeBSD ports tree lint (standalone version)","archived":false,"fork":false,"pushed_at":"2024-03-01T23:01:55.000Z","size":149,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T21:48:48.180Z","etag":null,"topics":["command-line-tool","freebsd","freebsd-ports","lint","linter","quality-control","tool","utility"],"latest_commit_sha":null,"homepage":"https://github.com/HubTou/portlint2","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HubTou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-25T09:24:41.000Z","updated_at":"2024-03-02T14:14:30.000Z","dependencies_parsed_at":"2024-03-01T19:53:19.134Z","dependency_job_id":null,"html_url":"https://github.com/HubTou/portlint2","commit_stats":null,"previous_names":["hubtou/portlint2"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HubTou%2Fportlint2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HubTou%2Fportlint2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HubTou%2Fportlint2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HubTou%2Fportlint2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HubTou","download_url":"https://codeload.github.com/HubTou/portlint2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246412677,"owners_count":20773050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line-tool","freebsd","freebsd-ports","lint","linter","quality-control","tool","utility"],"created_at":"2024-12-12T23:16:40.296Z","updated_at":"2025-03-31T03:29:38.296Z","avatar_url":"https://github.com/HubTou.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PORTLINT2(8)\nThis version is now superseded by [portstreelint(8)](https://github.com/HubTou/portstreelint),\na Python package version.\n\n## NAME\nportlint2 - FreeBSD ports tree lint (standalone version)\n\n## SYNOPSIS\n**portlint2**\n\\[--show-cat|-C\\]\n\\[--show-mnt|-M\\]\n\\[--cat|-c LIST\\]\n\\[--mnt|-m LIST\\]\n\\[--port|-p LIST\\]\n\\[--plist NUM\\]\n\\[--broken NUM\\]\n\\[--deprecated NUM\\]\n\\[--forbidden NUM\\]\n\\[--unchanged NUM\\]\n\\[--check-host|-h\\]\n\\[--check-url|-u\\]\n\\[--debug\\]\n\\[--info\\]\n\\[--version\\]\n\\[--help|-?\\]\n\\[--\\]\n\n## DESCRIPTION\nThe **portlint2** utility checks the FreeBSD port tree Index\nand some part of the port's Makefiles for errors and warnings.\n\nBy default it will scan the whole port tree, but you can select\na subset of the ports with the options *--cat|-c* for categories,\n*--mnt|-m* for maintainers and *--port|-p* for ports.\nAll these options expect a parameter which can be a single item\nor a comma-separated list of items.\nIf you combine several of these operators they will perform as\na logical AND.\n\nIn order to know which categories or maintainers are available\nfor selection, you can use the *--show-cat|-C* and *--show-mnt|-M*\noptions to view all the categories and maintainers with their\nnumber of associated ports.\n\nThe two costlier analysis are disabled by default.\nYou can check if the port's www sites hostnames are resolvable\nwith the *--check-host|-h* option (takes about 15 minutes on the\nwhole port tree).\nAnd you can check if the port's www sites URL are available\nwith the *--check-url|-u* option, which implies the previous one\n(takes about 6 hours on the whole port tree).\n\nThe checks list includes:\n* Nonexistent Makefile\n* Nonexistent INDEX:port-path\n* Unusual INDEX:installation-prefix (warning)\n* Too long INDEX:comments (\u003e 70 characters) (warning)\n* Uncapitalized INDEX:comments\n* INDEX:comments ending with a dot\n* INDEX:comments different from Makefile:COMMENT\n* Nonexistent INDEX:description-file\n* URL ending INDEX:description-file\n* INDEX:description-file content same as INDEX:comment\n* INDEX:description-file content no longer than INDEX:comment\n* Nonexistent pkg-plist, Makefile:PLIST_FILES/PLIST/PLIST_SUB (info)\n* Makefile:PLIST_FILES abuse (warning)\n* INDEX:maintainer different from Makefile:MAINTAINER\n* Unofficial categories (warning)\n* INDEX:categories different from Makefile:CATEGORIES\n* Empty INDEX:www-site\n* Unresolvable INDEX:www-site (optional)\n* Unaccessible INDEX:www-site (optional)\n* INDEX:www-site different from Makefile:WWW\n* Ports marked as BROKEN, FORBIDDEN or DEPRECATED\n* Ports marked as IGNORE (warning, unreliable)\n* Ports marked as BROKEN, FORBIDDEN or DEPRECATED for too long\n* Ports unchanged for a long time (info)\n\nIt's possible to change the default values for PLIST_FILES abuse,\nBROKEN_since, DEPRECATED_since, FORBIDDEN_since and Unchanged_since\nwith the *--plist*, *--broken*, *--deprecated*, *--forbidden* and\n*--unchanged* options, followed by a number of files for the first\none and a number of days for the others.\n\n### OPTIONS\nOptions | Use\n------- | ---\n--show-cat\\|-C|Show categories with ports count\n--show-mnt\\|-M|Show maintainers with ports count\n--cat\\|-c LIST|Select only the comma-separated categories in LIST\n--mnt\\|-m LIST|Select only the comma-separated maintainers in LIST\n--port\\|-p LIST|Select only the comma-separated ports in LIST\n--plist NUM|Set PLIST_FILES abuse to NUM files\n--broken NUM|Set BROKEN since to NUM days\n--deprecated NUM|Set DEPRECATED since to NUM days\n--forbidden NUM|Set FORBIDDEN since to NUM days\n--unchanged NUM|Set Unchanged since to NUM days\n--check-host\\|-h|Enable checking hostname resolution (long!)\n--check-url\\|-u|Enable checking URL (very long!)\n--debug|Enable logging at debug level\n--info|Enable logging at info level\n--version|Print version and exit\n--help\\|-?|Print usage and this help message and exit\n--|Options processing terminator\n\n## FILES\nThe whole port tree under /usr/ports\n- as root, get the last version with \"portsnap fetch update\"\n\n[/usr/ports/INDEX-xx](https://wiki.freebsd.org/Ports/INDEX)\n- where xx is the major version of FreeBSD that you are using (as I write this xx=14).\nAs root, get the last version with \"cd /usr/ports ; make fetchindex\"\nor rebuild it from your port tree with \"cd /usr/ports ; make index\"\n\n## EXIT STATUS\nThe **portlint2** utility exits 0 on success, and \u003e0 if an error occurs.\n\n## EXAMPLES\nTo analyze the full port tree in the background, do:\n```Shell\n$ nohup portlint2 --info -hu \u003e stdout.txt 2\u003e stderr.txt \u0026\n```\nResults for this example are available there:\n* [stdout output](https://www.frbsd.org/xch/stdout.txt),\n* [stderr output](https://www.frbsd.org/xch/stderr.txt) for details.\n\nTo analyze the ports of a specific maintainer identified by id@domain, do:\n```Shell\n$ portlint2 --info -m id@domain\n```\n\n## SEE ALSO\n[lint(1)](https://man.freebsd.org/cgi/man.cgi?query=lint\u0026manpath=Unix+Seventh+Edition),\n[portlint(1)](https://www.freshports.org/ports-mgmt/portlint/)\n\n## STANDARDS\nThe **portlint2** utility is not a standard UNIX command.\n\nThis implementation tries to follow the [PEP 8](https://www.python.org/dev/peps/pep-0008/) style guide for [Python](https://www.python.org/) code.\n\n## PORTABILITY\nNone. Works only on FreeBSD, but who needs anything else?\n\n## HISTORY\nWhile working on the 4th version of the [pysec2vuxml](https://github.com/HubTou/pysec2vuxml) tool,\nI noticed there were errors in the FreeBSD port Index,\nso I built this tool to analyze this more thoroughly...\n\nIt was a rainy Saturday anyway :-)\n\n## LICENSE\nIt is available under the [3-clause BSD license](https://opensource.org/licenses/BSD-3-Clause).\n\n## AUTHORS\n[Hubert Tournier](https://github.com/HubTou)\n\n## CAVEATS\nRequires Python 3.6 or more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhubtou%2Fportlint2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhubtou%2Fportlint2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhubtou%2Fportlint2/lists"}