NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NetBSD vs FreeBSD

,--- You/Jeremy (Thu, 4 Aug 2011 09:19:43 -0500 (CDT)) ----*
| On Thu, 4 Aug 2011, Alex Goncharov wrote:
| > | 1.  it allows pkgsrc packages to be built with exactly the versions of
| > | software that are wanted, and not what happens to be already installed
| > | in /usr/local - to illustrate, imagine that ncurses is installed, and
| > | another package's configure script checks for the presence of ncurses
| > | (bad example, since i think freebsd has ncurses in base, but ykwim)
| > 
| > This all seems very far-fetched.
| It is certainly a real issue. Many software when built outside of ports 
| (or outside of pkgsrc) defaults to installing to /usr/local/. So simply 
| the addition of an include file, some binary, some library, some 
| pkg-config file, et cetera, may in the future 
| enable/disable/break/enhance or otherwise change some later "ports" 
| build resulting in a package possible different than what was expected. 
| Even if the package list is the same, it may have new dependencies or 
| capabilities not expected. And after removing the "/usr/local" addition 
| (whatever it was) may break the package like removing a shared library 
| (and since not registered as a package dependency it won't warn you).

I seem to beginning to understand it: the problem may happen if you
combine building from ports/pkgsrc -- and "by hand". Right?

Makes sense, even though this has never been an issue for me
personally -- I always specify '--prefix' to something different than
'/usr/local' (and for a long time I don't even build anything outside
of ports on FreeBSD -- only on other platforms).

| Even if you choose a custom localbase, the problem is still possible 
| since /usr/local is often still looked at.  pkgsrc builds work very 
| hard to make sure /usr/local and /usr/pkg are not looked at when 
| building packages.

I see.  How does this work when one needs the information about
installed packages? E.g. for x11-related things (gconf), or for ODBC
drivers, which need some information from things like 'pg_config' or

| > ----------------------------------------
| > ls -d1 /usr/ports/databases/postgresql*server
| > ls -d1 /usr/ports/databases/mysql*server
| > ----------------------------------------
| > 
| > Does one really need more than that?

| I think there was a misunderstanding, so I don't understand context of 
| that.

I was trying to illustrate the wide choice of available versions in
ports.  Not so significant, we can move on.

| > | 2. isolates dependencies so that dangling or hidden dependencies just
| > | do not happen.
| > 
| > 'pkgdb -F' won't do it for you on FreeBSD?
| Also different.  That is for fixing later.
| The "hidden" dependencies in question are those detected at build time 
| (described above).

I see.

| > | in addition, from a user's pov, pkgsrc's config file handling is done
| > | in a smart way so that any changes to standard configs are preserved,
| > | rc.d scripts can optionally be installed to /etc so that they work
| > | out
| > 
| > Any port rc.d script is installed (with either install method) under
| > /usr/local/etc/rc.d and works out of the box (subject to rc.conf
| > X_enable=YES, of course).
| Yes.  pkgsrc offers "staged" rc.d scripts, so they are installed as 
| examples and optionally put in place to use (if a custom version is not 
| already there).

As in ports.

| > | of the box, and much, much more.
| > 
| > It is quite possible that pkgsrc has some advantages for a very
| > sophisticated use, but it seems to me that in comparing it with
| > FreeBSD ports some of the obvious capacities of the latter are
| > overlooked.
| > 
| > Such as '-p' and '-P' of pkg_add:
| pkgsrc had those too. I think the master/slave mode was removed, but 
| basic functionality of these are the same. Note that the FreeBSD-style 
| of "staged" (master/slave) mode at binary package install time is 
| different than pkgsrc's build-time staged installs. (I am curious does 
| anyone use FreeBSD's pkg_add master/slave installs and why?)

Have no clue, don't even know what it is.
| The concept of changing the install prefix at pkg_add time is much 
| different than choosing a custom prefix at build time.


Thank you for the detailed analysis!

-- Alex -- --

Home | Main Index | Thread Index | Old Index