Com­pil­ing Samba 3.5.8 with AD sup­port on Sol­ar­is 10 u8

If someone needs a samba which is able to com­mu­nic­ate with an AD 2008 serv­er on a Sol­ar­is 10 sys­tem… here is how I did it.


  • /​opt/​SUNWspro con­tains the Stu­dio 12 com­piler
  • tar­balls of open­ldap–stable-20100719 (2.4.23), heimdal-1.4, samba-3.5.8
  • ex­port PATH=/opt/SUNWspro/bin:/usr/xpg6/bin:/usr/xpg4/bin:/usr/perl5/bin:/usr/bin:/usr/openwin/bin:/bin:/usr/sfw/bin:/usr/sfw/sbin:/sbin:/usr/sbin:/usr/sadm/admin/bin:/usr/sadm/bin:/usr/java/jre/bin:/usr/ccs/bin:/usr/ucb CC=cc CXX=CC
  • DEST=/path/to/final/location

Com­pil­ing everything

openldap-​stable-​20100719 (2.4.23)

ex­port CPPFLAGS=”-I/usr/sfw/include” LDFLAGS=”-L/usr/sfw/lib -R/​usr/​sfw/​lib”
./​configure –pre­fix=$DEST/openldap-2.4.23 –disable-​slapd
make de­pend
make in­stall


./​configure –prefix=$DEST/heimdal-1.4 –with-openldap=$DEST/openldap-2.4.23 –with-hdbdir=$DEST/heimdal-instance/var/heimdal –sysconfdir=$DEST/heimdal-instance/etc
cd lib/​hcrypto/​libtommath

Un­for­tu­nately heimdal-1.4 does not con­tain all the files you need. As of this writ­ing (if you try to do this a lot later, you may get more re­cent ver­sions which may or may not work with heim­dal 1.4) I was able to down­load them from

cd ../../..
make in­stall
mk­dir -p $DEST/​heimdal-​instance/​var/​heimdal $DEST/​heimdal-​instance/​etc


ex­port CPPFLAGS=”-I$DEST/openldap-2.4.23/include” LDFLAGS=”-L$DEST/openldap-2.4.23/lib -R$DEST/openldap-2.4.23/lib -R$DEST/samba-3.5.8/lib -R$DEST/heimdal-1.4/lib”
./​configure –prefix=$DEST/samba-3.5.8 –sysconfdir=$DEST/samba-instance/etc –localstatedir=$DEST/samba-instance/var –with-privatedir=$DEST/samba-instance/private –with-lockdir=$DEST/samba-instance/var/locks –with-statedir=$DEST/samba-instance/var/locks –with-cachedir=$DEST/samba-instance/var/locks –with-piddir=$DEST/samba-instance/var/locks –with-ncalrpcdir=$DEST/samba-instance/var/ncalrpc –with-configdir=$DEST/samba-instance/con­fig –with-​ldap –with-krb5=$DEST/heimdal-1.4 –with-​ads –with-​quotas –with-​aio-​support –with-shared-modules=vfs_zfsacl
gmake in­stall

After that you have a samba in $DEST/samba-3.5.8, the con­fig for it should be put in­to $DEST/​samba-​instance/​config and if you need to have a cus­tom krb4.conf you can put it int $DEST/​heimdal-​instance/​etc/​.

On the way to solve the CUPS prob­lem

I opened a bug re­port for the prob­lem (have a look at the re­lated posts be­low) and got the re­sponse that it is a prob­lem in pstoras­ter. This means it is a prob­lem in ghost­script, not in CUPS.

So I had a look at pstoras­ter and seen that CUPS_​FONTPATH is ad­ded to GS_​LIB. The­or­et­ic­ally it should solve my is­sue when I set CUPS_​FONTPATH, but this as­sumes I can do it without CUPS dis­card­ing my set­tings.

Un­for­tu­nately this as­sump­tion is not true. I tried it and I still see the same be­ha­vi­or as be­fore.

More prob­lems with CUPS (passing env vari­ables)

Sat­urday I had to print a post­script file. The file was gen­er­ated out of a tem­plate which I wrote my­self by hand sev­er­al years ago. There I use a non-​standard PS font which can not be changed. The font is not em­bed­ded, and I can print it via ghost­script by telling it the loc­a­tion where the font files are loc­ated (ex­port GS_LIB=/path/to/dir1/path/to/dir2). Now that I switched to use CUPS as my print­serv­er soft­ware, I had to teach it to set this for the call to gs (via foomat­ic). Un­for­tu­nately I failed to get it work­ing via the CUPS con­fig.

I ad­ded “SetEnv GS_​LIB /path/to/dir1:/path/to/dir2” to cups.conf and re­star­ted CUPS. This did not work. I ad­ded “PassEnv GS_​LIB” to cups.conf, ad­ded an ap­pro­pri­ate ex­port of GS_​LIB to /etc/rc.conf (just to make sure… I still had the SetEnv in cups.conf) and re­star­ted CUPS. This did not work either.

As I just wanted to print out some­thing and did not want to spend my time de­bug­ging this, I put a work­around in­to place: I moved gsc to gsc.bin and cre­ated a little shell script as gsc which sets the vari­able and starts gsc.bin.

At the next up­date of ghost­script this will break my print­ing (if I for­get that I have this work­around in place), so I should try to get some time to fix this. Maybe I can fix this by adding “env GS_​LIB=…” to the call of gs in the ppd, but this seems more like an­oth­er work­around to me, than a real fix.