[geeks] Thoughts? (Cheap NAS with nice feature set)

Jonathan Groll lists at groll.co.za
Sun Apr 6 15:37:24 CDT 2008


On Sat, Apr 05, 2008 at 11:16:10AM -0400, Shannon Hendrix wrote:
> On Apr 5, 2008, at 07:58 , Michael-John Turner wrote:
> 
> >On Fri, Apr 04, 2008 at 04:16:14PM -0400, Alois Hammer wrote:
> >>And, honestly?  I can't stand Sun Solaris.  The userland tools are
> >>terrible, and getting good GNU tools on seems to be an exercise in
> >>hair-pulling, cursing, and wondering why stuff doesn't get updated  
> >>for
> >>months or longer.  (Or has someone produced an alternative to
> >>SunFreeware?)
> >
> >Sorry to sound like a stuck record, but pkgsrc works pretty well on
> >Solaris (not perfectly mind you). A fair amount of the GNU toolset  
> >is there
> >and should work out the box.
> 
> I'm experimenting with it now.
> 
> I've used it for years on NetBSD.
> 
> Do you use zones?  How do you put packages in a zone?
> 
> I was planning to build the packages in the global zone, and then copy  
> them to a zone and install them there.
> 
> Have you had any issues I should plan for?
> 
> Also, what compiler setup do you use for pkgsrc?
> 
> So far the stuff that came with the machine and Blastwave gcc, besides  
> being far outdated, won't build anything.
> 
> I keep getting GNU C shared object library errors.  Usually it is an  
> ld error about libgcc_so.1 missing.
> 
> Do I need to use the pkgsrc GNU compilers and bootstrap them?
> 
> I would really like to install one compiler for everything and use it,  
> if possible.
> 
Sorry, can't answer the zones questions as I don't use zones on my
opensolaris machine which is an U60 that I use exclusively as a
secondary workstation controlled by synergy from a more powerful
machine sitting next to it. I should probably be running netbsd or
freebsd on it, but for me its been a big bonus to have a relatively
recent version of firefox running on it without any funnies; my other
ultra60 is running freebsd 7 so I can use it for ZFS (more at the end
of this mail).

I've done extensive testing of both sun and gcc compilers under
opensolaris nevada (b66+) to see which builds the most packages
succesfully and had greatest success with the version of gcc supplied
by sun, which on build 85 shows itself to be: 
/usr/sfw/bin/gcc -v 
gcc version 3.4.3 (csl-sol210-3_4-20050802)

Not sure if you're running with solaris 10 or 11, but if 10 I suspect
the version of gcc that ships is just too old.

The sunstudio11 and 12 compilers worked reasonably well, except they
had the shortcomings that some packages such as synergy failed to
compile without error. Similarly, there were some issues getting the
version of gcc supplied by pkgsrc to bootstrap itself successfully
(the version of gcc that I have built in my pkgsrc is 3.3.6). Like
you, I would like all my pkgsrc packages (and shared libraries) to be
built with the same compiler.

There were some interesting instructions that I did find out on the
web telling one how to bootstrap pkgsrc gcc, but I think they were
most applicable to solaris 9:
http://www.drxyzzy.org/opsys/pkgsrc-sol9.html

Here is what my mk.conf looks like
cat mk.conf.regular 
# Example /usr/pkg/etc/mk.conf file produced by bootstrap-pkgsrc
# Thu Jul 12 22:10:32 SAST 2007

.ifdef BSD_PKG_MK       # begin pkgsrc settings

PKGSRC_COMPILER=        gcc
PKG_DBDIR=              /var/db/pkg
LOCALBASE=              /usr/pkg
VARBASE=                /var
PKG_TOOLS_BIN=          /usr/pkg/sbin
PKGMANDIR=              man


CC= /usr/sfw/bin/gcc

TOOLS_PLATFORM.awk?=            /usr/pkg/bin/nawk
TOOLS_PLATFORM.sed?=            /usr/pkg/bin/nbsed
FETCH_CMD=                      /usr/pkg/bin/ftp
TOOLS_PLATFORM.pax?=            /usr/pkg/bin/pax
TOOLS_PLATFORM.tar?=            /usr/pkg/bin/tar
TOOLS_PLATFORM.mtree?=          /usr/pkg/sbin/mtree

TOOLS_PLATFORM.ar=      /usr/ccs/bin/ar
TOOLS_PLATFORM.nm=      /usr/ccs/bin/nm
TOOLS_PLATFORM.ranlib=  /usr/ccs/bin/ranlib
USE_TOOLS+=             ar nm ranlib

#ABI=                    64
.endif                  # end pkgsrc settings

There was a message from Hubert Feyrer last year on pkgsrc-users where
he said that he was having problems building libiconv on Solaris
9/x86, I don't know if he managed to solve it. Interestingly enough he
is one of the author's of the pkgsrc user's guide which also says: 
"Please note that the use of GNU binutils on Solaris is not supported,          
as of June 2006."                                                               
Hence the stanza starting with TOOLS_PLATFORM variables pointing to
/usr/ccs/bin/... in my mk.conf.

Also, note the pkgsrc users guide says (relevant up to and including
solaris 9):
"It is recommended that an external gcc be used only for
bootstrapping,         
then either build gcc from lang/gcc or install a binary gcc package,            
then remove gcc used during bootstrapping."                                     
I don't believe the above to be correct anymore for solaris 11 - just
using the version of gcc from /usr/sfw/bin/gcc gave me best results.                                                                             
If you'd like binary packages for solaris 11 (sparc64) I can offer you
the following (yes some of them could do with updating!):
bash-3.2$ /usr/pkg/sbin/pkg_info -a
bootstrap-mk-files-20061111 *.mk files for the bootstrap bmake utility
bmake-20051105nb3   Portable (autoconf) version of NetBSD 'make'
utility
nawk-20050424       Brian Kernighan's pattern-directed scanning and
processing 
nbsed-20040821nb1   NetBSD-current's sed(1)
tnftp-20050625nb1   The enhanced FTP client in NetBSD
mtree-20070710      Utility for mapping and checking directory
hierarchies
pax-20060202nb1     POSIX standard archiver with many extensions
pkg_install-20070710 Package management and administration tools for
pkgsrc
digest-20060826     Message digest wrapper utility
audit-packages-1.46 Tools to show vulnerabilities in installed
packages
pkg_install-info-4.5nb3 Standalone GNU info file installation utility
m4-1.4.9nb1         GNU version of UNIX m4 macro language processor
libiconv-1.11       Character set conversion library
gettext-lib-0.14.6  Internationalized Message Handling Library
(libintl)
bison-2.3           GNU yacc(1) replacement
cvs-1.11.21         Concurrent Versions System
db4-4.5.20.2        Berkeley DB version 4 from Oracle
perl-5.8.8nb4       Practical Extraction and Report Language
jpeg-6bnb4          IJG's jpeg compression utilities
tiff-3.8.2nb3       Library and tools for reading and writing TIFF
data files
libungif-4.1.4nb1   Tools and library routines for working with GIF
images
png-1.2.18          Library for manipulating PNG images
emacs-22.1          GNU editing macros (editor)
gcc3-c-3.3.6        GNU Compiler Collection, v3 - C compiler
gcc3-c++-3.3.6      GNU Compiler Collection, v3 - C++ compiler
gettext-tools-0.14.6 Tools for providing messages in different
languages
glib2-2.12.12       Some useful routines for C programming (glib2)
gmake-3.81          GNU version of 'make' utility
gtar-base-1.15.1nb4 The GNU tape archiver with remote magnetic tape
support
gtar-info-1.15.1nb1 Info format documentation for the GNU tape
archiver
gtar-1.15.1nb1      The "meta-package" for the GNU tape archiver (tar)
gtexinfo-4.8nb7     GNU info documentation utilities
inputproto-1.4.1    Input extension headers from X.org
libslang-1.4.9nb5   Routines for rapid alpha-numeric terminal
applications deve
libtool-base-1.5.22nb4 Generic shared library support script (the
script itself
unzip-5.52nb3       List, test and extract compressed files in a ZIP
archive
mc-4.6.1nb3         User-friendly file manager and visual shell
ncurses-5.6nb1      CRT screen handling and optimization package
openssl-0.9.7inb3   Secure Socket Layer and cryptographic library
tcp_wrappers-7.6.1nb4 Monitor and filter incoming requests for network
services
openssh-4.6.1       Open Source Secure shell client and server (remote
login pr
p5-MIME-Base64-3.07 Perl5 module for Base64 and Quoted-Printable
encodings
p5-Digest-1.15      Perl5 base class for Digest:: modules
p5-Digest-SHA1-2.11 Perl5 module for SHA1
p5-enum-1.016       Enumerations for Perl
p5-pkgsrc-Dewey-1.0nb1 Perl module to compare pkgsrc Dewey numbers
patch-2.5.4nb2      Patch files using diff output
pkg-config-0.21nb1  System for managing library compile/link flags
pkg_chk-1.85nb6     Check installed package versions against pkgsrc
pkg_tarup-1.6.6     Generates binary package(s) from installed pkg(s)
pkg_rolling-replace-0.04nb9 Replace/upgrade packages in-place
pkglint-4.77        Verifier for NetBSD packages and complete pkgsrc
tree
ruby18-base-1.8.6nb1 Ruby 1.8 based release minimum package
rubygems-0.9.4      Ruby standard for publishing and managing third
party libra
screen-4.0.3        Multi-screen window manager
skey-1.1.5nb2       Port of OpenBSD s/key implementation
synergy-1.3.1nb2    Let an user share a mouse and keyboard among
computers
vim-share-7.1.18    Data files for the vim editor (vi clone)
vim-7.1.18          Vim editor (vi clone) without GUI
wget-1.10.2nb1      Retrieve files from the 'net via HTTP and FTP
x11-links-0.31      Shadow tree of links to native X11 headers and
libraries
xextproto-7.0.2     XExt extension headers from X.org

Like others in this thread I find the multitude of places where you
find things and set things on solaris just too much work. Plus, its a
matter of the community just not being there in the same way that it
is there for other free operating systems; as an example I would like
to add some large SATA drives to my one U60 to play with ZFS; there
are only a handful of PCI controller cards that have drivers for SPARC
on opensolaris (eg. the silicon image 3124??, but such cards are rare
and expensive). Drivers for cheaper cards exist in the x86 source
tree, and tadpole have developed their own closed source drivers for
sparc as well. Now I could put in a bit of the grunt work and
write/port a driver myself, but why should I when there are others who
could help me but aren't able/allowed to, AND when there are perfectly
good drivers available for my Sil3152 under freebsd? So oddly enough I
also am now experimenting with ZFS under freebsd on my other U60.

Cheers,
Jonathan



More information about the geeks mailing list