Quote:
Originally Posted by e1-531g
Hello,
I am curious about cooperation (or lack of it) between NetBSD's pkgsrc and OpenBSD's ports.
On the page about pkgsrc I see OpenBSD as supported platform by pkgsrc. However pkgsrc for OpenBSD has more ports (about 11 thousands) than OpenBSD's packages tree (around 8 thousands).
Is it common to take port from pkgsrc, test it, make some patches and add to OpenBSD's ports tree?
|
The FreeBSD ports collection is historically the oldest package management system on any BSDs and contemporary UNIX-like systems like Linux. pkgsrc has been forked from FreeBSD ports collection in 1997. OpenBSD package management system has been developed circa 2000 by Marck Espie using FreeBSD ports three as a starting point.
The main idea of OpenBSD packages system reproducibility. In another words package which you download from the OpenBSD server and the one you build on your machine should be identical. OpenBSD package system has few knobs known as package flavours. It is written is Perl (for safety reasons). All packages are build natively and cross compiling is big nono.
pkgsrc is designed with a grand idea of being the package management system not just for any platform but for any OS. How difficult it can be since NetBSD already "supports" 56 platforms? In reality pkgsrc is very configurable, somewhat OK documented and poorly tested. I was probably the last person to try pkgsrc on OpenBSD around the times of 4.4/4.5 and it failed miserably. The last official test has been done around the times of OpenBSD 3.3 which is almost 15 years ago. Currently pkgsrc is used default package system on Minix, SmartOS (Illuminous distro), and Draco Linux. DragonFly BSD really put heroic effort to adopt pkgsrc but after removing tons of bugs from pkgsrc were forced to switch to D-Ports which are essentially FreeBSD ports compiled on DragonFly. One of the things which pkgsrc/NetBSD seems to be doing well is being able to bootstrap and compile old binaries and run on the modern version of NetBSD. So if you need to compile binaries which you used around 1994 on your NetBSD 7.0 installation pkgsrc is you only chance. I know people who use 20 year old package binaries on NetBSD 7.0. However I hate the fact that relay so heavily on cross compiling. Aside of amd64 NetBSD is very poorly tested on native platforms.
Finally if there is a peace of software in pkgsrc but not in OpenBSD looking at the pkgsrc Makefile is very useful first step in trying to create OpenBSD port. Beyond that talking to pkgsrc developers is useful. pkgsrc as a package system on OpenBSD is useless.