Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Package manager for PkgSrc
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
NIH is a package management tool for pkgsrc. NIH means Not Invented Here, yes, I'm talking about NIH syndrome :-) Why not: pkg_add/pkg_delete: - These are low level tools and cannot be used for handling hundreds of packages efficiently. pkg_chk: - I was using pkg_chk for several years and it's quiet good tool. But it lacks some useful features. It is also extreammly slow. pkg_rolling-replace: - Replacing packages "in place" is not safe. pkg_comp: - It works only on NetBSD - It doesn't allow to install or update packages, it only builds them pkgin: - Package manager written in "C"? No, thanks. "C" is a the worst programming language I've ever known for this task. All other reasons are secondary. - sqlite is absoletely useless for package management. pkgmanager: - It is dead Why NIH: - I've got pkg_summary-utils, a big collection of powerful scripts for managing pkg_summary files. I've been developing it since 2007 or so and I think now it is ready to be a foundation for package manager. - I've got distbb, very powerful and flexible bulk build tool. For several years I've been using it for running bulk builds on Linux and NetBSD and I consider it rather stable. - I've got pkg_status, small tool for checking status of installed packages against pkg_summary.txt or pkgsrc source tree. It also provides other features usually implemented by full-featured package management tools. It is very small and stable. - I've got pkg_digger and pkg_online_find, very powerful and quality tools for searching on packages. They are also small and stable. - NIH = pkg_summary-utils + distbb + pkg_status + pkg_digger Plans: - To provide features implemented in pkgchk, pkgin, pkg_comp, pkg_leaves, pkgfind, pkg_status, pkg_online-client and pkg_rolling-replace. - Support for both binary and sources-based upgrade - Less than 4000 lines of code - No sqlite or other databases. - Support for PKG_OPTIONS and multivariant packages (Python, Apache, PHP, Ruby) - No dependencies other than a) pkg_summary-utils, runawk and pipestatus for basic functionality b) paexec and libmaa for running things in parallel using all available CPUs c) distbb (plus paexec and libmaa) for building packages from sources d) dict-client (plus libmaa) and netcat for searching via pkg_online server - Shell, AWK, RunAWK, UNIX tools and nothing else. - No libnih.a