NetBSD-Users archive

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

Re: NetBSD vs FreeBSD



On Thu, 4 Aug 2011, Alex Goncharov wrote:

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

Yes, by hand but also using ports/pkgsrc systems. That is a packager 
builds a package and the results and experience is based on what was 
installed on that developer's system. Another user of the port 
specification has a different environment which may result in a 
different build.

> | 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
> 'odbc_config'?

Some pkgsrc buildlink specifications have things like:

BUILDLINK_FILES.subversion-base+= bin/svn-config

BUILDLINK_FILES.libnet10+=               bin/libnet10-config

BUILDLINK_FILES.tk=       bin/wish*

So packages that depend on these have these symlinks in its build PATH 
before the system's possible versions of the same.

> | > | 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.

As far as I see, FreeBSD ports does not install the rc.d scripts nor 
configuration files to any examples directory.  Maybe on a case-per-case 
basis and I am just overlooking it?  (I do see some FreeBSD ports do 
install foo.default or foo.sample configurations right in the 
/usr/local/etc/ but as far as I know this is not consistent and 
certainly could be messy over time and with many packages.)

For pkgsrc, it is the default procedure fo any configuration file is 
installed to an examples directory. This is nice so you can easily 
compare any time. At deinstall time, it can compare and remove installed 
configurations that have not changed. And on new install, configurations 
may be different so new version is only into examples directory and a 
message tells you about this.  This is consistent across all software in 
pkgsrc installing configurations.

$ ls -l /usr/pkg/share/examples/wget/ /usr/pkg/etc/wgetrc  
-rw-r--r--  1 root  wheel  4224 Aug 26  2008 /usr/pkg/etc/wgetrc

/usr/pkg/share/examples/wget/:
total 12
-r--r--r--  1 root  wheel  4224 Aug 26  2008 wgetrc


I can easily tell pkgsrc builds to use /etc if I choose.


Home | Main Index | Thread Index | Old Index