summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2012-10-17 18:25:41 +0200
committerAndreas Schneider <asn@cryptomilk.org>2012-10-29 14:08:37 +0100
commit334044f6fa11b5a9ac66afdc95add5e1522e6baa (patch)
treee18384ba739ce0c24b434f3bed795750b6a41b10
parentaa411045a5ee52d440ccb259a37c6c7489099884 (diff)
downloadsamba-334044f6fa11b5a9ac66afdc95add5e1522e6baa.tar.gz
packaging: Move smbprint to a comman location.
This also removes all the duplicate smbprint scripts. This fixes bug #9301. Signed-off-by: Andreas Schneider <asn@samba.org> Signed-off-by: Stefan Metzmacher <metze@samba.org> Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org> Autobuild-Date(master): Mon Oct 29 14:08:37 CET 2012 on sn-devel-104
-rwxr-xr-xexamples/printing/smbprint176
-rw-r--r--packaging/RHEL-CTDB/samba.spec.tmpl2
-rw-r--r--packaging/RHEL/samba.spec.tmpl2
-rw-r--r--packaging/RHEL/setup/smbprint84
-rw-r--r--packaging/printing/README3
-rw-r--r--packaging/printing/smbprint (renamed from packaging/RHEL-CTDB/setup/smbprint)14
6 files changed, 12 insertions, 269 deletions
diff --git a/examples/printing/smbprint b/examples/printing/smbprint
deleted file mode 100755
index 375f29fdf79..00000000000
--- 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 61a5bdd06ff..16d2fa43cbb 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/samba.spec.tmpl b/packaging/RHEL/samba.spec.tmpl
index adbc6dfb65f..84392565f8a 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/RHEL/setup/smbprint b/packaging/RHEL/setup/smbprint
deleted file mode 100644
index 1c3959d49b5..00000000000
--- a/packaging/RHEL/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/printing/README b/packaging/printing/README
new file mode 100644
index 00000000000..0dfcc3c6999
--- /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-CTDB/setup/smbprint b/packaging/printing/smbprint
index 1c3959d49b5..a02d7543acc 100644
--- a/packaging/RHEL-CTDB/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: