Difference between revisions of "CUPS"

From CBLFS
Jump to navigationJump to search
(I fixed the lp group/user numbers to match CLFS.)
Line 31: Line 31:
 
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.
 
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 ==
+
== Creating the lp 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 10 lp
  
useradd -c "Print Service User" -d /dev/null -g 9 lp -s /bin/false -u 10 lp
+
== Non-Multilib ==
  
 
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:
Line 64: Line 64:
  
 
== Multilib ==
 
== 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 ===
 
=== 32Bit ===

Revision as of 17:24, 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.

Creating the lp User

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

Non-Multilib

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

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
Retrieved from "?title=CUPS&oldid=7061"