diff options
| author | Dirk | 2014-02-21 11:16:02 +0100 |
|---|---|---|
| committer | Dirk | 2014-02-21 11:16:02 +0100 |
| commit | 1e30627c5b00884054fae7210d036e34ebe4f181 (patch) | |
| tree | 6d258c5a7a2279881706f38e37921dc4557a0b8d /remote/modules | |
| parent | Setzen des Windows-Namens beim Booten aus Laufwerk B: (diff) | |
| parent | [nvidia_libs] Debug: Checkin für Joey:). (diff) | |
| download | tm-scripts-1e30627c5b00884054fae7210d036e34ebe4f181.tar.gz tm-scripts-1e30627c5b00884054fae7210d036e34ebe4f181.tar.xz tm-scripts-1e30627c5b00884054fae7210d036e34ebe4f181.zip | |
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
...
Diffstat (limited to 'remote/modules')
182 files changed, 4814 insertions, 283 deletions
diff --git a/remote/modules/beamergui/data/opt/openslx/vmchooser/sessionstart.d/99-kill_beamergui b/remote/modules/beamergui/data/opt/openslx/vmchooser/sessionstart.d/99-kill_beamergui index 012246ba..13d9c4ed 100644 --- a/remote/modules/beamergui/data/opt/openslx/vmchooser/sessionstart.d/99-kill_beamergui +++ b/remote/modules/beamergui/data/opt/openslx/vmchooser/sessionstart.d/99-kill_beamergui @@ -1,3 +1,3 @@ #!/bin/ash killall beamergui - +true diff --git a/remote/modules/busybox/busybox.build b/remote/modules/busybox/busybox.build index adb3db86..727a334c 100644 --- a/remote/modules/busybox/busybox.build +++ b/remote/modules/busybox/busybox.build @@ -3,6 +3,10 @@ fetch_source() { git clone "${REQUIRED_GIT}" src || perror "Could not clone busybox git" cd src || perror "Could not cd to src" git checkout "$REQUIRED_BRANCH" || perror "Could not checkout requested branch" + # Patch image centering if not patched yet + if ! grep -q "bcenter_image" "miscutils/fbsplash.c"; then + git apply "../fbsplash-center.patch" || perror "Could not apply busybox patch for fbsplash image centering" + fi cd .. || perror "cd .. failed" } diff --git a/remote/modules/busybox/busybox.conf b/remote/modules/busybox/busybox.conf index 9f4a5229..d2536ac9 100644 --- a/remote/modules/busybox/busybox.conf +++ b/remote/modules/busybox/busybox.conf @@ -1,5 +1,5 @@ REQUIRED_GIT="git://git.busybox.net/busybox" -REQUIRED_BRANCH="1_21_0" +REQUIRED_BRANCH="1_22_1" REQUIRED_BINARIES="busybox" REQUIRED_DIRECTORIES=" /bin diff --git a/remote/modules/busybox/fbsplash-center.patch b/remote/modules/busybox/fbsplash-center.patch new file mode 100644 index 00000000..7e54a183 --- /dev/null +++ b/remote/modules/busybox/fbsplash-center.patch @@ -0,0 +1,83 @@ +diff --git a/miscutils/fbsplash.c b/miscutils/fbsplash.c +index 12a77b7..cae392c 100644 +--- a/miscutils/fbsplash.c ++++ b/miscutils/fbsplash.c +@@ -9,6 +9,7 @@ + * - put somewhere fbsplash.cfg file and an image in .ppm format. + * - run applet: $ setsid fbsplash [params] & + * -c: hide cursor ++ * -x: center image (if smaller than screen) + * -d /dev/fbN: framebuffer device (if not /dev/fb0) + * -s path_to_image_file (can be "-" for stdin) + * -i path_to_cfg_file +@@ -22,10 +23,11 @@ + */ + + //usage:#define fbsplash_trivial_usage +-//usage: "-s IMGFILE [-c] [-d DEV] [-i INIFILE] [-f CMD]" ++//usage: "-s IMGFILE [-c] [-x] [-d DEV] [-i INIFILE] [-f CMD]" + //usage:#define fbsplash_full_usage "\n\n" + //usage: " -s Image" + //usage: "\n -c Hide cursor" ++//usage: "\n -x Center image (if smaller than screen)" + //usage: "\n -d Framebuffer device (default /dev/fb0)" + //usage: "\n -i Config file (var=value):" + //usage: "\n BAR_LEFT,BAR_TOP,BAR_WIDTH,BAR_HEIGHT" +@@ -54,6 +56,7 @@ struct globals { + unsigned red_shift; + unsigned green_shift; + unsigned blue_shift; ++ bool bcenter_image; + }; + #define G (*ptr_to_globals) + #define INIT_G() do { \ +@@ -349,6 +352,8 @@ static void fb_drawimage(void) + char *read_ptr; + unsigned char *pixline; + unsigned i, j, width, height, line_size; ++ int xoffset = 0; ++ int yoffset = 0; + + if (LONE_DASH(G.image_filename)) { + theme_file = stdin; +@@ -396,6 +401,11 @@ static void fb_drawimage(void) + line_size = width*3; + pixline = xmalloc(line_size); + ++ if (G.bcenter_image) { ++ xoffset = ((G.scr_var.xres - width) * G.bytes_per_pixel) / 2; ++ yoffset = (G.scr_var.yres - height) / 2; ++ } ++ + if (width > G.scr_var.xres) + width = G.scr_var.xres; + if (height > G.scr_var.yres) +@@ -407,7 +417,7 @@ static void fb_drawimage(void) + if (fread(pixline, 1, line_size, theme_file) != line_size) + bb_error_msg_and_die("bad PPM file '%s'", G.image_filename); + pixel = pixline; +- src = G.addr + j * G.scr_fix.line_length; ++ src = G.addr + (j + yoffset) * G.scr_fix.line_length + xoffset; + for (i = 0; i < width; i++) { + unsigned thispix = fb_pixel_value(pixel[0], pixel[1], pixel[2]); + fb_write_pixel(src, thispix); +@@ -463,6 +473,7 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv) + FILE *fp = fp; // for compiler + char *num_buf; + unsigned num; ++ unsigned optret; + bool bCursorOff; + + INIT_G(); +@@ -471,8 +482,10 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv) + fb_device = "/dev/fb0"; + cfg_filename = NULL; + fifo_filename = NULL; +- bCursorOff = 1 & getopt32(argv, "cs:d:i:f:", ++ optret = getopt32(argv, "cxs:d:i:f:", + &G.image_filename, &fb_device, &cfg_filename, &fifo_filename); ++ bCursorOff = 1 & optret; ++ G.bcenter_image = 2 & optret; + + // parse configuration file + if (cfg_filename) diff --git a/remote/modules/busybox/openslx-busybox-config b/remote/modules/busybox/openslx-busybox-config index 1dcae3db..2e2bc686 100644 --- a/remote/modules/busybox/openslx-busybox-config +++ b/remote/modules/busybox/openslx-busybox-config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.21.1 -# Wed Aug 14 17:04:02 2013 +# Busybox version: 1.22.1 +# Sat Feb 15 19:51:48 2014 # CONFIG_HAVE_DOT_CONFIG=y @@ -135,7 +135,14 @@ CONFIG_FEATURE_SEAMLESS_Z=y CONFIG_AR=y # CONFIG_FEATURE_AR_LONG_FILENAMES is not set CONFIG_FEATURE_AR_CREATE=y +# CONFIG_UNCOMPRESS is not set +CONFIG_GUNZIP=y CONFIG_BUNZIP2=y +CONFIG_UNLZMA=y +# CONFIG_FEATURE_LZMA_FAST is not set +CONFIG_LZMA=y +CONFIG_UNXZ=y +CONFIG_XZ=y CONFIG_BZIP2=y CONFIG_CPIO=y # CONFIG_FEATURE_CPIO_O is not set @@ -143,14 +150,13 @@ CONFIG_CPIO=y # CONFIG_DPKG is not set # CONFIG_DPKG_DEB is not set # CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set -CONFIG_GUNZIP=y CONFIG_GZIP=y # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set CONFIG_GZIP_FAST=0 # CONFIG_LZOP is not set # CONFIG_LZOP_COMPR_HIGH is not set -CONFIG_RPM2CPIO=y # CONFIG_RPM is not set +CONFIG_RPM2CPIO=y CONFIG_TAR=y CONFIG_FEATURE_TAR_CREATE=y CONFIG_FEATURE_TAR_AUTODETECT=y @@ -163,12 +169,6 @@ CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y # CONFIG_FEATURE_TAR_UNAME_GNAME is not set CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y # CONFIG_FEATURE_TAR_SELINUX is not set -# CONFIG_UNCOMPRESS is not set -CONFIG_UNLZMA=y -# CONFIG_FEATURE_LZMA_FAST is not set -CONFIG_LZMA=y -CONFIG_UNXZ=y -CONFIG_XZ=y # CONFIG_UNZIP is not set # @@ -186,6 +186,7 @@ CONFIG_GROUPS=y CONFIG_TEST=y # CONFIG_FEATURE_TEST_64 is not set CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_NODEREF=y CONFIG_FEATURE_TOUCH_SUSV3=y CONFIG_TR=y # CONFIG_FEATURE_TR_CLASSES is not set @@ -363,7 +364,16 @@ CONFIG_WHICH=y # # Editors # +CONFIG_AWK=y +# CONFIG_FEATURE_AWK_LIBM is not set +CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y +# CONFIG_CMP is not set +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_LONG_OPTIONS=y +CONFIG_FEATURE_DIFF_DIR=y +# CONFIG_ED is not set # CONFIG_PATCH is not set +CONFIG_SED=y CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=1024 CONFIG_FEATURE_VI_8BIT=y @@ -378,14 +388,6 @@ CONFIG_FEATURE_VI_READONLY=y CONFIG_FEATURE_VI_SET=y CONFIG_FEATURE_VI_WIN_RESIZE=y CONFIG_FEATURE_VI_ASK_TERMINAL=y -CONFIG_AWK=y -# CONFIG_FEATURE_AWK_LIBM is not set -# CONFIG_CMP is not set -CONFIG_DIFF=y -CONFIG_FEATURE_DIFF_LONG_OPTIONS=y -CONFIG_FEATURE_DIFF_DIR=y -# CONFIG_ED is not set -CONFIG_SED=y # CONFIG_FEATURE_ALLOW_EXEC is not set # @@ -461,9 +463,6 @@ CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y # CONFIG_FEATURE_CHECK_NAMES is not set CONFIG_FIRST_SYSTEM_ID=100 CONFIG_LAST_SYSTEM_ID=999 -# group options for vbox module - next three lines original -# these modifications will be reverted when vbox udev rules are set -# therefore do not depend on addgroup! CONFIG_ADDGROUP=y CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y CONFIG_FEATURE_ADDUSER_TO_GROUP=y @@ -531,6 +530,7 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" # Linux System Utilities # CONFIG_BLOCKDEV=y +# CONFIG_FSTRIM is not set CONFIG_MDEV=y CONFIG_FEATURE_MDEV_CONF=y CONFIG_FEATURE_MDEV_RENAME=y @@ -556,7 +556,7 @@ CONFIG_FEATURE_FDISK_WRITABLE=y # CONFIG_FEATURE_SGI_LABEL is not set # CONFIG_FEATURE_SUN_LABEL is not set # CONFIG_FEATURE_OSF_LABEL is not set -CONFIG_FEATURE_GPT_LABEL=y +CONFIG_FEATURE_GPT_LABEL=y # CONFIG_FEATURE_FDISK_ADVANCED is not set # CONFIG_FINDFS is not set CONFIG_FLOCK=y @@ -617,43 +617,45 @@ CONFIG_VOLUMEID=y # # Filesystem/Volume identification # -CONFIG_FEATURE_VOLUMEID_EXT=y CONFIG_FEATURE_VOLUMEID_BTRFS=y -CONFIG_FEATURE_VOLUMEID_REISERFS=y -CONFIG_FEATURE_VOLUMEID_FAT=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y CONFIG_FEATURE_VOLUMEID_EXFAT=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_F2FS=y +CONFIG_FEATURE_VOLUMEID_FAT=y CONFIG_FEATURE_VOLUMEID_HFS=y +CONFIG_FEATURE_VOLUMEID_ISO9660=y CONFIG_FEATURE_VOLUMEID_JFS=y -CONFIG_FEATURE_VOLUMEID_XFS=y +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_LUKS=y CONFIG_FEATURE_VOLUMEID_NILFS=y CONFIG_FEATURE_VOLUMEID_NTFS=y -CONFIG_FEATURE_VOLUMEID_ISO9660=y -CONFIG_FEATURE_VOLUMEID_UDF=y -CONFIG_FEATURE_VOLUMEID_LUKS=y -CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y -CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_OCFS2=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y CONFIG_FEATURE_VOLUMEID_ROMFS=y # CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set CONFIG_FEATURE_VOLUMEID_SYSV=y -CONFIG_FEATURE_VOLUMEID_OCFS2=y -CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_XFS=y # # Miscellaneous Utilities # # CONFIG_CONSPY is not set # CONFIG_LESS is not set -CONFIG_FEATURE_LESS_MAXLINES=9999999 -CONFIG_FEATURE_LESS_BRACKETS=y -CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_MAXLINES=0 +# CONFIG_FEATURE_LESS_BRACKETS is not set +# CONFIG_FEATURE_LESS_FLAGS is not set # CONFIG_FEATURE_LESS_MARKS is not set # CONFIG_FEATURE_LESS_REGEXP is not set -CONFIG_FEATURE_LESS_WINCH=y -CONFIG_FEATURE_LESS_ASK_TERMINAL=y +# CONFIG_FEATURE_LESS_WINCH is not set +# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set # CONFIG_FEATURE_LESS_DASHCMD is not set # CONFIG_FEATURE_LESS_LINENUMS is not set # CONFIG_NANDWRITE is not set # CONFIG_NANDDUMP is not set +# CONFIG_RFKILL is not set CONFIG_SETSERIAL=y # CONFIG_UBIATTACH is not set # CONFIG_UBIDETACH is not set @@ -661,6 +663,7 @@ CONFIG_UBIMKVOL=y CONFIG_UBIRMVOL=y CONFIG_UBIRSVOL=y CONFIG_UBIUPDATEVOL=y +# CONFIG_WALL is not set # CONFIG_ADJTIMEX is not set # CONFIG_BBCONFIG is not set # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set @@ -717,7 +720,6 @@ CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y # CONFIG_MT is not set # CONFIG_RAIDAUTORUN is not set CONFIG_READAHEAD=y -# CONFIG_RFKILL is not set # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set CONFIG_SETSID=y @@ -728,7 +730,6 @@ CONFIG_TIME=y CONFIG_TIMEOUT=y CONFIG_TTYSIZE=y # CONFIG_VOLNAME is not set -# CONFIG_WALL is not set CONFIG_WATCHDOG=y # @@ -862,7 +863,7 @@ CONFIG_UDHCPC=y CONFIG_FEATURE_UDHCPC_ARPING=y # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 -# CONFIG_FEATURE_UDHCP_RFC3397 is not set +CONFIG_FEATURE_UDHCP_RFC3397=y CONFIG_FEATURE_UDHCP_8021Q=y CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 diff --git a/remote/modules/cups/cups.conf b/remote/modules/cups/cups.conf index 8c30a08b..586e0d12 100644 --- a/remote/modules/cups/cups.conf +++ b/remote/modules/cups/cups.conf @@ -1,5 +1,6 @@ REQUIRED_BINARIES=" cupsd + foomatic-rip " REQUIRED_DIRECTORIES=" /usr/lib/cups/ diff --git a/remote/modules/cups/cups.conf.opensuse b/remote/modules/cups/cups.conf.opensuse index 1ce46e5f..d13021ba 100644 --- a/remote/modules/cups/cups.conf.opensuse +++ b/remote/modules/cups/cups.conf.opensuse @@ -1,8 +1,10 @@ REQUIRED_INSTALLED_PACKAGES=" cups cups-libs + foomatic-filters " REQUIRED_CONTENT_PACKAGES=" cups cups-libs + foomatic-filters " diff --git a/remote/modules/cups/cups.conf.ubuntu b/remote/modules/cups/cups.conf.ubuntu index da50d242..8ca1d1c6 100644 --- a/remote/modules/cups/cups.conf.ubuntu +++ b/remote/modules/cups/cups.conf.ubuntu @@ -1,8 +1,10 @@ REQUIRED_INSTALLED_PACKAGES=" cups ghostscript-cups + foomatic-filters " REQUIRED_CONTENT_PACKAGES=" cups ghostscript-cups + foomatic-filters " diff --git a/remote/modules/cups/cups.conf.ubuntu.13 b/remote/modules/cups/cups.conf.ubuntu.13 index ff5a23d7..53c8d62d 100644 --- a/remote/modules/cups/cups.conf.ubuntu.13 +++ b/remote/modules/cups/cups.conf.ubuntu.13 @@ -2,9 +2,11 @@ REQUIRED_INSTALLED_PACKAGES=" cups cups-daemon ghostscript-cups + foomatic-filters " REQUIRED_CONTENT_PACKAGES=" cups cups-daemon ghostscript-cups + foomatic-filters " diff --git a/remote/modules/cups/cups.conf.ubuntu.13.10 b/remote/modules/cups/cups.conf.ubuntu.13.10 index eaf19ce8..d3fa3b5d 100644 --- a/remote/modules/cups/cups.conf.ubuntu.13.10 +++ b/remote/modules/cups/cups.conf.ubuntu.13.10 @@ -2,9 +2,11 @@ REQUIRED_INSTALLED_PACKAGES=" cups cups-daemon cups-filters + foomatic-filters " REQUIRED_CONTENT_PACKAGES=" cups cups-daemon cups-filters + foomatic-filters " diff --git a/remote/modules/dhcpc-busybox/data/etc/systemd/system/dhcpc@.service b/remote/modules/dhcpc-busybox/data/etc/systemd/system/dhcpc@.service new file mode 120000 index 00000000..a2e7487d --- /dev/null +++ b/remote/modules/dhcpc-busybox/data/etc/systemd/system/dhcpc@.service @@ -0,0 +1 @@ +udhcpc@.service
\ No newline at end of file diff --git a/remote/modules/dhcpc-busybox/data/etc/systemd/system/sysinit.target.wants/udhcpc@br0.service b/remote/modules/dhcpc-busybox/data/etc/systemd/system/sysinit.target.wants/udhcpc@br0.service deleted file mode 120000 index dff66b14..00000000 --- a/remote/modules/dhcpc-busybox/data/etc/systemd/system/sysinit.target.wants/udhcpc@br0.service +++ /dev/null @@ -1 +0,0 @@ -../udhcpc@.service
\ No newline at end of file diff --git a/remote/modules/dhcpc-busybox/data/etc/systemd/system/udhcpc@.service b/remote/modules/dhcpc-busybox/data/etc/systemd/system/udhcpc@.service index 6547de5b..9226f00c 100644 --- a/remote/modules/dhcpc-busybox/data/etc/systemd/system/udhcpc@.service +++ b/remote/modules/dhcpc-busybox/data/etc/systemd/system/udhcpc@.service @@ -1,7 +1,6 @@ [Unit] -Description=DHCP Client -DefaultDependencies=no -Before=sysinit.target +Description=DHCP Client for %i +After=systemd-tmpfiles-setup.service [Service] Type=forking @@ -9,5 +8,3 @@ PIDFile=/run/udhcpc/udhcpc.%I.pid ExecStart=/opt/openslx/scripts/systemd-udhcpc++ %I ExecStopPost=/bin/rm /run/udhcpc/udhcpc.%I.pid -[Install] -WantedBy=multi-user.target diff --git a/remote/modules/dhcpc-busybox/data/etc/tmpfiles.d/udhcpc.conf b/remote/modules/dhcpc-busybox/data/etc/tmpfiles.d/udhcpc.conf new file mode 100644 index 00000000..2b8ede25 --- /dev/null +++ b/remote/modules/dhcpc-busybox/data/etc/tmpfiles.d/udhcpc.conf @@ -0,0 +1 @@ +d /run/udhcpc 0755 root root diff --git a/remote/modules/dhcpc-busybox/data/opt/openslx/scripts/systemd-udhcpc++ b/remote/modules/dhcpc-busybox/data/opt/openslx/scripts/systemd-udhcpc++ index f3de82df..246b2567 100755 --- a/remote/modules/dhcpc-busybox/data/opt/openslx/scripts/systemd-udhcpc++ +++ b/remote/modules/dhcpc-busybox/data/opt/openslx/scripts/systemd-udhcpc++ @@ -7,5 +7,5 @@ UDHCPC_OPTS="" [ ! -z "$NET_IP" ] && UDHCPC_OPTS=" -r $NET_IP" echo "udhcp++: running on $NET_IF with additional params $UDHCPC_OPTS" >> "/tmp/udhcpclog" mkdir -p /run/udhcpc || echo "Could not create '/run/udhcpc'." -/opt/openslx/sbin/udhcpc $UDHCPC_OPTS -O domain -O nissrv -O nisdomain -O wpad -t 8 -s /opt/openslx/scripts/udhcpc-openslx -i "$NET_IF" -p "/run/udhcpc/udhcpc.$NET_IF.pid" || \ +/opt/openslx/sbin/udhcpc $UDHCPC_OPTS -O domain -O nissrv -O nisdomain -O wpad -O search -t 8 -s /opt/openslx/scripts/udhcpc-openslx -i "$NET_IF" -p "/run/udhcpc/udhcpc.$NET_IF.pid" || \ slxlog "udhcpc" "Could not run 'udhcpc${UDHCPC_OPTS}' on ${NET_IF}." diff --git a/remote/modules/dhcpc-busybox/data/opt/openslx/scripts/udhcpc-openslx b/remote/modules/dhcpc-busybox/data/opt/openslx/scripts/udhcpc-openslx index 93287af8..4edce5fc 100755 --- a/remote/modules/dhcpc-busybox/data/opt/openslx/scripts/udhcpc-openslx +++ b/remote/modules/dhcpc-busybox/data/opt/openslx/scripts/udhcpc-openslx @@ -20,12 +20,19 @@ . /opt/openslx/config RESOLV_CONF="/etc/resolv.conf" -THIS_RESOLV="/run/udhcpc/${interface}.resolv" +THIS_RESOLV="/run/network/${interface}.resolv" rebuild_resolv_conf () { # Maybe make this smarter some time, if anyone is using client's that are on multiple networks at once etc... # This is a little braindead but should work most of the time - sort -u /run/udhcpc/*.resolv > "$RESOLV_CONF" 2> /dev/null + sort -u /run/network/*.resolv > "$RESOLV_CONF" 2> /dev/null + + # add support for resolv.conf update scripts // see man(8) resolvconf + if [ -d /etc/resolvconf/update.d ]; then + for s in $(ls -1 /etc/resolvconf/update.d/*.sh); do + $s + done + fi } escape_search() { @@ -58,7 +65,7 @@ fi case "$1" in bound|renew) check_env "$1" - mkdir -p "/run/udhcpc" + mkdir -p "/run/dhcpc" # Set address on interface ip addr add "$ip/$(ipcalc -s -p $ip $subnet|sed s/.*=//)" dev "$interface" # Set default route, if given @@ -69,9 +76,16 @@ case "$1" in # Update resolver configuration file CONF="" if [ -n "$domain" ]; then - printf -v CONF "domain $domain\nsearch $domain\n" + printf -v CONF "domain $domain\n" + elif [ -n "$SLX_NET_DOMAIN" ]; then + printf -v CONF "domain $SLX_NET_DOMAIN\n" + fi + if [ -n "$search" ]; then + printf -v CONF "search $search\n" + elif [ -n "$SLX_SEARCH_DOMAIN" ]; then + printf -v CONF "search $SLX_SEARCH_DOMAIN\n" elif [ -n "$SLX_NET_DOMAIN" ]; then - printf -v CONF "domain $SLX_NET_DOMAIN\nsearch $SLX_NET_DOMAIN\n" + printf -v CONF "search $SLX_NET_DOMAIN\n" fi for i in $dns; do echo "$0: Adding DNS $i" @@ -96,7 +110,7 @@ case "$1" in sed -i "s/^\(SLX_PXE_CLIENT_IP=\).*$/\1'$ip'/" /opt/openslx/config # Only if network is not ready yet - if [ ! -e "/run/udhcpc/network-ready" ]; then + if [ ! -e "/run/network/network-ready" ]; then # Update hostname if [ -z "$dns_host" ]; then # fallback to what the dhcp told us @@ -130,7 +144,7 @@ case "$1" in fi # Update /etc/issue for proper spacing /opt/openslx/scripts/openslx-create_issue - touch "/run/udhcpc/network-ready" + touch "/run/network/network-ready" # Mark network target as reached systemctl start network.target & fi # end "network not ready yet" @@ -158,16 +172,16 @@ case "$1" in sed -i -r '/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\s*$/d' /etc/hosts # "dns ready" target - if [ -n "$dns" ] && [ ! -e "/run/udhcpc/dns-ready" ]; then - touch "/run/udhcpc/dns-ready" + if [ -n "$dns" ] && [ ! -e "/run/network/dns-ready" ]; then + touch "/run/network/dns-ready" # Write to openslx-config echo "# Config written by openslx-dhcp-script (2)" >> /opt/openslx/config echo "SLX_DNS='$dns'" >> /opt/openslx/config systemctl start network-dns.target & fi # "default route exists" target - if [ -n "$router" ] && [ ! -e "/run/udhcpc/routing-ready" ]; then - touch "/run/udhcpc/routing-ready" + if [ -n "$router" ] && [ ! -e "/run/network/gateway-ready" ]; then + touch "/run/network/gateway-ready" # Write to openslx-config echo "# Config written by openslx-dhcp-script (3)" >> /opt/openslx/config echo "SLX_DNS='$dns'" >> /opt/openslx/config diff --git a/remote/modules/iptables-helper/data/opt/openslx/iptables/iptables-reloader-worker b/remote/modules/iptables-helper/data/opt/openslx/iptables/iptables-reloader-worker index 350f502c..3ca0a014 100755 --- a/remote/modules/iptables-helper/data/opt/openslx/iptables/iptables-reloader-worker +++ b/remote/modules/iptables-helper/data/opt/openslx/iptables/iptables-reloader-worker @@ -34,18 +34,27 @@ reload_rules () { # Filter for chain in INPUT FORWARD OUTPUT; do iptables -t filter -P "$chain" ACCEPT + iptables -t filter -N "ipt-helper-$chain" 2>/dev/null + iptables -t filter -F "ipt-helper-$chain" + iptables -t filter -D "$chain" -j "ipt-helper-$chain" 2>/dev/null # make sure it's number one + iptables -t filter -I "$chain" 1 -j "ipt-helper-$chain" done - iptables -t filter -F # NAT for chain in INPUT OUTPUT PREROUTING POSTROUTING; do iptables -t nat -P "$chain" ACCEPT + iptables -t nat -N "ipt-helper-$chain" 2>/dev/null + iptables -t nat -F "ipt-helper-$chain" + iptables -t nat -D "$chain" -j "ipt-helper-$chain" 2>/dev/null # make sure it's number one + iptables -t nat -I "$chain" 1 -j "ipt-helper-$chain" done - iptables -t nat -F # Mangle for chain in INPUT FORWARD OUTPUT PREROUTING POSTROUTING; do iptables -t mangle -P "$chain" ACCEPT + iptables -t mangle -N "ipt-helper-$chain" 2>/dev/null + iptables -t mangle -F "ipt-helper-$chain" + iptables -t mangle -D "$chain" -j "ipt-helper-$chain" 2>/dev/null # make sure it's number one + iptables -t mangle -I "$chain" 1 -j "ipt-helper-$chain" done - iptables -t mangle -F # Apply local LOGFILE=$(mktemp) @@ -58,6 +67,8 @@ reload_rules () { mv "$file" "$DISABLED" continue fi + # patch chain names + sed -i -r 's/ (-A|--append|-I|--insert|-D|--delete) +(PREROUTING|INPUT|FORWARD|OUTPUT|POSTROUTING) / \1 ipt-helper-\2 /g' "$file" if ! "$file" > "$LOGFILE" 2>&1; then slxlog "firewall-script-apply" "The firewall script '$file' had nonzero exit code. Moving to disabled/" "$LOGFILE" mkdir -p "$DISABLED" @@ -65,6 +76,19 @@ reload_rules () { fi done + # Add default rule + for chain in INPUT FORWARD OUTPUT; do + iptables -t filter -A "ipt-helper-$chain" -j RETURN + done + # NAT + for chain in INPUT OUTPUT PREROUTING POSTROUTING; do + iptables -t nat -A "ipt-helper-$chain" -j RETURN + done + # Mangle + for chain in INPUT FORWARD OUTPUT PREROUTING POSTROUTING; do + iptables -t mangle -A "ipt-helper-$chain" -j RETURN + done + mv -f -- "${ALL_RULES}.new" "${ALL_RULES}" echo "iptables rules successfully updated." exit 0 diff --git a/remote/modules/kdm/data/etc/systemd/system/kdm.service b/remote/modules/kdm/data/etc/systemd/system/kdm.service index 6a7810c8..93bc2dd8 100644 --- a/remote/modules/kdm/data/etc/systemd/system/kdm.service +++ b/remote/modules/kdm/data/etc/systemd/system/kdm.service @@ -1,8 +1,7 @@ [Unit] Description=KDM Display Manager Conflicts=getty@tty7.service -Wants=plymouth-quit.service -After=systemd-user-sessions.service getty@tty7.service plymouth-quit.service activate-nss-ldap.service +After=systemd-user-sessions.service getty@tty7.service [Service] ExecStart=/usr/bin/kdm -nodaemon diff --git a/remote/modules/kdm/data/etc/tmpfiles.d/kdm.conf b/remote/modules/kdm/data/etc/tmpfiles.d/kdm.conf index 64f02ed3..9b726ba2 100644 --- a/remote/modules/kdm/data/etc/tmpfiles.d/kdm.conf +++ b/remote/modules/kdm/data/etc/tmpfiles.d/kdm.conf @@ -1,2 +1,2 @@ -D /var/run/kdm 0755 root root +d /var/run/kdm 0755 root root diff --git a/remote/modules/kernel/kernel.build b/remote/modules/kernel/kernel.build index 197935f7..78832905 100644 --- a/remote/modules/kernel/kernel.build +++ b/remote/modules/kernel/kernel.build @@ -1,23 +1,7 @@ fetch_source() { - # get the source according to the distro - if [ "x$PACKET_MANAGER" == "xapt" ]; then - pdebug "apt-ing kernel source" - apt-get install -y dpkg-dev || perror "Installing dpkg-dev failed." - apt-get source linux-image-${KERNEL_CURRENT_VERSION} || perror "Fetching kernel source failed." - [ -z "$(ls -d linux-*/)" ] && perror "Source directory not found." - [ ! -e ksrc ] && ln -s "$(ls -d linux-*/)" "ksrc" - elif [ "x$PACKET_MANAGER" == "xzypper" ]; then - pdebug "zypping kernel source" - zypper --no-refresh install -y kernel-source || perror "Fetching kernel source failed." - - # find src directory - local SOURCE_DIR=$(rpm -ql kernel-source |grep -E -o '^/.*src/linux-[^/]+/' |head -1) - [ -z "${SOURCE_DIR}" ] && perror "Could not determine directory of kernel source..." - ln -sf "${SOURCE_DIR}" ksrc - else - pdebug "Packet manager not determined!" - fi - + pdebug "getting kernel sources via git ...." + [ -d ./ksrc ] && rm -rf ./ksrc # slightly brutal ... + git clone --depth 1 ${REQUIRED_GIT} ksrc || perror "Could not clone kernel git." # check for aufs local RSL=$(find ksrc/ -type d -name aufs) if [ -z "$RSL" ]; then @@ -26,10 +10,8 @@ fetch_source() { else pinfo "aufs detected in kernel source :)" fi - # remember the current kernel version echo "${KERNEL_CURRENT_VERSION}" > ksrc/KVERSION - } build() { @@ -39,30 +21,32 @@ build() { pinfo "Updating kernel config..." update_config cp "${TARGET_CONFIG_FILE}" ksrc/.config - # make kernel with the new config cd ksrc || perror "Could not cd to ksrc, was the kernel source fetched properly?" - pinfo "Preparing kernel for new config ('make oldconfig')" + pinfo "Preparing kernel for new config ('make oldconfig')." if [ "x$MLTK_QUIET" = "x1" ]; then - yes "" | make oldconfig || perror "make oldconfig failed" + yes "" | make oldconfig || perror "make oldconfig failed." else - make oldconfig || perror "make oldconfig failed" + make oldconfig || perror "make oldconfig failed." fi + make prepare || perror "make prepare failed." + make scripts || perror "make scripts failed." + pinfo "Compiling kernel... (this will take some time)" if gcc --version | grep "4\.7" && which distcc; then pinfo "USING DISTCC" - make CC="distcc gcc-4.7" -j16 || perror "make failed" + make CC="distcc gcc-4.7" -j16 || perror "make failed." else # explicitly state number of cores here, as MAKEFLAGS seems to be overridden - make "-j$CPU_CORES" || perror "make failed" + make "-j$CPU_CORES" || perror "make failed." fi # install modules to build directory pinfo "Installing kernel modules..." if [ -d "${MODULE_BUILD_DIR}/lib/modules" ]; then - rm -r "${MODULE_BUILD_DIR}/lib/modules" || pwarning "Could not clean old modules" + rm -r "${MODULE_BUILD_DIR}/lib/modules" || pwarning "Could not clean old modules." fi - make INSTALL_MOD_PATH="${MODULE_BUILD_DIR}" INSTALL_MOD_STRIP=1 modules_install || perror "make modules_install failed in ${MODULE_BUILD_DIR}" + make INSTALL_MOD_PATH="${MODULE_BUILD_DIR}" INSTALL_MOD_STRIP=1 modules_install || perror "make modules_install failed in ${MODULE_BUILD_DIR}." cd - 2> /dev/null # copy kernel to build @@ -73,7 +57,7 @@ build() { post_copy() { mkdir -p "$TARGET_BUILD_DIR/../kernel" - cp -a "$MODULE_BUILD_DIR/kernel" "$TARGET_BUILD_DIR/../kernel/kernel" || perror "could not copy kernel to remote build dir" + cp -a "$MODULE_BUILD_DIR/kernel" "$TARGET_BUILD_DIR/../kernel/kernel" || perror "could not copy kernel to remote build dir." } # helper function to update the current kernel config with our parameters @@ -85,6 +69,7 @@ update_config() { # check for our wanted config parameter local OPENSLX_WANTED_CONFIG="${ROOT_DIR}/data/kernel.wanted.config" + [ -e "${OPENSLX_WANTED_CONFIG}" ] || perror "$OPENSLX_WANTED_CONFIG does not exist! Please add a list of wanted kernel config parameters." # copy basic config file @@ -113,33 +98,31 @@ update_config() { patch_aufs() { pinfo "Cloning aufs3 standalone git" cd "$MODULE_DIR" - if [ ! -d "aufs3-standalone/.git" ]; then - rm -rf "aufs3-standalone" - git clone "git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git" || perror "Cloning aufs3 failed." - fi + [ -d "aufs3-standalone/.git" ] && rm -rf "aufs3-standalone" # if already there, kill it. + # git: --depth 1 won't work here due to later "checkout origin/branch" + git clone "git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git" || perror "Cloning aufs3 failed." # get the needed version [ ! -z ${KERNEL_CURRENT_VERSION} ] && local NEEDED_BRANCH=$(echo $KERNEL_CURRENT_VERSION | awk -F "." '{print $1"."$2}') \ || perror "KERNEL_CURRENT_VERSION not set, this should not happen!" pinfo "Getting branch origin/$NEEDED_BRANCH" cd "$MODULE_DIR/aufs3-standalone" || perror "Could not CD to aufs3-standalone" - git checkout "origin/aufs$NEEDED_BRANCH" - pinfo "Starting to patch..." + git checkout "origin/aufs$NEEDED_BRANCH" || perror "Could not checkout needed branch." + pinfo "Starting to patch... $NEEDED_BRANCH" tarcopy "Documentation fs" "$MODULE_DIR/ksrc" - local AUFSH - if [ ! -e "include/linux/aufs_type.h" ]; then - [ ! -e "include/uapi/linux/aufs_type.h" ] && perror "No aufs_type.h in aufs3-git" - AUFSH="include/uapi/linux/aufs_type.h" - elif [ -e "include/uapi/linux/aufs_type.h" -a "$(stat -c %s "include/uapi/linux/aufs_type.h")" -gt "$(stat -c %s "include/linux/aufs_type.h")" ]; then - AUFSH="include/uapi/linux/aufs_type.h" - else - AUFSH="include/linux/aufs_type.h" - fi - pinfo "Using $AUFSH" - cp "$AUFSH" "$MODULE_DIR/ksrc/include/linux/" || perror "could not copy $AUFSH" + + # Quick-and-dirty aufs_type.h copying: + [ -e "include/linux/aufs_type.h" ] && cp "include/linux/aufs_type.h" "$MODULE_DIR/ksrc/include/linux/" + [ -e "include/uapi/linux/aufs_type.h" ] && cp "include/uapi/linux/aufs_type.h" "$MODULE_DIR/ksrc/include/uapi/linux/" + cd "$MODULE_DIR/ksrc" || perror "Could not CD to kernel-source dir ksrc" - patch -p1 < "$MODULE_DIR/aufs3-standalone/aufs3-kbuild.patch" || perror "aufs3-standalone/aufs3-kbuild.patch failed" - patch -p1 < "$MODULE_DIR/aufs3-standalone/aufs3-base.patch" || perror "aufs3-standalone/aufs3-base.patch failed" - #patch -p1 < "$MODULE_DIR/aufs3-standalone/aufs3-proc_map.patch" || perror "aufs3-standalone/aufs3-proc_map.patch failed" + + patch -p1 < "$MODULE_DIR/aufs3-standalone/aufs3-kbuild.patch" || perror "aufs3-standalone/aufs3-kbuild.patch failed!" + patch -p1 < "$MODULE_DIR/aufs3-standalone/aufs3-base.patch" || perror "aufs3-standalone/aufs3-base.patch failed!" + + # this following 'if' is a burning shame - caused as patching under eg. openSuse 13.1 is always unsuccessful due to hunk failing + if [ -f "$MODULE_DIR/aufs3-standalone/aufs3-mmap.patch" ]; then + patch -p1 < "$MODULE_DIR/aufs3-standalone/aufs3-mmap.patch" || pwarning "Problem patching aufs3-mmap.patch: hunks failed?" + fi pinfo "Patched kernel source with aufs-${NEEDED_BRANCH}" cd "$MODULE_DIR" } diff --git a/remote/modules/kernel/kernel.conf.opensuse b/remote/modules/kernel/kernel.conf.opensuse new file mode 100644 index 00000000..a66564fe --- /dev/null +++ b/remote/modules/kernel/kernel.conf.opensuse @@ -0,0 +1,2 @@ +REQUIRED_GIT_BRANCH="-b openSUSE-${SYS_VERSION}" +REQUIRED_GIT="git://kernel.opensuse.org/kernel.git $REQUIRED_GIT_BRANCH" diff --git a/remote/modules/kernel/kernel.conf.ubuntu b/remote/modules/kernel/kernel.conf.ubuntu new file mode 100644 index 00000000..1c876d15 --- /dev/null +++ b/remote/modules/kernel/kernel.conf.ubuntu @@ -0,0 +1,2 @@ +REQUIRED_GIT_BRANCH="-b master" +REQUIRED_GIT="git://kernel.ubuntu.com/ubuntu/ubuntu-${SYS_CODENAME}.git $REQUIRED_GIT_BRANCH" diff --git a/remote/modules/kernel/kernel.conf.ubuntu.13.04 b/remote/modules/kernel/kernel.conf.ubuntu.13.04 new file mode 100644 index 00000000..e9192f01 --- /dev/null +++ b/remote/modules/kernel/kernel.conf.ubuntu.13.04 @@ -0,0 +1,2 @@ +REQUIRED_GIT_BRANCH="-b master" +REQUIRED_GIT="git://kernel.ubuntu.com/ubuntu-archive/ubuntu-${SYS_CODENAME}.git $REQUIRED_GIT_BRANCH" diff --git a/remote/modules/nscd/data/etc/tmpfiles.d/nscd.conf b/remote/modules/nscd/data/etc/tmpfiles.d/nscd.conf index 57c16660..ba48981d 100644 --- a/remote/modules/nscd/data/etc/tmpfiles.d/nscd.conf +++ b/remote/modules/nscd/data/etc/tmpfiles.d/nscd.conf @@ -1 +1 @@ -D /var/run/nscd 0755 root root +d /var/run/nscd 0755 root root diff --git a/remote/modules/nvidia_kernel/nvidia_kernel.build b/remote/modules/nvidia_kernel/nvidia_kernel.build new file mode 100644 index 00000000..bf9c6ee6 --- /dev/null +++ b/remote/modules/nvidia_kernel/nvidia_kernel.build @@ -0,0 +1,128 @@ +fetch_source() { + mkdir -p src 2>/dev/null + cd src || perror "Could not change into src directory." + download "$REQUIRED_URL" +} + +build() { + local KERNELSRCDIR="$MODULE_DIR/../kernel/ksrc" # kernel sources + local TEMPDIR="$MODULE_DIR/temp" + local ROOTLOWERDIR="/" + local ROOTUPPERDIR="$TEMPDIR/rootupper" + local ROOTBINDDIR="$TEMPDIR/rootbind" + local ROOTMOUNTDIR="$TEMPDIR/rootmount" + local BINDMOUNTS="/dev /proc /run /sys" + local NVIDIA="$MODULE_DIR/src/$REQUIRED_NVIDIA" + local NVIDIAEXTRACTDIR="$ROOTMOUNTDIR/NVIDIA" + local NVEXTRACTDIR="/NVIDIA" # This is relative to the chroot. + + make_dirs () { + [ -d "$TEMPDIR" ] && rm -rf $TEMPDIR/* + mkdir -p "$TEMPDIR" || perror "Could not create base directory for mount directories $TEMPDIR." + for DIR in "$ROOTUPPERDIR" "$ROOTBINDDIR" "$ROOTMOUNTDIR"; do + mkdir -p "$DIR" || perror "Could not create directory for mount directory $DIR." + done + } + + mount_dirs () { + pinfo "Executing bind- and overlay mounts ..." + mount -o bind "$ROOTLOWERDIR" "$ROOTBINDDIR" || perror "Could not mount (bind) $ROOTLOWERDIR to $ROOTBINDDIR." + mount -o remount,ro "$ROOTBINDDIR" || perror "Could not remount $ROOTBINDDIR ro read-only." + mount -t overlayfs overlayfs -o lowerdir="$ROOTBINDDIR",upperdir="$ROOTUPPERDIR" "$ROOTMOUNTDIR" \ + || perror "Could not mount (overlayfs) $ROOTLOWERDIR, $ROOTUPPERDIR to $BINDDIR." + pinfo "Executing bind mounts ($BINDMOUNTS) for chroot root dir ..." + for MOUNT in $BINDMOUNTS; do + mount -o bind "$MOUNT" "$ROOTMOUNTDIR/$MOUNT" || perror "Could not mount (bind) $MOUNTS into chroot root dir." + done + } + + # We inject a bashrc to be executed later within the chroot. + gen_bashrc () { + local COMMON_OPTIONS=' --no-nouveau-check --no-network --no-backup --no-rpms --no-runlevel-check --no-distro-scripts --no-cc-version-check --no-x-check --no-precompiled-interface --silent ' + + cat >"$ROOTMOUNTDIR/$HOME/.bashrc"<<-EOF + echo "chroot successful." + alias ll='ls -alF' # A little convenience for debugging purposes. + PS1='\[\e[1;33m\]chroot@\h:\w\$ \[\e[1;32m\]' # To recognize the chroot instantly when debugging (yellow on black). + cd "$NVEXTRACTDIR" + ./nvidia-installer $COMMON_OPTIONS --kernel-source-path /"$KERNELSRCDIR" # Do the work! + exit # Out-comment this for debugging: Then script stays in chroot. +EOF + } + + unpack_nvidia () { + [ -d "$NVIDIAEXTRACTDIR" ] && rm -rf "$NVIDIAEXTRACTDIR" + pinfo "Unpacking NVidia archive ($NVIDIA) ..." + sh "$NVIDIA" --extract-only --target "$NVIDIAEXTRACTDIR" || perror "Could not extract $NVIDIA to $NVIDIAEXTRACTDIR." + } + + umount_dirs () { + # Let's tidy the place, or at least the mounts: Otherwise these would stack up, and we do not like that, don't we. + for MOUNT in $BINDMOUNTS; do + umount "$ROOTMOUNTDIR/$MOUNT" || pwarning "Could not unmount $ROOTMOUNTDIR/$MOUNT!" + done + umount "$ROOTMOUNTDIR" || pwarning "Could not unmount $ROOTMOUNTDIR!" + umount "$ROOTBINDDIR" || pwarning "Could not unmount $ROOTBINDDIR!" + } + + strip_modules () { + strip -g "$ROOTUPPERDIR/$NVEXTRACTDIR/kernel/nvidia.ko" || \ + pwarning "Could not strip kernel module $ROOTUPPERDIR/$NVEXTRACTDIR/kernel/nvidia.ko." + strip -g "$ROOTUPPERDIR/$NVEXTRACTDIR/kernel/uvm/nvidia-uvm.ko" || \ + pwarning "Could not strip kernel module $ROOTUPPERDIR/$NVEXTRACTDIR/kernel/uvm/nvidia-uvm.ko." + } + + copy_modules () { + local NVIDIA_MODULES="$MODULE_DIR/build/lib/modules/nvidia/" + mkdir -p "$NVIDIA_MODULES" + cp "$ROOTUPPERDIR/$NVEXTRACTDIR/kernel/nvidia.ko" "$NVIDIA_MODULES" || perror "Could not copy nvidia.ko!" + cp "$ROOTUPPERDIR/$NVEXTRACTDIR/kernel/uvm/nvidia-uvm.ko" "$NVIDIA_MODULES" || perror "Could not copy nvidia-uvm.ko!" + } + + clean_temp () { + rm -rf "$TEMPDIR" || perror "Could not clean/delete temp directory $TEMPDIR." + } + + # Main stuff + pinfo "Generating temporary directories ..." + make_dirs + pinfo "Mounting directories ..." + mount_dirs + + pinfo "Injecting .bashrc into later chroot ..." + gen_bashrc + + pinfo "Unpacking NVidia-Installer ..." + unpack_nvidia + + pinfo "Ready to chroot - compiling may take some time." + pdebug "--- chroot ---------------------------------------------------------------------" + pdebug "- -" + pdebug "- Notice: This may take a while! -" + pdebug "- -" + pdebug "- Please keep note the Nvidia installer _will_ complain about -" + pdebug "- several warnings and errors. It will do this in any case. -" + pdebug "- -" + pdebug "- This does _not_ mean the kernel module compilation was unsuccessful! -" + pdebug "- -" + pdebug "--------------------------------------------------------------------------------" + chroot "$ROOTMOUNTDIR" + pinfo "chroot terminated." + + pinfo "Unmount directories." + umount_dirs + + pinfo "Stripping kernel modules." + strip_modules + + pinfo "Copying kernel modules." + copy_modules + + pinfo "Cleaning / deleting temp directories." + clean_temp +} + +post_copy() { + : +} + diff --git a/remote/modules/nvidia_kernel/nvidia_kernel.conf b/remote/modules/nvidia_kernel/nvidia_kernel.conf new file mode 100644 index 00000000..34e66b99 --- /dev/null +++ b/remote/modules/nvidia_kernel/nvidia_kernel.conf @@ -0,0 +1,7 @@ +REQUIRED_VERSION="331.38" +REQUIRED_NVIDIA="NVIDIA-Linux-x86_64-$REQUIRED_VERSION.run" +REQUIRED_URL="http://download.nvidia.com/XFree86/Linux-x86_64/$REQUIRED_VERSION/$REQUIRED_NVIDIA" + +REQUIRED_DIRECTORIES=" + /lib/modules/nvidia +" diff --git a/remote/modules/nvidia_libs/nvidia_libs.build b/remote/modules/nvidia_libs/nvidia_libs.build new file mode 100644 index 00000000..9dd4c0e2 --- /dev/null +++ b/remote/modules/nvidia_libs/nvidia_libs.build @@ -0,0 +1,121 @@ +fetch_source() { + mkdir -p src 2>/dev/null + cd src || perror "Could not change into src directory." + download "$REQUIRED_URL" +} + +build() { + local KERNELSRCDIR="$MODULE_DIR/../kernel/ksrc" # kernel sources + local TEMPDIR="$MODULE_DIR/temp" + local ROOTLOWERDIR="/" + local ROOTUPPERDIR="$MODULE_DIR/build" + local ROOTBINDDIR="$TEMPDIR/rootbind" + local ROOTMOUNTDIR="$TEMPDIR/rootmount" + local BINDMOUNTS="/dev /proc /run /sys" + local NVIDIA="$MODULE_DIR/src/$REQUIRED_NVIDIA" + local NVIDIAEXTRACTDIR="$ROOTMOUNTDIR/NVIDIA" + local NVEXTRACTDIR="/NVIDIA" # This is relative to the chroot. + + make_dirs () { + [ -d "$TEMPDIR" ] && rm -rf "$TEMPDIR" + mkdir -p "$TEMPDIR" || perror "Could not create base directory for mount directories $TEMPDIR." + for DIR in "$ROOTBINDDIR" "$ROOTMOUNTDIR"; do + mkdir -p "$DIR" || perror "Could not create directory for mount directory $DIR." + done + } + + mount_dirs () { + pinfo "Executing bind- and overlay mounts ..." + mount -o bind "$ROOTLOWERDIR" "$ROOTBINDDIR" || perror "Could not mount (bind) $ROOTLOWERDIR to $ROOTBINDDIR." + mount -o remount,ro "$ROOTBINDDIR" || perror "Could not remount $ROOTBINDDIR ro read-only." + mount -t overlayfs overlayfs -o lowerdir="$ROOTBINDDIR",upperdir="$ROOTUPPERDIR" "$ROOTMOUNTDIR" \ + || perror "Could not mount (overlayfs) $ROOTLOWERDIR, $ROOTUPPERDIR to $BINDDIR." + pinfo "Executing bind mounts ($BINDMOUNTS) for chroot root dir ..." + for MOUNT in $BINDMOUNTS; do + mount -o bind "$MOUNT" "$ROOTMOUNTDIR/$MOUNT" || perror "Could not mount (bind) $MOUNTS into chroot root dir." + done + } + + # We inject a bashrc to be executed later within the chroot. + gen_bashrc () { + local COMMON_OPTIONS=' --no-nouveau-check --no-network --no-backup --no-rpms --no-runlevel-check --no-distro-scripts --no-cc-version-check --no-x-check --no-precompiled-interface --silent ' + + cat >"$ROOTMOUNTDIR/$HOME/.bashrc"<<-EOF + echo "chroot successful." + alias ll='ls -alF' # A little convenience for debugging purposes. + PS1='\[\e[1;33m\]chroot@\h:\w\$ \[\e[1;32m\]' # To recognize the chroot instantly when debugging (yellow on black). + cd "$NVEXTRACTDIR" + ./nvidia-installer $COMMON_OPTIONS --no-kernel-module # Do the work! + exit # Out-comment this for debugging: Then script stays in chroot. +EOF + } + + unpack_nvidia () { + [ -d "$NVIDIAEXTRACTDIR" ] && rm -rf "$NVIDIAEXTRACTDIR" + pinfo "Unpacking NVidia archive ($NVIDIA) ..." + sh "$NVIDIA" --extract-only --target "$NVIDIAEXTRACTDIR" || perror "Could not extract $NVIDIA to $NVIDIAEXTRACTDIR." + } + + umount_dirs () { + # Let's tidy the place, or at least the mounts: Otherwise these would stack up, and we do not like that, don't we. + for MOUNT in $BINDMOUNTS; do + umount "$ROOTMOUNTDIR/$MOUNT" || pwarning "Could not unmount $ROOTMOUNTDIR/$MOUNT!" + done + umount "$ROOTMOUNTDIR" || pwarning "Could not unmount $ROOTMOUNTDIR!" + umount "$ROOTBINDDIR" || pwarning "Could not unmount $ROOTBINDDIR!" + } + + clean_whiteouts () { + # The case of these overlay whiteouts should be investigated instead of just killing them. But for now... + pdebug "Searching for overlayfs-whiteouts ..." + for WHITEOUT in $(find "$MODULE_DIR/build" -lname "(overlay-whiteout)"); do + pdebug "Whiteout found: $WHITEOUT" + rm -f "$WHITEOUT" || perror "Could not delete whiteout $WHITEOUT!" + done + } + + clean_temp () { + rm -rf "$TEMPDIR" || perror "Could not clean/delete temp directory $TEMPDIR." + rm -rf "$ROOTUPPERDIR/NVIDIA" + } + + # Main stuff + pinfo "Generating temporary directories ..." + make_dirs + pinfo "Mounting directories ..." + mount_dirs + + pinfo "Injecting .bashrc into later chroot ..." + gen_bashrc + + pinfo "Unpacking NVidia-Installer ..." + unpack_nvidia + + pinfo "Ready to chroot - compiling may take some time." + pdebug "--- chroot ---------------------------------------------------------------------" + pdebug "- -" + pdebug "- Notice: This may take a while! -" + pdebug "- -" + pdebug "- Please keep note the Nvidia installer _will_ complain about -" + pdebug "- several warnings and errors. It will do this in any case. -" + pdebug "- -" + pdebug "- This does _not_ mean the library module compilation was unsuccessful! -" + pdebug "- -" + pdebug "--------------------------------------------------------------------------------" + chroot "$ROOTMOUNTDIR" + pinfo "chroot terminated." + + pinfo "Unmount directories ..." + umount_dirs + + pinfo "Cleaning whiteouts ..." + clean_whiteouts + + pinfo "Cleaning / deleting temp directories." + clean_temp +} + +post_copy() { + : +} + diff --git a/remote/modules/nvidia_libs/nvidia_libs.conf b/remote/modules/nvidia_libs/nvidia_libs.conf new file mode 100644 index 00000000..faec87ec --- /dev/null +++ b/remote/modules/nvidia_libs/nvidia_libs.conf @@ -0,0 +1,29 @@ +REQUIRED_VERSION="331.38" +REQUIRED_NVIDIA="NVIDIA-Linux-x86_64-$REQUIRED_VERSION.run" +REQUIRED_URL="http://download.nvidia.com/XFree86/Linux-x86_64/$REQUIRED_VERSION/$REQUIRED_NVIDIA" + +#REQUIRED_FILES=" +# /etc/OpenCL/vendors/nvidia.icd +# /usr/share/nvidia/nvidia-application-profiles-331.38-rc +# /usr/share/applications/nvidia-settings.desktop +#" + +#REQUIRED_DIRECTORIES=" +# /usr/bin +# /usr/lib +# /usr/lib/vdpau +# /usr/lib/xorg +# /usr/lib/xorg/modules +# /usr/lib/xorg/modules/drivers +# /usr/lib/xorg/modules/extensions +# /usr/lib/tls +# /usr/lib/x86_64-linux-gnu +# /usr/lib/x86_64-linux-gnu/mesa +# /usr/lib32 +# /usr/lib32/vdpau +# +#" + +REQUIRED_DIRECTORIES=" + / +" diff --git a/remote/modules/nvidia_libs/nvidia_libs.conf.ubuntu b/remote/modules/nvidia_libs/nvidia_libs.conf.ubuntu new file mode 100644 index 00000000..1eccb199 --- /dev/null +++ b/remote/modules/nvidia_libs/nvidia_libs.conf.ubuntu @@ -0,0 +1,10 @@ +# libvdpau: While nvidia delivers a linvdpau within it's driver package, nvidia +# itself recommends using a distribution package if available. So, here we go. + +REQUIRED_CONTENT_PACKAGES=" + libvdpau1 +" + +REQUIRED_INSTALLED_PACKAGES=" + libvdpau1 +" diff --git a/remote/modules/pam/data/etc/tmpfiles.d/pipefs.conf b/remote/modules/pam/data/etc/tmpfiles.d/pipefs.conf index 7c422623..44e0924c 100644 --- a/remote/modules/pam/data/etc/tmpfiles.d/pipefs.conf +++ b/remote/modules/pam/data/etc/tmpfiles.d/pipefs.conf @@ -1,2 +1,2 @@ -D /var/run/rpc_pipefs 0755 root root +d /var/run/rpc_pipefs 0755 root root 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 826e0a55..dc1db852 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 @@ -25,7 +25,7 @@ if [ "x$PAM_SERVICE" = "xsu" -o "x$PAM_SERVICE" = "xsudo" ]; then SESSIONCOUNT=$(( $SESSIONCOUNT + 1 )) fi -if [ "$SESSIONCOUNT" = "1" ]; then +if [ "$SESSIONCOUNT" -le "1" ]; then # last session, close all ghost user processes usleep 100000 2> /dev/null diff --git a/remote/modules/pam/pam.build b/remote/modules/pam/pam.build index 48baf8b9..15828fb8 100644 --- a/remote/modules/pam/pam.build +++ b/remote/modules/pam/pam.build @@ -1,6 +1,10 @@ fetch_source() { # get pam-script source download_untar "$REQUIRED_PAM_SCRIPT_URL" "src/" + if [[ "$SYS_DISTRIBUTION" == "opensuse" && "$SYS_VERSION" == "13.1" ]]; then + pinfo "Downloading $REQUIRED_NSS_LDAPD_URL ..." + download_untar "$REQUIRED_NSS_LDAPD_URL" "src/" + fi } build() { @@ -18,10 +22,20 @@ 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="$(dirname ${PAM_UNIX_LOCATION:1})" || perror "pam-script: ./configure failed." make DESTDIR="${MODULE_BUILD_DIR}" install || perror "pam-script: make install to ${MODULE_BUILD_DIR} failed." - # Build nslcd service file - cd "$MODULE_BUILD_DIR" - local NSLCD_PATH=$(which nslcd) + # openSuse 13.1 has no package nss-pam-ldapd. So, we compile it. + if [[ "$SYS_DISTRIBUTION" == "opensuse" && "$SYS_VERSION" == "13.1" ]]; 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 [ -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" } diff --git a/remote/modules/pam/pam.conf.opensuse.13.1 b/remote/modules/pam/pam.conf.opensuse.13.1 new file mode 100644 index 00000000..9fe1de17 --- /dev/null +++ b/remote/modules/pam/pam.conf.opensuse.13.1 @@ -0,0 +1,47 @@ +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 + 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/plymouth/data/etc/tmpfiles.d/plymouth.conf b/remote/modules/plymouth/data/etc/tmpfiles.d/plymouth.conf index 211c61f6..9dfffcbe 100644 --- a/remote/modules/plymouth/data/etc/tmpfiles.d/plymouth.conf +++ b/remote/modules/plymouth/data/etc/tmpfiles.d/plymouth.conf @@ -1,2 +1,2 @@ -D /var/run/plymouth 0755 root root +d /var/run/plymouth 0755 root root diff --git a/remote/modules/printergui/data/etc/systemd/system/network.target.wants/printergui.service b/remote/modules/printergui/data/etc/systemd/system/network.target.wants/printergui.service new file mode 120000 index 00000000..40453c80 --- /dev/null +++ b/remote/modules/printergui/data/etc/systemd/system/network.target.wants/printergui.service @@ -0,0 +1 @@ +../printergui.service
\ No newline at end of file diff --git a/remote/modules/printergui/data/etc/systemd/system/printergui.service b/remote/modules/printergui/data/etc/systemd/system/printergui.service new file mode 100644 index 00000000..8b00514c --- /dev/null +++ b/remote/modules/printergui/data/etc/systemd/system/printergui.service @@ -0,0 +1,8 @@ +[Unit] +Description=Printergui - bwLehrpool printing system +Requires=network.target graphical.target +After=network.target +Before=cups.service + +[Service] +ExecStart=/opt/openslx/scripts/systemd-printergui_preparation diff --git a/remote/modules/printergui/data/opt/openslx/scripts/systemd-printergui_preparation b/remote/modules/printergui/data/opt/openslx/scripts/systemd-printergui_preparation new file mode 100755 index 00000000..33a861e6 --- /dev/null +++ b/remote/modules/printergui/data/opt/openslx/scripts/systemd-printergui_preparation @@ -0,0 +1,20 @@ +#!/bin/ash + +ERR=0 +SRCDIR=/usr/lib/cups/backend +DESTDIR=/opt/openslx/cups/backend +PRINTPWGUI=/opt/openslx/cups/printpwgui + +if [ ! -d "$DESTDIR" ]; then + mkdir -p "$DESTDIR" || exit 1 +fi + +mv "$SRCDIR"/* "$DESTDIR" + +cd "$SRCDIR" +for i in "$DESTDIR"/*; do + ln -sf "$PRINTPWGUI" $(basename "$i") +done + +exit 0 + diff --git a/remote/modules/printergui/printergui.build b/remote/modules/printergui/printergui.build index 5803d8e8..2ee49154 100644 --- a/remote/modules/printergui/printergui.build +++ b/remote/modules/printergui/printergui.build @@ -2,19 +2,24 @@ fetch_source() { git clone "${REQUIRED_GIT}" src + cd src + git checkout "$REQUIRED_COMMIT" + cd .. } build() { local SRCDIR="${MODULE_DIR}/src/" + local DESTDIR="$MODULE_BUILD_DIR/opt/openslx/cups" - mkdir -p "$MODULE_BUILD_DIR/opt/openslx/bin" - cd "${MODULE_BUILD_DIR}/opt/openslx/bin" || perror "Could not cd!" - pinfo "Running qmake" - qmake "$SRCDIR/src/printergui.pro" -r -spec linux-g++ || perror "'qmake' failed (e.g. not installed)." + mkdir -p "$DESTDIR" + cd "$DESTDIR" || perror "Could not cd to $DESTDIR!" + pinfo "Running cmake" + cmake "$SRCDIR/" || perror "'cmake' failed (e.g. not installed)." pinfo "Running make" make || perror "'make' failed." + chmod 0700 "$DESTDIR/printpwgui" # So picky cupsd won't drop privileges to lp } post_copy() { - mkdir -p "${TARGET_BUILD_DIR}/var/spool/STANDARD" - chmod a+rwt "${TARGET_BUILD_DIR}/var/spool/STANDARD" + : } + diff --git a/remote/modules/printergui/printergui.conf b/remote/modules/printergui/printergui.conf index 26203a80..17203d3e 100644 --- a/remote/modules/printergui/printergui.conf +++ b/remote/modules/printergui/printergui.conf @@ -1,6 +1,8 @@ REQUIRED_GIT="git://git.openslx.org/openslx-ng/printergui.git" +REQUIRED_COMMIT="HEAD" REQUIRED_BINARIES=" printergui + printpwgui " REQUIRED_SYSTEM_FILES=" " diff --git a/remote/modules/redsocks/data/opt/openslx/scripts/systemd-setup_proxy b/remote/modules/redsocks/data/opt/openslx/scripts/systemd-setup_proxy index 94cb7688..adbaf827 100755 --- a/remote/modules/redsocks/data/opt/openslx/scripts/systemd-setup_proxy +++ b/remote/modules/redsocks/data/opt/openslx/scripts/systemd-setup_proxy @@ -33,7 +33,8 @@ cat > "/opt/openslx/iptables/rules.d/10-redoscks-proxy" <<HEREDOCBROWN #!/bin/ash . /opt/openslx/config -iptables -t nat -N REDSOCKS +iptables -t nat -N REDSOCKS 2>/dev/null +iptables -t nat -F REDSOCKS iptables -t nat -A REDSOCKS -d "\$SLX_PROXY_IP" -j RETURN iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN @@ -49,9 +50,9 @@ if [ -n "\$SLX_PROXY_BLACKLIST" ]; then done fi iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 12345 -iptables -t nat -A PREROUTING -p tcp -j REDSOCKS -iptables -t nat -A OUTPUT -p tcp -j REDSOCKS -iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE +iptables -t nat -A PREROUTING -i nat1 -p tcp -j REDSOCKS +iptables -t nat -A OUTPUT -o br0 -p tcp -j REDSOCKS +#iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE iptables -A INPUT -i br0 -p tcp --dport 12345 -j DROP HEREDOCBROWN chmod +x "/opt/openslx/iptables/rules.d/10-redoscks-proxy" diff --git a/remote/modules/smbclient/data/etc/tmpfiles.d/ensure-smbconf-exists.conf b/remote/modules/smbclient/data/etc/tmpfiles.d/ensure-smbconf-exists.conf new file mode 100644 index 00000000..f893eb71 --- /dev/null +++ b/remote/modules/smbclient/data/etc/tmpfiles.d/ensure-smbconf-exists.conf @@ -0,0 +1,4 @@ +# smbspool for some reason insists on reading this file, even if it is empty, otherwise it will bail out +d /etc/samba 0755 root root - +f /etc/samba/smb.conf 0644 root root - + diff --git a/remote/modules/smbclient/smbclient.build b/remote/modules/smbclient/smbclient.build new file mode 100644 index 00000000..dc28dd26 --- /dev/null +++ b/remote/modules/smbclient/smbclient.build @@ -0,0 +1,20 @@ +fetch_source() { + : +} + +build() { + COPYLIST="list_dpkg_output" + [ -e "$COPYLIST" ] && rm "$COPYLIST" + + list_packet_files >> "$COPYLIST" + tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}" + + local BIN_LOCATION="$(which smbspool)" + if [ ! -z "${BIN_LOCATION}" -a -e "${BIN_LOCATION}" ]; then + ln -sf "${BIN_LOCATION}" "${MODULE_BUILD_DIR}/usr/lib/cups/backend/smb" + fi +} + +post_copy() { + : +} diff --git a/remote/modules/smbclient/smbclient.conf b/remote/modules/smbclient/smbclient.conf new file mode 100644 index 00000000..460c57b5 --- /dev/null +++ b/remote/modules/smbclient/smbclient.conf @@ -0,0 +1,10 @@ +REQUIRED_BINARIES=" + smbspool + smbcacls + rpcclient + smbcquotas + smbget + smbclient + smbtree + smbtar +" diff --git a/remote/modules/smbclient/smbclient.conf.opensuse b/remote/modules/smbclient/smbclient.conf.opensuse new file mode 100644 index 00000000..f524d100 --- /dev/null +++ b/remote/modules/smbclient/smbclient.conf.opensuse @@ -0,0 +1,9 @@ +REQUIRED_INSTALLED_PACKAGES=" + samba-client +" +REQUIRED_CONTENT_PACKAGES=" + samba-client +" +REQUIRED_FILES=" + /usr/lib/cups/backend/smb +" diff --git a/remote/modules/smbclient/smbclient.conf.ubuntu b/remote/modules/smbclient/smbclient.conf.ubuntu new file mode 100644 index 00000000..4b33f4bd --- /dev/null +++ b/remote/modules/smbclient/smbclient.conf.ubuntu @@ -0,0 +1,9 @@ +REQUIRED_INSTALLED_PACKAGES=" + smbclient +" +REQUIRED_CONTENT_PACKAGES=" + smbclient +" +REQUIRED_FILES=" + /usr/lib/cups/backend/smb +" diff --git a/remote/modules/splash-openslx/README b/remote/modules/splash-openslx/README new file mode 100644 index 00000000..6e186aa2 --- /dev/null +++ b/remote/modules/splash-openslx/README @@ -0,0 +1,6 @@ +Howto: +To display the splash screen, you need to add this +module to your stage31 obviously, and also add +vga=current quiet splash +to your KCL. Feel free to copy this module +and replace the splash.ppm with your own. diff --git a/remote/modules/splash-openslx/data/etc/splash.ppm b/remote/modules/splash-openslx/data/etc/splash.ppm Binary files differnew file mode 100644 index 00000000..cb1c5637 --- /dev/null +++ b/remote/modules/splash-openslx/data/etc/splash.ppm diff --git a/remote/modules/splash-openslx/splash-openslx.build b/remote/modules/splash-openslx/splash-openslx.build new file mode 100644 index 00000000..ccb7c4e1 --- /dev/null +++ b/remote/modules/splash-openslx/splash-openslx.build @@ -0,0 +1,13 @@ + +fetch_source () { + : +} + +build () { + : +} + +post_copy() { + : +} + diff --git a/remote/modules/splash-openslx/splash-openslx.conf b/remote/modules/splash-openslx/splash-openslx.conf new file mode 100644 index 00000000..6778a258 --- /dev/null +++ b/remote/modules/splash-openslx/splash-openslx.conf @@ -0,0 +1 @@ +# (void) diff --git a/remote/modules/sshd/data/etc/tmpfiles.d/sshd.conf b/remote/modules/sshd/data/etc/tmpfiles.d/sshd.conf index d4aa9a67..77e6e459 100644 --- a/remote/modules/sshd/data/etc/tmpfiles.d/sshd.conf +++ b/remote/modules/sshd/data/etc/tmpfiles.d/sshd.conf @@ -1,2 +1,2 @@ -D /var/run/sshd 0755 root root +d /var/run/sshd 0755 root root diff --git a/remote/modules/swiss/data/etc/X11/xorg.conf.d/90-keytable.conf b/remote/modules/swiss/data/etc/X11/xorg.conf.d/90-keytable.conf new file mode 100644 index 00000000..6a3e0fd3 --- /dev/null +++ b/remote/modules/swiss/data/etc/X11/xorg.conf.d/90-keytable.conf @@ -0,0 +1,5 @@ +Section "InputClass" + Identifier "LocalKeyboard" + MatchIsKeyboard "on" + Option "XkbLayout" "ch" +EndSection diff --git a/remote/modules/swiss/data/etc/default/locale b/remote/modules/swiss/data/etc/default/locale new file mode 100644 index 00000000..b7569b66 --- /dev/null +++ b/remote/modules/swiss/data/etc/default/locale @@ -0,0 +1 @@ +LANG="ch_DE.UTF-8" diff --git a/remote/modules/swiss/data/etc/systemd/system/basic.target.wants/load-swiss-keymap.service b/remote/modules/swiss/data/etc/systemd/system/basic.target.wants/load-swiss-keymap.service new file mode 100644 index 00000000..0d46d95a --- /dev/null +++ b/remote/modules/swiss/data/etc/systemd/system/basic.target.wants/load-swiss-keymap.service @@ -0,0 +1,10 @@ +[Unit] +Description=Setup swiss keyboard layout +DefaultDependencies=no +After=sysinit.target +Before=shutdown.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/opt/openslx/scripts/systemd-load_swiss_keymaps diff --git a/remote/modules/swiss/data/etc/systemd/system/load-swiss-keymap.service b/remote/modules/swiss/data/etc/systemd/system/load-swiss-keymap.service new file mode 100644 index 00000000..0d46d95a --- /dev/null +++ b/remote/modules/swiss/data/etc/systemd/system/load-swiss-keymap.service @@ -0,0 +1,10 @@ +[Unit] +Description=Setup swiss keyboard layout +DefaultDependencies=no +After=sysinit.target +Before=shutdown.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/opt/openslx/scripts/systemd-load_swiss_keymaps diff --git a/remote/modules/swiss/data/opt/openslx/keymaps/compose.inc b/remote/modules/swiss/data/opt/openslx/keymaps/compose.inc new file mode 100644 index 00000000..c86d2dab --- /dev/null +++ b/remote/modules/swiss/data/opt/openslx/keymaps/compose.inc @@ -0,0 +1,8 @@ +# We map the PrintScreen key (useless) and Alt+AltGr to the Compose key... +# A really useful thing not found on normal keyboards. :/ +# +# (c) 2001 Bernhard Rosenkränzer <bero@arklinux.org> + +keycode 99 = Compose # SysRq/PrintScrn +keycode 100 = AltGr +alt keycode 100 = Compose diff --git a/remote/modules/swiss/data/opt/openslx/keymaps/german_qwertz_compose_keyboard_translation.map b/remote/modules/swiss/data/opt/openslx/keymaps/german_qwertz_compose_keyboard_translation.map new file mode 100644 index 00000000..9d0c73d0 --- /dev/null +++ b/remote/modules/swiss/data/opt/openslx/keymaps/german_qwertz_compose_keyboard_translation.map @@ -0,0 +1,967 @@ +keymaps 0-2,4-6,8-10,12 +keycode 1 = Escape Escape + alt keycode 1 = Meta_Escape + shift alt keycode 1 = Meta_Escape +keycode 2 = one exclam + alt keycode 2 = Meta_one + shift alt keycode 2 = Meta_exclam +keycode 3 = two quotedbl twosuperior nul + alt keycode 3 = Meta_two + shift alt keycode 3 = Meta_quotedbl + control alt keycode 3 = Meta_nul +keycode 4 = three section threesuperior Escape + alt keycode 4 = Meta_three + control alt keycode 4 = Meta_Escape +keycode 5 = four dollar + alt keycode 5 = Meta_four + shift alt keycode 5 = Meta_dollar +keycode 6 = five percent + alt keycode 6 = Meta_five + shift alt keycode 6 = Meta_percent +keycode 7 = six ampersand + control keycode 7 = Control_asciicircum + alt keycode 7 = Meta_six + shift alt keycode 7 = Meta_ampersand +keycode 8 = seven slash braceleft + alt keycode 8 = Meta_seven + shift alt keycode 8 = Meta_slash + altgr alt keycode 8 = Meta_braceleft +keycode 9 = eight parenleft bracketleft + alt keycode 9 = Meta_eight + shift alt keycode 9 = Meta_parenleft + altgr alt keycode 9 = Meta_bracketleft +keycode 10 = nine parenright bracketright + altgr control keycode 10 = Control_bracketright + alt keycode 10 = Meta_nine + shift alt keycode 10 = Meta_parenright + altgr alt keycode 10 = Meta_bracketright +keycode 11 = zero equal braceright + alt keycode 11 = Meta_zero + shift alt keycode 11 = Meta_equal + altgr alt keycode 11 = Meta_braceright +keycode 12 = ssharp question backslash + altgr control keycode 12 = Control_backslash + shift alt keycode 12 = Meta_question + altgr alt keycode 12 = Meta_backslash +keycode 13 = apostrophe grave + alt keycode 13 = 0x08b4 + shift alt keycode 13 = Meta_grave +keycode 14 = Delete Delete + alt keycode 14 = Meta_Delete + shift alt keycode 14 = Meta_Delete +keycode 15 = Tab Meta_Tab + alt keycode 15 = Meta_Tab +keycode 16 = +q +Q at Control_q Control_q nul Meta_q Meta_Q Meta_at Meta_Control_q +keycode 17 = w +keycode 18 = +e +E currency Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_Control_e +keycode 19 = r +keycode 20 = t +keycode 21 = z +keycode 22 = u +keycode 23 = i +keycode 24 = o +keycode 25 = p +keycode 26 = +udiaeresis +Udiaeresis +keycode 27 = plus asterisk asciitilde + alt keycode 27 = Meta_plus + shift alt keycode 27 = Meta_asterisk +keycode 28 = Return + alt keycode 28 = Meta_Control_m +keycode 29 = Control +keycode 30 = a +keycode 31 = s +keycode 32 = d +keycode 33 = f +keycode 34 = g +keycode 35 = h +keycode 36 = j +keycode 37 = k +keycode 38 = l +keycode 39 = +odiaeresis +Odiaeresis +keycode 40 = +adiaeresis +Adiaeresis +keycode 41 = asciicircum degree Meta_asciicircum Control_asciicircum + control alt keycode 41 = Meta_Control_asciicircum +keycode 42 = Shift +keycode 43 = numbersign apostrophe + alt keycode 43 = Meta_numbersign + shift alt keycode 43 = Meta_apostrophe +keycode 44 = y +keycode 45 = x +keycode 46 = +c +C cent Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_Control_c +keycode 47 = v +keycode 48 = b +keycode 49 = n +keycode 50 = +m +M mu Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_Control_m +keycode 51 = comma semicolon + alt keycode 51 = Meta_comma + shift alt keycode 51 = Meta_semicolon +keycode 52 = period colon + alt keycode 52 = Meta_period + shift alt keycode 52 = Meta_colon +keycode 53 = minus underscore Meta_minus + shift control keycode 53 = Control_underscore + alt keycode 53 = Meta_minus + shift alt keycode 53 = Meta_underscore +keycode 54 = Shift +keycode 55 = KP_Multiply + altgr keycode 55 = Hex_C +keycode 56 = Alt +keycode 57 = space space Meta_space nul + alt keycode 57 = Meta_space + shift alt keycode 57 = Meta_space + control alt keycode 57 = Meta_nul +keycode 58 = Caps_Lock +keycode 59 = F1 F13 Console_13 F25 + alt keycode 59 = Console_1 + control alt keycode 59 = Console_1 +keycode 60 = F2 F14 Console_14 F26 + alt keycode 60 = Console_2 + control alt keycode 60 = Console_2 +keycode 61 = F3 F15 Console_15 F27 + alt keycode 61 = Console_3 + control alt keycode 61 = Console_3 +keycode 62 = F4 F16 Console_16 F28 + alt keycode 62 = Console_4 + control alt keycode 62 = Console_4 +keycode 63 = F5 F17 Console_17 F29 + alt keycode 63 = Console_5 + control alt keycode 63 = Console_5 +keycode 64 = F6 F18 Console_18 F30 + alt keycode 64 = Console_6 + control alt keycode 64 = Console_6 +keycode 65 = F7 F19 Console_19 F31 + alt keycode 65 = Console_7 + control alt keycode 65 = Console_7 +keycode 66 = F8 F20 Console_20 F32 + alt keycode 66 = Console_8 + control alt keycode 66 = Console_8 +keycode 67 = F9 F21 Console_21 F33 + alt keycode 67 = Console_9 + control alt keycode 67 = Console_9 +keycode 68 = F10 F22 Console_22 F34 + alt keycode 68 = Console_10 + control alt keycode 68 = Console_10 +keycode 69 = Num_Lock + altgr keycode 69 = Hex_A +keycode 70 = Scroll_Lock Show_Memory Show_Registers Show_State + alt keycode 70 = Scroll_Lock +keycode 71 = KP_7 + altgr keycode 71 = Hex_7 + alt keycode 71 = Ascii_7 +keycode 72 = KP_8 + altgr keycode 72 = Hex_8 + alt keycode 72 = Ascii_8 +keycode 73 = KP_9 + altgr keycode 73 = Hex_9 + alt keycode 73 = Ascii_9 +keycode 74 = KP_Subtract + altgr keycode 74 = Hex_D +keycode 75 = KP_4 + altgr keycode 75 = Hex_4 + alt keycode 75 = Ascii_4 +keycode 76 = KP_5 + altgr keycode 76 = Hex_5 + alt keycode 76 = Ascii_5 +keycode 77 = KP_6 + altgr keycode 77 = Hex_6 + alt keycode 77 = Ascii_6 +keycode 78 = KP_Add + altgr keycode 78 = Hex_E +keycode 79 = KP_1 + altgr keycode 79 = Hex_1 + alt keycode 79 = Ascii_1 +keycode 80 = KP_2 + altgr keycode 80 = Hex_2 + alt keycode 80 = Ascii_2 +keycode 81 = KP_3 + altgr keycode 81 = Hex_3 + alt keycode 81 = Ascii_3 +keycode 82 = KP_0 + altgr keycode 82 = Hex_0 + alt keycode 82 = Ascii_0 +keycode 83 = KP_Comma + altgr control keycode 83 = Boot + control alt keycode 83 = Boot +keycode 84 = Last_Console +keycode 85 = +keycode 86 = less greater bar + alt keycode 86 = Meta_less + shift alt keycode 86 = Meta_greater + altgr alt keycode 86 = Meta_bar +keycode 87 = F11 F23 Console_23 F35 + alt keycode 87 = Console_11 + control alt keycode 87 = Console_11 +keycode 88 = F12 F24 Console_24 F36 + alt keycode 88 = Console_12 + control alt keycode 88 = Console_12 +keycode 89 = +keycode 90 = +keycode 91 = +keycode 92 = +keycode 93 = +keycode 94 = +keycode 95 = +keycode 96 = KP_Enter + altgr keycode 96 = Hex_F +keycode 97 = Control +keycode 98 = KP_Divide + altgr keycode 98 = Hex_B +keycode 99 = Compose + control keycode 99 = Control_backslash + alt keycode 99 = Control_backslash + control alt keycode 99 = Meta_Control_backslash +keycode 100 = AltGr + alt keycode 100 = Compose +keycode 101 = Break +keycode 102 = Find +keycode 103 = Up + alt keycode 103 = KeyboardSignal +keycode 104 = Prior + shift keycode 104 = Scroll_Backward +keycode 105 = Left + alt keycode 105 = Decr_Console +keycode 106 = Right + alt keycode 106 = Incr_Console +keycode 107 = Select +keycode 108 = Down +keycode 109 = Next + shift keycode 109 = Scroll_Forward +keycode 110 = Insert +keycode 111 = Remove + altgr control keycode 111 = Boot + control alt keycode 111 = Boot +keycode 112 = Macro + altgr control keycode 112 = VoidSymbol + shift alt keycode 112 = VoidSymbol + altgr alt keycode 112 = VoidSymbol +keycode 113 = F13 + altgr control keycode 113 = VoidSymbol + shift alt keycode 113 = VoidSymbol + altgr alt keycode 113 = VoidSymbol +keycode 114 = F14 + altgr control keycode 114 = VoidSymbol + shift alt keycode 114 = VoidSymbol + altgr alt keycode 114 = VoidSymbol +keycode 115 = Help + altgr control keycode 115 = VoidSymbol + shift alt keycode 115 = VoidSymbol + altgr alt keycode 115 = VoidSymbol +keycode 116 = Do + altgr control keycode 116 = VoidSymbol + shift alt keycode 116 = VoidSymbol + altgr alt keycode 116 = VoidSymbol +keycode 117 = F17 + altgr control keycode 117 = VoidSymbol + shift alt keycode 117 = VoidSymbol + altgr alt keycode 117 = VoidSymbol +keycode 118 = KP_MinPlus + altgr control keycode 118 = VoidSymbol + shift alt keycode 118 = VoidSymbol + altgr alt keycode 118 = VoidSymbol +keycode 119 = Pause +keycode 120 = +keycode 121 = +keycode 122 = +keycode 123 = +keycode 124 = +keycode 125 = +keycode 126 = +keycode 127 = +keycode 128 = nul + altgr control keycode 128 = VoidSymbol + shift alt keycode 128 = VoidSymbol + altgr alt keycode 128 = VoidSymbol +keycode 129 = nul + altgr control keycode 129 = VoidSymbol + shift alt keycode 129 = VoidSymbol + altgr alt keycode 129 = VoidSymbol +keycode 130 = nul + altgr control keycode 130 = VoidSymbol + shift alt keycode 130 = VoidSymbol + altgr alt keycode 130 = VoidSymbol +keycode 131 = nul + altgr control keycode 131 = VoidSymbol + shift alt keycode 131 = VoidSymbol + altgr alt keycode 131 = VoidSymbol +keycode 132 = nul + altgr control keycode 132 = VoidSymbol + shift alt keycode 132 = VoidSymbol + altgr alt keycode 132 = VoidSymbol +keycode 133 = nul + altgr control keycode 133 = VoidSymbol + shift alt keycode 133 = VoidSymbol + altgr alt keycode 133 = VoidSymbol +keycode 134 = nul + altgr control keycode 134 = VoidSymbol + shift alt keycode 134 = VoidSymbol + altgr alt keycode 134 = VoidSymbol +keycode 135 = nul + altgr control keycode 135 = VoidSymbol + shift alt keycode 135 = VoidSymbol + altgr alt keycode 135 = VoidSymbol +keycode 136 = nul + altgr control keycode 136 = VoidSymbol + shift alt keycode 136 = VoidSymbol + altgr alt keycode 136 = VoidSymbol +keycode 137 = nul + altgr control keycode 137 = VoidSymbol + shift alt keycode 137 = VoidSymbol + altgr alt keycode 137 = VoidSymbol +keycode 138 = nul + altgr control keycode 138 = VoidSymbol + shift alt keycode 138 = VoidSymbol + altgr alt keycode 138 = VoidSymbol +keycode 139 = nul + altgr control keycode 139 = VoidSymbol + shift alt keycode 139 = VoidSymbol + altgr alt keycode 139 = VoidSymbol +keycode 140 = nul + altgr control keycode 140 = VoidSymbol + shift alt keycode 140 = VoidSymbol + altgr alt keycode 140 = VoidSymbol +keycode 141 = nul + altgr control keycode 141 = VoidSymbol + shift alt keycode 141 = VoidSymbol + altgr alt keycode 141 = VoidSymbol +keycode 142 = nul + altgr control keycode 142 = VoidSymbol + shift alt keycode 142 = VoidSymbol + altgr alt keycode 142 = VoidSymbol +keycode 143 = nul + altgr control keycode 143 = VoidSymbol + shift alt keycode 143 = VoidSymbol + altgr alt keycode 143 = VoidSymbol +keycode 144 = nul + altgr control keycode 144 = VoidSymbol + shift alt keycode 144 = VoidSymbol + altgr alt keycode 144 = VoidSymbol +keycode 145 = nul + altgr control keycode 145 = VoidSymbol + shift alt keycode 145 = VoidSymbol + altgr alt keycode 145 = VoidSymbol +keycode 146 = nul + altgr control keycode 146 = VoidSymbol + shift alt keycode 146 = VoidSymbol + altgr alt keycode 146 = VoidSymbol +keycode 147 = nul + altgr control keycode 147 = VoidSymbol + shift alt keycode 147 = VoidSymbol + altgr alt keycode 147 = VoidSymbol +keycode 148 = nul + altgr control keycode 148 = VoidSymbol + shift alt keycode 148 = VoidSymbol + altgr alt keycode 148 = VoidSymbol +keycode 149 = nul + altgr control keycode 149 = VoidSymbol + shift alt keycode 149 = VoidSymbol + altgr alt keycode 149 = VoidSymbol +keycode 150 = nul + altgr control keycode 150 = VoidSymbol + shift alt keycode 150 = VoidSymbol + altgr alt keycode 150 = VoidSymbol +keycode 151 = nul + altgr control keycode 151 = VoidSymbol + shift alt keycode 151 = VoidSymbol + altgr alt keycode 151 = VoidSymbol +keycode 152 = nul + altgr control keycode 152 = VoidSymbol + shift alt keycode 152 = VoidSymbol + altgr alt keycode 152 = VoidSymbol +keycode 153 = nul + altgr control keycode 153 = VoidSymbol + shift alt keycode 153 = VoidSymbol + altgr alt keycode 153 = VoidSymbol +keycode 154 = nul + altgr control keycode 154 = VoidSymbol + shift alt keycode 154 = VoidSymbol + altgr alt keycode 154 = VoidSymbol +keycode 155 = nul + altgr control keycode 155 = VoidSymbol + shift alt keycode 155 = VoidSymbol + altgr alt keycode 155 = VoidSymbol +keycode 156 = nul + altgr control keycode 156 = VoidSymbol + shift alt keycode 156 = VoidSymbol + altgr alt keycode 156 = VoidSymbol +keycode 157 = nul + altgr control keycode 157 = VoidSymbol + shift alt keycode 157 = VoidSymbol + altgr alt keycode 157 = VoidSymbol +keycode 158 = nul + altgr control keycode 158 = VoidSymbol + shift alt keycode 158 = VoidSymbol + altgr alt keycode 158 = VoidSymbol +keycode 159 = nul + altgr control keycode 159 = VoidSymbol + shift alt keycode 159 = VoidSymbol + altgr alt keycode 159 = VoidSymbol +keycode 160 = nul + altgr control keycode 160 = VoidSymbol + shift alt keycode 160 = VoidSymbol + altgr alt keycode 160 = VoidSymbol +keycode 161 = nul + altgr control keycode 161 = VoidSymbol + shift alt keycode 161 = VoidSymbol + altgr alt keycode 161 = VoidSymbol +keycode 162 = nul + altgr control keycode 162 = VoidSymbol + shift alt keycode 162 = VoidSymbol + altgr alt keycode 162 = VoidSymbol +keycode 163 = nul + altgr control keycode 163 = VoidSymbol + shift alt keycode 163 = VoidSymbol + altgr alt keycode 163 = VoidSymbol +keycode 164 = nul + altgr control keycode 164 = VoidSymbol + shift alt keycode 164 = VoidSymbol + altgr alt keycode 164 = VoidSymbol +keycode 165 = nul + altgr control keycode 165 = VoidSymbol + shift alt keycode 165 = VoidSymbol + altgr alt keycode 165 = VoidSymbol +keycode 166 = nul + altgr control keycode 166 = VoidSymbol + shift alt keycode 166 = VoidSymbol + altgr alt keycode 166 = VoidSymbol +keycode 167 = nul + altgr control keycode 167 = VoidSymbol + shift alt keycode 167 = VoidSymbol + altgr alt keycode 167 = VoidSymbol +keycode 168 = nul + altgr control keycode 168 = VoidSymbol + shift alt keycode 168 = VoidSymbol + altgr alt keycode 168 = VoidSymbol +keycode 169 = nul + altgr control keycode 169 = VoidSymbol + shift alt keycode 169 = VoidSymbol + altgr alt keycode 169 = VoidSymbol +keycode 170 = nul + altgr control keycode 170 = VoidSymbol + shift alt keycode 170 = VoidSymbol + altgr alt keycode 170 = VoidSymbol +keycode 171 = nul + altgr control keycode 171 = VoidSymbol + shift alt keycode 171 = VoidSymbol + altgr alt keycode 171 = VoidSymbol +keycode 172 = nul + altgr control keycode 172 = VoidSymbol + shift alt keycode 172 = VoidSymbol + altgr alt keycode 172 = VoidSymbol +keycode 173 = nul + altgr control keycode 173 = VoidSymbol + shift alt keycode 173 = VoidSymbol + altgr alt keycode 173 = VoidSymbol +keycode 174 = nul + altgr control keycode 174 = VoidSymbol + shift alt keycode 174 = VoidSymbol + altgr alt keycode 174 = VoidSymbol +keycode 175 = nul + altgr control keycode 175 = VoidSymbol + shift alt keycode 175 = VoidSymbol + altgr alt keycode 175 = VoidSymbol +keycode 176 = nul + altgr control keycode 176 = VoidSymbol + shift alt keycode 176 = VoidSymbol + altgr alt keycode 176 = VoidSymbol +keycode 177 = nul + altgr control keycode 177 = VoidSymbol + shift alt keycode 177 = VoidSymbol + altgr alt keycode 177 = VoidSymbol +keycode 178 = nul + altgr control keycode 178 = VoidSymbol + shift alt keycode 178 = VoidSymbol + altgr alt keycode 178 = VoidSymbol +keycode 179 = nul + altgr control keycode 179 = VoidSymbol + shift alt keycode 179 = VoidSymbol + altgr alt keycode 179 = VoidSymbol +keycode 180 = nul + altgr control keycode 180 = VoidSymbol + shift alt keycode 180 = VoidSymbol + altgr alt keycode 180 = VoidSymbol +keycode 181 = nul + altgr control keycode 181 = VoidSymbol + shift alt keycode 181 = VoidSymbol + altgr alt keycode 181 = VoidSymbol +keycode 182 = nul + altgr control keycode 182 = VoidSymbol + shift alt keycode 182 = VoidSymbol + altgr alt keycode 182 = VoidSymbol +keycode 183 = nul + altgr control keycode 183 = VoidSymbol + shift alt keycode 183 = VoidSymbol + altgr alt keycode 183 = VoidSymbol +keycode 184 = nul + altgr control keycode 184 = VoidSymbol + shift alt keycode 184 = VoidSymbol + altgr alt keycode 184 = VoidSymbol +keycode 185 = nul + altgr control keycode 185 = VoidSymbol + shift alt keycode 185 = VoidSymbol + altgr alt keycode 185 = VoidSymbol +keycode 186 = nul + altgr control keycode 186 = VoidSymbol + shift alt keycode 186 = VoidSymbol + altgr alt keycode 186 = VoidSymbol +keycode 187 = nul + altgr control keycode 187 = VoidSymbol + shift alt keycode 187 = VoidSymbol + altgr alt keycode 187 = VoidSymbol +keycode 188 = nul + altgr control keycode 188 = VoidSymbol + shift alt keycode 188 = VoidSymbol + altgr alt keycode 188 = VoidSymbol +keycode 189 = nul + altgr control keycode 189 = VoidSymbol + shift alt keycode 189 = VoidSymbol + altgr alt keycode 189 = VoidSymbol +keycode 190 = nul + altgr control keycode 190 = VoidSymbol + shift alt keycode 190 = VoidSymbol + altgr alt keycode 190 = VoidSymbol +keycode 191 = nul + altgr control keycode 191 = VoidSymbol + shift alt keycode 191 = VoidSymbol + altgr alt keycode 191 = VoidSymbol +keycode 192 = nul + altgr control keycode 192 = VoidSymbol + shift alt keycode 192 = VoidSymbol + altgr alt keycode 192 = VoidSymbol +keycode 193 = nul + altgr control keycode 193 = VoidSymbol + shift alt keycode 193 = VoidSymbol + altgr alt keycode 193 = VoidSymbol +keycode 194 = nul + altgr control keycode 194 = VoidSymbol + shift alt keycode 194 = VoidSymbol + altgr alt keycode 194 = VoidSymbol +keycode 195 = nul + altgr control keycode 195 = VoidSymbol + shift alt keycode 195 = VoidSymbol + altgr alt keycode 195 = VoidSymbol +keycode 196 = nul + altgr control keycode 196 = VoidSymbol + shift alt keycode 196 = VoidSymbol + altgr alt keycode 196 = VoidSymbol +keycode 197 = nul + altgr control keycode 197 = VoidSymbol + shift alt keycode 197 = VoidSymbol + altgr alt keycode 197 = VoidSymbol +keycode 198 = nul + altgr control keycode 198 = VoidSymbol + shift alt keycode 198 = VoidSymbol + altgr alt keycode 198 = VoidSymbol +keycode 199 = nul + altgr control keycode 199 = VoidSymbol + shift alt keycode 199 = VoidSymbol + altgr alt keycode 199 = VoidSymbol +keycode 200 = nul + altgr control keycode 200 = VoidSymbol + shift alt keycode 200 = VoidSymbol + altgr alt keycode 200 = VoidSymbol +keycode 201 = nul + altgr control keycode 201 = VoidSymbol + shift alt keycode 201 = VoidSymbol + altgr alt keycode 201 = VoidSymbol +keycode 202 = nul + altgr control keycode 202 = VoidSymbol + shift alt keycode 202 = VoidSymbol + altgr alt keycode 202 = VoidSymbol +keycode 203 = nul + altgr control keycode 203 = VoidSymbol + shift alt keycode 203 = VoidSymbol + altgr alt keycode 203 = VoidSymbol +keycode 204 = nul + altgr control keycode 204 = VoidSymbol + shift alt keycode 204 = VoidSymbol + altgr alt keycode 204 = VoidSymbol +keycode 205 = nul + altgr control keycode 205 = VoidSymbol + shift alt keycode 205 = VoidSymbol + altgr alt keycode 205 = VoidSymbol +keycode 206 = nul + altgr control keycode 206 = VoidSymbol + shift alt keycode 206 = VoidSymbol + altgr alt keycode 206 = VoidSymbol +keycode 207 = nul + altgr control keycode 207 = VoidSymbol + shift alt keycode 207 = VoidSymbol + altgr alt keycode 207 = VoidSymbol +keycode 208 = nul + altgr control keycode 208 = VoidSymbol + shift alt keycode 208 = VoidSymbol + altgr alt keycode 208 = VoidSymbol +keycode 209 = nul + altgr control keycode 209 = VoidSymbol + shift alt keycode 209 = VoidSymbol + altgr alt keycode 209 = VoidSymbol +keycode 210 = nul + altgr control keycode 210 = VoidSymbol + shift alt keycode 210 = VoidSymbol + altgr alt keycode 210 = VoidSymbol +keycode 211 = nul + altgr control keycode 211 = VoidSymbol + shift alt keycode 211 = VoidSymbol + altgr alt keycode 211 = VoidSymbol +keycode 212 = nul + altgr control keycode 212 = VoidSymbol + shift alt keycode 212 = VoidSymbol + altgr alt keycode 212 = VoidSymbol +keycode 213 = nul + altgr control keycode 213 = VoidSymbol + shift alt keycode 213 = VoidSymbol + altgr alt keycode 213 = VoidSymbol +keycode 214 = nul + altgr control keycode 214 = VoidSymbol + shift alt keycode 214 = VoidSymbol + altgr alt keycode 214 = VoidSymbol +keycode 215 = nul + altgr control keycode 215 = VoidSymbol + shift alt keycode 215 = VoidSymbol + altgr alt keycode 215 = VoidSymbol +keycode 216 = nul + altgr control keycode 216 = VoidSymbol + shift alt keycode 216 = VoidSymbol + altgr alt keycode 216 = VoidSymbol +keycode 217 = nul + altgr control keycode 217 = VoidSymbol + shift alt keycode 217 = VoidSymbol + altgr alt keycode 217 = VoidSymbol +keycode 218 = nul + altgr control keycode 218 = VoidSymbol + shift alt keycode 218 = VoidSymbol + altgr alt keycode 218 = VoidSymbol +keycode 219 = nul + altgr control keycode 219 = VoidSymbol + shift alt keycode 219 = VoidSymbol + altgr alt keycode 219 = VoidSymbol +keycode 220 = nul + altgr control keycode 220 = VoidSymbol + shift alt keycode 220 = VoidSymbol + altgr alt keycode 220 = VoidSymbol +keycode 221 = nul + altgr control keycode 221 = VoidSymbol + shift alt keycode 221 = VoidSymbol + altgr alt keycode 221 = VoidSymbol +keycode 222 = nul + altgr control keycode 222 = VoidSymbol + shift alt keycode 222 = VoidSymbol + altgr alt keycode 222 = VoidSymbol +keycode 223 = nul + altgr control keycode 223 = VoidSymbol + shift alt keycode 223 = VoidSymbol + altgr alt keycode 223 = VoidSymbol +keycode 224 = nul + altgr control keycode 224 = VoidSymbol + shift alt keycode 224 = VoidSymbol + altgr alt keycode 224 = VoidSymbol +keycode 225 = nul + altgr control keycode 225 = VoidSymbol + shift alt keycode 225 = VoidSymbol + altgr alt keycode 225 = VoidSymbol +keycode 226 = nul + altgr control keycode 226 = VoidSymbol + shift alt keycode 226 = VoidSymbol + altgr alt keycode 226 = VoidSymbol +keycode 227 = nul + altgr control keycode 227 = VoidSymbol + shift alt keycode 227 = VoidSymbol + altgr alt keycode 227 = VoidSymbol +keycode 228 = nul + altgr control keycode 228 = VoidSymbol + shift alt keycode 228 = VoidSymbol + altgr alt keycode 228 = VoidSymbol +keycode 229 = nul + altgr control keycode 229 = VoidSymbol + shift alt keycode 229 = VoidSymbol + altgr alt keycode 229 = VoidSymbol +keycode 230 = nul + altgr control keycode 230 = VoidSymbol + shift alt keycode 230 = VoidSymbol + altgr alt keycode 230 = VoidSymbol +keycode 231 = nul + altgr control keycode 231 = VoidSymbol + shift alt keycode 231 = VoidSymbol + altgr alt keycode 231 = VoidSymbol +keycode 232 = nul + altgr control keycode 232 = VoidSymbol + shift alt keycode 232 = VoidSymbol + altgr alt keycode 232 = VoidSymbol +keycode 233 = nul + altgr control keycode 233 = VoidSymbol + shift alt keycode 233 = VoidSymbol + altgr alt keycode 233 = VoidSymbol +keycode 234 = nul + altgr control keycode 234 = VoidSymbol + shift alt keycode 234 = VoidSymbol + altgr alt keycode 234 = VoidSymbol +keycode 235 = nul + altgr control keycode 235 = VoidSymbol + shift alt keycode 235 = VoidSymbol + altgr alt keycode 235 = VoidSymbol +keycode 236 = nul + altgr control keycode 236 = VoidSymbol + shift alt keycode 236 = VoidSymbol + altgr alt keycode 236 = VoidSymbol +keycode 237 = nul + altgr control keycode 237 = VoidSymbol + shift alt keycode 237 = VoidSymbol + altgr alt keycode 237 = VoidSymbol +keycode 238 = nul + altgr control keycode 238 = VoidSymbol + shift alt keycode 238 = VoidSymbol + altgr alt keycode 238 = VoidSymbol +keycode 239 = nul + altgr control keycode 239 = VoidSymbol + shift alt keycode 239 = VoidSymbol + altgr alt keycode 239 = VoidSymbol +keycode 240 = nul + altgr control keycode 240 = VoidSymbol + shift alt keycode 240 = VoidSymbol + altgr alt keycode 240 = VoidSymbol +keycode 241 = nul + altgr control keycode 241 = VoidSymbol + shift alt keycode 241 = VoidSymbol + altgr alt keycode 241 = VoidSymbol +keycode 242 = nul + altgr control keycode 242 = VoidSymbol + shift alt keycode 242 = VoidSymbol + altgr alt keycode 242 = VoidSymbol +keycode 243 = nul + altgr control keycode 243 = VoidSymbol + shift alt keycode 243 = VoidSymbol + altgr alt keycode 243 = VoidSymbol +keycode 244 = nul + altgr control keycode 244 = VoidSymbol + shift alt keycode 244 = VoidSymbol + altgr alt keycode 244 = VoidSymbol +keycode 245 = nul + altgr control keycode 245 = VoidSymbol + shift alt keycode 245 = VoidSymbol + altgr alt keycode 245 = VoidSymbol +keycode 246 = nul + altgr control keycode 246 = VoidSymbol + shift alt keycode 246 = VoidSymbol + altgr alt keycode 246 = VoidSymbol +keycode 247 = nul + altgr control keycode 247 = VoidSymbol + shift alt keycode 247 = VoidSymbol + altgr alt keycode 247 = VoidSymbol +keycode 248 = nul + altgr control keycode 248 = VoidSymbol + shift alt keycode 248 = VoidSymbol + altgr alt keycode 248 = VoidSymbol +keycode 249 = nul + altgr control keycode 249 = VoidSymbol + shift alt keycode 249 = VoidSymbol + altgr alt keycode 249 = VoidSymbol +keycode 250 = nul + altgr control keycode 250 = VoidSymbol + shift alt keycode 250 = VoidSymbol + altgr alt keycode 250 = VoidSymbol +keycode 251 = nul + altgr control keycode 251 = VoidSymbol + shift alt keycode 251 = VoidSymbol + altgr alt keycode 251 = VoidSymbol +keycode 252 = nul + altgr control keycode 252 = VoidSymbol + shift alt keycode 252 = VoidSymbol + altgr alt keycode 252 = VoidSymbol +keycode 253 = nul + altgr control keycode 253 = VoidSymbol + shift alt keycode 253 = VoidSymbol + altgr alt keycode 253 = VoidSymbol +keycode 254 = nul + altgr control keycode 254 = VoidSymbol + shift alt keycode 254 = VoidSymbol + altgr alt keycode 254 = VoidSymbol +keycode 255 = nul + altgr control keycode 255 = VoidSymbol + shift alt keycode 255 = VoidSymbol + altgr alt keycode 255 = VoidSymbol +string F1 = "\033[[A" +string F2 = "\033[[B" +string F3 = "\033[[C" +string F4 = "\033[[D" +string F5 = "\033[[E" +string F6 = "\033[17~" +string F7 = "\033[18~" +string F8 = "\033[19~" +string F9 = "\033[20~" +string F10 = "\033[21~" +string F11 = "\033[23~" +string F12 = "\033[24~" +string F13 = "\033[25~" +string F14 = "\033[26~" +string F15 = "\033[28~" +string F16 = "\033[29~" +string F17 = "\033[31~" +string F18 = "\033[32~" +string F19 = "\033[33~" +string F20 = "\033[34~" +string Find = "\033[1~" +string Insert = "\033[2~" +string Remove = "\033[3~" +string Select = "\033[4~" +string Prior = "\033[5~" +string Next = "\033[6~" +string Macro = "\033[M" +string Pause = "\033[P" +compose '`' 'A' to U+00c0 +compose '`' 'a' to U+00e0 +compose '\'' 'A' to U+00c1 +compose '\'' 'a' to U+00e1 +compose '^' 'A' to U+00c2 +compose '^' 'a' to U+00e2 +compose '~' 'A' to U+00c3 +compose '~' 'a' to U+00e3 +compose '"' 'A' to U+00c4 +compose '"' 'a' to U+00e4 +compose '-' 'a' to U+00aa +compose '-' 'A' to U+00aa +compose 'O' 'A' to U+00c5 +compose 'o' 'a' to U+00e5 +compose '0' 'A' to U+00c5 +compose '0' 'a' to U+00e5 +compose 'A' 'A' to U+00c5 +compose 'a' 'a' to U+00e5 +compose '°' 'A' to U+00c5 +compose '°' 'a' to U+00e5 +compose 'A' 'E' to U+00c6 +compose 'a' 'e' to U+00e6 +compose ',' 'C' to U+00c7 +compose ',' 'c' to U+00e7 +compose '^' 'C' to U+00c7 +compose '^' 'c' to U+00e7 +compose '`' 'E' to U+00c8 +compose '`' 'e' to U+00e8 +compose '\'' 'E' to U+00c9 +compose '\'' 'e' to U+00e9 +compose '^' 'E' to U+00ca +compose '^' 'e' to U+00ea +compose '"' 'E' to U+00cb +compose '"' 'e' to U+00eb +compose '`' 'I' to U+00cc +compose '`' 'i' to U+00ec +compose '\'' 'I' to U+00cd +compose '\'' 'i' to U+00ed +compose '^' 'I' to U+00ce +compose '^' 'i' to U+00ee +compose '"' 'I' to U+00cf +compose '"' 'i' to U+00ef +compose '-' 'D' to U+00d0 +compose '-' 'd' to U+00f0 +compose '^' 'D' to U+00d0 +compose '^' 'd' to U+00f0 +compose '~' 'N' to U+00d1 +compose '~' 'n' to U+00f1 +compose '^' 'N' to U+00d1 +compose '^' 'n' to U+00f1 +compose '`' 'O' to U+00d2 +compose '`' 'o' to U+00f2 +compose '\'' 'O' to U+00d3 +compose '\'' 'o' to U+00f3 +compose '^' 'O' to U+00d4 +compose '^' 'o' to U+00f4 +compose '~' 'O' to U+00d5 +compose '~' 'o' to U+00f5 +compose '"' 'O' to U+00d6 +compose '"' 'o' to U+00f6 +compose '/' 'O' to U+00d8 +compose '/' 'o' to U+00f8 +compose '-' 'o' to U+00ba +compose '-' 'O' to U+00ba +compose '`' 'U' to U+00d9 +compose '`' 'u' to U+00f9 +compose '\'' 'U' to U+00da +compose '\'' 'u' to U+00fa +compose '^' 'U' to U+00db +compose '^' 'u' to U+00fb +compose '"' 'U' to U+00dc +compose '"' 'u' to U+00fc +compose '\'' 'Y' to U+00dd +compose '\'' 'y' to U+00fd +compose 'T' 'H' to U+00de +compose 't' 'h' to U+00fe +compose 's' 's' to U+00df +compose '"' 'y' to U+00ff +compose 's' 'z' to U+00df +compose 'n' 'n' to U+00f1 +compose 'n' 'h' to U+00f1 +compose 'N' 'Y' to U+00d1 +compose 'N' 'N' to U+00d1 +compose 'N' 'H' to U+00d1 +compose 'N' 'y' to U+00d1 +compose 'N' 'n' to U+00d1 +compose 'N' 'h' to U+00d1 +compose '-' 'L' to U+00a3 +compose '<' '<' to U+00ab +compose '>' '>' to U+00bb +compose '?' '?' to U+00bf +compose '^' '?' to U+00bf +compose '!' '!' to U+00a1 +compose '^' '!' to U+00a1 +compose '^' '1' to U+00b9 +compose '^' '2' to U+00b2 +compose '^' '3' to U+00b3 +compose '+' '-' to U+00b1 +compose 'c' '=' to U+00a2 +compose 'c' '/' to U+00a2 +compose '/' 'c' to U+00a2 +compose '-' 'c' to U+00a2 +compose '-' 'C' to U+00a2 +compose '|' 'c' to U+00a2 +compose '|' 'C' to U+00a2 +compose 'L' '=' to U+00a3 +compose '-' 'L' to U+00a3 +compose '-' 'l' to U+00a3 +compose '^' '*' to U+00d7 +compose '^' 'x' to U+00d7 +compose 'x' 'x' to U+00d7 +compose '^' '.' to U+00b7 +compose '.' '.' to U+00b7 +compose '^' '/' to U+00f7 +compose '^' ':' to U+00f7 +compose '-' ':' to U+00f7 +compose ':' '-' to U+00f7 +compose 'Y' '=' to U+00a5 +compose '=' 'Y' to U+00a5 +compose '-' 'Y' to U+00a5 +compose '-' 'l' to U+00a5 +compose '(' 'c' to U+00a9 +compose '"' 'c' to U+00a9 +compose 'O' 'C' to U+00a9 +compose '(' 'C' to U+00a9 +compose 'C' ')' to U+00a9 +compose '-' 'a' to U+00aa +compose '-' 'A' to U+00aa +compose '-' 'o' to U+00ba +compose '-' 'O' to U+00ba +compose '(' 'r' to U+00ae +compose '"' 'r' to U+00ae +compose 'O' 'R' to U+00ae +compose '(' 'R' to U+00ae +compose 'R' ')' to U+00ae +compose 'm' 'u' to U+00b5 +compose 'P' 'P' to U+00b6 +compose '1' '4' to U+00bc +compose '1' '2' to U+00bd +compose '3' '4' to U+00be +compose 'e' '=' to U+00a4 +compose '-' 'e' to U+00a4 +compose '-' 'E' to U+00a4 +compose '=' 'E' to U+00a4 +compose 'v' 'S' to U+00a6 +compose '^' 'S' to U+00a6 +compose 'v' 's' to U+00a8 +compose '^' 's' to U+00a8 +compose 'v' 'Z' to U+00b4 +compose '^' 'Z' to U+00b4 +compose 'v' 'z' to U+00b8 +compose '^' 'z' to U+00b8 +compose 'O' 'E' to U+00bc +compose 'O' 'e' to U+00bc +compose 'o' 'e' to U+00bd +compose '"' 'Y' to U+00be +compose 'i' 'j' to U+00ff +compose 'I' 'J' to U+00be diff --git a/remote/modules/swiss/data/opt/openslx/keymaps/german_qwertz_keyboard_translation.map b/remote/modules/swiss/data/opt/openslx/keymaps/german_qwertz_keyboard_translation.map new file mode 100644 index 00000000..d5069876 --- /dev/null +++ b/remote/modules/swiss/data/opt/openslx/keymaps/german_qwertz_keyboard_translation.map @@ -0,0 +1,809 @@ +keymaps 0-2,4-6,8-10,12 +keycode 1 = Escape Escape + alt keycode 1 = Meta_Escape + shift alt keycode 1 = Meta_Escape +keycode 2 = one exclam + alt keycode 2 = Meta_one + shift alt keycode 2 = Meta_exclam +keycode 3 = two quotedbl twosuperior nul + alt keycode 3 = Meta_two + shift alt keycode 3 = Meta_quotedbl + control alt keycode 3 = Meta_nul +keycode 4 = three section threesuperior Escape + alt keycode 4 = Meta_three + control alt keycode 4 = Meta_Escape +keycode 5 = four dollar + alt keycode 5 = Meta_four + shift alt keycode 5 = Meta_dollar +keycode 6 = five percent + alt keycode 6 = Meta_five + shift alt keycode 6 = Meta_percent +keycode 7 = six ampersand + control keycode 7 = Control_asciicircum + alt keycode 7 = Meta_six + shift alt keycode 7 = Meta_ampersand +keycode 8 = seven slash braceleft + alt keycode 8 = Meta_seven + shift alt keycode 8 = Meta_slash + altgr alt keycode 8 = Meta_braceleft +keycode 9 = eight parenleft bracketleft + alt keycode 9 = Meta_eight + shift alt keycode 9 = Meta_parenleft + altgr alt keycode 9 = Meta_bracketleft +keycode 10 = nine parenright bracketright + altgr control keycode 10 = Control_bracketright + alt keycode 10 = Meta_nine + shift alt keycode 10 = Meta_parenright + altgr alt keycode 10 = Meta_bracketright +keycode 11 = zero equal braceright + alt keycode 11 = Meta_zero + shift alt keycode 11 = Meta_equal + altgr alt keycode 11 = Meta_braceright +keycode 12 = ssharp question backslash + altgr control keycode 12 = Control_backslash + shift alt keycode 12 = Meta_question + altgr alt keycode 12 = Meta_backslash +keycode 13 = apostrophe grave + alt keycode 13 = 0x08b4 + shift alt keycode 13 = Meta_grave +keycode 14 = Delete Delete + alt keycode 14 = Meta_Delete + shift alt keycode 14 = Meta_Delete +keycode 15 = Tab Meta_Tab + alt keycode 15 = Meta_Tab +keycode 16 = +q +Q at Control_q Control_q nul Meta_q Meta_Q Meta_at Meta_Control_q +keycode 17 = w +keycode 18 = +e +E currency Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_Control_e +keycode 19 = r +keycode 20 = t +keycode 21 = z +keycode 22 = u +keycode 23 = i +keycode 24 = o +keycode 25 = p +keycode 26 = +udiaeresis +Udiaeresis +keycode 27 = plus asterisk asciitilde + alt keycode 27 = Meta_plus + shift alt keycode 27 = Meta_asterisk +keycode 28 = Return + alt keycode 28 = Meta_Control_m +keycode 29 = Control +keycode 30 = a +keycode 31 = s +keycode 32 = d +keycode 33 = f +keycode 34 = g +keycode 35 = h +keycode 36 = j +keycode 37 = k +keycode 38 = l +keycode 39 = +odiaeresis +Odiaeresis +keycode 40 = +adiaeresis +Adiaeresis +keycode 41 = asciicircum degree Meta_asciicircum Control_asciicircum + control alt keycode 41 = Meta_Control_asciicircum +keycode 42 = Shift +keycode 43 = numbersign apostrophe + alt keycode 43 = Meta_numbersign + shift alt keycode 43 = Meta_apostrophe +keycode 44 = y +keycode 45 = x +keycode 46 = +c +C cent Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_Control_c +keycode 47 = v +keycode 48 = b +keycode 49 = n +keycode 50 = +m +M mu Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_Control_m +keycode 51 = comma semicolon + alt keycode 51 = Meta_comma + shift alt keycode 51 = Meta_semicolon +keycode 52 = period colon + alt keycode 52 = Meta_period + shift alt keycode 52 = Meta_colon +keycode 53 = minus underscore Meta_minus + shift control keycode 53 = Control_underscore + alt keycode 53 = Meta_minus + shift alt keycode 53 = Meta_underscore +keycode 54 = Shift +keycode 55 = KP_Multiply + altgr keycode 55 = Hex_C +keycode 56 = Alt +keycode 57 = space space Meta_space nul + alt keycode 57 = Meta_space + shift alt keycode 57 = Meta_space + control alt keycode 57 = Meta_nul +keycode 58 = Caps_Lock +keycode 59 = F1 F13 Console_13 F25 + alt keycode 59 = Console_1 + control alt keycode 59 = Console_1 +keycode 60 = F2 F14 Console_14 F26 + alt keycode 60 = Console_2 + control alt keycode 60 = Console_2 +keycode 61 = F3 F15 Console_15 F27 + alt keycode 61 = Console_3 + control alt keycode 61 = Console_3 +keycode 62 = F4 F16 Console_16 F28 + alt keycode 62 = Console_4 + control alt keycode 62 = Console_4 +keycode 63 = F5 F17 Console_17 F29 + alt keycode 63 = Console_5 + control alt keycode 63 = Console_5 +keycode 64 = F6 F18 Console_18 F30 + alt keycode 64 = Console_6 + control alt keycode 64 = Console_6 +keycode 65 = F7 F19 Console_19 F31 + alt keycode 65 = Console_7 + control alt keycode 65 = Console_7 +keycode 66 = F8 F20 Console_20 F32 + alt keycode 66 = Console_8 + control alt keycode 66 = Console_8 +keycode 67 = F9 F21 Console_21 F33 + alt keycode 67 = Console_9 + control alt keycode 67 = Console_9 +keycode 68 = F10 F22 Console_22 F34 + alt keycode 68 = Console_10 + control alt keycode 68 = Console_10 +keycode 69 = Num_Lock + altgr keycode 69 = Hex_A +keycode 70 = Scroll_Lock Show_Memory Show_Registers Show_State + alt keycode 70 = Scroll_Lock +keycode 71 = KP_7 + altgr keycode 71 = Hex_7 + alt keycode 71 = Ascii_7 +keycode 72 = KP_8 + altgr keycode 72 = Hex_8 + alt keycode 72 = Ascii_8 +keycode 73 = KP_9 + altgr keycode 73 = Hex_9 + alt keycode 73 = Ascii_9 +keycode 74 = KP_Subtract + altgr keycode 74 = Hex_D +keycode 75 = KP_4 + altgr keycode 75 = Hex_4 + alt keycode 75 = Ascii_4 +keycode 76 = KP_5 + altgr keycode 76 = Hex_5 + alt keycode 76 = Ascii_5 +keycode 77 = KP_6 + altgr keycode 77 = Hex_6 + alt keycode 77 = Ascii_6 +keycode 78 = KP_Add + altgr keycode 78 = Hex_E +keycode 79 = KP_1 + altgr keycode 79 = Hex_1 + alt keycode 79 = Ascii_1 +keycode 80 = KP_2 + altgr keycode 80 = Hex_2 + alt keycode 80 = Ascii_2 +keycode 81 = KP_3 + altgr keycode 81 = Hex_3 + alt keycode 81 = Ascii_3 +keycode 82 = KP_0 + altgr keycode 82 = Hex_0 + alt keycode 82 = Ascii_0 +keycode 83 = KP_Comma + altgr control keycode 83 = Boot + control alt keycode 83 = Boot +keycode 84 = Last_Console +keycode 85 = +keycode 86 = less greater bar + alt keycode 86 = Meta_less + shift alt keycode 86 = Meta_greater + altgr alt keycode 86 = Meta_bar +keycode 87 = F11 F23 Console_23 F35 + alt keycode 87 = Console_11 + control alt keycode 87 = Console_11 +keycode 88 = F12 F24 Console_24 F36 + alt keycode 88 = Console_12 + control alt keycode 88 = Console_12 +keycode 89 = +keycode 90 = +keycode 91 = +keycode 92 = +keycode 93 = +keycode 94 = +keycode 95 = +keycode 96 = KP_Enter + altgr keycode 96 = Hex_F +keycode 97 = Control +keycode 98 = KP_Divide + altgr keycode 98 = Hex_B +keycode 99 = Compose + control keycode 99 = Control_backslash + alt keycode 99 = Control_backslash + control alt keycode 99 = Meta_Control_backslash +keycode 100 = AltGr + alt keycode 100 = Compose +keycode 101 = Break +keycode 102 = Find +keycode 103 = Up + alt keycode 103 = KeyboardSignal +keycode 104 = Prior + shift keycode 104 = Scroll_Backward +keycode 105 = Left + alt keycode 105 = Decr_Console +keycode 106 = Right + alt keycode 106 = Incr_Console +keycode 107 = Select +keycode 108 = Down +keycode 109 = Next + shift keycode 109 = Scroll_Forward +keycode 110 = Insert +keycode 111 = Remove + altgr control keycode 111 = Boot + control alt keycode 111 = Boot +keycode 112 = Macro + altgr control keycode 112 = VoidSymbol + shift alt keycode 112 = VoidSymbol + altgr alt keycode 112 = VoidSymbol +keycode 113 = F13 + altgr control keycode 113 = VoidSymbol + shift alt keycode 113 = VoidSymbol + altgr alt keycode 113 = VoidSymbol +keycode 114 = F14 + altgr control keycode 114 = VoidSymbol + shift alt keycode 114 = VoidSymbol + altgr alt keycode 114 = VoidSymbol +keycode 115 = Help + altgr control keycode 115 = VoidSymbol + shift alt keycode 115 = VoidSymbol + altgr alt keycode 115 = VoidSymbol +keycode 116 = Do + altgr control keycode 116 = VoidSymbol + shift alt keycode 116 = VoidSymbol + altgr alt keycode 116 = VoidSymbol +keycode 117 = F17 + altgr control keycode 117 = VoidSymbol + shift alt keycode 117 = VoidSymbol + altgr alt keycode 117 = VoidSymbol +keycode 118 = KP_MinPlus + altgr control keycode 118 = VoidSymbol + shift alt keycode 118 = VoidSymbol + altgr alt keycode 118 = VoidSymbol +keycode 119 = Pause +keycode 120 = +keycode 121 = +keycode 122 = +keycode 123 = +keycode 124 = +keycode 125 = +keycode 126 = +keycode 127 = +keycode 128 = nul + altgr control keycode 128 = VoidSymbol + shift alt keycode 128 = VoidSymbol + altgr alt keycode 128 = VoidSymbol +keycode 129 = nul + altgr control keycode 129 = VoidSymbol + shift alt keycode 129 = VoidSymbol + altgr alt keycode 129 = VoidSymbol +keycode 130 = nul + altgr control keycode 130 = VoidSymbol + shift alt keycode 130 = VoidSymbol + altgr alt keycode 130 = VoidSymbol +keycode 131 = nul + altgr control keycode 131 = VoidSymbol + shift alt keycode 131 = VoidSymbol + altgr alt keycode 131 = VoidSymbol +keycode 132 = nul + altgr control keycode 132 = VoidSymbol + shift alt keycode 132 = VoidSymbol + altgr alt keycode 132 = VoidSymbol +keycode 133 = nul + altgr control keycode 133 = VoidSymbol + shift alt keycode 133 = VoidSymbol + altgr alt keycode 133 = VoidSymbol +keycode 134 = nul + altgr control keycode 134 = VoidSymbol + shift alt keycode 134 = VoidSymbol + altgr alt keycode 134 = VoidSymbol +keycode 135 = nul + altgr control keycode 135 = VoidSymbol + shift alt keycode 135 = VoidSymbol + altgr alt keycode 135 = VoidSymbol +keycode 136 = nul + altgr control keycode 136 = VoidSymbol + shift alt keycode 136 = VoidSymbol + altgr alt keycode 136 = VoidSymbol +keycode 137 = nul + altgr control keycode 137 = VoidSymbol + shift alt keycode 137 = VoidSymbol + altgr alt keycode 137 = VoidSymbol +keycode 138 = nul + altgr control keycode 138 = VoidSymbol + shift alt keycode 138 = VoidSymbol + altgr alt keycode 138 = VoidSymbol +keycode 139 = nul + altgr control keycode 139 = VoidSymbol + shift alt keycode 139 = VoidSymbol + altgr alt keycode 139 = VoidSymbol +keycode 140 = nul + altgr control keycode 140 = VoidSymbol + shift alt keycode 140 = VoidSymbol + altgr alt keycode 140 = VoidSymbol +keycode 141 = nul + altgr control keycode 141 = VoidSymbol + shift alt keycode 141 = VoidSymbol + altgr alt keycode 141 = VoidSymbol +keycode 142 = nul + altgr control keycode 142 = VoidSymbol + shift alt keycode 142 = VoidSymbol + altgr alt keycode 142 = VoidSymbol +keycode 143 = nul + altgr control keycode 143 = VoidSymbol + shift alt keycode 143 = VoidSymbol + altgr alt keycode 143 = VoidSymbol +keycode 144 = nul + altgr control keycode 144 = VoidSymbol + shift alt keycode 144 = VoidSymbol + altgr alt keycode 144 = VoidSymbol +keycode 145 = nul + altgr control keycode 145 = VoidSymbol + shift alt keycode 145 = VoidSymbol + altgr alt keycode 145 = VoidSymbol +keycode 146 = nul + altgr control keycode 146 = VoidSymbol + shift alt keycode 146 = VoidSymbol + altgr alt keycode 146 = VoidSymbol +keycode 147 = nul + altgr control keycode 147 = VoidSymbol + shift alt keycode 147 = VoidSymbol + altgr alt keycode 147 = VoidSymbol +keycode 148 = nul + altgr control keycode 148 = VoidSymbol + shift alt keycode 148 = VoidSymbol + altgr alt keycode 148 = VoidSymbol +keycode 149 = nul + altgr control keycode 149 = VoidSymbol + shift alt keycode 149 = VoidSymbol + altgr alt keycode 149 = VoidSymbol +keycode 150 = nul + altgr control keycode 150 = VoidSymbol + shift alt keycode 150 = VoidSymbol + altgr alt keycode 150 = VoidSymbol +keycode 151 = nul + altgr control keycode 151 = VoidSymbol + shift alt keycode 151 = VoidSymbol + altgr alt keycode 151 = VoidSymbol +keycode 152 = nul + altgr control keycode 152 = VoidSymbol + shift alt keycode 152 = VoidSymbol + altgr alt keycode 152 = VoidSymbol +keycode 153 = nul + altgr control keycode 153 = VoidSymbol + shift alt keycode 153 = VoidSymbol + altgr alt keycode 153 = VoidSymbol +keycode 154 = nul + altgr control keycode 154 = VoidSymbol + shift alt keycode 154 = VoidSymbol + altgr alt keycode 154 = VoidSymbol +keycode 155 = nul + altgr control keycode 155 = VoidSymbol + shift alt keycode 155 = VoidSymbol + altgr alt keycode 155 = VoidSymbol +keycode 156 = nul + altgr control keycode 156 = VoidSymbol + shift alt keycode 156 = VoidSymbol + altgr alt keycode 156 = VoidSymbol +keycode 157 = nul + altgr control keycode 157 = VoidSymbol + shift alt keycode 157 = VoidSymbol + altgr alt keycode 157 = VoidSymbol +keycode 158 = nul + altgr control keycode 158 = VoidSymbol + shift alt keycode 158 = VoidSymbol + altgr alt keycode 158 = VoidSymbol +keycode 159 = nul + altgr control keycode 159 = VoidSymbol + shift alt keycode 159 = VoidSymbol + altgr alt keycode 159 = VoidSymbol +keycode 160 = nul + altgr control keycode 160 = VoidSymbol + shift alt keycode 160 = VoidSymbol + altgr alt keycode 160 = VoidSymbol +keycode 161 = nul + altgr control keycode 161 = VoidSymbol + shift alt keycode 161 = VoidSymbol + altgr alt keycode 161 = VoidSymbol +keycode 162 = nul + altgr control keycode 162 = VoidSymbol + shift alt keycode 162 = VoidSymbol + altgr alt keycode 162 = VoidSymbol +keycode 163 = nul + altgr control keycode 163 = VoidSymbol + shift alt keycode 163 = VoidSymbol + altgr alt keycode 163 = VoidSymbol +keycode 164 = nul + altgr control keycode 164 = VoidSymbol + shift alt keycode 164 = VoidSymbol + altgr alt keycode 164 = VoidSymbol +keycode 165 = nul + altgr control keycode 165 = VoidSymbol + shift alt keycode 165 = VoidSymbol + altgr alt keycode 165 = VoidSymbol +keycode 166 = nul + altgr control keycode 166 = VoidSymbol + shift alt keycode 166 = VoidSymbol + altgr alt keycode 166 = VoidSymbol +keycode 167 = nul + altgr control keycode 167 = VoidSymbol + shift alt keycode 167 = VoidSymbol + altgr alt keycode 167 = VoidSymbol +keycode 168 = nul + altgr control keycode 168 = VoidSymbol + shift alt keycode 168 = VoidSymbol + altgr alt keycode 168 = VoidSymbol +keycode 169 = nul + altgr control keycode 169 = VoidSymbol + shift alt keycode 169 = VoidSymbol + altgr alt keycode 169 = VoidSymbol +keycode 170 = nul + altgr control keycode 170 = VoidSymbol + shift alt keycode 170 = VoidSymbol + altgr alt keycode 170 = VoidSymbol +keycode 171 = nul + altgr control keycode 171 = VoidSymbol + shift alt keycode 171 = VoidSymbol + altgr alt keycode 171 = VoidSymbol +keycode 172 = nul + altgr control keycode 172 = VoidSymbol + shift alt keycode 172 = VoidSymbol + altgr alt keycode 172 = VoidSymbol +keycode 173 = nul + altgr control keycode 173 = VoidSymbol + shift alt keycode 173 = VoidSymbol + altgr alt keycode 173 = VoidSymbol +keycode 174 = nul + altgr control keycode 174 = VoidSymbol + shift alt keycode 174 = VoidSymbol + altgr alt keycode 174 = VoidSymbol +keycode 175 = nul + altgr control keycode 175 = VoidSymbol + shift alt keycode 175 = VoidSymbol + altgr alt keycode 175 = VoidSymbol +keycode 176 = nul + altgr control keycode 176 = VoidSymbol + shift alt keycode 176 = VoidSymbol + altgr alt keycode 176 = VoidSymbol +keycode 177 = nul + altgr control keycode 177 = VoidSymbol + shift alt keycode 177 = VoidSymbol + altgr alt keycode 177 = VoidSymbol +keycode 178 = nul + altgr control keycode 178 = VoidSymbol + shift alt keycode 178 = VoidSymbol + altgr alt keycode 178 = VoidSymbol +keycode 179 = nul + altgr control keycode 179 = VoidSymbol + shift alt keycode 179 = VoidSymbol + altgr alt keycode 179 = VoidSymbol +keycode 180 = nul + altgr control keycode 180 = VoidSymbol + shift alt keycode 180 = VoidSymbol + altgr alt keycode 180 = VoidSymbol +keycode 181 = nul + altgr control keycode 181 = VoidSymbol + shift alt keycode 181 = VoidSymbol + altgr alt keycode 181 = VoidSymbol +keycode 182 = nul + altgr control keycode 182 = VoidSymbol + shift alt keycode 182 = VoidSymbol + altgr alt keycode 182 = VoidSymbol +keycode 183 = nul + altgr control keycode 183 = VoidSymbol + shift alt keycode 183 = VoidSymbol + altgr alt keycode 183 = VoidSymbol +keycode 184 = nul + altgr control keycode 184 = VoidSymbol + shift alt keycode 184 = VoidSymbol + altgr alt keycode 184 = VoidSymbol +keycode 185 = nul + altgr control keycode 185 = VoidSymbol + shift alt keycode 185 = VoidSymbol + altgr alt keycode 185 = VoidSymbol +keycode 186 = nul + altgr control keycode 186 = VoidSymbol + shift alt keycode 186 = VoidSymbol + altgr alt keycode 186 = VoidSymbol +keycode 187 = nul + altgr control keycode 187 = VoidSymbol + shift alt keycode 187 = VoidSymbol + altgr alt keycode 187 = VoidSymbol +keycode 188 = nul + altgr control keycode 188 = VoidSymbol + shift alt keycode 188 = VoidSymbol + altgr alt keycode 188 = VoidSymbol +keycode 189 = nul + altgr control keycode 189 = VoidSymbol + shift alt keycode 189 = VoidSymbol + altgr alt keycode 189 = VoidSymbol +keycode 190 = nul + altgr control keycode 190 = VoidSymbol + shift alt keycode 190 = VoidSymbol + altgr alt keycode 190 = VoidSymbol +keycode 191 = nul + altgr control keycode 191 = VoidSymbol + shift alt keycode 191 = VoidSymbol + altgr alt keycode 191 = VoidSymbol +keycode 192 = nul + altgr control keycode 192 = VoidSymbol + shift alt keycode 192 = VoidSymbol + altgr alt keycode 192 = VoidSymbol +keycode 193 = nul + altgr control keycode 193 = VoidSymbol + shift alt keycode 193 = VoidSymbol + altgr alt keycode 193 = VoidSymbol +keycode 194 = nul + altgr control keycode 194 = VoidSymbol + shift alt keycode 194 = VoidSymbol + altgr alt keycode 194 = VoidSymbol +keycode 195 = nul + altgr control keycode 195 = VoidSymbol + shift alt keycode 195 = VoidSymbol + altgr alt keycode 195 = VoidSymbol +keycode 196 = nul + altgr control keycode 196 = VoidSymbol + shift alt keycode 196 = VoidSymbol + altgr alt keycode 196 = VoidSymbol +keycode 197 = nul + altgr control keycode 197 = VoidSymbol + shift alt keycode 197 = VoidSymbol + altgr alt keycode 197 = VoidSymbol +keycode 198 = nul + altgr control keycode 198 = VoidSymbol + shift alt keycode 198 = VoidSymbol + altgr alt keycode 198 = VoidSymbol +keycode 199 = nul + altgr control keycode 199 = VoidSymbol + shift alt keycode 199 = VoidSymbol + altgr alt keycode 199 = VoidSymbol +keycode 200 = nul + altgr control keycode 200 = VoidSymbol + shift alt keycode 200 = VoidSymbol + altgr alt keycode 200 = VoidSymbol +keycode 201 = nul + altgr control keycode 201 = VoidSymbol + shift alt keycode 201 = VoidSymbol + altgr alt keycode 201 = VoidSymbol +keycode 202 = nul + altgr control keycode 202 = VoidSymbol + shift alt keycode 202 = VoidSymbol + altgr alt keycode 202 = VoidSymbol +keycode 203 = nul + altgr control keycode 203 = VoidSymbol + shift alt keycode 203 = VoidSymbol + altgr alt keycode 203 = VoidSymbol +keycode 204 = nul + altgr control keycode 204 = VoidSymbol + shift alt keycode 204 = VoidSymbol + altgr alt keycode 204 = VoidSymbol +keycode 205 = nul + altgr control keycode 205 = VoidSymbol + shift alt keycode 205 = VoidSymbol + altgr alt keycode 205 = VoidSymbol +keycode 206 = nul + altgr control keycode 206 = VoidSymbol + shift alt keycode 206 = VoidSymbol + altgr alt keycode 206 = VoidSymbol +keycode 207 = nul + altgr control keycode 207 = VoidSymbol + shift alt keycode 207 = VoidSymbol + altgr alt keycode 207 = VoidSymbol +keycode 208 = nul + altgr control keycode 208 = VoidSymbol + shift alt keycode 208 = VoidSymbol + altgr alt keycode 208 = VoidSymbol +keycode 209 = nul + altgr control keycode 209 = VoidSymbol + shift alt keycode 209 = VoidSymbol + altgr alt keycode 209 = VoidSymbol +keycode 210 = nul + altgr control keycode 210 = VoidSymbol + shift alt keycode 210 = VoidSymbol + altgr alt keycode 210 = VoidSymbol +keycode 211 = nul + altgr control keycode 211 = VoidSymbol + shift alt keycode 211 = VoidSymbol + altgr alt keycode 211 = VoidSymbol +keycode 212 = nul + altgr control keycode 212 = VoidSymbol + shift alt keycode 212 = VoidSymbol + altgr alt keycode 212 = VoidSymbol +keycode 213 = nul + altgr control keycode 213 = VoidSymbol + shift alt keycode 213 = VoidSymbol + altgr alt keycode 213 = VoidSymbol +keycode 214 = nul + altgr control keycode 214 = VoidSymbol + shift alt keycode 214 = VoidSymbol + altgr alt keycode 214 = VoidSymbol +keycode 215 = nul + altgr control keycode 215 = VoidSymbol + shift alt keycode 215 = VoidSymbol + altgr alt keycode 215 = VoidSymbol +keycode 216 = nul + altgr control keycode 216 = VoidSymbol + shift alt keycode 216 = VoidSymbol + altgr alt keycode 216 = VoidSymbol +keycode 217 = nul + altgr control keycode 217 = VoidSymbol + shift alt keycode 217 = VoidSymbol + altgr alt keycode 217 = VoidSymbol +keycode 218 = nul + altgr control keycode 218 = VoidSymbol + shift alt keycode 218 = VoidSymbol + altgr alt keycode 218 = VoidSymbol +keycode 219 = nul + altgr control keycode 219 = VoidSymbol + shift alt keycode 219 = VoidSymbol + altgr alt keycode 219 = VoidSymbol +keycode 220 = nul + altgr control keycode 220 = VoidSymbol + shift alt keycode 220 = VoidSymbol + altgr alt keycode 220 = VoidSymbol +keycode 221 = nul + altgr control keycode 221 = VoidSymbol + shift alt keycode 221 = VoidSymbol + altgr alt keycode 221 = VoidSymbol +keycode 222 = nul + altgr control keycode 222 = VoidSymbol + shift alt keycode 222 = VoidSymbol + altgr alt keycode 222 = VoidSymbol +keycode 223 = nul + altgr control keycode 223 = VoidSymbol + shift alt keycode 223 = VoidSymbol + altgr alt keycode 223 = VoidSymbol +keycode 224 = nul + altgr control keycode 224 = VoidSymbol + shift alt keycode 224 = VoidSymbol + altgr alt keycode 224 = VoidSymbol +keycode 225 = nul + altgr control keycode 225 = VoidSymbol + shift alt keycode 225 = VoidSymbol + altgr alt keycode 225 = VoidSymbol +keycode 226 = nul + altgr control keycode 226 = VoidSymbol + shift alt keycode 226 = VoidSymbol + altgr alt keycode 226 = VoidSymbol +keycode 227 = nul + altgr control keycode 227 = VoidSymbol + shift alt keycode 227 = VoidSymbol + altgr alt keycode 227 = VoidSymbol +keycode 228 = nul + altgr control keycode 228 = VoidSymbol + shift alt keycode 228 = VoidSymbol + altgr alt keycode 228 = VoidSymbol +keycode 229 = nul + altgr control keycode 229 = VoidSymbol + shift alt keycode 229 = VoidSymbol + altgr alt keycode 229 = VoidSymbol +keycode 230 = nul + altgr control keycode 230 = VoidSymbol + shift alt keycode 230 = VoidSymbol + altgr alt keycode 230 = VoidSymbol +keycode 231 = nul + altgr control keycode 231 = VoidSymbol + shift alt keycode 231 = VoidSymbol + altgr alt keycode 231 = VoidSymbol +keycode 232 = nul + altgr control keycode 232 = VoidSymbol + shift alt keycode 232 = VoidSymbol + altgr alt keycode 232 = VoidSymbol +keycode 233 = nul + altgr control keycode 233 = VoidSymbol + shift alt keycode 233 = VoidSymbol + altgr alt keycode 233 = VoidSymbol +keycode 234 = nul + altgr control keycode 234 = VoidSymbol + shift alt keycode 234 = VoidSymbol + altgr alt keycode 234 = VoidSymbol +keycode 235 = nul + altgr control keycode 235 = VoidSymbol + shift alt keycode 235 = VoidSymbol + altgr alt keycode 235 = VoidSymbol +keycode 236 = nul + altgr control keycode 236 = VoidSymbol + shift alt keycode 236 = VoidSymbol + altgr alt keycode 236 = VoidSymbol +keycode 237 = nul + altgr control keycode 237 = VoidSymbol + shift alt keycode 237 = VoidSymbol + altgr alt keycode 237 = VoidSymbol +keycode 238 = nul + altgr control keycode 238 = VoidSymbol + shift alt keycode 238 = VoidSymbol + altgr alt keycode 238 = VoidSymbol +keycode 239 = nul + altgr control keycode 239 = VoidSymbol + shift alt keycode 239 = VoidSymbol + altgr alt keycode 239 = VoidSymbol +keycode 240 = nul + altgr control keycode 240 = VoidSymbol + shift alt keycode 240 = VoidSymbol + altgr alt keycode 240 = VoidSymbol +keycode 241 = nul + altgr control keycode 241 = VoidSymbol + shift alt keycode 241 = VoidSymbol + altgr alt keycode 241 = VoidSymbol +keycode 242 = nul + altgr control keycode 242 = VoidSymbol + shift alt keycode 242 = VoidSymbol + altgr alt keycode 242 = VoidSymbol +keycode 243 = nul + altgr control keycode 243 = VoidSymbol + shift alt keycode 243 = VoidSymbol + altgr alt keycode 243 = VoidSymbol +keycode 244 = nul + altgr control keycode 244 = VoidSymbol + shift alt keycode 244 = VoidSymbol + altgr alt keycode 244 = VoidSymbol +keycode 245 = nul + altgr control keycode 245 = VoidSymbol + shift alt keycode 245 = VoidSymbol + altgr alt keycode 245 = VoidSymbol +keycode 246 = nul + altgr control keycode 246 = VoidSymbol + shift alt keycode 246 = VoidSymbol + altgr alt keycode 246 = VoidSymbol +keycode 247 = nul + altgr control keycode 247 = VoidSymbol + shift alt keycode 247 = VoidSymbol + altgr alt keycode 247 = VoidSymbol +keycode 248 = nul + altgr control keycode 248 = VoidSymbol + shift alt keycode 248 = VoidSymbol + altgr alt keycode 248 = VoidSymbol +keycode 249 = nul + altgr control keycode 249 = VoidSymbol + shift alt keycode 249 = VoidSymbol + altgr alt keycode 249 = VoidSymbol +keycode 250 = nul + altgr control keycode 250 = VoidSymbol + shift alt keycode 250 = VoidSymbol + altgr alt keycode 250 = VoidSymbol +keycode 251 = nul + altgr control keycode 251 = VoidSymbol + shift alt keycode 251 = VoidSymbol + altgr alt keycode 251 = VoidSymbol +keycode 252 = nul + altgr control keycode 252 = VoidSymbol + shift alt keycode 252 = VoidSymbol + altgr alt keycode 252 = VoidSymbol +keycode 253 = nul + altgr control keycode 253 = VoidSymbol + shift alt keycode 253 = VoidSymbol + altgr alt keycode 253 = VoidSymbol +keycode 254 = nul + altgr control keycode 254 = VoidSymbol + shift alt keycode 254 = VoidSymbol + altgr alt keycode 254 = VoidSymbol +keycode 255 = nul + altgr control keycode 255 = VoidSymbol + shift alt keycode 255 = VoidSymbol + altgr alt keycode 255 = VoidSymbol +string F1 = "\033[[A" +string F2 = "\033[[B" +string F3 = "\033[[C" +string F4 = "\033[[D" +string F5 = "\033[[E" +string F6 = "\033[17~" +string F7 = "\033[18~" +string F8 = "\033[19~" +string F9 = "\033[20~" +string F10 = "\033[21~" +string F11 = "\033[23~" +string F12 = "\033[24~" +string F13 = "\033[25~" +string F14 = "\033[26~" +string F15 = "\033[28~" +string F16 = "\033[29~" +string F17 = "\033[31~" +string F18 = "\033[32~" +string F19 = "\033[33~" +string F20 = "\033[34~" +string Find = "\033[1~" +string Insert = "\033[2~" +string Remove = "\033[3~" +string Select = "\033[4~" +string Prior = "\033[5~" +string Next = "\033[6~" +string Macro = "\033[M" +string Pause = "\033[P" diff --git a/remote/modules/swiss/data/opt/openslx/keymaps/linux-keys-bare.inc b/remote/modules/swiss/data/opt/openslx/keymaps/linux-keys-bare.inc new file mode 100644 index 00000000..64a4ee95 --- /dev/null +++ b/remote/modules/swiss/data/opt/openslx/keymaps/linux-keys-bare.inc @@ -0,0 +1,163 @@ +# Linux-specific (and language-independent) keys +# +# This file describes function keys, console switching keys, +# keypad, cursor keys, and SysRq, ScrollLock, Pause +# +# It does not use the AltGr modifier, so that the user can opt +# to have both Alt keys produce the same effect. +# As a consequence, the Hex_* keys are missing, as are +# control altgr keycode 83 = Boot +# control altgr keycode 111 = Boot +# +# One culture-specific item that will be overridden in many keymaps +# is the KP_Period: many countries have a KP_Comma instead. +# +# One user-preference item will be the function of the Delete key. +# +# Old keyboards have 10 function keys, and keymaps have +# sometimes used shift+F1 = F11, and sometimes shift+F1 = F13. +# Here we assume an enhanced keyboard (with 12 function keys). +# +plain keycode 59 = F1 +plain keycode 60 = F2 +plain keycode 61 = F3 +plain keycode 62 = F4 +plain keycode 63 = F5 +plain keycode 64 = F6 +plain keycode 65 = F7 +plain keycode 66 = F8 +plain keycode 67 = F9 +plain keycode 68 = F10 +plain keycode 87 = F11 +plain keycode 88 = F12 +shift keycode 59 = F13 +shift keycode 60 = F14 +shift keycode 61 = F15 +shift keycode 62 = F16 +shift keycode 63 = F17 +shift keycode 64 = F18 +shift keycode 65 = F19 +shift keycode 66 = F20 +shift keycode 67 = F21 +shift keycode 68 = F22 +shift keycode 87 = F23 +shift keycode 88 = F24 +control keycode 59 = F25 +control keycode 60 = F26 +control keycode 61 = F27 +control keycode 62 = F28 +control keycode 63 = F29 +control keycode 64 = F30 +control keycode 65 = F31 +control keycode 66 = F32 +control keycode 67 = F33 +control keycode 68 = F34 +control keycode 87 = F35 +control keycode 88 = F36 +# +# The canonical assignment for F37-F48 uses +# control shift keycode 59 = F37 +# etc. If you want that, load linux-keys-extd.inc +# +# Both Alt+Fn and Control+Alt+Fn switch to Console n +# (in order to please Linux / dosemu / X). +# Here Consoles 1..12. For 13..24 load linux-keys-extd.inc +# +alt keycode 59 = Console_1 +alt keycode 60 = Console_2 +alt keycode 61 = Console_3 +alt keycode 62 = Console_4 +alt keycode 63 = Console_5 +alt keycode 64 = Console_6 +alt keycode 65 = Console_7 +alt keycode 66 = Console_8 +alt keycode 67 = Console_9 +alt keycode 68 = Console_10 +alt keycode 87 = Console_11 +alt keycode 88 = Console_12 +control alt keycode 59 = Console_1 +control alt keycode 60 = Console_2 +control alt keycode 61 = Console_3 +control alt keycode 62 = Console_4 +control alt keycode 63 = Console_5 +control alt keycode 64 = Console_6 +control alt keycode 65 = Console_7 +control alt keycode 66 = Console_8 +control alt keycode 67 = Console_9 +control alt keycode 68 = Console_10 +control alt keycode 87 = Console_11 +control alt keycode 88 = Console_12 + +# +# Keypad keys +# +keycode 69 = Num_Lock +keycode 98 = KP_Divide +keycode 55 = KP_Multiply +keycode 74 = KP_Subtract +keycode 78 = KP_Add +keycode 96 = KP_Enter +# +keycode 71 = KP_7 +keycode 72 = KP_8 +keycode 73 = KP_9 +keycode 75 = KP_4 +keycode 76 = KP_5 +keycode 77 = KP_6 +keycode 79 = KP_1 +keycode 80 = KP_2 +keycode 81 = KP_3 +keycode 82 = KP_0 +# +keycode 83 = KP_Period # or KP_Comma +control alt keycode 83 = Boot +# +alt keycode 71 = Ascii_7 +alt keycode 72 = Ascii_8 +alt keycode 73 = Ascii_9 +alt keycode 75 = Ascii_4 +alt keycode 76 = Ascii_5 +alt keycode 77 = Ascii_6 +alt keycode 79 = Ascii_1 +alt keycode 80 = Ascii_2 +alt keycode 81 = Ascii_3 +alt keycode 82 = Ascii_0 +# +# The four cursor keys +# +keycode 103 = Up +keycode 105 = Left +keycode 106 = Right +keycode 108 = Down +alt keycode 103 = KeyboardSignal +alt keycode 105 = Decr_Console +alt keycode 106 = Incr_Console +# +# The six edit keys +# +keycode 110 = Insert +keycode 102 = Home # Find +keycode 104 = PageUp # Prior +keycode 111 = Remove +keycode 107 = End # Select +keycode 109 = PageDown # Next +shift keycode 104 = Scroll_Backward +shift keycode 109 = Scroll_Forward +control alt keycode 111 = Boot +# +# The three system keys +# +keycode 84 = Last_Console # Alt+SysRq/PrintScrn +#keycode 99 = VoidSymbol # SysRq/PrintScrn +keycode 99 = Compose # SysRq/PrintScrn +alt keycode 99 = Control_backslash +control keycode 99 = Control_backslash + +plain keycode 70 = Scroll_Lock +shift keycode 70 = Show_Memory +control keycode 70 = Show_State +alt keycode 70 = Show_Registers + +keycode 101 = Break # Ctrl+Break/Pause +keycode 119 = Pause # Break/Pause + diff --git a/remote/modules/swiss/data/opt/openslx/keymaps/linux-with-alt-and-altgr.inc b/remote/modules/swiss/data/opt/openslx/keymaps/linux-with-alt-and-altgr.inc new file mode 100644 index 00000000..71a959e7 --- /dev/null +++ b/remote/modules/swiss/data/opt/openslx/keymaps/linux-with-alt-and-altgr.inc @@ -0,0 +1,29 @@ +include "linux-keys-bare" + +keycode 100 = AltGr +alt keycode 100 = Compose + +altgr keycode 70 = Show_Registers +alt keycode 70 = Scroll_Lock + +control altgr keycode 83 = Boot +control altgr keycode 111 = Boot + +# Hex keypad keys (for giving a Unicode value in 4 hex digits) +# Follow lt.map and assign Hex_A .. Hex_F to keypad border. +altgr keycode 55 = Hex_C +altgr keycode 69 = Hex_A +altgr keycode 71 = Hex_7 +altgr keycode 72 = Hex_8 +altgr keycode 73 = Hex_9 +altgr keycode 74 = Hex_D +altgr keycode 75 = Hex_4 +altgr keycode 76 = Hex_5 +altgr keycode 77 = Hex_6 +altgr keycode 78 = Hex_E +altgr keycode 79 = Hex_1 +altgr keycode 80 = Hex_2 +altgr keycode 81 = Hex_3 +altgr keycode 82 = Hex_0 +altgr keycode 96 = Hex_F +altgr keycode 98 = Hex_B diff --git a/remote/modules/swiss/data/opt/openslx/keymaps/qwertz-layout.inc b/remote/modules/swiss/data/opt/openslx/keymaps/qwertz-layout.inc new file mode 100644 index 00000000..07535dc7 --- /dev/null +++ b/remote/modules/swiss/data/opt/openslx/keymaps/qwertz-layout.inc @@ -0,0 +1,31 @@ +# qwertz-layout +keycode 16 = q +keycode 17 = w +keycode 18 = e +keycode 19 = r +keycode 20 = t +keycode 21 = z +keycode 22 = u +keycode 23 = i +keycode 24 = o +keycode 25 = p +# +keycode 30 = a +keycode 31 = s +keycode 32 = d +keycode 33 = f +keycode 34 = g +keycode 35 = h +keycode 36 = j +keycode 37 = k +keycode 38 = l +# +keycode 44 = y +keycode 45 = x +keycode 46 = c +keycode 47 = v +keycode 48 = b +keycode 49 = n +keycode 50 = m +# +include "compose" diff --git a/remote/modules/swiss/data/opt/openslx/keymaps/qwertz_de_CH-latin1.map b/remote/modules/swiss/data/opt/openslx/keymaps/qwertz_de_CH-latin1.map new file mode 100644 index 00000000..598dc449 --- /dev/null +++ b/remote/modules/swiss/data/opt/openslx/keymaps/qwertz_de_CH-latin1.map @@ -0,0 +1,16 @@ +# de_CH-latin1.map: Swiss German keymap +# Due to Björn Jacke <bjacke@suse.de> + +include "qwertz_fr_CH-latin1.map" + +keycode 26 = udiaeresis egrave bracketleft + control keycode 26 = Escape + alt keycode 26 = Meta_bracketleft +keycode 39 = odiaeresis eacute + alt keycode 39 = Meta_semicolon +keycode 40 = adiaeresis agrave braceleft + control keycode 40 = Control_g + alt keycode 40 = Meta_apostrophe + +# corresponding keys in Swiss French have German umlauts and +# French accented characters exchanged diff --git a/remote/modules/swiss/data/opt/openslx/keymaps/qwertz_fr_CH-latin1.map b/remote/modules/swiss/data/opt/openslx/keymaps/qwertz_fr_CH-latin1.map new file mode 100644 index 00000000..667464e8 --- /dev/null +++ b/remote/modules/swiss/data/opt/openslx/keymaps/qwertz_fr_CH-latin1.map @@ -0,0 +1,86 @@ +# This used to be sf-latin1.map +# Renamed because too many Fins thought this was for them. +keymaps 0-2,4-6,8,12 +include "qwertz-layout" +include "linux-with-alt-and-altgr" +strings as usual + +keycode 1 = Escape Escape + alt keycode 1 = Meta_Escape +keycode 2 = one plus bar + alt keycode 2 = Meta_one +keycode 3 = two quotedbl at + control keycode 3 = nul + alt keycode 3 = Meta_two +keycode 4 = three asterisk numbersign + control keycode 4 = Escape + alt keycode 4 = Meta_three +keycode 5 = four ccedilla degree + control keycode 5 = Control_backslash + alt keycode 5 = Meta_four +keycode 6 = five percent section + control keycode 6 = Control_bracketright + alt keycode 6 = Meta_five +keycode 7 = six ampersand notsign + control keycode 7 = Control_asciicircum + alt keycode 7 = Meta_six +keycode 8 = seven slash bar + control keycode 8 = Control_underscore + alt keycode 8 = Meta_seven +keycode 9 = eight parenleft cent + control keycode 9 = Delete + alt keycode 9 = Meta_eight +keycode 10 = nine parenright + alt keycode 10 = Meta_nine +keycode 11 = zero equal + alt keycode 11 = Meta_zero +keycode 12 = apostrophe question dead_acute + control keycode 12 = Control_underscore + alt keycode 12 = Meta_minus +keycode 13 = dead_circumflex dead_grave dead_tilde + alt keycode 13 = Meta_equal +keycode 14 = Delete Delete + alt keycode 14 = Meta_Delete +keycode 15 = Tab Meta_Tab + alt keycode 15 = Meta_Tab +keycode 26 = egrave udiaeresis bracketleft + control keycode 26 = Escape + alt keycode 26 = Meta_bracketleft +keycode 27 = dead_diaeresis exclam bracketright + control keycode 27 = Control_bracketright + alt keycode 27 = Meta_bracketright +keycode 28 = Return + alt keycode 28 = Meta_Control_m +keycode 29 = Control +keycode 39 = eacute odiaeresis + alt keycode 39 = Meta_semicolon +keycode 40 = agrave adiaeresis braceleft + control keycode 40 = Control_g + alt keycode 40 = Meta_apostrophe +keycode 41 = section degree + control keycode 41 = nul + alt keycode 41 = Meta_grave +keycode 42 = Shift +keycode 43 = dollar sterling braceright + control keycode 43 = Control_backslash + alt keycode 43 = Meta_backslash +keycode 51 = comma semicolon + alt keycode 51 = Meta_comma +keycode 52 = period colon + alt keycode 52 = Meta_period +keycode 53 = minus underscore + control keycode 53 = Delete + alt keycode 53 = Meta_slash + shift control keycode 53 = Control_underscore +keycode 54 = Shift +keycode 56 = Alt +keycode 57 = space space + control keycode 57 = nul + alt keycode 57 = Meta_space +keycode 58 = Caps_Lock +keycode 86 = less greater backslash + alt keycode 86 = Meta_less +keycode 97 = Control +# adapted to X11 keymap +altgr keycode 18 = currency +#altgr keycode 46 = cent diff --git a/remote/modules/swiss/data/opt/openslx/scripts/systemd-load_swiss_keymaps b/remote/modules/swiss/data/opt/openslx/scripts/systemd-load_swiss_keymaps new file mode 100755 index 00000000..aadb7a8b --- /dev/null +++ b/remote/modules/swiss/data/opt/openslx/scripts/systemd-load_swiss_keymaps @@ -0,0 +1,13 @@ +#!/bin/ash +# Script serves as container script for a systemd-call due to the buggyness of several +# loadkeys-implementations <= kbd (Linux keyboard tools) 1.15.3. +# This bug can be detected through failure of the command pipe 'dumpkeys|loadkeys' yielding +# the message "unknown keysym 'compose'. + +loadkeys /opt/openslx/keymaps/qwertz_de_CH-latin1.map # insert a keymap without compose lines +ERR=$? + +# if at this point the second keymap insertion failed we pass the errorlevel to +# systemd - we cannot do more at this point. +exit $ERR + diff --git a/remote/modules/swiss/swiss.build b/remote/modules/swiss/swiss.build new file mode 100644 index 00000000..1f016f6b --- /dev/null +++ b/remote/modules/swiss/swiss.build @@ -0,0 +1,55 @@ +fetch_source() { + : +} + +build() { + CH_LOCALES="de_CH.UTF-8 fr_CH.UTF-8 it_CH.UTF-8" + + # Debian-like + if [ -e "/etc/locale.gen" ] && ! grep -q -E '^\s*de_CH\.UTF-8' "/etc/locale.gen"; then + pinfo "Generating locales..." + echo 'de_CH.UTF-8 UTF-8' >> "/etc/locale.gen" + echo 'fr_CH.UTF-8 UTF-8' >> "/etc/locale.gen" + echo 'it_CH.UTF-8 UTF-8' >> "/etc/locale.gen" + locale-gen || perror "Could not generate locales (debian style)" + fi + + # Ubuntu's version + if [ -d "/var/lib/locales/supported.d" ] && [ ! -d /usr/lib/locale/de_CH.utf8 ]; then + pinfo "Generating locales..." + grep -q -E -r '^\s*de_CH\.UTF-8' "/var/lib/locales/supported.d" || echo 'de_CH.UTF-8 UTF-8' >> "/var/lib/locales/supported.d/openslx" + locale-gen --no-archive --purge "de_CH.UTF-8" || perror "Could not generate locales (ubuntu style)" + fi + if [ -d "/var/lib/locales/supported.d" ] && [ ! -d /usr/lib/locale/fr_CH.utf8 ]; then + pinfo "Generating locales..." + grep -q -E -r '^\s*fr_CH\.UTF-8' "/var/lib/locales/supported.d" || echo 'fr_CH.UTF-8 UTF-8' >> "/var/lib/locales/supported.d/openslx" + locale-gen --no-archive "fr_CH.UTF-8" || perror "Could not generate locales (ubuntu style)" + fi + if [ -d "/var/lib/locales/supported.d" ] && [ ! -d /usr/lib/locale/it_CH.utf8 ]; then + pinfo "Generating locales..." + grep -q -E -r '^\s*it_CH\.UTF-8' "/var/lib/locales/supported.d" || echo 'it_CH.UTF-8 UTF-8' >> "/var/lib/locales/supported.d/openslx" + locale-gen --no-archive "it_CH.UTF-8" || perror "Could not generate locales (ubuntu style)" + fi + + + # Put everything we build or get from the system in build dir + local FILELIST="$MODULE_DIR/list_copy_build" + rm -f "$FILELIST" + + # Copy required directories from source system to build dir + for FILE in ${REQUIRED_DIRECTORIES}; do + [ ! -d "${FILE}" ] && perror "Missing required directory $FILE" + echo ${FILE} >> "${FILELIST}" + done + + # Done collecting file and directory names, copy everything + tarcopy "$(sort -u "$FILELIST")" "$MODULE_BUILD_DIR" + +} + +post_copy() { + for i in LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION; do + add_env $i de_CH.UTF-8 || perror "$i: add_env function failed." + done +} + diff --git a/remote/modules/swiss/swiss.conf b/remote/modules/swiss/swiss.conf new file mode 100644 index 00000000..e2f82123 --- /dev/null +++ b/remote/modules/swiss/swiss.conf @@ -0,0 +1,5 @@ +REQUIRED_BINARIES="" +REQUIRED_FILES="" +REQUIRED_DIRECTORIES=" + /usr/share/X11 +" diff --git a/remote/modules/swiss/swiss.conf.debian b/remote/modules/swiss/swiss.conf.debian new file mode 100644 index 00000000..a43faea2 --- /dev/null +++ b/remote/modules/swiss/swiss.conf.debian @@ -0,0 +1,10 @@ +REQUIRED_INSTALLED_PACKAGES=" + libX11-data +" +REQUIRED_CONTENT_PACKAGES=" + libX11-data +" +REQUIRED_DIRECTORIES+=" + /usr/lib/locale +" + diff --git a/remote/modules/swiss/swiss.conf.opensuse b/remote/modules/swiss/swiss.conf.opensuse new file mode 100644 index 00000000..1311ac97 --- /dev/null +++ b/remote/modules/swiss/swiss.conf.opensuse @@ -0,0 +1,14 @@ +REQUIRED_INSTALLED_PACKAGES=" + libX11-data + glibc-locale +" +REQUIRED_CONTENT_PACKAGES=" + libX11-data +" +REQUIRED_DIRECTORIES+=" + /usr/lib/locale/de_DE.utf8 + /usr/lib/locale/de_CH.utf8 +" +REQUIRED_BINARIES="" +REQUIRED_FILES="" + diff --git a/remote/modules/swiss/swiss.conf.scientific b/remote/modules/swiss/swiss.conf.scientific new file mode 100644 index 00000000..88ac0d27 --- /dev/null +++ b/remote/modules/swiss/swiss.conf.scientific @@ -0,0 +1,8 @@ +REQUIRED_INSTALLED_PACKAGES=" + libX11-data + glibc-common +" +REQUIRED_CONTENT_PACKAGES=" + libX11-data" +REQUIRED_BINARIES="" +REQUIRED_FILES="" diff --git a/remote/modules/swiss/swiss.conf.ubuntu b/remote/modules/swiss/swiss.conf.ubuntu new file mode 100644 index 00000000..69694914 --- /dev/null +++ b/remote/modules/swiss/swiss.conf.ubuntu @@ -0,0 +1,17 @@ +REQUIRED_INSTALLED_PACKAGES=" + libx11-data + language-pack-de + language-pack-fr + language-pack-it + language-pack-en +" +REQUIRED_CONTENT_PACKAGES=" + libx11-data +" +REQUIRED_DIRECTORIES+=" + /usr/lib/locale/C.UTF-8 + /usr/lib/locale/de_CH.utf8 + /usr/lib/locale/fr_CH.utf8 + /usr/lib/locale/it_CH.utf8 +" + diff --git a/remote/modules/systemd/data/etc/systemd/system/network-interface@.service b/remote/modules/systemd/data/etc/systemd/system/network-interface@.service index 73cc6239..ea9cc56e 100644 --- a/remote/modules/systemd/data/etc/systemd/system/network-interface@.service +++ b/remote/modules/systemd/data/etc/systemd/system/network-interface@.service @@ -1,7 +1,7 @@ [Unit] Description=Brings interface %i up -Wants=udhcpc@%i.service -Before=udhcpc@%i.service +Wants=dhcpc@%i.service +Before=dhcpc@%i.service [Service] Type=simple diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/autovt@.service b/remote/modules/systemd/data/usr/lib/systemd/system/autovt@.service new file mode 120000 index 00000000..fe40e8fd --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/autovt@.service @@ -0,0 +1 @@ +getty@.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/basic.target b/remote/modules/systemd/data/usr/lib/systemd/system/basic.target new file mode 100644 index 00000000..6b9cfe4c --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/basic.target @@ -0,0 +1,14 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Basic System +Documentation=man:systemd.special(7) +Requires=sysinit.target +Wants=sockets.target timers.target paths.target +After=sysinit.target sockets.target timers.target paths.target +RefuseManualStart=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/bluetooth.target b/remote/modules/systemd/data/usr/lib/systemd/system/bluetooth.target new file mode 100644 index 00000000..dd4ae14c --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/bluetooth.target @@ -0,0 +1,11 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Bluetooth +Documentation=man:systemd.special(7) +StopWhenUnneeded=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/console-getty.service b/remote/modules/systemd/data/usr/lib/systemd/system/console-getty.service new file mode 100644 index 00000000..74a220e2 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/console-getty.service @@ -0,0 +1,32 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Console Getty +Documentation=man:agetty(8) +After=systemd-user-sessions.service plymouth-quit-wait.service +After=rc-local.service +Before=getty.target + +[Service] +ExecStart=-/sbin/agetty --noclear -s console 115200,38400,9600 +Type=idle +Restart=always +RestartSec=0 +UtmpIdentifier=cons +TTYPath=/dev/console +TTYReset=yes +TTYVHangup=yes +KillMode=process +IgnoreSIGPIPE=no + +# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash +# terminates cleanly. +KillSignal=SIGHUP + +[Install] +WantedBy=getty.target diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/console-shell.service b/remote/modules/systemd/data/usr/lib/systemd/system/console-shell.service new file mode 100644 index 00000000..c1548299 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/console-shell.service @@ -0,0 +1,32 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Console Shell +Documentation=man:sulogin(8) +After=systemd-user-sessions.service plymouth-quit-wait.service +After=rc-local.service +Before=getty.target + +[Service] +Environment=HOME=/root +WorkingDirectory=/root +ExecStart=-/sbin/sulogin +ExecStopPost=-/usr/bin/systemctl poweroff +Type=idle +StandardInput=tty-force +StandardOutput=inherit +StandardError=inherit +KillMode=process +IgnoreSIGPIPE=no + +# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash +# terminates cleanly. +KillSignal=SIGHUP + +[Install] +WantedBy=getty.target diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/ctrl-alt-del.target b/remote/modules/systemd/data/usr/lib/systemd/system/ctrl-alt-del.target new file mode 120000 index 00000000..f2fde431 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/ctrl-alt-del.target @@ -0,0 +1 @@ +reboot.target
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/dbus-org.freedesktop.login1.service b/remote/modules/systemd/data/usr/lib/systemd/system/dbus-org.freedesktop.login1.service new file mode 120000 index 00000000..d87318cc --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/dbus-org.freedesktop.login1.service @@ -0,0 +1 @@ +systemd-logind.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/debug-shell.service b/remote/modules/systemd/data/usr/lib/systemd/system/debug-shell.service new file mode 100644 index 00000000..1942c987 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/debug-shell.service @@ -0,0 +1,33 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Early root shell on /dev/tty9 FOR DEBUGGING ONLY +Documentation=man:sushell(8) +DefaultDependencies=no +IgnoreOnIsolate=yes + +[Service] +Environment=TERM=linux +ExecStart=/sbin/sushell +Restart=always +RestartSec=0 +StandardInput=tty +TTYPath=/dev/tty9 +TTYReset=yes +TTYVHangup=yes +KillMode=process +IgnoreSIGPIPE=no +# bash ignores SIGTERM +KillSignal=SIGHUP + +# Unset locale for the console getty since the console has problems +# displaying some internationalized messages. +Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION= + +[Install] +WantedBy=sysinit.target diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/default.target b/remote/modules/systemd/data/usr/lib/systemd/system/default.target new file mode 120000 index 00000000..a0aae86a --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/default.target @@ -0,0 +1 @@ +graphical.target
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/dev-hugepages.mount b/remote/modules/systemd/data/usr/lib/systemd/system/dev-hugepages.mount new file mode 100644 index 00000000..d711faed --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/dev-hugepages.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Huge Pages File System +Documentation=https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt +Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems +DefaultDependencies=no +Before=sysinit.target +ConditionPathExists=/sys/kernel/mm/hugepages + +[Mount] +What=hugetlbfs +Where=/dev/hugepages +Type=hugetlbfs diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/dev-mqueue.mount b/remote/modules/systemd/data/usr/lib/systemd/system/dev-mqueue.mount new file mode 100644 index 00000000..5c11ca7d --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/dev-mqueue.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=POSIX Message Queue File System +Documentation=man:mq_overview(7) +Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems +DefaultDependencies=no +Before=sysinit.target +ConditionPathExists=/proc/sys/fs/mqueue + +[Mount] +What=mqueue +Where=/dev/mqueue +Type=mqueue diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/emergency.service b/remote/modules/systemd/data/usr/lib/systemd/system/emergency.service new file mode 100644 index 00000000..72fcff2d --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/emergency.service @@ -0,0 +1,31 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Emergency Shell +Documentation=man:sulogin(8) +DefaultDependencies=no +Conflicts=shutdown.target +Before=shutdown.target + +[Service] +Environment=HOME=/root +WorkingDirectory=/root +ExecStartPre=-/bin/plymouth quit +ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' +ExecStart=-/sbin/sulogin +ExecStopPost=/usr/bin/systemctl --fail --no-block default +Type=idle +StandardInput=tty-force +StandardOutput=inherit +StandardError=inherit +KillMode=process +IgnoreSIGPIPE=no + +# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash +# terminates cleanly. +KillSignal=SIGHUP diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/emergency.target b/remote/modules/systemd/data/usr/lib/systemd/system/emergency.target new file mode 100644 index 00000000..0760d66f --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/emergency.target @@ -0,0 +1,13 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Emergency Mode +Documentation=man:systemd.special(7) +Requires=emergency.service +After=emergency.service +AllowIsolate=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/final.target b/remote/modules/systemd/data/usr/lib/systemd/system/final.target new file mode 100644 index 00000000..c7cf18e0 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/final.target @@ -0,0 +1,13 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Final Step +Documentation=man:systemd.special(7) +DefaultDependencies=no +RefuseManualStart=yes +After=shutdown.target diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/getty.target b/remote/modules/systemd/data/usr/lib/systemd/system/getty.target new file mode 100644 index 00000000..c33d4465 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/getty.target @@ -0,0 +1,11 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Login Prompts +Documentation=man:systemd.special(7) man:systemd-getty-generator(8) +Documentation=http://0pointer.de/blog/projects/serial-console.html diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/getty@.service b/remote/modules/systemd/data/usr/lib/systemd/system/getty@.service new file mode 100644 index 00000000..7e218d11 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/getty@.service @@ -0,0 +1,49 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Getty on %I +Documentation=man:agetty(8) man:systemd-getty-generator(8) +Documentation=http://0pointer.de/blog/projects/serial-console.html +After=systemd-user-sessions.service plymouth-quit-wait.service +After=rc-local.service + +# If additional gettys are spawned during boot then we should make +# sure that this is synchronized before getty.target, even though +# getty.target didn't actually pull it in. +Before=getty.target +IgnoreOnIsolate=yes + +# On systems without virtual consoles, don't start any getty. (Note +# that serial gettys are covered by serial-getty@.service, not this +# unit +ConditionPathExists=/dev/tty0 + +[Service] +# the VT is cleared by TTYVTDisallocate +ExecStart=-/sbin/agetty --noclear %I 38400 linux +Type=idle +Restart=always +RestartSec=0 +UtmpIdentifier=%I +TTYPath=/dev/%I +TTYReset=yes +TTYVHangup=yes +TTYVTDisallocate=no +KillMode=process +IgnoreSIGPIPE=no + +# Unset locale for the console getty since the console has problems +# displaying some internationalized messages. +Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION= + +# Some login implementations ignore SIGTERM, so we send SIGHUP +# instead, to ensure that login terminates cleanly. +KillSignal=SIGHUP + +[Install] +Alias=getty.target.wants/getty@tty1.service diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/graphical.target b/remote/modules/systemd/data/usr/lib/systemd/system/graphical.target new file mode 100644 index 00000000..65f2521d --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/graphical.target @@ -0,0 +1,18 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Graphical Interface +Documentation=man:systemd.special(7) +Requires=multi-user.target +After=multi-user.target +Conflicts=rescue.target +Wants=display-manager.service +AllowIsolate=yes + +[Install] +Alias=default.target diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/halt-local.service b/remote/modules/systemd/data/usr/lib/systemd/system/halt-local.service new file mode 100644 index 00000000..e6243eeb --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/halt-local.service @@ -0,0 +1,20 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=/usr/sbin/halt.local Compatibility +ConditionFileIsExecutable=/usr/sbin/halt.local +DefaultDependencies=no +After=shutdown.target +Before=final.target + +[Service] +Type=oneshot +ExecStart=/usr/sbin/halt.local +TimeoutSec=0 +StandardOutput=tty +RemainAfterExit=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/halt.target b/remote/modules/systemd/data/usr/lib/systemd/system/halt.target new file mode 100644 index 00000000..a21d984b --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/halt.target @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Halt +Documentation=man:systemd.special(7) +DefaultDependencies=no +Requires=systemd-halt.service +After=systemd-halt.service +AllowIsolate=yes + +[Install] +Alias=ctrl-alt-del.target diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/hibernate.target b/remote/modules/systemd/data/usr/lib/systemd/system/hibernate.target new file mode 100644 index 00000000..143eb592 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/hibernate.target @@ -0,0 +1,13 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Hibernate +Documentation=man:systemd.special(7) +DefaultDependencies=no +BindsTo=systemd-hibernate.service +After=systemd-hibernate.service diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/hybrid-sleep.target b/remote/modules/systemd/data/usr/lib/systemd/system/hybrid-sleep.target new file mode 100644 index 00000000..d2d34092 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/hybrid-sleep.target @@ -0,0 +1,13 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Hybrid Suspend+Hibernate +Documentation=man:systemd.special(7) +DefaultDependencies=no +BindsTo=systemd-hybrid-sleep.service +After=systemd-hybrid-sleep.service diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/kexec.target b/remote/modules/systemd/data/usr/lib/systemd/system/kexec.target new file mode 100644 index 00000000..90795d0c --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/kexec.target @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Reboot via kexec +Documentation=man:systemd.special(7) +DefaultDependencies=no +Requires=systemd-kexec.service +After=systemd-kexec.service +AllowIsolate=yes + +[Install] +Alias=ctrl-alt-del.target diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target b/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target new file mode 100644 index 00000000..998e0460 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Multi-User System +Documentation=man:systemd.special(7) +Requires=basic.target +Conflicts=rescue.service rescue.target +After=basic.target rescue.service rescue.target +AllowIsolate=yes + +[Install] +Alias=default.target diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target.wants/getty.target b/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target.wants/getty.target new file mode 120000 index 00000000..bdba1fe4 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target.wants/getty.target @@ -0,0 +1 @@ +../getty.target
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target.wants/systemd-logind.service b/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target.wants/systemd-logind.service new file mode 120000 index 00000000..270a900e --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target.wants/systemd-logind.service @@ -0,0 +1 @@ +../systemd-logind.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target.wants/systemd-user-sessions.service b/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target.wants/systemd-user-sessions.service new file mode 120000 index 00000000..f878b529 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/multi-user.target.wants/systemd-user-sessions.service @@ -0,0 +1 @@ +../systemd-user-sessions.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/network-online.target b/remote/modules/systemd/data/usr/lib/systemd/system/network-online.target new file mode 100644 index 00000000..a40c44c9 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/network-online.target @@ -0,0 +1,11 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Network is Online +Documentation=man:systemd.special(7) +Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget diff --git a/remote/modules/systemd/data/etc/systemd/system/network.target b/remote/modules/systemd/data/usr/lib/systemd/system/network.target index 0bc2a410..4186c088 100644 --- a/remote/modules/systemd/data/etc/systemd/system/network.target +++ b/remote/modules/systemd/data/usr/lib/systemd/system/network.target @@ -9,5 +9,6 @@ Description=Network Documentation=man:systemd.special(7) Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget -ConditionPathExists=/run/udhcpc/network-ready +DefaultDependencies=no +ConditionPathExists=/run/network/network-ready diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/paths.target b/remote/modules/systemd/data/usr/lib/systemd/system/paths.target new file mode 100644 index 00000000..25c7fd03 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/paths.target @@ -0,0 +1,10 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Paths +Documentation=man:systemd.special(7) diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/poweroff.target b/remote/modules/systemd/data/usr/lib/systemd/system/poweroff.target new file mode 100644 index 00000000..71871033 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/poweroff.target @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Power-Off +Documentation=man:systemd.special(7) +DefaultDependencies=no +Requires=systemd-poweroff.service +After=systemd-poweroff.service +AllowIsolate=yes + +[Install] +Alias=ctrl-alt-del.target diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/printer.target b/remote/modules/systemd/data/usr/lib/systemd/system/printer.target new file mode 100644 index 00000000..a6b86caa --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/printer.target @@ -0,0 +1,11 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Printer +Documentation=man:systemd.special(7) +StopWhenUnneeded=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/proc-sys-fs-binfmt_misc.automount b/remote/modules/systemd/data/usr/lib/systemd/system/proc-sys-fs-binfmt_misc.automount new file mode 100644 index 00000000..6be38937 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/proc-sys-fs-binfmt_misc.automount @@ -0,0 +1,18 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Arbitrary Executable File Formats File System Automount Point +Documentation=https://www.kernel.org/doc/Documentation/binfmt_misc.txt +Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems +DefaultDependencies=no +Before=sysinit.target +ConditionPathExists=/proc/sys/fs/binfmt_misc/ +ConditionPathIsReadWrite=/proc/sys/ + +[Automount] +Where=/proc/sys/fs/binfmt_misc diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/proc-sys-fs-binfmt_misc.mount b/remote/modules/systemd/data/usr/lib/systemd/system/proc-sys-fs-binfmt_misc.mount new file mode 100644 index 00000000..8c7c3863 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/proc-sys-fs-binfmt_misc.mount @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Arbitrary Executable File Formats File System +Documentation=https://www.kernel.org/doc/Documentation/binfmt_misc.txt +Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems +DefaultDependencies=no + +[Mount] +What=binfmt_misc +Where=/proc/sys/fs/binfmt_misc +Type=binfmt_misc diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/rc-local.service b/remote/modules/systemd/data/usr/lib/systemd/system/rc-local.service new file mode 100644 index 00000000..cb9c1ba2 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/rc-local.service @@ -0,0 +1,20 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +# This unit gets pulled automatically into multi-user.target by +# systemd-rc-local-generator if /etc/rc.local is executable. +[Unit] +Description=/etc/rc.local Compatibility +ConditionFileIsExecutable=/etc/rc.local +After=network.target + +[Service] +Type=forking +ExecStart=/etc/rc.local start +TimeoutSec=0 +RemainAfterExit=yes +SysVStartPriority=99 diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/reboot.target b/remote/modules/systemd/data/usr/lib/systemd/system/reboot.target new file mode 100644 index 00000000..dec8f567 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/reboot.target @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Reboot +Documentation=man:systemd.special(7) +DefaultDependencies=no +Requires=systemd-reboot.service +After=systemd-reboot.service +AllowIsolate=yes + +[Install] +Alias=ctrl-alt-del.target diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/remote-fs.target b/remote/modules/systemd/data/usr/lib/systemd/system/remote-fs.target new file mode 100644 index 00000000..0821987d --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/remote-fs.target @@ -0,0 +1,3 @@ +[Unit] +Description=Remote File Systems Impostor + diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/serial-getty@.service b/remote/modules/systemd/data/usr/lib/systemd/system/serial-getty@.service new file mode 100644 index 00000000..5f289500 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/serial-getty@.service @@ -0,0 +1,36 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Serial Getty on %I +Documentation=man:agetty(8) man:systemd-getty-generator(8) +Documentation=http://0pointer.de/blog/projects/serial-console.html +BindsTo=dev-%i.device +After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service +After=rc-local.service + +# If additional gettys are spawned during boot then we should make +# sure that this is synchronized before getty.target, even though +# getty.target didn't actually pull it in. +Before=getty.target +IgnoreOnIsolate=yes + +[Service] +ExecStart=-/sbin/agetty -s %I 115200,38400,9600 vt102 +Type=idle +Restart=always +RestartSec=0 +UtmpIdentifier=%I +TTYPath=/dev/%I +TTYReset=yes +TTYVHangup=yes +KillMode=process +IgnoreSIGPIPE=no + +# Some login implementations ignore SIGTERM, so we send SIGHUP +# instead, to ensure that login terminates cleanly. +KillSignal=SIGHUP diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/shutdown.target b/remote/modules/systemd/data/usr/lib/systemd/system/shutdown.target new file mode 100644 index 00000000..73e302b8 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/shutdown.target @@ -0,0 +1,12 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Shutdown +Documentation=man:systemd.special(7) +DefaultDependencies=no +RefuseManualStart=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sigpwr.target b/remote/modules/systemd/data/usr/lib/systemd/system/sigpwr.target new file mode 100644 index 00000000..a52e7cff --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sigpwr.target @@ -0,0 +1,10 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Power Failure +Documentation=man:systemd.special(7) diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sleep.target b/remote/modules/systemd/data/usr/lib/systemd/system/sleep.target new file mode 100644 index 00000000..10c7c8d5 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sleep.target @@ -0,0 +1,13 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Sleep +Documentation=man:systemd.special(7) +DefaultDependencies=no +RefuseManualStart=yes +StopWhenUnneeded=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/smartcard.target b/remote/modules/systemd/data/usr/lib/systemd/system/smartcard.target new file mode 100644 index 00000000..5fefe847 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/smartcard.target @@ -0,0 +1,11 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Smart Card +Documentation=man:systemd.special(7) +StopWhenUnneeded=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target b/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target new file mode 100644 index 00000000..26ab065d --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target @@ -0,0 +1,10 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Sockets +Documentation=man:systemd.special(7) diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-journald.socket b/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-journald.socket new file mode 120000 index 00000000..07ae46c4 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-journald.socket @@ -0,0 +1 @@ +../systemd-journald.socket
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-shutdownd.socket b/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-shutdownd.socket new file mode 120000 index 00000000..aa23208d --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-shutdownd.socket @@ -0,0 +1 @@ +../systemd-shutdownd.socket
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-udevd-control.socket b/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-udevd-control.socket new file mode 120000 index 00000000..4bc0e548 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-udevd-control.socket @@ -0,0 +1 @@ +../systemd-udevd-control.socket
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-udevd-kernel.socket b/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-udevd-kernel.socket new file mode 120000 index 00000000..fab7990a --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sockets.target.wants/systemd-udevd-kernel.socket @@ -0,0 +1 @@ +../systemd-udevd-kernel.socket
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sound.target b/remote/modules/systemd/data/usr/lib/systemd/system/sound.target new file mode 100644 index 00000000..6699adec --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sound.target @@ -0,0 +1,11 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Sound Card +Documentation=man:systemd.special(7) +StopWhenUnneeded=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/suspend.target b/remote/modules/systemd/data/usr/lib/systemd/system/suspend.target new file mode 100644 index 00000000..f50cb226 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/suspend.target @@ -0,0 +1,13 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Suspend +Documentation=man:systemd.special(7) +DefaultDependencies=no +BindsTo=systemd-suspend.service +After=systemd-suspend.service diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/swap.target b/remote/modules/systemd/data/usr/lib/systemd/system/swap.target new file mode 100644 index 00000000..23a7d0dc --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/swap.target @@ -0,0 +1,10 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Swap +Documentation=man:systemd.special(7) diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sys-fs-fuse-connections.mount b/remote/modules/systemd/data/usr/lib/systemd/system/sys-fs-fuse-connections.mount new file mode 100644 index 00000000..ebd93e2c --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sys-fs-fuse-connections.mount @@ -0,0 +1,20 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=FUSE Control File System +Documentation=https://www.kernel.org/doc/Documentation/filesystems/fuse.txt +Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems +DefaultDependencies=no +ConditionPathExists=/sys/fs/fuse/connections +After=systemd-modules-load.service +Before=sysinit.target + +[Mount] +What=fusectl +Where=/sys/fs/fuse/connections +Type=fusectl diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sys-kernel-config.mount b/remote/modules/systemd/data/usr/lib/systemd/system/sys-kernel-config.mount new file mode 100644 index 00000000..020101c0 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sys-kernel-config.mount @@ -0,0 +1,20 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Configuration File System +Documentation=https://www.kernel.org/doc/Documentation/filesystems/configfs/configfs.txt +Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems +DefaultDependencies=no +ConditionPathExists=/sys/kernel/config +After=systemd-modules-load.service +Before=sysinit.target + +[Mount] +What=configfs +Where=/sys/kernel/config +Type=configfs diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target new file mode 100644 index 00000000..ec6fbefc --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target @@ -0,0 +1,14 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=System Initialization +Documentation=man:systemd.special(7) +Conflicts=emergency.service emergency.target +Wants= swap.target +After= swap.target emergency.service emergency.target +RefuseManualStart=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/dev-hugepages.mount b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/dev-hugepages.mount new file mode 120000 index 00000000..6a26137b --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/dev-hugepages.mount @@ -0,0 +1 @@ +../dev-hugepages.mount
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/dev-mqueue.mount b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/dev-mqueue.mount new file mode 120000 index 00000000..f0b9fbf4 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/dev-mqueue.mount @@ -0,0 +1 @@ +../dev-mqueue.mount
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/proc-sys-fs-binfmt_misc.automount b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/proc-sys-fs-binfmt_misc.automount new file mode 120000 index 00000000..0b7f61f0 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/proc-sys-fs-binfmt_misc.automount @@ -0,0 +1 @@ +../proc-sys-fs-binfmt_misc.automount
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/sys-fs-fuse-connections.mount b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/sys-fs-fuse-connections.mount new file mode 120000 index 00000000..85d20a2d --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/sys-fs-fuse-connections.mount @@ -0,0 +1 @@ +../sys-fs-fuse-connections.mount
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/sys-kernel-config.mount b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/sys-kernel-config.mount new file mode 120000 index 00000000..831a9479 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/sys-kernel-config.mount @@ -0,0 +1 @@ +../sys-kernel-config.mount
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-binfmt.service b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-binfmt.service new file mode 120000 index 00000000..07fbee12 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-binfmt.service @@ -0,0 +1 @@ +../systemd-binfmt.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-journald.service b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-journald.service new file mode 120000 index 00000000..e9057f7d --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-journald.service @@ -0,0 +1 @@ +../systemd-journald.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-modules-load.service b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-modules-load.service new file mode 120000 index 00000000..79337696 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-modules-load.service @@ -0,0 +1 @@ +../systemd-modules-load.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-sysctl.service b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-sysctl.service new file mode 120000 index 00000000..fb5fbf0c --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-sysctl.service @@ -0,0 +1 @@ +../systemd-sysctl.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup-dev.service b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup-dev.service new file mode 120000 index 00000000..0a5032ac --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup-dev.service @@ -0,0 +1 @@ +../systemd-tmpfiles-setup-dev.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup.service b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup.service new file mode 120000 index 00000000..12744a3e --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup.service @@ -0,0 +1 @@ +../systemd-tmpfiles-setup.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-udev-trigger.service b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-udev-trigger.service new file mode 120000 index 00000000..ff2ab9b3 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-udev-trigger.service @@ -0,0 +1 @@ +../systemd-udev-trigger.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-udevd.service b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-udevd.service new file mode 120000 index 00000000..e64bac22 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-udevd.service @@ -0,0 +1 @@ +../systemd-udevd.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-vconsole-setup.service b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-vconsole-setup.service new file mode 120000 index 00000000..78347c39 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/sysinit.target.wants/systemd-vconsole-setup.service @@ -0,0 +1 @@ +../systemd-vconsole-setup.service
\ No newline at end of file diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/syslog.socket b/remote/modules/systemd/data/usr/lib/systemd/system/syslog.socket new file mode 100644 index 00000000..e6e9cf85 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/syslog.socket @@ -0,0 +1,40 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Syslog Socket +Documentation=man:systemd.special(7) +Documentation=http://www.freedesktop.org/wiki/Software/systemd/syslog +DefaultDependencies=no +Before=sockets.target shutdown.target + +# Don't allow logging until the very end +Conflicts=shutdown.target + +[Socket] +ListenDatagram=/run/systemd/journal/syslog +SocketMode=0666 +PassCredentials=yes +PassSecurity=yes +ReceiveBuffer=8M + +# The default syslog implementation should make syslog.service a +# symlink to itself, so that this socket activates the right actual +# syslog service. +# +# Examples: +# +# /etc/systemd/system/syslog.service -> /lib/systemd/system/rsyslog.service +# /etc/systemd/system/syslog.service -> /lib/systemd/system/syslog-ng.service +# +# Best way to achieve that is by adding this to your unit file +# (i.e. to rsyslog.service or syslog-ng.service): +# +# [Install] +# Alias=syslog.service +# +# See http://www.freedesktop.org/wiki/Software/systemd/syslog for details. diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/system-update.target b/remote/modules/systemd/data/usr/lib/systemd/system/system-update.target new file mode 100644 index 00000000..b6008c8f --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/system-update.target @@ -0,0 +1,16 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=System Update +Documentation=http://freedesktop.org/wiki/Software/systemd/SystemUpdates +Documentation=man:systemd.special(7) man:systemd-system-update-generator(8) +Requires=sysinit.target +Conflicts=shutdown.target +After=sysinit.target +Before=shutdown.target +AllowIsolate=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-binfmt.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-binfmt.service new file mode 100644 index 00000000..897cf4e5 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-binfmt.service @@ -0,0 +1,26 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Set Up Additional Binary Formats +Documentation=man:systemd-binfmt.service(8) man:binfmt.d(5) +Documentation=https://www.kernel.org/doc/Documentation/binfmt_misc.txt +DefaultDependencies=no +Conflicts=shutdown.target +After= proc-sys-fs-binfmt_misc.automount +Before=sysinit.target shutdown.target +ConditionPathIsReadWrite=/proc/sys/ +ConditionDirectoryNotEmpty=|/lib/binfmt.d +ConditionDirectoryNotEmpty=|/usr/lib/binfmt.d +ConditionDirectoryNotEmpty=|/usr/local/lib/binfmt.d +ConditionDirectoryNotEmpty=|/etc/binfmt.d +ConditionDirectoryNotEmpty=|/run/binfmt.d + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/lib/systemd/systemd-binfmt diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-halt.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-halt.service new file mode 100644 index 00000000..a13d67c6 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-halt.service @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Halt +Documentation=man:systemd-halt.service(8) +DefaultDependencies=no +Requires=shutdown.target final.target +After=shutdown.target final.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/systemctl --force halt diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-hibernate.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-hibernate.service new file mode 100644 index 00000000..7f19e48f --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-hibernate.service @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Hibernate +Documentation=man:systemd-suspend.service(8) +DefaultDependencies=no +Requires=sleep.target +After=sleep.target + +[Service] +Type=oneshot +ExecStart=/usr/lib/systemd/systemd-sleep hibernate diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-hybrid-sleep.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-hybrid-sleep.service new file mode 100644 index 00000000..7d627bfa --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-hybrid-sleep.service @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Hybrid Suspend+Hibernate +Documentation=man:systemd-suspend.service(8) +DefaultDependencies=no +Requires=sleep.target +After=sleep.target + +[Service] +Type=oneshot +ExecStart=/usr/lib/systemd/systemd-sleep hybrid-sleep diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-journald.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-journald.service new file mode 100644 index 00000000..77b4bfe9 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-journald.service @@ -0,0 +1,26 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Journal Service +Documentation=man:systemd-journald.service(8) man:journald.conf(5) +DefaultDependencies=no +Requires=systemd-journald.socket +After=systemd-journald.socket syslog.socket +Before=sysinit.target + +[Service] +ExecStart=/usr/lib/systemd/systemd-journald +Restart=always +RestartSec=0 +NotifyAccess=all +StandardOutput=null +CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG CAP_AUDIT_CONTROL CAP_CHOWN CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID + +# Increase the default a bit in order to allow many simultaneous +# services being run since we keep one fd open per service. +LimitNOFILE=16384 diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-journald.socket b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-journald.socket new file mode 100644 index 00000000..4f0619d2 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-journald.socket @@ -0,0 +1,26 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Journal Socket +Documentation=man:systemd-journald.service(8) man:journald.conf(5) +DefaultDependencies=no +Before=sockets.target + +# Mount and swap units need this. If this socket unit is removed by an +# isolate request the mount and and swap units would be removed too, +# hence let's exclude this from isolate requests. +IgnoreOnIsolate=yes + +[Socket] +ListenStream=/run/systemd/journal/stdout +ListenDatagram=/run/systemd/journal/socket +ListenDatagram=/dev/log +SocketMode=0666 +PassCredentials=yes +PassSecurity=yes +ReceiveBuffer=8M diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-logind.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-logind.service new file mode 100644 index 00000000..71971e44 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-logind.service @@ -0,0 +1,23 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Login Service +Documentation=man:systemd-logind.service(8) man:logind.conf(5) +Documentation=http://www.freedesktop.org/wiki/Software/systemd/multiseat +After= + +[Service] +ExecStart=/usr/lib/systemd/systemd-logind +Restart=always +RestartSec=0 +BusName=org.freedesktop.login1 +CapabilityBoundingSet=CAP_AUDIT_CONTROL CAP_CHOWN CAP_KILL CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE CAP_FOWNER CAP_SYS_TTY_CONFIG + +# Increase the default a bit in order to allow many simultaneous +# logins since we keep one fd open per session. +LimitNOFILE=16384 diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-modules-load.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-modules-load.service new file mode 100644 index 00000000..3ff810f7 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-modules-load.service @@ -0,0 +1,27 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Load Kernel Modules +Documentation=man:systemd-modules-load.service(8) man:modules-load.d(5) +DefaultDependencies=no +Conflicts=shutdown.target +After= +Before=sysinit.target shutdown.target +ConditionCapability=CAP_SYS_MODULE +ConditionDirectoryNotEmpty=|/lib/modules-load.d +ConditionDirectoryNotEmpty=|/usr/lib/modules-load.d +ConditionDirectoryNotEmpty=|/usr/local/lib/modules-load.d +ConditionDirectoryNotEmpty=|/etc/modules-load.d +ConditionDirectoryNotEmpty=|/run/modules-load.d +ConditionKernelCommandLine=|modules-load +ConditionKernelCommandLine=|rd.modules-load + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/lib/systemd/systemd-modules-load diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-nspawn@.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-nspawn@.service new file mode 100644 index 00000000..f9f9aa65 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-nspawn@.service @@ -0,0 +1,18 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Container %i +Documentation=man:systemd-nspawn(1) + +[Service] +ExecStart=/usr/bin/systemd-nspawn -bjD /var/lib/container/%i +ControlGroup=%R/machine/%i.nspawn cpu:/ +Type=notify + +[Install] +Also=multi-user.target diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-poweroff.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-poweroff.service new file mode 100644 index 00000000..eede0eab --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-poweroff.service @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Power-Off +Documentation=man:systemd-halt.service(8) +DefaultDependencies=no +Requires=shutdown.target final.target +After=shutdown.target final.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/systemctl --force poweroff diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-reboot.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-reboot.service new file mode 100644 index 00000000..b2d27c8e --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-reboot.service @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Reboot +Documentation=man:systemd-halt.service(8) +DefaultDependencies=no +Requires=shutdown.target final.target +After=shutdown.target final.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/systemctl --force reboot diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-shutdownd.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-shutdownd.service new file mode 100644 index 00000000..38c663de --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-shutdownd.service @@ -0,0 +1,15 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Delayed Shutdown Service +Documentation=man:systemd-shutdownd.service(8) +DefaultDependencies=no + +[Service] +ExecStart=/usr/lib/systemd/systemd-shutdownd +NotifyAccess=all diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-shutdownd.socket b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-shutdownd.socket new file mode 100644 index 00000000..9421ce8a --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-shutdownd.socket @@ -0,0 +1,18 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Delayed Shutdown Socket +Documentation=man:systemd-shutdownd.service(8) +DefaultDependencies=no +Before=sockets.target + +[Socket] +ListenDatagram=/run/systemd/shutdownd +SocketMode=0600 +PassCredentials=yes +PassSecurity=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-suspend.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-suspend.service new file mode 100644 index 00000000..5d242edd --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-suspend.service @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Suspend +Documentation=man:systemd-suspend.service(8) +DefaultDependencies=no +Requires=sleep.target +After=sleep.target + +[Service] +Type=oneshot +ExecStart=/usr/lib/systemd/systemd-sleep suspend diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-sysctl.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-sysctl.service new file mode 100644 index 00000000..46e2475e --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-sysctl.service @@ -0,0 +1,26 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Apply Kernel Variables +Documentation=man:systemd-sysctl.service(8) man:sysctl.d(5) +DefaultDependencies=no +Conflicts=shutdown.target +After= +Before=sysinit.target shutdown.target +ConditionPathIsReadWrite=/proc/sys/ +ConditionPathExists=|/etc/sysctl.conf +ConditionDirectoryNotEmpty=|/lib/sysctl.d +ConditionDirectoryNotEmpty=|/usr/lib/sysctl.d +ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d +ConditionDirectoryNotEmpty=|/etc/sysctl.d +ConditionDirectoryNotEmpty=|/run/sysctl.d + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/lib/systemd/systemd-sysctl diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-tmpfiles-setup-dev.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-tmpfiles-setup-dev.service new file mode 100644 index 00000000..da1ee1f8 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-tmpfiles-setup-dev.service @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Create static device nodes in /dev +Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) +DefaultDependencies=no +Before=sysinit.target systemd-udevd.service +ConditionCapability=CAP_MKNOD + +[Service] +Type=oneshot +ExecStart=/usr/bin/systemd-tmpfiles --prefix=/dev --create diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-tmpfiles-setup.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-tmpfiles-setup.service new file mode 100644 index 00000000..157a7451 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-tmpfiles-setup.service @@ -0,0 +1,23 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Recreate Volatile Files and Directories +Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) +DefaultDependencies=no +Wants= +After= +Before=sysinit.target shutdown.target +ConditionDirectoryNotEmpty=|/usr/lib/tmpfiles.d +ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d +ConditionDirectoryNotEmpty=|/etc/tmpfiles.d +ConditionDirectoryNotEmpty=|/run/tmpfiles.d + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/systemd-tmpfiles --create --remove diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udev-settle.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udev-settle.service new file mode 100644 index 00000000..146c6499 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udev-settle.service @@ -0,0 +1,31 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +# This service can dynamically be pulled-in by legacy services which +# cannot reliably cope with dynamic device configurations, and wrongfully +# expect a populated /dev during bootup. + +[Unit] +Description=udev Wait for Complete Device Initialization +Documentation=man:udev(7) man:systemd-udevd.service(8) +DefaultDependencies=no +Wants=systemd-udevd.service +After=systemd-udev-trigger.service +Before=sysinit.target +ConditionCapability=CAP_MKNOD + +[Service] +Type=oneshot +TimeoutSec=180 +RemainAfterExit=yes +# Don't ask... +ExecStart=/opt/openslx/bin/usleep 100000 +ExecStart=/usr/bin/udevadm settle --timeout=3 +ExecStart=/opt/openslx/bin/usleep 20000 +ExecStart=/usr/bin/udevadm settle --timeout=3 +ExecStart=/opt/openslx/bin/usleep 20000 +ExecStart=/usr/bin/udevadm settle --timeout=3 diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udev-trigger.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udev-trigger.service new file mode 100644 index 00000000..6b19c75d --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udev-trigger.service @@ -0,0 +1,20 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=udev Coldplug all Devices +Documentation=man:udev(7) man:systemd-udevd.service(8) +DefaultDependencies=no +Wants=systemd-udevd.service systemd-udev-settle.service +After=systemd-udevd-kernel.socket systemd-udevd-control.socket +Before=sysinit.target systemd-udev-settle.service +ConditionCapability=CAP_MKNOD + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/udevadm trigger --type=subsystems --action=add ; /usr/bin/udevadm trigger --type=devices --action=add diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udevd-control.socket b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udevd-control.socket new file mode 100644 index 00000000..ca17102d --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udevd-control.socket @@ -0,0 +1,19 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=udev Control Socket +Documentation=man:systemd-udevd.service(8) man:udev(7) +DefaultDependencies=no +Before=sockets.target +ConditionCapability=CAP_MKNOD + +[Socket] +Service=systemd-udevd.service +ListenSequentialPacket=/run/udev/control +SocketMode=0600 +PassCredentials=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udevd-kernel.socket b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udevd-kernel.socket new file mode 100644 index 00000000..4b8a5b0f --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udevd-kernel.socket @@ -0,0 +1,19 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=udev Kernel Socket +Documentation=man:systemd-udevd.service(8) man:udev(7) +DefaultDependencies=no +Before=sockets.target +ConditionCapability=CAP_MKNOD + +[Socket] +Service=systemd-udevd.service +ReceiveBuffer=134217728 +ListenNetlink=kobject-uevent 1 +PassCredentials=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udevd.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udevd.service new file mode 100644 index 00000000..2c33ce53 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-udevd.service @@ -0,0 +1,23 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=udev Kernel Device Manager +Documentation=man:systemd-udevd.service(8) man:udev(7) +DefaultDependencies=no +Wants=systemd-udevd-control.socket systemd-udevd-kernel.socket +After=systemd-udevd-control.socket systemd-udevd-kernel.socket +Before=sysinit.target +ConditionCapability=CAP_MKNOD + +[Service] +Type=notify +OOMScoreAdjust=-1000 +Sockets=systemd-udevd-control.socket systemd-udevd-kernel.socket +Restart=always +RestartSec=0 +ExecStart=/usr/lib/systemd/systemd-udevd diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-user-sessions.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-user-sessions.service new file mode 100644 index 00000000..9226e3ea --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-user-sessions.service @@ -0,0 +1,17 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Permit User Sessions +Documentation=man:systemd-user-sessions.service(8) +After= + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/lib/systemd/systemd-user-sessions start +ExecStop=/usr/lib/systemd/systemd-user-sessions stop diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/systemd-vconsole-setup.service b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-vconsole-setup.service new file mode 100644 index 00000000..ce60c1bb --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/systemd-vconsole-setup.service @@ -0,0 +1,20 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Setup Virtual Console +Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5) +DefaultDependencies=no +Conflicts=shutdown.target +After= +Before=sysinit.target shutdown.target +ConditionPathExists=/dev/tty0 + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/lib/systemd/systemd-vconsole-setup diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/time-sync.target b/remote/modules/systemd/data/usr/lib/systemd/system/time-sync.target new file mode 100644 index 00000000..54078069 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/time-sync.target @@ -0,0 +1,14 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +# This exists mostly for compatibility with SysV/LSB units, and +# implementations lacking socket/bus activation. + +[Unit] +Description=System Time Synchronized +Documentation=man:systemd.special(7) +RefuseManualStart=yes diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/timers.target b/remote/modules/systemd/data/usr/lib/systemd/system/timers.target new file mode 100644 index 00000000..07fda3d9 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/timers.target @@ -0,0 +1,10 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Timers +Documentation=man:systemd.special(7) diff --git a/remote/modules/systemd/data/usr/lib/systemd/system/user@.service b/remote/modules/systemd/data/usr/lib/systemd/system/user@.service new file mode 100644 index 00000000..876c28c9 --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/systemd/system/user@.service @@ -0,0 +1,23 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=User Manager for %u +After=systemd-user-sessions.service + +[Service] +User=%I +PAMName=systemd-shared +# in order to allow MEM_CG features to work, add "memory:/" here +ControlGroup=%R/user/%U.user/shared cpu:/ +ControlGroupModify=yes +Type=notify +ExecStart=-/usr/lib/systemd/systemd --user +Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%U/dbus/user_bus_socket + +[Install] +Alias=user@%i.service diff --git a/remote/modules/systemd/data/usr/lib/udev/rules.d/99-systemd.rules b/remote/modules/systemd/data/usr/lib/udev/rules.d/99-systemd.rules index c148de7a..99cdf676 100644 --- a/remote/modules/systemd/data/usr/lib/udev/rules.d/99-systemd.rules +++ b/remote/modules/systemd/data/usr/lib/udev/rules.d/99-systemd.rules @@ -31,7 +31,9 @@ SUBSYSTEM=="block", KERNEL!="ram*|loop*", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_T # # http://git.kernel.org/?p=linux/hotplug/udev.git;a=blob;f=libudev/libudev-enumerate.c;h=da831449dcaf5e936a14409e8e68ab12d30a98e2;hb=HEAD#l742 -#SUBSYSTEM=="net", KERNEL=="eth*", TAG+="systemd", ENV{SYSTEMD_ALIAS}="/sys/subsystem/net/devices/$name", ENV{SYSTEMD_WANTS}="network-interface@$name.service" +SUBSYSTEM=="net", KERNEL=="eth*", TAG=="openslxignore", GOTO="systemd_end" + +SUBSYSTEM=="net", KERNEL=="br0|eth*", TAG+="systemd", ENV{SYSTEMD_ALIAS}="/sys/subsystem/net/devices/$name", ENV{SYSTEMD_WANTS}="network-interface@$name.service" SUBSYSTEM=="bluetooth", TAG+="systemd", ENV{SYSTEMD_ALIAS}="/sys/subsystem/bluetooth/devices/%k" SUBSYSTEM=="bluetooth", TAG+="systemd", ENV{SYSTEMD_WANTS}="bluetooth.target" @@ -43,8 +45,7 @@ SUBSYSTEM=="usb", KERNEL=="lp*", TAG+="systemd", ENV{SYSTEMD_WANTS}="printer.tar SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701??:*", TAG+="systemd", ENV{SYSTEMD_WANTS}="printer.target" # Apply sysctl variables to network devices (and only to those) as they appear. - -#SUBSYSTEM=="net", KERNEL=="eth*", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/proc/sys/net/ipv4/conf/$name --prefix=/proc/sys/net/ipv4/neigh/$name --prefix=/proc/sys/net/ipv6/conf/$name --prefix=/proc/sys/net/ipv6/neigh/$name" +SUBSYSTEM=="net", KERNEL=="eth*", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/proc/sys/net/ipv4/conf/$name --prefix=/proc/sys/net/ipv4/neigh/$name --prefix=/proc/sys/net/ipv6/conf/$name --prefix=/proc/sys/net/ipv6/neigh/$name" # Asynchronously mount file systems implemented by these modules as # soon as they are loaded. diff --git a/remote/modules/systemd/systemd.build b/remote/modules/systemd/systemd.build index 8ccb3cca..95576548 100644 --- a/remote/modules/systemd/systemd.build +++ b/remote/modules/systemd/systemd.build @@ -53,33 +53,15 @@ build () { export LDFLAGS="$OLDLDFLAGS" export CPPFLAGS="$OLDCPPFLAGS" export PKG_CONFIG_PATH="$OLDPKG_CONFIG_PATH" - LD_LIBRARY_PATH="$OLDLD_LIBRARY_PATH" - - # Delete unneeded services - pinfo "Deleting unneeded services" - local SERVICE= - local OTHER= - for SERVICE in $REQUIRED_DISABLED_SERVICES; do - find "${MODULE_BUILD_DIR}" -name "$SERVICE" -exec rm -r {} \; - for OTHER in $(grep -l -r "$SERVICE" "$MODULE_BUILD_DIR/usr/lib/systemd/system"); do - sed -i -r "s#\s*$SERVICE\s*# #g" "$OTHER" - done - done + export LD_LIBRARY_PATH="$OLDLD_LIBRARY_PATH" } post_copy() { - # dont clear systemd log at startup - sed -i "s/TTYVTDisallocate=yes/TTYVTDisallocate=no/g" "${TARGET_BUILD_DIR}/usr/lib/systemd/system/getty@.service" - #old agetty version doesn't support --noclear option in getty service - if [ "x$(dpkg -s util-linux | grep Version: | cut -d' ' -f2)" == "x2.19.1-2ubuntu3" ]; - then - sed -i.bak "s/ExecStart=-\/sbin\/agetty --noclear %I 38400 linux/ExecStart=-\/sbin\/agetty %I 38400 linux/g" "${TARGET_BUILD_DIR}/usr/lib/systemd/system/getty@.service" + 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 - # add nfs to modules-load list - echo "nfs" > "${TARGET_BUILD_DIR}/etc/modules-load.d/nfs.conf" - # add pam_systemd.so to pam modules directory if [ -e "${MODULE_BUILD_DIR}/usr/lib/security/pam_systemd.so" ]; then cp "${MODULE_BUILD_DIR}/usr/lib/security/pam_systemd.so" "${TARGET_BUILD_DIR}/lib/security/" diff --git a/remote/modules/systemd/systemd.conf b/remote/modules/systemd/systemd.conf index 1a038647..4ca11365 100644 --- a/remote/modules/systemd/systemd.conf +++ b/remote/modules/systemd/systemd.conf @@ -2,88 +2,64 @@ REQUIRED_VERSION="systemd-204" REQUIRED_URL="http://www.freedesktop.org/software/systemd/${REQUIRED_VERSION}.tar.xz" REQUIRED_LIBKMOD_VERSION="kmod-14" REQUIRED_LIBKMOD_URL="http://www.kernel.org/pub/linux/utils/kernel/kmod/${REQUIRED_LIBKMOD_VERSION}.tar.gz" -REQUIRED_DISABLED_SERVICES=" - tmp.mount - systemd-random-seed-save.service - systemd-random-seed-load.service - systemd-readahead-collect.service - systemd-readahead-replay.service - local-fs-pre.target - local-fs.target - local-fs.target.wants - systemd-remount-fs.service - remote-fs.target - remote-fs-pre.target - initrd-root-fs.target - initrd-fs.target - systemd-fsck-root.service - systemd-fsck@.service - sys-kernel-debug.mount - nss-lookup.target - nss-user-lookup.target - systemd-initctl.service - systemd-initctl.socket - umount.target -" REQUIRED_BINARIES=" - journalctl - loginctl - systemctl - systemd-analyze - systemd-ask-password - systemd-cat - systemd-cgls - systemd-cgtop - systemd-delta - systemd-detect-virt - systemd-inhibit - systemd-machine-id-setup - systemd-notify - systemd-nspawn - systemd-stdio-bridge - systemd-tmpfiles - systemd-tty-ask-password-agent - udevadm - systemd - systemd-ac-power - systemd-binfmt - systemd-cgroups-agent - systemd-fsck - systemd-initctl - systemd-journald - systemd-logind - systemd-modules-load - systemd-multi-seat-x - systemd-random-seed - systemd-readahead - systemd-remount-fs - systemd-reply-password - systemd-shutdown - systemd-shutdownd - systemd-sleep - systemd-sysctl - systemd-timestamp - systemd-udevd - systemd-update-utmp - systemd-user-sessions - systemd-vconsole-setup - systemd-fstab-generator - systemd-getty-generator - systemd-rc-local-generator - systemd-system-update-generator - accelerometer - ata_id - cdrom_id - collect - mtd_probe - scsi_id - v4l_id" + journalctl + loginctl + systemctl + systemd-analyze + systemd-ask-password + systemd-cat + systemd-cgls + systemd-cgtop + systemd-delta + systemd-detect-virt + systemd-inhibit + systemd-machine-id-setup + systemd-notify + systemd-nspawn + systemd-stdio-bridge + systemd-tmpfiles + systemd-tty-ask-password-agent + udevadm + systemd + systemd-ac-power + systemd-binfmt + systemd-cgroups-agent + systemd-fsck + systemd-initctl + systemd-journald + systemd-logind + systemd-modules-load + systemd-multi-seat-x + systemd-random-seed + systemd-readahead + systemd-remount-fs + systemd-reply-password + systemd-shutdown + systemd-shutdownd + systemd-sleep + systemd-sysctl + systemd-timestamp + systemd-udevd + systemd-update-utmp + systemd-user-sessions + systemd-vconsole-setup + systemd-fstab-generator + systemd-getty-generator + systemd-rc-local-generator + systemd-system-update-generator + accelerometer + ata_id + cdrom_id + collect + mtd_probe + scsi_id + v4l_id" REQUIRED_DIRECTORIES=" /etc /usr/include /usr/share/dbus-1 /usr/share/polkit-1 /usr/lib/udev - /usr/lib/systemd /usr/lib/tmpfiles.d " 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 f9ee1ae6..2cd92776 100755 --- a/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt +++ b/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt @@ -434,17 +434,28 @@ amixer -q sset Front "$VOL" unmute 2>/dev/null amixer -q sset Speaker "$VOL" unmute 2>/dev/null # annoying built-in speaker amixer -q sset 'Front Mic' "$VOL" unmute 2>/dev/null # to be checked if Mic is actually activated amixer -q sset 'Rear Mic' "$VOL" unmute 2>/dev/null # =""= +amixer -q -c pcsp sset Master "0%" mute 2>/dev/null # fix random static noise when starting vmplayer TODO: find out why?! -# Start printer daemon +# Start printer daemon +QUEUE="STANDARD" # This has to match the queue you configured in your VM USER="$(whoami)" -SPOOLDIR="/var/spool" -QUEUE="STANDARD" +# Try using users tmpfs home first, as it gets wiped on logout +if [ -n "${HOME}" ] && [ -w "${HOME}" ]; then + SPOOLDIR="${HOME}/.spool" + mkdir -p "${SPOOLDIR}/${QUEUE}" +fi +# If failed, try to fall back to /tmp +if [ -z "${SPOOLDIR}" ] || [ ! -w "${SPOOLDIR}/${QUEUE}" ]; then + SPOOLDIR="/tmp/printergui/${USER}/" + rm -rf -- "${SPOOLDIR}" + mkdir -p "${SPOOLDIR}/${QUEUE}" +fi # Start the lpdaemon listening on the given port -# FixMe: Solution for general printer redirection in other cases (iptables on outgoing port) +# TODO: externalize with something like runtvirt.d (other parts might benefit from that too) tcpsvd -E 192.168.101.1 5515 \ lpd "$SPOOLDIR" \ - sh -c "printergui $USER $SPOOLDIR/$QUEUE/\$DATAFILE" & + ash -c "/opt/openslx/cups/printergui '${USER}' \"${SPOOLDIR}/${QUEUE}/\$DATAFILE\"" & # PID to kill the process PID_LPD="$!" diff --git a/remote/modules/vmware/data/etc/vmware-vix/bootstrap b/remote/modules/vmware/data/etc/vmware-vix/bootstrap new file mode 100644 index 00000000..425074de --- /dev/null +++ b/remote/modules/vmware/data/etc/vmware-vix/bootstrap @@ -0,0 +1,2 @@ +BINDIR="/usr/bin" + diff --git a/remote/modules/vmware/data/etc/vmware/bootstrap b/remote/modules/vmware/data/etc/vmware/bootstrap new file mode 100644 index 00000000..0cc4af90 --- /dev/null +++ b/remote/modules/vmware/data/etc/vmware/bootstrap @@ -0,0 +1,12 @@ +PREFIX="/usr" +BINDIR="/usr/bin" +SBINDIR="/usr/sbin" +LIBDIR="/usr/lib" +DATADIR="/usr/share" +SYSCONFDIR="/etc" +DOCDIR="/usr/share/doc" +MANDIR="/usr/share/man" +INCLUDEDIR="/usr/include" +INITDIR="/etc" +INITSCRIPTDIR="/etc/init.d" + diff --git a/remote/modules/vmware/data/etc/vmware/config b/remote/modules/vmware/data/etc/vmware/config deleted file mode 100644 index c76cc885..00000000 --- a/remote/modules/vmware/data/etc/vmware/config +++ /dev/null @@ -1,9 +0,0 @@ -.encoding = "UTF-8" -prefvmx.minVmMemPct = "100" -prefvmx.useRecommendedLockedMemSize = "TRUE" -libdir = "/usr/lib/vmware" -mks.ctlAltDel.ignore = "TRUE" -mks.fullscreen.allowScreenSaver = "TRUE" -fullScreenSwitch.onSeparateDesktop = "TRUE" -msg.autoAnswer = "TRUE" - diff --git a/remote/modules/vmware/data/etc/vmware/icu b/remote/modules/vmware/data/etc/vmware/icu new file mode 120000 index 00000000..d1ebea7d --- /dev/null +++ b/remote/modules/vmware/data/etc/vmware/icu @@ -0,0 +1 @@ +/usr/lib/vmware/icu
\ No newline at end of file diff --git a/remote/modules/vmware/data/etc/vmware/locations b/remote/modules/vmware/data/etc/vmware/locations new file mode 100644 index 00000000..2d419546 --- /dev/null +++ b/remote/modules/vmware/data/etc/vmware/locations @@ -0,0 +1,3 @@ +# Empty locations file to catch downgrade +# to WS 6.0 +# OpenSLX: No idea what above means, but better have this file... ;-) diff --git a/remote/modules/vmware/data/etc/vmware/usbarb.rules b/remote/modules/vmware/data/etc/vmware/usbarb.rules new file mode 100644 index 00000000..ae107c7b --- /dev/null +++ b/remote/modules/vmware/data/etc/vmware/usbarb.rules @@ -0,0 +1,4 @@ +{ + "version": 1, + "rules": [] +} diff --git a/remote/modules/vmware/patches/vmblock__3.0-3.9__1.0-100.0.patch b/remote/modules/vmware/patches/vmblock__3.0-3.9__1.0-100.0.patch new file mode 100644 index 00000000..89b3a7c6 --- /dev/null +++ b/remote/modules/vmware/patches/vmblock__3.0-3.9__1.0-100.0.patch @@ -0,0 +1,11 @@ +--- a/linux/control.c 2013-10-18 19:56:11.000000000 +0200 ++++ b/linux/control.c 2014-02-14 15:54:59.895201379 +0100 +@@ -293,7 +293,7 @@ + + retval = i < 0 ? -EINVAL : blockOp(name, blocker); + +- putname(name); ++ __putname(name); + + return retval; + } diff --git a/remote/modules/vmware/patches/vmblock__3.10__1.0-100.0.patch b/remote/modules/vmware/patches/vmblock__3.10__1.0-100.0.patch new file mode 100644 index 00000000..e54317f9 --- /dev/null +++ b/remote/modules/vmware/patches/vmblock__3.10__1.0-100.0.patch @@ -0,0 +1,34 @@ +--- a/linux/control.c 2013-10-18 19:56:11.000000000 +0200 ++++ b/linux/control.c 2014-02-14 16:20:18.667236035 +0100 +@@ -208,17 +208,18 @@ + VMBlockSetProcEntryOwner(controlProcMountpoint); + + /* Create /proc/fs/vmblock/dev */ +- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME, ++ /* controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME, + VMBLOCK_CONTROL_MODE, +- controlProcDirEntry); +- if (!controlProcEntry) { ++ controlProcDirEntry);*/ ++ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME, VMBLOCK_CONTROL_MODE, controlProcDirEntry, &ControlFileOps); ++ if (controlProcEntry == NULL) { + Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n"); + remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry); + remove_proc_entry(VMBLOCK_CONTROL_PROC_DIRNAME, NULL); + return -EINVAL; + } + +- controlProcEntry->proc_fops = &ControlFileOps; ++ /*controlProcEntry->proc_fops = &ControlFileOps;*/ + return 0; + } + +@@ -293,7 +294,7 @@ + + retval = i < 0 ? -EINVAL : blockOp(name, blocker); + +- putname(name); ++ __putname(name); + + return retval; + } diff --git a/remote/modules/vmware/patches/vmblock__3.11-9.9__1.0-100.0.patch b/remote/modules/vmware/patches/vmblock__3.11-9.9__1.0-100.0.patch new file mode 100644 index 00000000..dedb2646 --- /dev/null +++ b/remote/modules/vmware/patches/vmblock__3.11-9.9__1.0-100.0.patch @@ -0,0 +1,123 @@ +--- a/linux/control.c 2013-10-18 19:56:11.000000000 +0200 ++++ b/linux/control.c 2014-02-14 16:20:18.667236035 +0100 +@@ -208,17 +208,18 @@ + VMBlockSetProcEntryOwner(controlProcMountpoint); + + /* Create /proc/fs/vmblock/dev */ +- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME, ++ /* controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME, + VMBLOCK_CONTROL_MODE, +- controlProcDirEntry); +- if (!controlProcEntry) { ++ controlProcDirEntry);*/ ++ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME, VMBLOCK_CONTROL_MODE, controlProcDirEntry, &ControlFileOps); ++ if (controlProcEntry == NULL) { + Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n"); + remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry); + remove_proc_entry(VMBLOCK_CONTROL_PROC_DIRNAME, NULL); + return -EINVAL; + } + +- controlProcEntry->proc_fops = &ControlFileOps; ++ /*controlProcEntry->proc_fops = &ControlFileOps;*/ + return 0; + } + +@@ -293,7 +294,7 @@ + + retval = i < 0 ? -EINVAL : blockOp(name, blocker); + +- putname(name); ++ __putname(name); + + return retval; + } +--- a/linux/file.c 2013-10-18 19:56:11.000000000 +0200 ++++ b/linux/file.c 2014-02-14 16:20:21.455236098 +0100 +@@ -38,46 +38,6 @@ + typedef ino_t inode_num_t; + #endif + +-/* Specifically for our filldir_t callback */ +-typedef struct FilldirInfo { +- filldir_t filldir; +- void *dirent; +-} FilldirInfo; +- +- +-/* +- *---------------------------------------------------------------------------- +- * +- * Filldir -- +- * +- * Callback function for readdir that we use in place of the one provided. +- * This allows us to specify that each dentry is a symlink, but pass through +- * everything else to the original filldir function. +- * +- * Results: +- * Original filldir's return value. +- * +- * Side effects: +- * Directory information gets copied to user's buffer. +- * +- *---------------------------------------------------------------------------- +- */ +- +-static int +-Filldir(void *buf, // IN: Dirent buffer passed from FileOpReaddir +- const char *name, // IN: Dirent name +- int namelen, // IN: len of dirent's name +- loff_t offset, // IN: Offset +- inode_num_t ino, // IN: Inode number of dirent +- unsigned int d_type) // IN: Type of file +-{ +- FilldirInfo *info = buf; +- +- /* Specify DT_LNK regardless */ +- return info->filldir(info->dirent, name, namelen, offset, ino, DT_LNK); +-} +- +- + /* File operations */ + + /* +@@ -166,11 +126,10 @@ + + static int + FileOpReaddir(struct file *file, // IN +- void *dirent, // IN +- filldir_t filldir) // IN ++ struct dir_context *ctx) // IN + { + int ret; +- FilldirInfo info; ++ + struct file *actualFile; + + if (!file) { +@@ -184,12 +143,10 @@ + return -EINVAL; + } + +- info.filldir = filldir; +- info.dirent = dirent; +- +- actualFile->f_pos = file->f_pos; +- ret = vfs_readdir(actualFile, Filldir, &info); +- file->f_pos = actualFile->f_pos; ++ /* Ricky Wong Yung Fei: ++ * Manipulation of pos is now handled internally by iterate_dir(). ++ */ ++ ret = iterate_dir(actualFile, ctx); + + return ret; + } +@@ -237,7 +194,7 @@ + + + struct file_operations RootFileOps = { +- .readdir = FileOpReaddir, ++ .iterate = FileOpReaddir, + .open = FileOpOpen, + .release = FileOpRelease, + }; diff --git a/remote/modules/vmware/templates/vmware/config b/remote/modules/vmware/templates/vmware/config new file mode 100644 index 00000000..d8420e0d --- /dev/null +++ b/remote/modules/vmware/templates/vmware/config @@ -0,0 +1,24 @@ +.encoding = "UTF-8" +installerDefaults.componentDownloadEnabled = "no" +installerDefaults.dataCollectionEnabled = "no" +installerDefaults.transferVersion = "1" +installerDefaults.autoSoftwareUpdateEnabled = "no" +NETWORKING = "yes" +VMBLOCK_CONFED = "yes" +VMCI_CONFED = "yes" +VSOCK_CONFED = "yes" +gksu.rootMethod = "sudo" +MemTrimRate = "0" +prefvmx.minVmMemPct = "100" +prefvmx.useRecommendedLockedMemSize = "TRUE" +libdir = "/usr/lib/vmware" +mks.ctlAltDel.ignore = "TRUE" +mks.fullscreen.allowScreenSaver = "TRUE" +fullScreenSwitch.onSeparateDesktop = "TRUE" +msg.autoAnswer = "TRUE" +authd.fullpath = "/usr/sbin/vmware-authd" +bindir = "/usr/bin" +vix.config.version = "1" +player.product.version = "%PLAYER_VERSION%" +product.buildNumber = "%BUILD_NUMBER%" + diff --git a/remote/modules/vmware/vmware.build b/remote/modules/vmware/vmware.build index 29b7491f..16ee4c77 100644 --- a/remote/modules/vmware/vmware.build +++ b/remote/modules/vmware/vmware.build @@ -27,6 +27,12 @@ fetch_source() { build() { local SRCDIR="./src/bundle" [ ! -d "$SRCDIR" ] && perror "Extracted vmplayer bundle not found in $SRCDIR - please clean vmplayer module." + local PLAYER_MANIFEST="$MODULE_DIR/$SRCDIR/vmware-player-app/manifest.xml" + local WORKSTATION_MANIFEST="$MODULE_DIR/$SRCDIR/vmware-workstation/manifest.xml" + local BUILD_NUMBER=$(grep -o -E '<buildNumber>[0-9]*</buildNumber>' "$PLAYER_MANIFEST" | grep -o -E '[0-9]*') + local PLAYER_VERSION=$(grep -o -E '<version>[0-9\.]*</version>' "$PLAYER_MANIFEST" | grep -o -E '[0-9\.]*') + local WORKSTATION_VERSION=$(grep -o -E '<version>[0-9\.]*</version>' "$WORKSTATION_MANIFEST" 2>/dev/null | grep -o -E '[0-9\.]*') + local CORE_VERSION=$(grep -o -E '<coreVersion>[0-9\.]*</coreVersion>' "$PLAYER_MANIFEST" | grep -o -E '[0-9\.]*') local TARGET="$MODULE_BUILD_DIR/usr/lib/vmware/" mkdir -p "$TARGET"{lib,share,bin} pinfo "Copying data to build dir" @@ -60,6 +66,10 @@ build() { sed -i 's#@@LIBCONF_DIR@@#/usr/lib/vmware/libconf#g' "$file" done + # Copy vmware config template + mkdir -p "$MODULE_BUILD_DIR/etc/vmware" + sed "s#%PLAYER_VERSION%#$PLAYER_VERSION#g;s#%BUILD_NUMBER%#$BUILD_NUMBER#g" "$MODULE_DIR/templates/vmware/config" > "$MODULE_BUILD_DIR/etc/vmware/config" + # Compile kernel modules pinfo "Compiling required kernel modules." # build modules @@ -72,7 +82,7 @@ post_copy() { tarcopy "$(find /usr/lib/ /usr/lib64 -name gconv -type d)" "$TARGET_BUILD_DIR" #Update Icon cache for vmplayer gtk-update-icon-cache-3.0 "${TARGET_BUILD_DIR}/usr/share/icons/hicolor/" || pwarning "update-icon-cache-3.0 failed." - #fix vmware-usbarbotrator bug + #fix vmware-usbarbitrator bug date +'%Y.%m.%d' >"${TARGET_BUILD_DIR}/etc/arch-release" copy_modules } @@ -83,15 +93,11 @@ build_modules() { local VMWARE_MODCONFIG="$MODULE_DIR/$SRCDIR/vmware-vmx/bin/vmware-modconfig" [ -e "$VMWARE_MODCONFIG" ] && chmod +x "$VMWARE_MODCONFIG" || perror "Could not find $VMWARE_MODCONFIG" # link vmware-modconfig-console in the build dir - local MANIFEST="$MODULE_DIR/$SRCDIR/vmware-vmx/manifest.xml" - local BUILD_NUMBER="$(grep -o -E '<buildNumber>[0-9]*</buildNumber>' "$MANIFEST"|grep -o -E '[0-9]*')" - local VERSION="$(grep -o -E '<version>[0-9\.]*</version>' "$MANIFEST"|grep -o -E '[0-9\.]*')" - local CORE_VERSION="$(grep -o -E '<coreVersion>[0-9\.]*</coreVersion>' "$MANIFEST"|grep -o -E '[0-9\.]*')" # /etc/vmware/config gen - sed -i.bak1 '/^ETCDIR/d;/^VMISETCDIR/d;/bootstrap/d' "$VMWARE_MODCONFIG" - sed -i.bak2 "s/libdir=.*/libdir=$(echo $MODULE_BUILD_DIR | escape_replace)\/usr\/lib\/vmware/g" "$VMWARE_MODCONFIG" - sed -i.bak3 "s#set -e#set -e\nPREFIX=\"/usr\"\nBINDIR=\"/usr/bin\"\nSBINDIR=\"/usr/sbin\"\nLIBDIR=\"/usr/lib\"\nDATADIR=\"/usr/share\"\nSYSCONFDIR=\"/etc\"\nDOCDIR=\"/usr/share/doc\"\nMANDIR=\"/usr/share/man\"\nINCLUDEDIR=\"/usr/include\"\nINITDIR=\"/etc\"\nINITSCRIPTDIR=\"/etc/init.d\"\nVMWARE_INSTALLER=\"/usr/lib/vmware-installer/$CORE_VERSION\"\nVERSION=\"$CORE_VERSION\"\nVMISVERSION=\"$CORE_VERSION\"\nVMISPYVERSION=\"25\"#g" "$VMWARE_MODCONFIG" + sed -i '/^ETCDIR/d;/^VMISETCDIR/d;/bootstrap/d' "$VMWARE_MODCONFIG" + sed -i "s/libdir=.*/libdir=$(echo $MODULE_BUILD_DIR | escape_replace)\/usr\/lib\/vmware/g" "$VMWARE_MODCONFIG" + sed -i "s#set -e#set -e\nPREFIX=\"/usr\"\nBINDIR=\"/usr/bin\"\nSBINDIR=\"/usr/sbin\"\nLIBDIR=\"/usr/lib\"\nDATADIR=\"/usr/share\"\nSYSCONFDIR=\"/etc\"\nDOCDIR=\"/usr/share/doc\"\nMANDIR=\"/usr/share/man\"\nINCLUDEDIR=\"/usr/include\"\nINITDIR=\"/etc\"\nINITSCRIPTDIR=\"/etc/init.d\"\nVMWARE_INSTALLER=\"/usr/lib/vmware-installer/$CORE_VERSION\"\nVERSION=\"$CORE_VERSION\"\nVMISVERSION=\"$CORE_VERSION\"\nVMISPYVERSION=\"25\"#g" "$VMWARE_MODCONFIG" [ -e "/etc/vmware/config" ] && cp "/etc/vmware/config" "/etc/vmware/config.mltk.bak" @@ -113,41 +119,63 @@ authd.fullpath = "/usr/sbin/vmware-authd" bindir = "/usr/bin" vmware.fullpath = "/usr/bin/vmware" vix.libdir = "/usr/lib/vmware-vix" -vix.config.version = "1" -player.product.version = "$VERSION" +vix.config.version = "1" +player.product.version = "$PLAYER_VERSION" product.buildNumber = "$BUILD_NUMBER" authd.client.port = "902" authd.proxy.nfc = "vmware-hostd:ha-nfc" authd.soapserver = "TRUE" -product.version = "$VERSION" -workstation.product.version = "$VERSION" -product.name = "VMware Workstation" +product.version = "$PLAYER_VERSION" +workstation.product.version = "$WORKSTATION_VERSION" +product.name = "VMware Player" EOF - mkdir -p "$MODULE_BUILD_DIR/usr/lib/vmware/modules" + mkdir -p "$MODULE_BUILD_DIR/usr/lib/vmware/modules" ln -sf "$MODULE_DIR/$SRCDIR/vmware-vmx/extra/modules.xml" "$MODULE_BUILD_DIR/usr/lib/vmware/modules/" ln -sf "$MODULE_DIR/$SRCDIR/vmware-vmx/lib/modules/source" "$MODULE_BUILD_DIR/usr/lib/vmware/modules/" ln -sf "appLoader" "$MODULE_BUILD_DIR/usr/lib/vmware/bin/vmware-modconfig" ln -sf "appLoader" "$MODULE_BUILD_DIR/usr/lib/vmware/bin/vmware-modconfig-console" - [ ! -e "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" ] && perror "Could not find uts release!!!" - local UTS_RELEASE="$(cat "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" | awk -F '"' '{print $2}')" - pinfo "Patching vmblock.tar" + # See what we need to patch cd "$MODULE_BUILD_DIR/usr/lib/vmware/modules/source" || perror "cd failed." - tar xf "vmblock.tar" || perror "untar of vmblock.tar failed." - for sourcefile in $(grep -l -r -E '\sputname' "vmblock-only/"); do - sed -r -i 's/\sputname/__putname/g' "$sourcefile" || perror "sed of $sourcefile failed." + local KMOD SHORT PATCH MIN_KERN MAX_KERN + for KMOD in *.tar; do + SHORT="${KMOD%%.tar}" + [ -e ".${SHORT}.patched" ] && continue + for PATCH in $(find "${MODULE_DIR}/patches/" -name "${SHORT}__*__*.patch"); do + parse_patch_name "$PATCH" + [ -z "${MIN_KERN}" -o -z "${MAX_KERN}" ] && perror "Could not parse patch filename" + if version_lt "$SYS_KERNEL" "$MIN_KERN" || version_gt "$SYS_KERNEL" "$MAX_KERN"; then + pinfo "*NOT* applying $PATCH (min=$MIN_KERN max=$MAX_KERN cmp=$SYS_KERNEL)" + continue # Not suitable for our kernel + fi + pinfo "Applying $PATCH (min=$MIN_KERN max=$MAX_KERN cmp=$SYS_KERNEL)" + [ ! -d "${SHORT}-only" ] && tar xf "$KMOD" + [ ! -d "${SHORT}-only" ] && perror "untar of $KMOD failed." + cd "${SHORT}-only" || perror "Where is ${SHORT}-only?" + if ! patch -p1 < "$PATCH"; then + cd .. + rm -rf -- "${SHORT}-only" + perror "Applying $PATCH failed." + fi + cd .. + done + if [ -d "${SHORT}-only" ]; then + tar cf "$KMOD" "${SHORT}-only/" || perror "repacking of $KMOD failed." + rm -rf -- "${SHORT}-only" + touch ".${SHORT}.patched" + fi done - tar cf "vmblock.tar" "vmblock-only/" || perror "repacking of vmblock.tar failed." - cd - - + cd "$MODULE_DIR" || perror "wat." + # + # Then, compile pinfo "KOMPILIERE VMWARE KERNEL MODULE" for MOD in vsock vmblock vmmon vmnet vmci; do pinfo "Kompiliere $MOD" - [ -s "/lib/modules/$UTS_RELEASE/vmplayer/$MOD.ko" ] && unlink "/lib/modules/$UTS_RELEASE/vmplayer/$MOD.ko" - "$VMWARE_MODCONFIG" --console --build-mod -k "$UTS_RELEASE" "$MOD" "$(which gcc)" "$MODULES_DIR/kernel/ksrc/include" "vmplayer" "$MOD" - [ ! -s "/lib/modules/$UTS_RELEASE/vmplayer/$MOD.ko" ] && perror "Error compiling via $VMWARE_MODCONFIG" - done + [ -s "/lib/modules/$SYS_UTS_RELEASE/vmplayer/$MOD.ko" ] && unlink "/lib/modules/$SYS_UTS_RELEASE/vmplayer/$MOD.ko" + "$VMWARE_MODCONFIG" --console --build-mod -k "$SYS_UTS_RELEASE" "$MOD" "$(which gcc)" "$MODULES_DIR/kernel/ksrc/include" "vmplayer" "$MOD" + [ ! -s "/lib/modules/$SYS_UTS_RELEASE/vmplayer/$MOD.ko" ] && perror "Error compiling via $VMWARE_MODCONFIG" + done cd - @@ -157,8 +185,19 @@ EOF } function copy_modules() { - local UTS_RELEASE="$(cat "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" | awk -F '"' '{print $2}')" mkdir -p "$TARGET_BUILD_DIR/lib/modules/vmware/" - cp "/lib/modules/$UTS_RELEASE/vmplayer/"* "$TARGET_BUILD_DIR/lib/modules/vmware/" || perror "Could not cp vmware modules to target!" + cp "/lib/modules/$SYS_UTS_RELEASE/vmplayer/"* "$TARGET_BUILD_DIR/lib/modules/vmware/" || perror "Could not cp vmware modules to target!" +} + +function parse_patch_name() { + [ $# -ne 1 ] && perror "parse_patch_name: Wrong parameter count." + local PATCH="$1" + MIN_KERN=$(echo "$PATCH" | sed -r 's/^[^_]+__([0-9\.]+)-[0-9\.]+__[^_]+\.patch$/\1/g') + [[ "$MIN_KERN" == /* ]] && MIN_KERN=$(echo "$PATCH" | sed -r 's/^[^_]+__([0-9\.]+)__[^_]+\.patch$/\1/g') + MAX_KERN=$(echo "$PATCH" | sed -r 's/^[^_]+__[0-9\.]+-([0-9\.]+)__[^_]+\.patch$/\1/g') + [[ "$MAX_KERN" == /* ]] && MAX_KERN=$(echo "$PATCH" | sed -r 's/^[^_]+__([0-9\.]+)__[^_]+\.patch$/\1/g') + [[ "$MIN_KERN" == /* ]] && MIN_KERN= + [[ "$MAX_KERN" == /* ]] && MAX_KERN= + # TODO: Parse min and max vmplayer/workstation version } diff --git a/remote/modules/xorg/data/etc/X11/Xsession b/remote/modules/xorg/data/etc/X11/Xsession index 914dd2e8..b61b9c2f 100755 --- a/remote/modules/xorg/data/etc/X11/Xsession +++ b/remote/modules/xorg/data/etc/X11/Xsession @@ -7,8 +7,46 @@ export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/usr/sbin:/opt/openslx/usr/bin:/opt/openslx/sbin:/opt/openslx/bin" +PROGNAME=Xsession -#Workaround to start Xsession. The original Xsession script includes error handling functionality and sources other scrips from the Xsession.d/ directory. +message () { + # pretty-print messages of arbitrary length; use xmessage if it + # is available and $DISPLAY is set + MESSAGE="$PROGNAME: $*" + echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2 + if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then + echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file - + fi +} + +message_nonl () { + # pretty-print messages of arbitrary length (no trailing newline); use + # xmessage if it is available and $DISPLAY is set + MESSAGE="$PROGNAME: $*" + echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2; + if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then + echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file - + fi +} + +errormsg () { + # exit script with error + message "$*" + exit 1 +} + +internal_errormsg () { + # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message + # One big call to message() for the sake of xmessage; if we had two then + # the user would have dismissed the error we want reported before seeing the + # request to report it. + errormsg "$*" \ + "Please report the installed version of the \"x11-common\"" \ + "package and the complete text of this error message to" \ + "<debian-x@lists.debian.org>." +} + +# Workaround to start Xsession. The original Xsession script includes error handling functionality and sources other scrips from the Xsession.d/ directory. SESSIONDIR="/etc/X11/Xsession.d" @@ -18,7 +56,10 @@ if [ -d "$SESSIONDIR" ]; then done fi -#start selected session +# Make sure we source the global profile - needed for ssh-agent, etc. +[ -e "/etc/profile" ] && source "/etc/profile" + +# start selected session case "$1" in failsafe) # Failsafe session was requested. @@ -36,6 +77,21 @@ case "$1" in "x-terminal-emulator not found; aborting." fi ;; + default) + # Specific program was requested. + SESSION="default" + if [ -e $HOME/.dmrc ]; then + SESSION=$(cat $HOME/.dmrc|grep "Session"| cut -d "=" -f2) + fi + # somehow .dmrc is cleared when logging in the first time after boot + if [ -e $HOME/.dmrc.real ]; then + SESSION=$(cat $HOME/.dmrc.real|grep "Session"| cut -d "=" -f2) + fi + [ "x$SESSION" == "xdefault" ] && SESSION="gnome" + CMD=$(cat /opt/openslx/xsessions/$SESSION.desktop|grep "Exec"| cut -d "=" -f2-99|head -n1) + exec $CMD + ;; + *) # Specific program was requested. STARTUP_FULL_PATH=$(/opt/openslx/usr/bin/which "${1%% *}" || true) @@ -51,4 +107,6 @@ case "$1" in "\"$1\" not found; falling back to default session." fi ;; + esac + diff --git a/remote/modules/xorg/xorg.conf.opensuse.13.1 b/remote/modules/xorg/xorg.conf.opensuse.13.1 new file mode 100644 index 00000000..6199ed15 --- /dev/null +++ b/remote/modules/xorg/xorg.conf.opensuse.13.1 @@ -0,0 +1,95 @@ +# xkbutils, xkbprint, setxkbmap, xkbevd for 64-bit openSuse +REQUIRED_INSTALLED_PACKAGES=" + xorg-x11 + xorg-x11 + xorg-x11-server + xorg-x11-driver-input + xorg-x11-driver-video + xorg-x11-driver-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_CONTENT_PACKAGES=" + xorg-x11 + xorg-x11-server + xorg-x11-driver-input + xorg-x11-driver-video + xorg-x11-driver-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=" + libI810XvMC + 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 +" |
