| Old Deprecated Documentation |
|
The following applies to the old set of swpkg tools only!
Basic documentation of swpkg tools is found in manual pages. Please refer to the latest version as the following are provided for convenience and may slightly be out of date:
swln: The main
component of swpkg used to create/delete links.
swbuild: Convenient
script to normalize the build environment.
swdirs: Many packages
don't handle well having to be installed in non existant directories.
This useful tool will create standard directories for you.
swconf: Tool automating
handling of package dependencies based on previous installations.
swrecord: Simple
script to record package build and installation information.
swperms: Simple
script that checks for problematic permissions.
swshrink: Useful script to help in handling "*-config" type scripts.
swinstall: Front
end to other swpkg tools to finish package installations.
swlibs: Tool recording
libraries provided by installed software packages.
swdeps: Tool automating
detection of package dependencies based on the package source.
swinfo: Simple script to
maintain info/dir files.
swchk: Tool to maintain
source and target directories.
swreport: Inter
package dependency reporting tool.
The following describes how the swpkg tools fit together
and provides a step by step guide to installing software using
them. The swbuild manual
page contains a summary of all this.
swbuild file to clean up your
environment.
swdirs to create the basic directory structure for the
software you are about to install. This is the "base install
directory". (This is optionally done by swbuild.)
swln.
swln. The
difficult part here is to correctly identify such packages as being
necessary.
PATH, or as compiler options (in
particular -I and -L).
-R
compiler flag to include the necessary directories (under the base
install directory).
configure type scripts which can look for anything, and
make decisions based on what they find and don't find. These days,
few software distributions list the packages needed, whether optional
or required.
imake with an Imakefile. These can be very
painful as they typically provide very little flexibility and your
system configuration may easily fall out of date. When invoking
make on the generated Makefile, it make be
useful to specify the following variables on the command line:
"DESTDIR=$swprefix BINDIR=/bin INCDIR=/include LIBDIR=/lib
SHLIBDIR=/lib MANPATH=/man XAPPLOADDIR=/lib/app-defaults".
swinstall or the
following three steps manually.
swdirs again to remove unused directories created
above.
swrecord to record some information about the build
and installation.
swperms to check that all permissions seem fine, and
that the owner of the files below the base installation directory can
safely be changed. If swperms reports problematic
permissions, you may need to reinstall the software as root. Deal with
such situations on a case by case basis as they arise.
chown as recommended by swperms.
.swrc file if needed.
swln to create the necessary links under the target
directory.
If you're lucky, you're building a collection of software packages from
scratch, and have no existing base of installed software in
/usr/local (or elsewhere). If this is the case, you can
pretty much stop reading this already. On the other hand, if you live in
the real world, you probably aren't that lucky and the following will help
you.
It is important to realize that successfully migrating an environment to one setup using the swpkg philosophy and tools is no simple or quick task. For most people it will be a large project requiring a significant deal of effort and dedication. However, it is well worth it, and isn't one of these impossible to achieve goals. There are (at least) two ways you can go about it:
No matter where your installed software resides, you should carefully
consider where your target directory will be. While
/usr/local is the default set for the swpkg tools, it
is easy to override. And avoiding /usr/local is a good thing
to prevent (too) smart "configure" type scripts from finding binaries,
libraries are other dependencies in there. Be sure to read this section of the swpkg philosophy before making your
decision.
Whether your target directory will be the same as where your existing software is or not brings two different approaches. Both are doable, although the former quite preferrable. However, in both cases, you will probably need to inventory (and identify) the already installed software packages. (This can be a daunting tasks as random files are often not easy to attribute to a software. Enlist the help of a senior UNIX admin if you have trouble with this.) This is the best way to get to have an idea of what you will need to install. It is also a good opportunity to decide on what you probably don't want to reinstall for things that are no longer used.
The rest of this only applies to the case where you use the same target directory.
By default, swln will NOT replace any file in order to
create a link for a package. This is something that you will need to do as
you reinstall existing software. Such behaviour is easy to override by
using the -I flag to swln, and in most cases,
you'll be fine. Things can of course break as other installed programs may
depend on what you're just blowing away (and especially files that don't
get linked in the target directory), but this is pretty much the same as if
you were simply installing the new version the old fashioned way, directly
in the target directory.
As time goes by, you have more and more links in your target directory, and less and less real files. However, unless you are a god, you probably will never be able to get rid of all such files simply by reinstalling packages. At some point, you will want to audit such remaining files, and blow them away as the final step (once you get over the likely surprises you will uncover during the audit).
Here is a practical example showing how to install "wget". This example
pre-dates version 0.3 of the swpkg tools suite, and therefore does
not show many of the improvements found in current releases. In
particular, swbuild was still (somewhat) primitive, while
swinstall did not even exist yet. However, everything found
below still applies and is a good detailed example to look at when learning
the intricacies of using swpkg tools.
$ ls -l /usr/local/pkgs/wget-1.7 ls: /usr/local/pkgs/wget-1.7: No such file or directory $ swdirs -c wget-1.7 $ ls -l /usr/local/pkgs/wget-1.7 total 14 drwxr-xr-x 2 user wheel 512 Oct 21 20:06 bin drwxr-xr-x 2 user wheel 512 Oct 21 20:06 etc drwxr-xr-x 2 user wheel 512 Oct 21 20:06 include drwxr-xr-x 2 user wheel 512 Oct 21 20:06 info drwxr-xr-x 10 user wheel 512 Oct 21 20:06 man drwxr-xr-x 2 user wheel 512 Oct 21 20:06 sbin drwxr-xr-x 2 user wheel 512 Oct 21 20:06 share $ . /usr/local/etc/swbuild.sh Environment cleared. Setting build PATH Setting umask to 002
Make sure to run env(1) to double check that this script was properly invoked.
$ cd wget-1.7
$ ./configure --prefix=/usr/local/pkgs/wget-1.7
creating cache ./config.cache
configuring for GNU Wget 1.7
checking host system type... sparc-unknown-netbsdelf1.5.1
checking whether make sets ${MAKE}... yes
checking for a BSD compatible install... /usr/bin/install -c
checking build system type... sparc-unknown-netbsdelf1.5.1
checking for ranlib... ranlib
checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
updating cache ./config.cache
loading cache ./config.cache within ltconfig
checking for object suffix... o
checking for executable suffix... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.lo... yes
checking if gcc supports -fno-rtti -fno-exceptions ... yes
checking if gcc static flag -static works... -static
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the linker (/usr/bin/ld) supports shared libraries... yes
checking command to parse /usr/bin/nm -B output... ok
checking how to hardcode library paths into programs... immediate
checking for /usr/bin/ld option to reload object files... -r
checking dynamic linker characteristics... NetBSD ld.elf_so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for objdir... .libs
creating libtool
updating cache ./config.cache
loading cache ./config.cache
checking for gcc... (cached) gcc
checking whether the C compiler (gcc -g -O2 ) works... yes
checking whether the C compiler (gcc -g -O2 ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for AIX... no
checking for gcc option to accept ANSI C...
checking for function prototypes... yes
checking for working const... yes
checking for inline... inline
checking for size_t... yes
checking for pid_t... yes
checking whether byte ordering is bigendian... yes
checking size of long... 4
checking size of long long... 8
checking for string.h... yes
checking for stdarg.h... yes
checking for unistd.h... yes
checking for sys/time.h... yes
checking for utime.h... yes
checking for sys/utime.h... no
checking for sys/select.h... yes
checking for sys/utsname.h... yes
checking for pwd.h... yes
checking for signal.h... yes
checking whether time.h and sys/time.h may both be included... yes
checking return type of signal handlers... void
checking for struct utimbuf... yes
checking for working alloca.h... no
checking for alloca... yes
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... yes
checking for strdup... yes
checking for strstr... yes
checking for strcasecmp... yes
checking for strncasecmp... yes
checking for gettimeofday... yes
checking for mktime... yes
checking for strptime... yes
checking for strerror... yes
checking for snprintf... yes
checking for vsnprintf... yes
checking for select... yes
checking for signal... yes
checking for symlink... yes
checking for access... yes
checking for isatty... yes
checking for uname... yes
checking for gethostname... yes
checking for gethostbyname... yes
checking for socket in -lsocket... no
checking for runtime libraries flag... "-R"
checking whether NLS is requested... yes
language catalogs: cs da de el es et fr gl hr it ja nl no pl pt_BR ru sk sl
sv tr zh_TW
checking for msgfmt... msgfmt
checking for xgettext... :
checking for gmsgfmt... msgfmt
checking for locale.h... yes
checking for libintl.h... no
checking for gettext... no
checking for gettext in -lintl... no
gettext not found; disabling NLS
checking for makeinfo... makeinfo
checking for perl5... no
checking for perl... no
checking for pod2man... no
updating cache ./config.cache
creating ./config.status
creating Makefile
creating src/Makefile
creating doc/Makefile
creating util/Makefile
creating po/Makefile.in
creating windows/Makefile
creating src/config.h
generating po/POTFILES from ./po/POTFILES.in
creating po/Makefile
$
The above shows that configure looked for the gettext library as well as perl (and in particular pod2man) and didn't find them. The former is needed for NLS (Native Language Support), and the latter to (produce and install) manual pages (as indicated by the Makefile and ChangeLog). This system doesn't have perl, but has gettext installed, and NLS is desired.
So we use swln to add the dependency:
$ /usr/local/bin/swln -vvv -T wget-1.7 gettext-0.10.40 -- scanning package gettext-0.10.40... .s /usr/local/pkgs/wget-1.7/include/libintl.h: linked [gettext-0.10.40] .d /usr/local/pkgs/wget-1.7/lib: created .s /usr/local/pkgs/wget-1.7/lib/charset.alias: linked [gettext-0.10.40] .s /usr/local/pkgs/wget-1.7/lib/libintl.a: linked [gettext-0.10.40] .s /usr/local/pkgs/wget-1.7/lib/libintl.la: linked [gettext-0.10.40] .s /usr/local/pkgs/wget-1.7/lib/libintl.so: linked [gettext-0.10.40] .s /usr/local/pkgs/wget-1.7/lib/libintl.so.1: linked [gettext-0.10.40] .s /usr/local/pkgs/wget-1.7/lib/libintl.so.1.1: linked [gettext-0.10.40] -- gettext-0.10.40: 7 link(s), 0 missed, 0 warning(s), 0 error(s) -- 1 package added $
And we start over. Notice the additional settings for configure:
$ make distclean for subdir in src doc po util windows; do target=`echo distclean-recursive | sed s/-recursive//`; (cd $subdir && make CC='gcc' CPPFLAGS='' DEFS='-DHAVE_CONFIG_H -DSYSTEM_WGETRC=\"/usr/local/pkgs/wget-1.7/etc/wgetrc\" -DLOCALEDIR=\"/usr/local/pkgs/wget-1.7/share/locale\"' CFLAGS='-g -O2' LDFLAGS='' LIBS='' prefix='/usr/local/pkgs/wget-1.7' exec_prefix='/usr/local/pkgs/wget-1.7' bindir='/usr/local/pkgs/wget-1.7/bin' infodir='/usr/local/pkgs/wget-1.7/info' mandir='/usr/local/pkgs/wget-1.7/man' manext='1' $target) || exit 1; done rm -f *.o wget *~ *.bak core *._o *._c rm -f Makefile config.h rm -f *~ *.bak *.cat *.pod *.html rm -f *.dvi *.aux *.cp *.cps *.fn *.toc *.tp *.vr *.ps *.ky *.pg *.log rm -f Makefile rm -f wget.1 ./texi2pod.pl rm -f core core.* *.pox wget.po *.old.po rm -fr *.o rm -f Makefile Makefile.in POTFILES *.mo *.msg rm -f Makefile rm -f Makefile rm -f *~ *.bak wget-1.7.tar.gz rm -f Makefile config.status config.log config.cache stamp-h $ CPPFLAGS=-I/usr/local/pkgs/wget-1.7/include CFLAGS=-L/usr/local/pkgs/wget-1.7/lib LDFLAGS=-R/usr/local/pkgs/wget-1.7/lib ./configure --prefix=/usr/local/pkgs/wget-1.7 creating cache ./config.cache configuring for GNU Wget 1.7 [...] checking whether NLS is requested... yes language catalogs: cs da de el es et fr gl hr it ja nl no pl pt_BR ru sk sl sv tr zh_TW checking for msgfmt... msgfmt checking for xgettext... : checking for gmsgfmt... msgfmt checking for locale.h... yes checking for libintl.h... yes checking for gettext... no checking for gettext in -lintl... yes checking for makeinfo... makeinfo checking for perl5... no checking for perl... no checking for pod2man... no updating cache ./config.cache creating ./config.status creating Makefile creating src/Makefile creating doc/Makefile creating util/Makefile creating po/Makefile.in creating windows/Makefile creating src/config.h generating po/POTFILES from ./po/POTFILES.in creating po/Makefile $
Once everything looks fine, it's just a matter of building and installing it:
$ make [...] $ make install cd src && make CC='gcc' CPPFLAGS='-I/usr/local/pkgs/wget-1.7/include' DEFS='-DHAVE_CONFIG_H -DSYSTEM_WGETRC=\"/usr/local/pkgs/wget-1.7/etc/wgetrc\" -DLOCALEDIR=\"/usr/local/pkgs/wget-1.7/share/locale\"' CFLAGS='-L/usr/local/pkgs/wget-1.7/lib' LDFLAGS='' LIBS='-lintl' prefix='/usr/local/pkgs/wget-1.7' exec_prefix='/usr/local/pkgs/wget-1.7' bindir='/usr/local/pkgs/wget-1.7/bin' infodir='/usr/local/pkgs/wget-1.7/info' mandir='/usr/local/pkgs/wget-1.7/man' manext='1' install.bin ../mkinstalldirs /usr/local/pkgs/wget-1.7/bin /usr/bin/install -c wget /usr/local/pkgs/wget-1.7/bin/wget cd doc && make CC='gcc' CPPFLAGS='-I/usr/local/pkgs/wget-1.7/include' DEFS='-DHAVE_CONFIG_H -DSYSTEM_WGETRC=\"/usr/local/pkgs/wget-1.7/etc/wgetrc\" -DLOCALEDIR=\"/usr/local/pkgs/wget-1.7/share/locale\"' CFLAGS='-L/usr/local/pkgs/wget-1.7/lib' LDFLAGS='' LIBS='-lintl' prefix='/usr/local/pkgs/wget-1.7' exec_prefix='/usr/local/pkgs/wget-1.7' bindir='/usr/local/pkgs/wget-1.7/bin' infodir='/usr/local/pkgs/wget-1.7/info' mandir='/usr/local/pkgs/wget-1.7/man' manext='1' install.info ../mkinstalldirs /usr/local/pkgs/wget-1.7/info for file in wget.info wget.info-*[0-9]; do test -f $file && /usr/bin/install -c -m 644 $file /usr/local/pkgs/wget-1.7/info/$file ; done cd doc && make CC='gcc' CPPFLAGS='-I/usr/local/pkgs/wget-1.7/include' DEFS='-DHAVE_CONFIG_H -DSYSTEM_WGETRC=\"/usr/local/pkgs/wget-1.7/etc/wgetrc\" -DLOCALEDIR=\"/usr/local/pkgs/wget-1.7/share/locale\"' CFLAGS='-L/usr/local/pkgs/wget-1.7/lib' LDFLAGS='' LIBS='-lintl' prefix='/usr/local/pkgs/wget-1.7' exec_prefix='/usr/local/pkgs/wget-1.7' bindir='/usr/local/pkgs/wget-1.7/bin' infodir='/usr/local/pkgs/wget-1.7/info' mandir='/usr/local/pkgs/wget-1.7/man' manext='1' install.wgetrc ../mkinstalldirs /usr/local/pkgs/wget-1.7/etc cd po && make CC='gcc' CPPFLAGS='-I/usr/local/pkgs/wget-1.7/include' DEFS='-DHAVE_CONFIG_H -DSYSTEM_WGETRC=\"/usr/local/pkgs/wget-1.7/etc/wgetrc\" -DLOCALEDIR=\"/usr/local/pkgs/wget-1.7/share/locale\"' CFLAGS='-L/usr/local/pkgs/wget-1.7/lib' LDFLAGS='' LIBS='-lintl' prefix='/usr/local/pkgs/wget-1.7' exec_prefix='/usr/local/pkgs/wget-1.7' bindir='/usr/local/pkgs/wget-1.7/bin' infodir='/usr/local/pkgs/wget-1.7/info' mandir='/usr/local/pkgs/wget-1.7/man' manext='1' install.mo mkdir /usr/local/pkgs/wget-1.7/share/locale mkdir /usr/local/pkgs/wget-1.7/share/locale/cs mkdir /usr/local/pkgs/wget-1.7/share/locale/cs/LC_MESSAGES installing cs.gmo as /usr/local/pkgs/wget-1.7/share/locale/cs/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/da mkdir /usr/local/pkgs/wget-1.7/share/locale/da/LC_MESSAGES installing da.gmo as /usr/local/pkgs/wget-1.7/share/locale/da/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/de mkdir /usr/local/pkgs/wget-1.7/share/locale/de/LC_MESSAGES installing de.gmo as /usr/local/pkgs/wget-1.7/share/locale/de/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/el mkdir /usr/local/pkgs/wget-1.7/share/locale/el/LC_MESSAGES installing el.gmo as /usr/local/pkgs/wget-1.7/share/locale/el/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/es mkdir /usr/local/pkgs/wget-1.7/share/locale/es/LC_MESSAGES installing es.gmo as /usr/local/pkgs/wget-1.7/share/locale/es/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/et mkdir /usr/local/pkgs/wget-1.7/share/locale/et/LC_MESSAGES installing et.gmo as /usr/local/pkgs/wget-1.7/share/locale/et/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/fr mkdir /usr/local/pkgs/wget-1.7/share/locale/fr/LC_MESSAGES installing fr.gmo as /usr/local/pkgs/wget-1.7/share/locale/fr/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/gl mkdir /usr/local/pkgs/wget-1.7/share/locale/gl/LC_MESSAGES installing gl.gmo as /usr/local/pkgs/wget-1.7/share/locale/gl/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/hr mkdir /usr/local/pkgs/wget-1.7/share/locale/hr/LC_MESSAGES installing hr.gmo as /usr/local/pkgs/wget-1.7/share/locale/hr/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/it mkdir /usr/local/pkgs/wget-1.7/share/locale/it/LC_MESSAGES installing it.gmo as /usr/local/pkgs/wget-1.7/share/locale/it/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/ja mkdir /usr/local/pkgs/wget-1.7/share/locale/ja/LC_MESSAGES installing ja.gmo as /usr/local/pkgs/wget-1.7/share/locale/ja/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/nl mkdir /usr/local/pkgs/wget-1.7/share/locale/nl/LC_MESSAGES installing nl.gmo as /usr/local/pkgs/wget-1.7/share/locale/nl/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/no mkdir /usr/local/pkgs/wget-1.7/share/locale/no/LC_MESSAGES installing no.gmo as /usr/local/pkgs/wget-1.7/share/locale/no/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/pl mkdir /usr/local/pkgs/wget-1.7/share/locale/pl/LC_MESSAGES installing pl.gmo as /usr/local/pkgs/wget-1.7/share/locale/pl/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/pt_BR mkdir /usr/local/pkgs/wget-1.7/share/locale/pt_BR/LC_MESSAGES installing pt_BR.gmo as /usr/local/pkgs/wget-1.7/share/locale/pt_BR/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/ru mkdir /usr/local/pkgs/wget-1.7/share/locale/ru/LC_MESSAGES installing ru.gmo as /usr/local/pkgs/wget-1.7/share/locale/ru/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/sk mkdir /usr/local/pkgs/wget-1.7/share/locale/sk/LC_MESSAGES installing sk.gmo as /usr/local/pkgs/wget-1.7/share/locale/sk/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/sl mkdir /usr/local/pkgs/wget-1.7/share/locale/sl/LC_MESSAGES installing sl.gmo as /usr/local/pkgs/wget-1.7/share/locale/sl/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/sv mkdir /usr/local/pkgs/wget-1.7/share/locale/sv/LC_MESSAGES installing sv.gmo as /usr/local/pkgs/wget-1.7/share/locale/sv/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/tr mkdir /usr/local/pkgs/wget-1.7/share/locale/tr/LC_MESSAGES installing tr.gmo as /usr/local/pkgs/wget-1.7/share/locale/tr/LC_MESSAGES/wget.mo mkdir /usr/local/pkgs/wget-1.7/share/locale/zh_TW mkdir /usr/local/pkgs/wget-1.7/share/locale/zh_TW/LC_MESSAGES installing zh_TW.gmo as /usr/local/pkgs/wget-1.7/share/locale/zh_TW/LC_MESSAGES/wget.mo if test "wget" = "gettext"; then /usr/bin/install -c -m 644 ./Makefile.in.in /usr/local/pkgs/wget-1.7/share/gettext/po/Makefile.in.in; else : ; fi
Once the software is successfully built and installed, it is now just a matter of cleaning up and putting the finishing touches:
$ swdirs -d wget-1.7
$ swrecord wget-1.7
Recording information about package "wget-1.7" in .swrecord
$ swperms wget-1.7
Looking for bad (as in problematic) permissions:
If there was any output above,
then you MOST certainly have to fix permissions by hand.
(it is possible that this package needs to be installed as root.)
If not, then you should run the following as root:
chown -hR 0:0 /usr/local/pkgs/wget-1.7
# chown -hR 0:0 /usr/local/pkgs/wget-1.7
# swln -vv wget-1.7
-- scanning package wget-1.7...
.s /usr/local/bin/wget: linked [wget-1.7]
-- 1 package added
#
That's all!
In summary, here is how things look like once wget has been installed with a dependency on gettext:
$ swln -T wget-1.7 -i gettext-0.10.40 $ ldd /usr/local/pkgs/wget-1.7/bin/wget /usr/local/pkgs/wget-1.7/bin/wget: -lintl.1 => /usr/local/pkgs/wget-1.7/lib/libintl.so.1 -lc.12 => /usr/lib/libc.so.12 $ ls -l /usr/local/pkgs/wget-1.7/lib/libintl.so.1 lrwxr-xr-x 1 root wheel 48 Oct 29 19:43 /usr/local/pkgs/wget-1.7/lib/libintl.so.1 -> /usr/local/pkgs/gettext-0.10.40/lib/libintl.so.1 $ cat /usr/local/pkgs/gettext-0.10.40/.swrc deplink ^include deplink ^lib $
© 2001-2008 - Christophe Kalt