Difference between revisions of "CUPS"

From CBLFS
Jump to navigationJump to search
(I added instructions for uncompressing the man pages. They are unfortunately quite long, but my attempts to use backslashes to put them on multiple lines failed.)
(I fixed the lp group/user numbers to match CLFS.)
Line 35: Line 35:
 
Create an lp user, as CUPS will install the lppasswd command SUID to this user. Use the following command as the root  user:
 
Create an lp user, as CUPS will install the lppasswd command SUID to this user. Use the following command as the root  user:
  
  useradd -c "Print Service User" -d /dev/null -g lp -s /bin/false -u 9 lp
+
  useradd -c "Print Service User" -d /dev/null -g 9 lp -s /bin/false -u 10 lp
  
 
If you utilize Linux-PAM, you need to modify some files so CUPS can find needed headers. Make the appropriate modifications using the following command:
 
If you utilize Linux-PAM, you need to modify some files so CUPS can find needed headers. Make the appropriate modifications using the following command:

Revision as of 17:16, 14 January 2007

Download Source: http://ftp.easysw.com/pub/cups/1.6.4/cups-1.6.4-source.tar.bz2

Introduction to CUPS

The Common Unix Printing System (CUPS) is a print spooler and associated utilities. It is based on the "Internet Printing Protocol" and provides printing services to most PostScript and raster printers.

Dependencies

Required

Optional

Note to DESTDIR Fans

Unfortunately the CUPS package ignores DESTDIR. However, CUPS has the variable BUILDROOT which has the same function, so if you use that instead, it'll be the same as using DESTDIR normally is.

Non-Multilib

Create an lp user, as CUPS will install the lppasswd command SUID to this user. Use the following command as the root user:

useradd -c "Print Service User" -d /dev/null -g 9 lp -s /bin/false -u 10 lp

If you utilize Linux-PAM, you need to modify some files so CUPS can find needed headers. Make the appropriate modifications using the following command:

sed -i -e "s@pam/pam@security/pam@g" \
{config-scripts/cups-pam.m4,scheduler/auth.c,configure}

Compile the package:

./configure &&
make

Install the package

make install

CUPS' man pages are compressed. If want to compress them, use the following commands:

gunzip -v /usr/share/man/man1/{cancel,cups{-config,test{dsc,ppd}},lp{,options,passwd,q,rm,r,stat}}.1.gz
gunzip -v /usr/share/man/man5/{{classes,client,cups-snmp,cupsd,printers,subscriptions,mailto}.conf,mime.{convs,types}}.5.gz
gunzip -v /usr/share/man/man7/{backend,filter}.7
gunzip -v /usr/share/man/man8/{accept,cups{d,addsmb,enable,-{deviced,driverd,lpd,polld,}},lp{admin,info,move,c}}.8.gz
 rm -v /usr/share/man/man8/{reject,cupsdisable}.8.gz
 ln -sv accept.8 /usr/share/man/man8/reject.8
 ln -sv cupsenable.8 /usr/share/man/man8/cupsdisable.8

Multilib

Create an lp user, as CUPS will install the lppasswd command SUID to this user. Use the following command as the root user:

useradd -c "Print Service User" -d /dev/null -g lp -s /bin/false -u 9 lp

32Bit

If you utilize Linux-PAM, you need to modify some files so CUPS can find needed headers. Make the appropriate modifications using the following command:

sed -i -e "s@pam/pam@security/pam@g" \
{config-scripts/cups-pam.m4,scheduler/auth.c,configure}

Compile the package:

CC="gcc ${BUILD32}" CXX="g++ ${BUILD32}" USE_ARCH=32 ./configure \
    --libdir=/usr/lib &&
make

Install the package

make install &&
mv -v /usr/bin/cups-config{,-32}

N32

If you utilize Linux-PAM, you need to modify some files so CUPS can find needed headers. Make the appropriate modifications using the following command:

sed -i -e "s@pam/pam@security/pam@g" \
{config-scripts/cups-pam.m4,scheduler/auth.c,configure}

Compile the package:

CC="gcc ${BUILDN32}" CXX="g++ ${BUILDN32}" USE_ARCH=n32 ./configure \
    --libdir=/usr/lib32 &&
make

Install the package

make install &&
mv -v /usr/bin/cups-config{,-n32}

64Bit

If you utilize Linux-PAM, you need to modify some files so CUPS can find needed headers. Make the appropriate modifications using the following command:

sed -i -e "s@pam/pam@security/pam@g" \
{config-scripts/cups-pam.m4,scheduler/auth.c,configure}

Compile the package:

CC="gcc ${BUILD64}" CXX="g++ ${BUILD64}" USE_ARCH=64 ./configure \
    --libdir=/usr/lib64 &&
make

Install the package

make install &&
mv -v /usr/bin/cups-config{,-64} &&
ln -sfv multiarch_wrapper /usr/bin/cups-config

CUPS' man pages are compressed. If want to uncompress them, use the following commands:

gunzip -v /usr/share/man/man1/{cancel,cups{-config,test{dsc,ppd}},lp{,options,passwd,q,rm,r,stat}}.1.gz
gunzip -v /usr/share/man/man5/{{classes,client,cups-snmp,cupsd,printers,subscriptions,mailto}.conf,mime.{convs,types}}.5.gz
gunzip -v /usr/share/man/man7/{backend,filter}.7
gunzip -v /usr/share/man/man8/{accept,cups{d,addsmb,enable,-{deviced,driverd,lpd,polld,}},lp{admin,info,move,c}}.8.gz
 rm -v /usr/share/man/man8/{reject,cupsdisable}.8.gz
 ln -sv accept.8 /usr/share/man/man8/reject.8
 ln -sv cupsenable.8 /usr/share/man/man8/cupsdisable.8

Configuring

BootScript

Install the init script included in the blfs-bootscripts package.

make install-cups