From 32ffbe8ed4c7a036594e4b23ad28a3932c084270 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 17 Oct 2012 18:25:41 +0200 Subject: [PATCH] packaging: Move smbprint to a comman location. This also removes all the duplicate smbprint scripts. This fixes bug #9301. Signed-off-by: Andreas Schneider --- examples/printing/smbprint | 176 ---------------------------- packaging/RHEL-CTDB/samba.spec.tmpl | 2 +- packaging/RHEL-CTDB/setup/smbprint | 84 ------------- packaging/RHEL/samba.spec.tmpl | 2 +- packaging/printing/README | 3 + packaging/{RHEL/setup => printing}/smbprint | 14 +-- 6 files changed, 12 insertions(+), 269 deletions(-) delete mode 100755 examples/printing/smbprint delete mode 100644 packaging/RHEL-CTDB/setup/smbprint create mode 100644 packaging/printing/README rename packaging/{RHEL/setup => printing}/smbprint (91%) diff --git a/examples/printing/smbprint b/examples/printing/smbprint deleted file mode 100755 index 375f29f..0000000 --- a/examples/printing/smbprint +++ /dev/null @@ -1,176 +0,0 @@ -#!/bin/bash - -# This script is an input filter for printcap printing on a unix machine. It -# uses the smbclient program to print the file to the specified smb-based -# server and service. -# For example you could have a printcap entry like this -# -# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint -# -# which would create a unix printer called "smb" that will print via this -# script. You will need to create the spool directory /usr/spool/smb with -# appropriate permissions and ownerships for your system. - -# Set these to the server and service you wish to print to -# In this example I have a WfWg PC called "lapland" that has a printer -# exported called "printer" with no password. - -# -# Script further altered by hamiltom@ecnz.co.nz (Michael Hamilton) -# so that the server, service, and password can be read from -# a /usr/var/spool/lpd/PRINTNAME/.config file. -# -# Script further modified by Richard Sharpe to fix some things. -# Get rid of the -x on the first line, and add parameters -# -# -t now causes translate to be used when sending files -# -# Further modifications by Alfred Perlstein to fix some problems and -# improve the quality of the code (3-Dec-2001). -# -# More hacking by Richard Sharpe to improve portability. 9-Dec-2001. -# -# In order for this to work the /etc/printcap entry must include an -# accounting file (af=...): -# -# cdcolour:\ -# :cm=CD IBM Colorjet on 6th:\ -# :sd=/var/spool/lpd/cdcolour:\ -# :af=/var/spool/lpd/cdcolour/acct:\ -# :if=/usr/local/etc/smbprint:\ -# :mx=0:\ -# :lp=/dev/null: -# -# The /usr/var/spool/lpd/PRINTNAME/.config file should contain: -# server=PC_SERVER -# service=PR_SHARENAME -# password="password" -# -# E.g. -# server=PAULS_PC -# service=CJET_371 -# password="" - -#smbclient=/usr/pkg/bin/smbclient -# Assume that smbclient will be in the same place as smbprint - -smbclient="`dirname $0`/smbclient" - -# -# The last parameter to the filter is the accounting file name. -# Extract the directory name from the file name. -# Concat this with /.config to get the config file. -# -TRANS=0 -eval acct_file=\${$#} -spool_dir=`dirname $acct_file` -config_file=$spool_dir/.config - -# Should read the following variables set in the config file: -# server -# service -# password -# username (optional) -# IP (optional) -# debug (optional) -# debugsmb (optional) -# debugfile (optional) -. $config_file - -if [ "x$password" = "x" ] ; then - password="-N" -fi - -if [ "x$username" = "x" ] ; then - username="$server"; -fi - -while test $# -gt 0; do - case "$1" in - -t) - TRANS=1 - ;; - - *) # Bad Parameters, ignore them ... - ;; - esac - shift -done - -command="print - ;" -if [ $TRANS -eq 1 ]; then - command="translate;$command"; -fi - -## -## Some security checks on the logfile if we are using it -## -## make the directory containing the logfile is necessary -## and set the permissions to be rwx for owner only -## - -debugfile="/tmp/smb-print/logfile" -logdir=`dirname $debugfile` -if [ ! -d $logdir ]; then - mkdir -m 0700 $logdir -fi - -## -## check ownership. If I don't own it refuse to -## create the logfile -## -if [ ! -O $logdir ]; then - echo "user running script does not own $logdir. Ignoring any debug options." - debug="" -fi - -touch $debugfile -if [ -h $debugfile ]; then - echo "$debugful is a symlink. Turning off debugging!" - debug="" -fi - -## -## We should be safe at this point to create the log file -## without fear of a symlink attack -- move on to more script work. -## - -if [ "x$debug" = "x" ] ; then - debugfile=/dev/null debugargs= -else - if [ $debug -eq 0 ] ; then - debugfile=/dev/null debugargs= - else - set -x; exec >>$debugfile 2>&1 - debugargs="$debugfile." - #[ "x$debugsmb" = "x" ] || debugargs="$debugargs -d $debugsmb" - fi -fi - -if [ "x$smbconf" != "x" ]; then - - smbconf="-s $smbconf" - -fi - -if [ "x$IP" != "x" ]; then - - IP="-I $IP" - -fi - -if [ "x$debugargs" != "x" ]; then - - debugargs="-l $debugargs" - -fi - -$smbclient \ - "\\\\$server\\$service" \ - $password \ - $smbconf \ - $IP \ - $debugargs \ - -U $username \ - -c "$command" -# diff --git a/packaging/RHEL-CTDB/samba.spec.tmpl b/packaging/RHEL-CTDB/samba.spec.tmpl index 61a5bdd..16d2fa4 100644 --- a/packaging/RHEL-CTDB/samba.spec.tmpl +++ b/packaging/RHEL-CTDB/samba.spec.tmpl @@ -290,7 +290,7 @@ install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samb install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba -install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir} +install -m755 packaging/printing/smbprint $RPM_BUILD_ROOT%{_bindir} install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf install -m755 source3/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir} diff --git a/packaging/RHEL-CTDB/setup/smbprint b/packaging/RHEL-CTDB/setup/smbprint deleted file mode 100644 index 1c3959d..0000000 --- a/packaging/RHEL-CTDB/setup/smbprint +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh -# This script is an input filter for printcap printing on a unix machine. It -# uses the smbclient program to print the file to the specified smb-based -# server and service. -# For example you could have a printcap entry like this -# -# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint -# -# which would create a unix printer called "smb" that will print via this -# script. You will need to create the spool directory /usr/spool/smb with -# appropriate permissions and ownerships for your system. - -# Set these to the server and service you wish to print to -# In this example I have a WfWg PC called "lapland" that has a printer -# exported called "printer" with no password. - -# -# Script further altered by hamiltom@ecnz.co.nz (Michael Hamilton) -# so that the server, service, and password can be read from -# a /usr/var/spool/lpd/PRINTNAME/.config file. -# -# In order for this to work the /etc/printcap entry must include an -# accounting file (af=...): -# -# cdcolour:\ -# :cm=CD IBM Colorjet on 6th:\ -# :sd=/var/spool/lpd/cdcolour:\ -# :af=/var/spool/lpd/cdcolour/acct:\ -# :if=/usr/local/etc/smbprint:\ -# :mx=0:\ -# :lp=/dev/null: -# -# The /usr/var/spool/lpd/PRINTNAME/.config file should contain: -# share=PC_SERVER -# user="user" -# password="password" -# -# Please, do not modify the order in the file. -# Example: -# share=\\server\deskjet -# user="fred" -# password="" - -# -# The last parameter to the filter is the accounting file name. -# Extract the directory name from the file name. -# Concat this with /.config to get the config file. -# -eval acct_file=\${$#} -spool_dir=`dirname $acct_file` -config_file=$spool_dir/.config - -# Should read the following variables set in the config file: -# share -# hostip -# user -# password - -eval `cat $config_file` - -share=`echo $share | sed "s/[\]/\//g"` - -if [ "$user" != "" ]; then - usercmd="-U" -else - usercmd="" -fi - -if [ "$workgroup" != "" ]; then - workgroupcmd="-W" -else - workgroupcmd="" -fi - -if [ "$translate" = "yes" ]; then - command="translate ; print -" -else - command="print -" -fi -#echo $share $password $translate $x_command > /tmp/smbprint.log - -cat | /usr/bin/smbclient "$share" "$password" -E ${hostip:+-I} \ - $hostip -N -P $usercmd "$user" $workgroupcmd "$workgroup" \ - -c "$command" 2>/dev/null diff --git a/packaging/RHEL/samba.spec.tmpl b/packaging/RHEL/samba.spec.tmpl index adbc6df..8439256 100644 --- a/packaging/RHEL/samba.spec.tmpl +++ b/packaging/RHEL/samba.spec.tmpl @@ -242,7 +242,7 @@ install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samb install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba -install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir} +install -m755 packaging/printing/smbprint $RPM_BUILD_ROOT%{_bindir} install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf install -m755 source3/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir} diff --git a/packaging/printing/README b/packaging/printing/README new file mode 100644 index 0000000..0dfcc3c --- /dev/null +++ b/packaging/printing/README @@ -0,0 +1,3 @@ +The smbprint script is an input filter for printcap printing on a unix machine. +It uses the smbclient program to print the file to the specified smb-based +server and service. diff --git a/packaging/RHEL/setup/smbprint b/packaging/printing/smbprint similarity index 91% rename from packaging/RHEL/setup/smbprint rename to packaging/printing/smbprint index 1c3959d..a02d754 100644 --- a/packaging/RHEL/setup/smbprint +++ b/packaging/printing/smbprint @@ -1,25 +1,25 @@ #!/bin/sh # This script is an input filter for printcap printing on a unix machine. It -# uses the smbclient program to print the file to the specified smb-based +# uses the smbclient program to print the file to the specified smb-based # server and service. # For example you could have a printcap entry like this # # smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint # -# which would create a unix printer called "smb" that will print via this +# which would create a unix printer called "smb" that will print via this # script. You will need to create the spool directory /usr/spool/smb with # appropriate permissions and ownerships for your system. -# Set these to the server and service you wish to print to -# In this example I have a WfWg PC called "lapland" that has a printer +# Set these to the server and service you wish to print to +# In this example I have a WfWg PC called "lapland" that has a printer # exported called "printer" with no password. # # Script further altered by hamiltom@ecnz.co.nz (Michael Hamilton) -# so that the server, service, and password can be read from +# so that the server, service, and password can be read from # a /usr/var/spool/lpd/PRINTNAME/.config file. # -# In order for this to work the /etc/printcap entry must include an +# In order for this to work the /etc/printcap entry must include an # accounting file (af=...): # # cdcolour:\ @@ -47,7 +47,7 @@ # Concat this with /.config to get the config file. # eval acct_file=\${$#} -spool_dir=`dirname $acct_file` +spool_dir=`dirname $acct_file` config_file=$spool_dir/.config # Should read the following variables set in the config file: -- 1.7.12.3