=====Requirements===== ====Softwares==== * cvs (I used the sunfreeware's package) ====Packages==== * SUNWgccruntime * SUNWgcc * SUNWhea * SUNWgzip * SUNWbinutils * SUNWsprot * SUNWarc * SUNWbtool * SUNWtoo * SUNWscpr * SUNWscpu * SUNWxcu4 * SUNWlibmr * SUNWlibm * SUNWxwinc I recommand to use softpartitions for both /usr/pkg and /usr/pkgsrc ====Get pkgsrc==== ===Via CVS=== # export CVSROOT=anoncvs@anoncvs.NetBSD.org:/cvsroot # export CVS_RSH=ssh # cd /usr # cvs checkout -P pkgsrc =====Installation==== ====Bootstraping==== ===GCC=== # export PATH=$PATH:/usr/sfw/bin:/usr/ccs/bin # echo CC=gcc > /etc/mk.conf # cd /usr/pkgsrc/bootstrap # ./bootstrap ===Sun Studio=== # export PATH=/opt/SUNWspro/bin:$PATH # echo CC=cc > /etc/mk.conf # echo PKGSRC_COMPILER=sunpro >> /etc/mk.conf # export CC=cc # cd /usr/pkgsrc/bootstrap # ./bootstrap =====Usage===== ====Settings==== # export PATH=$PATH:/usr/pkg/bin:/usr/pkg/sbin ====Sample==== # cd /usr/pkgsrc/pkgtools/pkgfind # bmake install ====Targets==== ^ Target ^ Description ^ | show-depends-dir | Show dependencies | | show-options | Show available options for the current port | ====mk.conf=== ===UID/GID=== APACHE_USER=webservd APACHE_GROUP=webservd SQUID_USER=webservd SQUID_GROUP=webservd MAILMAN_MAILGROUP=nobody ===Specify an option for a specific package=== PKG_OPTIONS.squid=ssl opt2 PKG_OPTIONS.postfix=pcre sasl tls bdb ===Apache stuff=== PKG_APACHE=apache2 PKG_PHP=php4 ====Notes==== * Take a look in /usr/pkgsrc/mk/platform/SunOS.mk for variables you can override with /etc/mk.conf * Some packages won't build in solaris, butt few of them can be easily repaired * If you have trouble to build a package, try to set PKG_DEBUG_LEVEL to 1 =====Troubleshootings===== ==== Python ==== If you have the following error : Objects/complexobject.c: In function `complex_pow': Objects/complexobject.c:469: error: invalid operands to binary == Objects/complexobject.c:469: error: wrong type argument to unary minus Objects/complexobject.c:469: error: invalid operands to binary == Objects/complexobject.c:469: error: wrong type argument to unary minus edit the file //./work/Python-2.3.5/Include/pyport.h//, search for #define Py_HUGE_VAL HUGE_VAL set it to #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE #endif The following Makefile patch is also available, but didn't work here : +.if ${OPSYS} == "SunOS" && ${CC} == "gcc" +#workaround for bug with Solaris/gcc : __builtin_huge_val is a func. in that case, but not declare as in Solaris header. +CONFIGURE_ARGS+= OPT="${CFLAGS} -D\"Py_HUGE_VAL=__builtin_huge_val()\"" +.else CONFIGURE_ARGS+= OPT="${CFLAGS}" +.endif ====netpbm==== __Makefile.patch__ 28a29,30 > > 55a58,61 > > .if ${OPSYS} == "SunOS" && ${OS_VERSION} == "5.10" > CFLAGS+= -ansi -D__EXTENSIONS__ > .endif # cd /usr/pkgsrc/graphics/netpbm # patch Makefile < Makefile.patch ====libtool ==== If you have strange segfault with libtool, try to change the shebang (the first line) of /usr/pkg/bin/libtool from #! /bin/ksh to #! /usr/bin/bash ====libstdc++.la==== Use the following to replace libstcd++.la file : __/usr/sfw/lib/libstdc++.la__ # libstdc++.la - a libtool library file # Generated by ltmain.sh - GNU libtool 1.4a-GCC3.0 (1.641.2.256 2001/05/28 20:09:07 with GCC-local changes) # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='libstdc++.so.6' # Names of this library. library_names='libstdc++.so.6.0.3 libstdc++.so.6 libstdc++.so' # The name of the static archive. old_library='libstdc++.a' # Libraries that this one depends upon. dependency_libs='-lc -lm -L/usr/sfw/lib -lgcc_s' # Version information for libstdc++. current=6 age=0 revision=3 # Is this an already installed library? installed=yes # Files to dlopen/dlpreopen dlopen='' dlpreopen='' # Directory that this library needs to be installed in: libdir='/usr/sfw/lib' __/usr/sfw/lib/64/libstdc++.la__ # libstdc++.la - a libtool library file # Generated by ltmain.sh - GNU libtool 1.4a-GCC3.0 (1.641.2.256 2001/05/28 20:09:07 with GCC-local changes) # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='libstdc++.so.6' # Names of this library. library_names='libstdc++.so.6.0.3 libstdc++.so.6 libstdc++.so' # The name of the static archive. old_library='libstdc++.a' # Libraries that this one depends upon. dependency_libs='-L/lib/64 -lc -lm -L/usr/sfw/lib/64 -lgcc_s' # Version information for libstdc++. current=6 age=0 revision=3 # Is this an already installed library? installed=yes # Files to dlopen/dlpreopen dlopen='' dlpreopen='' # Directory that this library needs to be installed in: libdir='/usr/sfw/lib/64' ====XML::Parser==== This perl module require libexpat, which comes with both Solaris itself and pkgsrc. I don't why, but if you build the module with the pkgsrc's libexpat, an error occured while loading libexpat. So, you need to build XML::Parser with the Solaris's libexpat. * Install SUNWsfwhea * Edit the following file __/usr/pkgsrc/textproc/p5-XML-Parser/Makefile__, in order to have something like : [..] .include "../../mk/bsd.pkg.mk" .if ${OPSYS} == "SunOS" && ${OS_VERSION} == "5.10" MAKE_PARAMS+= EXPATLIBPATH=/usr/sfw/lib MAKE_PARAMS+= EXPATINCPATH=/usr/sfw/include .else MAKE_PARAMS+= EXPATLIBPATH=${BUILDLINK_PREFIX.expat}/lib MAKE_PARAMS+= EXPATINCPATH=${BUILDLINK_PREFIX.expat}/include .endif