summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/boot_config_vars17
-rwxr-xr-xmltk2
-rw-r--r--remote/modules/alsa/module.conf.opensuse5
-rw-r--r--remote/modules/beamergui/module.build7
-rw-r--r--remote/modules/beamergui/module.conf.opensuse8
-rw-r--r--remote/modules/cups/module.conf.opensuse.13.212
-rwxr-xr-xremote/modules/idleaction/data/opt/openslx/scripts/idleaction-cron_script4
-rw-r--r--remote/modules/ncp/module.build26
-rw-r--r--remote/modules/ncp/module.conf8
-rw-r--r--remote/modules/ncp/module.conf.debian26
-rw-r--r--remote/modules/ncp/module.conf.ubuntu17
-rw-r--r--remote/modules/ncp/module.conf.ubuntu.1424
-rw-r--r--remote/modules/netpoint-lightdm/data/etc/lightdm/lightdm.conf164
-rw-r--r--remote/modules/netpoint-lightdm/data/etc/sysconfig/displaymanager113
-rw-r--r--remote/modules/netpoint-lightdm/data/etc/sysconfig/windowmanager51
-rw-r--r--remote/modules/netpoint-lightdm/data/usr/local/bin/guest-account3
-rwxr-xr-xremote/modules/netpoint-lightdm/data/usr/local/bin/guest-cleanup8
-rwxr-xr-xremote/modules/netpoint-lightdm/data/usr/local/bin/guest-session4
-rwxr-xr-xremote/modules/netpoint-lightdm/data/usr/local/bin/guest-setup25
-rwxr-xr-xremote/modules/netpoint-lightdm/data/usr/local/bin/netpoint.py215
-rw-r--r--remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-google-smaller.pngbin0 -> 16703 bytes
-rw-r--r--remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-rz-smaller.pngbin0 -> 72522 bytes
-rw-r--r--remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.css16
-rw-r--r--remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.glade365
-rw-r--r--remote/modules/netpoint-lightdm/data/usr/local/share/xgreeters/netpoint.desktop5
-rw-r--r--remote/modules/netpoint-lightdm/module.build15
-rw-r--r--remote/modules/netpoint-lightdm/module.conf3
-rw-r--r--remote/modules/netpoint-lightdm/module.conf.opensuse.13.236
-rw-r--r--remote/modules/nscd/data/etc/nscd.conf6
-rw-r--r--remote/modules/nslcd/module.build42
-rw-r--r--remote/modules/nslcd/module.conf6
-rw-r--r--remote/modules/nslcd/module.conf.debian6
-rw-r--r--remote/modules/nslcd/module.conf.ubuntu6
-rw-r--r--remote/modules/nslcd/templates/nslcd-systemd.service (renamed from remote/modules/pam/templates/nslcd-systemd.service)0
-rw-r--r--remote/modules/pam-common-share/data/opt/openslx/scripts/pam_script_mount_common_share178
-rw-r--r--remote/modules/pam/data/etc/pam.d/common-session-noninteractive1
-rwxr-xr-xremote/modules/pam/data/opt/openslx/scripts/pam_script_auth2
-rwxr-xr-xremote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close4
-rw-r--r--remote/modules/pam/module.build18
-rw-r--r--remote/modules/pam/module.conf4
-rw-r--r--remote/modules/pam/module.conf.debian2
-rw-r--r--remote/modules/pam/module.conf.opensuse.13.248
-rw-r--r--remote/modules/pam/module.conf.ubuntu2
-rw-r--r--remote/modules/pam/module.conf.ubuntu.1416
-rw-r--r--remote/modules/pvs2/module.conf.opensuse14
-rw-r--r--remote/modules/rsyslogd/module.conf.opensuse.13.29
l---------remote/modules/ssh-auth-keys/data/etc/systemd/system/basic.target.wants/ssh-auth-keys.service1
-rw-r--r--remote/modules/ssh-auth-keys/data/etc/systemd/system/ssh-auth-keys.service7
-rwxr-xr-xremote/modules/ssh-auth-keys/data/opt/openslx/scripts/systemd-ssh_auth_keys18
-rw-r--r--remote/modules/ssh-auth-keys/module.build11
-rw-r--r--remote/modules/ssh-auth-keys/module.conf3
-rw-r--r--remote/modules/sssd/module.build33
-rw-r--r--remote/modules/sssd/module.conf18
-rw-r--r--remote/modules/sssd/module.conf.opensuse.13.223
-rw-r--r--remote/modules/sssd/module.conf.ubuntu14
-rw-r--r--remote/modules/sssd/templates/sssd-systemd.service15
-rw-r--r--remote/modules/systemd/data/usr/lib/systemd/system/getty@.service3
-rw-r--r--remote/modules/systemd/module.build4
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt10
-rwxr-xr-xremote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-run_virt10
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include16
-rw-r--r--remote/modules/x11vnc/module.conf.opensuse6
-rw-r--r--remote/modules/xorg/module.conf.opensuse.13.292
-rw-r--r--remote/rootfs/rootfs-stage32/module.conf.opensuse.13.220
l---------server/configs/freiburg/auth-freiburg1
l---------server/configs/freiburg/pam-freiburg1
-rwxr-xr-xserver/export_target2
-rw-r--r--server/modules/auth-freiburg/etc/gssapi_mech.conf (renamed from server/modules/pam-freiburg/etc/gssapi_mech.conf)0
-rw-r--r--server/modules/auth-freiburg/etc/idmapd.conf (renamed from server/modules/pam-freiburg/etc/idmapd.conf)0
-rw-r--r--server/modules/auth-freiburg/etc/krb5.conf (renamed from server/modules/pam-freiburg/etc/krb5.conf)0
-rw-r--r--server/modules/auth-freiburg/etc/ldap/ldap.conf (renamed from server/modules/pam-freiburg/etc/ldap.conf)2
-rw-r--r--server/modules/auth-freiburg/etc/nsswitch.conf (renamed from server/modules/pam-freiburg/etc/nsswitch.conf)4
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/common-account26
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/common-auth28
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/common-password (renamed from server/modules/pam-freiburg/etc/pam.d/common-password)0
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/common-session37
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/common-session-noninteractive (renamed from server/modules/pam-freiburg/etc/pam.d/common-session-noninteractive)0
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/kdm (renamed from server/modules/pam-freiburg/etc/pam.d/kdm)0
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/kdm-np (renamed from server/modules/pam-freiburg/etc/pam.d/kdm-np)0
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/login (renamed from server/modules/pam-freiburg/etc/pam.d/login)0
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/other (renamed from server/modules/pam-freiburg/etc/pam.d/other)0
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/passwd (renamed from server/modules/pam-freiburg/etc/pam.d/passwd)0
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/sshd (renamed from server/modules/pam-freiburg/etc/pam.d/sshd)0
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/vmware-authd (renamed from server/modules/pam-freiburg/etc/pam.d/vmware-authd)0
-rw-r--r--server/modules/auth-freiburg/etc/pam.d/xdm (renamed from server/modules/pam-freiburg/etc/pam.d/xdm)0
-rwxr-xr-xserver/modules/auth-freiburg/etc/profile.d/00-autostart.sh (renamed from server/modules/pam-freiburg/etc/profile.d/00-autostart.sh)0
-rw-r--r--server/modules/auth-freiburg/etc/sssd/sssd.conf60
l---------server/modules/auth-freiburg/etc/systemd/system/getty.target.wants/rpc-gssd.service (renamed from server/modules/pam-freiburg/etc/systemd/system/getty.target.wants/rpc-gssd.service)0
l---------server/modules/auth-freiburg/etc/systemd/system/getty.target.wants/rpc-idmapd.service (renamed from server/modules/pam-freiburg/etc/systemd/system/getty.target.wants/rpc-idmapd.service)0
-rw-r--r--server/modules/auth-freiburg/etc/systemd/system/rpc-gssd.service (renamed from server/modules/pam-freiburg/etc/systemd/system/rpc-gssd.service)0
-rw-r--r--server/modules/auth-freiburg/etc/systemd/system/rpc-idmapd.service (renamed from server/modules/pam-freiburg/etc/systemd/system/rpc-idmapd.service)0
-rw-r--r--server/modules/auth-freiburg/etc/systemd/system/run-rpc_pipefs.mount (renamed from server/modules/pam-freiburg/etc/systemd/system/run-rpc_pipefs.mount)0
-rw-r--r--server/modules/auth-freiburg/opt/openslx/scripts/pam_script_mount_persistent (renamed from server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent)0
-rw-r--r--server/modules/cups-freiburg/etc/cups/ppd/RZMONO.ppd2910
-rw-r--r--server/modules/cups-freiburg/etc/cups/ppd/ZRZ_DELL.ppd340
-rw-r--r--server/modules/cups-freiburg/etc/cups/printers.conf52
-rw-r--r--server/modules/nslcd-freiburg/etc/nslcd.conf (renamed from server/modules/pam-freiburg/etc/nslcd.conf)0
l---------server/modules/nslcd-freiburg/etc/systemd/system/getty.target.wants/nslcd.service (renamed from server/modules/pam-freiburg/etc/systemd/system/getty.target.wants/nslcd.service)0
l---------server/modules/pam-freiburg/etc/ldap/ldap.conf1
l---------server/modules/pam-freiburg/etc/openldap/ldap.conf1
-rw-r--r--server/modules/pam-ldap-freiburg/etc/pam.d/common-account (renamed from server/modules/pam-freiburg/etc/pam.d/common-account)0
-rw-r--r--server/modules/pam-ldap-freiburg/etc/pam.d/common-auth (renamed from server/modules/pam-freiburg/etc/pam.d/common-auth)0
-rw-r--r--server/modules/pam-ldap-freiburg/etc/pam.d/common-session (renamed from server/modules/pam-freiburg/etc/pam.d/common-session)0
-rwxr-xr-xserver/modules/sshd-freiburg/opt/openslx/iptables/rules.d/10-sshd3
104 files changed, 3427 insertions, 1888 deletions
diff --git a/doc/boot_config_vars b/doc/boot_config_vars
index 07866031..1ea182d4 100644
--- a/doc/boot_config_vars
+++ b/doc/boot_config_vars
@@ -52,8 +52,20 @@ remote logging:
SLX_REMOTE_LOG URL where to post log to, eg. 'http://server/log.php'
POST variables: type, description, longdesc
-partitioner & setp partitions:
-
+user-specific shares (the 'n' in the variable name is a numerical (!) identifier for the share):
+SLX_SHARE_n_PATH Network path to the share, e.g. //cifs.server/sharename
+SLX_SHARE_n_AUTH_TYPE Type of authentication. Type 'guest' means no authentication
+ is required for mounting the share. Type 'pam' means to use the same credentials as the
+ user logging in. Type 'user' means the credentials defined by SLX_SHARE_n_AUTH_USER and
+SLX_SHARE_n_AUTH_PASS will be used. This option is mandatory.
+SLX_SHARE_n_AUTH_USER Only required if SLX_SHARE_n_AUTH_TYPE is 'user'. Defines the
+ username to use for authenticating the mount of the share.
+SLX_SHARE_n_AUTH_PASS Only required if SLX_SHARE_n_AUTH_TYPE is 'user'. Defines the
+ password to use for authenticating the mount of the share.
+SLX_SHARE_n_PERM Permissions for the share. Supports 'rw' and 'ro'. Defaults to 'ro'.
+
+
+partitioner & setup partitions:
SLX_PARTITION_TYPE='GPT|msdos' #Choose partition table type, if variable is not set partitioner
#will ask user or in silent mode use 'msdos' as default
@@ -82,4 +94,3 @@ SLX_PARTITION_TABLE='
44,10G,/tmp
45,10G,/var/scratch
82,4G'
-
diff --git a/mltk b/mltk
index 3fea8454..4136b8d6 100755
--- a/mltk
+++ b/mltk
@@ -124,7 +124,7 @@ check_devtools() {
;;
# FIXME: Don't know how precise this filter works so we might want to have a better matching ...
opensuse)
- pinfo "zypper install gcc gcc-c++ make m4 binutils git module-init-tools patch squashfs pkg-config"
+ pinfo "zypper install gcc gcc-c++ make m4 binutils git module-init-tools patch squashfs pkg-config cmake"
pinfo "to install missing development tools."
;;
fedora | scientific | centos)
diff --git a/remote/modules/alsa/module.conf.opensuse b/remote/modules/alsa/module.conf.opensuse
index 17651c29..a9ba1d50 100644
--- a/remote/modules/alsa/module.conf.opensuse
+++ b/remote/modules/alsa/module.conf.opensuse
@@ -3,3 +3,8 @@ REQUIRED_CONTENT_PACKAGES="
alsa
libasound2
"
+REQUIRED_INSTALLED_PACKAGES="
+ alsa-utils
+ alsa
+ libasound2
+"
diff --git a/remote/modules/beamergui/module.build b/remote/modules/beamergui/module.build
index 2ff35bfc..1afde34e 100644
--- a/remote/modules/beamergui/module.build
+++ b/remote/modules/beamergui/module.build
@@ -6,6 +6,11 @@ fetch_source() {
build() {
local SRCDIR="${MODULE_DIR}/src/"
+ if [[ "$SYS_DISTRIBUTION" == "opensuse" && "$SYS_VERSION" == "13.2" ]]; then
+ QMAKE="/usr/$LIB64/qt4/bin/qmake"
+ else
+ QMAKE="$(which qmake-qt4)"
+ fi
# first activate qt 4
activate_qt 4
@@ -13,7 +18,7 @@ build() {
mkdir -p "$MODULE_BUILD_DIR/opt/openslx/bin"
cd "${MODULE_BUILD_DIR}/opt/openslx/bin" || perror "Could not cd!"
pinfo "Running qmake"
- qmake-qt4 "$SRCDIR/src/beamergui.pro" -r -spec linux-g++ || perror "'qmake-qt4' failed (e.g. not installed)."
+ "$QMAKE" "$SRCDIR/src/beamergui.pro" -r -spec linux-g++ || perror "'qmake-qt4' failed (e.g. not installed)."
pinfo "Running make"
make || perror "'make' failed."
}
diff --git a/remote/modules/beamergui/module.conf.opensuse b/remote/modules/beamergui/module.conf.opensuse
new file mode 100644
index 00000000..01586fe3
--- /dev/null
+++ b/remote/modules/beamergui/module.conf.opensuse
@@ -0,0 +1,8 @@
+REQUIRED_INSTALLED_PACKAGES="
+libqt4-devel
+libxrandr-devel
+"
+REQUIRED_CONTENT_PACKAGES="
+libqt4-devel
+libXrandr-devel
+"
diff --git a/remote/modules/cups/module.conf.opensuse.13.2 b/remote/modules/cups/module.conf.opensuse.13.2
new file mode 100644
index 00000000..ebe832dd
--- /dev/null
+++ b/remote/modules/cups/module.conf.opensuse.13.2
@@ -0,0 +1,12 @@
+REQUIRED_INSTALLED_PACKAGES="
+ cups
+ cups-libs
+ cups-filters-foomatic-rip
+ ghostscript
+"
+REQUIRED_CONTENT_PACKAGES="
+ cups
+ cups-libs
+ cups-filters-foomatic-rip
+ ghostscript
+"
diff --git a/remote/modules/idleaction/data/opt/openslx/scripts/idleaction-cron_script b/remote/modules/idleaction/data/opt/openslx/scripts/idleaction-cron_script
index f034553c..ad74def0 100755
--- a/remote/modules/idleaction/data/opt/openslx/scripts/idleaction-cron_script
+++ b/remote/modules/idleaction/data/opt/openslx/scripts/idleaction-cron_script
@@ -11,7 +11,7 @@ NOW=$(date +%s)
#
# 1) Check for idle timeout
#
-if [ -n "${SLX_LOGOUT_TIMEOUT}" ]; then
+if [ -n "${SLX_LOGOUT_TIMEOUT}" ] && [ "${SLX_LOGOUT_TIMEOUT}" -gt 0 ]; then
# Logout timeout is set, see which users we should kick
IS_IDLE=yes
# get all sessions
@@ -84,7 +84,7 @@ fi
#
# 2) Check for no-session-shutdown timeout
#
-if [ -n "$SLX_SHUTDOWN_TIMEOUT" ] && [ -e "$IDLEHINT" ]; then
+if [ -n "${SLX_SHUTDOWN_TIMEOUT}" ] && [ "${SLX_SHUTDOWN_TIMEOUT}" -gt 0 ] && [ -e "$IDLEHINT" ]; then
IDLE=$(cat "$IDLEHINT")
[ "$IDLE" -gt "$NOW" ] && IDLE="$NOW"
IDLE=$(( $NOW - $IDLE ))
diff --git a/remote/modules/ncp/module.build b/remote/modules/ncp/module.build
new file mode 100644
index 00000000..d8250512
--- /dev/null
+++ b/remote/modules/ncp/module.build
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+fetch_source() {
+
+ # Distribution switch: Ubuntu 14.04 dropped packages ncpfs and libncp:
+ if [[ "$SYS_DISTRIBUTION" == "ubuntu" && "$SYS_VERSION" == "14.04" ]]; then
+ for file in $REQUIRED_DOWNLOAD_URLS; do
+ local package="$(basename $file)"
+ pinfo "Downloading and installing package $package ..."
+ download_if_empty "$file" "src/$package"
+ dpkg -i "src/$package" || perror "Could not install package $package."
+ done
+ fi
+}
+
+build() {
+ local COPYLIST="$MODULE_BUILD_DIR/list_packet_files"
+ # TODO: Hack for SUSE: Ignore file (/var/lib/nfs/state) that does not exist :(
+ list_packet_files | grep -v '/var/lib/nfs/state' | sort -u > "$COPYLIST"
+ tarcopy "$(cat "$COPYLIST")" "${MODULE_BUILD_DIR}"
+
+}
+
+post_copy() {
+ :
+}
diff --git a/remote/modules/ncp/module.conf b/remote/modules/ncp/module.conf
new file mode 100644
index 00000000..4ed03cdc
--- /dev/null
+++ b/remote/modules/ncp/module.conf
@@ -0,0 +1,8 @@
+REQUIRED_BINARIES="
+"
+REQUIRED_LIBRARIES="
+"
+REQUIRED_DIRECTORIES="
+"
+REQUIRED_SYSTEM_FILES="
+"
diff --git a/remote/modules/ncp/module.conf.debian b/remote/modules/ncp/module.conf.debian
new file mode 100644
index 00000000..fad69af5
--- /dev/null
+++ b/remote/modules/ncp/module.conf.debian
@@ -0,0 +1,26 @@
+REQUIRED_INSTALLED_PACKAGES="
+ ncpfs
+ libncp
+"
+REQUIRED_CONTENT_PACKAGES="
+ ncpfs
+ libncp
+"
+REQUIRED_BINARIES+="
+ nwmsg
+ ncpmount
+ ncpumount
+ mount.ncp
+ mount.ncpfs
+"
+REQUIRED_DIRECTORIES+="
+ /usr
+"
+
+# For Debian 8: Both packages were dropped from official repos. Do not change the
+# order, as these packages will be installed via dpkg and depend on each other.
+REQUIRED_DOWNLOAD_URLS="
+ ftp.acc.umu.se/mirror/cdimage/snapshot/Debian/pool/main/n/ncpfs/libpam-ncp_2.2.6-9_amd64.deb
+ ftp.acc.umu.se/mirror/cdimage/snapshot/Debian/pool/main/n/ncpfs/libncp_2.2.6-9_amd64.deb
+ ftp.acc.umu.se/mirror/cdimage/snapshot/Debian/pool/main/n/ncpfs/ncpfs_2.2.6-9_amd64.deb
+"
diff --git a/remote/modules/ncp/module.conf.ubuntu b/remote/modules/ncp/module.conf.ubuntu
new file mode 100644
index 00000000..c1914103
--- /dev/null
+++ b/remote/modules/ncp/module.conf.ubuntu
@@ -0,0 +1,17 @@
+REQUIRED_INSTALLED_PACKAGES="
+ ncpfs
+"
+REQUIRED_CONTENT_PACKAGES="
+ libncp
+ ncpfs
+"
+REQUIRED_BINARIES+="
+ nwmsg
+ ncpmount
+ ncpumount
+ mount.ncp
+ mount.ncpfs
+"
+REQUIRED_DIRECTORIES+="
+ /usr
+"
diff --git a/remote/modules/ncp/module.conf.ubuntu.14 b/remote/modules/ncp/module.conf.ubuntu.14
new file mode 100644
index 00000000..acb2f629
--- /dev/null
+++ b/remote/modules/ncp/module.conf.ubuntu.14
@@ -0,0 +1,24 @@
+REQUIRED_INSTALLED_PACKAGES="
+"
+REQUIRED_CONTENT_PACKAGES="
+ libncp
+ ncpfs
+"
+REQUIRED_BINARIES+="
+ nwmsg
+ ncpmount
+ ncpumount
+ mount.ncp
+ mount.ncpfs
+"
+REQUIRED_DIRECTORIES+="
+ /usr
+"
+
+# For Ubuntu 14.04: Both packages were dropped from official repos. Do not change the
+# order, as these packages will be installed via dpkg and depend on each other.
+REQUIRED_DOWNLOAD_URLS="
+ de.archive.ubuntu.com/ubuntu/pool/universe/n/ncpfs/libncp_2.2.6-9ubuntu1_amd64.deb
+ de.archive.ubuntu.com/ubuntu/pool/universe/n/ncpfs/libpam-ncp_2.2.6-9ubuntu1_amd64.deb
+ de.archive.ubuntu.com/ubuntu/pool/universe/n/ncpfs/ncpfs_2.2.6-9ubuntu1_amd64.deb
+"
diff --git a/remote/modules/netpoint-lightdm/data/etc/lightdm/lightdm.conf b/remote/modules/netpoint-lightdm/data/etc/lightdm/lightdm.conf
new file mode 100644
index 00000000..3e78eb50
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/etc/lightdm/lightdm.conf
@@ -0,0 +1,164 @@
+#
+# General configuration
+#
+# start-default-seat = True to always start one seat if none are defined in the configuration
+# greeter-user = User to run greeter as
+# minimum-display-number = Minimum display number to use for X servers
+# minimum-vt = First VT to run displays on
+# lock-memory = True to prevent memory from being paged to disk
+# user-authority-in-system-dir = True if session authority should be in the system location
+# guest-account-script = Script to be run to setup guest account
+# logind-check-graphical = True to on start seats that are marked as graphical by logind
+# log-directory = Directory to log information to
+# run-directory = Directory to put running state in
+# cache-directory = Directory to cache to
+# sessions-directory = Directory to find sessions
+# remote-sessions-directory = Directory to find remote sessions
+# greeters-directory = Directory to find greeters
+#
+[LightDM]
+#start-default-seat=true
+#greeter-user=lightdm
+#minimum-display-number=0
+minimum-vt=1
+#lock-memory=true
+#user-authority-in-system-dir=false
+guest-account-script=/usr/local/bin/guest-account
+#logind-check-graphical=false
+#log-directory=/var/log/lightdm
+run-directory=/run/lightdm
+#cache-directory=/var/cache/lightdm
+#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions
+#remote-sessions-directory=/usr/share/lightdm/remote-sessions
+
+greeters-directory=/usr/local/share/xgreeters:/usr/share/lightdm/greeters:/usr/share/xgreeters
+
+#
+# Seat defaults
+#
+# type = Seat type (xlocal, xremote)
+# pam-service = PAM service to use for login
+# pam-autologin-service = PAM service to use for autologin
+# pam-greeter-service = PAM service to use for greeters
+# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
+# xserver-layout = Layout to pass to X server
+# xserver-config = Config file to pass to X server
+# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
+# xserver-share = True if the X server is shared for both greeter and session
+# xserver-hostname = Hostname of X server (only for type=xremote)
+# xserver-display-number = Display number of X server (only for type=xremote)
+# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
+# xdmcp-port = XDMCP UDP/IP port to communicate on
+# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
+# unity-compositor-command = Unity compositor command to run (can also contain arguments e.g. unity-system-compositor -special-option)
+# unity-compositor-timeout = Number of seconds to wait for compositor to start
+# greeter-session = example-greeter
+# greeter-hide-users = True to hide the user list
+# greeter-allow-guest = True if the greeter should show a guest login option
+# greeter-show-manual-login = True if the greeter should offer a manual login option
+# greeter-show-remote-login = True if the greeter should offer a remote login option
+# user-session = Session to load for users
+# allow-user-switching = True if allowed to switch users
+# allow-guest = True if guest login is allowed
+# guest-session = Session to load for guests (overrides user-session)
+# session-wrapper = Wrapper script to run session with
+# greeter-wrapper = Wrapper script to run greeter with
+# guest-wrapper = Wrapper script to run guest sessions with
+# display-setup-script = Script to run when starting a greeter session (runs as root)
+# display-stopped-script = Script to run after stopping the display server (runs as root)
+# greeter-setup-script = Script to run when starting a greeter (runs as root)
+# session-setup-script = Script to run when starting a user session (runs as root)
+# session-cleanup-script = Script to run when quitting a user session (runs as root)
+# autologin-guest = True to log in as guest by default
+# autologin-user = User to log in with by default (overrides autologin-guest)
+# autologin-user-timeout = Number of seconds to wait before loading default user
+# autologin-session = Session to load for automatic login (overrides user-session)
+# autologin-in-background = True if autologin session should not be immediately activated
+# exit-on-failure = True if the daemon should exit if this seat fails
+#
+[SeatDefaults]
+#type=xlocal
+#pam-service=lightdm
+#pam-autologin-service=lightdm-autologin
+#pam-greeter-service=lightdm-greeter
+#xserver-command=X
+#xserver-layout=
+#xserver-config=
+#xserver-allow-tcp=false
+#xserver-share=true
+#xserver-hostname=
+#xserver-display-number=
+#xdmcp-manager=
+#xdmcp-port=177
+#xdmcp-key=
+#unity-compositor-command=unity-system-compositor
+#unity-compositor-timeout=60
+
+greeter-session=netpoint
+
+greeter-hide-users=false
+greeter-allow-guest=true
+#greeter-show-manual-login=false
+#greeter-show-remote-login=true
+#user-session=default
+#allow-user-switching=true
+allow-guest=true
+
+guest-session=/usr/bin/icewm
+
+# Keine Ahnung session-wrapper=/etc/lightdm/Xsession
+
+#greeter-wrapper=
+guest-wrapper=/usr/local/bin/guest-session
+#display-setup-script=
+#display-stopped-script=
+#greeter-setup-script=
+session-setup-script=/usr/local/bin/guest-setup
+session-cleanup-script=/usr/local/bin/guest-cleanup
+#autologin-guest=true
+#autologin-user=
+#autologin-user-timeout=0
+#autologin-in-background=false
+#autologin-session=UNIMPLEMENTED
+#exit-on-failure=false
+
+#
+# Seat configuration
+#
+# Each seat must start with "Seat:".
+# Uses settings from [SeatDefaults], any of these can be overriden by setting them in this section.
+#
+#[Seat:0]
+
+#
+# XDMCP Server configuration
+#
+# enabled = True if XDMCP connections should be allowed
+# port = UDP/IP port to listen for connections on
+# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
+#
+# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively
+# it can be a word and the first 7 characters are used as the key.
+#
+[XDMCPServer]
+#enabled=false
+#port=177
+#key=
+
+#
+# VNC Server configuration
+#
+# enabled = True if VNC connections should be allowed
+# command = Command to run Xvnc server with
+# port = TCP/IP port to listen for connections on
+# width = Width of display to use
+# height = Height of display to use
+# depth = Color depth of display to use
+#
+[VNCServer]
+#enabled=false
+#command=Xvnc
+#port=5900
+#width=1024
+#height=768
+#depth=8
diff --git a/remote/modules/netpoint-lightdm/data/etc/sysconfig/displaymanager b/remote/modules/netpoint-lightdm/data/etc/sysconfig/displaymanager
new file mode 100644
index 00000000..9a64a124
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/etc/sysconfig/displaymanager
@@ -0,0 +1,113 @@
+## Path: Desktop/Display manager
+## Type: string(Xorg)
+## Default: "Xorg"
+#
+DISPLAYMANAGER_XSERVER="Xorg"
+## Path: Desktop/Display manager
+## Description: settings to generate a proper displaymanager config
+
+## Type: string(kdm,xdm,gdm,wdm,entrance,console,lightdm,sddm)
+## Default: ""
+#
+# Here you can set the default Display manager (kdm/xdm/gdm/wdm/entrance/console).
+# all changes in this file require a restart of the displaymanager
+#
+# DISPLAYMANAGER="kdm"
+DISPLAYMANAGER="lightdm"
+
+## Type: yesno
+## Default: no
+#
+# Allow remote access (XDMCP) to your display manager (xdm/kdm/gdm). Please note
+# that a modified kdm or xdm configuration, e.g. by KDE control center
+# will not be changed. For gdm, values will be updated after change.
+# XDMCP service should run only on trusted networks and you have to disable
+# firewall for interfaces, where you want to provide this service.
+#
+DISPLAYMANAGER_REMOTE_ACCESS="no"
+
+## Type: yesno
+## Default: no
+#
+# Allow remote access of the user root to your display manager. Note
+# that root can never login if DISPLAYMANAGER_SHUTDOWN is "auto" and
+# System/Security/Permissions/PERMISSION_SECURITY is "paranoid"
+#
+DISPLAYMANAGER_ROOT_LOGIN_REMOTE="no"
+
+## Type: yesno
+## Default: yes
+#
+# Let the displaymanager start a local Xserver.
+# Set to "no" for remote-access only.
+# Set to "no" on architectures without any Xserver (e.g. s390/s390x).
+#
+DISPLAYMANAGER_STARTS_XSERVER="yes"
+
+## Type: yesno
+## Default: no
+#
+# TCP port 6000 of Xserver. When set to "no" (default) Xserver is
+# started with "-nolisten tcp". Only set this to "yes" if you really
+# need to. Remote X service should run only on trusted networks and
+# you have to disable firewall for interfaces, where you want to
+# provide this service. Use ssh X11 port forwarding whenever possible.
+#
+DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="no"
+
+## Type: string
+## Default:
+#
+# Define the user whom should get logged in without request. If string
+# is empty, display standard login dialog.
+#
+DISPLAYMANAGER_AUTOLOGIN=""
+
+## Type: yesno
+## Default: no
+#
+# Allow all users to login without password, but ask for the user, if
+# DISPLAYMANAGER_AUTOLOGIN is empty.
+#
+DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no"
+
+## Type: yesno
+## Default: no
+#
+# Display a combobox for Active Directory domains.
+#
+DISPLAYMANAGER_AD_INTEGRATION="no"
+
+## Type: list(root,all,none,auto)
+## Default: auto
+#
+# Determine who will be able to shutdown or reboot the system in kdm. Valid
+# values are: "root" (only root can shutdown), "all" (everybody can shutdown),
+# "none" (nobody can shutdown from displaymanager), "auto" (follow
+# System/Security/Permissions/PERMISSION_SECURITY to decide: "easy local" is
+# equal to "all", everything else is equal to "root"). gdm respects the
+# PolicyKit settings for ConsoleKit. Shutdown configuration can be done via
+# the polkit-default-privs mechanism.
+#
+DISPLAYMANAGER_SHUTDOWN="auto"
+## Path: Desktop/Display manager
+## Description: settings to generate a proper displaymanager config
+## Config: kdm
+
+## Type: string
+## Default:
+#
+# Defines extra Server Arguments given to the kdm display manager when
+# starting a local display. Useful to override e.g. the -dpi setting.
+#
+DISPLAYMANAGER_KDM_LOCALARGS=""
+
+## Type: yesno
+## Default: yes
+#
+# Allow local access of the user root to your display manager. Note
+# that root can never login if DISPLAYMANAGER_SHUTDOWN is "auto" and
+# System/Security/Permissions/PERMISSION_SECURITY is "paranoid".
+# This settings currently works only with KDM.
+#
+DISPLAYMANAGER_ROOT_LOGIN_LOCAL="yes"
diff --git a/remote/modules/netpoint-lightdm/data/etc/sysconfig/windowmanager b/remote/modules/netpoint-lightdm/data/etc/sysconfig/windowmanager
new file mode 100644
index 00000000..12120320
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/etc/sysconfig/windowmanager
@@ -0,0 +1,51 @@
+## Type: string
+## Default:
+## Path: Desktop
+## Description: default mouse cursor theme
+#
+# Name of mouse cursor theme for X11. Possible themes can be found
+# in /usr/share/icons/
+#
+X_MOUSE_CURSOR="DMZ"
+## Path: Desktop/Window manager
+## Description:
+## Type: string(gnome,kde4,kde,lxde,xfce,twm,icewm)
+## Default: kde4
+## Config: profiles,kde,susewm
+#
+# Here you can set the default window manager (kde, fvwm, ...)
+# changes here require at least a re-login
+# DEFAULT_WM="kde-plasma"
+DEFAULT_WM="xfce"
+
+## Type: yesno
+## Default: yes
+#
+# install the SuSE extension for new users
+# (theme and additional functions)
+#
+INSTALL_DESKTOP_EXTENSIONS="yes"
+## Path: Desktop
+## Description: prepare global sycoca database for faster first startup
+## Type: list(yes,initial,no)
+## Default: initial
+#
+# building a global sycoca database, which can be used at first user
+# login in KDE
+#
+KDE_BUILD_GLOBAL_SYCOCA="initial"
+
+## Type: yesno
+## Default: yes
+#
+# To disable IPv6 support within KDE. It might solve large timeouts due to
+# broken servers which claim to have IPv6 support, but do not respond.
+#
+KDE_USE_IPV6="yes"
+
+## Type: yesno
+## Default: yes
+#
+# IDN support can get disabled to avoid DNS phishing for example.
+#
+KDE_USE_IDN="yes"
diff --git a/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-account b/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-account
new file mode 100644
index 00000000..3eed0efc
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-account
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+echo "demo"
diff --git a/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-cleanup b/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-cleanup
new file mode 100755
index 00000000..32179cec
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-cleanup
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+IPTABLES=$(/usr/bin/which iptables)
+
+"$IPTABLES" -F
+"$IPTABLES" -P INPUT ACCEPT
+"$IPTABLES" -P FORWARD ACCEPT
+"$IPTABLES" -P OUTPUT ACCEPT
diff --git a/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-session b/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-session
new file mode 100755
index 00000000..2c22a68c
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-session
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+exec /usr/bin/icewm &
+# exec /usr/bin/firefox
diff --git a/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-setup b/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-setup
new file mode 100755
index 00000000..cb6791fc
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/usr/local/bin/guest-setup
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+IPTABLES=$(/usr/bin/which iptables)
+
+# reset
+"$IPTABLES" -F INPUT
+"$IPTABLES" -F FORWARD
+"$IPTABLES" -F OUTPUT
+
+if [ "x${USER}" = "xdemo" ]; then
+ # filter out the internetz
+ "$IPTABLES" -P INPUT DROP
+ "$IPTABLES" -P FORWARD DROP
+ "$IPTABLES" -P OUTPUT DROP
+
+ # block internetz
+ "$IPTABLES" -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+ "$IPTABLES" -A OUTPUT -d 132.230.0.0/16 -j ACCEPT
+ "$IPTABLES" -A OUTPUT -d 10.0.0.0/8 -j ACCEPT
+else
+ "$IPTABLES" -P INPUT ACCEPT
+ "$IPTABLES" -P FORWARD ACCEPT
+ "$IPTABLES" -P OUTPUT ACCEPT
+
+fi
diff --git a/remote/modules/netpoint-lightdm/data/usr/local/bin/netpoint.py b/remote/modules/netpoint-lightdm/data/usr/local/bin/netpoint.py
new file mode 100755
index 00000000..635fb03f
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/usr/local/bin/netpoint.py
@@ -0,0 +1,215 @@
+#!/usr/bin/python
+#
+# Author: Matt Fischer <matthew.fischer@canonical.com>
+# Copyright (C) 2012 Canonical, Ltd
+#
+# This program is free software: you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later
+# version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+# license.
+#
+# This code is based on the LightDM GTK Greeter which was written by:
+# Robert Ancell <robert.ancell@canonical.com>
+
+# required packages:
+# liblightdm-gobject-1-0
+# gir1.2-lightdm-1
+# python-gobject
+# gir1.2-glib-2.0
+# gir1.2-gtk-3.0
+
+from gi.repository import GObject
+from gi.repository import GLib
+from gi.repository import Gtk
+from gi.repository import Gdk
+from gi.repository import GdkPixbuf
+from gi.repository.GdkPixbuf import InterpType
+from gi.repository import LightDM
+import sys
+
+greeter = None
+
+main = None
+split = None
+
+guest_box = None
+guest_text = None
+guest_button = None
+guest_image = None
+
+login_box = None
+login_text = None
+user_box = None
+user_text = None
+user_username = None
+pass_box = None
+pass_text = None
+pass_password = None
+
+prompt_box = None
+prompt_label = None
+prompt_entry = None
+message_label = None
+
+# This Gtk signal is called when the user hits enter after entering a
+# username/password or clicks the login button. Since we re-purposed
+# the text entry box, we have 3 possible cases to handle here.
+# 1) the user is already authenticated, if for example, they don't have
+# a password set.
+# 2) The username has been passed into LightDM and now we need to pass
+# the password
+# 3) The username has been entered, but not passed in. We pass it in
+# and start the authentication process.
+def login_cb(widget):
+ print >> sys.stderr, "login_cb"
+ if greeter.get_is_authenticated():
+ print >> sys.stderr, "user is already authenticated, starting session"
+ #start_session()
+ elif greeter.get_in_authentication():
+ print >> sys.stderr, "username was passed in already, send password to LightDM"
+ print >> sys.stderr, greeter.get_authentication_user()
+ greeter.respond(pass_password.get_text())
+ else:
+ print >> sys.stderr, "Initial entry of username, send it to LightDM"
+ greeter.authenticate(user_username.get_text())
+
+def guest_cb(widget):
+ print >> sys.stderr, "guest_cb"
+ if greeter.get_has_guest_account_hint():
+ print >> sys.stderr, "Guest accounts supported"
+ greeter.authenticate_as_guest()
+ else:
+ print >> sys.stderr, "Guest accounts not supported"
+
+
+# Gtk Signal Handlers
+handlers = {
+ "login_cb": login_cb,
+ "guest_cb": guest_cb
+}
+
+# The show_prompt callback is oddly named, but when you get this
+# callback you are supposed to send the password to LightDM next. In
+# our example, we re-purpose the prompt and ask the user for the
+# password which is then sent the next time the user hits the Login
+# button or presses enter.
+def show_prompt_cb(greeter, text, promptType):
+ print >> sys.stderr, "Prompt type: " + str(promptType)
+ print >> sys.stderr, "Text: " + str(text)
+ # if this is a password prompt, we want to hide the characters
+ if promptType == LightDM.PromptType.SECRET:
+ pass_password.set_visibility(False)
+ else:
+ pass_password.set_visibility(True)
+ greeter.respond(pass_password.get_text())
+
+
+# If LightDM sends a message back to the greeter, for example, "Login
+# failed" or "invalid password" we display it in our message box.
+def show_message_cb(text, message_type):
+ print >> sys.stderr, "In show_message"
+ print >> sys.stderr, text
+ message_label.set_text(text)
+ message_label.show()
+
+# Callback for after we send LightDM the password, this method
+# has to handle a successful login, in which case we start the session
+# or a failed login, in which case we tell the user
+def authentication_complete_cb(greeter):
+ if greeter.get_is_authenticated():
+ # For our simple example we always start Unity-2d. The LightDM
+ # API has ways to query available sessions, please see the docs.
+ if not greeter.start_session_sync("xfce"):
+ print >> sys.stderr, "Failed to start session"
+ else:
+ print >> sys.stderr, "Login failed"
+ message_label.set_text("LOGIN FAILED")
+ message_label.show()
+
+if __name__ == '__main__':
+ print >> sys.stderr, "Starting up..."
+ main_loop = GObject.MainLoop ()
+ builder = Gtk.Builder()
+ greeter = LightDM.Greeter()
+ styler = Gtk.CssProvider()
+ css = open('/usr/local/share/lightdm/netpoint.css', 'r')
+
+ css_data = css.read()
+ css.close()
+ styler.load_from_data(css_data)
+ Gtk.StyleContext.add_provider_for_screen(
+ Gdk.Screen.get_default(),
+ styler,
+ Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
+ )
+
+ # connect signal handlers to LightDM
+ greeter.connect ("authentication-complete", authentication_complete_cb)
+ greeter.connect ("show-message", show_message_cb)
+ greeter.connect ("show-prompt", show_prompt_cb)
+
+ # connect builder and widgets
+ # you probably really want to put your .UI file somewhere else
+ builder.add_from_file("/usr/local/share/lightdm/netpoint.glade")
+
+ main = builder.get_object("main")
+ split = builder.get_object("split")
+ sep = builder.get_object("sep")
+ message_label = builder.get_object("message_label")
+ print >> sys.stderr, message_label
+ guest_box = builder.get_object("guest_box")
+
+ guest_outer_box = builder.get_object("guest_outer_box")
+ guest_internal_box = builder.get_object("guest_internal_box")
+ guest_text = builder.get_object("guest_text")
+ guest_button = builder.get_object("guest_button")
+ guest_image = builder.get_object("guest_image")
+ login_image = builder.get_object("login_image")
+ #pixbuf = guest_image.get_pixbuf()
+ #pixbuf = pixbuf.scale_simple(pixbuf.get_width() * 0.7, pixbuf.get_height() * 0.7, InterpType.HYPER)
+ #guest_image.set_from_pixbuf(pixbuf)
+ #pixbuf = login_image.get_pixbuf()
+ #pixbuf = pixbuf.scale_simple(pixbuf.get_width() * 0.7, pixbuf.get_height() * 0.7, InterpType.HYPER)
+ #login_image.set_from_pixbuf(pixbuf)
+
+ login_box = builder.get_object("login_box")
+ login_text = builder.get_object("login_text")
+
+ user_box = builder.get_object("user_box")
+ user_text = builder.get_object("user_text")
+ user_username = builder.get_object("user_username")
+
+ pass_box = builder.get_object("pass_box")
+ pass_text = builder.get_object("pass_text")
+ pass_password = builder.get_object("pass_password")
+
+ # connect signals to Gtk UI
+ builder.connect_signals(handlers)
+
+ # connect to greeter
+ greeter.connect_sync()
+
+ message_label.hide()
+
+ # setup the GUI
+ main.set_decorated(True)
+ main.get_root_window().set_cursor(Gdk.Cursor.new(Gdk.CursorType.ARROW))
+ main.show()
+ guest_text.show()
+ guest_button.show()
+ login_text.show()
+ user_text.show()
+ user_username.grab_focus()
+ user_username.show()
+ pass_text.show()
+ pass_password.set_sensitive(True)
+ pass_password.set_visibility(False)
+ pass_password.show()
+
+ # fullscreen it
+ main.resize(Gdk.Screen.width(), Gdk.Screen.height())
+
+ #print >> sys.stderr, guest_box.get_height()
+ #print >> sys.stderr, guest_box.get_width()
+ main_loop.run ()
diff --git a/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-google-smaller.png b/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-google-smaller.png
new file mode 100644
index 00000000..f3b81c32
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-google-smaller.png
Binary files differ
diff --git a/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-rz-smaller.png b/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-rz-smaller.png
new file mode 100644
index 00000000..f6e4703d
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-rz-smaller.png
Binary files differ
diff --git a/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.css b/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.css
new file mode 100644
index 00000000..7f1f80af
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.css
@@ -0,0 +1,16 @@
+#main {
+ background-color: white;
+}
+#sep {
+ -GtkWidget-wide-separators: 1;
+ -GtkWidget-separator-width: 5;
+ border-style: solid;
+ border-width: 2px;
+ color: grey;
+}
+#title {
+ border-top-style: solid;
+ border-bottom-style: double;
+ border-width: 3px;
+ border-color: grey;
+}
diff --git a/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.glade b/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.glade
new file mode 100644
index 00000000..e2e47416
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.glade
@@ -0,0 +1,365 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.3 -->
+<interface>
+ <requires lib="gtk+" version="3.12"/>
+ <object class="GtkWindow" id="main">
+ <property name="name">main</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="window_position">center-always</property>
+ <property name="default_width">800</property>
+ <property name="default_height">600</property>
+ <property name="decorated">False</property>
+ <property name="gravity">center</property>
+ <child>
+ <object class="GtkBox" id="box2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="name">title</property>
+ <property name="height_request">100</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Netpoint 0.1</property>
+ <attributes>
+ <attribute name="font-desc" value="Sans Bold 18"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">False</property>
+ <property name="vexpand">True</property>
+ <child>
+ <object class="GtkSeparator" id="separator1">
+ <property name="name">sep</property>
+ <property name="width_request">10</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">False</property>
+ <property name="row_homogeneous">True</property>
+ <child>
+ <object class="GtkBox" id="guest_box">
+ <property name="name">guestbox</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">False</property>
+ <property name="vexpand">False</property>
+ <property name="orientation">vertical</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkBox" id="box4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="guest_text">
+ <property name="height_request">100</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="vexpand">False</property>
+ <property name="label" translatable="yes">Uni-interner Browser</property>
+ <property name="justify">center</property>
+ <attributes>
+ <attribute name="font-desc" value="Sans Bold 14"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="hexpand">False</property>
+ <property name="vexpand">False</property>
+ <property name="label" translatable="yes">Im Gastmodus können Sie nur auf universitätsinterne Webseiten zugreifen.</property>
+ <property name="justify">center</property>
+ <property name="wrap">True</property>
+ <property name="width_chars">0</property>
+ <property name="max_width_chars">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="guest_button">
+ <property name="label" translatable="yes">Surfen als Gast</property>
+ <property name="use_action_appearance">False</property>
+ <property name="related_action"/>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <signal name="clicked" handler="guest_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="guest_image">
+ <property name="name">guest_image</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">10</property>
+ <property name="margin_right">10</property>
+ <property name="margin_top">10</property>
+ <property name="margin_bottom">10</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="pixbuf">ff-rz-smaller.png</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row_homogeneous">True</property>
+ <child>
+ <object class="GtkBox" id="box3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkBox" id="box5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="login_text">
+ <property name="height_request">100</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="vexpand">False</property>
+ <property name="label" translatable="yes">Internet Browser</property>
+ <property name="justify">center</property>
+ <attributes>
+ <attribute name="font-desc" value="Sans Bold 14"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="login_info">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="vexpand">False</property>
+ <property name="label" translatable="yes">Melden Sie sich mit Ihrem RZ-Konto, um auch im Internet zu surfen.</property>
+ <property name="justify">center</property>
+ <property name="wrap">True</property>
+ <property name="width_chars">0</property>
+ <property name="max_width_chars">30</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkGrid" id="grid3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="row_spacing">3</property>
+ <property name="column_spacing">3</property>
+ <child>
+ <object class="GtkEntry" id="pass_password">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="progress_pulse_step">0</property>
+ <signal name="activate" handler="login_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="pass_text">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Passwort:</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="user_text">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Username:</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="user_username">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <signal name="activate" handler="login_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="message_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" comments="This is a placeholder string and will be replaced with a message from PAM">[message]</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="login_image">
+ <property name="name">login_image</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">10</property>
+ <property name="margin_right">10</property>
+ <property name="margin_top">10</property>
+ <property name="margin_bottom">10</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="pixbuf">ff-google-smaller.png</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/remote/modules/netpoint-lightdm/data/usr/local/share/xgreeters/netpoint.desktop b/remote/modules/netpoint-lightdm/data/usr/local/share/xgreeters/netpoint.desktop
new file mode 100644
index 00000000..f03cf498
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/data/usr/local/share/xgreeters/netpoint.desktop
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Name=Netpoint Grita
+Comment=Netpoint Grita
+Exec=/usr/local/bin/netpoint.py
+Type=Application
diff --git a/remote/modules/netpoint-lightdm/module.build b/remote/modules/netpoint-lightdm/module.build
new file mode 100644
index 00000000..0c891489
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/module.build
@@ -0,0 +1,15 @@
+fetch_source() {
+ :
+}
+
+build() {
+ COPYLIST="list_dpkg_output"
+ [ -e "$COPYLIST" ] && rm "$COPYLIST"
+
+ list_packet_files >> "$COPYLIST"
+ tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}"
+}
+
+post_copy() {
+ :
+}
diff --git a/remote/modules/netpoint-lightdm/module.conf b/remote/modules/netpoint-lightdm/module.conf
new file mode 100644
index 00000000..0cd03752
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/module.conf
@@ -0,0 +1,3 @@
+REQUIRED_BINARIES=""
+REQUIRED_LIBRARIES=""
+REQUIRED_DIRECTORIES=""
diff --git a/remote/modules/netpoint-lightdm/module.conf.opensuse.13.2 b/remote/modules/netpoint-lightdm/module.conf.opensuse.13.2
new file mode 100644
index 00000000..d62f9063
--- /dev/null
+++ b/remote/modules/netpoint-lightdm/module.conf.opensuse.13.2
@@ -0,0 +1,36 @@
+REQUIRED_INSTALLED_PACKAGES="
+ lightdm
+ lightdm-gtk-greeter
+ lightdm-gobject-devel
+ typelib-1_0-LightDM-1
+ liblightdm-gobject-1-0
+ python-gobject
+ icewm-lite
+ icewm-default
+ python-base
+ python-gobject2
+"
+
+REQUIRED_CONTENT_PACKAGES="
+ lightdm
+ lightdm-gtk-greeter
+ lightdm-gobject-devel
+ typelib-1_0-LightDM-1
+ liblightdm-gobject-1-0
+ python-gobject
+ icewm-lite
+ icewm-default
+ python-base
+ python-gobject2
+"
+
+REQUIRED_BINARIES+="
+ icewm
+ lightdm
+ python
+ lightdm-gtk-greeter
+"
+
+REQUIRED_DIRECTORIES+="
+ /usr/lib64/python2.7
+"
diff --git a/remote/modules/nscd/data/etc/nscd.conf b/remote/modules/nscd/data/etc/nscd.conf
index c4e23686..8eac1354 100644
--- a/remote/modules/nscd/data/etc/nscd.conf
+++ b/remote/modules/nscd/data/etc/nscd.conf
@@ -40,7 +40,7 @@
paranoia no
# restart-interval 3600
- enable-cache passwd yes
+ enable-cache passwd no
positive-time-to-live passwd 600
negative-time-to-live passwd 20
suggested-size passwd 211
@@ -50,7 +50,7 @@
max-db-size passwd 33554432
auto-propagate passwd yes
- enable-cache group yes
+ enable-cache group no
positive-time-to-live group 3600
negative-time-to-live group 60
suggested-size group 211
@@ -69,7 +69,7 @@
shared hosts yes
max-db-size hosts 33554432
- enable-cache services yes
+ enable-cache services no
positive-time-to-live services 28800
negative-time-to-live services 20
suggested-size services 211
diff --git a/remote/modules/nslcd/module.build b/remote/modules/nslcd/module.build
new file mode 100644
index 00000000..aa1b3915
--- /dev/null
+++ b/remote/modules/nslcd/module.build
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+fetch_source() {
+ if [ -n "$REQUIRED_NSS_LDAPD_URL" ]; then
+ pinfo "Downloading $REQUIRED_NSS_LDAPD_URL ..."
+ download_untar "$REQUIRED_NSS_LDAPD_URL" "src/"
+ fi
+}
+
+build() {
+
+ COPYLIST="list_dpkg_output"
+ [ -e "$COPYLIST" ] && rm "$COPYLIST"
+
+ list_packet_files >> "$COPYLIST"
+ tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}"
+
+ # OpenSuSE 13.1 has no 'nss-pam-ldapd'. Let's compile
+ if [ -n "$REQUIRED_NSS_LDAPD_URL" ]; then
+ cd "${MODULE_DIR}/src/$REQUIRED_NSS_LDAPD_VERSION"
+ pinfo "compiling pam-nss-ldapd for openSuse 13.1 ..."
+ ./configure || perror "openSuse 13.1 - pam-nss-ldapd: ./configure failed."
+ make DESTDIR="${MODULE_BUILD_DIR}" install || perror "openSuse 13.1 - pam-nss-ldapd: make install to ${MODULE_BUILD_DIR} failed."
+ cd "$MODULE_BUILD_DIR"
+ local NSLCD_PATH=$(find . -executable -name "nslcd") # Not in path, so we 'find' below MODULE_BUILD_DIR
+ else
+ cd "$MODULE_BUILD_DIR"
+ local NSLCD_PATH=$(which nslcd)
+ fi
+ [[ $REQUIRED_BINARIES = *nslcd* ]] && [ -z "$NSLCD_PATH" ] && perror "Could not 'which nslcd'"
+
+
+ # Build nslcd service file
+ mkdir -p "${MODULE_BUILD_DIR}/etc/systemd/system"
+ sed "s,%PATH%,${NSLCD_PATH},g" "${MODULE_DIR}/templates/nslcd-systemd.service" > "${MODULE_BUILD_DIR}/etc/systemd/system/nslcd.service" || perror "Could not fill nslcd.service template"
+
+ return 0
+}
+
+post_copy() {
+ :
+}
diff --git a/remote/modules/nslcd/module.conf b/remote/modules/nslcd/module.conf
new file mode 100644
index 00000000..7dae2ba1
--- /dev/null
+++ b/remote/modules/nslcd/module.conf
@@ -0,0 +1,6 @@
+REQUIRED_BINARIES="
+ nslcd
+"
+REQUIRED_FILES="
+ /etc/systemd/system/nslcd.service
+"
diff --git a/remote/modules/nslcd/module.conf.debian b/remote/modules/nslcd/module.conf.debian
new file mode 100644
index 00000000..3d83fc81
--- /dev/null
+++ b/remote/modules/nslcd/module.conf.debian
@@ -0,0 +1,6 @@
+REQUIRED_INSTALLED_PACKAGES="
+ nslcd
+"
+REQUIRED_CONTENT_PACKAGES="
+ nslcd
+"
diff --git a/remote/modules/nslcd/module.conf.ubuntu b/remote/modules/nslcd/module.conf.ubuntu
new file mode 100644
index 00000000..3d83fc81
--- /dev/null
+++ b/remote/modules/nslcd/module.conf.ubuntu
@@ -0,0 +1,6 @@
+REQUIRED_INSTALLED_PACKAGES="
+ nslcd
+"
+REQUIRED_CONTENT_PACKAGES="
+ nslcd
+"
diff --git a/remote/modules/pam/templates/nslcd-systemd.service b/remote/modules/nslcd/templates/nslcd-systemd.service
index 540e67cd..540e67cd 100644
--- a/remote/modules/pam/templates/nslcd-systemd.service
+++ b/remote/modules/nslcd/templates/nslcd-systemd.service
diff --git a/remote/modules/pam-common-share/data/opt/openslx/scripts/pam_script_mount_common_share b/remote/modules/pam-common-share/data/opt/openslx/scripts/pam_script_mount_common_share
index 85a3fcc0..670943f4 100644
--- a/remote/modules/pam-common-share/data/opt/openslx/scripts/pam_script_mount_common_share
+++ b/remote/modules/pam-common-share/data/opt/openslx/scripts/pam_script_mount_common_share
@@ -1,36 +1,41 @@
###################################################################
#
-# This script is a part of the pam_script_auth script
-# and is not stand-alone!
+# This script is a part of the pam_script_auth script
+# and is not stand-alone!
#
-# It will try to mount the common shares specified in the
-# variables of the global slx config '/opt/openslx/config'.
-# A primary and a secondary share may be given. Every share
-# require following bundle of variables:
+# It will try to mount the common shares specified in the
+# variables of the global slx config '/opt/openslx/config'.
+# An arbitrary number of shares may be given. Every share
+# requires following bundle of variables:
#
#
-# SLX_SHARE_[0-9]_AUTH_TYPE [guest|user|pam]
-# SLX_SHARE_[0-9]_AUTH_USER <username>
-# SLX_SHARE_[0-9]_AUTH_PASS <password>
-# SLX_SHARE_[0-9]_PERM [ro|rw]
-# SLX_SHARE_[0-9]_PATH <path_to_share>
+# SLX_SHARE_<id>_AUTH_TYPE [guest|user|pam]
+# SLX_SHARE_<id>_AUTH_USER <username>
+# SLX_SHARE_<id>_AUTH_PASS <password>
+# SLX_SHARE_<id>_PERM [ro|rw]
+# SLX_SHARE_<id>_PATH <path_to_share>
#
-# Example:
-# SLX_SHARE_0_PATH='//windows.server/sharename'
-# SLX_SHARE_0_AUTH_TYPE='user'
-# SLX_SHARE_0_AUTH_USER='shareuser'
-# SLX_SHARE_0_AUTH_PASS='sharepass'
-# SLX_SHARE_0_PERM='rw'
+# Note: <id> is the identifier of the share.
#
-# Note: When AUTH_TYPE is set to 'pam' or 'guest',
-# no need to specify AUTH_USER or AUTH_PASS.
+# Example:
+# SLX_SHARE_0_PATH='//windows.server/sharename'
+# SLX_SHARE_0_AUTH_TYPE='user'
+# SLX_SHARE_0_AUTH_USER='shareuser'
+# SLX_SHARE_0_AUTH_PASS='sharepass'
+# SLX_SHARE_0_PERM='rw'
#
+# Note: If AUTH_TYPE is set to 'pam' or 'guest', then
+# there is no need to specify AUTH_USER or AUTH_PASS
+# as it is obviously not needed.
#
-# usage: mount_share <auth_type> <auth_user> <auth_password> <permissions> <path> <share>
+###################################################################
+#
+# Internal helper function to mount a share
+# usage: mount_share <auth_type> <auth_user> <auth_password> <permissions> <path> <share_number>
mount_share() {
- # only want two arguments
+ # since we are (hopefully) the only one using this function, we know we need excatly 6 args
[ $# -ne 6 ] && { slxlog "pam-share-args" "Wrong number of arguments given! Need 6, $# given."; return; }
-
+
# lets check if we have our variables
local SHARE_AUTH_TYPE="$1"
local SHARE_AUTH_USER="$2"
@@ -43,17 +48,12 @@ mount_share() {
[ "x${SHARE_PERM}" != "xrw" ] && SHARE_PERM='ro'
# all good: now we can mount depending on the type
- # supports: cifs?/nfs?
+ # supports: cifs?/nfs?
if [ "${SHARE_PATH:0:2}" = "//" ]; then
# '//' prefixed, assume windows share
# prepare common mount options for either authentication type
MOUNT_OPTS="-t cifs -o nounix,uid=${USER_UID},gid=${USER_GID},forceuid,forcegid,nobrl,noacl,$SHARE_PERM"
- # flag for failure
- SIGNAL=$(mktemp)
- rm -f -- "${SIGNAL}"
- # output of command
- MOUNT_OUTPUT=$(mktemp)
# now construct the mount options depending on the type of the share.
if [ "${SHARE_AUTH_TYPE}" = "guest" ]; then
MOUNT_OPTS="${MOUNT_OPTS},guest,file_mode=0777,dir_mode=0777"
@@ -73,40 +73,68 @@ mount_share() {
slxlog "pam-share-auth" "Share${SHARE_NUM}: Auth type '${SHARE_AUTH_TYPE}' not supported."
return;
fi
+ else
+ # for now assume NFS-Share, start build options string with default options for all shares
+ MOUNT_OPTS="-t nfs -o async,nolock"
+
+ # TODO: here we will have to evaluate options of NFS-shares
- # we just mount it to the directory with the same name as the
- # last directory in the path name of the share
- # e.g. //windows.net/lehrpool -> ${COMMON_SHARE_MOUNT_POINT}/lehrpool
- local TARGET_DIR="${COMMON_SHARE_MOUNT_POINT}/$(basename ${SHARE_PATH})"
- # it exists, so let's create ${COMMON_SHARE_MOUNT_POINT}/lehrpool_${SHARE_NUM}
- [ -d "${TARGET_DIR}" ] && TARGET_DIR="${TARGET_DIR}_${SHARE_NUM}"
+ # unless specified otherwise, mount the share read-only
+ [ "x${SHARE_PERM}" != "xrw" ] && SHARE_PERM='ro'
+ MOUNT_OPTS="${MOUNT_OPTS},${SHARE_PERM}"
+ fi
- # at this point is TARGET_DIR pointing to the right directory.
- mkdir -p "${TARGET_DIR}" || \
- { slxlog "pam-share-mkdirfail" "Share${SHARE_NUM}: Could not create directory '${TARGET_DIR}'. Skipping share."; return; }
- # now try to mount it
- ( mount ${MOUNT_OPTS} "${SHARE_PATH}" "${TARGET_DIR}" > "${MOUNT_OUTPUT}" 2>&1 || touch "${SIGNAL}" ) &
- MOUNT_PID=$!
- for COUNTER in 1 1 2 4; do
- kill -0 "${MOUNT_PID}" 2>/dev/null || break
- sleep "${COUNTER}"
- done
+ ############################################################################
+ #
+ # Following code is independent of the type of share.
+ # The variable MOUNT_OPTS should have been set correctly
+ # up to this point.
+ #
+ ############################################################################
- # check for failures
- if [ -e "${SIGNAL}" ]; then
- slxlog "pam-share-mount" "Mount of '${SHARE_PATH}' to '${TARGET_DIR}' failed. (Args: ${MOUNT_OPTS}" "${MOUNT_OUTPUT}"
- rm -f -- "${SIGNAL}"
- elif kill -9 "${MOUNT_PID}" 2>/dev/null; then
- slxlog "pam-share-mount" "Mount of '${SHARE_PATH}' to '${TARGET_DIR}' timed out. (Args: ${MOUNT_OPTS}" "${MOUNT_OUTPUT}"
- fi
- ( sleep 2; rm -f -- "${MOUNT_OUTPUT}" ) &
+ # we just mount it to the directory with the same name as the
+ # last directory in the path name of the share
+ # e.g. //windows.net/lehrpool -> ${COMMON_SHARE_MOUNT_POINT}/lehrpool
+ local TARGET_DIR="${COMMON_SHARE_MOUNT_POINT}/$(basename ${SHARE_PATH})"
+ # it exists, so let's create ${COMMON_SHARE_MOUNT_POINT}/lehrpool_${SHARE_NUM}
+ [ -d "${TARGET_DIR}" ] && TARGET_DIR="${TARGET_DIR}_${SHARE_NUM}"
+
+ # at this point is TARGET_DIR pointing to the right directory.
+ mkdir -p "${TARGET_DIR}" || \
+ { slxlog "pam-share-mkdirfail" "Share${SHARE_NUM}: Could not create directory '${TARGET_DIR}'. Skipping share."; return; }
- # always unset credentials
- unset USER
- unset PASSWD
+ # flag for failure
+ SIGNAL=$(mktemp)
+ rm -f -- "${SIGNAL}"
+ # output of command
+ MOUNT_OUTPUT=$(mktemp)
+ # now try to mount it
+ ( mount ${MOUNT_OPTS} "${SHARE_PATH}" "${TARGET_DIR}" > "${MOUNT_OUTPUT}" 2>&1 || touch "${SIGNAL}" ) &
+ MOUNT_PID=$!
+ for COUNTER in 1 1 2 4; do
+ kill -0 "${MOUNT_PID}" 2>/dev/null || break
+ sleep "${COUNTER}"
+ done
+
+ # check for failures
+ if [ -e "${SIGNAL}" ]; then
+ slxlog "pam-share-mount" "Mount of '${SHARE_PATH}' to '${TARGET_DIR}' failed. (Args: ${MOUNT_OPTS}" "${MOUNT_OUTPUT}"
+ rm -f -- "${SIGNAL}"
+ elif kill -9 "${MOUNT_PID}" 2>/dev/null; then
+ slxlog "pam-share-mount" "Mount of '${SHARE_PATH}' to '${TARGET_DIR}' timed out. (Args: ${MOUNT_OPTS}" "${MOUNT_OUTPUT}"
fi
+ ( sleep 2; rm -f -- "${MOUNT_OUTPUT}" ) &
+
+ # always unset credentials
+ unset USER
+ unset PASSWD
}
+############################################################################
+#
+# MAIN LOGIC OVER ALL SHARES
+#
+############################################################################
# at this point we need the slx config to do anything
[ -e "/opt/openslx/config" ] || \
{ slxlog "pam-share-noconfig" "File '/opt/openslx/config' not found."; return; }
@@ -115,28 +143,40 @@ mount_share() {
. /opt/openslx/config || \
{ slxlog "pam-share-sourceconfig" "Could not source '/opt/openslx/config'."; return; }
+#
+#
+#
# Since many shares can be specified, we need to identify how many we have first.
-# We just go over all SLX_SHARE_* variables and check for those ending in _PATH
+# We just go over all SLX_SHARE_* variables and check for those ending in _PATH.
+# So e.g. for SLX_SHARE_0_PATH=<path> the SHARE variable would be equal to 'SLX_SHARE_0_PATH'
# For each of those, a share was specified and we will try to mount it.
-for SHARE in ${!SLX_SHARE_*}; do
- # skip if the variable doesn't end in _PATH
- [[ "$SHARE" =~ .*_PATH$ ]] || continue
- # first let's check if we have already mounted it, since we don't have to
- # do anything is it already is.
- if mount | grep -q "${SHARE}"; then
- # already mounted, just skip.
+for SHARE in $(grep -E '^SLX_SHARE_[0-9]+_PATH=.*$' /opt/openslx/config); do
+ # first let's check if we have already mounted it and skip if it is
+ # TODO: this should be good enough? stronger checks?
+ if mount | grep -q "$(echo ${SHARE} | awk -F '=' '{print $2}' | tr -d \'\")"; then
+ # already mounted, just skip
+ # this should not happen anyway, since the pam_script_auth script also exits
+ # if the temporary home user directory is already mounted...
continue
fi
- # ok so we have a path in $SHARE, let's extract the number of the share
+ # ok so we have the full declaration command in $SHARE,
+ # let's extract the number of the share.
# i.e. SLX_SHARE_0_PATH -> share number 0
- # first strip the leading SLX_SHARE_
- SHARE=${SHARE#SLX_SHARE_}
+ # first just cut everything after '='
+ SHARE_ID="$(echo $SHARE | awk -F '=' '{print $1}')"
+ # now strip the leading SLX_SHARE_
+ SHARE_ID=${SHARE_ID#SLX_SHARE_}
# now remove the trailing _PATH
- SHARE=${SHARE%_PATH}
+ SHARE_ID=${SHARE_ID%_PATH}
# now it should be a number, TODO accept more than numbers? Doesn't really matter...
# this check is mostly to be sure that the variable splitting worked as it should
- [[ "$SHARE" =~ ^[0-9]+$ ]] || continue
- eval mount_share \""\$SLX_SHARE_${SHARE}_AUTH_TYPE"\" \""\$SLX_SHARE_${SHARE}_AUTH_USER"\" \""\$SLX_SHARE_${SHARE}_AUTH_PASS"\" \""\$SLX_SHARE_${SHARE}_PERM"\" \""\$SLX_SHARE_${SHARE}_PATH"\" \""$SHARE"\"
+ # ugly cause we need to be ash compatible ...
+ if ! echo "${SHARE_ID}" | grep -q -E '^[0-9]+$'; then
+ continue
+ fi
+
+ # now do try to mount the share using the helper function defined on the top of this script
+ eval mount_share \""\$SLX_SHARE_${SHARE_ID}_AUTH_TYPE"\" \""\$SLX_SHARE_${SHARE_ID}_AUTH_USER"\" \""\$SLX_SHARE_${SHARE_ID}_AUTH_PASS"\" \""\$SLX_SHARE_${SHARE_ID}_PERM"\" \""\$SLX_SHARE_${SHARE_ID}_PATH"\" \""$SHARE_ID"\"
## unset USER and PASSWD just in case mount_share returned due to an error.
unset USER
unset PASSWD
diff --git a/remote/modules/pam/data/etc/pam.d/common-session-noninteractive b/remote/modules/pam/data/etc/pam.d/common-session-noninteractive
index d9bf071c..5e0fe3f8 100644
--- a/remote/modules/pam/data/etc/pam.d/common-session-noninteractive
+++ b/remote/modules/pam/data/etc/pam.d/common-session-noninteractive
@@ -26,5 +26,6 @@ session required pam_permit.so
# See "man pam_umask".
session optional pam_umask.so
# and here are more per-package modules (the "Additional" block)
+session [success=1 default=ignore] pam_succeed_if.so service in sudo quiet use_uid
session required pam_unix.so
# end of pam-auth-update config
diff --git a/remote/modules/pam/data/opt/openslx/scripts/pam_script_auth b/remote/modules/pam/data/opt/openslx/scripts/pam_script_auth
index 3b8bf676..f9636ced 100755
--- a/remote/modules/pam/data/opt/openslx/scripts/pam_script_auth
+++ b/remote/modules/pam/data/opt/openslx/scripts/pam_script_auth
@@ -105,7 +105,7 @@ chown "${PAM_USER}:${USER_GID}" "${COMMON_SHARE_MOUNT_POINT}" || \
[ ! -e "${COMMON_SHARE_MOUNT_SCRIPT}" ] && exit 0
# we do!
-COMMON_SHARE_MOUNT_POINT="${COMMON_SHARE_MOUNT_POINT}" PAM_USER="${PAM_USER}" PAM_AUTHTOK="${PAM_AUTHTOK}" USER_UID="${USER_UID}" USER_GID="${USER_GID}" /bin/bash "${COMMON_SHARE_MOUNT_SCRIPT}" || \
+COMMON_SHARE_MOUNT_POINT="${COMMON_SHARE_MOUNT_POINT}" PAM_USER="${PAM_USER}" PAM_AUTHTOK="${PAM_AUTHTOK}" USER_UID="${USER_UID}" USER_GID="${USER_GID}" /bin/ash "${COMMON_SHARE_MOUNT_SCRIPT}" || \
{ slxlog "pam-global-sourceshare" "Could not source '${COMMON_SHARE_MOUNT_SCRIPT}'."; exit 1; }
# Just try to delete the common share dir. If the mount was successful, it will not work
diff --git a/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close
index 4fc2ce6a..9332e0a6 100755
--- a/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close
+++ b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close
@@ -26,7 +26,7 @@ if [ -d "/opt/openslx/scripts/pam_script_ses_close.d" ]; then
done
fi
-OPENSESSION=$(loginctl show-user "$PAM_USER" | grep "Sessions=" | cut -c 10-)
+OPENSESSION=$(loginctl show-user "$PAM_USER" 2>/dev/null| grep "Sessions=" | cut -c 10-)
SESSIONCOUNT=$(echo "$OPENSESSION" | wc -w)
# When using su/sudo there is no session created, so count up by one
if [ "x$PAM_SERVICE" = "xsu" -o "x$PAM_SERVICE" = "xsudo" ]; then
@@ -55,7 +55,7 @@ if [ "$SESSIONCOUNT" -le "1" ]; then
done
# just to be sure we check if there's no other open session in the meantime
- OPEN2=$(loginctl show-user "$PAM_USER" | grep "Sessions=" | cut -c 10-)
+ OPEN2=$(loginctl show-user "$PAM_USER" 2>/dev/null | grep "Sessions=" | cut -c 10-)
if [ -z "$OPEN2" -o "x$OPENSESSION" = "x$OPEN2" ]; then
diff --git a/remote/modules/pam/module.build b/remote/modules/pam/module.build
index b678fdd6..5c3dc8db 100644
--- a/remote/modules/pam/module.build
+++ b/remote/modules/pam/module.build
@@ -33,24 +33,6 @@ build() {
cd "${MODULE_DIR}/src/pam-script-${REQUIRED_PAM_SCRIPT_VERSION}" || perror "Could not cd to ${MODULE_DIR}/src/pam-script-${REQUIRED_PAM_SCRIPT_VERSION}."
./configure --prefix=/ --sysconfdir=/etc/pam-script --libdir="$SYS_PAM_MODULES_PATH" || perror "pam-script: ./configure failed."
make DESTDIR="${MODULE_BUILD_DIR}" install || perror "pam-script: make install to ${MODULE_BUILD_DIR} failed."
-
-
- # openSuse 13.1 has no package nss-pam-ldapd. So, we compile it.
- if [ -n "$REQUIRED_NSS_LDAPD_URL" ]; then
- cd "${MODULE_DIR}/src/$REQUIRED_NSS_LDAPD_VERSION"
- pinfo "compiling pam-nss-ldapd for openSuse 13.1 ..."
- ./configure || perror "openSuse 13.1 - pam-nss-ldapd: ./configure failed."
- make DESTDIR="${MODULE_BUILD_DIR}" install || perror "openSuse 13.1 - pam-nss-ldapd: make install to ${MODULE_BUILD_DIR} failed."
- cd "$MODULE_BUILD_DIR"
- local NSLCD_PATH=$(find . -executable -name "nslcd") # Not in path, so we 'find' below MODULE_BUILD_DIR
- else
- cd "$MODULE_BUILD_DIR"
- local NSLCD_PATH=$(which nslcd)
- fi
- [[ $REQUIRED_BINARIES = *nslcd* ]] && [ -z "$NSLCD_PATH" ] && perror "Could not 'which nslcd'"
- # Build nslcd service file
- mkdir -p "etc/systemd/system"
- sed "s,%PATH%,$NSLCD_PATH,g" "$MODULE_DIR/templates/nslcd-systemd.service" > "etc/systemd/system/nslcd.service" || perror "Could not fill nslcd.service template"
}
post_copy() {
diff --git a/remote/modules/pam/module.conf b/remote/modules/pam/module.conf
index c0a21a79..4e2e01a1 100644
--- a/remote/modules/pam/module.conf
+++ b/remote/modules/pam/module.conf
@@ -1,6 +1,5 @@
REQUIRED_BINARIES="
ldapsearch
- nslcd
rpc.gssd
rpc.idmapd
sslconnect
@@ -15,9 +14,6 @@ REQUIRED_LIBRARIES="
REQUIRED_DIRECTORIES="
/etc/security
"
-REQUIRED_FILES="
- /etc/systemd/system/nslcd.service
-"
REQUIRED_SYSTEM_FILES="
/etc/login.defs
/etc/securetty
diff --git a/remote/modules/pam/module.conf.debian b/remote/modules/pam/module.conf.debian
index be237be2..e6661476 100644
--- a/remote/modules/pam/module.conf.debian
+++ b/remote/modules/pam/module.conf.debian
@@ -1,7 +1,6 @@
REQUIRED_INSTALLED_PACKAGES="
libpam-ldap
libnss-ldapd
- nslcd
libpam-ck-connector
libpam-cap
krb5-user
@@ -22,7 +21,6 @@ REQUIRED_CONTENT_PACKAGES="
libldap-2.4-2
libpam-ldapd
libnss-ldapd
- nslcd
krb5-user
krb5-config
libpam-krb5
diff --git a/remote/modules/pam/module.conf.opensuse.13.2 b/remote/modules/pam/module.conf.opensuse.13.2
new file mode 100644
index 00000000..d4435999
--- /dev/null
+++ b/remote/modules/pam/module.conf.opensuse.13.2
@@ -0,0 +1,48 @@
+REQUIRED_NSS_LDAPD_VERSION="nss-pam-ldapd-0.8.13"
+REQUIRED_NSS_LDAPD_URL="http://arthurdejong.org/nss-pam-ldapd/$REQUIRED_NSS_LDAPD_VERSION.tar.gz"
+
+REQUIRED_BINARIES+="
+ mkhomedir_helper
+"
+
+REQUIRED_INSTALLED_PACKAGES="
+ pam
+ pam_krb5
+ pam-devel
+ pam-modules
+ nss-mdns
+ libopenssl-devel
+ openldap2-client
+ nfsidmap
+ nfs-client
+ glibc
+ pam-devel
+ openldap2-devel
+ krb5-devel
+"
+REQUIRED_CONTENT_PACKAGES="
+ pam
+ pam_krb5
+ pam-devel
+ pam-modules
+ nss-mdns
+ openldap2-client
+ nfsidmap
+ nfs-client
+ glibc
+"
+REQUIRED_LIBRARIES+="
+ libnss_compat
+ libnss_db
+ libnss_dns
+ libnss_files
+ libnss_nis
+"
+REQUIRED_DIRECTORIES+="
+ /$LIB64
+ /usr/$LIB64
+"
+REQUIRED_SYSTEM_FILES+="
+ /$LIB64/security
+"
+
diff --git a/remote/modules/pam/module.conf.ubuntu b/remote/modules/pam/module.conf.ubuntu
index 4a3635fc..d675116c 100644
--- a/remote/modules/pam/module.conf.ubuntu
+++ b/remote/modules/pam/module.conf.ubuntu
@@ -1,7 +1,6 @@
REQUIRED_INSTALLED_PACKAGES="
libpam-ldap
libnss-ldapd
- nslcd
krb5-user
krb5-config
libpam-krb5
@@ -20,7 +19,6 @@ REQUIRED_CONTENT_PACKAGES="
libldap-2.4-2
libpam-ldap
libnss-ldapd
- nslcd
krb5-user
krb5-config
libpam-krb5
diff --git a/remote/modules/pam/module.conf.ubuntu.14 b/remote/modules/pam/module.conf.ubuntu.14
index 26307d84..64ead96a 100644
--- a/remote/modules/pam/module.conf.ubuntu.14
+++ b/remote/modules/pam/module.conf.ubuntu.14
@@ -2,7 +2,6 @@
REQUIRED_INSTALLED_PACKAGES="
libpam-ldap
libnss-ldapd
- nslcd
krb5-user
krb5-config
libpam-krb5
@@ -20,7 +19,6 @@ REQUIRED_CONTENT_PACKAGES="
libldap-2.4-2
libpam-ldap
libnss-ldapd
- nslcd
krb5-user
krb5-config
libpam-krb5
@@ -28,14 +26,8 @@ REQUIRED_CONTENT_PACKAGES="
libnfsidmap2
nfs-common
cifs-utils
- ncpfs
"
REQUIRED_BINARIES+="
- nwmsg
- ncpmount
- ncpumount
- mount.ncp
- mount.ncpfs
mount.cifs
"
REQUIRED_DIRECTORIES+="
@@ -47,11 +39,3 @@ REQUIRED_SYSTEM_FILES+="
/etc/pam.conf
/etc/default/locale
"
-
-# For Ubuntu 14.04: Both packages were dropped from official repos. Do not change the
-# order, as these packages will be installed via dpkg and depend on each other.
-REQUIRED_DOWNLOAD_URLS="
- de.archive.ubuntu.com/ubuntu/pool/universe/n/ncpfs/libncp_2.2.6-9ubuntu1_amd64.deb
- de.archive.ubuntu.com/ubuntu/pool/universe/n/ncpfs/libpam-ncp_2.2.6-9ubuntu1_amd64.deb
- de.archive.ubuntu.com/ubuntu/pool/universe/n/ncpfs/ncpfs_2.2.6-9ubuntu1_amd64.deb
-"
diff --git a/remote/modules/pvs2/module.conf.opensuse b/remote/modules/pvs2/module.conf.opensuse
new file mode 100644
index 00000000..aedc0d96
--- /dev/null
+++ b/remote/modules/pvs2/module.conf.opensuse
@@ -0,0 +1,14 @@
+REQUIRED_INSTALLED_PACKAGES="
+ libqt4-devel
+ LibVNCServer-devel
+"
+
+REQUIRED_CONTENT_PACKAGES="
+ libqt4
+"
+
+REQUIRED_DIRECTORIES="
+ /usr/$LIB64/
+"
+
+# libqt4-svg
diff --git a/remote/modules/rsyslogd/module.conf.opensuse.13.2 b/remote/modules/rsyslogd/module.conf.opensuse.13.2
new file mode 100644
index 00000000..b1d7fd03
--- /dev/null
+++ b/remote/modules/rsyslogd/module.conf.opensuse.13.2
@@ -0,0 +1,9 @@
+REQUIRED_CONTENT_PACKAGES="
+ rsyslog
+"
+REQUIRED_INSTALLED_PACKAGES="
+ rsyslog
+"
+REQUIRED_BINARIES+="
+ rsyslog-service-prepare
+"
diff --git a/remote/modules/ssh-auth-keys/data/etc/systemd/system/basic.target.wants/ssh-auth-keys.service b/remote/modules/ssh-auth-keys/data/etc/systemd/system/basic.target.wants/ssh-auth-keys.service
new file mode 120000
index 00000000..2bddb0ca
--- /dev/null
+++ b/remote/modules/ssh-auth-keys/data/etc/systemd/system/basic.target.wants/ssh-auth-keys.service
@@ -0,0 +1 @@
+../ssh-auth-keys.service \ No newline at end of file
diff --git a/remote/modules/ssh-auth-keys/data/etc/systemd/system/ssh-auth-keys.service b/remote/modules/ssh-auth-keys/data/etc/systemd/system/ssh-auth-keys.service
new file mode 100644
index 00000000..20a7b8f9
--- /dev/null
+++ b/remote/modules/ssh-auth-keys/data/etc/systemd/system/ssh-auth-keys.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=Enable SSH keys in authorized_keys.d/ folder
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/opt/openslx/scripts/systemd-ssh_auth_keys
diff --git a/remote/modules/ssh-auth-keys/data/opt/openslx/scripts/systemd-ssh_auth_keys b/remote/modules/ssh-auth-keys/data/opt/openslx/scripts/systemd-ssh_auth_keys
new file mode 100755
index 00000000..08ad7d2c
--- /dev/null
+++ b/remote/modules/ssh-auth-keys/data/opt/openslx/scripts/systemd-ssh_auth_keys
@@ -0,0 +1,18 @@
+#!/bin/ash
+
+AUTH_KEYS_DIR="/root/.ssh/authorized_keys.d/"
+AUTH_KEYS_FILE="/root/.ssh/authorized_keys"
+
+# do we even have the directory?
+[ ! -d "$AUTH_KEYS_DIR" ] && echo "No such directory: $AUTH_KEYS_DIR" && exit 1
+
+# ok, lets cat them in the real file
+for KEY in "$AUTH_KEYS_DIR"/* ; do
+ if ! cat $KEY >> "$AUTH_KEYS_FILE" ; then
+ echo "Could not add '$KEY' to '$AUTH_KEYS_FILE'"
+ exit 1
+ fi
+done
+
+# all done, all good
+exit 0
diff --git a/remote/modules/ssh-auth-keys/module.build b/remote/modules/ssh-auth-keys/module.build
new file mode 100644
index 00000000..97e93235
--- /dev/null
+++ b/remote/modules/ssh-auth-keys/module.build
@@ -0,0 +1,11 @@
+fetch_source() {
+ :
+}
+
+build() {
+ :
+}
+
+post_copy() {
+ :
+}
diff --git a/remote/modules/ssh-auth-keys/module.conf b/remote/modules/ssh-auth-keys/module.conf
new file mode 100644
index 00000000..0cd03752
--- /dev/null
+++ b/remote/modules/ssh-auth-keys/module.conf
@@ -0,0 +1,3 @@
+REQUIRED_BINARIES=""
+REQUIRED_LIBRARIES=""
+REQUIRED_DIRECTORIES=""
diff --git a/remote/modules/sssd/module.build b/remote/modules/sssd/module.build
new file mode 100644
index 00000000..041fd5bd
--- /dev/null
+++ b/remote/modules/sssd/module.build
@@ -0,0 +1,33 @@
+fetch_source() {
+ :
+}
+
+build() {
+ COPYLIST="list_dpkg_output"
+ [ -e "$COPYLIST" ] && rm "$COPYLIST"
+
+ list_packet_files >> "$COPYLIST"
+ tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}"
+
+ local SSSD_PATH="$(which sssd)"
+ [ -z "$SSSD_PATH" ] && perror "'sssd' not found on this system. Should have been installed! Something is wrong..."
+
+ # Build nslcd service file
+ mkdir -p "${MODULE_BUILD_DIR}/etc/systemd/system"
+ sed "s,%PATH%,${SSSD_PATH},g" "${MODULE_DIR}/templates/sssd-systemd.service" > "${MODULE_BUILD_DIR}/etc/systemd/system/sssd.service" || perror "Could not fill sssd.service template"
+
+ # openSuse sssd does not start when /etc/sssd/sssd.conf is not root:root 600!
+ if [ "$SYS_DISTRIBUTION" == "opensuse" -a "$SYS_VERSION" == "13.2" ]; then
+ sed -i 's#ExecStart#ExecStartPre=/opt/openslx/bin/chmod 600 /etc/sssd/sssd.conf\nExecStart#g' \
+ "${MODULE_BUILD_DIR}/etc/systemd/system/sssd.service"
+ fi
+
+ return 0
+}
+
+post_copy() {
+ mkdir -p "${TARGET_BUILD_DIR}/var/log/sssd"
+ for DIR in mc pubconf/krb5.include.d db pipes/private; do
+ mkdir -p "${TARGET_BUILD_DIR}/var/lib/sss/$DIR"
+ done
+}
diff --git a/remote/modules/sssd/module.conf b/remote/modules/sssd/module.conf
new file mode 100644
index 00000000..6e4df94e
--- /dev/null
+++ b/remote/modules/sssd/module.conf
@@ -0,0 +1,18 @@
+REQUIRED_BINARIES="
+ sssd
+"
+REQUIRED_FILES="
+ /etc/default/sssd
+ /etc/systemd/system/sssd.service
+"
+# lib/ is needed to fetch lib/x86..../security/pam_sss.so module
+# could do it using the SYS_PAM_MODULE_PATH, but using that in the
+# module.conf seems hacky...
+#
+# usr/lib is needed to get the ldb modules, e.g.:
+# usr/lib/x86_64-linux-gnu/ldb/modules/ldb/ldap.so
+#
+REQUIRED_DIRECTORIES="
+ /lib
+ /usr/lib
+"
diff --git a/remote/modules/sssd/module.conf.opensuse.13.2 b/remote/modules/sssd/module.conf.opensuse.13.2
new file mode 100644
index 00000000..6fafc652
--- /dev/null
+++ b/remote/modules/sssd/module.conf.opensuse.13.2
@@ -0,0 +1,23 @@
+REQUIRED_FILES="
+ /etc/sssd
+ /etc/systemd/system/sssd.service
+"
+
+REQUIRED_DIRECTORIES="
+ /$LIB64
+ /usr/lib
+ /usr/lib64
+"
+
+REQUIRED_INSTALLED_PACKAGES="
+ sssd
+ sssd-ldap
+ libldb1
+ libsss_nss_idmap0
+"
+REQUIRED_CONTENT_PACKAGES="
+ sssd
+ sssd-ldap
+ libldb1
+ libsss_nss_idmap0
+"
diff --git a/remote/modules/sssd/module.conf.ubuntu b/remote/modules/sssd/module.conf.ubuntu
new file mode 100644
index 00000000..5a8e4fa4
--- /dev/null
+++ b/remote/modules/sssd/module.conf.ubuntu
@@ -0,0 +1,14 @@
+REQUIRED_INSTALLED_PACKAGES="
+ sssd-common
+ sssd-ldap
+ libldb1
+ libnss-sss
+ libpam-sss
+"
+REQUIRED_CONTENT_PACKAGES="
+ sssd-common
+ sssd-ldap
+ libldb1
+ libnss-sss
+ libpam-sss
+"
diff --git a/remote/modules/sssd/templates/sssd-systemd.service b/remote/modules/sssd/templates/sssd-systemd.service
new file mode 100644
index 00000000..8cfd1a2e
--- /dev/null
+++ b/remote/modules/sssd/templates/sssd-systemd.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=System Security Services Daemon
+# SSSD will not be started until syslog is
+After=syslog.target
+
+[Service]
+EnvironmentFile=-/etc/sysconfig/sssd
+ExecStart=%PATH% -D -f
+# These two should be used with traditional UNIX forking daemons
+# consult systemd.service(5) for more details
+Type=forking
+PIDFile=/var/run/sssd.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/getty@.service b/remote/modules/systemd/data/usr/lib/systemd/system/getty@.service
index 2d2940e1..772566d6 100644
--- a/remote/modules/systemd/data/usr/lib/systemd/system/getty@.service
+++ b/remote/modules/systemd/data/usr/lib/systemd/system/getty@.service
@@ -26,8 +26,9 @@ ConditionPathExists=/dev/tty0
[Service]
ExecStartPre=-/opt/openslx/bin/killall fbsplash
+ExecStartPre=-/bin/bash -c "echo -e '\033c' > /dev/%i"
# the VT is cleared by TTYVTDisallocate
-ExecStart=-/sbin/agetty --noclear %I 38400 linux
+ExecStart=-/sbin/agetty %I 38400 linux
Type=idle
Restart=always
RestartSec=0
diff --git a/remote/modules/systemd/module.build b/remote/modules/systemd/module.build
index 6e1cf4c1..67e019af 100644
--- a/remote/modules/systemd/module.build
+++ b/remote/modules/systemd/module.build
@@ -99,5 +99,9 @@ post_copy() {
if [ "x$(dpkg -s util-linux | grep Version: | cut -d' ' -f2)" == "x2.19.1-2ubuntu3" ]; then
sed -i "s/ExecStart=-\/sbin\/agetty --noclear %I 38400 linux/ExecStart=-\/sbin\/agetty %I 38400 linux/g" "${TARGET_BUILD_DIR}/usr/lib/systemd/system/getty@.service"
fi
+ # eg. systemd expects /bin/less:
+ if [ "$SYS_DISTRIBUTION" == "opensuse" -a "$SYS_VERSION" == "13.2" ]; then
+ ln -s /usr/bin/less "$TARGET_BUILD_DIR/bin/less"
+ fi
}
diff --git a/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt b/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt
index 726c2340..d41bf564 100755
--- a/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt
+++ b/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt
@@ -445,24 +445,26 @@ fi
if true; then
# detecting which card is to be used
echo "Detecting which sound card to use ..."
- PROC="/proc/asound/cards"
+ PROC="/proc/asound/cards"
if [ ! -r "$PROC" ]; then
echo "'${PROC}' not found or not readable."
SOUND_CARD_INDEX=0
+ SOUND_CARD_COUNT=1
else
# Try to filter HDMI cards first
- SOUND_CARD_INDEX=$(grep -v -i 'HDMI' "${PROC}" | grep -E -o '^[[:space:]]*[0-9]+[[:space:]]+' | head -n 1)
+ SOUND_CARD_INDEX=$(grep -v -i 'HDMI' "${PROC}" | grep -E -o '^[[:space:]]{0,2}[0-9]+[[:space:]]+' | head -n 1)
# If empty, try again with all
- [ -z "${SOUND_CARD_INDEX}" ] && SOUND_CARD_INDEX=$(cat "${PROC}" | grep -E -o '^[[:space:]]*[0-9]+[[:space:]]+' | head -n 1)
-
+ [ -z "${SOUND_CARD_INDEX}" ] && SOUND_CARD_INDEX=$(cat "${PROC}" | grep -E -o '^[[:space:]]{0,2}[0-9]+[[:space:]]+' | head -n 1)
if [ -z "${SOUND_CARD_INDEX}" ]; then
echo "No sound card found."
SOUND_CARD_INDEX=0
fi
+ SOUND_CARD_COUNT=$(grep -E '^[[:space:]]{0,2}[0-9]+[[:space:]]+' "${PROC}" | wc -l)
fi
SOUND_CARD_INDEX="$(grep -E -o '[0-9]+' <<<$SOUND_CARD_INDEX)"
echo "Detected sound card index is: $SOUND_CARD_INDEX"
+ echo "Sound card count: $SOUND_CARD_COUNT"
# Adjust sound volume (playback)... Random mixer names we have encountered during testing
echo "Setting up volume..."
diff --git a/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-run_virt b/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-run_virt
index 726c2340..d41bf564 100755
--- a/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-run_virt
+++ b/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-run_virt
@@ -445,24 +445,26 @@ fi
if true; then
# detecting which card is to be used
echo "Detecting which sound card to use ..."
- PROC="/proc/asound/cards"
+ PROC="/proc/asound/cards"
if [ ! -r "$PROC" ]; then
echo "'${PROC}' not found or not readable."
SOUND_CARD_INDEX=0
+ SOUND_CARD_COUNT=1
else
# Try to filter HDMI cards first
- SOUND_CARD_INDEX=$(grep -v -i 'HDMI' "${PROC}" | grep -E -o '^[[:space:]]*[0-9]+[[:space:]]+' | head -n 1)
+ SOUND_CARD_INDEX=$(grep -v -i 'HDMI' "${PROC}" | grep -E -o '^[[:space:]]{0,2}[0-9]+[[:space:]]+' | head -n 1)
# If empty, try again with all
- [ -z "${SOUND_CARD_INDEX}" ] && SOUND_CARD_INDEX=$(cat "${PROC}" | grep -E -o '^[[:space:]]*[0-9]+[[:space:]]+' | head -n 1)
-
+ [ -z "${SOUND_CARD_INDEX}" ] && SOUND_CARD_INDEX=$(cat "${PROC}" | grep -E -o '^[[:space:]]{0,2}[0-9]+[[:space:]]+' | head -n 1)
if [ -z "${SOUND_CARD_INDEX}" ]; then
echo "No sound card found."
SOUND_CARD_INDEX=0
fi
+ SOUND_CARD_COUNT=$(grep -E '^[[:space:]]{0,2}[0-9]+[[:space:]]+' "${PROC}" | wc -l)
fi
SOUND_CARD_INDEX="$(grep -E -o '[0-9]+' <<<$SOUND_CARD_INDEX)"
echo "Detected sound card index is: $SOUND_CARD_INDEX"
+ echo "Sound card count: $SOUND_CARD_COUNT"
# Adjust sound volume (playback)... Random mixer names we have encountered during testing
echo "Setting up volume..."
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include
index 016ebdc6..471a207c 100644
--- a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include
+++ b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include
@@ -258,16 +258,15 @@ runvmwareconfheader ()
ethernet0.present = "TRUE"
ethernet0.addressType = "static"
$network_virtualDev
- ethernet0.connectionType = "hostonly"
- #ethernet1.connectionType = "custom"
+ #ethernet0.connectionType = "hostonly"
+ ethernet0.connectionType = "custom"
ethernet0.vnet = "$hostdev"
ethernet0.address = "00:50:56:$macaddrsuffix"
ethernet0.wakeOnPcktRcv = "FALSE"
# sound
sound.present = "TRUE"
- sound.fileName = "sysdefault:CARD=$SOUND_CARD_INDEX"
- sound.autodetect = "FALSE"
+ $sound_fileName
sound.virtualdev = "$sound"
pciSound.enableVolumeControl = "FALSE"
sound.enableVolumeControl = "FALSE"
@@ -469,6 +468,15 @@ esac
# set standard sound card, overwrite depending on OS (options sb16, es1371, hdaudio)
sound="es1371"
+# set sound card explicitly if there is more than one card in the host system
+if [ -n "$SOUND_CARD_INDEX" -a -n "$SOUND_CARD_COUNT" ] && [ "$SOUND_CARD_COUNT" -gt 1 ]; then
+ sound_fileName="sound.fileName = \"sysdefault:CARD=${SOUND_CARD_INDEX}\"
+sound.autodetect = \"FALSE\""
+else
+ sound_fileName='sound.fileName = "-1"
+sound.autodetect = "TRUE"'
+fi
+
# check for 3D configuration setting
case "$enable3d" in
true|yes)
diff --git a/remote/modules/x11vnc/module.conf.opensuse b/remote/modules/x11vnc/module.conf.opensuse
new file mode 100644
index 00000000..b6b60c93
--- /dev/null
+++ b/remote/modules/x11vnc/module.conf.opensuse
@@ -0,0 +1,6 @@
+REQUIRED_INSTALLED_PACKAGES="
+ x11vnc
+"
+REQUIRED_CONTENT_PACKAGES="
+ x11vnc
+"
diff --git a/remote/modules/xorg/module.conf.opensuse.13.2 b/remote/modules/xorg/module.conf.opensuse.13.2
new file mode 100644
index 00000000..363ce3aa
--- /dev/null
+++ b/remote/modules/xorg/module.conf.opensuse.13.2
@@ -0,0 +1,92 @@
+# xkbutils, xkbprint, setxkbmap, xkbevd for 64-bit openSuse
+REQUIRED_INSTALLED_PACKAGES="
+ xorg-x11
+ xorg-x11-server
+ xorg-x11-driver-input
+ xorg-x11-driver-video
+ xf86-video-nouveau
+ xf86-video-vmware
+ xf86-video-ati
+ xf86-video-nv
+ xf86-video-intel
+ xf86-video-i128
+ xf86-video-geode
+ xf86-video-vesa
+ xf86-video-fbdev
+ xf86-video-modesetting
+ xf86-input-vmmouse
+ xf86-input-wacom
+ xf86-input-evdev
+ xf86-input-joystick
+ xf86-input-keyboard
+ xf86-input-mouse
+ xf86-input-synaptics
+ xf86-input-void
+ xkeyboard-config
+ xkbcomp
+ dejavu-fonts
+ kdm-branding-openSUSE
+ Mesa
+ xkbutils
+ xkbprint
+ setxkbmap
+ xkbevd
+ libpixman-1-0
+ xrandr
+ vaapi-intel-driver
+"
+REQUIRED_CONTENT_PACKAGES="
+ xorg-x11
+ xorg-x11-server
+ xorg-x11-driver-input
+ xorg-x11-driver-video
+ xf86-video-nouveau
+ xf86-video-vmware
+ xf86-video-ati
+ xf86-video-nv
+ xf86-video-intel
+ xf86-video-i128
+ xf86-video-geode
+ xf86-video-vesa
+ xf86-video-fbdev
+ xf86-video-modesetting
+ xf86-input-vmmouse
+ xf86-input-wacom
+ xf86-input-evdev
+ xf86-input-joystick
+ xf86-input-keyboard
+ xf86-input-mouse
+ xf86-input-synaptics
+ xf86-input-void
+ xkeyboard-config
+ xkbcomp
+ dejavu-fonts
+ libxcb-glx0
+ kdm-branding-openSUSE
+ Mesa
+ xkbutils
+ xkbprint
+ setxkbmap
+ xkbevd
+ libpixman-1-0
+ xrandr
+ vaapi-intel-driver
+"
+REQUIRED_LIBRARIES="
+ libxcb-glx
+ libIntelXvMC
+ i965_dri
+ vmwgfx_dri
+ i915_dri
+ i965_drv_video
+ libpixman-1
+"
+REQUIRED_DIRECTORIES+="
+ /usr/bin
+ /usr/lib/udev
+ /usr/$LIB64/xorg
+ /usr/share/fonts
+"
+REQUIRED_FILES="
+ /var/adm/fillup-templates/sysconfig.displaymanager-kdm
+"
diff --git a/remote/rootfs/rootfs-stage32/module.conf.opensuse.13.2 b/remote/rootfs/rootfs-stage32/module.conf.opensuse.13.2
new file mode 100644
index 00000000..aa7f8afb
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/module.conf.opensuse.13.2
@@ -0,0 +1,20 @@
+REQUIRED_INSTALLED_PACKAGES="
+ nfs-client
+ xfsprogs
+ squashfs
+ timezone
+ libcap2
+ jfsutils
+ curl
+ xvidtune
+"
+REQUIRED_CONTENT_PACKAGES="
+ timezone
+ libcap2
+"
+REQUIRED_DIRECTORIES="
+ /usr/$LIB64/xtables
+"
+REQUIRED_FILES+="
+ /usr/share/X11/app-defaults/Xvidtune
+"
diff --git a/server/configs/freiburg/auth-freiburg b/server/configs/freiburg/auth-freiburg
new file mode 120000
index 00000000..2100ff61
--- /dev/null
+++ b/server/configs/freiburg/auth-freiburg
@@ -0,0 +1 @@
+../../modules/auth-freiburg \ No newline at end of file
diff --git a/server/configs/freiburg/pam-freiburg b/server/configs/freiburg/pam-freiburg
deleted file mode 120000
index 4e851a8d..00000000
--- a/server/configs/freiburg/pam-freiburg
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/pam-freiburg \ No newline at end of file
diff --git a/server/export_target b/server/export_target
index d930b8ee..33e06ad2 100755
--- a/server/export_target
+++ b/server/export_target
@@ -102,7 +102,7 @@ generate_config() {
for FILE in $(find . -type f | cut -c 3-); do
# check for all the archives we find in TARGET_CONFIG_BUILD_DIR
for ARCHIV in $(ls "${TARGET_CONFIG_BUILD_DIR}/"*.tar 2>/dev/null); do
- if [ "x$(tar tvf "${ARCHIV}" | grep "$FILE")" != "x" ]; then
+ if [ "x$(tar tvf "${ARCHIV}" | grep -E "${FILE}$")" != "x" ]; then
# name of the module in conflict
local CONFLICTING_MODULE="$(basename ${ARCHIV%.tar})"
# file is present in archiv
diff --git a/server/modules/pam-freiburg/etc/gssapi_mech.conf b/server/modules/auth-freiburg/etc/gssapi_mech.conf
index ac41f5fd..ac41f5fd 100644
--- a/server/modules/pam-freiburg/etc/gssapi_mech.conf
+++ b/server/modules/auth-freiburg/etc/gssapi_mech.conf
diff --git a/server/modules/pam-freiburg/etc/idmapd.conf b/server/modules/auth-freiburg/etc/idmapd.conf
index 2253cf0d..2253cf0d 100644
--- a/server/modules/pam-freiburg/etc/idmapd.conf
+++ b/server/modules/auth-freiburg/etc/idmapd.conf
diff --git a/server/modules/pam-freiburg/etc/krb5.conf b/server/modules/auth-freiburg/etc/krb5.conf
index 6fd49243..6fd49243 100644
--- a/server/modules/pam-freiburg/etc/krb5.conf
+++ b/server/modules/auth-freiburg/etc/krb5.conf
diff --git a/server/modules/pam-freiburg/etc/ldap.conf b/server/modules/auth-freiburg/etc/ldap/ldap.conf
index 483595d2..3e7dad17 100644
--- a/server/modules/pam-freiburg/etc/ldap.conf
+++ b/server/modules/auth-freiburg/etc/ldap/ldap.conf
@@ -1,4 +1,4 @@
-URI ldaps://bv1.ruf.uni-freiburg.de ldaps://bv2.ruf.uni-freiburg.de ldaps://bv3.ruf.uni-freiburg.de
+URI ldaps://ldap.ruf.uni-freiburg.de ldaps://bv1.ruf.uni-freiburg.de ldaps://bv2.ruf.uni-freiburg.de ldaps://bv3.ruf.uni-freiburg.de
BASE ou=people,dc=uni-freiburg,dc=de
BIND_TIMELIMIT 5
TIMELIMIT 10
diff --git a/server/modules/pam-freiburg/etc/nsswitch.conf b/server/modules/auth-freiburg/etc/nsswitch.conf
index 85c1719a..94e5c180 100644
--- a/server/modules/pam-freiburg/etc/nsswitch.conf
+++ b/server/modules/auth-freiburg/etc/nsswitch.conf
@@ -4,8 +4,8 @@
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
-passwd: cache compat ldap
-group: cache compat ldap
+passwd: cache compat sss
+group: cache compat sss
shadow: compat
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
diff --git a/server/modules/auth-freiburg/etc/pam.d/common-account b/server/modules/auth-freiburg/etc/pam.d/common-account
new file mode 100644
index 00000000..179158f7
--- /dev/null
+++ b/server/modules/auth-freiburg/etc/pam.d/common-account
@@ -0,0 +1,26 @@
+#
+# /etc/pam.d/common-account - authorization settings common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of the authorization modules that define
+# the central access policy for use on the system. The default is to
+# only deny service to users whose accounts are expired in /etc/shadow.
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules. See
+# pam-auth-update(8) for details.
+#
+
+# here are the per-package modules (the "Primary" block)
+account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
+account [success=1 new_authtok_reqd=done default=ignore] pam_sss.so use_first_pass
+# here's the fallback if no module succeeds
+account requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+account required pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+# end of pam-auth-update config
diff --git a/server/modules/auth-freiburg/etc/pam.d/common-auth b/server/modules/auth-freiburg/etc/pam.d/common-auth
new file mode 100644
index 00000000..e04c5c74
--- /dev/null
+++ b/server/modules/auth-freiburg/etc/pam.d/common-auth
@@ -0,0 +1,28 @@
+#
+# /etc/pam.d/common-auth - authentication settings common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of the authentication modules that define
+# the central authentication scheme for use on the system
+# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
+# traditional Unix authentication mechanisms.
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules. See
+# pam-auth-update(8) for details.
+
+# here are the per-package modules (the "Primary" block)
+auth [success=ok default=ignore] pam_krb5.so minimum_uid=1000
+auth [success=2 default=ignore] pam_unix.so try_first_pass
+auth [success=1 default=ignore] pam_sss.so use_first_pass
+# here's the fallback if no module succeeds
+auth requisite pam_deny.so
+auth optional pam_script.so expose=1
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+auth required pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+# end of pam-auth-update config
diff --git a/server/modules/pam-freiburg/etc/pam.d/common-password b/server/modules/auth-freiburg/etc/pam.d/common-password
index cb8c7b71..cb8c7b71 100644
--- a/server/modules/pam-freiburg/etc/pam.d/common-password
+++ b/server/modules/auth-freiburg/etc/pam.d/common-password
diff --git a/server/modules/auth-freiburg/etc/pam.d/common-session b/server/modules/auth-freiburg/etc/pam.d/common-session
new file mode 100644
index 00000000..be55be0d
--- /dev/null
+++ b/server/modules/auth-freiburg/etc/pam.d/common-session
@@ -0,0 +1,37 @@
+#
+# /etc/pam.d/common-session - session-related modules common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of modules that define tasks to be performed
+# at the start and end of sessions of *any* kind (both interactive and
+# non-interactive).
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules. See
+# pam-auth-update(8) for details.
+
+# here are the per-package modules (the "Primary" block)
+session [default=1] pam_permit.so
+# here's the fallback if no module succeeds
+session requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+session required pam_permit.so
+# The pam_umask module will set the umask according to the system default in
+# /etc/login.defs and user settings, solving the problem of different
+# umask settings with different shells, display managers, remote sessions etc.
+# See "man pam_umask".
+session optional pam_umask.so
+# and here are more per-package modules (the "Additional" block)
+session required pam_systemd.so
+session optional pam_env.so readenv=1
+session optional pam_env.so readenv=1 envfile=/etc/default/locale
+session optional pam_krb5.so minimum_uid=1000
+session [success=1] pam_unix.so
+session [success=ok] pam_sss.so
+session sufficient pam_script.so
+session optional pam_mkhomedir.so skel=/etc/skel umask=0022
+# end of pam-auth-update config
diff --git a/server/modules/pam-freiburg/etc/pam.d/common-session-noninteractive b/server/modules/auth-freiburg/etc/pam.d/common-session-noninteractive
index 1fee2c4f..1fee2c4f 100644
--- a/server/modules/pam-freiburg/etc/pam.d/common-session-noninteractive
+++ b/server/modules/auth-freiburg/etc/pam.d/common-session-noninteractive
diff --git a/server/modules/pam-freiburg/etc/pam.d/kdm b/server/modules/auth-freiburg/etc/pam.d/kdm
index e6a4ec9b..e6a4ec9b 100644
--- a/server/modules/pam-freiburg/etc/pam.d/kdm
+++ b/server/modules/auth-freiburg/etc/pam.d/kdm
diff --git a/server/modules/pam-freiburg/etc/pam.d/kdm-np b/server/modules/auth-freiburg/etc/pam.d/kdm-np
index dc10e5b5..dc10e5b5 100644
--- a/server/modules/pam-freiburg/etc/pam.d/kdm-np
+++ b/server/modules/auth-freiburg/etc/pam.d/kdm-np
diff --git a/server/modules/pam-freiburg/etc/pam.d/login b/server/modules/auth-freiburg/etc/pam.d/login
index 1065f351..1065f351 100644
--- a/server/modules/pam-freiburg/etc/pam.d/login
+++ b/server/modules/auth-freiburg/etc/pam.d/login
diff --git a/server/modules/pam-freiburg/etc/pam.d/other b/server/modules/auth-freiburg/etc/pam.d/other
index 840eb77f..840eb77f 100644
--- a/server/modules/pam-freiburg/etc/pam.d/other
+++ b/server/modules/auth-freiburg/etc/pam.d/other
diff --git a/server/modules/pam-freiburg/etc/pam.d/passwd b/server/modules/auth-freiburg/etc/pam.d/passwd
index 32eaa3c6..32eaa3c6 100644
--- a/server/modules/pam-freiburg/etc/pam.d/passwd
+++ b/server/modules/auth-freiburg/etc/pam.d/passwd
diff --git a/server/modules/pam-freiburg/etc/pam.d/sshd b/server/modules/auth-freiburg/etc/pam.d/sshd
index 8954d639..8954d639 100644
--- a/server/modules/pam-freiburg/etc/pam.d/sshd
+++ b/server/modules/auth-freiburg/etc/pam.d/sshd
diff --git a/server/modules/pam-freiburg/etc/pam.d/vmware-authd b/server/modules/auth-freiburg/etc/pam.d/vmware-authd
index 1f9b60f9..1f9b60f9 100644
--- a/server/modules/pam-freiburg/etc/pam.d/vmware-authd
+++ b/server/modules/auth-freiburg/etc/pam.d/vmware-authd
diff --git a/server/modules/pam-freiburg/etc/pam.d/xdm b/server/modules/auth-freiburg/etc/pam.d/xdm
index d21651db..d21651db 100644
--- a/server/modules/pam-freiburg/etc/pam.d/xdm
+++ b/server/modules/auth-freiburg/etc/pam.d/xdm
diff --git a/server/modules/pam-freiburg/etc/profile.d/00-autostart.sh b/server/modules/auth-freiburg/etc/profile.d/00-autostart.sh
index 642aa002..642aa002 100755
--- a/server/modules/pam-freiburg/etc/profile.d/00-autostart.sh
+++ b/server/modules/auth-freiburg/etc/profile.d/00-autostart.sh
diff --git a/server/modules/auth-freiburg/etc/sssd/sssd.conf b/server/modules/auth-freiburg/etc/sssd/sssd.conf
new file mode 100644
index 00000000..c5c63953
--- /dev/null
+++ b/server/modules/auth-freiburg/etc/sssd/sssd.conf
@@ -0,0 +1,60 @@
+[sssd]
+config_file_version = 2
+services = nss, pam
+#debug_level = 0xffff
+# SSSD will not start if you do not configure any domains.
+# Add new domain configurations as [domain/<NAME>] sections, and
+# then add the list of domains (in the order you want them to be
+# queried) to the "domains" attribute below and uncomment it.
+domains = LDAP
+
+[nss]
+filter_users = root,ldap,named,avahi,haldaemon,dbus,radiusd,news,nscd,demo
+
+[pam]
+
+# Example LDAP domain
+[domain/LDAP]
+id_provider = ldap
+auth_provider = ldap
+ldap_tls_reqcert = never
+# ldap_schema can be set to "rfc2307", which stores group member names in the
+# "memberuid" attribute, or to "rfc2307bis", which stores group member DNs in
+# the "member" attribute. If you do not know this value, ask your LDAP
+# administrator.
+ldap_schema = rfc2307bis
+ldap_uri = ldaps://ldap.ruf.uni-freiburg.de
+ldap_backup_uri = ldaps://bv1.ruf.uni-freiburg.de,ldaps://bv2.ruf.uni-freiburg.de,ldaps://bv3.ruf.uni-freiburg.de
+ldap_group_search_base = ou=group,dc=uni-freiburg,dc=de
+ldap_user_search_base = ou=people,dc=uni-freiburg,dc=de
+ldap_user_home_directory = rufClientHome
+ldap_search_base = ou=people,dc=uni-freiburg,dc=de
+# Note that enabling enumeration will have a moderate performance impact.
+# Consequently, the default value for enumeration is FALSE.
+# Refer to the sssd.conf man page for full details.
+; enumerate = false
+# Allow offline logins by locally storing password hashes (default: false).
+cache_credentials = true
+
+# An example Active Directory domain. Please note that this configuration
+# works for AD 2003R2 and AD 2008, because they use pretty much RFC2307bis
+# compliant attribute names. To support UNIX clients with AD 2003 or older,
+# you must install Microsoft Services For Unix and map LDAP attributes onto
+# msSFU30* attribute names.
+;[domain/AD]
+;id_provider = ldap
+;auth_provider = krb5
+;chpass_provider = krb5
+
+;ldap_uri = ldaps://bv1.ruf.uni-freiburg.de ldaps://bv2.ruf.uni-freiburg.de ldaps://bv3.ruf.uni-freiburg.de
+;ldap_search_base = ou=people,dc=uni-freiburg,dc=de
+;ldap_schema = rfc2307bis
+;ldap_sasl_mech = GSSAPI
+;ldap_user_object_class = user
+;ldap_group_object_class = group
+;ldap_user_principal = userPrincipalName
+;ldap_account_expire_policy = ad
+;ldap_force_upper_case_realm = true
+;
+; krb5_server = your.ad.example.com
+; krb5_realm = EXAMPLE.COM
diff --git a/server/modules/pam-freiburg/etc/systemd/system/getty.target.wants/rpc-gssd.service b/server/modules/auth-freiburg/etc/systemd/system/getty.target.wants/rpc-gssd.service
index 194aba77..194aba77 120000
--- a/server/modules/pam-freiburg/etc/systemd/system/getty.target.wants/rpc-gssd.service
+++ b/server/modules/auth-freiburg/etc/systemd/system/getty.target.wants/rpc-gssd.service
diff --git a/server/modules/pam-freiburg/etc/systemd/system/getty.target.wants/rpc-idmapd.service b/server/modules/auth-freiburg/etc/systemd/system/getty.target.wants/rpc-idmapd.service
index 66a28252..66a28252 120000
--- a/server/modules/pam-freiburg/etc/systemd/system/getty.target.wants/rpc-idmapd.service
+++ b/server/modules/auth-freiburg/etc/systemd/system/getty.target.wants/rpc-idmapd.service
diff --git a/server/modules/pam-freiburg/etc/systemd/system/rpc-gssd.service b/server/modules/auth-freiburg/etc/systemd/system/rpc-gssd.service
index 79ffce8d..79ffce8d 100644
--- a/server/modules/pam-freiburg/etc/systemd/system/rpc-gssd.service
+++ b/server/modules/auth-freiburg/etc/systemd/system/rpc-gssd.service
diff --git a/server/modules/pam-freiburg/etc/systemd/system/rpc-idmapd.service b/server/modules/auth-freiburg/etc/systemd/system/rpc-idmapd.service
index c4da93e7..c4da93e7 100644
--- a/server/modules/pam-freiburg/etc/systemd/system/rpc-idmapd.service
+++ b/server/modules/auth-freiburg/etc/systemd/system/rpc-idmapd.service
diff --git a/server/modules/pam-freiburg/etc/systemd/system/run-rpc_pipefs.mount b/server/modules/auth-freiburg/etc/systemd/system/run-rpc_pipefs.mount
index 692adce8..692adce8 100644
--- a/server/modules/pam-freiburg/etc/systemd/system/run-rpc_pipefs.mount
+++ b/server/modules/auth-freiburg/etc/systemd/system/run-rpc_pipefs.mount
diff --git a/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent b/server/modules/auth-freiburg/opt/openslx/scripts/pam_script_mount_persistent
index dbe6ef01..dbe6ef01 100644
--- a/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent
+++ b/server/modules/auth-freiburg/opt/openslx/scripts/pam_script_mount_persistent
diff --git a/server/modules/cups-freiburg/etc/cups/ppd/RZMONO.ppd b/server/modules/cups-freiburg/etc/cups/ppd/RZMONO.ppd
index e85aa614..53ed4aa9 100644
--- a/server/modules/cups-freiburg/etc/cups/ppd/RZMONO.ppd
+++ b/server/modules/cups-freiburg/etc/cups/ppd/RZMONO.ppd
@@ -1,1378 +1,1532 @@
-*PPD-Adobe: "4.3"
-*% Xerox Corporation (R) Printer Description File
-*% Copyright Xerox Corporation
-*% Copyright Adobe Systems, Inc.
-*% All Rights Reserved.
-*% Date: 12/08/09
-*% OPB Build Number: 3.0.3
-*% PPD for Mac OS X, English
-*FormatVersion: "4.3"
-*FileVersion: "1.0"
-*LanguageEncoding: ISOLatin1
-*LanguageVersion: English
-*Product: "(Phaser 4600)"
-*Product: "(.1.3.6.1.4.1.253.8.62.1.19.1.24.1)"
-*PSVersion: "(3010) 0"
-*Manufacturer: "Xerox"
-*ModelName: "Xerox Phaser 4600"
-*ShortNickName: "Xerox Phaser 4600"
-*NickName: "Xerox Phaser 4600"
-*PCFileName: "XRX4600.PPD"
-*XRXHasPS: True
-*XRXHasBooklet: True
-
-*% JCL Begin/End & JCL features (banner)
-
-*Protocols: BCP PJL TBCP
-*Emulators: hplj
-*StartEmulator_hplj: ""
-*StopEmulator_hplj:""
-*JCLBegin:"<1B>%-12345X@PJL JOB<0A>@PJL<0A>@PJL COMMENT XRXbegin<0A>"
-
-*% Banner Sheet
-
-*JCLOpenUI *JCLBanner/Banner Sheet: Boolean
-*OrderDependency: 10.0 JCLSetup *JCLBanner
-*DefaultJCLBanner: True
-*JCLBanner False/Off: "@PJL COMMENT OID_ATT_START_SHEET OID_VAL_JOB_SHEET_NONE<0A>"
-*JCLBanner True/On: "@PJL COMMENT OID_ATT_START_SHEET OID_VAL_JOB_SHEET_FULL<0A>"
-*JCLCloseUI: *JCLBanner
-*% Banner Sheet
-
-*JCLOpenUI *JCLBanner/Banner Sheet: Boolean
-*OrderDependency: 10.0 JCLSetup *JCLBanner
-*DefaultJCLBanner: True
-*JCLBanner False/Off: "@PJL COMMENT OID_ATT_START_SHEET OID_VAL_JOB_SHEET_NONE<0A>"
-*JCLBanner True/On: "@PJL COMMENT OID_ATT_START_SHEET OID_VAL_JOB_SHEET_FULL<0A>"
-*JCLCloseUI: *JCLBanner
-
-*%
-
-
-*OpenGroup: InstallableOptions
-
-*OpenUI *XRXOptionTrays/Paper Trays: PickOne
-*OrderDependency: 69.2 AnySetup *XRXOptionTrays
-*DefaultXRXOptionTrays: TwoExtraTrays
-*XRXOptionTrays TwoExtraTrays/2 Trays: ""
-*XRXOptionTrays ThreeExtraTrays/3 Trays: ""
-*XRXOptionTrays ThreeExtraTrayHC/3 Trays (High Capacity): ""
-*XRXOptionTrays FourTrays/4 Trays: ""
-*XRXOptionTrays FourTraysHC/4 Trays (High Capacity): ""
-*XRXOptionTrays FiveTrays/5 Trays: ""
-*XRXOptionTrays FiveTraysHC/5 Trays (High Capacity): ""
-*XRXOptionTrays SixTrays/6 Trays: ""
-
-*?XRXOptionTrays: "
- currentpagedevice /InputAttributes get /Priority get length 3 sub dup 0 lt {
- pop (None)
- }{
- dup 2 ge {
- pop (Unknown)
- }{
- [
- (OneExtraTray)
- (TwoExtraTrays)
- ] exch get
- } ifelse
- } ifelse
- = flush
-"
-*End
-*CloseUI: *XRXOptionTrays
-
-*OpenUI *XRFinisher/Output Tray: PickOne
-*OrderDependency: 10 AnySetup *XRFinisher
-*DefaultXRFinisher: CT
-*XRFinisher CT/Main Tray: ""
-*XRFinisher Finisher: ""
-*XRFinisher Mailbox: ""
-*CloseUI: *XRFinisher
-
-*OpenUI *XRXOptionHD/Optional Hard Drive: Boolean
-*OrderDependency: 69.2 AnySetup *XRXOptionHD
-*DefaultXRXOptionHD: False
-*XRXOptionHD True/Installed: ""
-*XRXOptionHD False/Not Installed: ""
-*?XRXOptionHD: "
- (%disk0%) /IODevice resourcestatus
- {(True)}{(False)} ifelse
- = flush
-"
-*End
-*OIDXRXOptionHD True: "6"
-*OIDXRXOptionHD False: ""
-*?OIDXRXOptionHD: ".1.3.6.1.2.1.25.3.2.1.1.6"
-*CloseUI: *XRXOptionHD
-
-*CloseGroup: InstallableOptions
-
-
-
-*% Tray Constraints
-
-
-*% Manual Feed Constraints
-
-
-*% Hard Drive Constraints
-
-*UIConstraints: *XRXOptionHD False *XRXJobType PersonalPrint
-*UIConstraints: *XRXJobType PersonalPrint *XRXOptionHD False
-*UIConstraints: *XRXOptionHD False *XRXJobType PersonalSavedPrint
-*UIConstraints: *XRXJobType PersonalSavedPrint *XRXOptionHD False
-*UIConstraints: *XRXOptionHD False *XRXJobType SecurePrint
-*UIConstraints: *XRXJobType SecurePrint *XRXOptionHD False
-*UIConstraints: *XRXOptionHD False *XRXJobType ProofPrint
-*UIConstraints: *XRXJobType ProofPrint *XRXOptionHD False
-*UIConstraints: *XRXOptionHD False *XRXJobType SavedPrint
-*UIConstraints: *XRXJobType SavedPrint *XRXOptionHD False
-*UIConstraints: *XRXOptionHD False *XRXJobType PrintWith
-*UIConstraints: *XRXJobType PrintWith *XRXOptionHD False
-
-*% Duplexer Constraints
-
-*% Stacker Constraints
-
-*UIConstraints: *XRFinisher CT *OutputBin TopTray
-*UIConstraints: *OutputBin TopTray *XRFinisher CT
-*UIConstraints: *XRFinisher CT *OutputBin MainTray
-*UIConstraints: *OutputBin MainTray *XRFinisher CT
-*UIConstraints: *XRFinisher CT *OutputBin Bin1
-*UIConstraints: *OutputBin Bin1 *XRFinisher CT
-*UIConstraints: *XRFinisher CT *OutputBin Bin2
-*UIConstraints: *OutputBin Bin2 *XRFinisher CT
-*UIConstraints: *XRFinisher CT *OutputBin Bin3
-*UIConstraints: *OutputBin Bin3 *XRFinisher CT
-*UIConstraints: *XRFinisher CT *OutputBin Bin4
-*UIConstraints: *OutputBin Bin4 *XRFinisher CT
-*UIConstraints: *XRFinisher Finisher *OutputBin MainTray
-*UIConstraints: *OutputBin MainTray *XRFinisher Finisher
-*UIConstraints: *XRFinisher Finisher *OutputBin Bin1
-*UIConstraints: *OutputBin Bin1 *XRFinisher Finisher
-*UIConstraints: *XRFinisher Finisher *OutputBin Bin2
-*UIConstraints: *OutputBin Bin2 *XRFinisher Finisher
-*UIConstraints: *XRFinisher Finisher *OutputBin Bin3
-*UIConstraints: *OutputBin Bin3 *XRFinisher Finisher
-*UIConstraints: *XRFinisher Finisher *OutputBin Bin4
-*UIConstraints: *OutputBin Bin4 *XRFinisher Finisher
-*UIConstraints: *XRFinisher Mailbox *OutputBin TopTray
-*UIConstraints: *OutputBin TopTray *XRFinisher Mailbox
-*UIConstraints: *XRFinisher Mailbox *OutputBin MainTray
-
-
-*% === Basic Device Capabilities ============
-
-*FreeVM: "9993472"
-*VMOption 128Meg/128 MB Total RAM: "9993472"
-*VMOption 256Meg/256 MB Total RAM: "20061440"
-*VMOption 384Meg/384 MB Total RAM: "25992448"
-*VMOption 512Meg/512 MB Total RAM: "29744256"
-
-*FCacheSize 128Meg: 2097152
-*FCacheSize 256Meg: 4194304
-*FCacheSize 384Meg: 4194304
-*FCacheSize 512Meg: 4194304
-
-
-*LanguageLevel: "3"
-*Protocols: BCP TBCP
-
-*SuggestedJobTimeout: "0"
-*SuggestedWaitTimeout: "120"
-
-*Throughput: "52"
-*DefaultOutputOrder: Normal
-
-*DefaultResolution: 600dpi
-*SetResolution 600dpi: ""
-
-*ColorDevice: False
-*DefaultColorSpace: Gray
-*AccurateScreensSupport: True
-*DefaultGuaranteedMaxSeparations: 1
-*ColorModel Gray/Gray: ""
-*DefaultColorModel: Gray
-
-*% === Halftone Information ========
-*DefaultHalftoneType: 9
-*ScreenFreq: "60.0"
-*ScreenAngle: "45.0"
-*DefaultScreenProc: Dot
-*ScreenProc Dot: "{180 mul cos exch 180 mul cos add 2 div} bind"
-*DefaultTransfer: Null
-*Transfer Null: "{ }"
-*Transfer Null.Inverse: "{1 exch sub} bind"
-
-*DefaultColorSep: ProcessBlack.60lpi.600dpi/60 lpi / 600 dpi
-
-*% === For 60 lpi / 600 dpi ===============================
-
-*ColorSepScreenAngle ProcessBlack.60lpi.600dpi/60 lpi / 600 dpi: "45.0"
-*ColorSepScreenAngle CustomColor.60lpi.600dpi/60 lpi / 600 dpi: "45.0"
-*ColorSepScreenAngle ProcessCyan.60lpi.600dpi/60 lpi / 600 dpi: "45.0"
-*ColorSepScreenAngle ProcessMagenta.60lpi.600dpi/60 lpi / 600 dpi: "45.0"
-*ColorSepScreenAngle ProcessYellow.60lpi.600dpi/60 lpi / 600 dpi: "45.0"
-
-*ColorSepScreenFreq ProcessBlack.60lpi.600dpi/60 lpi / 600 dpi: "60.0"
-*ColorSepScreenFreq CustomColor.60lpi.600dpi/60 lpi / 600 dpi: "60.0"
-*ColorSepScreenFreq ProcessCyan.60lpi.600dpi/60 lpi / 600 dpi: "60.0"
-*ColorSepScreenFreq ProcessMagenta.60lpi.600dpi/60 lpi / 600 dpi: "60.0"
-*ColorSepScreenFreq ProcessYellow.60lpi.600dpi/60 lpi / 600 dpi: "60.0"
-
-*1284Modes Parallel: Compat Nibble ECP
-*1284DeviceID: "
-MFG:Xerox;
-CMD:Adobe PostScript 3, PCL;
-MDL:Phaser 4600;
-CLS:Printer;
-DES:Xerox Phaser 4600, Printer, PostScript 3, Letter/A4 Size
-"
-*End
-
-*TTRasterizer: Type42
-*?TTRasterizer: "
- 42 /FontType resourcestatus
- {pop pop (Type42)} {(None)} ifelse = flush"
-*End
-
-*FileSystem: True
-*?FileSystem: "
- statusdict /diskstatus get exec add 0 gt
- {(True)}{(False)} ifelse = flush"
-*End
-
-*Password: "0"
-*ExitServer: "
- count 0 eq
- { false } { true exch startjob } ifelse
- not
- { (WARNING: Cannot modify initial VM.) =
- (Missing or invalid password.) =
- (Please contact the author of this software.) = flush quit
- } if"
-*End
-*Reset: "
- count 0 eq
- { false } { true exch startjob } ifelse
- not
- { (WARNING: Cannot reset printer.) =
- (Missing or invalid password.) =
- (Please contact the author of this software.) = flush quit
- } if
- systemdict /quit get exec
- (WARNING : Printer Reset Failed.) = flush"
-*End
-
-
-
-
-*JobPatchFile 1: "
-% Default Definitions
- (Phaser 4600 3.0.3) pop
- userdict /xerox$pagedevice <<
- /MediaClass null
- /MediaPosition null
- /PageSize [612 792]
- /TraySwitch true
- /ImagingBBox null
- /ProcessColorModel /DeviceGray
- /PostRenderingEnhance false
- /Install {
- xerox$old_install xerox$flip {
- currentpagedevice /PageSize get aload pop translate 180 rotate
- } if
- }
- >> put
-
- userdict /xerox$set_job_type true put
- userdict /xerox$normal_job_type false put
- userdict /xerox$booklet_job false put
- userdict /xerox$booklet_pagesize_is_standard false put
- userdict /xerox$jobname (unnamed) put
- userdict /xerox$jobpassword () put
- userdict /xerox$jog 3 put
- userdict /xerox$smoothingDone false put
- userdict /xerox$pageSizeDone false put
- userdict /xerox$force_env false put
- userdict /xerox$env_was_forced false put
- userdict /xerox$customPageSize false put
- userdict /xerox$printWithJobType false put
- userdict /xerox$jobs [0] put
- userdict /xerox$old_install known not {
- userdict /xerox$old_install currentpagedevice /Install get put
- } if
- userdict /xerox$flip false put
-
- userdict /xerox$env {
- userdict /xerox$force_env true put
- userdict /xerox$flip xerox$flip not put
- } put
-
- userdict /xerox$media_mismatch_code {
- } put
-
- userdict /xerox$setpagedevice {
- /RRCustomProcs /ProcSet findresource dup /getrbinumcopiescomment known {
- /getrbinumcopiescomment get exec
- dup length 0 ne {
- cvi userdict exch /xerox$num_copies exch put
- dup /NumCopies xerox$num_copies put
- }{
- pop
- } ifelse
- }{
- pop
- } ifelse
- xerox$force_env {
- dup /MediaClass get null eq {
- dup /MediaClass (Envelope) put
- userdict /xerox$env_was_forced true put
- } if
- userdict /xerox$force_env false put
- }{
- xerox$env_was_forced {
- dup /MediaClass get (Envelope) eq {
- dup /MediaClass null put
- } if
- userdict /xerox$env_was_forced false put
- } if
- } ifelse
- xerox$media_mismatch_code
- xerox$booklet_pagesize_is_standard {
- userdict /xerox$customPageSize false put
- } if
- /RRCustomProcs /ProcSet findresource dup /setcustomflag known {
- /setcustomflag get xerox$customPageSize exch exec
- }{
- pop
- } ifelse
- xerox$booklet_job {
- userdict /xerox$booklet_pagesize known {
- dup /PageSize xerox$booklet_pagesize put
- } if
- } if
- setpagedevice
- xerox$printWithJobType {
- xerox$jobs {/RRCustomProcs /ProcSet findresource /printwith get exec} forall
- } if
- } put
-
- userdict /xerox$validate_jobname {
- {
- xerox$jobname length 0 eq {exit} if
- xerox$jobname 0 get 32 eq {
- userdict /xerox$jobname
- xerox$jobname 1 xerox$jobname length 1 sub getinterval
- put
- }{
- exit
- } ifelse
- } loop
- xerox$jobname length 0 eq {
- userdict /xerox$jobname (unnamed) put
- } if
- } put
-
- userdict /xerox$pm_job
- userdict /xerox$str (P00PS) put
- false 99 -1 40 {
- xerox$str exch 1 exch 2 string cvs putinterval
- userdict xerox$str cvn known or
- dup {exit} if
- } for
- put
-
-
-
- userdict /dscInfo known not
- {
- userdict begin
- /bstr?
- {
- true mark ( ) << /9 null /10 null /12 null /13 null /32 null >> 4 index
- {
- 2 index cvs cvn 1 index exch
- known not { cleartomark pop false mark exit } if
- } forall
- cleartomark
- } bind def
-
- /dscInfo
- <<
- /Title mark
- {
- /RRCustomProcs /ProcSet findresource /gettitlecomment get exec
- } stopped
- {
- cleartomark mark ()
- } if
- bstr?
- {
- pop (Unknown)
- } if
- exch pop
- /For mark
- {
- /RRCustomProcs /ProcSet findresource /getforcomment get exec
- } stopped
- {
- cleartomark mark ()
- } if
- bstr?
- {
- pop (Unknown)
- } if
- exch pop
- >> def
- currentdict /bstr? undef
- end
- } if
- mark {
- dscInfo /For get /RRCustomProcs /ProcSet findresource /logusername get exec
- dscInfo /Title get /RRCustomProcs /ProcSet findresource /logfilename get exec
- dscInfo /Title get /RRCustomProcs /ProcSet findresource /logjobname get exec
- /RRCustomProcs /ProcSet findresource /logjobinfo get exec
- } stopped cleartomark
-
-"
-*End
-
-
-
-*% === Paper Handling =========
-
-*% Use these entries to set paper size most of the time, unless there is
-*% specific reason to use PageRegion.
-*OpenUI *PageSize/Media Size: PickOne
-*OrderDependency: 10 AnySetup *PageSize
-*DefaultPageSize: A4
-*PageSize Letter/Letter (8.5 x 11"): "<< /PageSize [ 612 792 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize Legal/Legal (8.5 x 14"): "<< /PageSize [ 612 1008 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize Statement/Statement (5.5 x 8.5"): "<< /PageSize [ 396 612 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize Executive/Executive (7.25 x 10.5"): "<< /PageSize [ 522 756 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize FanFoldGermanLegal/8.5 x 13": "<< /PageSize [ 612 936 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize A4/A4 (210 x 297 mm): "<< /PageSize [ 595 842 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize A5/A5 (148 x 210 mm): "<< /PageSize [ 425 595 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize A6/A6 (105 x 148 mm): "<< /PageSize [ 297 420 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize IndexCard/Index Card Stock: "<< /PageSize [ 216 360 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize B5/JIS B5 (182 x 257 mm): "<< /PageSize [ 516 729 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize Oficio/Oficio (216 x 343 mm): "<< /PageSize [ 612 972 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize PostCard4x6/Postcard(4 x 6"): "<< /PageSize [ 289 432 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize Postcard/Postcard (100 x 148 mm): "<< /PageSize [ 284 419 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize ISOB5/Envelope B5 (176 x 250 mm): "<< /PageSize [ 499 709 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize EnvC5/Envelope C5 (162 x 229 mm): "<< /PageSize [ 459 649 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize EnvC6/Envelope C6 (114 x 162 mm): "<< /PageSize [ 323 459 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize EnvDL/Envelope DL (110 x 220 mm): "<< /PageSize [ 312 624 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize EnvMonarch/Envelope Monarch(3.875 x 7.5"): "<< /PageSize [ 279 540 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageSize Env10/Envelope No. 10 (4.1 x 9.5"): "<< /PageSize [ 297 684 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*CloseUI: *PageSize
-*OpenUI *PageRegion/Media Size: PickOne
-*OrderDependency: 10 AnySetup *PageRegion
-*DefaultPageRegion: A4
-*PageRegion Letter/Letter (8.5 x 11"): "<< /PageSize [ 612 792 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion Legal/Legal (8.5 x 14"): "<< /PageSize [ 612 1008 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion Statement/Statement (5.5 x 8.5"): "<< /PageSize [ 396 612 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion Executive/Executive (7.25 x 10.5"): "<< /PageSize [ 522 756 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion FanFoldGermanLegal/8.5 x 13": "<< /PageSize [ 612 936 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion A4/A4 (210 x 297 mm): "<< /PageSize [ 595 842 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion A5/A5 (148 x 210 mm): "<< /PageSize [ 425 595 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion A6/A6 (105 x 148 mm): "<< /PageSize [ 297 420 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion IndexCard/Index Card Stock: "<< /PageSize [ 216 360 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion B5/JIS B5 (182 x 257 mm): "<< /PageSize [ 516 729 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion Oficio/Oficio (216 x 343 mm): "<< /PageSize [ 612 972 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion PostCard4x6/Postcard(4 x 6"): "<< /PageSize [ 289 432 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion Postcard/Postcard (100 x 148 mm): "<< /PageSize [ 284 419 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion ISOB5/Envelope B5 (176 x 250 mm): "<< /PageSize [ 499 709 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion EnvC5/Envelope C5 (162 x 229 mm): "<< /PageSize [ 459 649 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion EnvC6/Envelope C6 (114 x 162 mm): "<< /PageSize [ 323 459 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion EnvDL/Envelope DL (110 x 220 mm): "<< /PageSize [ 312 624 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion EnvMonarch/Envelope Monarch(3.875 x 7.5"): "<< /PageSize [ 279 540 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*PageRegion Env10/Envelope No. 10 (4.1 x 9.5"): "<< /PageSize [ 297 684 ] /ImagingBBox null >> xerox$pagedevice copy pop"
-*CloseUI: *PageRegion
-*DefaultImageableArea: A4
-*ImageableArea Letter/Letter (8.5 x 11"): "11.340000152588 11.340000152588 600.659973144531 780.659973144531"
-*ImageableArea Legal/Legal (8.5 x 14"): "11.340000152588 11.340000152588 600.659973144531 996.659973144531"
-*ImageableArea Statement/Statement (5.5 x 8.5"): "11.340000152588 11.340000152588 384.660003662109 600.659973144531"
-*ImageableArea Executive/Executive (7.25 x 10.5"): "11.340000152588 11.340000152588 510.660003662109 744.659973144531"
-*ImageableArea FanFoldGermanLegal/8.5 x 13": "11.340000152588 11.340000152588 600.659973144531 924.659973144531"
-*ImageableArea A4/A4 (210 x 297 mm): "11.340000152588 11.340000152588 583.659973144531 830.659973144531"
-*ImageableArea A5/A5 (148 x 210 mm): "11.340000152588 11.340000152588 413.660003662109 583.659973144531"
-*ImageableArea A6/A6 (105 x 148 mm): "11.340000152588 11.340000152588 285.660003662109 408.660003662109"
-*ImageableArea IndexCard/Index Card Stock: "11.340000152588 11.340000152588 204.660003662109 348.660003662109"
-*ImageableArea B5/JIS B5 (182 x 257 mm): "11.340000152588 11.340000152588 504.660003662109 717.659973144531"
-*ImageableArea Oficio/Oficio (216 x 343 mm): "11.340000152588 11.340000152588 600.659973144531 960.659973144531"
-*ImageableArea PostCard4x6/Postcard(4 x 6"): "11.340000152588 11.340000152588 277.660003662109 420.660003662109"
-*ImageableArea Postcard/Postcard (100 x 148 mm): "11.340000152588 11.340000152588 272.660003662109 407.660003662109"
-*ImageableArea ISOB5/Envelope B5 (176 x 250 mm): "11.340000152588 11.340000152588 487.660003662109 697.659973144531"
-*ImageableArea EnvC5/Envelope C5 (162 x 229 mm): "11.340000152588 11.340000152588 447.660003662109 637.659973144531"
-*ImageableArea EnvC6/Envelope C6 (114 x 162 mm): "11.340000152588 11.340000152588 311.660003662109 447.660003662109"
-*ImageableArea EnvDL/Envelope DL (110 x 220 mm): "11.340000152588 11.340000152588 300.660003662109 612.659973144531"
-*ImageableArea EnvMonarch/Envelope Monarch(3.875 x 7.5"): "14.199999809265 42.599998474121 264.799987792969 497.399993896484"
-*ImageableArea Env10/Envelope No. 10 (4.1 x 9.5"): "11.340000152588 11.340000152588 285.660003662109 672.659973144531"
-*DefaultPaperDimension: A4
-*PaperDimension Letter/Letter (8.5 x 11"): "612 792"
-*PaperDimension Legal/Legal (8.5 x 14"): "612 1008"
-*PaperDimension Statement/Statement (5.5 x 8.5"): "396 612"
-*PaperDimension Executive/Executive (7.25 x 10.5"): "522 756"
-*PaperDimension FanFoldGermanLegal/8.5 x 13": "612 936"
-*PaperDimension A4/A4 (210 x 297 mm): "595 842"
-*PaperDimension A5/A5 (148 x 210 mm): "425 595"
-*PaperDimension A6/A6 (105 x 148 mm): "297 420"
-*PaperDimension IndexCard/Index Card Stock: "216 360"
-*PaperDimension B5/JIS B5 (182 x 257 mm): "516 729"
-*PaperDimension Oficio/Oficio (216 x 343 mm): "612 972"
-*PaperDimension PostCard4x6/Postcard(4 x 6"): "289 432"
-*PaperDimension Postcard/Postcard (100 x 148 mm): "284 419"
-*PaperDimension ISOB5/Envelope B5 (176 x 250 mm): "499 709"
-*PaperDimension EnvC5/Envelope C5 (162 x 229 mm): "459 649"
-*PaperDimension EnvC6/Envelope C6 (114 x 162 mm): "323 459"
-*PaperDimension EnvDL/Envelope DL (110 x 220 mm): "312 624"
-*PaperDimension EnvMonarch/Envelope Monarch(3.875 x 7.5"): "279 540"
-*PaperDimension Env10/Envelope No. 10 (4.1 x 9.5"): "297 684"
-*OpenUI *SetPageDevice/SetPageDevice: PickOne
-*OrderDependency: 100 AnySetup *SetPageDevice
-*DefaultSetPageDevice: SetPageDevice
-*SetPageDevice SetPageDevice: "xerox$pagedevice setpagedevice"
-*CloseUI: *SetPageDevice
-
-*RequiresPageRegion All: True
-
-
-*NonUIOrderDependency: 69.9 AnySetup *CustomPageSize
-*VariablePaperSize: True
-*CustomPageSize True: "
- userdict /xerox$NT known {
- 0 eq {pop pop exch}{pop pop} ifelse
- }{
- pop pop pop
- } ifelse
- dup 0 eq { % for QuarkXPress
- pop pop
- }{
- <<
- /PageSize [ 5 -2 roll ]
- >> xerox$pagedevice copy
- userdict /xerox$customPageSize true put
- xerox$pm_job {
- xerox$setpagedevice
- }{
- xerox$smoothingDone {xerox$setpagedevice}{pop} ifelse
- } ifelse
- userdict /xerox$pageSizeDone true put
- } ifelse
-"
-*End
-
-*DefaultLeadingEdge: Short
-*LeadingEdge Short: ""
-
-
-*ParamCustomPageSize Width: 1 points 216.00 612.00
-*ParamCustomPageSize Height: 2 points 360.00 1008.00
-*ParamCustomPageSize WidthOffset: 3 points 0 0
-*ParamCustomPageSize HeightOffset: 4 points 0 0
-*ParamCustomPageSize Orientation: 5 int 0 0
-*MaxMediaWidth: "612.00"
-*MaxMediaHeight: "1008.00"
-*?CurrentMediaWidth: "currentpagedevice /PageSize get 0 get = flush"
-*?CurrentMediaHeight: "currentpagedevice /PageSize get 1 get = flush"
-
-
-*% === Tray Selection ================
-*OpenUI *InputSlot: PickOne
-*OrderDependency: 43.0 AnySetup *InputSlot
-*DefaultInputSlot: Tray2
-*InputSlot Tray1/Tray 1: "
- xerox$pagedevice /MediaPosition 0 put
- xerox$pagedevice /TraySwitch false put
-"
-*End
-*InputSlot Tray2/Tray 2: "
- xerox$pagedevice /MediaPosition 1 put
- xerox$pagedevice /TraySwitch false put
-"
-*End
-*InputSlot Tray3/Tray 3: "
- xerox$pagedevice /MediaPosition 2 put
- xerox$pagedevice /TraySwitch false put
-"
-*End
-*InputSlot Tray4/Tray 4: "
- xerox$pagedevice /MediaPosition 3 put
- xerox$pagedevice /TraySwitch false put
-"
-*End
-*InputSlot Tray5/Tray 5: "
- xerox$pagedevice /MediaPosition 4 put
- xerox$pagedevice /TraySwitch false put
-"
-*End
-*InputSlot Tray6/Tray 6: "
- xerox$pagedevice /MediaPosition 5 put
- xerox$pagedevice /TraySwitch false put
-"
-*End
-*CloseUI: *InputSlot
-
-
-
-*OpenUI *Duplex/2-Sided Printing: PickOne
-*OrderDependency: 45.0 AnySetup *Duplex
-*DefaultDuplex: DuplexNoTumble
-*Duplex None/Off: "
- <</Duplex false /Tumble false>> xerox$pagedevice copy pop
-"
-*End
-*Duplex DuplexNoTumble/Long-Edge Binding: "
- <</Duplex true /Tumble false>> xerox$pagedevice copy pop
-"
-*End
-*Duplex DuplexTumble/Short-Edge Binding: "
- <</Duplex true /Tumble true>> xerox$pagedevice copy pop
-"
-*End
-*CloseUI: *Duplex
-
-
-*OpenGroup: PrintQuality/Print Quality/Color
-
-
-*OpenUI *OutputMode/Print Quality: PickOne
-*OrderDependency: 46.0 AnySetup *OutputMode
-*DefaultOutputMode: 600x600
-*OutputMode 600x600/600x600 256 shades of gray: "(<<) cvx exec /DeviceRenderingInfo (<<) cvx exec /Type 4 /ValuesPerColorComponent 2(>>) cvx exec /HWResolution [600 600] (>>) cvx exec setpagedevice"
-*OutputMode 1200x1200/1200x1200 256 shades of gray: "(<<) cvx exec /DeviceRenderingInfo (<<) cvx exec /Type 4 /ValuesPerColorComponent 2(>>) cvx exec /HWResolution [1200 1200] (>>) cvx exec setpagedevice"
-*CloseUI: *OutputMode
-
-*CloseGroup: PrintQuality
-
-*OpenGroup: AdvancedMedia/Advanced Media
-
-
-
-*OpenUI *OutputBin/Paper Destination: PickOne
-*OrderDependency: 40.0 AnySetup *OutputBin
-*DefaultOutputBin: Unspecified
-*OutputBin Unspecified/Automatically Select: ""
-*OutputBin TopTray/Top Tray: "(<<) cvx exec /OutputType (TopTray) (>>) cvx exec setpagedevice"
-*OutputBin MainTray/Main Tray: "(<<) cvx exec /OutputType (Stacker) (>>) cvx exec setpagedevice"
-*OutputBin Bin1/Bin 1: ""
-*OutputBin Bin2/Bin 2: ""
-*OutputBin Bin3/Bin 3: ""
-*OutputBin Bin4/Bin 4: ""
-*CloseUI: *OutputBin
-
-*OpenUI *MediaType/Paper Types: PickOne
-*OrderDependency: 10 AnySetup *MediaType
-*DefaultMediaType: Unspecified
-*MediaType Unspecified/Automatically Select Type: "<< /MediaType (Unspecified) >> xerox$pagedevice copy pop"
-*MediaType SystemDefault/Printer Default Type: "<< /MediaType (System-Default) >> xerox$pagedevice copy pop"
-*MediaType Plain/Plain: "<< /MediaType (Standard) >> xerox$pagedevice copy pop"
-*MediaType PrepunchedPlain/Hole Punched: "<< /MediaType (Drilled) >> xerox$pagedevice copy pop"
-*MediaType Transparency/Transparency: "<< /MediaType (Transparency) >> xerox$pagedevice copy pop"
-*MediaType LetterheadPlain/Letterhead: "<< /MediaType (Letterhead) >> xerox$pagedevice copy pop"
-*MediaType Card/Heavyweight: "<< /MediaType (CardStock) >> xerox$pagedevice copy pop"
-*MediaType Recycled/Recycled: "<< /MediaType (Recycled) >> xerox$pagedevice copy pop"
-*MediaType Bond/Bond: "<< /MediaType (Bond) >> xerox$pagedevice copy pop"
-*MediaType Archive/Archival: "<< /MediaType (Archive) >> xerox$pagedevice copy pop"
-*MediaType Labels/Labels: "<< /MediaType (Labels) >> xerox$pagedevice copy pop"
-*MediaType Lightweight/Lightweight: "<< /MediaType (Lightweight) >> xerox$pagedevice copy pop"
-*MediaType Cardstock/Cardstock: "<< /MediaType (Cardstock) >> xerox$pagedevice copy pop"
-*MediaType PreprintedPlain/Pre-Printed: "<< /MediaType (Preprinted) >> xerox$pagedevice copy pop"
-*MediaType Envelope/Envelope: "<< /MediaType (Envelope) >> xerox$pagedevice copy pop"
-*MediaType CustomType1/Custom Type 1: "<< /MediaType (custom1) >> xerox$pagedevice copy pop"
-*MediaType CustomType2/Custom Type 2: "<< /MediaType (custom2) >> xerox$pagedevice copy pop"
-*MediaType CustomType3/Custom Type 3: "<< /MediaType (custom3) >> xerox$pagedevice copy pop"
-*MediaType CustomType4/Custom Type 4: "<< /MediaType (custom4) >> xerox$pagedevice copy pop"
-*MediaType CustomType5/Custom Type 5: "<< /MediaType (custom5) >> xerox$pagedevice copy pop"
-*MediaType CustomType6/Custom Type 6: "<< /MediaType (custom6) >> xerox$pagedevice copy pop"
-*MediaType CustomType7/Custom Type 7: "<< /MediaType (custom7) >> xerox$pagedevice copy pop"
-*MediaType Other/Other: "<< /MediaType (other) >> xerox$pagedevice copy pop"
-*CloseUI: *MediaType
-
-*OpenUI *MediaColor/Paper Colors: PickOne
-*OrderDependency: 10 AnySetup *MediaColor
-*DefaultMediaColor: Unspecified
-*MediaColor Unspecified/Automatically Select Color: "<< /MediaColor (Unspecified) >> xerox$pagedevice copy pop"
-*MediaColor Yellow/Yellow: "<< /MediaColor (Yellow) >> xerox$pagedevice copy pop"
-*MediaColor Green/Green: "<< /MediaColor (Green) >> xerox$pagedevice copy pop"
-*MediaColor Buff/Buff: "<< /MediaColor (Buff) >> xerox$pagedevice copy pop"
-*MediaColor White/White: "<< /MediaColor (White) >> xerox$pagedevice copy pop"
-*MediaColor Red/Red: "<< /MediaColor (Red) >> xerox$pagedevice copy pop"
-*MediaColor Ivory/Ivory: "<< /MediaColor (Ivory) >> xerox$pagedevice copy pop"
-*MediaColor Gray/Gray: "<< /MediaColor (Gray) >> xerox$pagedevice copy pop"
-*MediaColor Clear/Clear: "<< /MediaColor (Clear) >> xerox$pagedevice copy pop"
-*MediaColor Pink/Pink: "<< /MediaColor (Pink) >> xerox$pagedevice copy pop"
-*MediaColor Goldenrod/Goldenrod: "<< /MediaColor (Goldenrod) >> xerox$pagedevice copy pop"
-*MediaColor Orange/Orange: "<< /MediaColor (Orange) >> xerox$pagedevice copy pop"
-*MediaColor Blue/Blue: "<< /MediaColor (Blue) >> xerox$pagedevice copy pop"
-*MediaColor CustomColor1/Custom Color 1: "<< /MediaColor (Custom1) >> xerox$pagedevice copy pop"
-*MediaColor CustomColor2/Custom Color 2: "<< /MediaColor (Custom2) >> xerox$pagedevice copy pop"
-*MediaColor CustomColor3/Custom Color 3: "<< /MediaColor (Custom3) >> xerox$pagedevice copy pop"
-*MediaColor CustomColor4/Custom Color 4: "<< /MediaColor (Custom4) >> xerox$pagedevice copy pop"
-*MediaColor CustomColor5/Custom Color 5: "<< /MediaColor (Custom5) >> xerox$pagedevice copy pop"
-*MediaColor CustomColor6/Custom Color 6: "<< /MediaColor (Custom6) >> xerox$pagedevice copy pop"
-*MediaColor CustomColor7/Custom Color 7: "<< /MediaColor (Custom7) >> xerox$pagedevice copy pop"
-*MediaColor Other/Other Color: "<< /MediaColor (Other) >> xerox$pagedevice copy pop"
-*CloseUI: *MediaColor
-
-
-*% === Offset Collated Sets ======================
-*OpenUI *XRXJog/Offset Collated Sets: Boolean
-*OrderDependency: 55.0 AnySetup *XRXJog
-*DefaultXRXJog: False
-*XRXJog False/Off: "
- userdict /xerox$jog currentpagedevice /Jog get put
-"
-*End
-*XRXJog True/On: "
- userdict /xerox$jog 3 put
-"
-*End
-*CloseUI: *XRXJog
-
-
-
-*% === Collation =====================
-*OpenUI *Collate/Quick Collate: Boolean
-*OrderDependency: 56.0 AnySetup *Collate
-*DefaultCollate: True
-*Collate False/Off: "
- xerox$pagedevice /Collate false put
-"
-*End
-*Collate True/On: "
- xerox$pagedevice /Collate true put
- currentpagedevice /Jog known {xerox$pagedevice /Jog xerox$jog put} if
-"
-*End
-*CloseUI: *Collate
-
-*OpenUI *StapleLocation/Stapling: PickOne
-*OrderDependency: 55.0 AnySetup *StapleLocation
-*DefaultStapleLocation: None
-*StapleLocation None/No Staple: "
- (<<) cvx exec /Staple 0 (>>) cvx exec setpagedevice"
-*End
-*StapleLocation SinglePortrait/1 Staple: "
- (<<) cvx exec /Collate true (>>) cvx exec setpagedevice
- (<<) cvx exec /Staple 3 (>>) cvx exec setpagedevice
- (<<) cvx exec /StapleDetails (<<) cvx exec /Type 1 /StapleLocation (SinglePortrait) (>>) cvx exec (>>) cvx exec setpagedevice"
-*End
-
-*CloseUI: *StapleLocation
-
-*% === Edge-to-Edge Printing ======================
-*OpenUI *XRXEdgeToEdge/Edge-to-Edge Printing: Boolean
-*OrderDependency: 57.0 DocumentSetup *XRXEdgeToEdge
-*DefaultXRXEdgeToEdge: False
-*XRXEdgeToEdge False/Off: "
- userdict /xerox$edgetoedgedone known not {
- false /RRCustomProcs /ProcSet findresource /edgetoedge get exec
- userdict /xerox$edgetoedgedone true put
- } if
-"
-*End
-*XRXEdgeToEdge True/On: "
- userdict /xerox$edgetoedgedone known not {
- true /RRCustomProcs /ProcSet findresource /edgetoedge get exec
- userdict /xerox$edgetoedgedone true put
- } if
-"
-*End
-*CloseUI: *XRXEdgeToEdge
-
-
-
-*% === Media Mismatch Policy =====================
-*OpenUI *XRXMismatch/Media Mismatch Policy: PickOne
-*OrderDependency: 59.0 AnySetup *XRXMismatch
-*DefaultXRXMismatch: PromptTypeMismatch
-*XRXMismatch PromptTypeMismatch/If paper type mismatch, prompt me at the printer: "
-"
-*End
-*XRXMismatch Scale/Scale document to fit currently loaded paper size: "
- userdict /xerox$media_mismatch_code {
- true /RRCustomProcs /ProcSet findresource /setautofit get exec
- xerox$pagedevice /TraySwitch get not
- {
- xerox$pagedevice /MediaClass null put
- } if
- } put
-"
-*End
-*XRXMismatch Clip/Crop document to fit currently loaded paper size: "
- userdict /xerox$media_mismatch_code {
- false /RRCustomProcs /ProcSet findresource /setautofit get exec
- xerox$pagedevice /TraySwitch get not
- {
- xerox$pagedevice /MediaClass null put
- } if
- } put
-"
-*End
-*CloseUI: *XRXMismatch
-
-
-
-*% === Separation Page Source ===========
-*OpenUI *XRXSlipSheetSource/Separation Page Source: PickOne
-*OrderDependency: 62.0 AnySetup *XRXSlipSheetSource
-*DefaultXRXSlipSheetSource: Tray1
-*XRXSlipSheetSource Tray1/Tray 1: "
- 0 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
-"
-*End
-*XRXSlipSheetSource Tray2/Tray 2: "
- 1 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
-"
-*End
-*XRXSlipSheetSource Tray3/Tray 3: "
- 2 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
-"
-*End
-*XRXSlipSheetSource Tray4/Tray 4: "
- 3 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
-"
-*XRXSlipSheetSource Tray5/Tray 5: "
- 4 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
-"
-*XRXSlipSheetSource Tray6/Tray 6: "
- 5 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
-"
-*End
-*CloseUI: *XRXSlipSheetSource
-
-
-*% === Separation Page ==============
-*OpenUI *Slipsheet/Separation Page: PickOne
-*OrderDependency: 62.1 AnySetup *Slipsheet
-*DefaultSlipsheet: None
-*Slipsheet None/None: "
- xerox$pagedevice /SlipSheet 0 put
-"
-*End
-*Slipsheet EndOfJob/End Of Job: "
- xerox$pagedevice /SlipSheet 2 put
-"
-*End
-*Slipsheet EndOfSet/End Of Set: "
- xerox$pagedevice /SlipSheet 3 put
-"
-*End
-*Slipsheet EndOfPage/End Of Page: "
- xerox$booklet_job {
- xerox$pagedevice /SlipSheet 0 put
- }{
- xerox$pagedevice /SlipSheet 4 put
- } ifelse
-"
-*End
-*CloseUI: *Slipsheet
-
-
-
-
-*% === Last Page Paper Source ===========
-*OpenUI *XRXLastPageSource/Last Page Paper Source: PickOne
-*OrderDependency: 63.0 AnySetup *XRXLastPageSource
-*DefaultXRXLastPageSource: Same
-*XRXLastPageSource Same/Same as previous pages: ""
-*XRXLastPageSource Tray1/Tray 1: "
- 2 0 /RRCustomProcs /ProcSet findresource /setcoverpages get exec
-"
-*End
-*XRXLastPageSource Tray2/Tray 2: "
- 2 1 /RRCustomProcs /ProcSet findresource /setcoverpages get exec
-"
-*End
-*XRXLastPageSource Tray3/Tray 3: "
- 2 2 /RRCustomProcs /ProcSet findresource /setcoverpages get exec
-"
-*End
-*XRXLastPageSource Tray4/Tray 4: "
- 2 3 /RRCustomProcs /ProcSet findresource /setcoverpages get exec
-"
-*End
-*XRXLastPageSource Tray5/Tray 5: "
- 2 4 /RRCustomProcs /ProcSet findresource /setcoverpages get exec
-"
-*End
-*XRXLastPageSource Tray6/Tray 6: "
- 2 5 /RRCustomProcs /ProcSet findresource /setcoverpages get exec
-"
-*End
-*CloseUI: *XRXLastPageSource
-
-
-
-
-
-*% === Draft Mode =====================
-*OpenUI *XRXDraft/Draft Mode: Boolean
-*OrderDependency: 47.0 AnySetup *XRXDraft
-*DefaultXRXDraft: False
-*XRXDraft False/Off: ""
-*XRXDraft True/On: "
- <<
- /HWResolution [600 600]
- /PostRenderingEnhance true
- >> xerox$pagedevice copy pop
-"
-*End
-*CloseUI: *XRXDraft
-
-
-*CloseGroup: AdvancedMedia
-
-
-*OpenGroup: JobType/Job Type
-
-*OpenUI *XRXJobType/Job Type: PickOne
-*OrderDependency: 41.99 AnySetup *XRXJobType
-*DefaultXRXJobType: Normal
-*XRXJobType Normal/Normal: "
- userdict /xerox$normal_job_type true put
-"
-*End
-*XRXJobType PersonalPrint/Personal Print: "
- xerox$pagedevice /DeferredMediaSelection true put
- {
- xerox$jobname (unnamed) eq {
- dscInfo /Title get dup (Unknown) ne exch () ne and {
- userdict /xerox$jobname dscInfo /Title get put
- } if
- } if
- userdict /xerox$pdejobname known {
- userdict /xerox$jobname xerox$pdejobname put
- mark {
- dscInfo /Title get
- /RRCustomProcs /ProcSet findresource /logjobname get exec
- /RRCustomProcs /ProcSet findresource /logjobinfo get exec
- } stopped cleartomark
- } if
- xerox$set_job_type {
- xerox$validate_jobname
- xerox$jobname 6 /RRCustomProcs /ProcSet findresource /setjobtype get exec
- userdict /xerox$set_job_type false put
- } if
- } stopped
- {
- /xerox$buffer 4096 string def
- {currentfile xerox$buffer readstring exch pop not {exit} if} loop
- } if
-"
-*End
-*XRXJobType PersonalSavedPrint/Personal Saved Print: "
- xerox$pagedevice /DeferredMediaSelection true put
- {
- xerox$set_job_type {
- dscInfo /Title get dup (Unknown) ne exch () ne and {
- userdict /xerox$jobname dscInfo /Title get put
- } if
- userdict /xerox$pdejobname known {
- userdict /xerox$jobname xerox$pdejobname put
- mark {
- dscInfo /Title get
- /RRCustomProcs /ProcSet findresource /logjobname get exec
- /RRCustomProcs /ProcSet findresource /logjobinfo get exec
- } stopped cleartomark
- } if
- userdict /xerox$pdejobpassword known {
- userdict /xerox$jobpassword xerox$pdejobpassword put
- } if
- xerox$validate_jobname
- xerox$jobname length 4 add string
- dup 0 (0000) putinterval
- dup xerox$jobpassword dup length 4 sub neg exch putinterval
- dup 4 xerox$jobname putinterval
- 11 /RRCustomProcs /ProcSet findresource /setjobtype get exec
- userdict /xerox$set_job_type false put
- } if
- } stopped
- {
- /xerox$buffer 4096 string def
- {currentfile xerox$buffer readstring exch pop not {exit} if} loop
- } if
-"
-*End
-*XRXJobType SecurePrint/Secure Print: "
- xerox$pagedevice /DeferredMediaSelection true put
- {
- xerox$set_job_type {
- dscInfo /Title get dup (Unknown) ne exch () ne and {
- userdict /xerox$jobname dscInfo /Title get put
- } if
- userdict /xerox$pdejobname known {
- userdict /xerox$jobname xerox$pdejobname put
- mark {
- dscInfo /Title get
- /RRCustomProcs /ProcSet findresource /logjobname get exec
- /RRCustomProcs /ProcSet findresource /logjobinfo get exec
- } stopped cleartomark
- } if
- userdict /xerox$pdejobpassword known {
- userdict /xerox$jobpassword xerox$pdejobpassword put
- } if
- xerox$validate_jobname
- xerox$jobname length 4 add string
- dup 0 (0000) putinterval
- dup xerox$jobpassword dup length 4 sub neg exch putinterval
- dup 4 xerox$jobname putinterval
- 3 /RRCustomProcs /ProcSet findresource /setjobtype get exec
- userdict /xerox$set_job_type false put
- } if
- } stopped
- {
- /xerox$buffer 4096 string def
- {currentfile xerox$buffer readstring exch pop not {exit} if} loop
- } if
-"
-*End
-*XRXJobType ProofPrint/Sample Set: "
- xerox$pagedevice /DeferredMediaSelection false put
- mark {
- xerox$jobname (unnamed) eq {
- dscInfo /Title get dup (Unknown) ne exch () ne and {
- userdict /xerox$jobname dscInfo /Title get put
- } if
- } if
- userdict /xerox$pdejobname known {
- userdict /xerox$jobname xerox$pdejobname put
- mark {
- dscInfo /Title get
- /RRCustomProcs /ProcSet findresource /logjobname get exec
- /RRCustomProcs /ProcSet findresource /logjobinfo get exec
- } stopped cleartomark
- } if
- xerox$set_job_type {
- xerox$validate_jobname
- xerox$jobname 1 /RRCustomProcs /ProcSet findresource /setjobtype get exec
- userdict /xerox$set_job_type false put
- } if
- } stopped cleartomark
-"
-*End
-*XRXJobType SavedPrint/Saved Print: "
- xerox$pagedevice /DeferredMediaSelection true put
- mark {
- xerox$jobname (unnamed) eq {
- dscInfo /Title get dup (Unknown) ne exch () ne and {
- userdict /xerox$jobname dscInfo /Title get put
- } if
- } if
- userdict /xerox$pdejobname known {
- userdict /xerox$jobname xerox$pdejobname put
- mark {
- dscInfo /Title get
- /RRCustomProcs /ProcSet findresource /logjobname get exec
- /RRCustomProcs /ProcSet findresource /logjobinfo get exec
- } stopped cleartomark
- } if
- xerox$set_job_type {
- xerox$validate_jobname
- xerox$jobname 2 /RRCustomProcs /ProcSet findresource /setjobtype get exec
- userdict /xerox$set_job_type false put
- } if
- } stopped cleartomark
-"
-*End
-*XRXJobType PrintWith/Print With: "
- xerox$pagedevice /DeferredMediaSelection true put
- {
- xerox$set_job_type {
- dscInfo /Title get dup (Unknown) ne exch () ne and {
- userdict /xerox$jobname dscInfo /Title get put
- } if
- userdict /xerox$pdejobname known {
- userdict /xerox$jobname xerox$pdejobname put
- mark {
- dscInfo /Title get
- /RRCustomProcs /ProcSet findresource /logjobname get exec
- /RRCustomProcs /ProcSet findresource /logjobinfo get exec
- } stopped cleartomark
- } if
- userdict /xerox$pdejobpassword known {
- userdict /xerox$jobpassword xerox$pdejobpassword put
- } if
- xerox$validate_jobname
- xerox$jobname length 4 add string
- dup 0 (0000) putinterval
- dup xerox$jobpassword dup length 4 sub neg exch putinterval
- dup 4 xerox$jobname putinterval
- 12 /RRCustomProcs /ProcSet findresource /setjobtype get exec
- userdict /xerox$printWithJobType true put
- userdict /xerox$set_job_type false put
- } if
- } stopped
- {
- /xerox$buffer 4096 string def
- {currentfile xerox$buffer readstring exch pop not {exit} if} loop
- } if
-"
-*End
-*CloseUI: *XRXJobType
-
-*OpenUI *XRXPasswordX000/Job Identifier x___: PickOne
-*OrderDependency: 40.0 AnySetup *XRXPasswordX000
-*DefaultXRXPasswordX000: 0nnn
-*XRXPasswordX000 0nnn/0___: " userdict /xerox$id1 0000 put"
-*XRXPasswordX000 1nnn/1___: " userdict /xerox$id1 1000 put"
-*XRXPasswordX000 2nnn/2___: " userdict /xerox$id1 2000 put"
-*XRXPasswordX000 3nnn/3___: " userdict /xerox$id1 3000 put"
-*XRXPasswordX000 4nnn/4___: " userdict /xerox$id1 4000 put"
-*XRXPasswordX000 5nnn/5___: " userdict /xerox$id1 5000 put"
-*XRXPasswordX000 6nnn/6___: " userdict /xerox$id1 6000 put"
-*XRXPasswordX000 7nnn/7___: " userdict /xerox$id1 7000 put"
-*XRXPasswordX000 8nnn/8___: " userdict /xerox$id1 8000 put"
-*XRXPasswordX000 9nnn/9___: " userdict /xerox$id1 9000 put"
-*CloseUI: *XRXPasswordX000
-
-*OpenUI *XRXPassword0X00/Job Identifier _x__: PickOne
-*OrderDependency: 40.1 AnySetup *XRXPassword0X00
-*DefaultXRXPassword0X00: n0nn
-*XRXPassword0X00 n0nn/_0__: " userdict /xerox$id2 0000 put"
-*XRXPassword0X00 n1nn/_1__: " userdict /xerox$id2 0100 put"
-*XRXPassword0X00 n2nn/_2__: " userdict /xerox$id2 0200 put"
-*XRXPassword0X00 n3nn/_3__: " userdict /xerox$id2 0300 put"
-*XRXPassword0X00 n4nn/_4__: " userdict /xerox$id2 0400 put"
-*XRXPassword0X00 n5nn/_5__: " userdict /xerox$id2 0500 put"
-*XRXPassword0X00 n6nn/_6__: " userdict /xerox$id2 0600 put"
-*XRXPassword0X00 n7nn/_7__: " userdict /xerox$id2 0700 put"
-*XRXPassword0X00 n8nn/_8__: " userdict /xerox$id2 0800 put"
-*XRXPassword0X00 n9nn/_9__: " userdict /xerox$id2 0900 put"
-*CloseUI: *XRXPassword0X00
-
-*OpenUI *XRXPassword00X0/Job Identifier __x_: PickOne
-*OrderDependency: 40.2 AnySetup *XRXPassword00X0
-*DefaultXRXPassword00X0: nn0n
-*XRXPassword00X0 nn0n/__0_: " userdict /xerox$id3 0000 put"
-*XRXPassword00X0 nn1n/__1_: " userdict /xerox$id3 0010 put"
-*XRXPassword00X0 nn2n/__2_: " userdict /xerox$id3 0020 put"
-*XRXPassword00X0 nn3n/__3_: " userdict /xerox$id3 0030 put"
-*XRXPassword00X0 nn4n/__4_: " userdict /xerox$id3 0040 put"
-*XRXPassword00X0 nn5n/__5_: " userdict /xerox$id3 0050 put"
-*XRXPassword00X0 nn6n/__6_: " userdict /xerox$id3 0060 put"
-*XRXPassword00X0 nn7n/__7_: " userdict /xerox$id3 0070 put"
-*XRXPassword00X0 nn8n/__8_: " userdict /xerox$id3 0080 put"
-*XRXPassword00X0 nn9n/__9_: " userdict /xerox$id3 0090 put"
-*CloseUI: *XRXPassword00X0
-
-*OpenUI *XRXPassword000X/Job Identifier ___x: PickOne
-*OrderDependency: 40.3 AnySetup *XRXPassword000X
-*DefaultXRXPassword000X: nnn0
-*XRXPassword000X nnn0/___0: "
- xerox$id1 xerox$id2 xerox$id3 0000 add add add 4 string cvs
- userdict exch /xerox$jobpassword exch put
-"
-*End
-*XRXPassword000X nnn1/___1: "
- xerox$id1 xerox$id2 xerox$id3 0001 add add add 4 string cvs
- userdict exch /xerox$jobpassword exch put
-"
-*End
-*XRXPassword000X nnn2/___2: "
- xerox$id1 xerox$id2 xerox$id3 0002 add add add 4 string cvs
- userdict exch /xerox$jobpassword exch put
-"
-*End
-*XRXPassword000X nnn3/___3: "
- xerox$id1 xerox$id2 xerox$id3 0003 add add add 4 string cvs
- userdict exch /xerox$jobpassword exch put
-"
-*End
-*XRXPassword000X nnn4/___4: "
- xerox$id1 xerox$id2 xerox$id3 0004 add add add 4 string cvs
- userdict exch /xerox$jobpassword exch put
-"
-*End
-*XRXPassword000X nnn5/___5: "
- xerox$id1 xerox$id2 xerox$id3 0005 add add add 4 string cvs
- userdict exch /xerox$jobpassword exch put
-"
-*End
-*XRXPassword000X nnn6/___6: "
- xerox$id1 xerox$id2 xerox$id3 0006 add add add 4 string cvs
- userdict exch /xerox$jobpassword exch put
-"
-*End
-*XRXPassword000X nnn7/___7: "
- xerox$id1 xerox$id2 xerox$id3 0007 add add add 4 string cvs
- userdict exch /xerox$jobpassword exch put
-"
-*End
-*XRXPassword000X nnn8/___8: "
- xerox$id1 xerox$id2 xerox$id3 0008 add add add 4 string cvs
- userdict exch /xerox$jobpassword exch put
-"
-*End
-*XRXPassword000X nnn9/___9: "
- xerox$id1 xerox$id2 xerox$id3 0009 add add add 4 string cvs
- userdict exch /xerox$jobpassword exch put
-"
-*End
-*CloseUI: *XRXPassword000X
-
-*XRXJobName Title/Job Name: ""
-
-*XRXJobPassword Title/Numeric Password: ""
-
-*CloseGroup: JobType
-
-
-*% === Font Information =====================
-*DefaultFont: Courier
-*Font AlbertusMT-Italic: Standard "(001.001)" Standard ROM
-*Font AlbertusMT-Light: Standard "(001.001)" Standard ROM
-*Font AlbertusMT: Standard "(001.001)" Standard ROM
-*Font AntiqueOlive-Bold: Standard "(001.002)" Standard ROM
-*Font AntiqueOlive-Compact: Standard "(001.002)" Standard ROM
-*Font AntiqueOlive-Italic: Standard "(001.002)" Standard ROM
-*Font AntiqueOlive-Roman: Standard "(001.002)" Standard ROM
-*Font Apple-Chancery: Standard "(001.002)" ExtendedRoman ROM
-*Font Arial-BoldItalicMT: Standard "(001.003)" Standard ROM
-*Font Arial-BoldMT: Standard "(001.003)" Standard ROM
-*Font Arial-ItalicMT: Standard "(001.003)" Standard ROM
-*Font ArialMT: Standard "(001.003)" Standard ROM
-*Font ArialNarrowCyrMT: Standard "(001.003)" Standard ROM
-*Font ArialNarrowCyrMT-Bold: Standard "(001.003)" Standard ROM
-*Font AvantGarde-Book: Standard "(003.000)" Standard ROM
-*Font AvantGarde-BookOblique: Standard "(003.000)" Standard ROM
-*Font AvantGarde-Demi: Standard "(003.000)" Standard ROM
-*Font AvantGarde-DemiOblique: Standard "(003.000)" Standard ROM
-*Font Bodoni-Bold: Standard "(001.003)" Standard ROM
-*Font Bodoni-BoldItalic: Standard "(001.003)" Standard ROM
-*Font Bodoni-Italic: Standard "(001.003)" Standard ROM
-*Font Bodoni-Poster: Standard "(001.003)" Standard ROM
-*Font Bodoni-PosterCompressed: Standard "(001.002)" Standard ROM
-*Font Bodoni: Standard "(001.003)" Standard ROM
-*Font Bookman-Demi: Standard "(003.000)" Standard ROM
-*Font Bookman-DemiItalic: Standard "(003.000)" Standard ROM
-*Font Bookman-Light: Standard "(003.000)" Standard ROM
-*Font Bookman-LightItalic: Standard "(003.000)" Standard ROM
-*Font Carta: Special "(001.001)" Special ROM
-*Font Chicago: Standard "(001.000)" ExtendedRoman ROM
-*Font Clarendon-Bold: Standard "(001.002)" Standard ROM
-*Font Clarendon-Light: Standard "(001.002)" Standard ROM
-*Font Clarendon: Standard "(001.002)" Standard ROM
-*Font CooperBlack-Italic: Standard "(001.004)" Standard ROM
-*Font CooperBlack: Standard "(001.004)" Standard ROM
-*Font Copperplate-ThirtyThreeBC: Standard "(001.003)" Standard ROM
-*Font Copperplate-ThirtyTwoBC: Standard "(001.003)" Standard ROM
-*Font Coronet-Regular: Standard "(001.002)" Standard ROM
-*Font Courier-Bold: Standard "(004.000)" Standard ROM
-*Font Courier-BoldOblique: Standard "(004.000)" Standard ROM
-*Font Courier-Oblique: Standard "(004.000)" Standard ROM
-*Font Courier: Standard "(004.000)" Standard ROM
-*Font Eurostile-Bold: Standard "(001.002)" Standard ROM
-*Font Eurostile-BoldExtendedTwo: Standard "(001.003)" Standard ROM
-*Font Eurostile-ExtendedTwo: Standard "(001.003)" Standard ROM
-*Font Eurostile: Standard "(001.003)" Standard ROM
-*Font Geneva: Standard "(001.000)" ExtendedRoman ROM
-*Font GillSans-Bold: Standard "(001.002)" Standard ROM
-*Font GillSans-BoldCondensed: Standard "(001.002)" Standard ROM
-*Font GillSans-BoldItalic: Standard "(001.003)" Standard ROM
-*Font GillSans-Condensed: Standard "(001.002)" Standard ROM
-*Font GillSans-ExtraBold: Standard "(001.002)" Standard ROM
-*Font GillSans-Italic: Standard "(001.003)" Standard ROM
-*Font GillSans-Light: Standard "(001.002)" Standard ROM
-*Font GillSans-LightItalic: Standard "(001.003)" Standard ROM
-*Font GillSans: Standard "(001.003)" Standard ROM
-*Font Goudy-Bold: Standard "(001.003)" Standard ROM
-*Font Goudy-BoldItalic: Standard "(001.003)" Standard ROM
-*Font Goudy-ExtraBold: Standard "(001.002)" Standard ROM
-*Font Goudy-Italic: Standard "(001.003)" Standard ROM
-*Font Goudy: Standard "(001.004)" Standard ROM
-*Font Helvetica-Bold: Standard "(003.000)" Standard ROM
-*Font Helvetica-BoldOblique: Standard "(003.000)" Standard ROM
-*Font Helvetica-Condensed-Bold: Standard "(003.000)" Standard ROM
-*Font Helvetica-Condensed-BoldObl: Standard "(003.000)" Standard ROM
-*Font Helvetica-Condensed-Oblique: Standard "(003.000)" Standard ROM
-*Font Helvetica-Condensed: Standard "(003.000)" Standard ROM
-*Font Helvetica-Narrow-Bold: Standard "(003.000)" Standard ROM
-*Font Helvetica-Narrow-BoldOblique: Standard "(003.000)" Standard ROM
-*Font Helvetica-Narrow-Oblique: Standard "(003.000)" Standard ROM
-*Font Helvetica-Narrow: Standard "(003.000)" Standard ROM
-*Font Helvetica-Oblique: Standard "(003.000)" Standard ROM
-*Font Helvetica: Standard "(003.000)" Standard ROM
-*Font HoeflerText-Black: Standard "(001.000)" ExtendedRoman ROM
-*Font HoeflerText-BlackItalic: Standard "(001.000)" ExtendedRoman ROM
-*Font HoeflerText-Italic: Standard "(001.000)" ExtendedRoman ROM
-*Font HoeflerText-Ornaments: Special "(001.001)" Special ROM
-*Font HoeflerText-Regular: Standard "(001.000)" ExtendedRoman ROM
-*Font JoannaMT-Bold: Standard "(001.001)" Standard ROM
-*Font JoannaMT-BoldItalic: Standard "(001.001)" Standard ROM
-*Font JoannaMT-Italic: Standard "(001.001)" Standard ROM
-*Font JoannaMT: Standard "(001.001)" Standard ROM
-*Font LetterGothic-Bold: Standard "(001.007)" Standard ROM
-*Font LetterGothic-BoldSlanted: Standard "(001.006)" Standard ROM
-*Font LetterGothic-Slanted: Standard "(001.005)" Standard ROM
-*Font LetterGothic: Standard "(001.005)" Standard ROM
-*Font LubalinGraph-Book: Standard "(001.004)" Standard ROM
-*Font LubalinGraph-BookOblique: Standard "(001.004)" Standard ROM
-*Font LubalinGraph-Demi: Standard "(001.004)" Standard ROM
-*Font LubalinGraph-DemiOblique: Standard "(001.004)" Standard ROM
-*Font Marigold: Standard "(001.001)" Standard ROM
-*Font MonaLisa-Recut: Standard "(001.001)" Standard ROM
-*Font Monaco: Standard "(001.001)" ExtendedRoman ROM
-*Font NewCenturySchlbk-Bold: Standard "(003.000)" Standard ROM
-*Font NewCenturySchlbk-BoldItalic: Standard "(003.000)" Standard ROM
-*Font NewCenturySchlbk-Italic: Standard "(003.000)" Standard ROM
-*Font NewCenturySchlbk-Roman: Standard "(003.000)" Standard ROM
-*Font NewYork: Standard "(001.000)" ExtendedRoman ROM
-*Font Optima-Bold: Standard "(001.007)" Standard ROM
-*Font Optima-BoldItalic: Standard "(001.001)" Standard ROM
-*Font Optima-Italic: Standard "(001.001)" Standard ROM
-*Font Optima: Standard "(001.006)" Standard ROM
-*Font Oxford: Standard "(001.001)" Standard ROM
-*Font Palatino-Bold: Standard "(003.000)" Standard ROM
-*Font Palatino-BoldItalic: Standard "(003.000)" Standard ROM
-*Font Palatino-Italic: Standard "(003.000)" Standard ROM
-*Font Palatino-Roman: Standard "(003.000)" Standard ROM
-*Font StempelGaramond-Bold: Standard "(001.003)" Standard ROM
-*Font StempelGaramond-BoldItalic: Standard "(001.003)" Standard ROM
-*Font StempelGaramond-Italic: Standard "(001.003)" Standard ROM
-*Font StempelGaramond-Roman: Standard "(001.003)" Standard ROM
-*Font Symbol: Special "(001.008)" Special ROM
-*Font Tekton: Standard "(001.002)" Standard ROM
-*Font Times-Bold: Standard "(003.000)" Standard ROM
-*Font Times-BoldItalic: Standard "(003.000)" Standard ROM
-*Font Times-Italic: Standard "(003.000)" Standard ROM
-*Font Times-Roman: Standard "(003.000)" Standard ROM
-*Font TimesNewRomanPS-BoldItalicMT: Standard "(001.003)" Standard ROM
-*Font TimesNewRomanPS-BoldMT: Standard "(001.004)" Standard ROM
-*Font TimesNewRomanPS-ItalicMT: Standard "(001.003)" Standard ROM
-*Font TimesNewRomanPSMT: Standard "(001.003)" Standard ROM
-*Font Univers-Bold: Standard "(001.004)" Standard ROM
-*Font Univers-BoldExt: Standard "(001.001)" Standard ROM
-*Font Univers-BoldExtObl: Standard "(001.001)" Standard ROM
-*Font Univers-BoldOblique: Standard "(001.004)" Standard ROM
-*Font Univers-Condensed: Standard "(001.003)" Standard ROM
-*Font Univers-CondensedBold: Standard "(001.002)" Standard ROM
-*Font Univers-CondensedBoldOblique: Standard "(001.002)" Standard ROM
-*Font Univers-CondensedOblique: Standard "(001.003)" Standard ROM
-*Font Univers-Extended: Standard "(001.001)" Standard ROM
-*Font Univers-ExtendedObl: Standard "(001.001)" Standard ROM
-*Font Univers-Light: Standard "(001.004)" Standard ROM
-*Font Univers-LightOblique: Standard "(001.004)" Standard ROM
-*Font Univers-Oblique: Standard "(001.004)" Standard ROM
-*Font Univers: Standard "(001.004)" Standard ROM
-*Font Wingdings-Regular: Special "(001.001)" Special ROM
-*Font Wingdings: Unknown "(001.001)" Unknown ROM
-*Font ZapfChancery-MediumItalic: Standard "(003.000)" Standard ROM
-*Font ZapfDingbats: Special "(002.000)" Special ROM
-
-*?FontQuery: "
- { count 1 gt
- { exch dup 127 string cvs (/) print print (:) print
- /Font resourcestatus {pop pop (Yes)} {(No)} ifelse =
- } { exit } ifelse
- } bind loop
- (*) = flush"
-*End
-
-*?FontList: "(*) {cvn ==} 128 string /Font resourceforall (*) = flush"
-
-
-*% end of PPD file for Xerox Phaser 4600
+*PPD-Adobe: "4.3"
+*% Xerox Corporation (R) Printer Description File
+*% Copyright Xerox Corporation
+*% Copyright Adobe Systems, Inc.
+*% All Rights Reserved.
+*% Date: 08/20/04
+*% OPB Build Number: 1.3.0
+*% PPD for Windows, English
+*FormatVersion: "4.3"
+*FileVersion: "1.0"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*Product: "(Phaser 5500N)"
+*PSVersion: "(3015.102) 6"
+*Manufacturer: "Xerox"
+*ModelName: "Xerox Phaser 5500N"
+*ShortNickName: "Xerox Phaser 5500N"
+*NickName: "Xerox Phaser 5500N"
+*PCFileName: "XRX5500N.PPD"
+
+*OpenGroup: InstallableOptions/Options Installed
+
+
+*OpenUI *InstalledMemory/Memory Configuration: PickOne
+*OrderDependency: 69.0 AnySetup *InstalledMemory
+*DefaultInstalledMemory: 128Meg
+*InstalledMemory 128Meg/128 MB Total RAM: ""
+*InstalledMemory 160Meg/160 MB Total RAM: ""
+*InstalledMemory 192Meg/192 MB Total RAM: ""
+*InstalledMemory 256Meg/256 MB Total RAM: ""
+*InstalledMemory 288Meg/288 MB Total RAM: ""
+*InstalledMemory 320Meg/320 MB Total RAM: ""
+*InstalledMemory 384Meg/384 MB Total RAM: ""
+*InstalledMemory 512Meg/512 MB Total RAM: ""
+*?InstalledMemory: "% InstalledMemory
+ currentsystemparams /InstalledRam get
+ 16#100000 div round cvi
+ 4 string cvs print (Meg)
+ = flush
+"
+*End
+*CloseUI: *InstalledMemory
+
+
+*OpenUI *XRXOptionFeatureSet/Feature Set: PickOne
+*OrderDependency: 69.2 AnySetup *XRXOptionFeatureSet
+*DefaultXRXOptionFeatureSet: N
+*XRXOptionFeatureSet B/B: ""
+*XRXOptionFeatureSet N/N: ""
+*XRXOptionFeatureSet DN/DN: ""
+*XRXOptionFeatureSet DT/DT: ""
+*XRXOptionFeatureSet DX/DX: ""
+*?XRXOptionFeatureSet: "
+ product (Phaser 5500) search {pop pop}{pop (Unknown)} ifelse
+ = flush
+"
+*End
+*CloseUI: *XRXOptionFeatureSet
+
+*OpenUI *XRXOptionTrays/Optional Lower Trays: PickOne
+*OrderDependency: 69.2 AnySetup *XRXOptionTrays
+*DefaultXRXOptionTrays: None
+*XRXOptionTrays None/No Extra Trays: ""
+*XRXOptionTrays TwoExtraTrays/Two Extra Trays: ""
+*XRXOptionTrays ThreeExtraTrays/Three Extra Trays: ""
+*?XRXOptionTrays: "
+ currentpagedevice /InputAttributes get /Priority get length 4 sub dup 0 lt {
+ pop (None)
+ }{
+ dup 3 ge {
+ pop (Unknown)
+ }{
+ [
+ (OneExtraTray)
+ (TwoExtraTrays)
+ (ThreeExtraTrays)
+ ] exch get
+ } ifelse
+ } ifelse
+ = flush
+"
+*End
+*CloseUI: *XRXOptionTrays
+
+
+*OpenUI *XRXOptionHD/Optional Hard Drive: Boolean
+*OrderDependency: 69.2 AnySetup *XRXOptionHD
+*DefaultXRXOptionHD: False
+*XRXOptionHD True/Installed: ""
+*XRXOptionHD False/Not Installed: ""
+*?XRXOptionHD: "
+ (%disk0%) /IODevice resourcestatus
+ {(True)}{(False)} ifelse
+ = flush
+"
+*End
+*CloseUI: *XRXOptionHD
+
+
+*OpenUI *XRXOptionDuplex/Optional Duplex Unit: Boolean
+*OrderDependency: 69.2 AnySetup *XRXOptionDuplex
+*DefaultXRXOptionDuplex: False
+*XRXOptionDuplex True/Installed: ""
+*XRXOptionDuplex False/Not Installed: ""
+*?XRXOptionDuplex: "
+ /RRCustomProcs /ProcSet findresource dup /duplexavailable known {
+ /duplexavailable get exec {(True)} {(False)} ifelse
+ }{
+ pop (False)
+ } ifelse
+ = flush
+"
+*End
+*CloseUI: *XRXOptionDuplex
+
+
+*OpenUI *XRXOptionFinisher/Optional Finisher: Boolean
+*OrderDependency: 69.2 AnySetup *XRXOptionFinisher
+*DefaultXRXOptionFinisher: False
+*XRXOptionFinisher True/Installed: ""
+*XRXOptionFinisher False/Not Installed: ""
+*?XRXOptionFinisher: "
+ /RRCustomProcs /ProcSet findresource /havefinisher get exec
+ {(True)} {(False)} ifelse
+ = flush
+"
+*End
+*CloseUI: *XRXOptionFinisher
+
+
+*OpenUI *XRXOptionStapler/Optional Stapler: Boolean
+*OrderDependency: 69.2 AnySetup *XRXOptionStapler
+*DefaultXRXOptionStapler: False
+*XRXOptionStapler True/Installed: ""
+*XRXOptionStapler False/Not Installed: ""
+*?XRXOptionStapler: "
+ /RRCustomProcs /ProcSet findresource /havestapler get exec
+ {(True)} {(False)} ifelse
+ = flush
+"
+*End
+*CloseUI: *XRXOptionStapler
+
+
+*OpenUI *XRXOptionPunch/Optional Hole Punch: PickOne
+*OrderDependency: 69.2 AnySetup *XRXOptionPunch
+*DefaultXRXOptionPunch: None
+*XRXOptionPunch None/Not Installed: ""
+*XRXOptionPunch US_Punch/Non-Metric Hole Punch: ""
+*XRXOptionPunch Metric_Punch/Metric Hole Punch: ""
+*?XRXOptionPunch: "
+ /RRCustomProcs /ProcSet findresource /havepunch get exec
+ dup 3 eq {
+ pop (US_Punch)
+ }{
+ 4 eq {
+ (Metric_Punch)
+ }{
+ (None)
+ } ifelse
+ } ifelse
+ = flush
+"
+*End
+*CloseUI: *XRXOptionPunch
+
+
+
+*CloseGroup: InstallableOptions
+
+
+
+*% Tray Constraints
+
+*UIConstraints: *XRXOptionTrays None *InputSlot Tray4
+*UIConstraints: *InputSlot Tray4 *XRXOptionTrays None
+*UIConstraints: *XRXOptionTrays None *InputSlot Tray5
+*UIConstraints: *InputSlot Tray5 *XRXOptionTrays None
+*UIConstraints: *XRXOptionTrays None *InputSlot Tray6
+*UIConstraints: *InputSlot Tray6 *XRXOptionTrays None
+
+*UIConstraints: *XRXOptionTrays TwoExtraTrays *InputSlot Tray6
+*UIConstraints: *InputSlot Tray6 *XRXOptionTrays TwoExtraTrays
+
+
+*UIConstraints: *XRXOptionTrays None *XRXSlipSheetSource Tray4
+*UIConstraints: *XRXSlipSheetSource Tray4 *XRXOptionTrays None
+*UIConstraints: *XRXOptionTrays None *XRXSlipSheetSource Tray5
+*UIConstraints: *XRXSlipSheetSource Tray5 *XRXOptionTrays None
+*UIConstraints: *XRXOptionTrays None *XRXSlipSheetSource Tray6
+*UIConstraints: *XRXSlipSheetSource Tray6 *XRXOptionTrays None
+
+*UIConstraints: *XRXOptionTrays TwoExtraTrays *XRXSlipSheetSource Tray6
+*UIConstraints: *XRXSlipSheetSource Tray6 *XRXOptionTrays TwoExtraTrays
+
+
+*UIConstraints: *XRXOptionTrays None *XRXCoverPageSource Tray4
+*UIConstraints: *XRXCoverPageSource Tray4 *XRXOptionTrays None
+*UIConstraints: *XRXOptionTrays None *XRXCoverPageSource Tray5
+*UIConstraints: *XRXCoverPageSource Tray5 *XRXOptionTrays None
+*UIConstraints: *XRXOptionTrays None *XRXCoverPageSource Tray6
+*UIConstraints: *XRXCoverPageSource Tray6 *XRXOptionTrays None
+
+*UIConstraints: *XRXOptionTrays TwoExtraTrays *XRXCoverPageSource Tray6
+*UIConstraints: *XRXCoverPageSource Tray6 *XRXOptionTrays TwoExtraTrays
+
+*% Hard Drive Constraints
+
+*UIConstraints: *XRXOptionHD False *XRXJobType ProofPrint
+*UIConstraints: *XRXJobType ProofPrint *XRXOptionHD False
+*UIConstraints: *XRXOptionHD False *XRXJobType SavedPrint
+*UIConstraints: *XRXJobType SavedPrint *XRXOptionHD False
+*UIConstraints: *XRXOptionHD False *XRXJobType SecurePrint
+*UIConstraints: *XRXJobType SecurePrint *XRXOptionHD False
+*UIConstraints: *XRXOptionHD False *XRXJobType PersonalPrint
+*UIConstraints: *XRXJobType PersonalPrint *XRXOptionHD False
+
+*% Duplexer Constraints
+
+*UIConstraints: *XRXOptionDuplex False *Duplex DuplexTumble
+*UIConstraints: *Duplex DuplexTumble *XRXOptionDuplex False
+*UIConstraints: *XRXOptionDuplex False *Duplex DuplexNoTumble
+*UIConstraints: *Duplex DuplexNoTumble *XRXOptionDuplex False
+
+*% Finisher Constraints
+
+
+*UIConstraints: *XRXOptionFinisher False *XRXOptionPunch US_Punch
+*UIConstraints: *XRXOptionPunch US_Punch *XRXOptionFinisher False
+*UIConstraints: *XRXOptionFinisher False *XRXOptionPunch Metric_Punch
+*UIConstraints: *XRXOptionPunch Metric_Punch *XRXOptionFinisher False
+
+*UIConstraints: *XRXOptionFinisher False *XRXOptionStapler True
+*UIConstraints: *XRXOptionStapler True *XRXOptionFinisher False
+
+*UIConstraints: *XRXOptionFinisher False *XRXStapling Front
+*UIConstraints: *XRXStapling Front *XRXOptionFinisher False
+*UIConstraints: *XRXOptionFinisher False *XRXStapling Rear
+*UIConstraints: *XRXStapling Rear *XRXOptionFinisher False
+*UIConstraints: *XRXOptionFinisher False *XRXStapling Dual
+*UIConstraints: *XRXStapling Dual *XRXOptionFinisher False
+*UIConstraints: *XRXOptionFinisher False *XRXStapling FrontFlip
+*UIConstraints: *XRXStapling FrontFlip *XRXOptionFinisher False
+*UIConstraints: *XRXOptionFinisher False *XRXStapling RearFlip
+*UIConstraints: *XRXStapling RearFlip *XRXOptionFinisher False
+*UIConstraints: *XRXOptionFinisher False *XRXStapling DualFlip
+*UIConstraints: *XRXStapling DualFlip *XRXOptionFinisher False
+
+*UIConstraints: *XRXOptionFinisher False *OutputBin FinisherTopBin
+*UIConstraints: *OutputBin FinisherTopBin *XRXOptionFinisher False
+*UIConstraints: *XRXOptionFinisher False *OutputBin Stacker
+*UIConstraints: *OutputBin Stacker *XRXOptionFinisher False
+
+*% Stapler Constraints
+
+
+*UIConstraints: *XRXOptionStapler False *XRXStapling Front
+*UIConstraints: *XRXStapling Front *XRXOptionStapler False
+*UIConstraints: *XRXOptionStapler False *XRXStapling Rear
+*UIConstraints: *XRXStapling Rear *XRXOptionStapler False
+*UIConstraints: *XRXOptionStapler False *XRXStapling Dual
+*UIConstraints: *XRXStapling Dual *XRXOptionStapler False
+*UIConstraints: *XRXOptionStapler False *XRXStapling FrontFlip
+*UIConstraints: *XRXStapling FrontFlip *XRXOptionStapler False
+*UIConstraints: *XRXOptionStapler False *XRXStapling RearFlip
+*UIConstraints: *XRXStapling RearFlip *XRXOptionStapler False
+*UIConstraints: *XRXOptionStapler False *XRXStapling DualFlip
+*UIConstraints: *XRXStapling DualFlip *XRXOptionStapler False
+
+*% Hole Punch Constraints
+
+
+*UIConstraints: *XRXOptionPunch None *XRXPunching 2_Holes
+*UIConstraints: *XRXPunching 2_Holes *XRXOptionPunch None
+*UIConstraints: *XRXOptionPunch None *XRXPunching 3_Holes
+*UIConstraints: *XRXPunching 3_Holes *XRXOptionPunch None
+*UIConstraints: *XRXOptionPunch None *XRXPunching 4_Holes
+*UIConstraints: *XRXPunching 4_Holes *XRXOptionPunch None
+
+*UIConstraints: *XRXOptionPunch Metric_Punch *XRXPunching 3_Holes
+*UIConstraints: *XRXPunching 3_Holes *XRXOptionPunch Metric_Punch
+
+*UIConstraints: *XRXOptionPunch US_Punch *XRXPunching 2_Holes
+*UIConstraints: *XRXPunching 2_Holes *XRXOptionPunch US_Punch
+*UIConstraints: *XRXOptionPunch US_Punch *XRXPunching 4_Holes
+*UIConstraints: *XRXPunching 4_Holes *XRXOptionPunch US_Punch
+
+
+*% === Basic Device Capabilities ============
+
+*FreeVM: "12058624"
+*VMOption 128Meg/128 MB Total RAM: "12058624"
+*VMOption 160Meg/160 MB Total RAM: "12058624"
+*VMOption 192Meg/192 MB Total RAM: "14155776"
+*VMOption 256Meg/256 MB Total RAM: "30932992"
+*VMOption 288Meg/288 MB Total RAM: "30932992"
+*VMOption 320Meg/320 MB Total RAM: "63963136"
+*VMOption 384Meg/384 MB Total RAM: "96468992"
+*VMOption 512Meg/512 MB Total RAM: "163577856"
+
+*FCacheSize 128Meg: 2097152
+*FCacheSize 160Meg: 4194304
+*FCacheSize 192Meg: 4194304
+*FCacheSize 256Meg: 4194304
+*FCacheSize 288Meg: 4194304
+*FCacheSize 320Meg: 4194304
+*FCacheSize 384Meg: 4194304
+*FCacheSize 512Meg: 4194304
+
+
+*LanguageLevel: "3"
+*Protocols: BCP TBCP
+
+*SuggestedJobTimeout: "0"
+*SuggestedWaitTimeout: "120"
+
+*Throughput: "50"
+*DefaultOutputOrder: Normal
+
+*DefaultResolution: 600dpi
+*SetResolution 600dpi: ""
+
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*AccurateScreensSupport: True
+*DefaultGuaranteedMaxSeparations: 1
+
+*% === Halftone Information ========
+*DefaultHalftoneType: 9
+*ScreenFreq: "60.0"
+*ScreenAngle: "45.0"
+*DefaultScreenProc: Dot
+*ScreenProc Dot: "{180 mul cos exch 180 mul cos add 2 div} bind"
+*DefaultTransfer: Null
+*Transfer Null: "{ }"
+*Transfer Null.Inverse: "{1 exch sub} bind"
+
+*DefaultColorSep: ProcessBlack.60lpi.600dpi/60 lpi / 600 dpi
+
+*% === For 60 lpi / 600 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.60lpi.600dpi/60 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.60lpi.600dpi/60 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.60lpi.600dpi/60 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessMagenta.60lpi.600dpi/60 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessYellow.60lpi.600dpi/60 lpi / 600 dpi: "45.0"
+
+*ColorSepScreenFreq ProcessBlack.60lpi.600dpi/60 lpi / 600 dpi: "60.0"
+*ColorSepScreenFreq CustomColor.60lpi.600dpi/60 lpi / 600 dpi: "60.0"
+*ColorSepScreenFreq ProcessCyan.60lpi.600dpi/60 lpi / 600 dpi: "60.0"
+*ColorSepScreenFreq ProcessMagenta.60lpi.600dpi/60 lpi / 600 dpi: "60.0"
+*ColorSepScreenFreq ProcessYellow.60lpi.600dpi/60 lpi / 600 dpi: "60.0"
+
+*1284Modes Parallel: Compat Nibble ECP
+*1284DeviceID: "
+MFG:Xerox;
+CMD:Adobe PostScript 3, PCL;
+MDL:Phaser 5500N;
+CLS:Printer;
+DES:Xerox Phaser 5500 Laser Printer, PostScript 3, Letter/A4/Tabloid/A3 Size
+"
+*End
+
+*TTRasterizer: Type42
+*?TTRasterizer: "
+ 42 /FontType resourcestatus
+ { pop pop (Type42)} {pop pop (None)} ifelse = flush"
+*End
+
+*FileSystem: True
+*?FileSystem: "
+ statusdict /diskstatus get exec add 0 gt
+ {(True)}{(False)} ifelse = flush"
+*End
+
+*Password: "0"
+*ExitServer: "
+ count 0 eq
+ { false } { true exch startjob } ifelse
+ not
+ { (WARNING: Cannot modify initial VM.) =
+ (Missing or invalid password.) =
+ (Please contact the author of this software.) = flush quit
+ } if"
+*End
+*Reset: "
+ count 0 eq
+ { false } { true exch startjob } ifelse
+ not
+ { (WARNING: Cannot reset printer.) =
+ (Missing or invalid password.) =
+ (Please contact the author of this software.) = flush quit
+ } if
+ systemdict /quit get exec
+ (WARNING : Printer Reset Failed.) = flush"
+*End
+
+
+
+*JobPatchFile 1: "
+% Default Definitions
+ userdict /xerox$pagedevice <<
+ /MediaClass null
+ /MediaPosition null
+ /PageSize [612 792]
+ /TraySwitch true
+ /ManualFeed false
+ /ImagingBBox null
+ /ProcessColorModel /DeviceGray
+ /DeviceRenderingInfo currentpagedevice 1 index get 1 dict copy
+ /PostRenderingEnhance false
+ /Install {
+ xerox$old_install xerox$flip {
+ currentpagedevice /PageSize get aload pop translate 180 rotate
+ } if
+ }
+ >> put
+
+ userdict /xerox$set_job_type true put
+ userdict /xerox$jobname (unnamed) put
+ userdict /xerox$jobpassword () put
+ userdict /xerox$jog 3 put
+ userdict /xerox$smoothingDone false put
+ userdict /xerox$pageSizeDone false put
+ userdict /xerox$force_env false put
+ userdict /xerox$env_was_forced false put
+ userdict /xerox$old_install known not {
+ userdict /xerox$old_install currentpagedevice /Install get put
+ } if
+ userdict /xerox$flip false put
+
+ userdict /xerox$env {
+ userdict /xerox$force_env true put
+ } put
+
+ userdict /xerox$media_mismatch_code {
+ } put
+
+ userdict /xerox$setpagedevice {
+ xerox$force_env {
+ dup /MediaClass get null eq {
+ dup /MediaClass (Envelope) put
+ userdict /xerox$env_was_forced true put
+ } if
+ userdict /xerox$force_env false put
+ }{
+ xerox$env_was_forced {
+ dup /MediaClass get (Envelope) eq {
+ dup /MediaClass null put
+ } if
+ userdict /xerox$env_was_forced false put
+ } if
+ } ifelse
+ xerox$media_mismatch_code
+ setpagedevice
+ } put
+
+ userdict /xerox$validate_jobname {
+ {
+ xerox$jobname length 0 eq {exit} if
+ xerox$jobname 0 get 32 eq {
+ userdict /xerox$jobname
+ xerox$jobname 1 xerox$jobname length 1 sub getinterval
+ put
+ }{
+ exit
+ } ifelse
+ } loop
+ xerox$jobname length 0 eq {
+ userdict /xerox$jobname (unnamed) put
+ } if
+ } put
+
+ userdict /xerox$pm_job
+ false 99 -1 40 {
+ userdict /xerox$str 5 string put
+ xerox$str 0 (P) putinterval
+ xerox$str exch 1 exch 2 string cvs putinterval
+ xerox$str 3 (PS) putinterval
+ userdict xerox$str cvn known or
+ dup {exit} if
+ } for
+ put
+
+
+
+"
+*End
+
+
+
+*% === Paper Handling =========
+
+*% Use these entries to set paper size most of the time, unless there is
+*% specific reason to use PageRegion.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 69.9 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/Letter: "
+ <<
+ /PageSize [612 792]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize Legal/Legal: "
+ <<
+ /PageSize [612 1008]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize Tabloid/Tabloid: "
+ <<
+ /PageSize [792 1224]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize Executive/Executive: "
+ <<
+ /PageSize [522 756]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize Statement/Statement: "
+ <<
+ /PageSize [396 612]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize FanFoldGermanLegal/US Folio: "
+ <<
+ /PageSize [612 936]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize SmallPostcard/Small US Postcard: "
+ <<
+ /PageSize [252 396]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize LargePostcard/Large US Postcard: "
+ <<
+ /PageSize [288 432]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize Env10/#10 Envelope: "
+ <<
+ /PageSize [297 684]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize EnvMonarch/Monarch Envelope: "
+ <<
+ /PageSize [279 540]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize A3/A3: "
+ <<
+ /PageSize [842 1191]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize A4/A4: "
+ <<
+ /PageSize [595 842]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize A5/A5: "
+ <<
+ /PageSize [420 595]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize A6/A6: "
+ <<
+ /PageSize [297 420]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize B4/B4 JIS: "
+ <<
+ /PageSize [729 1032]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize B5/B5 JIS: "
+ <<
+ /PageSize [516 729]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize B6/B6 JIS: "
+ <<
+ /PageSize [363 516]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize EnvDL/DL Envelope: "
+ <<
+ /PageSize [312 624]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize EnvC4/C4 Envelope: "
+ <<
+ /PageSize [649 918]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageSize EnvC5/C5 Envelope: "
+ <<
+ /PageSize [459 649]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*?PageSize: "
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if (Unknown)
+ <<
+ [612 792] (Letter)
+ [612 1008] (Legal)
+ [792 1224] (Tabloid)
+ [522 756] (Executive)
+ [396 612] (Statement)
+ [612 936] (FanFoldGermanLegal)
+ [252 396] (SmallPostcard)
+ [288 432] (LargePostcard)
+ [297 684] (Env10)
+ [279 540] (EnvMonarch)
+ [842 1191] (A3)
+ [595 842] (A4)
+ [420 595] (A5)
+ [297 420] (A6)
+ [729 1032] (B4)
+ [516 729] (B5)
+ [363 516] (B6)
+ [312 624] (EnvDL)
+ [649 918] (EnvC4)
+ [459 649] (EnvC5)
+ >>
+ { exch aload pop 4 index sub abs 5 le exch 5 index sub abs 5 le and
+ { exch pop exit } { pop } ifelse
+ } bind forall = flush pop pop"
+*End
+*CloseUI: *PageSize
+
+*% These entries will set up the frame buffer. Usually used with manual feed.
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 69.9 AnySetup *PageRegion
+*DefaultPageRegion: Letter
+*PageRegion Letter/Letter: "
+ <<
+ /PageSize [612 792]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion Legal/Legal: "
+ <<
+ /PageSize [612 1008]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion Tabloid/Tabloid: "
+ <<
+ /PageSize [792 1224]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion Executive/Executive: "
+ <<
+ /PageSize [522 756]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion Statement/Statement: "
+ <<
+ /PageSize [396 612]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion FanFoldGermanLegal/US Folio: "
+ <<
+ /PageSize [612 936]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion SmallPostcard/Small US Postcard: "
+ <<
+ /PageSize [252 396]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion LargePostcard/Large US Postcard: "
+ <<
+ /PageSize [288 432]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion Env10/#10 Envelope: "
+ <<
+ /PageSize [297 684]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion EnvMonarch/Monarch Envelope: "
+ <<
+ /PageSize [279 540]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion A3/A3: "
+ <<
+ /PageSize [842 1191]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion A4/A4: "
+ <<
+ /PageSize [595 842]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion A5/A5: "
+ <<
+ /PageSize [420 595]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion A6/A6: "
+ <<
+ /PageSize [297 420]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion B4/B4 JIS: "
+ <<
+ /PageSize [729 1032]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion B5/B5 JIS: "
+ <<
+ /PageSize [516 729]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion B6/B6 JIS: "
+ <<
+ /PageSize [363 516]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion EnvDL/DL Envelope: "
+ <<
+ /PageSize [312 624]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion EnvC4/C4 Envelope: "
+ <<
+ /PageSize [649 918]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*PageRegion EnvC5/C5 Envelope: "
+ <<
+ /PageSize [459 649]
+ >> xerox$pagedevice copy xerox$setpagedevice
+"
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/Letter: "14.22 14.4 597.9 778.08"
+*ImageableArea Legal/Legal: "14.16 14.22 597.84 993.9"
+*ImageableArea Tabloid/Tabloid: "14.4 14.22 778.08 1209.42"
+*ImageableArea Executive/Executive: "14.22 15.12 507.9 742.8"
+*ImageableArea Statement/Statement: "14.64 14.22 382.32 597.9"
+*ImageableArea FanFoldGermanLegal/US Folio: "14.16 14.22 597.84 921.9"
+*ImageableArea SmallPostcard/Small US Postcard: "14.22 14.64 236.94 382.32"
+*ImageableArea LargePostcard/Large US Postcard: "14.22 14.16 273.42 417.36"
+*ImageableArea Env10/#10 Envelope: "14.22 14.64 282.9 670.32"
+*ImageableArea EnvMonarch/Monarch Envelope: "14.22 14.16 264.78 524.88"
+*ImageableArea A3/A3: "14.16 14.22 828.24 1176.78"
+*ImageableArea A4/A4: "14.22 14.16 578.7 828.24"
+*ImageableArea A5/A5: "14.16 14.22 405.84 580.86"
+*ImageableArea A6/A6: "14.22 14.16 282.9 405.84"
+*ImageableArea B4/B4 JIS: "15.12 14.22 715.8 1017.9"
+*ImageableArea B5/B5 JIS: "14.22 15.12 501.9 715.8"
+*ImageableArea B6/B6 JIS: "14.22 14.16 348.3 501.84"
+*ImageableArea EnvDL/DL Envelope: "14.22 14.16 297.42 609.36"
+*ImageableArea EnvC4/C4 Envelope: "14.16 14.22 632.4 903.18"
+*ImageableArea EnvC5/C5 Envelope: "14.22 14.88 444.9 635.52"
+*?ImageableArea: "
+ currentpagedevice pop
+ clippath pathbbox
+ /cvp {16 string cvs print ( ) print} def
+ 4 3 roll 100 mul ceiling 100 div cvp
+ 3 2 roll 100 mul ceiling 100 div cvp
+ exch 100 mul floor 100 div cvp
+ 100 mul floor 100 div = flush
+ userdict /cvp undef"
+*End
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/Letter: "612 792"
+*PaperDimension Legal/Legal: "612 1008"
+*PaperDimension Tabloid/Tabloid: "792 1224"
+*PaperDimension Executive/Executive: "522 756"
+*PaperDimension Statement/Statement: "396 612"
+*PaperDimension FanFoldGermanLegal/US Folio: "612 936"
+*PaperDimension SmallPostcard/Small US Postcard: "252 396"
+*PaperDimension LargePostcard/Large US Postcard: "288 432"
+*PaperDimension Env10/#10 Envelope: "297 684"
+*PaperDimension EnvMonarch/Monarch Envelope: "279 540"
+*PaperDimension A3/A3: "842 1191"
+*PaperDimension A4/A4: "595 842"
+*PaperDimension A5/A5: "420 595"
+*PaperDimension A6/A6: "297 420"
+*PaperDimension B4/B4 JIS: "729 1032"
+*PaperDimension B5/B5 JIS: "516 729"
+*PaperDimension B6/B6 JIS: "363 516"
+*PaperDimension EnvDL/DL Envelope: "312 624"
+*PaperDimension EnvC4/C4 Envelope: "649 918"
+*PaperDimension EnvC5/C5 Envelope: "459 649"
+
+*RequiresPageRegion All: True
+
+
+*NonUIOrderDependency: 69.9 AnySetup *CustomPageSize
+*VariablePaperSize: True
+*CustomPageSize True: "
+ userdict /xerox$NT known {
+ 0 eq {pop pop exch}{pop pop} ifelse
+ }{
+ pop pop pop
+ } ifelse
+ dup 0 eq { % for QuarkXPress
+ pop pop
+ }{
+ <<
+ /PageSize [ 5 -2 roll ]
+ >> xerox$pagedevice copy
+ xerox$pm_job {
+ xerox$setpagedevice
+ }{
+ xerox$smoothingDone {xerox$setpagedevice}{pop} ifelse
+ } ifelse
+ userdict /xerox$pageSizeDone true put
+ } ifelse
+"
+*End
+
+*DefaultLeadingEdge: Short
+*LeadingEdge Short: ""
+
+
+*ParamCustomPageSize Width: 1 points 251.5 842.9
+*ParamCustomPageSize Height: 2 points 277.3 1225.1
+*ParamCustomPageSize WidthOffset: 3 points 0 0
+*ParamCustomPageSize HeightOffset: 4 points 0 0
+*ParamCustomPageSize Orientation: 5 int 0 1
+*MaxMediaWidth: "842.9"
+*MaxMediaHeight: "1225.1"
+*?CurrentMediaWidth: "currentpagedevice /PageSize get 0 get = flush"
+*?CurrentMediaHeight: "currentpagedevice /PageSize get 1 get = flush"
+
+*HWMargins: 14.17 14.17 14.17 14.17
+
+
+
+*% === Tray Selection ================
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 40.0 AnySetup *InputSlot
+*DefaultInputSlot: Tray2
+*InputSlot Tray1/Tray 1 (MPT): "
+ xerox$pagedevice /MediaPosition 0 put
+ xerox$pagedevice /TraySwitch false put
+"
+*End
+*InputSlot Tray2/Tray 2: "
+ xerox$pagedevice /MediaPosition 1 put
+ xerox$pagedevice /TraySwitch false put
+"
+*End
+*InputSlot Tray3/Tray 3: "
+ xerox$pagedevice /MediaPosition 2 put
+ xerox$pagedevice /TraySwitch false put
+"
+*End
+*InputSlot Tray4/Tray 4: "
+ xerox$pagedevice /MediaPosition 3 put
+ xerox$pagedevice /TraySwitch false put
+"
+*End
+*InputSlot Tray5/Tray 5: "
+ xerox$pagedevice /MediaPosition 4 put
+ xerox$pagedevice /TraySwitch false put
+"
+*End
+*InputSlot Tray6/Tray 6: "
+ xerox$pagedevice /MediaPosition 5 put
+ xerox$pagedevice /TraySwitch false put
+"
+*End
+*InputSlot MF/Manual Feed: "
+ xerox$pagedevice /MediaPosition 0 put
+ xerox$pagedevice /TraySwitch false put
+ xerox$pagedevice /ManualFeed true put
+"
+*End
+*CloseUI: *InputSlot
+
+
+
+*OpenUI *Duplex/2-Sided Printing: PickOne
+*OrderDependency: 45.0 AnySetup *Duplex
+*DefaultDuplex: None
+*Duplex None/Off: "
+ <</Duplex false /Tumble false>> xerox$pagedevice copy pop
+"
+*End
+*Duplex DuplexNoTumble/Long-Edge Binding: "
+ <</Duplex true /Tumble false>> xerox$pagedevice copy pop
+"
+*End
+*Duplex DuplexTumble/Short-Edge Binding: "
+ <</Duplex true /Tumble true>> xerox$pagedevice copy pop
+"
+*End
+*CloseUI: *Duplex
+
+
+*OpenGroup: PrintQuality/Print Quality/Color
+
+
+*OpenUI *OutputMode/Print Quality: PickOne
+*OrderDependency: 46.0 AnySetup *OutputMode
+*DefaultOutputMode: 600x600dpi
+*OutputMode 600x600dpi/600x600 dpi: "
+ <<
+ /HWResolution [600 600]
+ >> xerox$pagedevice copy pop
+"
+*End
+*OutputMode 1200x1200dpi/True 1200x1200 dpi: "
+ <<
+ /HWResolution [1200 1200]
+ >> xerox$pagedevice copy pop
+"
+*End
+*CloseUI: *OutputMode
+
+
+
+
+*CloseGroup: PrintQuality
+
+
+*OpenGroup: AdvancedMedia/Advanced Options
+
+
+
+*OpenUI *OutputBin/Paper Destination: PickOne
+*OrderDependency: 40.0 AnySetup *OutputBin
+*DefaultOutputBin: StdOutputBin
+*OutputBin StdOutputBin/Standard Output Tray: "
+ <<
+ /OutputType (Top Bin)
+ >> xerox$pagedevice copy pop
+"
+*End
+*OutputBin FinisherTopBin/Stacker Upper Tray: "
+ <<
+ /OutputType (Finisher Bin)
+ >> xerox$pagedevice copy pop
+"
+*End
+*OutputBin Stacker/Stacker Lower Tray: "
+ <<
+ /OutputType (Stacker)
+ >> xerox$pagedevice copy pop
+"
+*End
+*CloseUI: *OutputBin
+
+
+
+*OpenUI *MediaType/Paper Types: PickOne
+*OrderDependency: 41.0 AnySetup *MediaType
+*DefaultMediaType: AutoSelect
+*MediaType AutoSelect/Auto Select: "
+"
+*End
+*MediaType Paper/Plain Paper: "
+ xerox$pagedevice /MediaClass (Paper) put
+"
+*End
+*MediaType Letterhead/Letterhead: "
+ xerox$pagedevice /MediaClass (Letterhead) put
+"
+*End
+*MediaType Transparency/Transparency: "
+ xerox$pagedevice /MediaClass (Transparency) put
+"
+*End
+*MediaType Label/Labels: "
+ xerox$pagedevice /MediaClass (Label) put
+"
+*End
+*MediaType ColoredPaper/Colored Paper: "
+ xerox$pagedevice /MediaClass (ColoredPaper) put
+"
+*End
+*MediaType CardStock/Card Stock: "
+ xerox$pagedevice /MediaClass (CardStock) put
+"
+*End
+*MediaType Envelope/Envelope: "
+ xerox$pagedevice /MediaClass (Envelope) put
+"
+*End
+*MediaType Prepunched/Prepunched: "
+ xerox$pagedevice /MediaClass (Prepunched) put
+"
+*End
+*MediaType Special/Special: "
+ xerox$pagedevice /MediaClass (Special) put
+"
+*End
+*CloseUI: *MediaType
+
+
+
+*% === Offset Collated Sets ======================
+*OpenUI *XRXJog/Offset Collated Sets: Boolean
+*OrderDependency: 55.0 AnySetup *XRXJog
+*DefaultXRXJog: False
+*XRXJog False/Off: "
+ userdict /xerox$jog currentpagedevice /Jog get put
+"
+*End
+*XRXJog True/On: "
+ userdict /xerox$jog 3 put
+"
+*End
+*CloseUI: *XRXJog
+
+
+
+*% === Collation =====================
+*OpenUI *Collate/Quick Collate: Boolean
+*OrderDependency: 56.0 AnySetup *Collate
+*DefaultCollate: True
+*Collate False/Off: "
+ xerox$pagedevice /Collate false put
+"
+*End
+*Collate True/On: "
+ xerox$pagedevice /Collate true put
+ currentpagedevice /Jog known {xerox$pagedevice /Jog xerox$jog put} if
+"
+*End
+*CloseUI: *Collate
+
+
+
+*% === Edge-to-Edge Printing ======================
+*OpenUI *XRXEdgeToEdge/Edge-to-Edge Printing: Boolean
+*OrderDependency: 57.0 DocumentSetup *XRXEdgeToEdge
+*DefaultXRXEdgeToEdge: False
+*XRXEdgeToEdge False/Off: "
+ userdict /xerox$edgetoedgedone known not {
+ false /RRCustomProcs /ProcSet findresource /edgetoedge get exec
+ userdict /xerox$edgetoedgedone true put
+ } if
+"
+*End
+*XRXEdgeToEdge True/On: "
+ userdict /xerox$edgetoedgedone known not {
+ true /RRCustomProcs /ProcSet findresource /edgetoedge get exec
+ userdict /xerox$edgetoedgedone true put
+ } if
+"
+*End
+*CloseUI: *XRXEdgeToEdge
+
+
+
+*% === Image Smoothing =====================
+*OpenUI *XRXImageSmoothing/Image Smoothing: Boolean
+*OrderDependency: 68.99 AnySetup *XRXImageSmoothing
+*DefaultXRXImageSmoothing: False
+*XRXImageSmoothing False/Off: "
+ false /RRCustomProcs /ProcSet findresource /setforceinterpolate get exec
+ xerox$pageSizeDone {xerox$pagedevice xerox$setpagedevice} if
+ userdict /xerox$smoothingDone true put
+"
+*End
+*XRXImageSmoothing True/On: "
+ true /RRCustomProcs /ProcSet findresource /setforceinterpolate get exec
+ xerox$pageSizeDone {xerox$pagedevice xerox$setpagedevice} if
+ userdict /xerox$smoothingDone true put
+"
+*End
+*CloseUI: *XRXImageSmoothing
+
+
+
+*% === Media Mismatch Policy =====================
+*OpenUI *XRXMismatch/Media Mismatch Policy: PickOne
+*OrderDependency: 59.0 AnySetup *XRXMismatch
+*DefaultXRXMismatch: PromptTypeMismatch
+*XRXMismatch PromptTypeMismatch/If paper type mismatch, prompt me at the printer: "
+"
+*End
+*XRXMismatch Force/I already loaded my paper at the printer: "
+ userdict /xerox$media_mismatch_code {
+ xerox$pagedevice begin MediaPosition MediaClass PageSize end
+ /RRCustomProcs /ProcSet findresource /setuptray get exec
+ } put
+"
+*End
+*XRXMismatch Scale/Scale document to fit currently loaded paper size: "
+ userdict /xerox$media_mismatch_code {
+ true /RRCustomProcs /ProcSet findresource /setautofit get exec
+ xerox$pagedevice /TraySwitch get not {
+ xerox$pagedevice /MediaClass null put
+ } if
+ } put
+"
+*End
+*XRXMismatch Clip/Crop document to fit currently loaded paper size: "
+ userdict /xerox$media_mismatch_code {
+ false /RRCustomProcs /ProcSet findresource /setautofit get exec
+ xerox$pagedevice /TraySwitch get not {
+ xerox$pagedevice /MediaClass null put
+ } if
+ } put
+"
+*End
+*CloseUI: *XRXMismatch
+
+
+
+*OpenUI *XRXStapling/Stapling: PickOne
+*OrderDependency: 42.0 AnySetup *XRXStapling
+*DefaultXRXStapling: None
+*XRXStapling None/None: "
+ <<
+ /Staple 0
+ >> xerox$pagedevice copy pop
+"
+*End
+*XRXStapling Front/Front: "
+ <<
+ /Staple 3
+ /OutputType (Stacker)
+ /StapleDetails <</Type 6 /StapleMode 0>>
+ >> xerox$pagedevice copy pop
+"
+*End
+*XRXStapling Rear/Rear: "
+ <<
+ /Staple 3
+ /OutputType (Stacker)
+ /StapleDetails <</Type 6 /StapleMode 1>>
+ >> xerox$pagedevice copy pop
+"
+*End
+*XRXStapling Dual/Dual: "
+ <<
+ /Staple 3
+ /OutputType (Stacker)
+ /StapleDetails <</Type 6 /StapleMode 2>>
+ >> xerox$pagedevice copy pop
+"
+*End
+*XRXStapling FrontFlip/Front, flipped: "
+ <<
+ /Staple 3
+ /OutputType (Stacker)
+ /StapleDetails <</Type 6 /StapleMode 0>>
+ >> xerox$pagedevice copy pop
+ userdict /xerox$flip true put
+"
+*End
+*XRXStapling RearFlip/Rear, flipped: "
+ <<
+ /Staple 3
+ /OutputType (Stacker)
+ /StapleDetails <</Type 6 /StapleMode 1>>
+ >> xerox$pagedevice copy pop
+ userdict /xerox$flip true put
+"
+*End
+*XRXStapling DualFlip/Dual, flipped: "
+ <<
+ /Staple 3
+ /OutputType (Stacker)
+ /StapleDetails <</Type 6 /StapleMode 2>>
+ >> xerox$pagedevice copy pop
+ userdict /xerox$flip true put
+"
+*End
+*CloseUI: *XRXStapling
+
+
+
+*OpenUI *XRXPunching/Hole Punching: PickOne
+*OrderDependency: 42.0 AnySetup *XRXPunching
+*DefaultXRXPunching: None
+*XRXPunching None/None: "
+ <<
+ /Punch false
+ >> xerox$pagedevice copy pop
+"
+*End
+*XRXPunching 2_Holes/2 Holes: "
+ <<
+ /Punch true
+ /PunchDetails <</Type 1 /PunchHoles 2>>
+ xerox$pagedevice /OutputType known {
+ xerox$pagedevice /OutputType get (Top Bin) eq {
+ /OutputType (Stacker)
+ } if
+ }{
+ /OutputType (Stacker)
+ } ifelse
+ >> xerox$pagedevice copy pop
+"
+*End
+*XRXPunching 3_Holes/3 Holes: "
+ <<
+ /Punch true
+ /PunchDetails <</Type 1 /PunchHoles 3>>
+ xerox$pagedevice /OutputType known {
+ xerox$pagedevice /OutputType get (Top Bin) eq {
+ /OutputType (Stacker)
+ } if
+ }{
+ /OutputType (Stacker)
+ } ifelse
+ >> xerox$pagedevice copy pop
+"
+*End
+*XRXPunching 4_Holes/4 Holes: "
+ <<
+ /Punch true
+ /PunchDetails <</Type 1 /PunchHoles 4>>
+ xerox$pagedevice /OutputType known {
+ xerox$pagedevice /OutputType get (Top Bin) eq {
+ /OutputType (Stacker)
+ } if
+ }{
+ /OutputType (Stacker)
+ } ifelse
+ >> xerox$pagedevice copy pop
+"
+*End
+*CloseUI: *XRXPunching
+
+
+
+*% === Separation Page Source ===========
+*OpenUI *XRXSlipSheetSource/Separation Page Source: PickOne
+*OrderDependency: 62.0 AnySetup *XRXSlipSheetSource
+*DefaultXRXSlipSheetSource: Tray1
+*XRXSlipSheetSource Tray1/Tray 1 (MPT): "
+ 0 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
+"
+*End
+*XRXSlipSheetSource Tray2/Tray 2: "
+ 1 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
+"
+*End
+*XRXSlipSheetSource Tray3/Tray 3: "
+ 2 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
+"
+*End
+*XRXSlipSheetSource Tray4/Tray 4: "
+ 3 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
+"
+*End
+*XRXSlipSheetSource Tray5/Tray 5: "
+ 4 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
+"
+*End
+*XRXSlipSheetSource Tray6/Tray 6: "
+ 5 /RRCustomProcs /ProcSet findresource /setslipsheetsource get exec
+"
+*End
+*CloseUI: *XRXSlipSheetSource
+
+
+*% === Separation Page ==============
+*OpenUI *Slipsheet/Separation Page: PickOne
+*OrderDependency: 62.1 AnySetup *Slipsheet
+*DefaultSlipsheet: None
+*Slipsheet None/None: "
+ xerox$pagedevice /SlipSheet 0 put
+"
+*End
+*Slipsheet EndOfJob/End Of Job: "
+ xerox$pagedevice /SlipSheet 2 put
+"
+*End
+*Slipsheet EndOfSet/End Of Set: "
+ xerox$pagedevice /SlipSheet 3 put
+"
+*End
+*Slipsheet EndOfPage/End Of Page: "
+ xerox$pagedevice /SlipSheet 4 put
+"
+*End
+*CloseUI: *Slipsheet
+
+
+*% === Cover Page Source ===========
+*OpenUI *XRXCoverPageSource/Cover Page Source: PickOne
+*OrderDependency: 63.0 AnySetup *XRXCoverPageSource
+*DefaultXRXCoverPageSource: Tray1
+*XRXCoverPageSource Tray1/Tray 1 (MPT): "
+ userdict /xerox$CoverPageSource 0 put
+"
+*End
+*XRXCoverPageSource Tray2/Tray 2: "
+ userdict /xerox$CoverPageSource 1 put
+"
+*End
+*XRXCoverPageSource Tray3/Tray 3: "
+ userdict /xerox$CoverPageSource 2 put
+"
+*End
+*XRXCoverPageSource Tray4/Tray 4: "
+ userdict /xerox$CoverPageSource 3 put
+"
+*End
+*XRXCoverPageSource Tray5/Tray 5: "
+ userdict /xerox$CoverPageSource 4 put
+"
+*End
+*XRXCoverPageSource Tray6/Tray 6: "
+ userdict /xerox$CoverPageSource 5 put
+"
+*End
+*CloseUI: *XRXCoverPageSource
+
+*% === Cover Page ===========
+*OpenUI *XRXCoverPage/Cover Page: PickOne
+*OrderDependency: 63.1 AnySetup *XRXCoverPage
+*DefaultXRXCoverPage: None
+*XRXCoverPage None/None: ""
+*XRXCoverPage First/First: "
+ 1 xerox$CoverPageSource
+ /RRCustomProcs /ProcSet findresource /setcoverpages get exec
+"
+*End
+*XRXCoverPage FirstLast/First & Last: "
+ 3 xerox$CoverPageSource
+ /RRCustomProcs /ProcSet findresource /setcoverpages get exec
+"
+*End
+*CloseUI: *XRXCoverPage
+
+
+
+
+*% === Draft Mode =====================
+*OpenUI *XRXDraft/Draft Mode: Boolean
+*OrderDependency: 47.0 AnySetup *XRXDraft
+*DefaultXRXDraft: False
+*XRXDraft False/Off: ""
+*XRXDraft True/On: "
+ <<
+ /HWResolution [600 600]
+ /PostRenderingEnhance true
+ >> xerox$pagedevice copy pop
+"
+*End
+*CloseUI: *XRXDraft
+
+
+*CloseGroup: AdvancedMedia
+
+
+*OpenGroup: JobType/Job Type
+
+*OpenUI *XRXJobType/Job Type: PickOne
+*OrderDependency: 66.99 AnySetup *XRXJobType
+*DefaultXRXJobType: Normal
+*XRXJobType Normal/Normal: "
+"
+*End
+*XRXJobType SecurePrint/Secure Print: "
+ xerox$pagedevice /DeferredMediaSelection true put
+ {
+ xerox$set_job_type {
+ xerox$validate_jobname
+ xerox$jobname length 4 add string
+ dup 0 (0000) putinterval
+ dup xerox$jobpassword dup length 4 sub neg exch putinterval
+ dup 4 xerox$jobname putinterval
+ 3 /RRCustomProcs /ProcSet findresource /setjobtype get exec
+ userdict /xerox$set_job_type false put
+ } if
+ } stopped
+ {
+ /xerox$buffer 4096 string def
+ {currentfile xerox$buffer readstring exch pop not {exit} if} loop
+ } if
+"
+*End
+*XRXJobType PersonalPrint/Personal Print: "
+ xerox$pagedevice /DeferredMediaSelection true put
+ {
+ xerox$set_job_type {
+ xerox$validate_jobname
+ xerox$jobname 6 /RRCustomProcs /ProcSet findresource /setjobtype get exec
+ userdict /xerox$set_job_type false put
+ } if
+ } stopped
+ {
+ /xerox$buffer 4096 string def
+ {currentfile xerox$buffer readstring exch pop not {exit} if} loop
+ } if
+"
+*End
+*XRXJobType ProofPrint/Proof Print: "
+ xerox$pagedevice /DeferredMediaSelection false put
+ mark {
+ xerox$set_job_type {
+ xerox$validate_jobname
+ xerox$jobname 1 /RRCustomProcs /ProcSet findresource /setjobtype get exec
+ userdict /xerox$set_job_type false put
+ } if
+ } stopped cleartomark
+"
+*End
+*XRXJobType SavedPrint/Saved Print: "
+ xerox$pagedevice /DeferredMediaSelection true put
+ mark {
+ xerox$set_job_type {
+ xerox$validate_jobname
+ xerox$jobname 2 /RRCustomProcs /ProcSet findresource /setjobtype get exec
+ userdict /xerox$set_job_type false put
+ } if
+ } stopped cleartomark
+"
+*End
+*CloseUI: *XRXJobType
+
+
+*OpenUI *XRXJobName/Job Name: PickOne
+*OrderDependency: 65.0 AnySetup *XRXJobName
+*DefaultXRXJobName: Set
+*XRXJobName None/None: ""
+*XRXJobName Set/Default Job Name: ""
+*CloseUI: *XRXJobName
+
+
+*OpenUI *XRXJobPassword/Numeric Password: PickOne
+*OrderDependency: 65.0 AnySetup *XRXJobPassword
+*DefaultXRXJobPassword: Set
+*XRXJobPassword None/None: ""
+*XRXJobPassword Set/Default Numeric Password: ""
+*CloseUI: *XRXJobPassword
+
+
+*CloseGroup: JobType
+
+
+*% === Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(003.000)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(003.000)" Standard ROM
+*Font AvantGarde-Demi: Standard "(003.000)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(003.000)" Standard ROM
+*Font Bookman-Demi: Standard "(003.000)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(003.000)" Standard ROM
+*Font Bookman-Light: Standard "(003.000)" Standard ROM
+*Font Bookman-LightItalic: Standard "(003.000)" Standard ROM
+*Font Courier-Bold: Standard "(004.000)" Standard ROM
+*Font Courier-BoldOblique: Standard "(004.000)" Standard ROM
+*Font Courier-Oblique: Standard "(004.000)" Standard ROM
+*Font Courier: Standard "(004.000)" Standard ROM
+*Font Helvetica-Bold: Standard "(003.000)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(003.000)" Standard ROM
+*Font Helvetica-Condensed-Bold: Standard "(003.000)" Standard ROM
+*Font Helvetica-Condensed-BoldObl: Standard "(003.000)" Standard ROM
+*Font Helvetica-Condensed-Oblique: Standard "(003.000)" Standard ROM
+*Font Helvetica-Condensed: Standard "(003.000)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(003.000)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(003.000)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(003.000)" Standard ROM
+*Font Helvetica-Narrow: Standard "(003.000)" Standard ROM
+*Font Helvetica-Oblique: Standard "(003.000)" Standard ROM
+*Font Helvetica: Standard "(003.000)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(003.000)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(003.000)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(003.000)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(003.000)" Standard ROM
+*Font Palatino-Bold: Standard "(003.000)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(003.000)" Standard ROM
+*Font Palatino-Italic: Standard "(003.000)" Standard ROM
+*Font Palatino-Roman: Standard "(003.000)" Standard ROM
+*Font Symbol: Special "(001.008)" Special ROM
+*Font Times-Bold: Standard "(003.000)" Standard ROM
+*Font Times-BoldItalic: Standard "(003.000)" Standard ROM
+*Font Times-Italic: Standard "(003.000)" Standard ROM
+*Font Times-Roman: Standard "(003.000)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(003.000)" Standard ROM
+*Font ZapfDingbats: Special "(002.000)" Special ROM
+
+*?FontQuery: "
+ { count 1 gt
+ { exch dup 127 string cvs (/) print print (:) print
+ /Font resourcestatus {pop pop (Yes)} {(No)} ifelse =
+ } { exit } ifelse
+ } bind loop
+ (*) = flush"
+*End
+
+*?FontList: "(*) {cvn ==} 128 string /Font resourceforall (*) = flush"
+
+
+*% end of PPD file for Xerox Phaser 5500N
diff --git a/server/modules/cups-freiburg/etc/cups/ppd/ZRZ_DELL.ppd b/server/modules/cups-freiburg/etc/cups/ppd/ZRZ_DELL.ppd
deleted file mode 100644
index c66e36d1..00000000
--- a/server/modules/cups-freiburg/etc/cups/ppd/ZRZ_DELL.ppd
+++ /dev/null
@@ -1,340 +0,0 @@
-*PPD-Adobe: "4.3"
-*%
-*% For information on using this, and to obtain the required backend
-*% script, consult http://www.openprinting.org/
-*%
-*% This file is published under the GNU General Public License
-*%
-*% PPD-O-MATIC (4.0.0 or newer) generated this PPD file. It is for use with
-*% all programs and environments which use PPD files for dealing with
-*% printer capability information. The printer must be configured with the
-*% "foomatic-rip" backend filter script of Foomatic 4.0.0 or newer. This
-*% file and "foomatic-rip" work together to support PPD-controlled printer
-*% driver option access with all supported printer drivers and printing
-*% spoolers.
-*%
-*% To save this file on your disk, wait until the download has completed
-*% (the animation of the browser logo must stop) and then use the
-*% "Save as..." command in the "File" menu of your browser or in the
-*% pop-up manu when you click on this document with the right mouse button.
-*% DO NOT cut and paste this file into an editor with your mouse. This can
-*% introduce additional line breaks which lead to unexpected results.
-*%
-*% You may save this file as 'Dell-3100cn-pxlcolor.ppd'
-*%
-*%
-*FormatVersion: "4.3"
-*FileVersion: "1.1"
-*LanguageVersion: English
-*LanguageEncoding: ISOLatin1
-*PCFileName: "PXLCOLOR.PPD"
-*Manufacturer: "Dell"
-*Product: "(Laser Printer 3100cn)"
-*cupsVersion: 1.0
-*cupsManualCopies: True
-*cupsModelNumber: 2
-*cupsFilter: "application/vnd.cups-postscript 100 foomatic-rip"
-*cupsFilter: "application/vnd.cups-pdf 0 foomatic-rip"
-*%pprRIP: foomatic-rip other
-*ModelName: "Dell 3100cn"
-*ShortNickName: "Dell 3100cn pxlcolor"
-*NickName: "Dell 3100cn Foomatic/pxlcolor (recommended)"
-*PSVersion: "(3010.000) 550"
-*PSVersion: "(3010.000) 651"
-*PSVersion: "(3010.000) 652"
-*PSVersion: "(3010.000) 653"
-*PSVersion: "(3010.000) 704"
-*PSVersion: "(3010.000) 705"
-*PSVersion: "(3010.000) 800"
-*PSVersion: "(3010.000) 815"
-*PSVersion: "(3010.000) 850"
-*PSVersion: "(3010.000) 860"
-*PSVersion: "(3010.000) 861"
-*PSVersion: "(3010.000) 862"
-*PSVersion: "(3010.000) 863"
-*PSVersion: "(3010.000) 864"
-*PSVersion: "(3010.000) 870"
-*LanguageLevel: "3"
-*ColorDevice: True
-*DefaultColorSpace: RGB
-*FileSystem: False
-*Throughput: "1"
-*LandscapeOrientation: Plus90
-*TTRasterizer: Type42
-*1284DeviceID: "MFG:Dell;MDL:Laser Printer 3100cn;CMD:PJL,RASTER,DOWNLOAD,PCLXL,PCL,POSTSCRIPT;DES:Dell Laser Printer 3100cn;DRV:Dpxlcolor,R1,M0,TG;"
-
-*driverName pxlcolor: ""
-*driverType G/Ghostscript built-in: ""
-*driverUrl: "http://www.ghostscript.com/"
-*driverObsolete: False
-*driverManufacturerSupplied: False
-
-*DefaultResolution: 1200dpi
-
-
-
-*HWMargins: 18 36 18 36
-*VariablePaperSize: True
-*MaxMediaWidth: 100000
-*MaxMediaHeight: 100000
-*NonUIOrderDependency: 100 AnySetup *CustomPageSize
-*CustomPageSize True: "pop pop pop pop pop
-%% FoomaticRIPOptionSetting: PageSize=Custom"
-*End
-*FoomaticRIPOptionSetting PageSize=Custom: " -dDEVICEWIDTHPOINTS=0 -dD&&
-EVICEHEIGHTPOINTS=0"
-*End
-*ParamCustomPageSize Width: 1 points 36 100000
-*ParamCustomPageSize Height: 2 points 36 100000
-*ParamCustomPageSize Orientation: 3 int 0 0
-*ParamCustomPageSize WidthOffset: 4 points 0 0
-*ParamCustomPageSize HeightOffset: 5 points 0 0
-
-*FoomaticIDs: Dell-3100cn pxlcolor
-*FoomaticRIPCommandLine: "gs -q -dBATCH -dPARANOIDSAFER -dNOPAUSE -dNO&&
-INTERPOLATE%B%A%Z -sOutputFile=- -"
-*End
-
-*OpenGroup: General/General
-
-*OpenUI *PrintoutMode/Print Quality: PickOne
-*FoomaticRIPOption PrintoutMode: enum Composite A
-*OrderDependency: 10 AnySetup *PrintoutMode
-*DefaultPrintoutMode: Normal
-*PrintoutMode Draft/Draft: "%% FoomaticRIPOptionSetting: PrintoutMode=Draft"
-*FoomaticRIPOptionSetting PrintoutMode=Draft: "PrinterResolution=600x6&&
-00dpi ColorModel=Color"
-*End
-*PrintoutMode Draft.Gray/Draft Grayscale: "%% FoomaticRIPOptionSetting: PrintoutMode=Draft.Gray"
-*FoomaticRIPOptionSetting PrintoutMode=Draft.Gray: "PrinterResolution=&&
-600x600dpi ColorModel=Grayscale"
-*End
-*PrintoutMode Normal/Normal: "%% FoomaticRIPOptionSetting: PrintoutMode=Normal"
-*FoomaticRIPOptionSetting PrintoutMode=Normal: "PrinterResolution=600x&&
-600dpi ColorModel=Color"
-*End
-*PrintoutMode Normal.Gray/Normal Grayscale: "%% FoomaticRIPOptionSetting: PrintoutMode=Normal.Gray"
-*FoomaticRIPOptionSetting PrintoutMode=Normal.Gray: "PrinterResolution&&
-=600x600dpi ColorModel=Grayscale"
-*End
-*PrintoutMode High/High Quality: "%% FoomaticRIPOptionSetting: PrintoutMode=High"
-*FoomaticRIPOptionSetting PrintoutMode=High: "PrinterResolution=1200x1&&
-200dpi ColorModel=Color"
-*End
-*PrintoutMode High.Gray/High Quality Grayscale: "%% FoomaticRIPOptionSetting: PrintoutMode=High.Gray"
-*FoomaticRIPOptionSetting PrintoutMode=High.Gray: "PrinterResolution=1&&
-200x1200dpi ColorModel=Grayscale"
-*End
-*CloseUI: *PrintoutMode
-
-*OpenUI *PageSize/Page Size: PickOne
-*FoomaticRIPOption PageSize: enum CmdLine A
-*OrderDependency: 100 AnySetup *PageSize
-*DefaultPageSize: A4
-*PageSize Letter/US Letter: "%% FoomaticRIPOptionSetting: PageSize=Letter"
-*FoomaticRIPOptionSetting PageSize=Letter: " -dDEVICEWIDTHPOINTS=612 -&&
-dDEVICEHEIGHTPOINTS=792"
-*End
-*PageSize A4/A4: "%% FoomaticRIPOptionSetting: PageSize=A4"
-*FoomaticRIPOptionSetting PageSize=A4: " -dDEVICEWIDTHPOINTS=595 -dDEV&&
-ICEHEIGHTPOINTS=842"
-*End
-*PageSize 11x17/11x17: "%% FoomaticRIPOptionSetting: PageSize=11x17"
-*FoomaticRIPOptionSetting PageSize=11x17: " -dDEVICEWIDTHPOINTS=792 -d&&
-DEVICEHEIGHTPOINTS=1224"
-*End
-*PageSize A3/A3: "%% FoomaticRIPOptionSetting: PageSize=A3"
-*FoomaticRIPOptionSetting PageSize=A3: " -dDEVICEWIDTHPOINTS=842 -dDEV&&
-ICEHEIGHTPOINTS=1191"
-*End
-*PageSize A5/A5: "%% FoomaticRIPOptionSetting: PageSize=A5"
-*FoomaticRIPOptionSetting PageSize=A5: " -dDEVICEWIDTHPOINTS=421 -dDEV&&
-ICEHEIGHTPOINTS=595"
-*End
-*PageSize B5/B5 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B5"
-*FoomaticRIPOptionSetting PageSize=B5: " -dDEVICEWIDTHPOINTS=516 -dDEV&&
-ICEHEIGHTPOINTS=729"
-*End
-*PageSize Env10/Envelope #10: "%% FoomaticRIPOptionSetting: PageSize=Env10"
-*FoomaticRIPOptionSetting PageSize=Env10: " -dDEVICEWIDTHPOINTS=297 -d&&
-DEVICEHEIGHTPOINTS=684"
-*End
-*PageSize EnvC5/Envelope C5: "%% FoomaticRIPOptionSetting: PageSize=EnvC5"
-*FoomaticRIPOptionSetting PageSize=EnvC5: " -dDEVICEWIDTHPOINTS=459 -d&&
-DEVICEHEIGHTPOINTS=649"
-*End
-*PageSize EnvDL/Envelope DL: "%% FoomaticRIPOptionSetting: PageSize=EnvDL"
-*FoomaticRIPOptionSetting PageSize=EnvDL: " -dDEVICEWIDTHPOINTS=312 -d&&
-DEVICEHEIGHTPOINTS=624"
-*End
-*PageSize EnvISOB5/Envelope B5: "%% FoomaticRIPOptionSetting: PageSize=EnvISOB5"
-*FoomaticRIPOptionSetting PageSize=EnvISOB5: " -dDEVICEWIDTHPOINTS=499&&
- -dDEVICEHEIGHTPOINTS=709"
-*End
-*PageSize EnvMonarch/Envelope Monarch: "%% FoomaticRIPOptionSetting: PageSize=EnvMonarch"
-*FoomaticRIPOptionSetting PageSize=EnvMonarch: " -dDEVICEWIDTHPOINTS=2&&
-79 -dDEVICEHEIGHTPOINTS=540"
-*End
-*PageSize Executive/Executive: "%% FoomaticRIPOptionSetting: PageSize=Executive"
-*FoomaticRIPOptionSetting PageSize=Executive: " -dDEVICEWIDTHPOINTS=52&&
-2 -dDEVICEHEIGHTPOINTS=756"
-*End
-*PageSize Legal/US Legal: "%% FoomaticRIPOptionSetting: PageSize=Legal"
-*FoomaticRIPOptionSetting PageSize=Legal: " -dDEVICEWIDTHPOINTS=612 -d&&
-DEVICEHEIGHTPOINTS=1008"
-*End
-*CloseUI: *PageSize
-
-*OpenUI *PageRegion: PickOne
-*OrderDependency: 100 AnySetup *PageRegion
-*DefaultPageRegion: A4
-*PageRegion Letter/US Letter: "%% FoomaticRIPOptionSetting: PageSize=Letter"
-*PageRegion A4/A4: "%% FoomaticRIPOptionSetting: PageSize=A4"
-*PageRegion 11x17/11x17: "%% FoomaticRIPOptionSetting: PageSize=11x17"
-*PageRegion A3/A3: "%% FoomaticRIPOptionSetting: PageSize=A3"
-*PageRegion A5/A5: "%% FoomaticRIPOptionSetting: PageSize=A5"
-*PageRegion B5/B5 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B5"
-*PageRegion Env10/Envelope #10: "%% FoomaticRIPOptionSetting: PageSize=Env10"
-*PageRegion EnvC5/Envelope C5: "%% FoomaticRIPOptionSetting: PageSize=EnvC5"
-*PageRegion EnvDL/Envelope DL: "%% FoomaticRIPOptionSetting: PageSize=EnvDL"
-*PageRegion EnvISOB5/Envelope B5: "%% FoomaticRIPOptionSetting: PageSize=EnvISOB5"
-*PageRegion EnvMonarch/Envelope Monarch: "%% FoomaticRIPOptionSetting: PageSize=EnvMonarch"
-*PageRegion Executive/Executive: "%% FoomaticRIPOptionSetting: PageSize=Executive"
-*PageRegion Legal/US Legal: "%% FoomaticRIPOptionSetting: PageSize=Legal"
-*CloseUI: *PageRegion
-
-*DefaultImageableArea: A4
-*ImageableArea Letter/US Letter: "18 36 594 756"
-*ImageableArea A4/A4: "18 36 577 806"
-*ImageableArea 11x17/11x17: "18 36 774 1188"
-*ImageableArea A3/A3: "18 36 824 1155"
-*ImageableArea A5/A5: "18 36 403 559"
-*ImageableArea B5/B5 (JIS): "18 36 498 693"
-*ImageableArea Env10/Envelope #10: "18 36 279 648"
-*ImageableArea EnvC5/Envelope C5: "18 36 441 613"
-*ImageableArea EnvDL/Envelope DL: "18 36 294 588"
-*ImageableArea EnvISOB5/Envelope B5: "18 36 481 673"
-*ImageableArea EnvMonarch/Envelope Monarch: "18 36 261 504"
-*ImageableArea Executive/Executive: "18 36 504 720"
-*ImageableArea Legal/US Legal: "18 36 594 972"
-
-*DefaultPaperDimension: A4
-*PaperDimension Letter/US Letter: "612 792"
-*PaperDimension A4/A4: "595 842"
-*PaperDimension 11x17/11x17: "792 1224"
-*PaperDimension A3/A3: "842 1191"
-*PaperDimension A5/A5: "421 595"
-*PaperDimension B5/B5 (JIS): "516 729"
-*PaperDimension Env10/Envelope #10: "297 684"
-*PaperDimension EnvC5/Envelope C5: "459 649"
-*PaperDimension EnvDL/Envelope DL: "312 624"
-*PaperDimension EnvISOB5/Envelope B5: "499 709"
-*PaperDimension EnvMonarch/Envelope Monarch: "279 540"
-*PaperDimension Executive/Executive: "522 756"
-*PaperDimension Legal/US Legal: "612 1008"
-
-*OpenUI *InputSlot/Media Source: PickOne
-*FoomaticRIPOption InputSlot: enum CmdLine A
-*OrderDependency: 100 AnySetup *InputSlot
-*DefaultInputSlot: Default
-*InputSlot Default/Printer Default: "%% FoomaticRIPOptionSetting: InputSlot=Default"
-*FoomaticRIPOptionSetting InputSlot=Default: " -dMediaPosition=0"
-*InputSlot Upper/Upper Tray: "%% FoomaticRIPOptionSetting: InputSlot=Upper"
-*FoomaticRIPOptionSetting InputSlot=Upper: " -dMediaPosition=4"
-*InputSlot Middle/Middle Tray: "%% FoomaticRIPOptionSetting: InputSlot=Middle"
-*FoomaticRIPOptionSetting InputSlot=Middle: " -dMediaPosition=5"
-*InputSlot Lower/Lower Tray: "%% FoomaticRIPOptionSetting: InputSlot=Lower"
-*FoomaticRIPOptionSetting InputSlot=Lower: " -dMediaPosition=6"
-*InputSlot Multipurpose/Multipurpose Tray: "%% FoomaticRIPOptionSetting: InputSlot=Multipurpose"
-*FoomaticRIPOptionSetting InputSlot=Multipurpose: " -dMediaPosition=3"
-*InputSlot Automatic/Automatic: "%% FoomaticRIPOptionSetting: InputSlot=Automatic"
-*FoomaticRIPOptionSetting InputSlot=Automatic: " -dMediaPosition=1"
-*InputSlot Manual/Manual Feeder: "%% FoomaticRIPOptionSetting: InputSlot=Manual"
-*FoomaticRIPOptionSetting InputSlot=Manual: " -dMediaPosition=2"
-*CloseUI: *InputSlot
-
-*OpenUI *Duplex/Double-Sided Printing: PickOne
-*FoomaticRIPOption Duplex: enum CmdLine A
-*OrderDependency: 100 AnySetup *Duplex
-*DefaultDuplex: None
-*Duplex DuplexNoTumble/On (Flip on Long Edge): "%% FoomaticRIPOptionSetting: Duplex=DuplexNoTumble"
-*FoomaticRIPOptionSetting Duplex=DuplexNoTumble: " -dDuplex"
-*Duplex DuplexTumble/On (Flip on Short Edge): "%% FoomaticRIPOptionSetting: Duplex=DuplexTumble"
-*FoomaticRIPOptionSetting Duplex=DuplexTumble: " -dDuplex -dTumble"
-*Duplex None/Off: "%% FoomaticRIPOptionSetting: Duplex=None"
-*FoomaticRIPOptionSetting Duplex=None: ""
-*CloseUI: *Duplex
-
-*CloseGroup: General
-
-*OpenGroup: PrintoutMode/Printout Mode
-
-*OpenUI *ColorModel/Color Mode: PickOne
-*FoomaticRIPOption ColorModel: enum CmdLine B
-*OrderDependency: 100 AnySetup *ColorModel
-*DefaultColorModel: FromPrintoutMode
-*ColorModel FromPrintoutMode/Controlled by 'Print Quality': "%% FoomaticRIPOptionSetting: ColorModel=@PrintoutMode"
-*ColorModel Color/Color: "%% FoomaticRIPOptionSetting: ColorModel=Color"
-*FoomaticRIPOptionSetting ColorModel=Color: " -sDEVICE=pxlcolor"
-*ColorModel Grayscale/Monochrome: "%% FoomaticRIPOptionSetting: ColorModel=Grayscale"
-*FoomaticRIPOptionSetting ColorModel=Grayscale: " -sDEVICE=pxlmono"
-*CloseUI: *ColorModel
-
-*OpenUI *PrinterResolution/Resolution: PickOne
-*FoomaticRIPOption PrinterResolution: enum CmdLine A
-*OrderDependency: 100 AnySetup *PrinterResolution
-*DefaultPrinterResolution: FromPrintoutMode
-*PrinterResolution FromPrintoutMode/Controlled by 'Print Quality': "%% FoomaticRIPOptionSetting: PrinterResolution=@PrintoutMode"
-*PrinterResolution 300x300dpi/300x300 DPI: "%% FoomaticRIPOptionSetting: PrinterResolution=300x300dpi"
-*FoomaticRIPOptionSetting PrinterResolution=300x300dpi: " -r300x300"
-*PrinterResolution 600x600dpi/600x600 DPI: "%% FoomaticRIPOptionSetting: PrinterResolution=600x600dpi"
-*FoomaticRIPOptionSetting PrinterResolution=600x600dpi: " -r600x600"
-*PrinterResolution 1200x1200dpi/1200x1200 DPI: "%% FoomaticRIPOptionSetting: PrinterResolution=1200x1200dpi"
-*FoomaticRIPOptionSetting PrinterResolution=1200x1200dpi: " -r1200x120&&
-0"
-*End
-*CloseUI: *PrinterResolution
-
-*CloseGroup: PrintoutMode
-
-
-*% Generic boilerplate PPD stuff as standard PostScript fonts and so on
-
-*DefaultFont: Courier
-*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
-*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
-*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM
-*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM
-*Font Bookman-Demi: Standard "(001.004S)" Standard ROM
-*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM
-*Font Bookman-Light: Standard "(001.004S)" Standard ROM
-*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM
-*Font Courier: Standard "(002.004S)" Standard ROM
-*Font Courier-Bold: Standard "(002.004S)" Standard ROM
-*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM
-*Font Courier-Oblique: Standard "(002.004S)" Standard ROM
-*Font Helvetica: Standard "(001.006S)" Standard ROM
-*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM
-*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM
-*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM
-*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM
-*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM
-*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM
-*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM
-*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM
-*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM
-*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM
-*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM
-*Font Palatino-Bold: Standard "(001.005S)" Standard ROM
-*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM
-*Font Palatino-Italic: Standard "(001.005S)" Standard ROM
-*Font Palatino-Roman: Standard "(001.005S)" Standard ROM
-*Font Symbol: Special "(001.007S)" Special ROM
-*Font Times-Bold: Standard "(001.007S)" Standard ROM
-*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM
-*Font Times-Italic: Standard "(001.007S)" Standard ROM
-*Font Times-Roman: Standard "(001.007S)" Standard ROM
-*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
-*Font ZapfDingbats: Special "(001.004S)" Standard ROM
-
-
diff --git a/server/modules/cups-freiburg/etc/cups/printers.conf b/server/modules/cups-freiburg/etc/cups/printers.conf
index b487522d..cfc4c782 100644
--- a/server/modules/cups-freiburg/etc/cups/printers.conf
+++ b/server/modules/cups-freiburg/etc/cups/printers.conf
@@ -1,4 +1,4 @@
-# Printer configuration file for CUPS v1.5.3
+# Printer configuration file for CUPS v1.7.2
# Written by cupsd
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<Printer RZBLACK>
@@ -8,11 +8,13 @@ Info Xerox WorkCentre 7545
Location RZ/UG/-104
MakeModel Xerox WorkCentre 7545
DeviceURI http://vm-pri.ruf.uni-freiburg.de:631/RZBLACK
+PPDTimeStamp *
State Idle
StateTime 1385139198
Type 8433916
Accepting Yes
Shared No
+ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
@@ -27,6 +29,7 @@ Info Xerox WorkCentre 7545
Location RZ/UG/-104
MakeModel Xerox WorkCentre 7545
DeviceURI http://vm-pri.ruf.uni-freiburg.de:631/RZFARBE
+PPDTimeStamp *
State Idle
StateTime 1380589204
Reason cups-ipp-conformance-failure-report
@@ -34,6 +37,7 @@ Reason cups-ipp-missing-job-history
Type 8433916
Accepting Yes
Shared No
+ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
@@ -42,16 +46,19 @@ OpPolicy default
ErrorPolicy abort-job
</Printer>
<Printer RZMONO>
-UUID urn:uuid:552cc616-4ebe-3477-7833-eab4f7289796
-Info Xerox Phaser 4600
+UUID urn:uuid:ff7c28f2-81f1-3cfc-78d4-dd29cbc25fb3
+AuthInfoRequired none
+Info Xerox Phase 5500 DT
Location RZ/UG/-104
-MakeModel Xerox Phaser 4600
+MakeModel Xerox Phaser 5500N
DeviceURI http://vm-pri.ruf.uni-freiburg.de:631/RZMONO
+PPDTimeStamp *
State Idle
-StateTime 1381327838
-Type 8425716
+StateTime 1421843444
+Type 8433860
Accepting Yes
-Shared No
+Shared Yes
+ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
@@ -65,11 +72,13 @@ Info Xerox Phaser 4600
Location RZ/UG/-104
MakeModel Xerox Phaser 4600
DeviceURI http://vm-pri.ruf.uni-freiburg.de:631/RZMONO2
+PPDTimeStamp *
State Idle
StateTime 1381328096
Type 8425716
Accepting Yes
Shared No
+ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
@@ -83,11 +92,13 @@ Info UB1 Lernzentrum Farbe
Location UB1/Stadthalle
MakeModel HP LaserJet P4010 Series Postscript (recommended)
DeviceURI http://vm-pri.ruf.uni-freiburg.de:631/UB1COLOR
+PPDTimeStamp *
State Idle
StateTime 1385542523
Type 8425684
Accepting Yes
Shared No
+ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
@@ -101,11 +112,13 @@ Info UB1 Lernzentrum S/W
Location UB1/Stadthalle
MakeModel HP LaserJet P4010 Series Postscript (recommended)
DeviceURI http://vm-pri.ruf.uni-freiburg.de:631/UB1MONO
+PPDTimeStamp *
State Idle
StateTime 1385138991
Type 8425684
Accepting Yes
Shared No
+ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
@@ -119,11 +132,13 @@ Info UB2 Pooldrucker S/W
Location UB2/EG/A021
MakeModel Xerox WorkCentre 7545
DeviceURI http://vm-pri.ruf.uni-freiburg.de:631/UB2BLACK
+PPDTimeStamp *
State Idle
StateTime 1385130126
Type 8433916
Accepting Yes
Shared No
+ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
@@ -137,11 +152,13 @@ Info UB2 Pooldrucker Farbe
Location UB2/EG/A021
MakeModel Xerox WorkCentre 7545
DeviceURI http://vm-pri.ruf.uni-freiburg.de:631/UB2FARBE
+PPDTimeStamp *
State Idle
StateTime 1385130066
Type 8433916
Accepting Yes
Shared No
+ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
@@ -156,30 +173,13 @@ Info UB2 Pooldrucker S/W
Location UB2/EG/A021
MakeModel Xerox Phaser 4600
DeviceURI http://vm-pri.ruf.uni-freiburg.de:631/UB2MONO
+PPDTimeStamp *
State Idle
StateTime 1385139838
Type 8425716
Accepting Yes
Shared No
-JobSheets none none
-QuotaPeriod 0
-PageLimit 0
-KLimit 0
-OpPolicy default
-ErrorPolicy abort-job
-</Printer>
-<Printer ZRZ_DELL>
-UUID urn:uuid:5409dd74-e2fe-354e-5f95-a1c9187cbc5e
-AuthInfoRequired none
-Info interner Drucker - nicht oeffentlich!
-Location RZ/OG/117
-MakeModel Dell 3100cn Foomatic/Postscript
-DeviceURI ipp://vm-pri.ruf.uni-freiburg.de:631/RZKCOLOR
-State Idle
-StateTime 1390844591
-Type 8400924
-Accepting Yes
-Shared Yes
+ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
diff --git a/server/modules/pam-freiburg/etc/nslcd.conf b/server/modules/nslcd-freiburg/etc/nslcd.conf
index 4d16af05..4d16af05 100644
--- a/server/modules/pam-freiburg/etc/nslcd.conf
+++ b/server/modules/nslcd-freiburg/etc/nslcd.conf
diff --git a/server/modules/pam-freiburg/etc/systemd/system/getty.target.wants/nslcd.service b/server/modules/nslcd-freiburg/etc/systemd/system/getty.target.wants/nslcd.service
index 17c13d96..17c13d96 120000
--- a/server/modules/pam-freiburg/etc/systemd/system/getty.target.wants/nslcd.service
+++ b/server/modules/nslcd-freiburg/etc/systemd/system/getty.target.wants/nslcd.service
diff --git a/server/modules/pam-freiburg/etc/ldap/ldap.conf b/server/modules/pam-freiburg/etc/ldap/ldap.conf
deleted file mode 120000
index 6050948a..00000000
--- a/server/modules/pam-freiburg/etc/ldap/ldap.conf
+++ /dev/null
@@ -1 +0,0 @@
-../ldap.conf \ No newline at end of file
diff --git a/server/modules/pam-freiburg/etc/openldap/ldap.conf b/server/modules/pam-freiburg/etc/openldap/ldap.conf
deleted file mode 120000
index c0aaf459..00000000
--- a/server/modules/pam-freiburg/etc/openldap/ldap.conf
+++ /dev/null
@@ -1 +0,0 @@
-/etc/ldap.conf \ No newline at end of file
diff --git a/server/modules/pam-freiburg/etc/pam.d/common-account b/server/modules/pam-ldap-freiburg/etc/pam.d/common-account
index 3a5d5a14..3a5d5a14 100644
--- a/server/modules/pam-freiburg/etc/pam.d/common-account
+++ b/server/modules/pam-ldap-freiburg/etc/pam.d/common-account
diff --git a/server/modules/pam-freiburg/etc/pam.d/common-auth b/server/modules/pam-ldap-freiburg/etc/pam.d/common-auth
index 0c864049..0c864049 100644
--- a/server/modules/pam-freiburg/etc/pam.d/common-auth
+++ b/server/modules/pam-ldap-freiburg/etc/pam.d/common-auth
diff --git a/server/modules/pam-freiburg/etc/pam.d/common-session b/server/modules/pam-ldap-freiburg/etc/pam.d/common-session
index 8b0f5dfc..8b0f5dfc 100644
--- a/server/modules/pam-freiburg/etc/pam.d/common-session
+++ b/server/modules/pam-ldap-freiburg/etc/pam.d/common-session
diff --git a/server/modules/sshd-freiburg/opt/openslx/iptables/rules.d/10-sshd b/server/modules/sshd-freiburg/opt/openslx/iptables/rules.d/10-sshd
new file mode 100755
index 00000000..11dce812
--- /dev/null
+++ b/server/modules/sshd-freiburg/opt/openslx/iptables/rules.d/10-sshd
@@ -0,0 +1,3 @@
+#!/bin/ash
+
+iptables -w -I ipt-helper-INPUT 1 -i br0 -p tcp \! -s 132.230.0.0/16 --dport 22 -j DROP