Merging or adapting FreeBSD ports to other package systems
On occasion, a discussion arises on various mailing lists about why FreeBSD ports don't merge (or at least adapt code from) other package management systems, especially the other BSDs. Here are some specific points that MarkLinimon feels are relevant; they represent his own opinions and not necessarily those of portmgr.
- pkgsrc has the very worthy, but difficult, goal of bootstrapping on many different operating systems. This is a goal that the FreeBSD ports collection does not share.
- pkgsrc has around 300 *.mk files. Simply coming up to speed on their infrastructure would be a daunting task.
- the main problem here is that their tools are written in perl. FreeBSD went through a painful process of removing perl from base many years ago and it is not going to return. (The main problem was that, because of the length of time that FreeBSD supports base systems that are barred from disruptive updates; updates to the Perl language itself seriously interfered with that goal.)
- our committers, maintainers, and users, have invested a tremendous amount of time and effort into the current system. Disruptive changes would probably lead to the loss of some of these people and/or userbase.
- FreeBSD has a great deal many more ports than the other BSDs, which has always been seen as a major advantage for us. The effort to bring the ones that only FreeBSD supports should not be underestimated.
- the human factor should not be dismissed: the communities each have their own distinctive "feel".
These are different projects with different goals. To the extent that we can share effort, we should, but IMHO it is dangerous to underestimate the amount of effort required to create something that will meet all goals of all users.