commit 914c0295ac5f3bd42dd5426f1e0b5418c0d33db3 Author: Alexander Popov Date: Sat Sep 27 22:09:23 2025 +0300 init diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1838fcb --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +# EditorConfig is awesome: https://EditorConfig.org +root = true + +# for all files +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +# Markdown +[*.md] +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..648e77c --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# packed rootfs +rootfs + +# / diff --git a/README.md b/README.md new file mode 100644 index 0000000..6e193bc --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ + +Распаковать **SquashFS**: + +```bash +mksquashfs ./squashfs-root/ rootfs +``` + +Запаковать **SquashFS**: + +```bash +unsquashfs rootfs +``` diff --git a/scripts/include/make-empty-folders.sh b/scripts/include/make-empty-folders.sh new file mode 100644 index 0000000..63795cf --- /dev/null +++ b/scripts/include/make-empty-folders.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +make_empty_folders() { + ROOT_PATH="./squashfs-root/" + + cd ${ROOT_PATH} + + mkdir -p boot \ + dev/pts \ + dev/shm \ + media/Data \ + mnt \ + opt \ + proc \ + root \ + run/dbus \ + sys \ + tmp/fontconfig \ + var/lib/alsa \ + var/www +} diff --git a/scripts/prepare.sh b/scripts/prepare.sh new file mode 100755 index 0000000..b6cddc4 --- /dev/null +++ b/scripts/prepare.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +source scripts/include/make-empty-folders.sh + +main() { + make_empty_folders +} + +main diff --git a/squashfs-root/bin/ash b/squashfs-root/bin/ash new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/ash @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/bgdc b/squashfs-root/bin/bgdc new file mode 100755 index 0000000..a318a05 Binary files /dev/null and b/squashfs-root/bin/bgdc differ diff --git a/squashfs-root/bin/bgdi b/squashfs-root/bin/bgdi new file mode 100755 index 0000000..96fea1d Binary files /dev/null and b/squashfs-root/bin/bgdi differ diff --git a/squashfs-root/bin/busybox b/squashfs-root/bin/busybox new file mode 100755 index 0000000..7b60a50 Binary files /dev/null and b/squashfs-root/bin/busybox differ diff --git a/squashfs-root/bin/cat b/squashfs-root/bin/cat new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/cat @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/chattr b/squashfs-root/bin/chattr new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/chattr @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/chgrp b/squashfs-root/bin/chgrp new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/chgrp @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/chmod b/squashfs-root/bin/chmod new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/chmod @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/chown b/squashfs-root/bin/chown new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/chown @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/cp b/squashfs-root/bin/cp new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/cp @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/cpio b/squashfs-root/bin/cpio new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/cpio @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/date b/squashfs-root/bin/date new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/date @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/dd b/squashfs-root/bin/dd new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/dd @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/df b/squashfs-root/bin/df new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/df @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/dmesg b/squashfs-root/bin/dmesg new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/dmesg @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/dnsdomainname b/squashfs-root/bin/dnsdomainname new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/dnsdomainname @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/dumpkmap b/squashfs-root/bin/dumpkmap new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/dumpkmap @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/echo b/squashfs-root/bin/echo new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/echo @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/egrep b/squashfs-root/bin/egrep new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/egrep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/false b/squashfs-root/bin/false new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/false @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/fdflush b/squashfs-root/bin/fdflush new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/fdflush @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/fgrep b/squashfs-root/bin/fgrep new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/fgrep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/getopt b/squashfs-root/bin/getopt new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/getopt @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/grep b/squashfs-root/bin/grep new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/grep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/gunzip b/squashfs-root/bin/gunzip new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/gunzip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/gzip b/squashfs-root/bin/gzip new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/gzip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/hostname b/squashfs-root/bin/hostname new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/hostname @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/kill b/squashfs-root/bin/kill new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/kill @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/kof_path_20190320 b/squashfs-root/bin/kof_path_20190320 new file mode 100755 index 0000000..e69de29 diff --git a/squashfs-root/bin/link b/squashfs-root/bin/link new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/link @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/linux32 b/squashfs-root/bin/linux32 new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/linux32 @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/linux64 b/squashfs-root/bin/linux64 new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/linux64 @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/ln b/squashfs-root/bin/ln new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/ln @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/login b/squashfs-root/bin/login new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/login @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/ls b/squashfs-root/bin/ls new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/ls @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/lsattr b/squashfs-root/bin/lsattr new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/lsattr @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/mkdir b/squashfs-root/bin/mkdir new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/mkdir @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/mknod b/squashfs-root/bin/mknod new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/mknod @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/mktemp b/squashfs-root/bin/mktemp new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/mktemp @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/moddesc b/squashfs-root/bin/moddesc new file mode 100755 index 0000000..48fb27b Binary files /dev/null and b/squashfs-root/bin/moddesc differ diff --git a/squashfs-root/bin/more b/squashfs-root/bin/more new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/more @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/mount b/squashfs-root/bin/mount new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/mount @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/mountpoint b/squashfs-root/bin/mountpoint new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/mountpoint @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/mt b/squashfs-root/bin/mt new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/mt @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/mv b/squashfs-root/bin/mv new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/mv @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/netstat b/squashfs-root/bin/netstat new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/netstat @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/nice b/squashfs-root/bin/nice new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/nice @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/pidof b/squashfs-root/bin/pidof new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/pidof @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/ping b/squashfs-root/bin/ping new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/ping @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/pipe_progress b/squashfs-root/bin/pipe_progress new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/pipe_progress @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/printenv b/squashfs-root/bin/printenv new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/printenv @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/ps b/squashfs-root/bin/ps new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/ps @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/pwd b/squashfs-root/bin/pwd new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/pwd @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/rm b/squashfs-root/bin/rm new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/rm @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/rmdir b/squashfs-root/bin/rmdir new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/rmdir @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/run-parts b/squashfs-root/bin/run-parts new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/run-parts @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/sed b/squashfs-root/bin/sed new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/sed @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/setarch b/squashfs-root/bin/setarch new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/setarch @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/setpriv b/squashfs-root/bin/setpriv new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/setpriv @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/setserial b/squashfs-root/bin/setserial new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/setserial @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/sh b/squashfs-root/bin/sh new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/sh @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/sleep b/squashfs-root/bin/sleep new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/sleep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/stty b/squashfs-root/bin/stty new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/stty @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/su b/squashfs-root/bin/su new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/su @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/sync b/squashfs-root/bin/sync new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/sync @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/tar b/squashfs-root/bin/tar new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/tar @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/touch b/squashfs-root/bin/touch new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/touch @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/true b/squashfs-root/bin/true new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/true @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/umount b/squashfs-root/bin/umount new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/umount @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/uname b/squashfs-root/bin/uname new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/uname @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/usleep b/squashfs-root/bin/usleep new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/usleep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/vi b/squashfs-root/bin/vi new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/vi @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/watch b/squashfs-root/bin/watch new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/watch @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/bin/zcat b/squashfs-root/bin/zcat new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/squashfs-root/bin/zcat @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/squashfs-root/dev/log b/squashfs-root/dev/log new file mode 120000 index 0000000..d96b3b1 --- /dev/null +++ b/squashfs-root/dev/log @@ -0,0 +1 @@ +../tmp/log \ No newline at end of file diff --git a/squashfs-root/etc/dbus-1/session.conf b/squashfs-root/etc/dbus-1/session.conf new file mode 100644 index 0000000..ebb2c51 --- /dev/null +++ b/squashfs-root/etc/dbus-1/session.conf @@ -0,0 +1,19 @@ + + + diff --git a/squashfs-root/etc/dbus-1/system.conf b/squashfs-root/etc/dbus-1/system.conf new file mode 100644 index 0000000..ec19776 --- /dev/null +++ b/squashfs-root/etc/dbus-1/system.conf @@ -0,0 +1,19 @@ + + + diff --git a/squashfs-root/etc/drirc b/squashfs-root/etc/drirc new file mode 100644 index 0000000..6ed35d8 --- /dev/null +++ b/squashfs-root/etc/drirc @@ -0,0 +1,286 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/etc/fonts/conf.d/10-hinting-slight.conf b/squashfs-root/etc/fonts/conf.d/10-hinting-slight.conf new file mode 120000 index 0000000..99241c8 --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/10-hinting-slight.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/10-hinting-slight.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/10-scale-bitmap-fonts.conf b/squashfs-root/etc/fonts/conf.d/10-scale-bitmap-fonts.conf new file mode 120000 index 0000000..7e50611 --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/10-scale-bitmap-fonts.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/20-unhint-small-vera.conf b/squashfs-root/etc/fonts/conf.d/20-unhint-small-vera.conf new file mode 120000 index 0000000..cde2cce --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/20-unhint-small-vera.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/30-metric-aliases.conf b/squashfs-root/etc/fonts/conf.d/30-metric-aliases.conf new file mode 120000 index 0000000..1880d96 --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/30-metric-aliases.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/30-metric-aliases.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/30-urw-aliases.conf b/squashfs-root/etc/fonts/conf.d/30-urw-aliases.conf new file mode 120000 index 0000000..2a3d2f4 --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/30-urw-aliases.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/30-urw-aliases.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/40-nonlatin.conf b/squashfs-root/etc/fonts/conf.d/40-nonlatin.conf new file mode 120000 index 0000000..c46eb4e --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/40-nonlatin.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/40-nonlatin.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/45-latin.conf b/squashfs-root/etc/fonts/conf.d/45-latin.conf new file mode 120000 index 0000000..cb1c08f --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/45-latin.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/45-latin.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/49-sansserif.conf b/squashfs-root/etc/fonts/conf.d/49-sansserif.conf new file mode 120000 index 0000000..2625516 --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/49-sansserif.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/49-sansserif.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/50-user.conf b/squashfs-root/etc/fonts/conf.d/50-user.conf new file mode 120000 index 0000000..62f8b14 --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/50-user.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/50-user.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/51-local.conf b/squashfs-root/etc/fonts/conf.d/51-local.conf new file mode 120000 index 0000000..39557bd --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/51-local.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/51-local.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/60-latin.conf b/squashfs-root/etc/fonts/conf.d/60-latin.conf new file mode 120000 index 0000000..020a763 --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/60-latin.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/60-latin.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/65-fonts-persian.conf b/squashfs-root/etc/fonts/conf.d/65-fonts-persian.conf new file mode 120000 index 0000000..c5ceafc --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/65-fonts-persian.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/65-fonts-persian.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/65-nonlatin.conf b/squashfs-root/etc/fonts/conf.d/65-nonlatin.conf new file mode 120000 index 0000000..eee5d46 --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/65-nonlatin.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/65-nonlatin.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/69-unifont.conf b/squashfs-root/etc/fonts/conf.d/69-unifont.conf new file mode 120000 index 0000000..313ab54 --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/69-unifont.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/69-unifont.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/80-delicious.conf b/squashfs-root/etc/fonts/conf.d/80-delicious.conf new file mode 120000 index 0000000..e2d1d22 --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/80-delicious.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/80-delicious.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/90-synthetic.conf b/squashfs-root/etc/fonts/conf.d/90-synthetic.conf new file mode 120000 index 0000000..20e176b --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/90-synthetic.conf @@ -0,0 +1 @@ +/usr/share/fontconfig/conf.avail/90-synthetic.conf \ No newline at end of file diff --git a/squashfs-root/etc/fonts/conf.d/README b/squashfs-root/etc/fonts/conf.d/README new file mode 100644 index 0000000..6a774c5 --- /dev/null +++ b/squashfs-root/etc/fonts/conf.d/README @@ -0,0 +1,23 @@ +conf.d/README + +Each file in this directory is a fontconfig configuration file. Fontconfig +scans this directory, loading all files of the form [0-9][0-9]*.conf. +These files are normally installed in /usr/share/fontconfig/conf.avail +and then symlinked here, allowing them to be easily installed and then +enabled/disabled by adjusting the symlinks. + +The files are loaded in numeric order, the structure of the configuration +has led to the following conventions in usage: + + Files begining with: Contain: + + 00 through 09 Font directories + 10 through 19 system rendering defaults (AA, etc) + 20 through 29 font rendering options + 30 through 39 family substitution + 40 through 49 generic identification, map family->generic + 50 through 59 alternate config file loading + 60 through 69 generic aliases, map generic->family + 70 through 79 select font (adjust which fonts are available) + 80 through 89 match target="scan" (modify scanned patterns) + 90 through 99 font synthesis diff --git a/squashfs-root/etc/fonts/fonts.conf b/squashfs-root/etc/fonts/fonts.conf new file mode 100644 index 0000000..ea3c300 --- /dev/null +++ b/squashfs-root/etc/fonts/fonts.conf @@ -0,0 +1,89 @@ + + + + + + + + + + /usr/share/fonts + + fonts + + ~/.fonts + + + + + mono + + + monospace + + + + + + + sans serif + + + sans-serif + + + + + + + sans + + + sans-serif + + + + + conf.d + + + + /var/cache/fontconfig + fontconfig + + ~/.fontconfig + + + + + 30 + + + + diff --git a/squashfs-root/etc/fstab b/squashfs-root/etc/fstab new file mode 100644 index 0000000..e259a3c --- /dev/null +++ b/squashfs-root/etc/fstab @@ -0,0 +1,8 @@ +# +/dev/root / ext2 rw,noauto 0 1 +proc /proc proc defaults 0 0 +devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0 +tmpfs /dev/shm tmpfs mode=0777 0 0 +tmpfs /tmp tmpfs mode=1777 0 0 +tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0 +sysfs /sys sysfs defaults 0 0 diff --git a/squashfs-root/etc/group b/squashfs-root/etc/group new file mode 100644 index 0000000..4a020fd --- /dev/null +++ b/squashfs-root/etc/group @@ -0,0 +1,27 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +kmem:x:9: +wheel:x:10:root +cdrom:x:11: +dialout:x:18: +floppy:x:19: +video:x:28: +audio:x:29: +tape:x:32: +www-data:x:33: +operator:x:37: +utmp:x:43: +plugdev:x:46: +staff:x:50: +lock:x:54: +netdev:x:82: +users:x:100: +nogroup:x:65534: +dbus:x:1000:dbus diff --git a/squashfs-root/etc/hostname b/squashfs-root/etc/hostname new file mode 100644 index 0000000..024eace --- /dev/null +++ b/squashfs-root/etc/hostname @@ -0,0 +1 @@ +ranko diff --git a/squashfs-root/etc/hosts b/squashfs-root/etc/hosts new file mode 100644 index 0000000..0ff06c5 --- /dev/null +++ b/squashfs-root/etc/hosts @@ -0,0 +1,2 @@ +127.0.0.1 localhost +127.0.1.1 ranko diff --git a/squashfs-root/etc/init.d/disabled/S01logging b/squashfs-root/etc/init.d/disabled/S01logging new file mode 100755 index 0000000..4632a4c --- /dev/null +++ b/squashfs-root/etc/init.d/disabled/S01logging @@ -0,0 +1,40 @@ +#!/bin/sh +# +# Start logging +# + +SYSLOGD_ARGS=-n +KLOGD_ARGS=-n +[ -r /etc/default/logging ] && . /etc/default/logging + +start() { + printf "Starting logging: " + start-stop-daemon -b -S -q -m -p /var/run/syslogd.pid --exec /sbin/syslogd -- $SYSLOGD_ARGS + start-stop-daemon -b -S -q -m -p /var/run/klogd.pid --exec /sbin/klogd -- $KLOGD_ARGS + echo "OK" +} + +stop() { + printf "Stopping logging: " + start-stop-daemon -K -q -p /var/run/syslogd.pid + start-stop-daemon -K -q -p /var/run/klogd.pid + echo "OK" +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + stop + start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/squashfs-root/etc/init.d/disabled/S20urandom b/squashfs-root/etc/init.d/disabled/S20urandom new file mode 100755 index 0000000..cababe1 --- /dev/null +++ b/squashfs-root/etc/init.d/disabled/S20urandom @@ -0,0 +1,51 @@ +#! /bin/sh +# +# urandom This script saves the random seed between reboots. +# It is called from the boot, halt and reboot scripts. +# +# Version: @(#)urandom 1.33 22-Jun-1998 miquels@cistron.nl +# + +[ -c /dev/urandom ] || exit 0 +#. /etc/default/rcS + +case "$1" in + start|"") + # check for read only file system + if ! touch /etc/random-seed 2>/dev/null + then + echo "read-only file system detected...done" + exit + fi + if [ "$VERBOSE" != no ] + then + printf "Initializing random number generator... " + fi + # Load and then save 512 bytes, + # which is the size of the entropy pool + cat /etc/random-seed >/dev/urandom + rm -f /etc/random-seed + umask 077 + dd if=/dev/urandom of=/etc/random-seed count=1 \ + >/dev/null 2>&1 || echo "urandom start: failed." + umask 022 + [ "$VERBOSE" != no ] && echo "done." + ;; + stop) + if ! touch /etc/random-seed 2>/dev/null + then + exit + fi + # Carry a random seed from shut-down to start-up; + # see documentation in linux/drivers/char/random.c + [ "$VERBOSE" != no ] && printf "Saving random seed... " + umask 077 + dd if=/dev/urandom of=/etc/random-seed count=1 \ + >/dev/null 2>&1 || echo "urandom stop: failed." + [ "$VERBOSE" != no ] && echo "done." + ;; + *) + echo "Usage: urandom {start|stop}" >&2 + exit 1 + ;; +esac diff --git a/squashfs-root/etc/init.d/disabled/S30dbus b/squashfs-root/etc/init.d/disabled/S30dbus new file mode 100755 index 0000000..b4bcf9c --- /dev/null +++ b/squashfs-root/etc/init.d/disabled/S30dbus @@ -0,0 +1,74 @@ +#!/bin/sh +# +# messagebus: The D-BUS systemwide message bus +# +# chkconfig: 345 97 03 +# description: This is a daemon which broadcasts notifications of system events \ +# and other messages. See http://www.freedesktop.org/software/dbus/ +# +# processname: dbus-daemon +# pidfile: /var/run/messagebus.pid +# + +# Sanity checks. +[ -x /usr/bin/dbus-daemon ] || exit 0 + +# Create needed directories. +[ -d /var/run/dbus ] || mkdir -p /var/run/dbus +[ -d /var/lock/subsys ] || mkdir -p /var/lock/subsys +[ -d /tmp/dbus ] || mkdir -p /tmp/dbus + +RETVAL=0 + +start() { + printf "Starting system message bus: " + + dbus-uuidgen --ensure + dbus-daemon --system + RETVAL=$? + echo "done" + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dbus-daemon +} + +stop() { + printf "Stopping system message bus: " + + ## we don't want to kill all the per-user $processname, we want + ## to use the pid file *only*; because we use the fake nonexistent + ## program name "$servicename" that should be safe-ish + killall dbus-daemon + RETVAL=$? + echo "done" + if [ $RETVAL -eq 0 ]; then + rm -f /var/lock/subsys/dbus-daemon + rm -f /var/run/messagebus.pid + fi +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + condrestart) + if [ -f /var/lock/subsys/$servicename ]; then + stop + start + fi + ;; + reload) + echo "Message bus can't reload its configuration, you have to restart it" + RETVAL=$? + ;; + *) + echo "Usage: $0 {start|stop|restart|condrestart|reload}" + ;; +esac +exit $RETVAL diff --git a/squashfs-root/etc/init.d/disabled/S40network b/squashfs-root/etc/init.d/disabled/S40network new file mode 100755 index 0000000..642c501 --- /dev/null +++ b/squashfs-root/etc/init.d/disabled/S40network @@ -0,0 +1,30 @@ +#!/bin/sh +# +# Start the network.... +# + +# Debian ifupdown needs the /run/network lock directory +mkdir -p /run/network + +case "$1" in + start) + printf "Starting network: " + /sbin/ifup -a + [ $? = 0 ] && echo "OK" || echo "FAIL" + ;; + stop) + printf "Stopping network: " + /sbin/ifdown -a + [ $? = 0 ] && echo "OK" || echo "FAIL" + ;; + restart|reload) + "$0" stop + "$0" start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? + diff --git a/squashfs-root/etc/init.d/rcK b/squashfs-root/etc/init.d/rcK new file mode 100755 index 0000000..59e9c54 --- /dev/null +++ b/squashfs-root/etc/init.d/rcK @@ -0,0 +1,27 @@ +#!/bin/sh + + +# Stop all init scripts in /etc/init.d +# executing them in reversed numerical order. +# +for i in $(ls -r /etc/init.d/S??*) ;do + + # Ignore dangling symlinks (if any). + [ ! -f "$i" ] && continue + + case "$i" in + *.sh) + # Source shell script for speed. + ( + trap - INT QUIT TSTP + set stop + . $i + ) + ;; + *) + # No sh extension, so fork subprocess. + $i stop + ;; + esac +done + diff --git a/squashfs-root/etc/init.d/rcS b/squashfs-root/etc/init.d/rcS new file mode 100755 index 0000000..de41153 --- /dev/null +++ b/squashfs-root/etc/init.d/rcS @@ -0,0 +1,27 @@ +#!/bin/sh + + +# Start all init scripts in /etc/init.d +# executing them in numerical order. +# +for i in /etc/init.d/S??* ;do + + # Ignore dangling symlinks (if any). + [ ! -f "$i" ] && continue + + case "$i" in + *.sh) + # Source shell script for speed. + ( + trap - INT QUIT TSTP + set start + . $i + ) + ;; + *) + # No sh extension, so fork subprocess. + $i start + ;; + esac +done + diff --git a/squashfs-root/etc/inittab b/squashfs-root/etc/inittab new file mode 100755 index 0000000..a0d0c38 --- /dev/null +++ b/squashfs-root/etc/inittab @@ -0,0 +1,40 @@ +# /etc/inittab +# +# Copyright (C) 2001 Erik Andersen +# +# Note: BusyBox init doesn't support runlevels. The runlevels field is +# completely ignored by BusyBox init. If you want runlevels, use +# sysvinit. +# +# Format for each entry: ::: +# +# id == tty to run on, or empty for /dev/console +# runlevels == ignored +# action == one of sysinit, respawn, askfirst, wait, and once +# process == program to run + +# Startup the system +::sysinit:/bin/mount -t proc proc /proc +::sysinit:/bin/mount -o remount,ro / -t vfat +::sysinit:/bin/mkdir -p /dev/pts +::sysinit:/bin/mkdir -p /dev/shm +::sysinit:/bin/mount -a +::sysinit:/bin/hostname -F /etc/hostname +::sysinit:/bin/mount -o remount,rw /boot -t vfat +::sysinit:/bin/mount /boot /mnt +::sysinit:/sbin/swapon /mnt/.swap.img +#::sysinit:/bin/mount /dev/mmcblk0p2 /media/Data -t ext2 -o rw,sync,utf8 + + +# now run any rc scripts +#::sysinit:/etc/init.d/rcS +tty1::respawn:/etc/main +console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL + +# Stuff to do for the 3-finger salute +#::ctrlaltdel:/sbin/reboot + +# Stuff to do before rebooting +#::shutdown:/etc/init.d/rcK +::shutdown:/sbin/swapoff -a +::shutdown:/bin/umount -a -r diff --git a/squashfs-root/etc/inputrc b/squashfs-root/etc/inputrc new file mode 100644 index 0000000..2f1cb60 --- /dev/null +++ b/squashfs-root/etc/inputrc @@ -0,0 +1,44 @@ +# /etc/inputrc - global inputrc for libreadline +# See readline(3readline) and `info readline' for more information. + +# Be 8 bit clean. +set input-meta on +set output-meta on +set bell-style visible + +# To allow the use of 8bit-characters like the german umlauts, comment out +# the line below. However this makes the meta key not work as a meta key, +# which is annoying to those which don't need to type in 8-bit characters. + +# set convert-meta off + +"\e0d": backward-word +"\e0c": forward-word +"\e[h": beginning-of-line +"\e[f": end-of-line +"\e[1~": beginning-of-line +"\e[4~": end-of-line +#"\e[5~": beginning-of-history +#"\e[6~": end-of-history +"\e[3~": delete-char +"\e[2~": quoted-insert + +# Common standard keypad and cursor +# (codes courtsey Werner Fink, ) +#"\e[1~": history-search-backward +"\e[2~": yank +"\e[3~": delete-char +#"\e[4~": set-mark +"\e[5~": history-search-backward +"\e[6~": history-search-forward +# Normal keypad and cursor of xterm +"\e[F": end-of-line +"\e[H": beginning-of-line +# Application keypad and cursor of xterm +"\eOA": previous-history +"\eOC": forward-char +"\eOB": next-history +"\eOD": backward-char +"\eOF": end-of-line +"\eOH": beginning-of-line + diff --git a/squashfs-root/etc/instruments/README b/squashfs-root/etc/instruments/README new file mode 100755 index 0000000..2c384e6 --- /dev/null +++ b/squashfs-root/etc/instruments/README @@ -0,0 +1,4 @@ + +These patches were obtained from: + http://www.stardate.bc.ca/gus_patches.htm + diff --git a/squashfs-root/etc/instruments/acbass.pat b/squashfs-root/etc/instruments/acbass.pat new file mode 100755 index 0000000..233f9c6 Binary files /dev/null and b/squashfs-root/etc/instruments/acbass.pat differ diff --git a/squashfs-root/etc/instruments/accordn.pat b/squashfs-root/etc/instruments/accordn.pat new file mode 100755 index 0000000..babb222 Binary files /dev/null and b/squashfs-root/etc/instruments/accordn.pat differ diff --git a/squashfs-root/etc/instruments/acguitar.pat b/squashfs-root/etc/instruments/acguitar.pat new file mode 100755 index 0000000..d4a153b Binary files /dev/null and b/squashfs-root/etc/instruments/acguitar.pat differ diff --git a/squashfs-root/etc/instruments/acpiano.pat b/squashfs-root/etc/instruments/acpiano.pat new file mode 100755 index 0000000..9476e04 Binary files /dev/null and b/squashfs-root/etc/instruments/acpiano.pat differ diff --git a/squashfs-root/etc/instruments/agogo.pat b/squashfs-root/etc/instruments/agogo.pat new file mode 100755 index 0000000..39b4a15 Binary files /dev/null and b/squashfs-root/etc/instruments/agogo.pat differ diff --git a/squashfs-root/etc/instruments/agogohi.pat b/squashfs-root/etc/instruments/agogohi.pat new file mode 100755 index 0000000..098cbd3 Binary files /dev/null and b/squashfs-root/etc/instruments/agogohi.pat differ diff --git a/squashfs-root/etc/instruments/agogolo.pat b/squashfs-root/etc/instruments/agogolo.pat new file mode 100755 index 0000000..1b5fc8d Binary files /dev/null and b/squashfs-root/etc/instruments/agogolo.pat differ diff --git a/squashfs-root/etc/instruments/altosax.pat b/squashfs-root/etc/instruments/altosax.pat new file mode 100755 index 0000000..2b1e482 Binary files /dev/null and b/squashfs-root/etc/instruments/altosax.pat differ diff --git a/squashfs-root/etc/instruments/applause.pat b/squashfs-root/etc/instruments/applause.pat new file mode 100755 index 0000000..7b6c19f Binary files /dev/null and b/squashfs-root/etc/instruments/applause.pat differ diff --git a/squashfs-root/etc/instruments/atmosphr.pat b/squashfs-root/etc/instruments/atmosphr.pat new file mode 100755 index 0000000..069ea83 Binary files /dev/null and b/squashfs-root/etc/instruments/atmosphr.pat differ diff --git a/squashfs-root/etc/instruments/aurora.pat b/squashfs-root/etc/instruments/aurora.pat new file mode 100755 index 0000000..03ecc2f Binary files /dev/null and b/squashfs-root/etc/instruments/aurora.pat differ diff --git a/squashfs-root/etc/instruments/bagpipes.pat b/squashfs-root/etc/instruments/bagpipes.pat new file mode 100755 index 0000000..3dc7986 Binary files /dev/null and b/squashfs-root/etc/instruments/bagpipes.pat differ diff --git a/squashfs-root/etc/instruments/banjo.pat b/squashfs-root/etc/instruments/banjo.pat new file mode 100755 index 0000000..540124e Binary files /dev/null and b/squashfs-root/etc/instruments/banjo.pat differ diff --git a/squashfs-root/etc/instruments/barisax.pat b/squashfs-root/etc/instruments/barisax.pat new file mode 100755 index 0000000..40918ff Binary files /dev/null and b/squashfs-root/etc/instruments/barisax.pat differ diff --git a/squashfs-root/etc/instruments/basslead.pat b/squashfs-root/etc/instruments/basslead.pat new file mode 100755 index 0000000..c771910 Binary files /dev/null and b/squashfs-root/etc/instruments/basslead.pat differ diff --git a/squashfs-root/etc/instruments/bassoon.pat b/squashfs-root/etc/instruments/bassoon.pat new file mode 100755 index 0000000..d720351 Binary files /dev/null and b/squashfs-root/etc/instruments/bassoon.pat differ diff --git a/squashfs-root/etc/instruments/belltree.pat b/squashfs-root/etc/instruments/belltree.pat new file mode 100755 index 0000000..961278d Binary files /dev/null and b/squashfs-root/etc/instruments/belltree.pat differ diff --git a/squashfs-root/etc/instruments/bongohi.pat b/squashfs-root/etc/instruments/bongohi.pat new file mode 100755 index 0000000..8940669 Binary files /dev/null and b/squashfs-root/etc/instruments/bongohi.pat differ diff --git a/squashfs-root/etc/instruments/bongolo.pat b/squashfs-root/etc/instruments/bongolo.pat new file mode 100755 index 0000000..8a3283a Binary files /dev/null and b/squashfs-root/etc/instruments/bongolo.pat differ diff --git a/squashfs-root/etc/instruments/bottle.pat b/squashfs-root/etc/instruments/bottle.pat new file mode 100755 index 0000000..fb64e7b Binary files /dev/null and b/squashfs-root/etc/instruments/bottle.pat differ diff --git a/squashfs-root/etc/instruments/bowglass.pat b/squashfs-root/etc/instruments/bowglass.pat new file mode 100755 index 0000000..3b54895 Binary files /dev/null and b/squashfs-root/etc/instruments/bowglass.pat differ diff --git a/squashfs-root/etc/instruments/britepno.pat b/squashfs-root/etc/instruments/britepno.pat new file mode 100755 index 0000000..189ed90 Binary files /dev/null and b/squashfs-root/etc/instruments/britepno.pat differ diff --git a/squashfs-root/etc/instruments/cabasa.pat b/squashfs-root/etc/instruments/cabasa.pat new file mode 100755 index 0000000..b92d278 Binary files /dev/null and b/squashfs-root/etc/instruments/cabasa.pat differ diff --git a/squashfs-root/etc/instruments/calliope.pat b/squashfs-root/etc/instruments/calliope.pat new file mode 100755 index 0000000..0cfea3c Binary files /dev/null and b/squashfs-root/etc/instruments/calliope.pat differ diff --git a/squashfs-root/etc/instruments/carillon.pat b/squashfs-root/etc/instruments/carillon.pat new file mode 100755 index 0000000..4fccffc Binary files /dev/null and b/squashfs-root/etc/instruments/carillon.pat differ diff --git a/squashfs-root/etc/instruments/castinet.pat b/squashfs-root/etc/instruments/castinet.pat new file mode 100755 index 0000000..608186e Binary files /dev/null and b/squashfs-root/etc/instruments/castinet.pat differ diff --git a/squashfs-root/etc/instruments/celeste.pat b/squashfs-root/etc/instruments/celeste.pat new file mode 100755 index 0000000..cb5919b Binary files /dev/null and b/squashfs-root/etc/instruments/celeste.pat differ diff --git a/squashfs-root/etc/instruments/cello.pat b/squashfs-root/etc/instruments/cello.pat new file mode 100755 index 0000000..9895b1c Binary files /dev/null and b/squashfs-root/etc/instruments/cello.pat differ diff --git a/squashfs-root/etc/instruments/charang.pat b/squashfs-root/etc/instruments/charang.pat new file mode 100755 index 0000000..37f75ba Binary files /dev/null and b/squashfs-root/etc/instruments/charang.pat differ diff --git a/squashfs-root/etc/instruments/chiflead.pat b/squashfs-root/etc/instruments/chiflead.pat new file mode 100755 index 0000000..2d21310 Binary files /dev/null and b/squashfs-root/etc/instruments/chiflead.pat differ diff --git a/squashfs-root/etc/instruments/choir.pat b/squashfs-root/etc/instruments/choir.pat new file mode 100755 index 0000000..a656937 Binary files /dev/null and b/squashfs-root/etc/instruments/choir.pat differ diff --git a/squashfs-root/etc/instruments/church.pat b/squashfs-root/etc/instruments/church.pat new file mode 100755 index 0000000..2af24c6 Binary files /dev/null and b/squashfs-root/etc/instruments/church.pat differ diff --git a/squashfs-root/etc/instruments/claps.pat b/squashfs-root/etc/instruments/claps.pat new file mode 100755 index 0000000..2e0b3df Binary files /dev/null and b/squashfs-root/etc/instruments/claps.pat differ diff --git a/squashfs-root/etc/instruments/clarinet.pat b/squashfs-root/etc/instruments/clarinet.pat new file mode 100755 index 0000000..0ee962a Binary files /dev/null and b/squashfs-root/etc/instruments/clarinet.pat differ diff --git a/squashfs-root/etc/instruments/clave.pat b/squashfs-root/etc/instruments/clave.pat new file mode 100755 index 0000000..569ef5a Binary files /dev/null and b/squashfs-root/etc/instruments/clave.pat differ diff --git a/squashfs-root/etc/instruments/clavinet.pat b/squashfs-root/etc/instruments/clavinet.pat new file mode 100755 index 0000000..bc3d77f Binary files /dev/null and b/squashfs-root/etc/instruments/clavinet.pat differ diff --git a/squashfs-root/etc/instruments/cleangtr.pat b/squashfs-root/etc/instruments/cleangtr.pat new file mode 100755 index 0000000..3e07bd8 Binary files /dev/null and b/squashfs-root/etc/instruments/cleangtr.pat differ diff --git a/squashfs-root/etc/instruments/concrtna.pat b/squashfs-root/etc/instruments/concrtna.pat new file mode 100755 index 0000000..bbd5fb9 Binary files /dev/null and b/squashfs-root/etc/instruments/concrtna.pat differ diff --git a/squashfs-root/etc/instruments/congahi1.pat b/squashfs-root/etc/instruments/congahi1.pat new file mode 100755 index 0000000..ad079f5 Binary files /dev/null and b/squashfs-root/etc/instruments/congahi1.pat differ diff --git a/squashfs-root/etc/instruments/congahi2.pat b/squashfs-root/etc/instruments/congahi2.pat new file mode 100755 index 0000000..850a8b8 Binary files /dev/null and b/squashfs-root/etc/instruments/congahi2.pat differ diff --git a/squashfs-root/etc/instruments/congalo.pat b/squashfs-root/etc/instruments/congalo.pat new file mode 100755 index 0000000..f4c4c44 Binary files /dev/null and b/squashfs-root/etc/instruments/congalo.pat differ diff --git a/squashfs-root/etc/instruments/contraba.pat b/squashfs-root/etc/instruments/contraba.pat new file mode 100755 index 0000000..d43a7c0 Binary files /dev/null and b/squashfs-root/etc/instruments/contraba.pat differ diff --git a/squashfs-root/etc/instruments/copyright.txt b/squashfs-root/etc/instruments/copyright.txt new file mode 100755 index 0000000..a18670a --- /dev/null +++ b/squashfs-root/etc/instruments/copyright.txt @@ -0,0 +1,34 @@ +There has been some interest in using this patch set commercially. I am +flattered, but I'm not sure what to say here. I know that there are some +patches that came from the ultrasnd mirrors which contained notices that +they did not wish for them to be used commercially. Since I raided the +ultrasnd archives many years ago, I couldn't remember which ones were +covered by this, so I just flatly said that the whole set was for +non-commercial use only. Since then, I have extracted the *.txt and read*.* +files out of all the archives and grep'd them for "commercial". While several +of them came up as only being for non-commercial use, there are only a few in +my set to which this applies. These are: + +nearly the entire Analog drumset, drumset 25 +pistol.pat +pistol2.pat (not currently mapped in cfg files) +machgun1.pat (not currently mapped in cfg files) + +So, basicly you can not use the analog drums or the pistol files in any +commercial work. This is out of my hands. The rest of the patches are fully +public domain as far as I know. It should not be hard to find another +pistol which sounds almost as good. As for the analog drumset, just go buy +yourself a real TR808 or some other product far superior to these patches. + +If you DO use this patch set in a commercial production, I'd like to hear +about it. A free copy of the production might be nice too :) + + + + +Eric A. Welsh +ewelsh@gpc.ibc.wustl.edu +Center for Molecular Design +Institute for Biomedical Computing +Washington University +St. Louis, MO diff --git a/squashfs-root/etc/instruments/cowbell.pat b/squashfs-root/etc/instruments/cowbell.pat new file mode 100755 index 0000000..3ad5703 Binary files /dev/null and b/squashfs-root/etc/instruments/cowbell.pat differ diff --git a/squashfs-root/etc/instruments/crystal.pat b/squashfs-root/etc/instruments/crystal.pat new file mode 100755 index 0000000..e708ab2 Binary files /dev/null and b/squashfs-root/etc/instruments/crystal.pat differ diff --git a/squashfs-root/etc/instruments/cuica1.pat b/squashfs-root/etc/instruments/cuica1.pat new file mode 100755 index 0000000..7a4c640 Binary files /dev/null and b/squashfs-root/etc/instruments/cuica1.pat differ diff --git a/squashfs-root/etc/instruments/cuica2.pat b/squashfs-root/etc/instruments/cuica2.pat new file mode 100755 index 0000000..b169298 Binary files /dev/null and b/squashfs-root/etc/instruments/cuica2.pat differ diff --git a/squashfs-root/etc/instruments/cymbell.pat b/squashfs-root/etc/instruments/cymbell.pat new file mode 100755 index 0000000..9c62ba1 Binary files /dev/null and b/squashfs-root/etc/instruments/cymbell.pat differ diff --git a/squashfs-root/etc/instruments/cymchina.pat b/squashfs-root/etc/instruments/cymchina.pat new file mode 100755 index 0000000..ddd7bf4 Binary files /dev/null and b/squashfs-root/etc/instruments/cymchina.pat differ diff --git a/squashfs-root/etc/instruments/cymcrsh1.pat b/squashfs-root/etc/instruments/cymcrsh1.pat new file mode 100755 index 0000000..30e9e01 Binary files /dev/null and b/squashfs-root/etc/instruments/cymcrsh1.pat differ diff --git a/squashfs-root/etc/instruments/cymcrsh2.pat b/squashfs-root/etc/instruments/cymcrsh2.pat new file mode 100755 index 0000000..3ee73a5 Binary files /dev/null and b/squashfs-root/etc/instruments/cymcrsh2.pat differ diff --git a/squashfs-root/etc/instruments/cymride1.pat b/squashfs-root/etc/instruments/cymride1.pat new file mode 100755 index 0000000..484e828 Binary files /dev/null and b/squashfs-root/etc/instruments/cymride1.pat differ diff --git a/squashfs-root/etc/instruments/cymride2.pat b/squashfs-root/etc/instruments/cymride2.pat new file mode 100755 index 0000000..2456b58 Binary files /dev/null and b/squashfs-root/etc/instruments/cymride2.pat differ diff --git a/squashfs-root/etc/instruments/cymsplsh.pat b/squashfs-root/etc/instruments/cymsplsh.pat new file mode 100755 index 0000000..0302359 Binary files /dev/null and b/squashfs-root/etc/instruments/cymsplsh.pat differ diff --git a/squashfs-root/etc/instruments/distgtr.pat b/squashfs-root/etc/instruments/distgtr.pat new file mode 100755 index 0000000..0cf3edd Binary files /dev/null and b/squashfs-root/etc/instruments/distgtr.pat differ diff --git a/squashfs-root/etc/instruments/doo.pat b/squashfs-root/etc/instruments/doo.pat new file mode 100755 index 0000000..6664505 Binary files /dev/null and b/squashfs-root/etc/instruments/doo.pat differ diff --git a/squashfs-root/etc/instruments/echovox.pat b/squashfs-root/etc/instruments/echovox.pat new file mode 100755 index 0000000..0765299 Binary files /dev/null and b/squashfs-root/etc/instruments/echovox.pat differ diff --git a/squashfs-root/etc/instruments/englhorn.pat b/squashfs-root/etc/instruments/englhorn.pat new file mode 100755 index 0000000..7e67608 Binary files /dev/null and b/squashfs-root/etc/instruments/englhorn.pat differ diff --git a/squashfs-root/etc/instruments/epiano1.pat b/squashfs-root/etc/instruments/epiano1.pat new file mode 100755 index 0000000..ac07a91 Binary files /dev/null and b/squashfs-root/etc/instruments/epiano1.pat differ diff --git a/squashfs-root/etc/instruments/epiano2.pat b/squashfs-root/etc/instruments/epiano2.pat new file mode 100755 index 0000000..8c78a27 Binary files /dev/null and b/squashfs-root/etc/instruments/epiano2.pat differ diff --git a/squashfs-root/etc/instruments/fiddle.pat b/squashfs-root/etc/instruments/fiddle.pat new file mode 100755 index 0000000..db9050b Binary files /dev/null and b/squashfs-root/etc/instruments/fiddle.pat differ diff --git a/squashfs-root/etc/instruments/flute.pat b/squashfs-root/etc/instruments/flute.pat new file mode 100755 index 0000000..9fc7c17 Binary files /dev/null and b/squashfs-root/etc/instruments/flute.pat differ diff --git a/squashfs-root/etc/instruments/fngrbass.pat b/squashfs-root/etc/instruments/fngrbass.pat new file mode 100755 index 0000000..5932643 Binary files /dev/null and b/squashfs-root/etc/instruments/fngrbass.pat differ diff --git a/squashfs-root/etc/instruments/frenchrn.pat b/squashfs-root/etc/instruments/frenchrn.pat new file mode 100755 index 0000000..8a1559d Binary files /dev/null and b/squashfs-root/etc/instruments/frenchrn.pat differ diff --git a/squashfs-root/etc/instruments/freshair.pat b/squashfs-root/etc/instruments/freshair.pat new file mode 100755 index 0000000..02384e8 Binary files /dev/null and b/squashfs-root/etc/instruments/freshair.pat differ diff --git a/squashfs-root/etc/instruments/fretless.pat b/squashfs-root/etc/instruments/fretless.pat new file mode 100755 index 0000000..8f61e3e Binary files /dev/null and b/squashfs-root/etc/instruments/fretless.pat differ diff --git a/squashfs-root/etc/instruments/fx-blow.pat b/squashfs-root/etc/instruments/fx-blow.pat new file mode 100755 index 0000000..984cdd1 Binary files /dev/null and b/squashfs-root/etc/instruments/fx-blow.pat differ diff --git a/squashfs-root/etc/instruments/fx-fret.pat b/squashfs-root/etc/instruments/fx-fret.pat new file mode 100755 index 0000000..cdea97b Binary files /dev/null and b/squashfs-root/etc/instruments/fx-fret.pat differ diff --git a/squashfs-root/etc/instruments/ghostie.pat b/squashfs-root/etc/instruments/ghostie.pat new file mode 100755 index 0000000..0f271ea Binary files /dev/null and b/squashfs-root/etc/instruments/ghostie.pat differ diff --git a/squashfs-root/etc/instruments/glocken.pat b/squashfs-root/etc/instruments/glocken.pat new file mode 100755 index 0000000..32eebb6 Binary files /dev/null and b/squashfs-root/etc/instruments/glocken.pat differ diff --git a/squashfs-root/etc/instruments/gtrharm.pat b/squashfs-root/etc/instruments/gtrharm.pat new file mode 100755 index 0000000..63c7487 Binary files /dev/null and b/squashfs-root/etc/instruments/gtrharm.pat differ diff --git a/squashfs-root/etc/instruments/guiro1.pat b/squashfs-root/etc/instruments/guiro1.pat new file mode 100755 index 0000000..1fa05bb Binary files /dev/null and b/squashfs-root/etc/instruments/guiro1.pat differ diff --git a/squashfs-root/etc/instruments/guiro2.pat b/squashfs-root/etc/instruments/guiro2.pat new file mode 100755 index 0000000..465baa3 Binary files /dev/null and b/squashfs-root/etc/instruments/guiro2.pat differ diff --git a/squashfs-root/etc/instruments/halopad.pat b/squashfs-root/etc/instruments/halopad.pat new file mode 100755 index 0000000..2c464d7 Binary files /dev/null and b/squashfs-root/etc/instruments/halopad.pat differ diff --git a/squashfs-root/etc/instruments/hammond.pat b/squashfs-root/etc/instruments/hammond.pat new file mode 100755 index 0000000..343c204 Binary files /dev/null and b/squashfs-root/etc/instruments/hammond.pat differ diff --git a/squashfs-root/etc/instruments/harmonca.pat b/squashfs-root/etc/instruments/harmonca.pat new file mode 100755 index 0000000..7b6f46b Binary files /dev/null and b/squashfs-root/etc/instruments/harmonca.pat differ diff --git a/squashfs-root/etc/instruments/harp.pat b/squashfs-root/etc/instruments/harp.pat new file mode 100755 index 0000000..1491915 Binary files /dev/null and b/squashfs-root/etc/instruments/harp.pat differ diff --git a/squashfs-root/etc/instruments/helicptr.pat b/squashfs-root/etc/instruments/helicptr.pat new file mode 100755 index 0000000..4459543 Binary files /dev/null and b/squashfs-root/etc/instruments/helicptr.pat differ diff --git a/squashfs-root/etc/instruments/highq.pat b/squashfs-root/etc/instruments/highq.pat new file mode 100755 index 0000000..3b6e3bd Binary files /dev/null and b/squashfs-root/etc/instruments/highq.pat differ diff --git a/squashfs-root/etc/instruments/hihatcl.pat b/squashfs-root/etc/instruments/hihatcl.pat new file mode 100755 index 0000000..0644e29 Binary files /dev/null and b/squashfs-root/etc/instruments/hihatcl.pat differ diff --git a/squashfs-root/etc/instruments/hihatop.pat b/squashfs-root/etc/instruments/hihatop.pat new file mode 100755 index 0000000..8442063 Binary files /dev/null and b/squashfs-root/etc/instruments/hihatop.pat differ diff --git a/squashfs-root/etc/instruments/hihatpd.pat b/squashfs-root/etc/instruments/hihatpd.pat new file mode 100755 index 0000000..55ddc48 Binary files /dev/null and b/squashfs-root/etc/instruments/hihatpd.pat differ diff --git a/squashfs-root/etc/instruments/hitbrass.pat b/squashfs-root/etc/instruments/hitbrass.pat new file mode 100755 index 0000000..a5bd9ab Binary files /dev/null and b/squashfs-root/etc/instruments/hitbrass.pat differ diff --git a/squashfs-root/etc/instruments/honky.pat b/squashfs-root/etc/instruments/honky.pat new file mode 100755 index 0000000..d28dde2 Binary files /dev/null and b/squashfs-root/etc/instruments/honky.pat differ diff --git a/squashfs-root/etc/instruments/hrpschrd.pat b/squashfs-root/etc/instruments/hrpschrd.pat new file mode 100755 index 0000000..c9abfe8 Binary files /dev/null and b/squashfs-root/etc/instruments/hrpschrd.pat differ diff --git a/squashfs-root/etc/instruments/jazzgtr.pat b/squashfs-root/etc/instruments/jazzgtr.pat new file mode 100755 index 0000000..0c7dada Binary files /dev/null and b/squashfs-root/etc/instruments/jazzgtr.pat differ diff --git a/squashfs-root/etc/instruments/jingles.pat b/squashfs-root/etc/instruments/jingles.pat new file mode 100755 index 0000000..8304c1b Binary files /dev/null and b/squashfs-root/etc/instruments/jingles.pat differ diff --git a/squashfs-root/etc/instruments/jungle.pat b/squashfs-root/etc/instruments/jungle.pat new file mode 100755 index 0000000..769c8dd Binary files /dev/null and b/squashfs-root/etc/instruments/jungle.pat differ diff --git a/squashfs-root/etc/instruments/kalimba.pat b/squashfs-root/etc/instruments/kalimba.pat new file mode 100755 index 0000000..5331d68 Binary files /dev/null and b/squashfs-root/etc/instruments/kalimba.pat differ diff --git a/squashfs-root/etc/instruments/kick1.pat b/squashfs-root/etc/instruments/kick1.pat new file mode 100755 index 0000000..1c8a097 Binary files /dev/null and b/squashfs-root/etc/instruments/kick1.pat differ diff --git a/squashfs-root/etc/instruments/kick2.pat b/squashfs-root/etc/instruments/kick2.pat new file mode 100755 index 0000000..35d22b7 Binary files /dev/null and b/squashfs-root/etc/instruments/kick2.pat differ diff --git a/squashfs-root/etc/instruments/koto.pat b/squashfs-root/etc/instruments/koto.pat new file mode 100755 index 0000000..aab21e6 Binary files /dev/null and b/squashfs-root/etc/instruments/koto.pat differ diff --git a/squashfs-root/etc/instruments/lead5th.pat b/squashfs-root/etc/instruments/lead5th.pat new file mode 100755 index 0000000..9e377ba Binary files /dev/null and b/squashfs-root/etc/instruments/lead5th.pat differ diff --git a/squashfs-root/etc/instruments/maracas.pat b/squashfs-root/etc/instruments/maracas.pat new file mode 100755 index 0000000..500a1e8 Binary files /dev/null and b/squashfs-root/etc/instruments/maracas.pat differ diff --git a/squashfs-root/etc/instruments/marcato.pat b/squashfs-root/etc/instruments/marcato.pat new file mode 100755 index 0000000..54361cf Binary files /dev/null and b/squashfs-root/etc/instruments/marcato.pat differ diff --git a/squashfs-root/etc/instruments/marimba.pat b/squashfs-root/etc/instruments/marimba.pat new file mode 100755 index 0000000..d6b5526 Binary files /dev/null and b/squashfs-root/etc/instruments/marimba.pat differ diff --git a/squashfs-root/etc/instruments/metalpad.pat b/squashfs-root/etc/instruments/metalpad.pat new file mode 100755 index 0000000..de6f1e8 Binary files /dev/null and b/squashfs-root/etc/instruments/metalpad.pat differ diff --git a/squashfs-root/etc/instruments/metbell.pat b/squashfs-root/etc/instruments/metbell.pat new file mode 100755 index 0000000..59c1178 Binary files /dev/null and b/squashfs-root/etc/instruments/metbell.pat differ diff --git a/squashfs-root/etc/instruments/metclick.pat b/squashfs-root/etc/instruments/metclick.pat new file mode 100755 index 0000000..d23b521 Binary files /dev/null and b/squashfs-root/etc/instruments/metclick.pat differ diff --git a/squashfs-root/etc/instruments/musicbox.pat b/squashfs-root/etc/instruments/musicbox.pat new file mode 100755 index 0000000..000de7d Binary files /dev/null and b/squashfs-root/etc/instruments/musicbox.pat differ diff --git a/squashfs-root/etc/instruments/mutegtr.pat b/squashfs-root/etc/instruments/mutegtr.pat new file mode 100755 index 0000000..9841871 Binary files /dev/null and b/squashfs-root/etc/instruments/mutegtr.pat differ diff --git a/squashfs-root/etc/instruments/mutetrum.pat b/squashfs-root/etc/instruments/mutetrum.pat new file mode 100755 index 0000000..c518c87 Binary files /dev/null and b/squashfs-root/etc/instruments/mutetrum.pat differ diff --git a/squashfs-root/etc/instruments/newage.pat b/squashfs-root/etc/instruments/newage.pat new file mode 100755 index 0000000..d451ca7 Binary files /dev/null and b/squashfs-root/etc/instruments/newage.pat differ diff --git a/squashfs-root/etc/instruments/nyguitar.pat b/squashfs-root/etc/instruments/nyguitar.pat new file mode 100755 index 0000000..e93cd45 Binary files /dev/null and b/squashfs-root/etc/instruments/nyguitar.pat differ diff --git a/squashfs-root/etc/instruments/oboe.pat b/squashfs-root/etc/instruments/oboe.pat new file mode 100755 index 0000000..e599741 Binary files /dev/null and b/squashfs-root/etc/instruments/oboe.pat differ diff --git a/squashfs-root/etc/instruments/ocarina.pat b/squashfs-root/etc/instruments/ocarina.pat new file mode 100755 index 0000000..5840cfd Binary files /dev/null and b/squashfs-root/etc/instruments/ocarina.pat differ diff --git a/squashfs-root/etc/instruments/odguitar.pat b/squashfs-root/etc/instruments/odguitar.pat new file mode 100755 index 0000000..30057b6 Binary files /dev/null and b/squashfs-root/etc/instruments/odguitar.pat differ diff --git a/squashfs-root/etc/instruments/orchhit.pat b/squashfs-root/etc/instruments/orchhit.pat new file mode 100755 index 0000000..68dc42d Binary files /dev/null and b/squashfs-root/etc/instruments/orchhit.pat differ diff --git a/squashfs-root/etc/instruments/percorg.pat b/squashfs-root/etc/instruments/percorg.pat new file mode 100755 index 0000000..e8eef45 Binary files /dev/null and b/squashfs-root/etc/instruments/percorg.pat differ diff --git a/squashfs-root/etc/instruments/piccolo.pat b/squashfs-root/etc/instruments/piccolo.pat new file mode 100755 index 0000000..daf7e11 Binary files /dev/null and b/squashfs-root/etc/instruments/piccolo.pat differ diff --git a/squashfs-root/etc/instruments/pickbass.pat b/squashfs-root/etc/instruments/pickbass.pat new file mode 100755 index 0000000..34382ae Binary files /dev/null and b/squashfs-root/etc/instruments/pickbass.pat differ diff --git a/squashfs-root/etc/instruments/pistol.pat b/squashfs-root/etc/instruments/pistol.pat new file mode 100755 index 0000000..613ae51 Binary files /dev/null and b/squashfs-root/etc/instruments/pistol.pat differ diff --git a/squashfs-root/etc/instruments/pizzcato.pat b/squashfs-root/etc/instruments/pizzcato.pat new file mode 100755 index 0000000..33f40b3 Binary files /dev/null and b/squashfs-root/etc/instruments/pizzcato.pat differ diff --git a/squashfs-root/etc/instruments/polysyn.pat b/squashfs-root/etc/instruments/polysyn.pat new file mode 100755 index 0000000..b38c7d9 Binary files /dev/null and b/squashfs-root/etc/instruments/polysyn.pat differ diff --git a/squashfs-root/etc/instruments/recorder.pat b/squashfs-root/etc/instruments/recorder.pat new file mode 100755 index 0000000..92499d5 Binary files /dev/null and b/squashfs-root/etc/instruments/recorder.pat differ diff --git a/squashfs-root/etc/instruments/reedorg.pat b/squashfs-root/etc/instruments/reedorg.pat new file mode 100755 index 0000000..d64d74b Binary files /dev/null and b/squashfs-root/etc/instruments/reedorg.pat differ diff --git a/squashfs-root/etc/instruments/revcym.pat b/squashfs-root/etc/instruments/revcym.pat new file mode 100755 index 0000000..68371c8 Binary files /dev/null and b/squashfs-root/etc/instruments/revcym.pat differ diff --git a/squashfs-root/etc/instruments/rockorg.pat b/squashfs-root/etc/instruments/rockorg.pat new file mode 100755 index 0000000..f44a8c1 Binary files /dev/null and b/squashfs-root/etc/instruments/rockorg.pat differ diff --git a/squashfs-root/etc/instruments/santur.pat b/squashfs-root/etc/instruments/santur.pat new file mode 100755 index 0000000..af4e5f7 Binary files /dev/null and b/squashfs-root/etc/instruments/santur.pat differ diff --git a/squashfs-root/etc/instruments/sawwave.pat b/squashfs-root/etc/instruments/sawwave.pat new file mode 100755 index 0000000..7e379e5 Binary files /dev/null and b/squashfs-root/etc/instruments/sawwave.pat differ diff --git a/squashfs-root/etc/instruments/scratch1.pat b/squashfs-root/etc/instruments/scratch1.pat new file mode 100755 index 0000000..edd5f7b Binary files /dev/null and b/squashfs-root/etc/instruments/scratch1.pat differ diff --git a/squashfs-root/etc/instruments/scratch2.pat b/squashfs-root/etc/instruments/scratch2.pat new file mode 100755 index 0000000..e0deb4a Binary files /dev/null and b/squashfs-root/etc/instruments/scratch2.pat differ diff --git a/squashfs-root/etc/instruments/seashore.pat b/squashfs-root/etc/instruments/seashore.pat new file mode 100755 index 0000000..a36b82e Binary files /dev/null and b/squashfs-root/etc/instruments/seashore.pat differ diff --git a/squashfs-root/etc/instruments/shakazul.pat b/squashfs-root/etc/instruments/shakazul.pat new file mode 100755 index 0000000..5dd3e5d Binary files /dev/null and b/squashfs-root/etc/instruments/shakazul.pat differ diff --git a/squashfs-root/etc/instruments/shaker.pat b/squashfs-root/etc/instruments/shaker.pat new file mode 100755 index 0000000..3da2465 Binary files /dev/null and b/squashfs-root/etc/instruments/shaker.pat differ diff --git a/squashfs-root/etc/instruments/shamisen.pat b/squashfs-root/etc/instruments/shamisen.pat new file mode 100755 index 0000000..2e74b98 Binary files /dev/null and b/squashfs-root/etc/instruments/shamisen.pat differ diff --git a/squashfs-root/etc/instruments/shannai.pat b/squashfs-root/etc/instruments/shannai.pat new file mode 100755 index 0000000..f8a3ca3 Binary files /dev/null and b/squashfs-root/etc/instruments/shannai.pat differ diff --git a/squashfs-root/etc/instruments/sitar.pat b/squashfs-root/etc/instruments/sitar.pat new file mode 100755 index 0000000..5dc1982 Binary files /dev/null and b/squashfs-root/etc/instruments/sitar.pat differ diff --git a/squashfs-root/etc/instruments/slap.pat b/squashfs-root/etc/instruments/slap.pat new file mode 100755 index 0000000..0d92cee Binary files /dev/null and b/squashfs-root/etc/instruments/slap.pat differ diff --git a/squashfs-root/etc/instruments/slapbas1.pat b/squashfs-root/etc/instruments/slapbas1.pat new file mode 100755 index 0000000..4830a06 Binary files /dev/null and b/squashfs-root/etc/instruments/slapbas1.pat differ diff --git a/squashfs-root/etc/instruments/slapbas2.pat b/squashfs-root/etc/instruments/slapbas2.pat new file mode 100755 index 0000000..17a377f Binary files /dev/null and b/squashfs-root/etc/instruments/slapbas2.pat differ diff --git a/squashfs-root/etc/instruments/slowstr.pat b/squashfs-root/etc/instruments/slowstr.pat new file mode 100755 index 0000000..c5a1b84 Binary files /dev/null and b/squashfs-root/etc/instruments/slowstr.pat differ diff --git a/squashfs-root/etc/instruments/snap.pat b/squashfs-root/etc/instruments/snap.pat new file mode 100755 index 0000000..ca6f855 Binary files /dev/null and b/squashfs-root/etc/instruments/snap.pat differ diff --git a/squashfs-root/etc/instruments/snare1.pat b/squashfs-root/etc/instruments/snare1.pat new file mode 100755 index 0000000..e812131 Binary files /dev/null and b/squashfs-root/etc/instruments/snare1.pat differ diff --git a/squashfs-root/etc/instruments/snare2.pat b/squashfs-root/etc/instruments/snare2.pat new file mode 100755 index 0000000..284e9f8 Binary files /dev/null and b/squashfs-root/etc/instruments/snare2.pat differ diff --git a/squashfs-root/etc/instruments/snarerol.pat b/squashfs-root/etc/instruments/snarerol.pat new file mode 100755 index 0000000..4550dd3 Binary files /dev/null and b/squashfs-root/etc/instruments/snarerol.pat differ diff --git a/squashfs-root/etc/instruments/soundtrk.pat b/squashfs-root/etc/instruments/soundtrk.pat new file mode 100755 index 0000000..00a4b07 Binary files /dev/null and b/squashfs-root/etc/instruments/soundtrk.pat differ diff --git a/squashfs-root/etc/instruments/sprnosax.pat b/squashfs-root/etc/instruments/sprnosax.pat new file mode 100755 index 0000000..8ffa2ad Binary files /dev/null and b/squashfs-root/etc/instruments/sprnosax.pat differ diff --git a/squashfs-root/etc/instruments/sqrclick.pat b/squashfs-root/etc/instruments/sqrclick.pat new file mode 100755 index 0000000..fc6c8ad Binary files /dev/null and b/squashfs-root/etc/instruments/sqrclick.pat differ diff --git a/squashfs-root/etc/instruments/sqrwave.pat b/squashfs-root/etc/instruments/sqrwave.pat new file mode 100755 index 0000000..21ef3bd Binary files /dev/null and b/squashfs-root/etc/instruments/sqrwave.pat differ diff --git a/squashfs-root/etc/instruments/startrak.pat b/squashfs-root/etc/instruments/startrak.pat new file mode 100755 index 0000000..2fd2446 Binary files /dev/null and b/squashfs-root/etc/instruments/startrak.pat differ diff --git a/squashfs-root/etc/instruments/steeldrm.pat b/squashfs-root/etc/instruments/steeldrm.pat new file mode 100755 index 0000000..03c0e9f Binary files /dev/null and b/squashfs-root/etc/instruments/steeldrm.pat differ diff --git a/squashfs-root/etc/instruments/stickrim.pat b/squashfs-root/etc/instruments/stickrim.pat new file mode 100755 index 0000000..e2a86f5 Binary files /dev/null and b/squashfs-root/etc/instruments/stickrim.pat differ diff --git a/squashfs-root/etc/instruments/sticks.pat b/squashfs-root/etc/instruments/sticks.pat new file mode 100755 index 0000000..7084064 Binary files /dev/null and b/squashfs-root/etc/instruments/sticks.pat differ diff --git a/squashfs-root/etc/instruments/surdo1.pat b/squashfs-root/etc/instruments/surdo1.pat new file mode 100755 index 0000000..52582b2 Binary files /dev/null and b/squashfs-root/etc/instruments/surdo1.pat differ diff --git a/squashfs-root/etc/instruments/surdo2.pat b/squashfs-root/etc/instruments/surdo2.pat new file mode 100755 index 0000000..689c437 Binary files /dev/null and b/squashfs-root/etc/instruments/surdo2.pat differ diff --git a/squashfs-root/etc/instruments/sweeper.pat b/squashfs-root/etc/instruments/sweeper.pat new file mode 100755 index 0000000..19eca60 Binary files /dev/null and b/squashfs-root/etc/instruments/sweeper.pat differ diff --git a/squashfs-root/etc/instruments/synbass1.pat b/squashfs-root/etc/instruments/synbass1.pat new file mode 100755 index 0000000..81bb7ce Binary files /dev/null and b/squashfs-root/etc/instruments/synbass1.pat differ diff --git a/squashfs-root/etc/instruments/synbass2.pat b/squashfs-root/etc/instruments/synbass2.pat new file mode 100755 index 0000000..19ce30c Binary files /dev/null and b/squashfs-root/etc/instruments/synbass2.pat differ diff --git a/squashfs-root/etc/instruments/synbras1.pat b/squashfs-root/etc/instruments/synbras1.pat new file mode 100755 index 0000000..76642e1 Binary files /dev/null and b/squashfs-root/etc/instruments/synbras1.pat differ diff --git a/squashfs-root/etc/instruments/synbras2.pat b/squashfs-root/etc/instruments/synbras2.pat new file mode 100755 index 0000000..95c1bda Binary files /dev/null and b/squashfs-root/etc/instruments/synbras2.pat differ diff --git a/squashfs-root/etc/instruments/synpiano.pat b/squashfs-root/etc/instruments/synpiano.pat new file mode 100755 index 0000000..b17d639 Binary files /dev/null and b/squashfs-root/etc/instruments/synpiano.pat differ diff --git a/squashfs-root/etc/instruments/synstr1.pat b/squashfs-root/etc/instruments/synstr1.pat new file mode 100755 index 0000000..aeb0803 Binary files /dev/null and b/squashfs-root/etc/instruments/synstr1.pat differ diff --git a/squashfs-root/etc/instruments/synstr2.pat b/squashfs-root/etc/instruments/synstr2.pat new file mode 100755 index 0000000..a31c874 Binary files /dev/null and b/squashfs-root/etc/instruments/synstr2.pat differ diff --git a/squashfs-root/etc/instruments/syntom.pat b/squashfs-root/etc/instruments/syntom.pat new file mode 100755 index 0000000..3def998 Binary files /dev/null and b/squashfs-root/etc/instruments/syntom.pat differ diff --git a/squashfs-root/etc/instruments/taiko.pat b/squashfs-root/etc/instruments/taiko.pat new file mode 100755 index 0000000..8ce2398 Binary files /dev/null and b/squashfs-root/etc/instruments/taiko.pat differ diff --git a/squashfs-root/etc/instruments/tamborin.pat b/squashfs-root/etc/instruments/tamborin.pat new file mode 100755 index 0000000..1293f8e Binary files /dev/null and b/squashfs-root/etc/instruments/tamborin.pat differ diff --git a/squashfs-root/etc/instruments/telephon.pat b/squashfs-root/etc/instruments/telephon.pat new file mode 100755 index 0000000..6aeb406 Binary files /dev/null and b/squashfs-root/etc/instruments/telephon.pat differ diff --git a/squashfs-root/etc/instruments/tenorsax.pat b/squashfs-root/etc/instruments/tenorsax.pat new file mode 100755 index 0000000..5335d86 Binary files /dev/null and b/squashfs-root/etc/instruments/tenorsax.pat differ diff --git a/squashfs-root/etc/instruments/timbaleh.pat b/squashfs-root/etc/instruments/timbaleh.pat new file mode 100755 index 0000000..2cc1dfe Binary files /dev/null and b/squashfs-root/etc/instruments/timbaleh.pat differ diff --git a/squashfs-root/etc/instruments/timbalel.pat b/squashfs-root/etc/instruments/timbalel.pat new file mode 100755 index 0000000..2729bf8 Binary files /dev/null and b/squashfs-root/etc/instruments/timbalel.pat differ diff --git a/squashfs-root/etc/instruments/timpani.pat b/squashfs-root/etc/instruments/timpani.pat new file mode 100755 index 0000000..05d758a Binary files /dev/null and b/squashfs-root/etc/instruments/timpani.pat differ diff --git a/squashfs-root/etc/instruments/tomhi1.pat b/squashfs-root/etc/instruments/tomhi1.pat new file mode 100755 index 0000000..51f7fa2 Binary files /dev/null and b/squashfs-root/etc/instruments/tomhi1.pat differ diff --git a/squashfs-root/etc/instruments/tomhi2.pat b/squashfs-root/etc/instruments/tomhi2.pat new file mode 100755 index 0000000..1597c7f Binary files /dev/null and b/squashfs-root/etc/instruments/tomhi2.pat differ diff --git a/squashfs-root/etc/instruments/tomlo1.pat b/squashfs-root/etc/instruments/tomlo1.pat new file mode 100755 index 0000000..46d4b05 Binary files /dev/null and b/squashfs-root/etc/instruments/tomlo1.pat differ diff --git a/squashfs-root/etc/instruments/tomlo2.pat b/squashfs-root/etc/instruments/tomlo2.pat new file mode 100755 index 0000000..c976efc Binary files /dev/null and b/squashfs-root/etc/instruments/tomlo2.pat differ diff --git a/squashfs-root/etc/instruments/tommid1.pat b/squashfs-root/etc/instruments/tommid1.pat new file mode 100755 index 0000000..2f5e231 Binary files /dev/null and b/squashfs-root/etc/instruments/tommid1.pat differ diff --git a/squashfs-root/etc/instruments/tommid2.pat b/squashfs-root/etc/instruments/tommid2.pat new file mode 100755 index 0000000..dd6638c Binary files /dev/null and b/squashfs-root/etc/instruments/tommid2.pat differ diff --git a/squashfs-root/etc/instruments/toms.pat b/squashfs-root/etc/instruments/toms.pat new file mode 100755 index 0000000..84ca7fe Binary files /dev/null and b/squashfs-root/etc/instruments/toms.pat differ diff --git a/squashfs-root/etc/instruments/tremstr.pat b/squashfs-root/etc/instruments/tremstr.pat new file mode 100755 index 0000000..8c875ac Binary files /dev/null and b/squashfs-root/etc/instruments/tremstr.pat differ diff --git a/squashfs-root/etc/instruments/triangl1.pat b/squashfs-root/etc/instruments/triangl1.pat new file mode 100755 index 0000000..1eae2af Binary files /dev/null and b/squashfs-root/etc/instruments/triangl1.pat differ diff --git a/squashfs-root/etc/instruments/triangl2.pat b/squashfs-root/etc/instruments/triangl2.pat new file mode 100755 index 0000000..ce42e94 Binary files /dev/null and b/squashfs-root/etc/instruments/triangl2.pat differ diff --git a/squashfs-root/etc/instruments/trombone.pat b/squashfs-root/etc/instruments/trombone.pat new file mode 100755 index 0000000..93d5b15 Binary files /dev/null and b/squashfs-root/etc/instruments/trombone.pat differ diff --git a/squashfs-root/etc/instruments/trump2.pat b/squashfs-root/etc/instruments/trump2.pat new file mode 100755 index 0000000..3adc94b Binary files /dev/null and b/squashfs-root/etc/instruments/trump2.pat differ diff --git a/squashfs-root/etc/instruments/trumpet.pat b/squashfs-root/etc/instruments/trumpet.pat new file mode 100755 index 0000000..dab9c16 Binary files /dev/null and b/squashfs-root/etc/instruments/trumpet.pat differ diff --git a/squashfs-root/etc/instruments/tuba.pat b/squashfs-root/etc/instruments/tuba.pat new file mode 100755 index 0000000..323e638 Binary files /dev/null and b/squashfs-root/etc/instruments/tuba.pat differ diff --git a/squashfs-root/etc/instruments/tubebell.pat b/squashfs-root/etc/instruments/tubebell.pat new file mode 100755 index 0000000..78014b0 Binary files /dev/null and b/squashfs-root/etc/instruments/tubebell.pat differ diff --git a/squashfs-root/etc/instruments/unicorn.pat b/squashfs-root/etc/instruments/unicorn.pat new file mode 100755 index 0000000..fa321ae Binary files /dev/null and b/squashfs-root/etc/instruments/unicorn.pat differ diff --git a/squashfs-root/etc/instruments/vibes.pat b/squashfs-root/etc/instruments/vibes.pat new file mode 100755 index 0000000..0fa79d7 Binary files /dev/null and b/squashfs-root/etc/instruments/vibes.pat differ diff --git a/squashfs-root/etc/instruments/vibslap.pat b/squashfs-root/etc/instruments/vibslap.pat new file mode 100755 index 0000000..eecaa4d Binary files /dev/null and b/squashfs-root/etc/instruments/vibslap.pat differ diff --git a/squashfs-root/etc/instruments/viola.pat b/squashfs-root/etc/instruments/viola.pat new file mode 100755 index 0000000..9519af2 Binary files /dev/null and b/squashfs-root/etc/instruments/viola.pat differ diff --git a/squashfs-root/etc/instruments/violin.pat b/squashfs-root/etc/instruments/violin.pat new file mode 100755 index 0000000..08f0903 Binary files /dev/null and b/squashfs-root/etc/instruments/violin.pat differ diff --git a/squashfs-root/etc/instruments/voices.pat b/squashfs-root/etc/instruments/voices.pat new file mode 100755 index 0000000..1497e81 Binary files /dev/null and b/squashfs-root/etc/instruments/voices.pat differ diff --git a/squashfs-root/etc/instruments/voxlead.pat b/squashfs-root/etc/instruments/voxlead.pat new file mode 100755 index 0000000..d2b5bfa Binary files /dev/null and b/squashfs-root/etc/instruments/voxlead.pat differ diff --git a/squashfs-root/etc/instruments/warmpad.pat b/squashfs-root/etc/instruments/warmpad.pat new file mode 100755 index 0000000..b000c1b Binary files /dev/null and b/squashfs-root/etc/instruments/warmpad.pat differ diff --git a/squashfs-root/etc/instruments/whistle.pat b/squashfs-root/etc/instruments/whistle.pat new file mode 100755 index 0000000..0752ab4 Binary files /dev/null and b/squashfs-root/etc/instruments/whistle.pat differ diff --git a/squashfs-root/etc/instruments/whistle1.pat b/squashfs-root/etc/instruments/whistle1.pat new file mode 100755 index 0000000..a191869 Binary files /dev/null and b/squashfs-root/etc/instruments/whistle1.pat differ diff --git a/squashfs-root/etc/instruments/whistle2.pat b/squashfs-root/etc/instruments/whistle2.pat new file mode 100755 index 0000000..6dc3ee2 Binary files /dev/null and b/squashfs-root/etc/instruments/whistle2.pat differ diff --git a/squashfs-root/etc/instruments/woodblk.pat b/squashfs-root/etc/instruments/woodblk.pat new file mode 100755 index 0000000..1f11412 Binary files /dev/null and b/squashfs-root/etc/instruments/woodblk.pat differ diff --git a/squashfs-root/etc/instruments/woodblk1.pat b/squashfs-root/etc/instruments/woodblk1.pat new file mode 100755 index 0000000..ac1909d Binary files /dev/null and b/squashfs-root/etc/instruments/woodblk1.pat differ diff --git a/squashfs-root/etc/instruments/woodblk2.pat b/squashfs-root/etc/instruments/woodblk2.pat new file mode 100755 index 0000000..fcfe2cf Binary files /dev/null and b/squashfs-root/etc/instruments/woodblk2.pat differ diff --git a/squashfs-root/etc/instruments/woodflut.pat b/squashfs-root/etc/instruments/woodflut.pat new file mode 100755 index 0000000..e6da607 Binary files /dev/null and b/squashfs-root/etc/instruments/woodflut.pat differ diff --git a/squashfs-root/etc/instruments/xylophon.pat b/squashfs-root/etc/instruments/xylophon.pat new file mode 100755 index 0000000..a543e42 Binary files /dev/null and b/squashfs-root/etc/instruments/xylophon.pat differ diff --git a/squashfs-root/etc/issue b/squashfs-root/etc/issue new file mode 100644 index 0000000..10b68b9 --- /dev/null +++ b/squashfs-root/etc/issue @@ -0,0 +1 @@ +Welcome to Miyoo diff --git a/squashfs-root/etc/main b/squashfs-root/etc/main new file mode 100755 index 0000000..1cfd834 --- /dev/null +++ b/squashfs-root/etc/main @@ -0,0 +1,28 @@ +#!/bin/sh +export HOME=/mnt +export SDL_NOMOUSE=1 + +# /etc/vfatfsck.sh + +swapon /mnt/.swap.img > /dev/null 2>&1 + +/usr/bin/daemon& + +mount /dev/mmcblk0p2 /media/Data +# if not mount /media/Data run st + +while [ 1 ] +do + # cd /mnt + + # uname -a > uname.log + # dmesg > dmesg.log + # mount > mount.log + + # echo 'ololo' > ololo.log + + cd /media/Data/gmenu2x + /usr/bin/clear + ./gmenu2x > /dev/null 2>&1 + # cd apps/st; ./st > /dev/null 2>&1 +done diff --git a/squashfs-root/etc/mtab b/squashfs-root/etc/mtab new file mode 120000 index 0000000..5c4677a --- /dev/null +++ b/squashfs-root/etc/mtab @@ -0,0 +1 @@ +../proc/self/mounts \ No newline at end of file diff --git a/squashfs-root/etc/network/if-pre-up.d/wait_iface b/squashfs-root/etc/network/if-pre-up.d/wait_iface new file mode 100755 index 0000000..ebccff2 --- /dev/null +++ b/squashfs-root/etc/network/if-pre-up.d/wait_iface @@ -0,0 +1,21 @@ +#!/bin/sh + +# In case we have a slow-to-appear interface (e.g. eth-over-USB), +# and we need to configure it, wait until it appears, but not too +# long either. IF_WAIT_DELAY is in seconds. + +if [ "${IF_WAIT_DELAY}" -a ! -e "/sys/class/net/${IFACE}" ]; then + printf "Waiting for interface %s to appear" "${IFACE}" + while [ ${IF_WAIT_DELAY} -gt 0 ]; do + if [ -e "/sys/class/net/${IFACE}" ]; then + printf "\n" + exit 0 + fi + sleep 1 + printf "." + : $((IF_WAIT_DELAY -= 1)) + done + printf " timeout!\n" + exit 1 +fi + diff --git a/squashfs-root/etc/network/interfaces b/squashfs-root/etc/network/interfaces new file mode 100644 index 0000000..317d2b0 --- /dev/null +++ b/squashfs-root/etc/network/interfaces @@ -0,0 +1,4 @@ +# interface file auto-generated by buildroot + +auto lo +iface lo inet loopback diff --git a/squashfs-root/etc/os-release b/squashfs-root/etc/os-release new file mode 120000 index 0000000..c4c75b4 --- /dev/null +++ b/squashfs-root/etc/os-release @@ -0,0 +1 @@ +../usr/lib/os-release \ No newline at end of file diff --git a/squashfs-root/etc/passwd b/squashfs-root/etc/passwd new file mode 100644 index 0000000..9d599d9 --- /dev/null +++ b/squashfs-root/etc/passwd @@ -0,0 +1,10 @@ +root:x:0:0:root:/root:/bin/sh +daemon:x:1:1:daemon:/usr/sbin:/bin/false +bin:x:2:2:bin:/bin:/bin/false +sys:x:3:3:sys:/dev:/bin/false +sync:x:4:100:sync:/bin:/bin/sync +mail:x:8:8:mail:/var/spool/mail:/bin/false +www-data:x:33:33:www-data:/var/www:/bin/false +operator:x:37:37:Operator:/var:/bin/false +nobody:x:65534:65534:nobody:/home:/bin/false +dbus:x:1000:1000:DBus messagebus user:/var/run/dbus:/bin/false diff --git a/squashfs-root/etc/profile b/squashfs-root/etc/profile new file mode 100644 index 0000000..3a97427 --- /dev/null +++ b/squashfs-root/etc/profile @@ -0,0 +1,20 @@ +export PATH=/bin:/sbin:/usr/bin:/usr/sbin + +if [ "$PS1" ]; then + if [ "`id -u`" -eq 0 ]; then + export PS1='# ' + else + export PS1='$ ' + fi +fi + +export PAGER='/bin/more ' +export EDITOR='/bin/vi' + +# Source configuration files from /etc/profile.d +for i in /etc/profile.d/*.sh ; do + if [ -r "$i" ]; then + . $i + fi + unset i +done diff --git a/squashfs-root/etc/profile.d/umask.sh b/squashfs-root/etc/profile.d/umask.sh new file mode 100644 index 0000000..8e71ad5 --- /dev/null +++ b/squashfs-root/etc/profile.d/umask.sh @@ -0,0 +1 @@ +umask 022 diff --git a/squashfs-root/etc/protocols b/squashfs-root/etc/protocols new file mode 100644 index 0000000..cfdd5ad --- /dev/null +++ b/squashfs-root/etc/protocols @@ -0,0 +1,61 @@ +# Internet (IP) protocols +# +# Updated from http://www.iana.org/assignments/protocol-numbers and other +# sources. + +ip 0 IP # internet protocol, pseudo protocol number +hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883] +icmp 1 ICMP # internet control message protocol +igmp 2 IGMP # Internet Group Management +ggp 3 GGP # gateway-gateway protocol +ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') +st 5 ST # ST datagram mode +tcp 6 TCP # transmission control protocol +egp 8 EGP # exterior gateway protocol +igp 9 IGP # any private interior gateway (Cisco) +pup 12 PUP # PARC universal packet protocol +udp 17 UDP # user datagram protocol +hmp 20 HMP # host monitoring protocol +xns-idp 22 XNS-IDP # Xerox NS IDP +rdp 27 RDP # "reliable datagram" protocol +iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 [RFC905] +dccp 33 DCCP # Datagram Congestion Control Prot. [RFC4340] +xtp 36 XTP # Xpress Transfer Protocol +ddp 37 DDP # Datagram Delivery Protocol +idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport +ipv6 41 IPv6 # Internet Protocol, version 6 +ipv6-route 43 IPv6-Route # Routing Header for IPv6 +ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 +idrp 45 IDRP # Inter-Domain Routing Protocol +rsvp 46 RSVP # Reservation Protocol +gre 47 GRE # General Routing Encapsulation +esp 50 IPSEC-ESP # Encap Security Payload [RFC2406] +ah 51 IPSEC-AH # Authentication Header [RFC2402] +skip 57 SKIP # SKIP +ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 +ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6 +ipv6-opts 60 IPv6-Opts # Destination Options for IPv6 +rspf 73 RSPF CPHB # Radio Shortest Path First (officially CPHB) +vmtp 81 VMTP # Versatile Message Transport +eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco) +ospf 89 OSPFIGP # Open Shortest Path First IGP +ax.25 93 AX.25 # AX.25 frames +ipip 94 IPIP # IP-within-IP Encapsulation Protocol +etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378] +encap 98 ENCAP # Yet Another IP encapsulation [RFC1241] +# 99 # any private encryption scheme +pim 103 PIM # Protocol Independent Multicast +ipcomp 108 IPCOMP # IP Payload Compression Protocol +vrrp 112 VRRP # Virtual Router Redundancy Protocol [RFC5798] +l2tp 115 L2TP # Layer Two Tunneling Protocol [RFC2661] +isis 124 ISIS # IS-IS over IPv4 +sctp 132 SCTP # Stream Control Transmission Protocol +fc 133 FC # Fibre Channel +mobility-header 135 Mobility-Header # Mobility Support for IPv6 [RFC3775] +udplite 136 UDPLite # UDP-Lite [RFC3828] +mpls-in-ip 137 MPLS-in-IP # MPLS-in-IP [RFC4023] +manet 138 # MANET Protocols [RFC5498] +hip 139 HIP # Host Identity Protocol +shim6 140 Shim6 # Shim6 Protocol [RFC5533] +wesp 141 WESP # Wrapped Encapsulating Security Payload +rohc 142 ROHC # Robust Header Compression diff --git a/squashfs-root/etc/random-seed b/squashfs-root/etc/random-seed new file mode 100644 index 0000000..b97e5ba Binary files /dev/null and b/squashfs-root/etc/random-seed differ diff --git a/squashfs-root/etc/resolv.conf b/squashfs-root/etc/resolv.conf new file mode 120000 index 0000000..71f6f96 --- /dev/null +++ b/squashfs-root/etc/resolv.conf @@ -0,0 +1 @@ +../tmp/resolv.conf \ No newline at end of file diff --git a/squashfs-root/etc/services b/squashfs-root/etc/services new file mode 100644 index 0000000..b287b63 --- /dev/null +++ b/squashfs-root/etc/services @@ -0,0 +1,302 @@ +# /etc/services: +# $Id: services,v 1.1 2004/10/09 02:49:18 andersen Exp $ +# +# Network services, Internet style +# +# Note that it is presently the policy of IANA to assign a single well-known +# port number for both TCP and UDP; hence, most entries here have two entries +# even if the protocol doesn't support UDP operations. +# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports +# are included, only the more common ones. + +tcpmux 1/tcp # TCP port service multiplexer +echo 7/tcp +echo 7/udp +discard 9/tcp sink null +discard 9/udp sink null +systat 11/tcp users +daytime 13/tcp +daytime 13/udp +netstat 15/tcp +qotd 17/tcp quote +msp 18/tcp # message send protocol +msp 18/udp # message send protocol +chargen 19/tcp ttytst source +chargen 19/udp ttytst source +ftp-data 20/tcp +ftp 21/tcp +fsp 21/udp fspd +ssh 22/tcp # SSH Remote Login Protocol +ssh 22/udp # SSH Remote Login Protocol +telnet 23/tcp +# 24 - private +smtp 25/tcp mail +# 26 - unassigned +time 37/tcp timserver +time 37/udp timserver +rlp 39/udp resource # resource location +nameserver 42/tcp name # IEN 116 +whois 43/tcp nicname +re-mail-ck 50/tcp # Remote Mail Checking Protocol +re-mail-ck 50/udp # Remote Mail Checking Protocol +domain 53/tcp nameserver # name-domain server +domain 53/udp nameserver +mtp 57/tcp # deprecated +bootps 67/tcp # BOOTP server +bootps 67/udp +bootpc 68/tcp # BOOTP client +bootpc 68/udp +tftp 69/udp +gopher 70/tcp # Internet Gopher +gopher 70/udp +rje 77/tcp netrjs +finger 79/tcp +www 80/tcp http # WorldWideWeb HTTP +www 80/udp # HyperText Transfer Protocol +link 87/tcp ttylink +kerberos 88/tcp kerberos5 krb5 # Kerberos v5 +kerberos 88/udp kerberos5 krb5 # Kerberos v5 +supdup 95/tcp +# 100 - reserved +hostnames 101/tcp hostname # usually from sri-nic +iso-tsap 102/tcp tsap # part of ISODE. +csnet-ns 105/tcp cso-ns # also used by CSO name server +csnet-ns 105/udp cso-ns +# unfortunately the poppassd (Eudora) uses a port which has already +# been assigned to a different service. We list the poppassd as an +# alias here. This should work for programs asking for this service. +# (due to a bug in inetd the 3com-tsmux line is disabled) +#3com-tsmux 106/tcp poppassd +#3com-tsmux 106/udp poppassd +rtelnet 107/tcp # Remote Telnet +rtelnet 107/udp +pop-2 109/tcp postoffice # POP version 2 +pop-2 109/udp +pop-3 110/tcp # POP version 3 +pop-3 110/udp +sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP +sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP +auth 113/tcp authentication tap ident +sftp 115/tcp +uucp-path 117/tcp +nntp 119/tcp readnews untp # USENET News Transfer Protocol +ntp 123/tcp +ntp 123/udp # Network Time Protocol +netbios-ns 137/tcp # NETBIOS Name Service +netbios-ns 137/udp +netbios-dgm 138/tcp # NETBIOS Datagram Service +netbios-dgm 138/udp +netbios-ssn 139/tcp # NETBIOS session service +netbios-ssn 139/udp +imap2 143/tcp # Interim Mail Access Proto v2 +imap2 143/udp +snmp 161/udp # Simple Net Mgmt Proto +snmp-trap 162/udp snmptrap # Traps for SNMP +cmip-man 163/tcp # ISO mgmt over IP (CMOT) +cmip-man 163/udp +cmip-agent 164/tcp +cmip-agent 164/udp +xdmcp 177/tcp # X Display Mgr. Control Proto +xdmcp 177/udp +nextstep 178/tcp NeXTStep NextStep # NeXTStep window +nextstep 178/udp NeXTStep NextStep # server +bgp 179/tcp # Border Gateway Proto. +bgp 179/udp +prospero 191/tcp # Cliff Neuman's Prospero +prospero 191/udp +irc 194/tcp # Internet Relay Chat +irc 194/udp +smux 199/tcp # SNMP Unix Multiplexer +smux 199/udp +at-rtmp 201/tcp # AppleTalk routing +at-rtmp 201/udp +at-nbp 202/tcp # AppleTalk name binding +at-nbp 202/udp +at-echo 204/tcp # AppleTalk echo +at-echo 204/udp +at-zis 206/tcp # AppleTalk zone information +at-zis 206/udp +qmtp 209/tcp # The Quick Mail Transfer Protocol +qmtp 209/udp # The Quick Mail Transfer Protocol +z3950 210/tcp wais # NISO Z39.50 database +z3950 210/udp wais +ipx 213/tcp # IPX +ipx 213/udp +imap3 220/tcp # Interactive Mail Access +imap3 220/udp # Protocol v3 +ulistserv 372/tcp # UNIX Listserv +ulistserv 372/udp +https 443/tcp # MCom +https 443/udp # MCom +snpp 444/tcp # Simple Network Paging Protocol +snpp 444/udp # Simple Network Paging Protocol +saft 487/tcp # Simple Asynchronous File Transfer +saft 487/udp # Simple Asynchronous File Transfer +npmp-local 610/tcp dqs313_qmaster # npmp-local / DQS +npmp-local 610/udp dqs313_qmaster # npmp-local / DQS +npmp-gui 611/tcp dqs313_execd # npmp-gui / DQS +npmp-gui 611/udp dqs313_execd # npmp-gui / DQS +hmmp-ind 612/tcp dqs313_intercell# HMMP Indication / DQS +hmmp-ind 612/udp dqs313_intercell# HMMP Indication / DQS +# +# UNIX specific services +# +exec 512/tcp +biff 512/udp comsat +login 513/tcp +who 513/udp whod +shell 514/tcp cmd # no passwords used +syslog 514/udp +printer 515/tcp spooler # line printer spooler +talk 517/udp +ntalk 518/udp +route 520/udp router routed # RIP +timed 525/udp timeserver +tempo 526/tcp newdate +courier 530/tcp rpc +conference 531/tcp chat +netnews 532/tcp readnews +netwall 533/udp # -for emergency broadcasts +uucp 540/tcp uucpd # uucp daemon +afpovertcp 548/tcp # AFP over TCP +afpovertcp 548/udp # AFP over TCP +remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem +klogin 543/tcp # Kerberized `rlogin' (v5) +kshell 544/tcp krcmd # Kerberized `rsh' (v5) +kerberos-adm 749/tcp # Kerberos `kadmin' (v5) +# +webster 765/tcp # Network dictionary +webster 765/udp +# +# From ``Assigned Numbers'': +# +#> The Registered Ports are not controlled by the IANA and on most systems +#> can be used by ordinary user processes or programs executed by ordinary +#> users. +# +#> Ports are used in the TCP [45,106] to name the ends of logical +#> connections which carry long term conversations. For the purpose of +#> providing services to unknown callers, a service contact port is +#> defined. This list specifies the port used by the server process as its +#> contact port. While the IANA can not control uses of these ports it +#> does register or list uses of these ports as a convienence to the +#> community. +# +nfsdstatus 1110/tcp +nfsd-keepalive 1110/udp + +ingreslock 1524/tcp +ingreslock 1524/udp +prospero-np 1525/tcp # Prospero non-privileged +prospero-np 1525/udp +datametrics 1645/tcp old-radius # datametrics / old radius entry +datametrics 1645/udp old-radius # datametrics / old radius entry +sa-msg-port 1646/tcp old-radacct # sa-msg-port / old radacct entry +sa-msg-port 1646/udp old-radacct # sa-msg-port / old radacct entry +radius 1812/tcp # Radius +radius 1812/udp # Radius +radacct 1813/tcp # Radius Accounting +radacct 1813/udp # Radius Accounting +nfsd 2049/tcp nfs +nfsd 2049/udp nfs +cvspserver 2401/tcp # CVS client/server operations +cvspserver 2401/udp # CVS client/server operations +mysql 3306/tcp # MySQL +mysql 3306/udp # MySQL +rfe 5002/tcp # Radio Free Ethernet +rfe 5002/udp # Actually uses UDP only +cfengine 5308/tcp # CFengine +cfengine 5308/udp # CFengine +bbs 7000/tcp # BBS service +# +# +# Kerberos (Project Athena/MIT) services +# Note that these are for Kerberos v4, and are unofficial. Sites running +# v4 should uncomment these and comment out the v5 entries above. +# +kerberos4 750/udp kerberos-iv kdc # Kerberos (server) udp +kerberos4 750/tcp kerberos-iv kdc # Kerberos (server) tcp +kerberos_master 751/udp # Kerberos authentication +kerberos_master 751/tcp # Kerberos authentication +passwd_server 752/udp # Kerberos passwd server +krb_prop 754/tcp # Kerberos slave propagation +krbupdate 760/tcp kreg # Kerberos registration +kpasswd 761/tcp kpwd # Kerberos "passwd" +kpop 1109/tcp # Pop with Kerberos +knetd 2053/tcp # Kerberos de-multiplexor +zephyr-srv 2102/udp # Zephyr server +zephyr-clt 2103/udp # Zephyr serv-hm connection +zephyr-hm 2104/udp # Zephyr hostmanager +eklogin 2105/tcp # Kerberos encrypted rlogin +# +# Unofficial but necessary (for NetBSD) services +# +supfilesrv 871/tcp # SUP server +supfiledbg 1127/tcp # SUP debugging +# +# Datagram Delivery Protocol services +# +rtmp 1/ddp # Routing Table Maintenance Protocol +nbp 2/ddp # Name Binding Protocol +echo 4/ddp # AppleTalk Echo Protocol +zip 6/ddp # Zone Information Protocol +# +# Services added for the Debian GNU/Linux distribution +poppassd 106/tcp # Eudora +poppassd 106/udp # Eudora +mailq 174/tcp # Mailer transport queue for Zmailer +mailq 174/tcp # Mailer transport queue for Zmailer +omirr 808/tcp omirrd # online mirror +omirr 808/udp omirrd # online mirror +rmtcfg 1236/tcp # Gracilis Packeten remote config server +xtel 1313/tcp # french minitel +coda_opcons 1355/udp # Coda opcons (Coda fs) +coda_venus 1363/udp # Coda venus (Coda fs) +coda_auth 1357/udp # Coda auth (Coda fs) +coda_udpsrv 1359/udp # Coda udpsrv (Coda fs) +coda_filesrv 1361/udp # Coda filesrv (Coda fs) +codacon 1423/tcp venus.cmu # Coda Console (Coda fs) +coda_aux1 1431/tcp # coda auxiliary service (Coda fs) +coda_aux1 1431/udp # coda auxiliary service (Coda fs) +coda_aux2 1433/tcp # coda auxiliary service (Coda fs) +coda_aux2 1433/udp # coda auxiliary service (Coda fs) +coda_aux3 1435/tcp # coda auxiliary service (Coda fs) +coda_aux3 1435/udp # coda auxiliary service (Coda fs) +cfinger 2003/tcp # GNU Finger +afbackup 2988/tcp # Afbackup system +afbackup 2988/udp # Afbackup system +icp 3130/tcp # Internet Cache Protocol (Squid) +icp 3130/udp # Internet Cache Protocol (Squid) +postgres 5432/tcp # POSTGRES +postgres 5432/udp # POSTGRES +fax 4557/tcp # FAX transmission service (old) +hylafax 4559/tcp # HylaFAX client-server protocol (new) +noclog 5354/tcp # noclogd with TCP (nocol) +noclog 5354/udp # noclogd with UDP (nocol) +hostmon 5355/tcp # hostmon uses TCP (nocol) +hostmon 5355/udp # hostmon uses TCP (nocol) +ircd 6667/tcp # Internet Relay Chat +ircd 6667/udp # Internet Relay Chat +webcache 8080/tcp # WWW caching service +webcache 8080/udp # WWW caching service +tproxy 8081/tcp # Transparent Proxy +tproxy 8081/udp # Transparent Proxy +mandelspawn 9359/udp mandelbrot # network mandelbrot +amanda 10080/udp # amanda backup services +amandaidx 10082/tcp # amanda backup services +amidxtape 10083/tcp # amanda backup services +isdnlog 20011/tcp # isdn logging system +isdnlog 20011/udp # isdn logging system +vboxd 20012/tcp # voice box system +vboxd 20012/udp # voice box system +binkp 24554/tcp # Binkley +binkp 24554/udp # Binkley +asp 27374/tcp # Address Search Protocol +asp 27374/udp # Address Search Protocol +tfido 60177/tcp # Ifmail +tfido 60177/udp # Ifmail +fido 60179/tcp # Ifmail +fido 60179/udp # Ifmail + +# Local services + diff --git a/squashfs-root/etc/shadow b/squashfs-root/etc/shadow new file mode 100644 index 0000000..d96c471 --- /dev/null +++ b/squashfs-root/etc/shadow @@ -0,0 +1,10 @@ +root::10933:0:99999:7::: +daemon:*:10933:0:99999:7::: +bin:*:10933:0:99999:7::: +sys:*:10933:0:99999:7::: +sync:*:10933:0:99999:7::: +mail:*:10933:0:99999:7::: +www-data:*:10933:0:99999:7::: +operator:*:10933:0:99999:7::: +nobody:*:10933:0:99999:7::: +dbus:*::::::: diff --git a/squashfs-root/etc/timidity.cfg b/squashfs-root/etc/timidity.cfg new file mode 100755 index 0000000..b29f8a7 --- /dev/null +++ b/squashfs-root/etc/timidity.cfg @@ -0,0 +1,213 @@ +# I've tweaked the amps pretty well, they should sound pretty good as they are +# now. If you don't like the balance, just change it :) + +dir /etc + +bank 0 + +0 instruments/acpiano amp=125 +1 instruments/britepno amp=115 +2 instruments/synpiano amp=115 +3 instruments/honky +4 instruments/epiano1 +5 instruments/epiano2 amp=80 +6 instruments/hrpschrd amp=115 +7 instruments/clavinet +8 instruments/celeste amp=100 +9 instruments/glocken amp=75 +10 instruments/musicbox +11 instruments/vibes amp=60 +12 instruments/marimba +13 instruments/xylophon +14 instruments/tubebell +15 instruments/santur +16 instruments/hammond +17 instruments/percorg +18 instruments/rockorg +19 instruments/church +20 instruments/reedorg +21 instruments/accordn +22 instruments/harmonca +23 instruments/concrtna +24 instruments/nyguitar amp=150 +25 instruments/acguitar amp=150 +26 instruments/jazzgtr +27 instruments/cleangtr amp=125 +28 instruments/mutegtr amp=125 +29 instruments/odguitar amp=85 +30 instruments/distgtr amp=100 +31 instruments/gtrharm amp=85 +32 instruments/acbass amp=150 +33 instruments/fngrbass amp=150 +34 instruments/pickbass amp=150 +35 instruments/fretless amp=225 +36 instruments/slapbas1 +37 instruments/slapbas2 +38 instruments/synbass1 amp=150 +39 instruments/synbass2 amp=150 +40 instruments/violin amp=150 +41 instruments/viola +42 instruments/cello +43 instruments/contraba amp=150 +44 instruments/tremstr +45 instruments/pizzcato amp=85 +46 instruments/harp +47 instruments/timpani +48 instruments/marcato +49 instruments/slowstr +50 instruments/synstr1 amp=125 +51 instruments/synstr2 amp=125 +52 instruments/choir +53 instruments/doo +54 instruments/voices +55 instruments/orchhit +56 instruments/trumpet amp=125 +#56 instruments/trump2 +57 instruments/trombone amp=100 +58 instruments/tuba +59 instruments/mutetrum +60 instruments/frenchrn amp=115 +61 instruments/hitbrass amp=100 +62 instruments/synbras1 amp=115 +63 instruments/synbras2 amp=115 +64 instruments/sprnosax +65 instruments/altosax +66 instruments/tenorsax amp=125 +67 instruments/barisax +68 instruments/oboe +69 instruments/englhorn +70 instruments/bassoon +71 instruments/clarinet +72 instruments/piccolo +73 instruments/flute amp=100 +74 instruments/recorder +75 instruments/woodflut +76 instruments/bottle +77 instruments/shakazul amp=125 +78 instruments/whistle +79 instruments/ocarina +80 instruments/sqrwave +81 instruments/sawwave +82 instruments/calliope +83 instruments/chiflead amp=250 +84 instruments/charang +85 instruments/voxlead +86 instruments/lead5th +87 instruments/basslead amp=125 +88 instruments/newage amp=125 +89 instruments/warmpad +90 instruments/polysyn +91 instruments/ghostie amp=120 +92 instruments/bowglass amp=200 +93 instruments/metalpad amp=100 +94 instruments/halopad +95 instruments/sweeper amp=80 +96 instruments/aurora +97 instruments/soundtrk +98 instruments/crystal +99 instruments/atmosphr amp=225 +100 instruments/freshair +101 instruments/unicorn +102 instruments/echovox +103 instruments/startrak +104 instruments/sitar +105 instruments/banjo +106 instruments/shamisen amp=200 +107 instruments/koto +108 instruments/kalimba amp=100 +109 instruments/bagpipes +110 instruments/fiddle +111 instruments/shannai +112 instruments/carillon +113 instruments/agogo +114 instruments/steeldrm +115 instruments/woodblk +116 instruments/taiko amp=200 +117 instruments/toms +118 instruments/syntom +119 instruments/revcym +120 instruments/fx-fret amp=30 +121 instruments/fx-blow +122 instruments/seashore +123 instruments/jungle +124 instruments/telephon +125 instruments/helicptr +126 instruments/applause +#127 instruments/pistol + +############################################################################## +# The GUS drum patches +# +# Many patches are forced to note=xx, since they are keyed to C4 or some +# other note rather than to the key they are played on in the set. It is +# simpler to change the .cfg file than edit the patches :) All the congas +# really are best keyed to note=62, those aren't typos. + +drumset 0 + +25 instruments/snarerol keep=env amp=225 note=60 +26 instruments/snap note=65 +27 instruments/highq amp=50 note=65 +28 instruments/slap +29 instruments/scratch1 amp=30 +30 instruments/scratch2 amp=30 +31 instruments/sticks note=60 +32 instruments/sqrclick note=60 +33 instruments/metclick note=60 +34 instruments/metbell keep=loop keep=env note=60 + +# before this point, GM/GS and XG standard drumsets are different... + +35 instruments/kick1 +36 instruments/kick2 +37 instruments/stickrim +38 instruments/snare1 +39 instruments/claps strip=tail +40 instruments/snare2 +41 instruments/tomlo2 +42 instruments/hihatcl +43 instruments/tomlo1 +44 instruments/hihatpd +45 instruments/tommid2 +46 instruments/hihatop +47 instruments/tommid1 +48 instruments/tomhi2 +49 instruments/cymcrsh1 +50 instruments/tomhi1 +51 instruments/cymride1 note=60 +52 instruments/cymchina +53 instruments/cymbell +54 instruments/tamborin note=60 +55 instruments/cymsplsh +56 instruments/cowbell +57 instruments/cymcrsh2 +58 instruments/vibslap +59 instruments/cymride2 note=60 +60 instruments/bongohi +61 instruments/bongolo +62 instruments/congahi1 +63 instruments/congahi2 note=62 +64 instruments/congalo note=62 +65 instruments/timbaleh note=60 +66 instruments/timbalel note=60 +67 instruments/agogohi note=60 +68 instruments/agogolo note=60 +69 instruments/cabasa +70 instruments/maracas note=60 +71 instruments/whistle1 note=60 keep=loop keep=env +72 instruments/whistle2 note=60 keep=loop keep=env +73 instruments/guiro1 +74 instruments/guiro2 note=60 keep=env +75 instruments/clave +76 instruments/woodblk1 note=60 +77 instruments/woodblk2 note=60 +78 instruments/cuica1 +79 instruments/cuica2 +80 instruments/triangl1 note=60 amp=40 +81 instruments/triangl2 note=60 amp=40 +82 instruments/shaker +83 instruments/jingles note=92 +84 instruments/belltree keep=loop keep=env +85 instruments/castinet +86 instruments/surdo1 +87 instruments/surdo2 diff --git a/squashfs-root/etc/ts.conf b/squashfs-root/etc/ts.conf new file mode 100644 index 0000000..08adcbb --- /dev/null +++ b/squashfs-root/etc/ts.conf @@ -0,0 +1,38 @@ +# Access plugins +################ + +# Uncomment if you wish to use the linux input layer event interface +module_raw input + +# For other driver modules, see the ts.conf man page + + +# Filter plugins +################ + +# Uncomment if first or last samples are unreliable +# module skip nhead=1 ntail=1 + +# Uncomment if needed for devices that measure pressure +module pthres pmin=1 + +# Uncomment if needed +# module debounce drop_threshold=40 + +# Uncomment if needed to filter spikes +# module median depth=5 + +# Uncomment to enable smoothing of fraction N/D +# module iir N=6 D=10 + +# Uncomment if needed +# module lowpass factor=0.1 threshold=1 + +# Uncomment if needed to filter noise samples +module dejitter delta=100 + +# Uncomment and adjust if you need to invert an axis or both +# module invert x0=800 y0=480 + +# Uncomment to use ts_calibrate's settings +module linear diff --git a/squashfs-root/etc/vfatfsck.sh b/squashfs-root/etc/vfatfsck.sh new file mode 100755 index 0000000..37b332d --- /dev/null +++ b/squashfs-root/etc/vfatfsck.sh @@ -0,0 +1,26 @@ +#!/bin/sh + + +# +# Filesystem check if Dirty bit is set for VFAT +# + + +STR=$(dmesg) + +if echo "$STR" | grep -q "FAT-fs (mmcblk0p1)"; then + fsck.vfat -a /dev/mmcblk0p1 +fi + + +if echo "$STR" | grep -q "FAT-fs (mmcblk0p2)"; then + fsck.vfat -a /dev/mmcblk0p2 +fi + + + + + + + + diff --git a/squashfs-root/lib/ld-uClibc-1.0.28.so b/squashfs-root/lib/ld-uClibc-1.0.28.so new file mode 100755 index 0000000..1af1501 Binary files /dev/null and b/squashfs-root/lib/ld-uClibc-1.0.28.so differ diff --git a/squashfs-root/lib/ld-uClibc.so.0 b/squashfs-root/lib/ld-uClibc.so.0 new file mode 120000 index 0000000..96e71c8 --- /dev/null +++ b/squashfs-root/lib/ld-uClibc.so.0 @@ -0,0 +1 @@ +ld-uClibc.so.1 \ No newline at end of file diff --git a/squashfs-root/lib/ld-uClibc.so.1 b/squashfs-root/lib/ld-uClibc.so.1 new file mode 120000 index 0000000..02894f5 --- /dev/null +++ b/squashfs-root/lib/ld-uClibc.so.1 @@ -0,0 +1 @@ +ld-uClibc-1.0.28.so \ No newline at end of file diff --git a/squashfs-root/lib/libatomic.so b/squashfs-root/lib/libatomic.so new file mode 120000 index 0000000..5841e4b --- /dev/null +++ b/squashfs-root/lib/libatomic.so @@ -0,0 +1 @@ +libatomic.so.1.2.0 \ No newline at end of file diff --git a/squashfs-root/lib/libatomic.so.1 b/squashfs-root/lib/libatomic.so.1 new file mode 120000 index 0000000..5841e4b --- /dev/null +++ b/squashfs-root/lib/libatomic.so.1 @@ -0,0 +1 @@ +libatomic.so.1.2.0 \ No newline at end of file diff --git a/squashfs-root/lib/libatomic.so.1.2.0 b/squashfs-root/lib/libatomic.so.1.2.0 new file mode 100755 index 0000000..83f421d Binary files /dev/null and b/squashfs-root/lib/libatomic.so.1.2.0 differ diff --git a/squashfs-root/lib/libblkid.so.1 b/squashfs-root/lib/libblkid.so.1 new file mode 120000 index 0000000..e4f69c7 --- /dev/null +++ b/squashfs-root/lib/libblkid.so.1 @@ -0,0 +1 @@ +libblkid.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/lib/libblkid.so.1.1.0 b/squashfs-root/lib/libblkid.so.1.1.0 new file mode 100755 index 0000000..d65c479 Binary files /dev/null and b/squashfs-root/lib/libblkid.so.1.1.0 differ diff --git a/squashfs-root/lib/libc.so.0 b/squashfs-root/lib/libc.so.0 new file mode 120000 index 0000000..aa6f224 --- /dev/null +++ b/squashfs-root/lib/libc.so.0 @@ -0,0 +1 @@ +libuClibc-1.0.28.so \ No newline at end of file diff --git a/squashfs-root/lib/libc.so.1 b/squashfs-root/lib/libc.so.1 new file mode 120000 index 0000000..aa6f224 --- /dev/null +++ b/squashfs-root/lib/libc.so.1 @@ -0,0 +1 @@ +libuClibc-1.0.28.so \ No newline at end of file diff --git a/squashfs-root/lib/libgcc_s.so b/squashfs-root/lib/libgcc_s.so new file mode 100644 index 0000000..c8e9224 --- /dev/null +++ b/squashfs-root/lib/libgcc_s.so @@ -0,0 +1,4 @@ +/* GNU ld script + Use the shared library, but some functions are only in + the static library. */ +GROUP ( libgcc_s.so.1 -lgcc ) diff --git a/squashfs-root/lib/libgcc_s.so.1 b/squashfs-root/lib/libgcc_s.so.1 new file mode 100644 index 0000000..23e3ad8 Binary files /dev/null and b/squashfs-root/lib/libgcc_s.so.1 differ diff --git a/squashfs-root/lib/libmount.so.1 b/squashfs-root/lib/libmount.so.1 new file mode 120000 index 0000000..af69846 --- /dev/null +++ b/squashfs-root/lib/libmount.so.1 @@ -0,0 +1 @@ +libmount.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/lib/libmount.so.1.1.0 b/squashfs-root/lib/libmount.so.1.1.0 new file mode 100755 index 0000000..06760d1 Binary files /dev/null and b/squashfs-root/lib/libmount.so.1.1.0 differ diff --git a/squashfs-root/lib/libuClibc-1.0.28.orig b/squashfs-root/lib/libuClibc-1.0.28.orig new file mode 100755 index 0000000..2fa28bd Binary files /dev/null and b/squashfs-root/lib/libuClibc-1.0.28.orig differ diff --git a/squashfs-root/lib/libuClibc-1.0.28.so b/squashfs-root/lib/libuClibc-1.0.28.so new file mode 100755 index 0000000..2fa28bd Binary files /dev/null and b/squashfs-root/lib/libuClibc-1.0.28.so differ diff --git a/squashfs-root/lib/libuuid.so.1 b/squashfs-root/lib/libuuid.so.1 new file mode 120000 index 0000000..774fbfe --- /dev/null +++ b/squashfs-root/lib/libuuid.so.1 @@ -0,0 +1 @@ +libuuid.so.1.3.0 \ No newline at end of file diff --git a/squashfs-root/lib/libuuid.so.1.3.0 b/squashfs-root/lib/libuuid.so.1.3.0 new file mode 100755 index 0000000..0e4eb24 Binary files /dev/null and b/squashfs-root/lib/libuuid.so.1.3.0 differ diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/build b/squashfs-root/lib/modules/4.14.0-miyoo/build new file mode 120000 index 0000000..154ae7c --- /dev/null +++ b/squashfs-root/lib/modules/4.14.0-miyoo/build @@ -0,0 +1 @@ +/home/steward/Github/f1c500s_kernel \ No newline at end of file diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/kernel/crypto/echainiv.ko b/squashfs-root/lib/modules/4.14.0-miyoo/kernel/crypto/echainiv.ko new file mode 100644 index 0000000..1a1ea4c Binary files /dev/null and b/squashfs-root/lib/modules/4.14.0-miyoo/kernel/crypto/echainiv.ko differ diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/core/syscopyarea.ko b/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/core/syscopyarea.ko new file mode 100644 index 0000000..847076d Binary files /dev/null and b/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/core/syscopyarea.ko differ diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/core/sysfillrect.ko b/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/core/sysfillrect.ko new file mode 100644 index 0000000..22da4b5 Binary files /dev/null and b/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/core/sysfillrect.ko differ diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/core/sysimgblt.ko b/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/core/sysimgblt.ko new file mode 100644 index 0000000..1161748 Binary files /dev/null and b/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/core/sysimgblt.ko differ diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/r61520fb.ko b/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/r61520fb.ko new file mode 120000 index 0000000..4d5aabd --- /dev/null +++ b/squashfs-root/lib/modules/4.14.0-miyoo/kernel/drivers/video/fbdev/r61520fb.ko @@ -0,0 +1 @@ +/mnt/kernel/r61520fb.ko \ No newline at end of file diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/modules.alias b/squashfs-root/lib/modules/4.14.0-miyoo/modules.alias new file mode 100644 index 0000000..1520d57 --- /dev/null +++ b/squashfs-root/lib/modules/4.14.0-miyoo/modules.alias @@ -0,0 +1,5 @@ +# Aliases extracted from modules themselves. +alias crypto-echainiv echainiv +alias echainiv echainiv +alias of:N*T*Callwinner,suniv-f1c500s,r61520C* r61520fb +alias of:N*T*Callwinner,suniv-f1c500s,r61520 r61520fb diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/modules.alias.bin b/squashfs-root/lib/modules/4.14.0-miyoo/modules.alias.bin new file mode 100644 index 0000000..7c341ef Binary files /dev/null and b/squashfs-root/lib/modules/4.14.0-miyoo/modules.alias.bin differ diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/modules.builtin b/squashfs-root/lib/modules/4.14.0-miyoo/modules.builtin new file mode 100644 index 0000000..9024058 --- /dev/null +++ b/squashfs-root/lib/modules/4.14.0-miyoo/modules.builtin @@ -0,0 +1,108 @@ +kernel/fs/binfmt_script.ko +kernel/fs/mbcache.ko +kernel/fs/configfs/configfs.ko +kernel/fs/exportfs/exportfs.ko +kernel/fs/ext2/ext2.ko +kernel/fs/ext4/ext4.ko +kernel/fs/fat/fat.ko +kernel/fs/fat/vfat.ko +kernel/fs/jbd2/jbd2.ko +kernel/fs/nls/nls_base.ko +kernel/fs/nls/nls_cp437.ko +kernel/fs/nls/nls_iso8859-1.ko +kernel/crypto/crypto.ko +kernel/crypto/crypto_wq.ko +kernel/crypto/crypto_algapi.ko +kernel/crypto/aead.ko +kernel/crypto/crypto_blkcipher.ko +kernel/crypto/seqiv.ko +kernel/crypto/crypto_hash.ko +kernel/crypto/akcipher.ko +kernel/crypto/kpp.ko +kernel/crypto/rsa_generic.ko +kernel/crypto/crypto_acompress.ko +kernel/crypto/cryptomgr.ko +kernel/crypto/cmac.ko +kernel/crypto/hmac.ko +kernel/crypto/crypto_null.ko +kernel/crypto/md5.ko +kernel/crypto/sha1_generic.ko +kernel/crypto/sha256_generic.ko +kernel/crypto/gf128mul.ko +kernel/crypto/ctr.ko +kernel/crypto/gcm.ko +kernel/crypto/ccm.ko +kernel/crypto/des_generic.ko +kernel/crypto/aes_generic.ko +kernel/crypto/arc4.ko +kernel/crypto/crc32c_generic.ko +kernel/crypto/rng.ko +kernel/crypto/drbg.ko +kernel/crypto/jitterentropy_rng.ko +kernel/crypto/ghash-generic.ko +kernel/crypto/asymmetric_keys/public_key.ko +kernel/crypto/asymmetric_keys/x509_key_parser.ko +kernel/crypto/asymmetric_keys/pkcs7_message.ko +kernel/block/deadline-iosched.ko +kernel/block/cfq-iosched.ko +kernel/block/mq-deadline.ko +kernel/block/kyber-iosched.ko +kernel/drivers/base/firmware_class.ko +kernel/drivers/base/regmap/regmap-mmio.ko +kernel/drivers/bus/sunxi-rsb.ko +kernel/drivers/cpufreq/cpufreq_performance.ko +kernel/drivers/cpufreq/cpufreq-dt.ko +kernel/drivers/crypto/sunxi-ss/sun4i-ss.ko +kernel/drivers/input/input-core.ko +kernel/drivers/input/keyboard/atkbd.ko +kernel/drivers/input/keyboard/miyoo_kbd.ko +kernel/drivers/input/serio/serio.ko +kernel/drivers/input/serio/serport.ko +kernel/drivers/input/serio/libps2.ko +kernel/drivers/mfd/mfd-core.ko +kernel/drivers/mfd/axp20x.ko +kernel/drivers/mfd/axp20x-rsb.ko +kernel/drivers/mmc/core/mmc_core.ko +kernel/drivers/mmc/core/pwrseq_simple.ko +kernel/drivers/mmc/core/pwrseq_emmc.ko +kernel/drivers/mmc/core/mmc_block.ko +kernel/drivers/mmc/host/sunxi-mmc.ko +kernel/drivers/mtd/mtd.ko +kernel/drivers/mtd/ofpart.ko +kernel/drivers/mtd/chips/chipreg.ko +kernel/drivers/mtd/spi-nor/spi-nor.ko +kernel/drivers/nvmem/nvmem_core.ko +kernel/drivers/nvmem/nvmem_sunxi_sid.ko +kernel/drivers/power/supply/miyoo-battery.ko +kernel/drivers/pwm/pwm-suniv.ko +kernel/drivers/regulator/fixed.ko +kernel/drivers/scsi/scsi_mod.ko +kernel/drivers/scsi/sd_mod.ko +kernel/drivers/scsi/sg.ko +kernel/drivers/scsi/ch.ko +kernel/drivers/tty/serial/serial_core.ko +kernel/drivers/tty/serial/8250/8250.ko +kernel/drivers/tty/serial/8250/8250_base.ko +kernel/drivers/tty/serial/8250/8250_dw.ko +kernel/drivers/tty/serial/8250/8250_of.ko +kernel/drivers/video/backlight/backlight.ko +kernel/drivers/video/backlight/pwm_bl.ko +kernel/drivers/video/fbdev/core/fb.ko +kernel/sound/soundcore.ko +kernel/sound/core/snd.ko +kernel/sound/core/snd-timer.ko +kernel/sound/core/snd-pcm.ko +kernel/sound/core/snd-pcm-dmaengine.ko +kernel/sound/soc/snd-soc-core.ko +kernel/sound/soc/suniv/miyoo.ko +kernel/lib/bitrev.ko +kernel/lib/crc16.ko +kernel/lib/crc32.ko +kernel/lib/asn1_decoder.ko +kernel/lib/oid_registry.ko +kernel/lib/fonts/font.ko +kernel/lib/lz4/lz4_decompress.ko +kernel/lib/lzo/lzo_decompress.ko +kernel/lib/mpi/mpi.ko +kernel/lib/xz/xz_dec.ko +kernel/lib/zlib_inflate/zlib_inflate.ko diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/modules.builtin.bin b/squashfs-root/lib/modules/4.14.0-miyoo/modules.builtin.bin new file mode 100644 index 0000000..8d807cc Binary files /dev/null and b/squashfs-root/lib/modules/4.14.0-miyoo/modules.builtin.bin differ diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/modules.dep b/squashfs-root/lib/modules/4.14.0-miyoo/modules.dep new file mode 100644 index 0000000..b9da14c --- /dev/null +++ b/squashfs-root/lib/modules/4.14.0-miyoo/modules.dep @@ -0,0 +1,5 @@ +kernel/crypto/echainiv.ko: +kernel/drivers/video/fbdev/core/sysfillrect.ko: +kernel/drivers/video/fbdev/core/syscopyarea.ko: +kernel/drivers/video/fbdev/core/sysimgblt.ko: +kernel/drivers/video/fbdev/r61520fb.ko: kernel/drivers/video/fbdev/core/syscopyarea.ko kernel/drivers/video/fbdev/core/sysfillrect.ko kernel/drivers/video/fbdev/core/sysimgblt.ko diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/modules.dep.bin b/squashfs-root/lib/modules/4.14.0-miyoo/modules.dep.bin new file mode 100644 index 0000000..370b780 Binary files /dev/null and b/squashfs-root/lib/modules/4.14.0-miyoo/modules.dep.bin differ diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/modules.devname b/squashfs-root/lib/modules/4.14.0-miyoo/modules.devname new file mode 100644 index 0000000..e69de29 diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/modules.order b/squashfs-root/lib/modules/4.14.0-miyoo/modules.order new file mode 100644 index 0000000..aaf6457 --- /dev/null +++ b/squashfs-root/lib/modules/4.14.0-miyoo/modules.order @@ -0,0 +1,5 @@ +kernel/crypto/echainiv.ko +kernel/drivers/video/fbdev/core/sysfillrect.ko +kernel/drivers/video/fbdev/core/syscopyarea.ko +kernel/drivers/video/fbdev/core/sysimgblt.ko +kernel/drivers/video/fbdev/r61520fb.ko diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/modules.softdep b/squashfs-root/lib/modules/4.14.0-miyoo/modules.softdep new file mode 100644 index 0000000..5554ccc --- /dev/null +++ b/squashfs-root/lib/modules/4.14.0-miyoo/modules.softdep @@ -0,0 +1 @@ +# Soft dependencies extracted from modules themselves. diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/modules.symbols b/squashfs-root/lib/modules/4.14.0-miyoo/modules.symbols new file mode 100644 index 0000000..fb30078 --- /dev/null +++ b/squashfs-root/lib/modules/4.14.0-miyoo/modules.symbols @@ -0,0 +1,4 @@ +# Aliases for symbols, used by symbol_request(). +alias symbol:sys_copyarea syscopyarea +alias symbol:sys_fillrect sysfillrect +alias symbol:sys_imageblit sysimgblt diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/modules.symbols.bin b/squashfs-root/lib/modules/4.14.0-miyoo/modules.symbols.bin new file mode 100644 index 0000000..d40cfa9 Binary files /dev/null and b/squashfs-root/lib/modules/4.14.0-miyoo/modules.symbols.bin differ diff --git a/squashfs-root/lib/modules/4.14.0-miyoo/source b/squashfs-root/lib/modules/4.14.0-miyoo/source new file mode 120000 index 0000000..154ae7c --- /dev/null +++ b/squashfs-root/lib/modules/4.14.0-miyoo/source @@ -0,0 +1 @@ +/home/steward/Github/f1c500s_kernel \ No newline at end of file diff --git a/squashfs-root/lib32 b/squashfs-root/lib32 new file mode 120000 index 0000000..7951405 --- /dev/null +++ b/squashfs-root/lib32 @@ -0,0 +1 @@ +lib \ No newline at end of file diff --git a/squashfs-root/linuxrc b/squashfs-root/linuxrc new file mode 120000 index 0000000..f9f7342 --- /dev/null +++ b/squashfs-root/linuxrc @@ -0,0 +1 @@ +bin/busybox \ No newline at end of file diff --git a/squashfs-root/run/utmp b/squashfs-root/run/utmp new file mode 100644 index 0000000..e69de29 diff --git a/squashfs-root/sbin/arp b/squashfs-root/sbin/arp new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/arp @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/blkid b/squashfs-root/sbin/blkid new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/blkid @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/devmem b/squashfs-root/sbin/devmem new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/devmem @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/fdisk b/squashfs-root/sbin/fdisk new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/fdisk @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/freeramdisk b/squashfs-root/sbin/freeramdisk new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/freeramdisk @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/fsck b/squashfs-root/sbin/fsck new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/fsck @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/fsck.vfat b/squashfs-root/sbin/fsck.vfat new file mode 100755 index 0000000..6ede616 Binary files /dev/null and b/squashfs-root/sbin/fsck.vfat differ diff --git a/squashfs-root/sbin/fstrim b/squashfs-root/sbin/fstrim new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/fstrim @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/getty b/squashfs-root/sbin/getty new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/getty @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/halt b/squashfs-root/sbin/halt new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/halt @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/hdparm b/squashfs-root/sbin/hdparm new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/hdparm @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/hwclock b/squashfs-root/sbin/hwclock new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/hwclock @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/ifconfig b/squashfs-root/sbin/ifconfig new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/ifconfig @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/ifdown b/squashfs-root/sbin/ifdown new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/ifdown @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/ifup b/squashfs-root/sbin/ifup new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/ifup @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/init b/squashfs-root/sbin/init new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/init @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/insmod b/squashfs-root/sbin/insmod new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/insmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/ip b/squashfs-root/sbin/ip new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/ip @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/ipaddr b/squashfs-root/sbin/ipaddr new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/ipaddr @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/iplink b/squashfs-root/sbin/iplink new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/iplink @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/ipneigh b/squashfs-root/sbin/ipneigh new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/ipneigh @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/iproute b/squashfs-root/sbin/iproute new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/iproute @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/iprule b/squashfs-root/sbin/iprule new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/iprule @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/iptunnel b/squashfs-root/sbin/iptunnel new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/iptunnel @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/klogd b/squashfs-root/sbin/klogd new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/klogd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/ldconfig b/squashfs-root/sbin/ldconfig new file mode 100755 index 0000000..f0261b6 Binary files /dev/null and b/squashfs-root/sbin/ldconfig differ diff --git a/squashfs-root/sbin/loadkmap b/squashfs-root/sbin/loadkmap new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/loadkmap @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/losetup b/squashfs-root/sbin/losetup new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/losetup @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/lsmod b/squashfs-root/sbin/lsmod new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/lsmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/makedevs b/squashfs-root/sbin/makedevs new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/makedevs @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/mdev b/squashfs-root/sbin/mdev new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/mdev @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/mkdosfs b/squashfs-root/sbin/mkdosfs new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/mkdosfs @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/mke2fs b/squashfs-root/sbin/mke2fs new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/mke2fs @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/mkswap b/squashfs-root/sbin/mkswap new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/mkswap @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/modprobe b/squashfs-root/sbin/modprobe new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/modprobe @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/nameif b/squashfs-root/sbin/nameif new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/nameif @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/pivot_root b/squashfs-root/sbin/pivot_root new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/pivot_root @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/poweroff b/squashfs-root/sbin/poweroff new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/poweroff @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/reboot b/squashfs-root/sbin/reboot new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/reboot @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/rmmod b/squashfs-root/sbin/rmmod new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/rmmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/route b/squashfs-root/sbin/route new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/route @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/runlevel b/squashfs-root/sbin/runlevel new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/runlevel @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/setconsole b/squashfs-root/sbin/setconsole new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/setconsole @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/start-stop-daemon b/squashfs-root/sbin/start-stop-daemon new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/start-stop-daemon @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/sulogin b/squashfs-root/sbin/sulogin new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/sulogin @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/swapoff b/squashfs-root/sbin/swapoff new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/swapoff @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/swapon b/squashfs-root/sbin/swapon new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/swapon @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/switch_root b/squashfs-root/sbin/switch_root new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/switch_root @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/sysctl b/squashfs-root/sbin/sysctl new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/sysctl @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/syslogd b/squashfs-root/sbin/syslogd new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/syslogd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/udhcpc b/squashfs-root/sbin/udhcpc new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/udhcpc @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/uevent b/squashfs-root/sbin/uevent new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/uevent @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/vconfig b/squashfs-root/sbin/vconfig new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/vconfig @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/sbin/watchdog b/squashfs-root/sbin/watchdog new file mode 120000 index 0000000..7125971 --- /dev/null +++ b/squashfs-root/sbin/watchdog @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/7zr b/squashfs-root/usr/bin/7zr new file mode 100755 index 0000000..1ad89c0 Binary files /dev/null and b/squashfs-root/usr/bin/7zr differ diff --git a/squashfs-root/usr/bin/X b/squashfs-root/usr/bin/X new file mode 120000 index 0000000..e363c6e --- /dev/null +++ b/squashfs-root/usr/bin/X @@ -0,0 +1 @@ +Xorg \ No newline at end of file diff --git a/squashfs-root/usr/bin/Xorg b/squashfs-root/usr/bin/Xorg new file mode 100755 index 0000000..3997c04 Binary files /dev/null and b/squashfs-root/usr/bin/Xorg differ diff --git a/squashfs-root/usr/bin/[ b/squashfs-root/usr/bin/[ new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/[ @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/[[ b/squashfs-root/usr/bin/[[ new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/[[ @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/alsamixer b/squashfs-root/usr/bin/alsamixer new file mode 100755 index 0000000..1cfafda Binary files /dev/null and b/squashfs-root/usr/bin/alsamixer differ diff --git a/squashfs-root/usr/bin/aplay b/squashfs-root/usr/bin/aplay new file mode 100755 index 0000000..dd337e0 Binary files /dev/null and b/squashfs-root/usr/bin/aplay differ diff --git a/squashfs-root/usr/bin/ar b/squashfs-root/usr/bin/ar new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/ar @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/arecord b/squashfs-root/usr/bin/arecord new file mode 100755 index 0000000..dd337e0 Binary files /dev/null and b/squashfs-root/usr/bin/arecord differ diff --git a/squashfs-root/usr/bin/aserver b/squashfs-root/usr/bin/aserver new file mode 100755 index 0000000..1f8371b Binary files /dev/null and b/squashfs-root/usr/bin/aserver differ diff --git a/squashfs-root/usr/bin/awk b/squashfs-root/usr/bin/awk new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/awk @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/basename b/squashfs-root/usr/bin/basename new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/basename @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/bunzip2 b/squashfs-root/usr/bin/bunzip2 new file mode 100755 index 0000000..6fdc090 Binary files /dev/null and b/squashfs-root/usr/bin/bunzip2 differ diff --git a/squashfs-root/usr/bin/bzcat b/squashfs-root/usr/bin/bzcat new file mode 100755 index 0000000..6fdc090 Binary files /dev/null and b/squashfs-root/usr/bin/bzcat differ diff --git a/squashfs-root/usr/bin/bzcmp b/squashfs-root/usr/bin/bzcmp new file mode 120000 index 0000000..bf96556 --- /dev/null +++ b/squashfs-root/usr/bin/bzcmp @@ -0,0 +1 @@ +bzdiff \ No newline at end of file diff --git a/squashfs-root/usr/bin/bzdiff b/squashfs-root/usr/bin/bzdiff new file mode 100755 index 0000000..6fc38f9 --- /dev/null +++ b/squashfs-root/usr/bin/bzdiff @@ -0,0 +1,76 @@ +#!/bin/sh +# sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh + +# Bzcmp/diff wrapped for bzip2, +# adapted from zdiff by Philippe Troin for Debian GNU/Linux. + +# Bzcmp and bzdiff are used to invoke the cmp or the diff pro- +# gram on compressed files. All options specified are passed +# directly to cmp or diff. If only 1 file is specified, then +# the files compared are file1 and an uncompressed file1.gz. +# If two files are specified, then they are uncompressed (if +# necessary) and fed to cmp or diff. The exit status from cmp +# or diff is preserved. + +PATH="/usr/bin:/bin:$PATH"; export PATH +prog=`echo $0 | sed 's|.*/||'` +case "$prog" in + *cmp) comp=${CMP-cmp} ;; + *) comp=${DIFF-diff} ;; +esac + +OPTIONS= +FILES= +for ARG +do + case "$ARG" in + -*) OPTIONS="$OPTIONS $ARG";; + *) if test -f "$ARG"; then + FILES="$FILES $ARG" + else + echo "${prog}: $ARG not found or not a regular file" + exit 1 + fi ;; + esac +done +if test -z "$FILES"; then + echo "Usage: $prog [${comp}_options] file [file]" + exit 1 +fi +tmp=`mktemp ${TMPDIR:-/tmp}/bzdiff.XXXXXXXXXX` || { + echo 'cannot create a temporary file' >&2 + exit 1 +} +set $FILES +if test $# -eq 1; then + FILE=`echo "$1" | sed 's/.bz2$//'` + bzip2 -cd "$FILE.bz2" | $comp $OPTIONS - "$FILE" + STAT="$?" + +elif test $# -eq 2; then + case "$1" in + *.bz2) + case "$2" in + *.bz2) + F=`echo "$2" | sed 's|.*/||;s|.bz2$||'` + bzip2 -cdfq "$2" > $tmp + bzip2 -cdfq "$1" | $comp $OPTIONS - $tmp + STAT="$?" + /bin/rm -f $tmp;; + + *) bzip2 -cdfq "$1" | $comp $OPTIONS - "$2" + STAT="$?";; + esac;; + *) case "$2" in + *.bz2) + bzip2 -cdfq "$2" | $comp $OPTIONS "$1" - + STAT="$?";; + *) $comp $OPTIONS "$1" "$2" + STAT="$?";; + esac;; + esac + exit "$STAT" +else + echo "Usage: $prog [${comp}_options] file [file]" + exit 1 +fi diff --git a/squashfs-root/usr/bin/bzegrep b/squashfs-root/usr/bin/bzegrep new file mode 120000 index 0000000..9bdac10 --- /dev/null +++ b/squashfs-root/usr/bin/bzegrep @@ -0,0 +1 @@ +bzgrep \ No newline at end of file diff --git a/squashfs-root/usr/bin/bzfgrep b/squashfs-root/usr/bin/bzfgrep new file mode 120000 index 0000000..9bdac10 --- /dev/null +++ b/squashfs-root/usr/bin/bzfgrep @@ -0,0 +1 @@ +bzgrep \ No newline at end of file diff --git a/squashfs-root/usr/bin/bzgrep b/squashfs-root/usr/bin/bzgrep new file mode 100755 index 0000000..9a04b83 --- /dev/null +++ b/squashfs-root/usr/bin/bzgrep @@ -0,0 +1,75 @@ +#!/bin/sh + +# Bzgrep wrapped for bzip2, +# adapted from zgrep by Philippe Troin for Debian GNU/Linux. +## zgrep notice: +## zgrep -- a wrapper around a grep program that decompresses files as needed +## Adapted from a version sent by Charles Levert + +PATH="/usr/bin:$PATH"; export PATH + +prog=`echo $0 | sed 's|.*/||'` +case "$prog" in + *egrep) grep=${EGREP-egrep} ;; + *fgrep) grep=${FGREP-fgrep} ;; + *) grep=${GREP-grep} ;; +esac +pat="" +while test $# -ne 0; do + case "$1" in + -e | -f) opt="$opt $1"; shift; pat="$1" + if test "$grep" = grep; then # grep is buggy with -e on SVR4 + grep=egrep + fi;; + -A | -B) opt="$opt $1 $2"; shift;; + -*) opt="$opt $1";; + *) if test -z "$pat"; then + pat="$1" + else + break; + fi;; + esac + shift +done + +if test -z "$pat"; then + echo "grep through bzip2 files" + echo "usage: $prog [grep_options] pattern [files]" + exit 1 +fi + +list=0 +silent=0 +op=`echo "$opt" | sed -e 's/ //g' -e 's/-//g'` +case "$op" in + *l*) list=1 +esac +case "$op" in + *h*) silent=1 +esac + +if test $# -eq 0; then + bzip2 -cdfq | $grep $opt "$pat" + exit $? +fi + +res=0 +for i do + if test -f "$i"; then :; else if test -f "$i.bz2"; then i="$i.bz2"; fi; fi + if test $list -eq 1; then + bzip2 -cdfq "$i" | $grep $opt "$pat" 2>&1 > /dev/null && echo $i + r=$? + elif test $# -eq 1 -o $silent -eq 1; then + bzip2 -cdfq "$i" | $grep $opt "$pat" + r=$? + else + j=${i//\\/\\\\} + j=${j//|/\\|} + j=${j//&/\\&} + j=`printf "%s" "$j" | tr '\n' ' '` + bzip2 -cdfq "$i" | $grep $opt "$pat" | sed "s|^|${j}:|" + r=$? + fi + test "$r" -ne 0 && res="$r" +done +exit $res diff --git a/squashfs-root/usr/bin/bzip2 b/squashfs-root/usr/bin/bzip2 new file mode 100755 index 0000000..6fdc090 Binary files /dev/null and b/squashfs-root/usr/bin/bzip2 differ diff --git a/squashfs-root/usr/bin/bzip2recover b/squashfs-root/usr/bin/bzip2recover new file mode 100755 index 0000000..cce7b07 Binary files /dev/null and b/squashfs-root/usr/bin/bzip2recover differ diff --git a/squashfs-root/usr/bin/bzless b/squashfs-root/usr/bin/bzless new file mode 120000 index 0000000..a9223fd --- /dev/null +++ b/squashfs-root/usr/bin/bzless @@ -0,0 +1 @@ +bzmore \ No newline at end of file diff --git a/squashfs-root/usr/bin/bzmore b/squashfs-root/usr/bin/bzmore new file mode 100755 index 0000000..d314043 --- /dev/null +++ b/squashfs-root/usr/bin/bzmore @@ -0,0 +1,61 @@ +#!/bin/sh + +# Bzmore wrapped for bzip2, +# adapted from zmore by Philippe Troin for Debian GNU/Linux. + +PATH="/usr/bin:$PATH"; export PATH + +prog=`echo $0 | sed 's|.*/||'` +case "$prog" in + *less) more=less ;; + *) more=more ;; +esac + +if test "`echo -n a`" = "-n a"; then + # looks like a SysV system: + n1=''; n2='\c' +else + n1='-n'; n2='' +fi +oldtty=`stty -g 2>/dev/null` +if stty -cbreak 2>/dev/null; then + cb='cbreak'; ncb='-cbreak' +else + # 'stty min 1' resets eof to ^a on both SunOS and SysV! + cb='min 1 -icanon'; ncb='icanon eof ^d' +fi +if test $? -eq 0 -a -n "$oldtty"; then + trap 'stty $oldtty 2>/dev/null; exit' 0 2 3 5 10 13 15 +else + trap 'stty $ncb echo 2>/dev/null; exit' 0 2 3 5 10 13 15 +fi + +if test $# = 0; then + if test -t 0; then + echo usage: $prog files... + else + bzip2 -cdfq | eval $more + fi +else + FIRST=1 + for FILE + do + if test $FIRST -eq 0; then + echo $n1 "--More--(Next file: $FILE)$n2" + stty $cb -echo 2>/dev/null + ANS=`dd bs=1 count=1 2>/dev/null` + stty $ncb echo 2>/dev/null + echo " " + if test "$ANS" = 'e' -o "$ANS" = 'q'; then + exit + fi + fi + if test "$ANS" != 's'; then + echo "------> $FILE <------" + bzip2 -cdfq "$FILE" | eval $more + fi + if test -t; then + FIRST=0 + fi + done +fi diff --git a/squashfs-root/usr/bin/chrt b/squashfs-root/usr/bin/chrt new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/chrt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/chvt b/squashfs-root/usr/bin/chvt new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/chvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/cksum b/squashfs-root/usr/bin/cksum new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/cksum @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/clear b/squashfs-root/usr/bin/clear new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/clear @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/cmp b/squashfs-root/usr/bin/cmp new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/cmp @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/crontab b/squashfs-root/usr/bin/crontab new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/crontab @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/cut b/squashfs-root/usr/bin/cut new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/cut @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/cvt b/squashfs-root/usr/bin/cvt new file mode 100755 index 0000000..4d2a93f Binary files /dev/null and b/squashfs-root/usr/bin/cvt differ diff --git a/squashfs-root/usr/bin/cwebp b/squashfs-root/usr/bin/cwebp new file mode 100755 index 0000000..9dda921 Binary files /dev/null and b/squashfs-root/usr/bin/cwebp differ diff --git a/squashfs-root/usr/bin/daemon b/squashfs-root/usr/bin/daemon new file mode 100755 index 0000000..d104031 Binary files /dev/null and b/squashfs-root/usr/bin/daemon differ diff --git a/squashfs-root/usr/bin/dbus-cleanup-sockets b/squashfs-root/usr/bin/dbus-cleanup-sockets new file mode 100755 index 0000000..d49b1f6 Binary files /dev/null and b/squashfs-root/usr/bin/dbus-cleanup-sockets differ diff --git a/squashfs-root/usr/bin/dbus-daemon b/squashfs-root/usr/bin/dbus-daemon new file mode 100755 index 0000000..feeea6f Binary files /dev/null and b/squashfs-root/usr/bin/dbus-daemon differ diff --git a/squashfs-root/usr/bin/dbus-launch b/squashfs-root/usr/bin/dbus-launch new file mode 100755 index 0000000..2a4662a Binary files /dev/null and b/squashfs-root/usr/bin/dbus-launch differ diff --git a/squashfs-root/usr/bin/dbus-monitor b/squashfs-root/usr/bin/dbus-monitor new file mode 100755 index 0000000..01cec47 Binary files /dev/null and b/squashfs-root/usr/bin/dbus-monitor differ diff --git a/squashfs-root/usr/bin/dbus-run-session b/squashfs-root/usr/bin/dbus-run-session new file mode 100755 index 0000000..848e75b Binary files /dev/null and b/squashfs-root/usr/bin/dbus-run-session differ diff --git a/squashfs-root/usr/bin/dbus-send b/squashfs-root/usr/bin/dbus-send new file mode 100755 index 0000000..c1d22d2 Binary files /dev/null and b/squashfs-root/usr/bin/dbus-send differ diff --git a/squashfs-root/usr/bin/dbus-test-tool b/squashfs-root/usr/bin/dbus-test-tool new file mode 100755 index 0000000..1e052b0 Binary files /dev/null and b/squashfs-root/usr/bin/dbus-test-tool differ diff --git a/squashfs-root/usr/bin/dbus-update-activation-environment b/squashfs-root/usr/bin/dbus-update-activation-environment new file mode 100755 index 0000000..3056d44 Binary files /dev/null and b/squashfs-root/usr/bin/dbus-update-activation-environment differ diff --git a/squashfs-root/usr/bin/dbus-uuidgen b/squashfs-root/usr/bin/dbus-uuidgen new file mode 100755 index 0000000..704c7d9 Binary files /dev/null and b/squashfs-root/usr/bin/dbus-uuidgen differ diff --git a/squashfs-root/usr/bin/dc b/squashfs-root/usr/bin/dc new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/dc @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/deallocvt b/squashfs-root/usr/bin/deallocvt new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/deallocvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/dialog b/squashfs-root/usr/bin/dialog new file mode 100755 index 0000000..9431d80 Binary files /dev/null and b/squashfs-root/usr/bin/dialog differ diff --git a/squashfs-root/usr/bin/diff b/squashfs-root/usr/bin/diff new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/diff @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/dirname b/squashfs-root/usr/bin/dirname new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/dirname @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/dos2unix b/squashfs-root/usr/bin/dos2unix new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/dos2unix @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/du b/squashfs-root/usr/bin/du new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/du @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/dwebp b/squashfs-root/usr/bin/dwebp new file mode 100755 index 0000000..e3954d5 Binary files /dev/null and b/squashfs-root/usr/bin/dwebp differ diff --git a/squashfs-root/usr/bin/eject b/squashfs-root/usr/bin/eject new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/eject @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/env b/squashfs-root/usr/bin/env new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/env @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/envsubst b/squashfs-root/usr/bin/envsubst new file mode 100755 index 0000000..b195744 Binary files /dev/null and b/squashfs-root/usr/bin/envsubst differ diff --git a/squashfs-root/usr/bin/expr b/squashfs-root/usr/bin/expr new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/expr @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/factor b/squashfs-root/usr/bin/factor new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/factor @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/fallocate b/squashfs-root/usr/bin/fallocate new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/fallocate @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/fc-cache b/squashfs-root/usr/bin/fc-cache new file mode 100755 index 0000000..8f2990a Binary files /dev/null and b/squashfs-root/usr/bin/fc-cache differ diff --git a/squashfs-root/usr/bin/fc-cat b/squashfs-root/usr/bin/fc-cat new file mode 100755 index 0000000..a4143e9 Binary files /dev/null and b/squashfs-root/usr/bin/fc-cat differ diff --git a/squashfs-root/usr/bin/fc-list b/squashfs-root/usr/bin/fc-list new file mode 100755 index 0000000..aa5b814 Binary files /dev/null and b/squashfs-root/usr/bin/fc-list differ diff --git a/squashfs-root/usr/bin/fc-match b/squashfs-root/usr/bin/fc-match new file mode 100755 index 0000000..9d7b8fd Binary files /dev/null and b/squashfs-root/usr/bin/fc-match differ diff --git a/squashfs-root/usr/bin/fc-pattern b/squashfs-root/usr/bin/fc-pattern new file mode 100755 index 0000000..cf3c4f7 Binary files /dev/null and b/squashfs-root/usr/bin/fc-pattern differ diff --git a/squashfs-root/usr/bin/fc-query b/squashfs-root/usr/bin/fc-query new file mode 100755 index 0000000..b3bca33 Binary files /dev/null and b/squashfs-root/usr/bin/fc-query differ diff --git a/squashfs-root/usr/bin/fc-scan b/squashfs-root/usr/bin/fc-scan new file mode 100755 index 0000000..437cc02 Binary files /dev/null and b/squashfs-root/usr/bin/fc-scan differ diff --git a/squashfs-root/usr/bin/fc-validate b/squashfs-root/usr/bin/fc-validate new file mode 100755 index 0000000..c2fd031 Binary files /dev/null and b/squashfs-root/usr/bin/fc-validate differ diff --git a/squashfs-root/usr/bin/find b/squashfs-root/usr/bin/find new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/find @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/flock b/squashfs-root/usr/bin/flock new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/flock @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/fold b/squashfs-root/usr/bin/fold new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/fold @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/free b/squashfs-root/usr/bin/free new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/free @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/fribidi b/squashfs-root/usr/bin/fribidi new file mode 100755 index 0000000..4e6e722 Binary files /dev/null and b/squashfs-root/usr/bin/fribidi differ diff --git a/squashfs-root/usr/bin/fuser b/squashfs-root/usr/bin/fuser new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/fuser @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/gapplication b/squashfs-root/usr/bin/gapplication new file mode 100755 index 0000000..63a7dd1 Binary files /dev/null and b/squashfs-root/usr/bin/gapplication differ diff --git a/squashfs-root/usr/bin/gdb b/squashfs-root/usr/bin/gdb new file mode 100755 index 0000000..4faad74 Binary files /dev/null and b/squashfs-root/usr/bin/gdb differ diff --git a/squashfs-root/usr/bin/gdbus b/squashfs-root/usr/bin/gdbus new file mode 100755 index 0000000..02af7cb Binary files /dev/null and b/squashfs-root/usr/bin/gdbus differ diff --git a/squashfs-root/usr/bin/getconf b/squashfs-root/usr/bin/getconf new file mode 100755 index 0000000..a664a0b Binary files /dev/null and b/squashfs-root/usr/bin/getconf differ diff --git a/squashfs-root/usr/bin/gettext b/squashfs-root/usr/bin/gettext new file mode 100755 index 0000000..dca7180 Binary files /dev/null and b/squashfs-root/usr/bin/gettext differ diff --git a/squashfs-root/usr/bin/gettext.sh b/squashfs-root/usr/bin/gettext.sh new file mode 100755 index 0000000..f031a43 --- /dev/null +++ b/squashfs-root/usr/bin/gettext.sh @@ -0,0 +1,121 @@ +#! /bin/sh +# +# Copyright (C) 2003, 2005-2007, 2011, 2015-2016 Free Software Foundation, Inc. +# +# This program 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 program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . +# + +# Find a way to echo strings without interpreting backslash. +if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + echo='echo' +else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + echo='printf %s\n' + else + echo_func () { + cat < +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law." + echo "Written by" "Bruno Haible" + } + if test $# = 1; then + case "$1" in + --help | --hel | --he | --h ) + func_usage; exit 0 ;; + --version | --versio | --versi | --vers | --ver | --ve | --v ) + func_version; exit 0 ;; + esac + fi + func_usage 1>&2 + exit 1 + ;; + esac +fi + +# eval_gettext MSGID +# looks up the translation of MSGID and substitutes shell variables in the +# result. +eval_gettext () { + gettext "$1" | (export PATH `envsubst --variables "$1"`; envsubst "$1") +} + +# eval_ngettext MSGID MSGID-PLURAL COUNT +# looks up the translation of MSGID / MSGID-PLURAL for COUNT and substitutes +# shell variables in the result. +eval_ngettext () { + ngettext "$1" "$2" "$3" | (export PATH `envsubst --variables "$1 $2"`; envsubst "$1 $2") +} + +# Note: This use of envsubst is much safer than using the shell built-in 'eval' +# would be. +# 1) The security problem with Chinese translations that happen to use a +# character such as \xe0\x60 is avoided. +# 2) The security problem with malevolent translators who put in command lists +# like "$(...)" or "`...`" is avoided. +# 3) The translations can only refer to shell variables that are already +# mentioned in MSGID or MSGID-PLURAL. +# +# Note: "export PATH" above is a dummy; this is for the case when +# `envsubst --variables ...` returns nothing. +# +# Note: In eval_ngettext above, "$1 $2" means a string whose variables set is +# the union of the variables set of "$1" and "$2". +# +# Note: The minimal use of backquote above ensures that trailing newlines are +# not dropped, not from the gettext invocation and not from the value of any +# shell variable. +# +# Note: Field splitting on the `envsubst --variables ...` result is desired, +# since envsubst outputs the variables, separated by newlines. Pathname +# wildcard expansion or tilde expansion has no effect here, since the words +# output by "envsubst --variables ..." consist solely of alphanumeric +# characters and underscore. diff --git a/squashfs-root/usr/bin/gio b/squashfs-root/usr/bin/gio new file mode 100755 index 0000000..6127ee7 Binary files /dev/null and b/squashfs-root/usr/bin/gio differ diff --git a/squashfs-root/usr/bin/gio-querymodules b/squashfs-root/usr/bin/gio-querymodules new file mode 100755 index 0000000..b0cd8d7 Binary files /dev/null and b/squashfs-root/usr/bin/gio-querymodules differ diff --git a/squashfs-root/usr/bin/gresource b/squashfs-root/usr/bin/gresource new file mode 100755 index 0000000..cdad6e4 Binary files /dev/null and b/squashfs-root/usr/bin/gresource differ diff --git a/squashfs-root/usr/bin/gsettings b/squashfs-root/usr/bin/gsettings new file mode 100755 index 0000000..5cebbf7 Binary files /dev/null and b/squashfs-root/usr/bin/gsettings differ diff --git a/squashfs-root/usr/bin/gst-discoverer-0.10 b/squashfs-root/usr/bin/gst-discoverer-0.10 new file mode 100755 index 0000000..bf50b0c Binary files /dev/null and b/squashfs-root/usr/bin/gst-discoverer-0.10 differ diff --git a/squashfs-root/usr/bin/gst-feedback b/squashfs-root/usr/bin/gst-feedback new file mode 100755 index 0000000..7a33628 Binary files /dev/null and b/squashfs-root/usr/bin/gst-feedback differ diff --git a/squashfs-root/usr/bin/gst-feedback-0.10 b/squashfs-root/usr/bin/gst-feedback-0.10 new file mode 100755 index 0000000..0365182 --- /dev/null +++ b/squashfs-root/usr/bin/gst-feedback-0.10 @@ -0,0 +1,115 @@ +#!/bin/sh +# this script provides feedback for GStreamer debugging +# the user can run this and provide the GStreamer developers with information +# about their system + +command_output () +{ + echo "+++ $1" + $1 +} + +echo "GStreamer feedback script." +echo "Please attach the output of this script to your bug reports." +echo "Bug reports should go into Gnome's bugzilla (http://bugzilla.gnome.org)" +echo + +echo "+ SYSTEM INFORMATION" +command_output "uname -a" + +if test -f /etc/redhat-release; then + echo "+++ distribution: Red Hat" + cat /etc/redhat-release +fi + +if test -f /etc/debian_version; then + echo "+++ distribution: Debian" + cat /etc/debian_version +fi + +command_output "cat /etc/issue" + +echo + +echo "+ USER INFORMATION" +command_output "id" +echo + +echo "+ PKG-CONFIG INFORMATION" +for mm in 0.6 0.7 0.8 +do + echo "+ $mm" + command_output "pkg-config --version" + command_output "pkg-config gstreamer-$mm --modversion" 2>/dev/null + command_output "pkg-config gstreamer-$mm --cflags" 2>/dev/null + command_output "pkg-config gstreamer-$mm --libs" 2>/dev/null + command_output "pkg-config gstreamer-libs-$mm --modversion" 2>/dev/null + command_output "pkg-config gstreamer-libs-$mm --cflags" 2>/dev/null + command_output "pkg-config gstreamer-libs-$mm --libs" 2>/dev/null + echo +done + +for mm in 0.9 0.10 +do + for module in gstreamer gstreamer-base gstreamer-check gstreamer-controller\ + gstreamer-dataprotocol gstreamer-plugins-base gstreamer-net\ + gst-python + do + echo "+ $mm" + command_output "pkg-config $module-$mm --modversion" 2>/dev/null + command_output "pkg-config $module-$mm --cflags" 2>/dev/null + command_output "pkg-config $module-$mm --libs" 2>/dev/null + echo + done +done + +echo "+ GSTREAMER INFORMATION (unversioned)" +command_output "which gst-inspect" +command_output "gst-inspect" +command_output "gst-inspect fakesrc" +command_output "gst-inspect fakesink" +command_output "gst-launch fakesrc num-buffers=5 ! fakesink" +for mm in 0.6 0.7 0.8 0.9 0.10 +do + echo "+ GSTREAMER INFORMATION ($mm)" + command_output "which gst-inspect-$mm" + command_output "gst-inspect-$mm" + command_output "gst-inspect-$mm fakesrc" + command_output "gst-inspect-$mm fakesink" + command_output "gst-launch-$mm fakesrc num-buffers=5 ! fakesink" +done + +echo "++ looking for gstreamer libraries in common locations" +for dirs in /usr/lib /usr/local/lib; do + if test -d $dirs; then + find $dirs -name libgstreamer* | grep so + fi +done +echo "++ looking for gstreamer headers in common locations" +for dirs in /usr/include /usr/local/include; do + if test -d $dirs; then + find $dirs -name gst.h + fi +done + +echo "+ GSTREAMER PLUG-INS INFORMATION" +command_output "gst-inspect volume" +for mm in 0.6 0.7 0.8 0.9 0.10 +do + command_output "gst-inspect-$mm volume" +done + +echo "++ looking for gstreamer volume plugin in common locations" +for dirs in /usr/lib /usr/local/lib; do + if test -d $dirs; then + find $dirs -name libgstvolume* | grep so + fi +done +echo "++ looking for gstreamer headers in common locations" +for dirs in /usr/include /usr/local/include; do + if test -d $dirs; then + find $dirs -name audio.h + fi +done + + diff --git a/squashfs-root/usr/bin/gst-inspect b/squashfs-root/usr/bin/gst-inspect new file mode 100755 index 0000000..7a33628 Binary files /dev/null and b/squashfs-root/usr/bin/gst-inspect differ diff --git a/squashfs-root/usr/bin/gst-inspect-0.10 b/squashfs-root/usr/bin/gst-inspect-0.10 new file mode 100755 index 0000000..2c41a14 Binary files /dev/null and b/squashfs-root/usr/bin/gst-inspect-0.10 differ diff --git a/squashfs-root/usr/bin/gst-launch b/squashfs-root/usr/bin/gst-launch new file mode 100755 index 0000000..7a33628 Binary files /dev/null and b/squashfs-root/usr/bin/gst-launch differ diff --git a/squashfs-root/usr/bin/gst-launch-0.10 b/squashfs-root/usr/bin/gst-launch-0.10 new file mode 100755 index 0000000..0f2f1f9 Binary files /dev/null and b/squashfs-root/usr/bin/gst-launch-0.10 differ diff --git a/squashfs-root/usr/bin/gst-typefind b/squashfs-root/usr/bin/gst-typefind new file mode 100755 index 0000000..7a33628 Binary files /dev/null and b/squashfs-root/usr/bin/gst-typefind differ diff --git a/squashfs-root/usr/bin/gst-typefind-0.10 b/squashfs-root/usr/bin/gst-typefind-0.10 new file mode 100755 index 0000000..94e2bc7 Binary files /dev/null and b/squashfs-root/usr/bin/gst-typefind-0.10 differ diff --git a/squashfs-root/usr/bin/gst-visualise-0.10 b/squashfs-root/usr/bin/gst-visualise-0.10 new file mode 100755 index 0000000..917cb14 --- /dev/null +++ b/squashfs-root/usr/bin/gst-visualise-0.10 @@ -0,0 +1,77 @@ +#!/usr/bin/perl -w + +# launch a gst-launch pipeline to display a visualisation of the +# input audio. +# make use of default input srcs. +# visualisation plugin is specified on command line. + +### packages + + +my (%pipes, %cfg); + +sub read_config +{ + my $config_file = `echo -n ~`."/.gst"; + if (-e $config_file) + { + open CONFIG, $config_file; + while () + { + chomp; + s/#.*//; + s/\s+$//; + next unless length; + my ($var, $value) = split (/\s*=\s*/, $_, 2); + $cfg{$var} = $value; + } + if (!($cfg{AUDIOSRC})) + { + print "Please add an AUDIOSRC to $config_file !\n"; + } + if (!($cfg{VIDEOSINK})) + { + print "Please add a VIDEOSINK to $config_file !\n"; + } + } + else + { + print "No configuration file $config_file found. You might want to create one.\n"; + } + if (!defined $cfg{AUDIOSRC}) { $cfg{AUDIOSRC} = "osssrc"; } + if (!defined $cfg{VIDEOSINK}) { $cfg{VIDEOSINK} = "xvimagesink"; } + if (!defined $cfg{CVS_PATH}) { $cfg{CVS_PATH} = `echo -n ~`."/gst/cvs"; } +} + +sub visualise(@) +{ + my $vis = $cfg{VISUALIZER}; + $vis = shift() if ($#_ != -1); + $vis = "goom" unless $vis; + + my $pipe; + $pipe = $vis unless $pipe = $pipes{$vis}; + + $command = "gst-launch-0.10 $cfg{AUDIOSRC} ! $pipe ! { queue ! ffmpegcolorspace ! $cfg{VIDEOSINK} }"; + print "Running $command\n"; + system ("PATH=\$PATH:".$cfg{CVS_PATH}."/gstreamer/tools $command"); +} + +### main + +read_config (); + +%pipes = ( + "goom", "goom", + "chart", "audioconvert ! chart", + "synaesthesia", "synaesthesia", + "monoscope", "audioconvert ! monoscope" +); + +if ($#ARGV > 0) { + print STDERR "Usage: gst-visualise [visualiser]\n"; + exit 1; +} + +visualise(@ARGV); + diff --git a/squashfs-root/usr/bin/gst-xmlinspect b/squashfs-root/usr/bin/gst-xmlinspect new file mode 100755 index 0000000..7a33628 Binary files /dev/null and b/squashfs-root/usr/bin/gst-xmlinspect differ diff --git a/squashfs-root/usr/bin/gst-xmlinspect-0.10 b/squashfs-root/usr/bin/gst-xmlinspect-0.10 new file mode 100755 index 0000000..a4d989f Binary files /dev/null and b/squashfs-root/usr/bin/gst-xmlinspect-0.10 differ diff --git a/squashfs-root/usr/bin/gtf b/squashfs-root/usr/bin/gtf new file mode 100755 index 0000000..1f3ce38 Binary files /dev/null and b/squashfs-root/usr/bin/gtf differ diff --git a/squashfs-root/usr/bin/hb-ot-shape-closure b/squashfs-root/usr/bin/hb-ot-shape-closure new file mode 100755 index 0000000..ec3bc43 Binary files /dev/null and b/squashfs-root/usr/bin/hb-ot-shape-closure differ diff --git a/squashfs-root/usr/bin/hb-shape b/squashfs-root/usr/bin/hb-shape new file mode 100755 index 0000000..165a8ff Binary files /dev/null and b/squashfs-root/usr/bin/hb-shape differ diff --git a/squashfs-root/usr/bin/hb-view b/squashfs-root/usr/bin/hb-view new file mode 100755 index 0000000..5b24b56 Binary files /dev/null and b/squashfs-root/usr/bin/hb-view differ diff --git a/squashfs-root/usr/bin/head b/squashfs-root/usr/bin/head new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/head @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/hexdump b/squashfs-root/usr/bin/hexdump new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/hexdump @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/hostid b/squashfs-root/usr/bin/hostid new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/hostid @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/iconv b/squashfs-root/usr/bin/iconv new file mode 100755 index 0000000..2fda3fa Binary files /dev/null and b/squashfs-root/usr/bin/iconv differ diff --git a/squashfs-root/usr/bin/id b/squashfs-root/usr/bin/id new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/id @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/install b/squashfs-root/usr/bin/install new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/install @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/ipcrm b/squashfs-root/usr/bin/ipcrm new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/ipcrm @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/ipcs b/squashfs-root/usr/bin/ipcs new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/ipcs @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/killall b/squashfs-root/usr/bin/killall new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/killall @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/last b/squashfs-root/usr/bin/last new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/last @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/ldd b/squashfs-root/usr/bin/ldd new file mode 100755 index 0000000..b34293e Binary files /dev/null and b/squashfs-root/usr/bin/ldd differ diff --git a/squashfs-root/usr/bin/less b/squashfs-root/usr/bin/less new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/less @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/libtool b/squashfs-root/usr/bin/libtool new file mode 100755 index 0000000..737dd71 --- /dev/null +++ b/squashfs-root/usr/bin/libtool @@ -0,0 +1,12569 @@ +#! /bin/bash +# Generated automatically by config.status (libtool) 2.4.6 +# Libtool was configured on host debian: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='CXX F77 FC GO GCJ RC ' + +# Configured defaults for sys_lib_dlsearch_path munging. +: ${LT_SYS_LIBRARY_PATH=""} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=2.4.6 +macro_revision=2.4.6 + +# Assembler program. +AS="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-as" + +# DLL creation program. +DLLTOOL="false" + +# Object dumper program. +OBJDUMP="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-objdump" + +# Whether or not to build shared libraries. +build_libtool_libs=yes + +# Whether or not to build static libraries. +build_old_libs=no + +# What type of objects to build. +pic_mode=default + +# Whether or not to optimize for fast installation. +fast_install=yes + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec= + +# Shell to use when invoking shell scripts. +SHELL="/bin/bash" + +# An echo program that protects backslashes. +ECHO="printf %s\\n" + +# The PATH separator for the build system. +PATH_SEPARATOR=":" + +# The host system. +host_alias=arm-miyoo-linux-uclibcgnueabi +host=arm-miyoo-linux-uclibcgnueabi +host_os=linux-uclibcgnueabi + +# The build system. +build_alias=x86_64-pc-linux-gnu +build=x86_64-pc-linux-gnu +build_os=linux-gnu + +# A sed program that does not truncate output. +SED="/bin/sed" + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP="/bin/grep" + +# An ERE matcher. +EGREP="/bin/grep -E" + +# A literal string matcher. +FGREP="/bin/grep -F" + +# A BSD- or MS-compatible name lister. +NM="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-nm" + +# Whether we need soft or hard links. +LN_S="ln -s" + +# What is the maximum length of a command? +max_cmd_len=1572864 + +# Object file suffix (normally "o"). +objext=o + +# Executable file suffix (normally ""). +exeext= + +# whether the shell understands "unset". +lt_unset=unset + +# turn spaces into newlines. +SP2NL="tr \\040 \\012" + +# turn newlines into spaces. +NL2SP="tr \\015\\012 \\040\\040" + +# convert $build file names to $host format. +to_host_file_cmd=func_convert_file_noop + +# convert $build files to toolchain format. +to_tool_file_cmd=func_convert_file_noop + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method="pass_all" + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd="\$MAGIC_CMD" + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob="" + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob="no" + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd="printf %s\\n" + +# The archiver. +AR="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-ar" + +# Flags to create an archive. +AR_FLAGS="cru" + +# How to feed a file listing to the archiver. +archiver_list_spec="@" + +# A symbol stripping program. +STRIP="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-strip" + +# Commands used to install an old-style archive. +RANLIB="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-ranlib" +old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$tool_oldlib" +old_postuninstall_cmds="" + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=no + +# A C compiler. +LTCC="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-gcc" + +# LTCC compiler flags. +LTCFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os " + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p' | sed '/ __gnu_lto/d'" + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[ABCDGIRSTW][ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'" + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import="" + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address="sed -n -e 's/^: \\(.*\\) .*\$/ {\"\\1\", (void *) 0},/p' -e 's/^[ABCDGIRSTW][ABCDGIRSTW]* .* \\(.*\\)\$/ {\"\\1\", (void *) \\&\\1},/p'" + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\(.*\\) .*\$/ {\"\\1\", (void *) 0},/p' -e 's/^[ABCDGIRSTW][ABCDGIRSTW]* .* \\(lib.*\\)\$/ {\"\\1\", (void *) \\&\\1},/p' -e 's/^[ABCDGIRSTW][ABCDGIRSTW]* .* \\(.*\\)\$/ {\"lib\\1\", (void *) \\&\\1},/p'" + +# The name lister interface. +nm_interface="BSD nm" + +# Specify filename containing input files for $NM. +nm_file_list_spec="@" + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot= + +# Command to truncate a binary pipe. +lt_truncate_bin="/bin/dd bs=4096 count=1" + +# The name of the directory that contains temporary libtool files. +objdir=.libs + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=file + +# Must we lock files when doing compilation? +need_locks="no" + +# Manifest tool. +MANIFEST_TOOL=":" + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL="" + +# Tool to change global to local symbols on Mac OS X. +NMEDIT="" + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO="" + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL="" + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64="" + +# Old archive suffix (normally "a"). +libext=a + +# Shared library suffix (normally ".so"). +shrext_cmds=".so" + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds="" + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH" + +# Do we need the "lib" prefix for modules? +need_lib_prefix=no + +# Do we need a version for libraries? +need_version=no + +# Library versioning type. +version_type=linux + +# Shared library runtime path variable. +runpath_var=LD_RUN_PATH + +# Shared library path variable. +shlibpath_var=LD_LIBRARY_PATH + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=no + +# Format of library name prefix. +libname_spec="lib\$name" + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec="\$libname\$release\$shared_ext\$versuffix \$libname\$release\$shared_ext\$major \$libname\$shared_ext" + +# The coded name of the library, if different from the real name. +soname_spec="\$libname\$release\$shared_ext\$major" + +# Permission mode override for installation of shared libraries. +install_override_mode="" + +# Command to use after installation of a shared archive. +postinstall_cmds="" + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds="" + +# Commands used to finish a libtool library installation in a directory. +finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir" + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval="" + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=yes + +# Compile-time system search path for libraries. +sys_lib_search_path_spec="" + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/x86_64-linux-gnu/libfakeroot /lib/i386-linux-gnu /usr/lib/i386-linux-gnu /lib/i686-linux-gnu /usr/lib/i686-linux-gnu /usr/local/lib /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu /lib64 /usr/lib64 /lib32 /usr/lib32 /libx32 /usr/libx32 " + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path="" + +# Whether dlopen is supported. +dlopen_support=yes + +# Whether dlopen of programs is supported. +dlopen_self=unknown + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=unknown + +# Commands to strip libraries. +old_striplib="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-strip --strip-debug" +striplib="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-strip --strip-unneeded" + + +# The linker used to build libraries. +LD="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-ld" + +# How to create reloadable object files. +reload_flag=" -r" +reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" + +# Commands used to build an old-style archive. +old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib" + +# A language specific compiler. +CC="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-gcc" + +# Is the compiler the GNU compiler? +with_gcc=yes + +# Compiler flag to turn off builtin functions. +no_builtin_flag=" -fno-builtin" + +# Additional compiler flags for building library objects. +pic_flag=" -fPIC -DPIC" + +# How to pass a linker flag through the compiler. +wl="-Wl," + +# Compiler flag to prevent dynamic linking. +link_static_flag="-static" + +# Does compiler simultaneously support -c and -o options? +compiler_c_o="yes" + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=no + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=no + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec="\$wl--export-dynamic" + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec="\$wl--whole-archive\$convenience \$wl--no-whole-archive" + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object="no" + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="" + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds="" + +# Commands used to build a shared archive. +archive_cmds="\$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \$wl-soname \$wl\$soname -o \$lib" +archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~ + cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~ + echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~ + \$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \$wl-soname \$wl\$soname \$wl-version-script \$wl\$output_objdir/\$libname.ver -o \$lib" + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds="" +module_expsym_cmds="" + +# Whether we are building with GNU ld or not. +with_gnu_ld="yes" + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag="" + +# Flag that enforces no undefined symbols. +no_undefined_flag="" + +# Flag to hardcode $libdir into a binary during linking. +# This must work even if $libdir does not exist +hardcode_libdir_flag_spec="\$wl-rpath \$wl\$libdir" + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator="" + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=no + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting $shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=no + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=no + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=unsupported + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=no + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=no + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=unknown + +# Set to "yes" if exported symbols are required. +always_export_symbols=no + +# The commands to list exported symbols. +export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" + +# Symbols that must always be exported. +include_expsyms="" + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds="" + +# Commands necessary for finishing linking programs. +postlink_cmds="" + +# Specify filename containing input files. +file_list_spec="" + +# How to hardcode a shared library path into an executable. +hardcode_action=immediate + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs="" + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects="" +postdep_objects="" +predeps="" +postdeps="" + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path="" + +# ### END LIBTOOL CONFIG + + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 + +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION=2.4.6 +package_revision=2.4.6 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname (GNU libtool) 2.4.6 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "defaulting to \`CC'" + func_echo "if this is not correct, specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + + # + # This breaks install into our staging area. -PB + # + #test "$inst_prefix_dir" = "$destdir" && \ + # func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + # Make -static behave like -all-static -GZ + -all-static | -static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + # Make -static behave like -all-static -GZ + -all-static | -static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -stdlib=* select c++ std lib with clang + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=no + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + # Replacing uninstalled with installed can easily break crosscompilation, + # since the installed path is generally the wrong architecture. -CL + newdependency_libs="$newdependency_libs $deplib" + continue + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: + +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# The linker used to build libraries. +LD="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-ld" + +# How to create reloadable object files. +reload_flag=" -r" +reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" + +# Commands used to build an old-style archive. +old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib" + +# A language specific compiler. +CC="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-g++" + +# Is the compiler the GNU compiler? +with_gcc=yes + +# Compiler flag to turn off builtin functions. +no_builtin_flag=" -fno-builtin" + +# Additional compiler flags for building library objects. +pic_flag=" -fPIC -DPIC" + +# How to pass a linker flag through the compiler. +wl="-Wl," + +# Compiler flag to prevent dynamic linking. +link_static_flag="-static" + +# Does compiler simultaneously support -c and -o options? +compiler_c_o="yes" + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=no + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=no + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec="\$wl--export-dynamic" + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec="\$wl--whole-archive\$convenience \$wl--no-whole-archive" + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object="no" + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="" + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds="" + +# Commands used to build a shared archive. +archive_cmds="\$CC \$pic_flag -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \$wl-soname \$wl\$soname -o \$lib" +archive_expsym_cmds="\$CC \$pic_flag -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \$wl-soname \$wl\$soname \$wl-retain-symbols-file \$wl\$export_symbols -o \$lib" + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds="" +module_expsym_cmds="" + +# Whether we are building with GNU ld or not. +with_gnu_ld="yes" + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag="" + +# Flag that enforces no undefined symbols. +no_undefined_flag="" + +# Flag to hardcode $libdir into a binary during linking. +# This must work even if $libdir does not exist +hardcode_libdir_flag_spec="\$wl-rpath \$wl\$libdir" + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator="" + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=no + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting $shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=no + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=no + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=unsupported + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=no + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=no + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=unknown + +# Set to "yes" if exported symbols are required. +always_export_symbols=no + +# The commands to list exported symbols. +export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" + +# Symbols that must always be exported. +include_expsyms="" + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds="" + +# Commands necessary for finishing linking programs. +postlink_cmds="" + +# Specify filename containing input files. +file_list_spec="" + +# How to hardcode a shared library path into an executable. +hardcode_action=immediate + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs="/opt/miyoo/lib/gcc/arm-miyoo-linux-uclibcgnueabi/7.3.0 /opt/miyoo/lib/gcc/arm-miyoo-linux-uclibcgnueabi/7.3.0/../../../../arm-miyoo-linux-uclibcgnueabi/lib /opt/miyoo/arm-miyoo-linux-uclibcgnueabi/sysroot/lib /opt/miyoo/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/lib" + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects="/opt/miyoo/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/lib/crti.o /opt/miyoo/lib/gcc/arm-miyoo-linux-uclibcgnueabi/7.3.0/crtbeginS.o" +postdep_objects="/opt/miyoo/lib/gcc/arm-miyoo-linux-uclibcgnueabi/7.3.0/crtendS.o /opt/miyoo/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/lib/crtn.o" +predeps="" +postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s" + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path="-L/opt/miyoo/lib/gcc/arm-miyoo-linux-uclibcgnueabi/7.3.0 -L/opt/miyoo/lib/gcc/arm-miyoo-linux-uclibcgnueabi/7.3.0/../../../../arm-miyoo-linux-uclibcgnueabi/lib -L/opt/miyoo/arm-miyoo-linux-uclibcgnueabi/sysroot/lib -L/opt/miyoo/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/lib" + +# ### END LIBTOOL TAG CONFIG: CXX + +# ### BEGIN LIBTOOL TAG CONFIG: F77 + +# The linker used to build libraries. +LD="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-ld" + +# How to create reloadable object files. +reload_flag=" -r" +reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" + +# Commands used to build an old-style archive. +old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib" + +# A language specific compiler. +CC="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-gfortran" + +# Is the compiler the GNU compiler? +with_gcc= + +# Compiler flag to turn off builtin functions. +no_builtin_flag="" + +# Additional compiler flags for building library objects. +pic_flag="" + +# How to pass a linker flag through the compiler. +wl="" + +# Compiler flag to prevent dynamic linking. +link_static_flag="" + +# Does compiler simultaneously support -c and -o options? +compiler_c_o="no" + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=no + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=no + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec="\$wl--export-dynamic" + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec="\$wl--whole-archive\$convenience \$wl--no-whole-archive" + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object="no" + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="" + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds="" + +# Commands used to build a shared archive. +archive_cmds="\$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \$wl-soname \$wl\$soname -o \$lib" +archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~ + cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~ + echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~ + \$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \$wl-soname \$wl\$soname \$wl-version-script \$wl\$output_objdir/\$libname.ver -o \$lib" + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds="" +module_expsym_cmds="" + +# Whether we are building with GNU ld or not. +with_gnu_ld="yes" + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag="" + +# Flag that enforces no undefined symbols. +no_undefined_flag="" + +# Flag to hardcode $libdir into a binary during linking. +# This must work even if $libdir does not exist +hardcode_libdir_flag_spec="\$wl-rpath \$wl\$libdir" + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator="" + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=no + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting $shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=no + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=no + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=unsupported + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=no + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=no + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=unknown + +# Set to "yes" if exported symbols are required. +always_export_symbols=no + +# The commands to list exported symbols. +export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" + +# Symbols that must always be exported. +include_expsyms="" + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds="" + +# Commands necessary for finishing linking programs. +postlink_cmds="" + +# Specify filename containing input files. +file_list_spec="" + +# How to hardcode a shared library path into an executable. +hardcode_action=immediate + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs="" + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects="" +postdep_objects="" +predeps="" +postdeps="" + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path="" + +# ### END LIBTOOL TAG CONFIG: F77 + +# ### BEGIN LIBTOOL TAG CONFIG: FC + +# The linker used to build libraries. +LD="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-ld" + +# How to create reloadable object files. +reload_flag=" -r" +reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" + +# Commands used to build an old-style archive. +old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib" + +# A language specific compiler. +CC="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-gfortran" + +# Is the compiler the GNU compiler? +with_gcc=no + +# Compiler flag to turn off builtin functions. +no_builtin_flag="" + +# Additional compiler flags for building library objects. +pic_flag="" + +# How to pass a linker flag through the compiler. +wl="" + +# Compiler flag to prevent dynamic linking. +link_static_flag="" + +# Does compiler simultaneously support -c and -o options? +compiler_c_o="no" + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=no + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=no + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec="\$wl--export-dynamic" + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec="\$wl--whole-archive\$convenience \$wl--no-whole-archive" + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object="no" + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="" + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds="" + +# Commands used to build a shared archive. +archive_cmds="\$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \$wl-soname \$wl\$soname -o \$lib" +archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~ + cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~ + echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~ + \$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \$wl-soname \$wl\$soname \$wl-version-script \$wl\$output_objdir/\$libname.ver -o \$lib" + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds="" +module_expsym_cmds="" + +# Whether we are building with GNU ld or not. +with_gnu_ld="yes" + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag="" + +# Flag that enforces no undefined symbols. +no_undefined_flag="" + +# Flag to hardcode $libdir into a binary during linking. +# This must work even if $libdir does not exist +hardcode_libdir_flag_spec="\$wl-rpath \$wl\$libdir" + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator="" + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=no + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting $shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=no + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=no + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=unsupported + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=no + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=no + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=unknown + +# Set to "yes" if exported symbols are required. +always_export_symbols=no + +# The commands to list exported symbols. +export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" + +# Symbols that must always be exported. +include_expsyms="" + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds="" + +# Commands necessary for finishing linking programs. +postlink_cmds="" + +# Specify filename containing input files. +file_list_spec="" + +# How to hardcode a shared library path into an executable. +hardcode_action=immediate + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs="" + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects="" +postdep_objects="" +predeps="" +postdeps="" + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path="" + +# ### END LIBTOOL TAG CONFIG: FC + +# ### BEGIN LIBTOOL TAG CONFIG: GO + +# The linker used to build libraries. +LD="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-ld" + +# How to create reloadable object files. +reload_flag=" -r" +reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" + +# Commands used to build an old-style archive. +old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib" + +# A language specific compiler. +CC="" + +# Is the compiler the GNU compiler? +with_gcc= + +# Compiler flag to turn off builtin functions. +no_builtin_flag="" + +# Additional compiler flags for building library objects. +pic_flag="" + +# How to pass a linker flag through the compiler. +wl="" + +# Compiler flag to prevent dynamic linking. +link_static_flag="" + +# Does compiler simultaneously support -c and -o options? +compiler_c_o="" + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=no + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes= + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec="" + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec="" + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object="" + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="" + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds="" + +# Commands used to build a shared archive. +archive_cmds="" +archive_expsym_cmds="" + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds="" +module_expsym_cmds="" + +# Whether we are building with GNU ld or not. +with_gnu_ld="" + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag="" + +# Flag that enforces no undefined symbols. +no_undefined_flag="" + +# Flag to hardcode $libdir into a binary during linking. +# This must work even if $libdir does not exist +hardcode_libdir_flag_spec="" + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator="" + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct= + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting $shlibpath_var if the +# library is relocated. +hardcode_direct_absolute= + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L= + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var= + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic= + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath= + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs= + +# Set to "yes" if exported symbols are required. +always_export_symbols= + +# The commands to list exported symbols. +export_symbols_cmds="" + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms="" + +# Symbols that must always be exported. +include_expsyms="" + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds="" + +# Commands necessary for finishing linking programs. +postlink_cmds="" + +# Specify filename containing input files. +file_list_spec="" + +# How to hardcode a shared library path into an executable. +hardcode_action= + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs="" + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects="" +postdep_objects="" +predeps="" +postdeps="" + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path="" + +# ### END LIBTOOL TAG CONFIG: GO + +# ### BEGIN LIBTOOL TAG CONFIG: GCJ + +# The linker used to build libraries. +LD="/opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-ld" + +# How to create reloadable object files. +reload_flag=" -r" +reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" + +# Commands used to build an old-style archive. +old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib" + +# A language specific compiler. +CC="gcj" + +# Is the compiler the GNU compiler? +with_gcc= + +# Compiler flag to turn off builtin functions. +no_builtin_flag=" -fno-builtin" + +# Additional compiler flags for building library objects. +pic_flag="" + +# How to pass a linker flag through the compiler. +wl="-Wl," + +# Compiler flag to prevent dynamic linking. +link_static_flag="" + +# Does compiler simultaneously support -c and -o options? +compiler_c_o="no" + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=no + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=no + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec="\$wl--export-dynamic" + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec="\$wl--whole-archive\$convenience \$wl--no-whole-archive" + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object="no" + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="" + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds="" + +# Commands used to build a shared archive. +archive_cmds="\$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \$wl-soname \$wl\$soname -o \$lib" +archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~ + cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~ + echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~ + \$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \$wl-soname \$wl\$soname \$wl-version-script \$wl\$output_objdir/\$libname.ver -o \$lib" + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds="" +module_expsym_cmds="" + +# Whether we are building with GNU ld or not. +with_gnu_ld="yes" + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag="" + +# Flag that enforces no undefined symbols. +no_undefined_flag="" + +# Flag to hardcode $libdir into a binary during linking. +# This must work even if $libdir does not exist +hardcode_libdir_flag_spec="\$wl-rpath \$wl\$libdir" + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator="" + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=no + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting $shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=no + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=no + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=unsupported + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=no + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=no + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=unknown + +# Set to "yes" if exported symbols are required. +always_export_symbols=no + +# The commands to list exported symbols. +export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" + +# Symbols that must always be exported. +include_expsyms="" + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds="" + +# Commands necessary for finishing linking programs. +postlink_cmds="" + +# Specify filename containing input files. +file_list_spec="" + +# How to hardcode a shared library path into an executable. +hardcode_action=immediate + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs="" + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects="" +postdep_objects="" +predeps="" +postdeps="" + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path="" + +# ### END LIBTOOL TAG CONFIG: GCJ + +# ### BEGIN LIBTOOL TAG CONFIG: RC + +# The linker used to build libraries. +LD="" + +# How to create reloadable object files. +reload_flag="" +reload_cmds="" + +# Commands used to build an old-style archive. +old_archive_cmds="" + +# A language specific compiler. +CC="windres" + +# Is the compiler the GNU compiler? +with_gcc= + +# Compiler flag to turn off builtin functions. +no_builtin_flag="" + +# Additional compiler flags for building library objects. +pic_flag="" + +# How to pass a linker flag through the compiler. +wl="" + +# Compiler flag to prevent dynamic linking. +link_static_flag="" + +# Does compiler simultaneously support -c and -o options? +compiler_c_o="yes" + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc= + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes= + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec="" + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec="" + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object="" + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="" + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds="" + +# Commands used to build a shared archive. +archive_cmds="" +archive_expsym_cmds="" + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds="" +module_expsym_cmds="" + +# Whether we are building with GNU ld or not. +with_gnu_ld="" + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag="" + +# Flag that enforces no undefined symbols. +no_undefined_flag="" + +# Flag to hardcode $libdir into a binary during linking. +# This must work even if $libdir does not exist +hardcode_libdir_flag_spec="" + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator="" + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct= + +# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting $shlibpath_var if the +# library is relocated. +hardcode_direct_absolute= + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L= + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var= + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic= + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath= + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs= + +# Set to "yes" if exported symbols are required. +always_export_symbols= + +# The commands to list exported symbols. +export_symbols_cmds="" + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms="" + +# Symbols that must always be exported. +include_expsyms="" + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds="" + +# Commands necessary for finishing linking programs. +postlink_cmds="" + +# Specify filename containing input files. +file_list_spec="" + +# How to hardcode a shared library path into an executable. +hardcode_action= + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs="" + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects="" +postdep_objects="" +predeps="" +postdeps="" + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path="" + +# ### END LIBTOOL TAG CONFIG: RC diff --git a/squashfs-root/usr/bin/libtoolize b/squashfs-root/usr/bin/libtoolize new file mode 100755 index 0000000..ebb931c --- /dev/null +++ b/squashfs-root/usr/bin/libtoolize @@ -0,0 +1,4332 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from libtoolize +## by inline-source v2014-01-03.01 + +# Prepare a package to use libtool. +# Written by Gary V. Vaughan , 2003 + +# Copyright (C) 2003-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# Libtoolize is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# Libtoolize is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtoolize --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} +: ${EGREP="/bin/grep -E"} +: ${FGREP="/bin/grep -F"} +: ${GREP="/bin/grep"} +: ${LN_S="ln -s"} +: ${SED="/bin/sed"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir under normal use, though +# we also need to be able to find them in $srcdir during testing, or if +# executed directly from the build tree. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Extract macro arguments from autotools input with GNU M4. +# Written by Gary V. Vaughan, 2010 +# +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# Make sure we've evaluated scripts we depend on. +test -z "$progpath" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh +test extract-trace = "$progname" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/options-parser + +# Set a version string. +scriptversion=2015-01-20.17; # UTC + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './extract-trace --help' for help with using this script from the +# command line. +# +# Or source first 'options-parser' and then this file into your own +# scripts in order to make use of the function and variable framework +# they define, and also to avoid the overhead of forking to run this +# script in its own process on every call. + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of +# 'extract-trace'. + + +# func_autoconf_configure MAYBE-CONFIGURE-FILE +# -------------------------------------------- +# Ensure that MAYBE-CONFIGURE-FILE is the name of a file in the current +# directory that contains an uncommented call to AC_INIT. +func_autoconf_configure () +{ + $debug_cmd + + _G_sed_no_comment=' + s|#.*$|| + s|^dnl .*$|| + s| dnl .*$||' + _G_ac_init= + + # If we were passed a genuine file, make sure it calls AC_INIT. + test -f "$1" \ + && _G_ac_init=`$SED "$_G_sed_no_comment" "$1" |$GREP AC_INIT` + + # Otherwise it is not a genuine Autoconf input file. + test -n "$_G_ac_init" + _G_status=$? + + test 0 -ne "$_G_status" \ + && func_verbose "'$1' not using Autoconf" + + (exit $_G_status) +} + + +# func_tool_version_output CMD [FATAL-ERROR-MSG] +# ---------------------------------------------- +# Attempt to run 'CMD --version', discarding errors. The output can be +# ignored by redirecting stdout, and this function used simply to test +# whether the command exists and exits normally when passed a +# '--version' argument. +# When FATAL-ERROR-MSG is given, then this function will display the +# message and exit if running 'CMD --version' returns a non-zero exit +# status. +func_tool_version_output () +{ + $debug_cmd + + _G_cmd=$1 + _G_fatal_error_msg=$2 + + # Some tools, like 'git2cl' produce thousands of lines of output + # unless stdin is /dev/null - in that case we want to return + # successfully without saving all of that output. Other tools, + # such as 'help2man' exit with a non-zero status when stdin comes + # from /dev/null, so we re-execute without /dev/null if that + # happens. This means that occasionally, the output from both calls + # ends up in the result, but the alternative would be to discard the + # output from one call, and hope the other produces something useful. + { $_G_cmd --version /dev/null + _G_status=$? + + test 0 -ne "$_G_status" && test -n "$_G_fatal_error_msg" \ + && func_fatal_error "$_G_fatal_error_msg" + + (exit $_G_status) +} + + +# func_tool_version_number CMD [FATAL-ERROR-MSG] +# ---------------------------------------------- +# Pass arguments to func_tool_version_output, but set +# $func_tool_version_number_result to the last dot delimited digit string +# on the first line of output. +func_tool_version_number () +{ + $debug_cmd + + _G_verout=`func_tool_version_output "$@"` + _G_status=$? + + # A version number starts with a digit following a space on the first + # line of output from `--version`. + _G_verout=`echo "$_G_verout" |sed 1q` + if test -n "$_G_verout"; then + _G_vernum=`expr "$_G_verout" : '.* \([0-9][^ ]*\)'` + fi + + if test -n "$_G_vernum"; then + printf '%s\n' "$_G_vernum" + else + printf '%s\n' "$_G_verout" + fi + + (exit $_G_status) +} + + +# func_find_tool ENVVAR NAMES... +# ------------------------------ +# Search for a required program. Use the value of ENVVAR, if set, +# otherwise find the first of the NAMES that can be run (i.e., +# supports --version). If found, set ENVVAR to the program name, +# die otherwise. +func_find_tool () +{ + $debug_cmd + + _G_find_tool_envvar=$1 + shift + _G_find_tool_names=$@ + eval "_G_find_tool_res=\$$_G_find_tool_envvar" + if test -n "$_G_find_tool_res"; then + _G_find_tool_error_prefix="\$$find_tool_envvar: " + else + _G_find_tool_res= + _G_bestver= + for _G_prog + do + _G_find_tool_save_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for _G_dir in $PATH; do + IFS=$_G_find_tool_save_IFS + _G_progpath=$_G_dir/$_G_prog + test -r "$_G_progpath" && { + _G_curver=`func_tool_version_number $_G_progpath` + case $_G_bestver,$_G_curver in + ,) + # first non--version responsive prog sticks! + test -n "$_G_progpath" || _G_find_tool_res=$_G_progpath + ;; + ,*) + # first --version responsive prog beats non--version responsive! + _G_find_tool_res=$_G_progpath + _G_bestver=$_G_curver + ;; + *,*) + # another --version responsive prog must be newer to beat previous one! + test "x$_G_curver" = "x$_G_bestver" \ + || func_lt_ver "$_G_curver" "$_G_bestver" \ + || { + _G_find_tool_res=$_G_progpath + _G_bestver=$_G_curver + } + ;; + esac + } + done + IFS=$_G_find_tool_save_IFS + done + fi + if test -n "$_G_find_tool_res"; then + func_tool_version_number >/dev/null $_G_find_tool_res "\ +${_G_find_tool_error_prefix}Cannot run '$_G_find_tool_res --version'" + + # Make sure the result is exported to the environment for children + # to use. + eval "$_G_find_tool_envvar=\$_G_find_tool_res" + eval "export $_G_find_tool_envvar" + else + func_error "\ +One of these is required: + $_G_find_tool_names" + fi +} + + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Where a variable already has a non- +# empty value (as set by the package's 'bootstrap.conf'), that value is +# used in preference to deriving the default. Call them using their +# associated 'require_*' variable to ensure that they are executed, at +# most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_configure_ac +# -------------------- +# Ensure that there is a 'configure.ac' or 'configure.in' file in the +# current directory that contains an uncommented call to AC_INIT, and +# that '$configure_ac' contains its name. +require_configure_ac=func_require_configure_ac +func_require_configure_ac () +{ + $debug_cmd + + test -z "$configure_ac" \ + && func_autoconf_configure configure.ac && configure_ac=configure.ac + test -z "$configure_ac" \ + && func_autoconf_configure configure.in && configure_ac=configure.in + test -z "$configure_ac" \ + || func_verbose "found '$configure_ac'" + + require_configure_ac=: +} + + +# require_gnu_m4 +# -------------- +# Search for GNU M4, and export it in $M4. +require_gnu_m4=func_require_gnu_m4 +func_require_gnu_m4 () +{ + $debug_cmd + + test -n "$M4" || { + # Find the first m4 binary that responds to --version. + func_find_tool M4 gm4 gnum4 m4 + } + + test -n "$M4" || func_fatal_error "\ +Please install GNU M4, or 'export M4=/path/to/gnu/m4'." + + func_verbose "export M4='$M4'" + + # Make sure the search result is visible to subshells + export M4 + + require_gnu_m4=: +} + + +## --------------- ## +## Core functions. ## +## --------------- ## + +# This section contains the high level functions used when calling this +# file as a script. 'func_extract_trace' is probably the only one that you +# won't want to replace if you source this file into your own script. + + +# func_extract_trace MACRO_NAMES [FILENAME]... +# -------------------------------------------- +# set '$func_extract_trace_result' to a colon delimited list of arguments +# to any of the comma separated list of MACRO_NAMES in FILENAME. If no +# FILENAME is given, then '$configure_ac' is assumed. +func_extract_trace () +{ + $debug_cmd + + $require_configure_ac + $require_gnu_m4 + + _G_m4_traces=`$ECHO "--trace=$1" |$SED 's%,% --trace=%g'` + _G_re_macros=`$ECHO "($1)" |$SED 's%,%|%g'` + _G_macros="$1"; shift + test $# -gt 0 || { + set dummy $configure_ac + shift + } + + # Generate an error if the first file is missing + <"$1" + + # Sadly, we can't use 'autom4te' tracing to extract macro arguments, + # because it complains about things we want to ignore at bootstrap + # time - like missing m4_include files; AC_PREREQ being newer than + # the installed autoconf; and returns nothing when tracing + # 'AM_INIT_AUTOMAKE' when aclocal hasn't been generated yet. + # + # The following tries to emulate a less persnickety version of (and + # due to not having to wait for Perl startup on every invocation, + # it's probably faster too): + # + # autom4te --language=Autoconf --trace=$my_macro:\$% "$@" + # + # First we give a minimal set of macro declarations to M4 to prime + # it for reading Autoconf macros, while still providing some of the + # functionality generally used at m4-time to supply dynamic + # arguments to Autocof functions, but without following + # 'm4_s?include' files. + _G_mini=' + # Initialisation. + m4_changequote([,]) + m4_define([m4_copy], [m4_define([$2], m4_defn([$1]))]) + m4_define([m4_rename], [m4_copy([$1], [$2])m4_undefine([$1])]) + + # Disable these macros. + m4_undefine([m4_dnl]) + m4_undefine([m4_include]) + m4_undefine([m4_m4exit]) + m4_undefine([m4_m4wrap]) + m4_undefine([m4_maketemp]) + + # Copy and rename macros not handled by "m4 --prefix". + m4_define([dnl], [m4_builtin([dnl])]) + m4_copy([m4_define], [m4_defun]) + m4_rename([m4_ifelse], [m4_if]) + m4_ifdef([m4_mkstemp], [m4_undefine([m4_mkstemp])]) + m4_rename([m4_patsubst], [m4_bpatsubst]) + m4_rename([m4_regexp], [m4_bregexp]) + + # "m4sugar.mini" - useful m4-time macros for dynamic arguments. + # If we discover packages that need more m4 macros defined in + # order to bootstrap correctly, add them here: + m4_define([m4_bmatch], + [m4_if([$#], 0, [], [$#], 1, [], [$#], 2, [$2], + [m4_if(m4_bregexp([$1], [$2]), -1, + [$0([$1], m4_shift3($@))], [$3])])]) + m4_define([m4_ifndef], [m4_ifdef([$1], [$3], [$2])]) + m4_define([m4_ifset], + [m4_ifdef([$1], [m4_ifval(m4_defn([$1]), [$2], [$3])], [$3])]) + m4_define([m4_require], [$1]) + m4_define([m4_shift3], [m4_shift(m4shift(m4shift($@)))]) + + # "autoconf.mini" - things from autoconf macros we care about. + m4_copy([m4_defun], [AC_DEFUN]) + + # Dummy definitions for the macros we want to trace. + # AM_INIT_AUTOMAKE at least produces no trace without this. + ' + + _G_save=$IFS + IFS=, + for _G_macro in $_G_macros; do + IFS=$_G_save + func_append _G_mini "AC_DEFUN([$_G_macro])$nl" + done + IFS=$_G_save + + # We discard M4's stdout, but the M4 trace output from reading our + # "autoconf.mini" followed by any other files passed to this + # function is then scanned by sed to transform it into a colon + # delimited argument list assigned to a shell variable. + _G_transform='s|#.*$||; s|^dnl .*$||; s| dnl .*$||;' + + # Unfortunately, alternation in regexp addresses doesn't work in at + # least BSD (and hence Mac OS X) sed, so we have to append a capture + # and print block for each traced macro to the sed transform script. + _G_save=$IFS + IFS=, + for _G_macro in $_G_macros; do + IFS=$_G_save + func_append _G_transform ' + /^m4trace: -1- '"$_G_macro"'/ { + s|^m4trace: -1- '"$_G_macro"'[([]*|| + s|], [[]|:|g + s|[])]*$|:| + s|\(.\):$|\1| + p + }' + done + IFS=$_G_save + + # Save the command pipeline results for further use by callers of + # this function. + func_extract_trace_result=`$ECHO "$_G_mini" \ + |$M4 -daq --prefix $_G_m4_traces - "$@" 2>&1 1>/dev/null \ + |$SED -n -e "$_G_transform"` +} + + +# func_extract_trace_first MACRO_NAMES [FILENAME]... +# -------------------------------------------------- +# Exactly like func_extract_trace, except that only the first argument +# to the first invocation of one of the comma separated MACRO_NAMES is +# returned in '$func_extract_trace_first_result'. +func_extract_trace_first () +{ + $debug_cmd + + func_extract_trace ${1+"$@"} + func_extract_trace_first_result=`$ECHO "$func_extract_trace_result" \ + |$SED -e 's|:.*$||g' -e 1q` +} + + +# func_main [ARG]... +# ------------------ +func_main () +{ + $debug_cmd + + # Configuration. + usage='$progname MACRO_NAME FILE [...]' + + long_help_message=' +The first argument to this program is the name of an autotools macro +whose arguments you want to extract by examining the files listed in the +remaining arguments using the same tool that Autoconf and Automake use, +GNU M4. + +The arguments are returned separated by colons, with each traced call +on a separate line.' + + # Option processing. + func_options "$@" + eval set dummy "$func_options_result"; shift + + # Validate remaining non-option arguments. + test $# -gt 1 \ + || func_fatal_help "not enough arguments" + + # Pass non-option arguments to extraction function. + func_extract_trace "$@" + + # Display results. + test -n "$func_extract_trace_result" \ + && $ECHO "$func_extract_trace_result" + + # The End. + exit $EXIT_SUCCESS +} + + +## --------------------------- ## +## Actually perform the trace. ## +## --------------------------- ## + +# Only call 'func_main' if this script was called directly. +test extract-trace = "$progname" && func_main "$@" + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "20/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]...' + +# Short help message in response to '-h'. +usage_message="Options: + -c, --copy copy files rather than symlinking them + --debug enable verbose shell tracing + -n, --dry-run print commands rather than running them + -f, --force replace existing files + -i, --install copy missing auxiliary files + --ltdl[=DIR] install libltdl sources [default: libltdl] + --no-warnings equivalent to '-Wnone' + --nonrecursive prepare ltdl for non-recursive make + -q, --quiet work silently + --recursive prepare ltdl for recursive make + --subproject prepare ltdl to configure and build independently + -v, --verbose verbosely report processing + --version print version information and exit + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -h, --help print short or long help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=$long_help_message" + 'environment' show warnings about LIBTOOLIZE_OPTIONS content + 'file' show warnings about file copying and linking + +The following space or comma delimited options can be passed to $progname +via the environment variable LIBTOOLIZE_OPTIONS, unknown environment +options are ignored: + + --debug enable verbose shell tracing + --no-warnings don't display warning messages + --quiet work silently + --verbose verbosely report processing + +You must 'cd' to the top directory of your package before you run +'$progname'. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: arm-miyoo-linux-uclibcgnueabi + version: $progname (GNU libtool) 2.4.6 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: . +" + +warning_categories='environment file' + + +# libtoolize_environment_options [ARG]... +# --------------------------------------- +# Parse environment options. +libtoolize_environment_options () +{ + $debug_mode + + my_sed_env_opt='1s/^\([^,:; ]*\).*$/\1/;q' + my_sed_env_rest='1s/^[^,:; ]*[,:; ]*\(.*\)$/\1/;q' + + while test -n "$LIBTOOLIZE_OPTIONS"; do + opt=`echo "$LIBTOOLIZE_OPTIONS" | $SED "$my_sed_env_opt"` + LIBTOOLIZE_OPTIONS=`echo "$LIBTOOLIZE_OPTIONS" | $SED "$my_sed_env_rest"` + + case $opt in + --debug|--no-warn|--no-warning|--no-warnings|--quiet|--verbose) + envopts="${envopts+$envopts }$opt" ;; + --*) env_warning="${env_warning+$env_warning +}unrecognized environment option '$opt'" ;; + *) func_fatal_help "garbled LIBTOOLIZE_OPTIONS near '$opt'" ;; + esac + done + + # Pass back the updated list of options. + if test -n "$envopts"; then + func_quote_for_eval "$envopts" ${1+"$@"} + else + func_quote_for_eval ${1+"$@"} + fi + libtoolize_environment_options_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtoolize_environment_options + + +# libtoolize_options_prep [ARG]... +# -------------------------------- +# Preparation for options parsed by libtoolize. +libtoolize_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_copy=false + opt_dry_run=false + opt_force=false + opt_install=false + opt_ltdl=false + opt_nonrecursive=false + opt_quiet=false + opt_recursive=false + opt_subproject=false + + ltdl_mode= + + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtoolize_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtoolize_options_prep + + +# libtoolize_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtoolize specific options. +libtoolize_parse_options () +{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --copy|-c) opt_copy=: ;; + + --dry-run|--dryrun|-n) + $opt_dry_run || { + opt_dry_run=: + CP="func_echo_all $CP" + test -n "$LN_S" && LN_S="func_echo_all $LN_S" + MKDIR="func_echo_all $MKDIR" + RM="func_echo_all $RM" + } + ;; + + --force|-f) opt_force=: ;; + + --install|-i) opt_install=: ;; + + --ltdl) opt_ltdl=: + if test 0 -lt $#; then + case $1 in + -*) ;; + *) ltdl_dir=`$ECHO "$1" | $SED 's|/*$||'` + shift + ;; + esac + fi + ;; + + --nonrecursive|--non-recursive) + opt_nonrecursive=: + ;; + + --quiet|--automake|-q) # --automake is for 1.5 compatibility + opt_quiet=: ;; + + --recursive) opt_recursive=: ;; + + --subproject) opt_subproject=: ;; + + # Separate non-argument short options: + -c*|-f*|-i*|-n*|-q*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtoolize_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtoolize_parse_options + + +# libtoolize_validate_options [ARG]... +# ------------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtoolize_validate_options () +{ + # show any warnings saved by LIBTOOLIZE_OPTIONS parsing + test -n "$env_warning" && func_warning environment "$env_warning" + + # validate $opt_nonrecursive, $opt_recursive and $opt_subproject + if $opt_nonrecursive; then + if $opt_recursive || $opt_subproject; then + func_error "you can have at most one of --non-recursive, --recursive and --subproject" + fi + ltdl_mode=nonrecursive + elif $opt_recursive; then + $opt_subproject && + func_error "you can have at most one of --non-recursive, --recursive and --subproject" + ltdl_mode=recursive + elif $opt_subproject; then + ltdl_mode=subproject + fi + + # any remaining arguments are an error + test 0 -lt $# && + func_fatal_help "unknown additional arguments: '${1+$@}'" + + # Pass back the empty argument list + func_quote_for_eval ${1+"$@"} + libtoolize_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtoolize_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + +# func_notquiet_once MSG_VAR +# -------------------------- +# Call func_notquiet with the value of MSG_VAR, and then set MSG_VAR='' so +# that subsequent calls will have no effect. +func_notquiet_once () +{ + $debug_cmd + + if test -n "$1"; then + eval my_msg=\$$1 + + if test -n "$my_msg"; then + func_notquiet "$my_msg" + eval $1= + fi + fi +} + + +# func_notquiet_hdr MSG_VAR ARG... +# -------------------------------- +# With at least 1 non-empty ARG, call func_notquiet_once with MSG_VAR, +# and then func_notquiet with the remaining arguments. +func_notquiet_hdr () +{ + $debug_cmd + + my_msg_var=$1; shift + test -n "$*" || return + + func_notquiet_once "$my_msg_var" + func_notquiet "$*" +} + + +# func_notquiet_error_hdr MSG_VAR ARG... +# -------------------------------------- +# Much the same as func_notquiet_header, but for (non-fatal) error +# messages. +func_notquiet_error_hdr () +{ + $debug_cmd + + my_msg_var=$1; shift + test -n "$*" || return + + func_notquiet_once "$my_msg_var" + func_error "$*" + + exit_status=$EXIT_FAILURE +} + + +# func_copy FILENAME SRCDIR DESTDIR [MSG_VAR [FILTER]] +# ---------------------------------------------------- +# If option '--copy' was specified, or soft-linking SRCFILE to DESTFILE +# fails, then try to copy SRCFILE to DESTFILE (making sure to update the +# timestamp so that a series of files with dependencies can be copied +# in the right order that their timestamps won't trigger rebuilds). If +# FILTER is non-empty, it is a sed script to apply to SRCFILE as it is +# copied. MSG_VAR names a variable for use with func_notquiet_hdr. +func_copy () +{ + $debug_cmd + + my_filename=$1 + my_srcdir=$2 + my_destdir=$3 + my_msg_var=$4 + my_filter=$5 + + my_srcfile=$my_srcdir/$my_filename + my_destfile=$my_destdir/$my_filename + + # Libtool is probably misinstalled if this happens: + test -f "$my_srcfile" || { + func_notquiet_error_hdr "$my_msg_var" "'$my_srcfile' not found" + return 1 + } + + # Require --force to remove existing $my_destfile. + $opt_force && $RM "$my_destfile" + test -f "$my_destfile" && { + func_notquiet_error_hdr "$my_msg_var" \ + "'$my_destfile' exists: use '--force' to overwrite" + return 1 + } + + # Be careful to support 'func_copy dir/target srcbase destbase'. + func_dirname "$my_destfile" + func_mkdir_p "$func_dirname_result" + + # Filters always take priority. + if test -n "$my_filter"; then + if $opt_dry_run || $SED -e "$my_filter" "$my_srcfile" > "$my_destfile" 2>/dev/null + then + func_notquiet_once "$my_msg_var" + if $opt_verbose; then + func_notquiet "$SED -e '$my_filter' $my_srcfile > $my_destfile" + else + func_notquiet "creating file '$my_destfile'" + fi + else + func_notquiet_error_hdr "$my_msg_var" "creating '$my_destfile' from '$my_srcfile' failed" + return 1 + fi + return 0 + fi + + # Otherwise copy or link according to '--copy' option. + if $opt_copy; then + my_copycmd=$CP + my_copy_type=copying + else + my_copycmd=$LN_S + my_copy_type=linking + fi + my_copy_msg="$my_copy_type file '$my_destfile'" + $opt_verbose && my_copy_msg="$my_copycmd $my_srcfile $my_destdir" + + if $opt_dry_run || $my_copycmd "$my_srcfile" "$my_destfile" 2>/dev/null + then + func_notquiet_hdr "$my_msg_var" "$my_copy_msg" + else + func_notquiet_error_hdr "$my_msg_var" \ + "$my_copy_type '$my_srcdir/$my_filename' to '$my_destdir/' failed" + return 1 + fi +} + + +# func_included_files SEARCHFILE +# ------------------------------ +# Output INCLUDEFILE if SEARCHFILE m4_includes it, else output SEARCHFILE. +func_included_files () +{ + $debug_cmd + + my_searchfile=$1 + + my_include_regex= + my_sed_include=' + /^m4_include(\[.*\])$/ { + s|^m4_include(\[\(.*\)\])$|\1| + p + } + d' + + if test -f "$my_searchfile"; then + $ECHO "$my_searchfile" + + # Only recurse when we don't care if all the variables we use get + # trashed, since they are in global scope. + for my_filename in `$SED "$my_sed_include" "$my_searchfile"`; do + func_included_files $my_filename + done + fi +} + + +# func_serial FILENAME [MACRO_REGEX] +# ---------------------------------- +# Output the value of the serial number comment in FILENAME, where the +# comment line must also match MACRO_REGEX, if given. +func_serial () +{ + $debug_cmd + + my_filename=$1 + my_macro_regex=$2 + my_sed_serial=' + /^# serial [1-9][0-9.]*[ ]*'"$my_macro_regex"'[ ]*$/ { + s|^# serial \([1-9][0-9.]*\).*$|\1| + q + } + d' + + # Search FILENAME and all the files it m4_includes for a serial number + # in the file that AC_DEFUNs MACRO_REGEX. + my_serial= + func_dirname_and_basename "$my_filename" + my_filebase=$func_basename_result + for my_file in `func_included_files "$my_filename"`; do + if test -z "$my_macro_regex" || + test aclocal.m4 = "$my_filename" || + test "X$my_macro_regex" = "X$my_filebase" || + func_grep '^AC_DEFUN(\['"$my_macro_regex" "$my_file" + then + my_serial=`$SED -e "$my_sed_serial" "$my_file"` + break + fi + done + + # If the file has no serial number, we assume it's ancient. + test -n "$my_serial" || my_serial=0 + + $ECHO "$my_serial" +} + + +# func_serial_max SERIAL1 SERIAL2 +# ------------------------------- +# Compare (possibly multi-part, '.' delimited) serial numbers, and +# return the largest in $func_serial_max_result. If they are the +# same, func_serial_max_result will be empty. +func_serial_max () +{ + $debug_cmd + + my_serial1=$1 + my_serial2=$2 + + my_sed_dot='s/\..*$//g' + my_sed_rest='s/^[0-9][1-9]*\.*//' + my_sed_digits='s/[^0-9.]//g' + + # Incase they turn out to be the same, we'll set it to empty + func_serial_max_result= + + test "X$1$2" = X`$ECHO "$1$2" | $SED "$my_sed_digits"` || { + func_error "serial numbers '$1' or '$2' contain non-digit chars" + return + } + + while test -n "$my_serial1$my_serial2"; do + my_serial1_part=`$ECHO "$my_serial1" | $SED "$my_sed_dot"` + my_serial2_part=`$ECHO "$my_serial2" | $SED "$my_sed_dot"` + + test -z "$my_serial1_part$my_serial2_part" \ + && break + + test -z "$my_serial1_part" \ + && { func_serial_max_result=$2; break; } + + test -z "$my_serial2_part" \ + && { func_serial_max_result=$1; break; } + + test "$my_serial1_part" -gt "$my_serial2_part" \ + && { func_serial_max_result=$1; break; } + + test "$my_serial2_part" -gt "$my_serial1_part" \ + && { func_serial_max_result=$2; break; } + + my_serial1=`$ECHO "$my_serial1" | $SED "$my_sed_rest"` + my_serial2=`$ECHO "$my_serial2" | $SED "$my_sed_rest"` + done +} + + +# func_serial_update_check SRCFILE SRC_SERIAL DESTFILE DEST_SERIAL +# ---------------------------------------------------------------- +# Unless SRC_SERIAL is newer than DEST_SERIAL set $func_serial_update_check +# to 'false'. +func_serial_update_check () +{ + $debug_cmd + + $require_ac_ltdl_dir + $require_ac_macro_dir + + my_srcfile=$1 + my_src_serial=$2 + my_destfile=$3 + my_dest_serial=$4 + my_update_p=: + + if test -f "$my_destfile"; then + test 0 = "$my_src_serial" && { + func_warning file "no serial number on '$my_srcfile', not copying." + return + } + + # Determine whether the destination has an older serial. + func_serial_max "$my_src_serial" "$my_dest_serial" + test "X$my_src_serial" = "X$func_serial_max_result" || my_update_p=false + + test "X$my_src_serial" = "X$func_serial_max_result" \ + && func_verbose "'$my_srcfile' is serial $my_src_serial, greater than $my_dest_serial in '$my_destfile'" + + if test "X$my_dest_serial" = "X$func_serial_max_result"; then + func_verbose "'$my_srcfile' is serial $my_src_serial, less than $my_dest_serial in '$my_destfile'" + $opt_force || if test -n "$ac_macro_dir$ac_ltdl_dir"; then + func_error "'$my_destfile' is newer: use '--force' to overwrite" + fi + fi + fi + + func_serial_update_check_result=$my_update_p +} + + +# func_aclocal_update_check FILENAME +# ---------------------------------- +# Unless serial number of FILENAME is newer than the matching serial number +# in aclocal.m4, set $func_aclocal_update_check to 'false'. +func_aclocal_update_check () +{ + $debug_cmd + + my_filename=$1 + + my_srcfile=$aclocaldir/$1 + my_destfile=aclocal.m4 + + case $my_filename in + libtool.m4) + my_src_serial=`func_serial "$my_srcfile" LT_INIT` + my_dest_serial=`func_serial "$my_destfile" LT_INIT` + + # Strictly, this libtoolize ought not to have to deal with ancient + # serial formats, but we accept them here to be complete: + test 0 = "$my_src_serial" && + my_src_serial=`func_serial "$my_srcfile" 'A[CM]_PROG_LIBTOOL'` + test 0 = "$my_dest_serial" && + my_dest_serial=`func_serial "$my_destfile" 'A[CM]_PROG_LIBTOOL'` + ;; + ltdl.m4) + my_src_serial=`func_serial "$my_srcfile" LTDL_INIT` + my_dest_serial=`func_serial "$my_destfile" LTDL_INIT` + ;; + *) + my_src_serial=`func_serial "$my_srcfile" "$my_filename"` + my_dest_serial=`func_serial "$my_destfile" "$my_filename"` + ;; + esac + + func_serial_update_check \ + "$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial" + + func_aclocal_update_check_result=$func_serial_update_check_result +} + + +# func_serial_update FILENAME SRCDIR DESTDIR [MSG_VAR] [MACRO_RE] [OLD_MACRO_RE] +# ------------------------------------------------------------------------------ +# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME +# has a newer serial number, or DESTFILE does not yet exist, or the user +# specified '--force' at the command line. If given, MACRO_REGEX or +# OLD_MACRO_REGEX must match any text after "# serial N" in both files. +func_serial_update () +{ + $debug_cmd + + my_filename=$1 + my_srcdir=$2 + my_destdir=$3 + my_msg_var=$4 + my_macro_regex=$5 + my_old_macro_regex=$6 + + my_serial_update_p=: + my_return_status=1 + my_srcfile=$my_srcdir/$my_filename + my_destfile=$my_destdir/$my_filename + + test -f "$my_srcfile" || func_fatal_error "'$my_srcfile' does not exist." + + if test -f "$my_destfile"; then + my_src_serial=`func_serial "$my_srcfile" "$my_macro_regex"` + my_dest_serial=`func_serial "$my_destfile" "$my_macro_regex"` + + # Strictly, this libtoolize ought not to have to deal with ancient + # serial formats, but we accept them here to be complete: + test 0 = "$my_src_serial" && + my_src_serial=`func_serial "$my_srcfile" "$my_old_macro_regex"` + + test 0 = "$my_dest_serial" && + my_dest_serial=`func_serial "$my_destfile" "$my_old_macro_regex"` + + func_serial_update_check \ + "$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial" + my_serial_update_p=$func_serial_update_check_result + fi + + if $my_serial_update_p || $opt_force; then + $RM "$my_destfile" + func_copy "$my_filename" "$my_srcdir" "$my_destdir" "$my_msg_var" + my_return_status=$? + elif $opt_force && test "X$my_dest_serial" = "X$my_src_serial"; then + func_notquiet_hdr "$my_msg_var" "'$my_destfile' is already up to date." + fi + + # Do this after the copy for hand maintained 'aclocal.m4', incase + # it has 'm4_include([DESTFILE])', so the copy effectively already + # updated 'aclocal.m4'. + my_included_files=`func_included_files aclocal.m4` + case `echo " "$my_included_files" "` in + + # Skip included files: + *" $my_destfile "*) ;; + + # Otherwise compare to aclocal.m4 serial number (func_serial + # returns 0 for older macro serial numbers before we provided + # serial tags, so the update message will be correctly given + # if aclocal.m4 contains an untagged --i.e older-- macro file): + *) + if test -f aclocal.m4; then + func_serial_max \ + "$my_src_serial" `func_serial aclocal.m4 "$my_macro_regex"` + if test "X$my_src_serial" = "X$func_serial_max_result"; then + func_notquiet_hdr "$my_msg_var" \ + "You should add the contents of '$my_destfile' to 'aclocal.m4'." + fi + fi + ;; + esac + return $my_return_status +} + + +# func_keyword_update FILENAME SRCDIR DESTDIR SED_SCRIPT [MSG_VAR] +# ---------------------------------------------------------------- +# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME +# has a newer revision according to the serial number extracted by +# SED_SCRIPT, or DESTFILE does not yet exist, or the user specified +# '--force' at the command line. +func_keyword_update () +{ + $debug_cmd + + my_filename=$1 + my_srcdir=$2 + my_destdir=$3 + my_sed_script=$4 + my_msg_var=$5 + + my_srcfile=$my_srcdir/$my_filename + my_destfile=$my_destdir/$my_filename + + my_keyword_update_p=: + + test -f "$my_srcfile" || func_fatal_error "'$my_srcfile' does not exist." + + if test -f "$my_destfile"; then + my_src_serial=`$SED -e "$my_sed_script" "$my_srcfile"` + test -z "$my_src_serial" && { + func_warning file "no serial number in '$my_srcfile', not copying." + return + } + + my_dest_serial=`$SED -e "$my_sed_script" "$my_destfile"` + test -n "$my_dest_serial" || my_dest_serial=0 + + func_serial_update_check \ + "$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial" + my_keyword_update_p=$func_serial_update_check_result + fi + + if $my_keyword_update_p || $opt_force; then + $RM "$my_destfile" + func_copy "$my_filename" "$my_srcdir" "$my_destdir" "$my_msg_var" + elif $opt_verbose || $opt_force && test "X$my_dest_serial" = "X$my_src_serial"; then + func_notquiet_hdr "$my_msg_var" "'$my_destfile' is already up to date." + fi +} + + +# func_ltmain_update FILENAME SRCDIR DESTDIR [MSG_VAR] +# ---------------------------------------------------- +# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME +# has a newer revision, or DESTFILE does not yet exist, or the user +# specified '--force' at the command line. +func_ltmain_update () +{ + $debug_cmd + + my_sed_ltmain=' + /^package_revision='\''*[0-9][1-9.]*'\''*/ { + s|^package_revision='\''*\([0-9.]*\)'\''*[ ]*$|\1| + p + } + d' + + func_keyword_update "$1" "$2" "$3" "$my_sed_ltmain" "$4" + + return $my_return_status +} + + +# func_config_update FILENAME SRCDIR DESTDIR [MSG_VAR] +# ---------------------------------------------------- +# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME +# has a newer timestamp, or DESTFILE does not yet exist, or the user +# specified '--force' at the command line. +func_config_update () +{ + $debug_cmd + + my_sed_config=' + /^timestamp='\''*[0-9][1-9-]*'\''*/ { + s|^timestamp='\''*\([0-9-]*\)'\''*|\1| + s|-|.|g + p + } + d' + + func_keyword_update "$1" "$2" "$3" "$my_sed_config" "$4" + + return $my_return_status +} + + +# func_install_update FILENAME SRCDIR DESTDIR [MSG_VAR] +# ----------------------------------------------------- +# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME +# has a newer timestamp, or DESTFILE does not yet exist, or the user +# specified '--force' at the command line. +func_install_update () +{ + $debug_cmd + + my_sed_install=' + /^scriptversion='\''*[0-9][1-9.-]*'\''*/ { + s|[#;].*|| + s|^scriptversion='\''*\([0-9.-]*\)'\''*|\1| + s|-|.|g + p + } + d' + + func_keyword_update "$1" "$2" "$3" "$my_sed_install" "$4" + + return $my_return_status +} + + +# func_install_pkgmacro_files +# --------------------------- +# Install copies of the libtool and libltdl m4 macros into this package. +func_install_pkgmacro_files () +{ + $debug_cmd + + $require_ac_macro_dir + $require_am_macro_dir + $require_ltdl_mode + $require_macro_dir + + $opt_ltdl || test -n "$ac_macro_dir$am_macro_dir" || return + + # Remove any lingering files that my have been installed by some + # previous libtoolize release: + $opt_force && for file in $all_pkgmacro_files; do + test -f "$macro_dir/$file" && func_verbose "rm -f '$macro_dir/$file'" + rm -f "$macro_dir/$file" + done + + # Install the libltdl autoconf macros to this project's source tree. + $opt_quiet || if test -n "$ac_macro_dir"; then + my_pkgmacro_header="putting macros in AC_CONFIG_MACRO_DIRS, '$ac_macro_dir'." + else + my_pkgmacro_header="putting macros in '$macro_dir'." + fi + + for file in $pkgmacro_files; do + case $file in + libtool.m4) + func_serial_update "$file" "$aclocaldir" "$macro_dir" \ + my_pkgmacro_header LT_INIT 'A[CM]_PROG_LIBTOOL' + ;; + ltdl.m4) + if $opt_ltdl; then + func_serial_update "$file" "$aclocaldir" "$macro_dir" \ + my_pkgmacro_header 'LTDL_INIT' + else + func_verbose "Not copying '$macro_dir/$file', libltdl not used." + fi + ;; + ltoptions.m4|ltsugar.m4|ltversion.m4|lt~obsolete.m4) + func_serial_update "$file" "$aclocaldir" "$macro_dir" \ + my_pkgmacro_header "$file" + ;; + *) + if $opt_ltdl; then + func_serial_update "$file" "$aclocaldir" "$macro_dir" \ + my_pkgmacro_header "$file" + else + func_verbose "Not copying '$macro_dir/$file', libltdl not used." + fi + ;; + esac + done +} + + +# func_install_pkgltdl_files +# -------------------------- +# Install copies of the libltdl files into this package. Any auxiliary +# or m4 macro files needed in the libltdl tree will also be copied by +# func_install_pkgaux_files and func_install_pkgmacro_files resp. +func_install_pkgltdl_files () +{ + $debug_cmd + + $opt_ltdl || return + + $require_ac_ltdl_dir + $require_ltdl_dir + $require_ltdl_mode + + # Remove any lingering files that my have been installed by some + # previous libtoolize release: + $opt_force && for file in $all_pkgltdl_files; do + test -f "$ltdl_dir/$file" && func_verbose "rm -f '$ltdl_dir/$file'" + rm -f "$ltdl_dir/$file" + done + + # Copy all the files from installed libltdl to this project, if the + # user specified '--ltdl'. + $opt_quiet || if test -n "$ac_ltdl_dir"; then + pkgltdl_header="putting libltdl files in LT_CONFIG_LTDL_DIR, '$ac_ltdl_dir'." + else + pkgltdl_header="putting libltdl files in '$ltdl_dir'." + fi + + $require_filter_Makefile_am + $require_filter_ltdl_mk + + # Copy ltdl sources appropriate to the requested ltdl_mode. + for file in $pkgltdl_files; do + my_copy_filter= + case $file in + Makefile.am|Makefile.in) + test nonrecursive = "$ltdl_mode" && continue + my_copy_filter=$filter_Makefile_am + ;; + + ltdl.mk) + test nonrecursive = "$ltdl_mode" || continue + my_copy_filter=$filter_ltdl_mk + ;; + + aclocal.m4) + test subproject = "$ltdl_mode" && { + $require_filter_aclocal_m4 + + # Always copy aclocal.m4, otherwise regenerating it can + # overwrite the destination if it is symlinked. + ( opt_copy=: + func_copy "$file" "$pkgltdldir" "$ltdl_dir" \ + pkgltdl_header "$filter_aclocal_m4" + ) + } + continue + ;; + + config-h.in) + test subproject = "$ltdl_mode" || continue + ;; + + configure) + test subproject = "$ltdl_mode" && { + $require_filter_configure_ac + + # Always copy configure, otherwise regenerating it can + # overwrite the destination if it is symlinked. + ( opt_copy=: + func_copy "$file" "$pkgltdldir" "$ltdl_dir" \ + pkgltdl_header "$filter_configure_ac" + ) + } + continue + ;; + + configure.ac) + test subproject = "$ltdl_mode" || continue + $require_filter_configure_ac + my_copy_filter=$filter_configure_ac + ;; + esac + + # Still here? Copy the file then, with selected filters. + func_copy "$file" "$pkgltdldir" "$ltdl_dir" \ + pkgltdl_header "$my_copy_filter" + + # FIXME: Remove in 2013 + # (along with deprecation warning in func_check_macros) + test ltdl.mk = "$file" \ + && func_grep "^-\?include $ltdl_dir/Makefile.inc\$" Makefile.am \ + && mv "$ltdl_dir/$file" "$ltdl_dir/Makefile.inc" \ + && func_notquiet "renaming file '$ltdl_dir/Makefile.inc'" + done +} + + +# func_install_pkgaux_files +# ------------------------- +# Install copies of the auxiliary files into this package according to +# the whether libltdl is included as a subproject, and whether the parent +# shares the AC_CONFIG_AUX_DIR setting. +func_install_pkgaux_files () +{ + $debug_cmd + + $require_ac_aux_dir + $require_aux_dir + $require_configure_ac + $require_ltdl_mode + + # Remove any lingering files that my have been installed by some + # previous libtoolize release: + $opt_force && for file in $all_pkgaux_files; do + test -f "$aux_dir/$file" && func_verbose "rm -f '$aux_dir/$file'" + rm -f "$aux_dir/$file" + done + + if test -n "$ac_aux_dir"; then + pkgaux_header="putting auxiliary files in AC_CONFIG_AUX_DIR, '$ac_aux_dir'." + else + pkgaux_header="putting auxiliary files in '$aux_dir'." + fi + + for file in $pkgaux_files; do + case $file in + config.guess|config.sub) + $opt_install || test subproject = "$ltdl_mode" || continue + func_config_update "$file" "$pkgauxdir" "$aux_dir" pkgaux_header + ;; + install-sh) + $opt_install || test subproject = "$ltdl_mode" || continue + func_install_update "$file" "$pkgauxdir" "$aux_dir" pkgaux_header + ;; + ltmain.sh) + func_ltmain_update "$file" "$pkgauxdir" "$aux_dir" pkgaux_header + ;; + *) + test subproject = "$ltdl_mode" || continue + func_copy "$file" "$pkgauxdir" "$aux_dir" pkgaux_header + ;; + esac + done + + # If the parent project is using Autoconf and linking with Libtool, + # even if subproject libltdl already has a copy, the parent project + # will still need to build libtool for its own purposes, and might + # need another copy of ltmain.sh if the parent didn't declare an + # AC_CONFIG_AUX_DIR. + pkgaux_hdr="putting another copy of auxiliary files in '.'" + test -f "$configure_ac" \ + && test -z "$ac_aux_dir" \ + && test subproject = "$ltdl_mode" \ + && test "$aux_dir" = "$ltdl_dir" \ + && func_ltmain_update "$file" "$pkgauxdir" . pkgaux_hdr + + # FIXME: Remove in 2013. + # Very old parent projects using 'libtoolize --install --ltdl', and + # a top-level $configure_ac to build the ltdl subproject, but not + # using Automake themselves, might still be relying on the old + # behaviour of libtoolize to put a second copy of some 'Auxiliary + # Programs' needed by the top-level configure (instead of using + # the recommended method: 'automake --add-missing'). + test -f "$configure_ac" \ + && test subproject = "$ltdl_mode" \ + && test "$aux_dir" = "$ltdl_dir" \ + && func_config_update config.guess "$pkgauxdir" . pkgaux_hdr \ + && func_config_update config.sub "$pkgauxdir" . pkgaux_hdr \ + && func_install_update install-sh "$pkgauxdir" . pkgaux_hdr +} + + +# func_nonemptydir_p DIRVAR +# ------------------------- +# DIRVAR is the name of a variable to evaluate. Unless DIRVAR names +# a directory that exists and is non-empty abort with a diagnostic. +func_nonemptydir_p () +{ + $debug_cmd + + my_dirvar=$1 + my_dir=`eval echo "\\\$$my_dirvar"` + + # Is it a directory at all? + test -d "$my_dir" \ + || func_fatal_error "\$$my_dirvar is not a directory: '$my_dir'" + + # check that the directories contents can be ls'ed + test -n "`{ cd $my_dir && ls; } 2>/dev/null`" \ + || func_fatal_error "cannot list files: '$my_dir'" +} + + +# func_check_macros +# ----------------- +# Sanity check macros from aclocal.m4 against installed versions. +func_check_macros () +{ + $debug_cmd + + $require_ac_ltdl_dir + $require_ac_macro_dir + $require_am_macro_dir + $require_aux_dir + $require_configure_ac + $require_ltdl_dir + $require_ltdl_mode + $require_macro_dir + $require_seen_ltdl + $require_seen_libtool + + $opt_quiet && return + test -n "$configure_ac" || return + + ac_config_macro_dir_advised=false + + if test -z "$ac_macro_dir$am_macro_dir"; then + my_missing= + for file in $pkgmacro_files; do + case $file in + ltargz.m4|ltdl.m4) $opt_ltdl || continue ;; + esac + if test -f "aclocal.m4"; then + func_aclocal_update_check $file + $func_aclocal_update_check_result || continue + fi + my_missing="$my_missing $file" + done + + if test -n "$my_missing"; then + func_echo "You should add the contents of the following files to 'aclocal.m4':" + for need in $my_missing; do + func_echo " '$aclocaldir/$need'" + done + fi + fi + + ## ---------------------------------------------------------- ## + ## Since we return early here when --no-warn was given: ## + ## DO NOT PUT ANYTHING BUT UPGRADE ADVICE MESSAGES BELOW HERE ## + ## ---------------------------------------------------------- ## + + test " none" = "$opt_warning_types" && return + + $seen_libtool || + func_echo "Remember to add 'LT_INIT' to $configure_ac." + + # Suggest using LTDL_INIT if appropriate: + $opt_ltdl && if test : != "$seen_ltdl"; then + case $ltdl_mode in + subproject) ltdl_init_args= ;; + *) ltdl_init_args="([$ltdl_mode])" ;; + esac + func_echo "Remember to add 'LTDL_INIT$ltdl_init_args' to $configure_ac." + fi + + if $opt_ltdl; then + # Remind the user to call LT_CONFIG_LTDL_DIR: + test -n "$ac_ltdl_dir" || + func_echo "Remember to add 'LT_CONFIG_LTDL_DIR([$ltdl_dir])' to '$configure_ac'." + + # For nonrecursive mode, warn about continued use of Makefile.inc: + # FIXME: Remove in 2013 + # (along with last minute rename in func_install_pkgltdl_files) + if test nonrecursive = "$ltdl_mode"; then + if func_grep "^-\?include $ltdl_dir/Makefile.inc\$" Makefile.am; + then + func_error "Use of 'include $ltdl_dir/Makefile.inc' is deprecated!" + func_echo "Consider updating to use of 'include $ltdl_dir/ltdl.mk' in Makefile.am." + fi + fi + fi + + # Suggest modern idioms for storing autoconf macros: + $ac_config_macro_dir_advised || if test -z "$macro_dir" || test . = "$macro_dir"; then + func_echo "Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to $configure_ac and" + func_echo "rerunning $progname, to keep the correct libtool macros in-tree." + ac_config_macro_dir_advised=: + + elif test -z "$ac_macro_dir"; then + func_echo "Consider adding 'AC_CONFIG_MACRO_DIRS([$macro_dir])' to $configure_ac," + func_echo "and rerunning $progname and aclocal." + ac_config_macro_dir_advised=: + fi + + if test -z "$am_macro_dir$ac_macro_dir"; then + func_echo "Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am." + + elif test -z "$am_macro_dir"; then + func_echo "Consider adding '-I $macro_dir' to ACLOCAL_AMFLAGS in Makefile.am." + fi + + # Don't trace for this, we're just checking the user didn't invoke it + # directly from configure.ac. + $SED 's|dnl .*$||; s|# .*$||' "$configure_ac" | $GREP AC_PROG_RANLIB >/dev/null && + func_echo "'AC_PROG_RANLIB' is rendered obsolete by 'LT_INIT'" + + # FIXME: Ensure ltmain.sh, libtool.m4 and ltdl.m4 are from the same release +} + + + +## ------------------## +## Helper functions. ## +## ------------------## + +# This section contains the helper functions used by the rest of +# this script. + + +# func_autoconf_configure MAYBE-CONFIGURE-FILE +# -------------------------------------------- +# Ensure that MAYBE-CONFIGURE-FILE is the name of a file in the current +# directory that contains an uncommented call to AC_INIT. +func_autoconf_configure () +{ + $debug_cmd + + _G_sed_no_comment='s|#.*$||; s|^dnl .*$||; s| dnl .*$||;' + _G_ac_init= + + # If we were passed a genuine file, make sure it calls AC_INIT. + test -f "$1" \ + && _G_ac_init=`$SED "$_G_sed_no_comment" "$1" |$GREP AC_INIT` + + # Otherwise it is not a genuine Autoconf input file. + test -n "$_G_ac_init" + _G_status=$? + + test 0 -ne "$_G_status" \ + && func_verbose "'$1' not using Autoconf" + + (exit $_G_status) +} + + +# func_make_relative_dir_filter CURRDIR SRCDIR DESTDIR [PREFIX [SUFFIX]] +# ---------------------------------------------------------------------- +# Make a sed script suitable for appending to a copy filter, which will +# replace occurrences of CURRDIR with the relative path from SRCDIR to +# DESTDIR if they are different, otherwise the result is the empty +# string: +# +# func_make_relative_dir_filter ltdl config ../build-aux +# => 's|\.\./build-aux|../config|g' +# func_make_relative_dir_filter ltdl ltdl/m4 ../m4 +# => 's|\.\./m4|m4|g' +# func_make_relative_dir_filter libltdl build-aux ../build-aux +# => '' +# +# If PREFIX (and SUFFIX) are passed they are prepended (and appended) +# to the match and replacement expressions literally: +# +# func_make_relative_dir_filter ltdl ltdl/m4 ../m4 '-I ' ' ' +# => 's|-I \.\./m4 |-I m4 |g' +func_make_relative_dir_filter () +{ + $debug_cmd + + my_currdir=$1 + my_srcdir=$2 + my_destdir=$3 + + func_relative_path "$my_srcdir" "$my_destdir" + + if test "$my_currdir" = "$func_relative_path_result"; then + func_make_relative_dir_filter_result= + else + my_match_currdir=`$ECHO "$my_currdir" |$SED "$sed_make_literal_regex"` + + # Avoid substituting with 'dir/./file' when current dir is '.'. + if test . = "$my_currdir"; then + func_make_relative_dir_filter_result=" + s|$4$my_match_currdir/$5|$4$5|g" + else + func_make_relative_dir_filter_result=" + s|$4$my_match_currdir$5|$4$func_relative_path_result$5|g" + fi + fi +} + +# func_make_relative_ltdl_filter CURRDIR DESTDIR [PREFIX [SUFFIX]] +# ---------------------------------------------------------------- +# As 'func_make_relative_dir_filter' optimised for the common case where +# SRCDIR is '$ltdl_dir'. +func_make_relative_ltdl_filter () +{ + $debug_cmd + + $require_ltdl_dir + + func_make_relative_dir_filter "$1" "$ltdl_dir" "$2" "$3" "$4" + func_make_relative_ltdl_filter_result=$func_make_relative_dir_filter_result +} + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Where a variable already has a non- +# empty value (as set by the package's 'bootstrap.conf'), that value is +# used in preference to deriving the default. Call them using their +# associated 'require_*' variable to ensure that they are executed, at +# most, once. +# +# Some of the require functions are very similar, so we generate those +# as this file is sourced. They look complicated, but they are the same +# as normal function declarations wrapped in "eval ''", so +# that embedded single quotes need to be escaped, and wherever a symbol +# is generated, we drop out of the single quotes and expand a variable +# that holds the symbol. +# +# After that, the rest appear in asciibetical order. + +for base in '' ltdl_; do + if test ltdl_ = "$base"; then p='$pkgltdldir/'; else p=; fi + + # require_Makefile_am + # require_ltdl_Makefile_am + # ------------------------ + # If not already set, set Makefile_am to 'Makefile.am' if that file is + # present in the current directory, and similarly for + # '$pkgltdldir/Makefile.am'. + r=${base}Makefile_am + v=require_$r + f=func_$v + eval $v'='$f' + '$f' () + { + $debug_cmd + + test -n "$'$r'" || '$r'='$p'Makefile.am + + if test -f "$'$r'"; then + func_verbose "found '\'\$$r\''" + else + '$r'= + fi + + '$v'=: + }' + o=$r + + + # require_aclocal_amflags + # require_ltdl_aclocal_amflags + # ---------------------------- + # Extract '$aclocal_amflags' from 'Makefile.am' if present, and + # similarly for 'libltdl/Makefile.am'. + r=${base}aclocal_amflags + v=require_$r + f=func_$v + eval $v'='$f' + '$f' () + { + $debug_cmd + + $require_'$o' + + test -n "$'$o'" && { + _G_sed_extract_aclocal_amflags='\''s|#.*$|| + /^[ ]*ACLOCAL_AMFLAGS[ ]*=/ { + s|^.*=[ ]*\(.*\)|'$r'="\1"| + p + }'\'' + + _G_aclocal_flags_cmd=`$SED -n "$_G_sed_extract_aclocal_amflags" \ + "$'$o'"` + eval "$_G_aclocal_flags_cmd" + + test -n "$'$r'" && func_verbose "'$r'='\$$r\''" + } + + '$v'=: + }' + o=$r + + + # require_am_macro_dir + # require_ltdl_am_macro_dir + # ------------------------- + # Set am_macro_dir to the first directory specified in + # ACLOCAL_AMFLAGS from 'Makefile.am', and similarly for + # 'libltdl/Makefile.am'. + r=${base}am_macro_dir + v=require_$r + f=func_$v + eval $v'='$f' + '$f' () + { + $debug_cmd + + $require_'$o' + + _G_minus_I_seen=false + for _G_arg in $'$o'; do + case $_G_minus_I_seen,$_G_arg in + :,*) '$r'=$_G_arg; break ;; + *,-I) _G_minus_I_seen=: ;; + *,-I*) '$r'=`expr x$_G_arg : '\''x-I\(.*\)$'\''`; break ;; + esac + done + + test -n "$'$r'" && func_verbose "'$r'='\'\$$r\''" + + '$v'=: + }' + o=$r + +done + + +# require_ac_aux_dir +# ------------------ +# Extract ac_aux_dir from AC_CONFIG_AUX_DIR. +require_ac_aux_dir=func_require_ac_aux_dir +func_require_ac_aux_dir () +{ + $debug_cmd + + $require_configure_ac + + test -n "$configure_ac" && { + func_extract_trace_first AC_CONFIG_AUX_DIR + ac_aux_dir=$func_extract_trace_first_result + + case $ac_aux_dir in + *\$*) + func_fatal_error "\ +cannot expand unknown variable in AC_CONFIG_AUX_DIR argument." + ;; + esac + } + + test -n "$ac_aux_dir" && func_verbose "ac_aux_dir='$ac_aux_dir'" + + require_ac_aux_dir=: +} + + +# require_ac_ltdl_dir +# ------------------- +# Extract ac_ltdl_dir from LT_CONFIG_LTDL_DIR. +require_ac_ltdl_dir=func_require_ac_ltdl_dir +func_require_ac_ltdl_dir () +{ + $debug_cmd + + $require_configure_ac + + if test -n "$configure_ac"; then + func_extract_trace_first LT_CONFIG_LTDL_DIR + ac_ltdl_dir=$func_extract_trace_first_result + + case $ac_ltdl_dir in + *\$*) + func_fatal_error "\ +cannot expand unknown variable in LT_CONFIG_LTDL_DIR argument." + ;; + esac + fi + + # Strip trailing slashes. + ac_ltdl_dir=`echo "$ac_ltdl_dir" |$SED 's|/*$||'` + + require_ac_ltdl_dir=: +} + + +# require_ac_ltdl_mode +# -------------------- +# Extract mode name from LTDL_INIT options. +require_ac_ltdl_mode=func_require_ac_ltdl_mode +func_require_ac_ltdl_mode () +{ + $debug_cmd + + $require_ac_ltdl_options + + case " $ac_ltdl_options " in + *" nonrecursive "*) ac_ltdl_mode=nonrecursive ;; + *" recursive "*) ac_ltdl_mode=recursive ;; + *" subproject "*) ac_ltdl_mode=subproject ;; + esac + + require_ac_ltdl_mode=: +} + + +# require_ac_ltdl_options +# ----------------------- +# Extract ac_ltdl_options from LTDL_INIT. +require_ac_ltdl_options=func_require_ac_ltdl_options +func_require_ac_ltdl_options () +{ + $debug_cmd + + $require_configure_ac + + if test -n "$configure_ac"; then + func_extract_trace_first LTDL_INIT + ac_ltdl_options=$func_extract_trace_first_result + + case $ac_ltdl_options in + *\$*) + func_fatal_error "\ +cannot expand unknown variable in LTDL_INIT argument." + ;; + esac + fi + + require_ac_ltdl_mode=: +} + + +# require_ac_macro_dir +# -------------------- +# Extract ac_macro_dir from AC_CONFIG_MACRO_DIRS. +require_ac_macro_dir=func_require_ac_macro_dir +func_require_ac_macro_dir () +{ + $debug_cmd + + $require_configure_ac + + if test -n "$configure_ac"; then + func_extract_trace_first AC_CONFIG_MACRO_DIRS + ac_macro_dir=`expr "x$func_extract_trace_first_result" : 'x\([^ ]*\)'` + + test -n "$ac_macro_dir" || { + func_extract_trace_first AC_CONFIG_MACRO_DIR + ac_macro_dir=$func_extract_trace_first_result + } + fi + + require_ac_macro_dir=: +} + + +# require_aux_dir +# --------------- +# Set aux_dir according to AC_CONFIG_AUX_DIR or else use the same +# heuristics as Autoconf to intuit an appropriate setting. +require_aux_dir=func_require_aux_dir +func_require_aux_dir () +{ + $debug_cmd + + $require_ac_aux_dir + + test -z "$aux_dir" && aux_dir=$ac_aux_dir + + # Subproject ltdl without $configure_ac keeps pkgauxfiles in + # specified --ltdl optarg directory. + test -z "$aux_dir" && $opt_ltdl && { + $require_configure_ac + + test -n "$configure_ac" || { + $require_ltdl_dir + $require_ltdl_mode + + test subproject = "$ltdl_mode" && aux_dir=$ltdl_dir + } + } + + test -z "$aux_dir" && { + # Try to intuit aux_dir using the same heuristic as Autoconf. + for _G_dir in . .. ../..; do + if test -f "$_G_dir/install-sh" || test -f "$_G_dir/install.sh" + then + aux_dir=$_G_dir + break + fi + done + } + + # Use the current directory if all else fails. + test -z "$aux_dir" && aux_dir=. + + require_aux_dir=: +} + + +# require_configure_ac +# -------------------- +# Ensure that there is a 'configure.ac' or 'configure.in' file in this +# directory, and that '$configure_ac' contains its name. +require_configure_ac=func_require_configure_ac +func_require_configure_ac () +{ + $debug_cmd + + test -z "$configure_ac" \ + && func_autoconf_configure configure.ac && configure_ac=configure.ac + test -z "$configure_ac" \ + && func_autoconf_configure configure.in && configure_ac=configure.in + test -z "$configure_ac" \ + || func_verbose "found '$configure_ac'" + + require_configure_ac=: +} + + +# require_filter_Makefile_am +# -------------------------- +# Set 'filter_Makefile_am' ready for passing to func_copy when libltdl's +# stock Makefile.am contents need to be filtered to work in recursive +# mode. +require_filter_Makefile_am=func_require_filter_Makefile_am +func_require_filter_Makefile_am () +{ + $debug_cmd + + $require_ltdl_mode + + case $ltdl_mode in + recursive) + filter_Makefile_am=' + /^[^#]/{ + s|(LIBOBJS)|(ltdl_LIBOBJS)|g + s|(LTLIBOBJS)|(ltdl_LTLIBOBJS)|g + }' + ;; + + subproject) + # Adjust default relative macro_dir paths. + $require_ltdl_am_macro_dir + + func_make_relative_ltdl_filter "$ltdl_am_macro_dir" "$macro_dir" '-I ' + test -z "$func_make_relative_ltdl_filter_result" || { + func_append filter_Makefile_am " + /^ACLOCAL_AMFLAGS = /{ + $func_make_relative_ltdl_filter_result + }" + } + func_make_relative_ltdl_filter "$ltdl_am_macro_dir" "$macro_dir" 'dir)' + func_append filter_Makefile_am "$func_make_relative_ltdl_filter_result" + + # Adjust default relative aux_dir paths. + $require_ltdl_ac_aux_dir + func_make_relative_ltdl_filter "$ltdl_ac_aux_dir" "$aux_dir" + func_append filter_Makefile_am "$func_make_relative_ltdl_filter_result" + ;; + esac + + require_filter_Makefile_am=: +} + + +# require_filter_aclocal_m4 +# ------------------------- +# Set 'filter_aclocal_m4' ready for passing to func_copy when libltdl's +# stock aclocal.m4 contents need to be filtered to work in recursive +# mode. +require_filter_aclocal_m4=func_require_filter_aclocal_m4 +func_require_filter_aclocal_m4 () +{ + $debug_cmd + + $require_ltdl_am_macro_dir + + func_make_relative_ltdl_filter "$ltdl_am_macro_dir" "$macro_dir" + + test -z "$func_make_relative_ltdl_filter_result" || { + func_append filter_aclocal_m4 " + /^[m]4_include(/{ + $func_make_relative_ltdl_filter_result + }" + } + + require_filter_aclocal_m4=: +} + + +# require_filter_configure_ac +# --------------------------- +# Set 'filter_configure_ac' ready for passing to func_copy when +# libltdl's stock configure.ac contents need to be filtered to work in +# subproject mode. +require_filter_configure_ac=func_require_filter_configure_ac +func_require_filter_configure_ac () +{ + $debug_cmd + + $require_ltdl_ac_aux_dir + + func_make_relative_ltdl_filter "$ltdl_ac_aux_dir" "$aux_dir" + func_append filter_configure_ac "$func_make_relative_ltdl_filter_result" + + require_filter_configure_ac=: +} + + +# require_filter_ltdl_mk +# ---------------------- +# Set 'filter_ltdl_mk' ready for passing to func_copy in order for the +# contents of ltdl.mk to match the nonrecursive libltdl directory into +# which it is copied. +require_filter_ltdl_mk=func_require_filter_ltdl_mk +func_require_filter_ltdl_mk () +{ + $debug_cmd + + $require_ltdl_dir + + # Note that we strip comments right here, rather than rely on + # using a $SED that allows comments. + my_uscore=`$ECHO "$ltdl_dir" | $SED 's|[/.+-]|_|g'` + filter_ltdl_mk=`$ECHO ' + /^[^#]/{ + + # Use only libltdl conditional objects. + s|(LIBOBJS)|(ltdl_LIBOBJS)|g + s|(LTLIBOBJS)|(ltdl_LTLIBOBJS)|g + + # Convert libltdl path and variable sections to $ltdl_dir. + s|libltdl_|@my_uscore@_| + s|libltdl/|@ltdl_dir@/| + s|: libltdl/|: @ltdl_dir@/| + s| -Ilibltdl | -I@ltdl_dir@ | + s|\$(libltdl_|\$(@my_uscore@_| + s|)/libltdl |)/@ltdl_dir@ | + s|@my_uscore@|'"$my_uscore"'|g + s|@ltdl_dir@|'"$ltdl_dir"'|g + + }' | $SED '/^[ ]*#/d;/^$/d'` + + require_filter_ltdl_mk=: +} + + +# require_ltdl_ac_aux_dir +# ----------------------- +# This needs to work in subproject mode, when GNU M4 may not be +# available and hence extract-trace can't be used. But since we +# installed libltdl/configure.ac, then we already know what value +# we used. +require_ltdl_ac_aux_dir=func_require_ltdl_ac_aux_dir +func_require_ltdl_ac_aux_dir () +{ + $debug_cmd + + ltdl_ac_aux_dir="../build-aux" + func_verbose "ltdl_ac_aux_dir='$ltdl_ac_aux_dir'" + + require_ltdl_ac_aux_dir=: +} + + +# require_ltdl_dir +# ---------------- +# If both are specified, ensure both --ltdl=LTDL_DIR and +# LT_CONFIG_LTDL_DIR agree, and set ltdl_dir to the value of either. +require_ltdl_dir=func_require_ltdl_dir +func_require_ltdl_dir () +{ + $debug_cmd + + $require_ac_ltdl_dir + + test -z "$ltdl_dir" && ltdl_dir=$ac_ltdl_dir + test -z "$ltdl_dir" && $opt_ltdl && ltdl_dir=libltdl + + if test -n "$ac_ltdl_dir"; then + test "$ac_ltdl_dir" = "$ltdl_dir" || func_fatal_error "\ +--ltdl='$ltdl_dir' does not match LT_CONFIG_LTDL_DIR($ac_ltdl_dir)" + fi + + require_ltdl_dir=: +} + + +# require_ltdl_mode +# ----------------- +# If both are specified, ensure both command line setting and LTDL_INIT +# option agree, and set ltdl_mode to the value of either. +require_ltdl_mode=func_require_ltdl_mode +func_require_ltdl_mode () +{ + $debug_cmd + + $require_ac_ltdl_mode + + test -z "$ltdl_mode" && ltdl_mode=$ac_ltdl_mode + test -z "$ltdl_mode" && { + $require_ltdl_dir + + test -n "$ltdl_dir" && ltdl_mode=subproject + } + + if test -n "$ac_ltdl_mode"; then + test "$ac_ltdl_mode" = "$ltdl_mode" || func_fatal_error "\ +--$ltdl_mode does not match LTDL_INIT($ac_ltdl_mode)" + fi + + func_verbose "ltdl mode='$ltdl_mode'" + + require_ltdl_mode=: +} + + +# require_macro_dir +# ----------------- +# If both are specified, ensure both ACLOCAL_AMFLAGS and +# AC_CONFIG_MACRO_DIRS agree, and set macro_dir to the value of either. +require_macro_dir=func_require_macro_dir +func_require_macro_dir () +{ + $debug_cmd + + $require_ac_macro_dir + $require_am_macro_dir + + # AC_CONFIG_MACRO_DIRS takes precedence. + macro_dir=$ac_macro_dir + + # Followed by first -I optarg from ACLOCAL_AMFLAGS. + test -z "$macro_dir" && macro_dir=$am_macro_dir + + # Subproject ltdl without either of the above keeps macros in + # specified --ltdl optarg subdirectory. + test -z "$macro_dir" && $opt_ltdl && { + $require_ltdl_dir + $require_ltdl_mode + + test subproject = "$ltdl_mode" && macro_dir=$ltdl_dir/m4 + } + + # Use ./m4 as the last resort. + test -z "$macro_dir" && macro_dir=m4 + + # Diagnose conflicts. + if test -n "$ac_macro_dir" && test -n "$am_macro_dir"; then + test "$ac_macro_dir" = "$am_macro_dir" || func_fatal_error "\ +AC_CONFIG_MACRO_DIRS([$ac_macro_dir]) conflicts with ACLOCAL_AMFLAGS=-I $am_macro_dir." + fi + + require_macro_dir=: +} + + +# require_seen_ltdl +# ----------------- +# Determine from contents of $configure_ac whether this project contains +# libltdl. +require_seen_ltdl=func_require_seen_ltdl +func_require_seen_ltdl () +{ + $debug_cmd + + $require_configure_ac + + if test -n "$configure_ac"; then + func_extract_trace AC_LIB_LTDL,AC_WITH_LTDL,LT_WITH_LTDL,LTDL_INIT + test -n "$func_extract_trace_result" && seen_ltdl=: + fi + test -n "$seen_ltdl" || seen_ltdl=false + + $seen_ltdl && func_verbose "found LTDL_INIT invocation" + + require_seen_ltdl=: +} + + +# require_seen_libtool +# -------------------- +# Determine from contents of $configure_ac whether this project is using +# Libtool to compile (some of) its objects. +require_seen_libtool=func_require_seen_libtool +func_require_seen_libtool () +{ + $debug_cmd + + $require_configure_ac + + if test -n "$configure_ac"; then + func_extract_trace AM_PROG_LIBTOOL,AC_PROG_LIBTOOL,LT_INIT + test -n "$func_extract_trace_result" && seen_libtool=: + fi + test -n "$seen_libtool" || seen_libtool=false + + $seen_libtool && func_verbose "found LT_INIT invocation" + + require_seen_libtool=: +} + + + +## ----------- ## +## Main. ## +## ----------- ## + +{ + # Lists of all files libtoolize has ever installed. These are removed + # before installing the latest files when --force was passed to help + # ensure a clean upgrade. + # Do not remove config.guess, config.sub or install-sh, we don't + # install them without --install, and the project may not be using + # Automake. Similarly, do not remove Gnulib files. + all_pkgaux_files="compile depcomp missing ltmain.sh" + all_pkgmacro_files="libtool.m4 ltargz.m4 ltdl.m4 ltoptions.m4 ltsugar.m4 ltversion.in ltversion.m4 lt~obsolete.m4" + all_pkgltdl_files="COPYING.LIB Makefile Makefile.in Makefile.inc Makefile.am README acinclude.m4 aclocal.m4 argz_.h argz.c config.h.in config-h.in configure configure.ac configure.in libltdl/lt__alloc.h libltdl/lt__argz.h libltdl/lt__dirent.h libltdl/lt__glibc.h libltdl/lt__private.h libltdl/lt__strl.h libltdl/lt_dlloader.h libltdl/lt_error.h libltdl/lt_system.h libltdl/slist.h loaders/dld_link.c loaders/dlopen.c loaders/dyld.c loaders/load_add_on.c loaders/loadlibrary.c loaders/preopen.c loaders/shl_load.c lt__alloc.c lt__argz.c lt__dirent.c lt__strl.c lt_dlloader.c lt_error.c ltdl.c ltdl.h ltdl.mk slist.c" + + # Files installed by func_install_*, some files are missing from these + # lists deliberately because their respective func_install has to handle + # the missing filenames specially. + pkgaux_files="compile config.guess config.sub depcomp install-sh missing ltmain.sh" + pkgltdl_files="COPYING.LIB Makefile.am README configure.ac aclocal.m4 Makefile.in config-h.in configure libltdl/lt__alloc.h libltdl/lt__argz_.h libltdl/lt__dirent.h libltdl/lt__glibc.h libltdl/lt__private.h libltdl/lt__strl.h libltdl/lt_dlloader.h libltdl/lt_error.h libltdl/lt_system.h libltdl/slist.h loaders/dld_link.c loaders/dlopen.c loaders/dyld.c loaders/load_add_on.c loaders/loadlibrary.c loaders/preopen.c loaders/shl_load.c lt__alloc.c lt__argz.c lt__dirent.c lt__strl.c lt_dlloader.c lt_error.c ltdl.c ltdl.h ltdl.mk slist.c" + pkgmacro_files="libtool.m4 ltargz.m4 ltdl.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4" + + # Locations for important files: + prefix="/usr" + datadir="/usr/share" + pkgauxdir="/usr/share/libtool/build-aux" + pkgltdldir="/usr/share/libtool" + aclocaldir="/usr/share/aclocal" + + # Allow the user to override the master libtoolize repository: + if test -n "$_lt_pkgdatadir"; then + pkgauxdir=$_lt_pkgdatadir/build-aux + pkgltdldir=$_lt_pkgdatadir/libltdl + aclocaldir=$_lt_pkgdatadir/m4 + fi + func_nonemptydir_p pkgauxdir + func_nonemptydir_p pkgltdldir + func_nonemptydir_p aclocaldir + + extract_trace=$pkgauxdir/extract-trace + + # :::BE CAREFUL HERE::: + # func_check_macros needs to check whether --ltdl was specified when + # LTDL_INIT was not seen, so we can't just use one variable for both + # conditions, or that check will be impossible. No need to clutter the + # rest of the code with '$opt_ltdl || $seen_ltdl' though, because we CAN + # safely set opt_ltdl to true if LTDL_INIT was seen: + $require_seen_ltdl + $seen_ltdl && opt_ltdl=: + + func_install_pkgaux_files + func_install_pkgmacro_files + func_install_pkgltdl_files + + func_check_macros +} + +exit $exit_status + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/squashfs-root/usr/bin/logger b/squashfs-root/usr/bin/logger new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/logger @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/logname b/squashfs-root/usr/bin/logname new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/logname @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/lsof b/squashfs-root/usr/bin/lsof new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/lsof @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/lspci b/squashfs-root/usr/bin/lspci new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/lspci @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/lsscsi b/squashfs-root/usr/bin/lsscsi new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/lsscsi @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/lsusb b/squashfs-root/usr/bin/lsusb new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/lsusb @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/ltrace b/squashfs-root/usr/bin/ltrace new file mode 100755 index 0000000..ea0e632 Binary files /dev/null and b/squashfs-root/usr/bin/ltrace differ diff --git a/squashfs-root/usr/bin/lua b/squashfs-root/usr/bin/lua new file mode 100755 index 0000000..0c8cf81 Binary files /dev/null and b/squashfs-root/usr/bin/lua differ diff --git a/squashfs-root/usr/bin/luac b/squashfs-root/usr/bin/luac new file mode 100755 index 0000000..f06be47 Binary files /dev/null and b/squashfs-root/usr/bin/luac differ diff --git a/squashfs-root/usr/bin/lz4 b/squashfs-root/usr/bin/lz4 new file mode 100755 index 0000000..f2b773e Binary files /dev/null and b/squashfs-root/usr/bin/lz4 differ diff --git a/squashfs-root/usr/bin/lz4c b/squashfs-root/usr/bin/lz4c new file mode 100755 index 0000000..503aed2 Binary files /dev/null and b/squashfs-root/usr/bin/lz4c differ diff --git a/squashfs-root/usr/bin/lz4cat b/squashfs-root/usr/bin/lz4cat new file mode 120000 index 0000000..468bf88 --- /dev/null +++ b/squashfs-root/usr/bin/lz4cat @@ -0,0 +1 @@ +lz4 \ No newline at end of file diff --git a/squashfs-root/usr/bin/lzcat b/squashfs-root/usr/bin/lzcat new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/lzcat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/lzma b/squashfs-root/usr/bin/lzma new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/lzma @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/lzopcat b/squashfs-root/usr/bin/lzopcat new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/lzopcat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/mcookie b/squashfs-root/usr/bin/mcookie new file mode 100755 index 0000000..e206769 Binary files /dev/null and b/squashfs-root/usr/bin/mcookie differ diff --git a/squashfs-root/usr/bin/md5sum b/squashfs-root/usr/bin/md5sum new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/md5sum @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/mesg b/squashfs-root/usr/bin/mesg new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/mesg @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/microcom b/squashfs-root/usr/bin/microcom new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/microcom @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/mkfifo b/squashfs-root/usr/bin/mkfifo new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/mkfifo @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/mkpasswd b/squashfs-root/usr/bin/mkpasswd new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/mkpasswd @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/nano b/squashfs-root/usr/bin/nano new file mode 100755 index 0000000..4ed36cc Binary files /dev/null and b/squashfs-root/usr/bin/nano differ diff --git a/squashfs-root/usr/bin/ngettext b/squashfs-root/usr/bin/ngettext new file mode 100755 index 0000000..8c3550f Binary files /dev/null and b/squashfs-root/usr/bin/ngettext differ diff --git a/squashfs-root/usr/bin/nl b/squashfs-root/usr/bin/nl new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/nl @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/nohup b/squashfs-root/usr/bin/nohup new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/nohup @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/nproc b/squashfs-root/usr/bin/nproc new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/nproc @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/nslookup b/squashfs-root/usr/bin/nslookup new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/nslookup @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/od b/squashfs-root/usr/bin/od new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/od @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/ogg123 b/squashfs-root/usr/bin/ogg123 new file mode 100755 index 0000000..dffe3b5 Binary files /dev/null and b/squashfs-root/usr/bin/ogg123 differ diff --git a/squashfs-root/usr/bin/oggdec b/squashfs-root/usr/bin/oggdec new file mode 100755 index 0000000..a13348e Binary files /dev/null and b/squashfs-root/usr/bin/oggdec differ diff --git a/squashfs-root/usr/bin/oggenc b/squashfs-root/usr/bin/oggenc new file mode 100755 index 0000000..55b87ab Binary files /dev/null and b/squashfs-root/usr/bin/oggenc differ diff --git a/squashfs-root/usr/bin/ogginfo b/squashfs-root/usr/bin/ogginfo new file mode 100755 index 0000000..825d651 Binary files /dev/null and b/squashfs-root/usr/bin/ogginfo differ diff --git a/squashfs-root/usr/bin/openvt b/squashfs-root/usr/bin/openvt new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/openvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/pango-view b/squashfs-root/usr/bin/pango-view new file mode 100755 index 0000000..d6c71dc Binary files /dev/null and b/squashfs-root/usr/bin/pango-view differ diff --git a/squashfs-root/usr/bin/passwd b/squashfs-root/usr/bin/passwd new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/passwd @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/paste b/squashfs-root/usr/bin/paste new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/paste @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/patch b/squashfs-root/usr/bin/patch new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/patch @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/pcregrep b/squashfs-root/usr/bin/pcregrep new file mode 100755 index 0000000..c3d6366 Binary files /dev/null and b/squashfs-root/usr/bin/pcregrep differ diff --git a/squashfs-root/usr/bin/pcretest b/squashfs-root/usr/bin/pcretest new file mode 100755 index 0000000..b1f8c1a Binary files /dev/null and b/squashfs-root/usr/bin/pcretest differ diff --git a/squashfs-root/usr/bin/playsound b/squashfs-root/usr/bin/playsound new file mode 100755 index 0000000..fa94e34 Binary files /dev/null and b/squashfs-root/usr/bin/playsound differ diff --git a/squashfs-root/usr/bin/playsound_simple b/squashfs-root/usr/bin/playsound_simple new file mode 100755 index 0000000..aa41b5a Binary files /dev/null and b/squashfs-root/usr/bin/playsound_simple differ diff --git a/squashfs-root/usr/bin/printf b/squashfs-root/usr/bin/printf new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/printf @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/readlink b/squashfs-root/usr/bin/readlink new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/readlink @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/realpath b/squashfs-root/usr/bin/realpath new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/realpath @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/renice b/squashfs-root/usr/bin/renice new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/renice @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/reset b/squashfs-root/usr/bin/reset new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/reset @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/resize b/squashfs-root/usr/bin/resize new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/resize @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/seq b/squashfs-root/usr/bin/seq new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/seq @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/setkeycodes b/squashfs-root/usr/bin/setkeycodes new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/setkeycodes @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/setsid b/squashfs-root/usr/bin/setsid new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/setsid @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/sha1sum b/squashfs-root/usr/bin/sha1sum new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/sha1sum @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/sha256sum b/squashfs-root/usr/bin/sha256sum new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/sha256sum @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/sha3sum b/squashfs-root/usr/bin/sha3sum new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/sha3sum @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/sha512sum b/squashfs-root/usr/bin/sha512sum new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/sha512sum @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/shred b/squashfs-root/usr/bin/shred new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/shred @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/sort b/squashfs-root/usr/bin/sort new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/sort @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/speaker-test b/squashfs-root/usr/bin/speaker-test new file mode 100755 index 0000000..9f28be1 Binary files /dev/null and b/squashfs-root/usr/bin/speaker-test differ diff --git a/squashfs-root/usr/bin/speexdec b/squashfs-root/usr/bin/speexdec new file mode 100755 index 0000000..8d97756 Binary files /dev/null and b/squashfs-root/usr/bin/speexdec differ diff --git a/squashfs-root/usr/bin/speexenc b/squashfs-root/usr/bin/speexenc new file mode 100755 index 0000000..f9db007 Binary files /dev/null and b/squashfs-root/usr/bin/speexenc differ diff --git a/squashfs-root/usr/bin/strace b/squashfs-root/usr/bin/strace new file mode 100755 index 0000000..d4da8e5 Binary files /dev/null and b/squashfs-root/usr/bin/strace differ diff --git a/squashfs-root/usr/bin/strace-log-merge b/squashfs-root/usr/bin/strace-log-merge new file mode 100755 index 0000000..8ab2409 --- /dev/null +++ b/squashfs-root/usr/bin/strace-log-merge @@ -0,0 +1,43 @@ +#!/bin/sh + +show_usage() +{ + cat <<__EOF__ +Usage: ${0##*/} STRACE_LOG + +Finds all STRACE_LOG.PID files, adds PID prefix to every line, +then combines and sorts them, and prints result to standard output. + +It is assumed that STRACE_LOGs were produced by strace with -tt[t] +option which prints timestamps (otherwise sorting won't do any good). +__EOF__ +} + +if [ $# -ne 1 ]; then + show_usage >&2 + exit 1 +elif [ "$1" = '--help' ]; then + show_usage + exit 0 +fi + +logfile=$1 + +for file in "$logfile".*; do + [ -f "$file" ] || continue + suffix=${file#"$logfile".} + [ "$suffix" -gt 0 ] 2> /dev/null || + continue + pid=$(printf "%-5s" $suffix) + # Some strace logs have last line which is not '\n' terminated, + # so add extra newline to every file. + # grep -v '^$' removes empty lines which may result. + sed "s/^/$pid /" < "$file" + echo +done \ +| sort -s -k2,2 | grep -v '^$' + +rc=$? +[ $rc -eq 1 ] && + echo >&2 "${0##*/}: $logfile: strace output not found" +exit $rc diff --git a/squashfs-root/usr/bin/strings b/squashfs-root/usr/bin/strings new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/strings @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/svc b/squashfs-root/usr/bin/svc new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/svc @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/tail b/squashfs-root/usr/bin/tail new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/tail @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/tee b/squashfs-root/usr/bin/tee new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/tee @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/telnet b/squashfs-root/usr/bin/telnet new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/telnet @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/test b/squashfs-root/usr/bin/test new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/test @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/tftp b/squashfs-root/usr/bin/tftp new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/tftp @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/time b/squashfs-root/usr/bin/time new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/time @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/top b/squashfs-root/usr/bin/top new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/top @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/tr b/squashfs-root/usr/bin/tr new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/tr @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/traceroute b/squashfs-root/usr/bin/traceroute new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/traceroute @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/truncate b/squashfs-root/usr/bin/truncate new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/truncate @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/ts_calibrate b/squashfs-root/usr/bin/ts_calibrate new file mode 100755 index 0000000..2f5c01e Binary files /dev/null and b/squashfs-root/usr/bin/ts_calibrate differ diff --git a/squashfs-root/usr/bin/ts_finddev b/squashfs-root/usr/bin/ts_finddev new file mode 100755 index 0000000..cff7064 Binary files /dev/null and b/squashfs-root/usr/bin/ts_finddev differ diff --git a/squashfs-root/usr/bin/ts_harvest b/squashfs-root/usr/bin/ts_harvest new file mode 100755 index 0000000..b9d0926 Binary files /dev/null and b/squashfs-root/usr/bin/ts_harvest differ diff --git a/squashfs-root/usr/bin/ts_print b/squashfs-root/usr/bin/ts_print new file mode 100755 index 0000000..11cb873 Binary files /dev/null and b/squashfs-root/usr/bin/ts_print differ diff --git a/squashfs-root/usr/bin/ts_print_mt b/squashfs-root/usr/bin/ts_print_mt new file mode 100755 index 0000000..94f9889 Binary files /dev/null and b/squashfs-root/usr/bin/ts_print_mt differ diff --git a/squashfs-root/usr/bin/ts_print_raw b/squashfs-root/usr/bin/ts_print_raw new file mode 100755 index 0000000..5045897 Binary files /dev/null and b/squashfs-root/usr/bin/ts_print_raw differ diff --git a/squashfs-root/usr/bin/ts_test b/squashfs-root/usr/bin/ts_test new file mode 100755 index 0000000..d8ed7d8 Binary files /dev/null and b/squashfs-root/usr/bin/ts_test differ diff --git a/squashfs-root/usr/bin/ts_test_mt b/squashfs-root/usr/bin/ts_test_mt new file mode 100755 index 0000000..a39b599 Binary files /dev/null and b/squashfs-root/usr/bin/ts_test_mt differ diff --git a/squashfs-root/usr/bin/ts_uinput b/squashfs-root/usr/bin/ts_uinput new file mode 100755 index 0000000..1593760 Binary files /dev/null and b/squashfs-root/usr/bin/ts_uinput differ diff --git a/squashfs-root/usr/bin/ts_verify b/squashfs-root/usr/bin/ts_verify new file mode 100755 index 0000000..6aa6172 Binary files /dev/null and b/squashfs-root/usr/bin/ts_verify differ diff --git a/squashfs-root/usr/bin/tty b/squashfs-root/usr/bin/tty new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/tty @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/uniq b/squashfs-root/usr/bin/uniq new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/uniq @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/unix2dos b/squashfs-root/usr/bin/unix2dos new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/unix2dos @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/unlink b/squashfs-root/usr/bin/unlink new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/unlink @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/unlz4 b/squashfs-root/usr/bin/unlz4 new file mode 120000 index 0000000..468bf88 --- /dev/null +++ b/squashfs-root/usr/bin/unlz4 @@ -0,0 +1 @@ +lz4 \ No newline at end of file diff --git a/squashfs-root/usr/bin/unlzma b/squashfs-root/usr/bin/unlzma new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/unlzma @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/unlzop b/squashfs-root/usr/bin/unlzop new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/unlzop @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/unrar b/squashfs-root/usr/bin/unrar new file mode 100755 index 0000000..c75e824 Binary files /dev/null and b/squashfs-root/usr/bin/unrar differ diff --git a/squashfs-root/usr/bin/unxz b/squashfs-root/usr/bin/unxz new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/unxz @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/unzip b/squashfs-root/usr/bin/unzip new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/unzip @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/uptime b/squashfs-root/usr/bin/uptime new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/uptime @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/uudecode b/squashfs-root/usr/bin/uudecode new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/uudecode @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/uuencode b/squashfs-root/usr/bin/uuencode new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/uuencode @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/vcut b/squashfs-root/usr/bin/vcut new file mode 100755 index 0000000..bd1f1cb Binary files /dev/null and b/squashfs-root/usr/bin/vcut differ diff --git a/squashfs-root/usr/bin/vlock b/squashfs-root/usr/bin/vlock new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/vlock @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/vorbiscomment b/squashfs-root/usr/bin/vorbiscomment new file mode 100755 index 0000000..614b718 Binary files /dev/null and b/squashfs-root/usr/bin/vorbiscomment differ diff --git a/squashfs-root/usr/bin/w b/squashfs-root/usr/bin/w new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/w @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/wc b/squashfs-root/usr/bin/wc new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/wc @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/wget b/squashfs-root/usr/bin/wget new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/wget @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/which b/squashfs-root/usr/bin/which new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/which @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/who b/squashfs-root/usr/bin/who new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/who @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/whoami b/squashfs-root/usr/bin/whoami new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/whoami @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/xargs b/squashfs-root/usr/bin/xargs new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/xargs @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/xkbcomp b/squashfs-root/usr/bin/xkbcomp new file mode 100755 index 0000000..fbd1dd1 Binary files /dev/null and b/squashfs-root/usr/bin/xkbcomp differ diff --git a/squashfs-root/usr/bin/xmlcatalog b/squashfs-root/usr/bin/xmlcatalog new file mode 100755 index 0000000..8960866 Binary files /dev/null and b/squashfs-root/usr/bin/xmlcatalog differ diff --git a/squashfs-root/usr/bin/xmllint b/squashfs-root/usr/bin/xmllint new file mode 100755 index 0000000..4742be8 Binary files /dev/null and b/squashfs-root/usr/bin/xmllint differ diff --git a/squashfs-root/usr/bin/xmltest b/squashfs-root/usr/bin/xmltest new file mode 100755 index 0000000..24c6f69 Binary files /dev/null and b/squashfs-root/usr/bin/xmltest differ diff --git a/squashfs-root/usr/bin/xmlwf b/squashfs-root/usr/bin/xmlwf new file mode 100755 index 0000000..7e0e230 Binary files /dev/null and b/squashfs-root/usr/bin/xmlwf differ diff --git a/squashfs-root/usr/bin/xxd b/squashfs-root/usr/bin/xxd new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/xxd @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/xz b/squashfs-root/usr/bin/xz new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/xz @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/xzcat b/squashfs-root/usr/bin/xzcat new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/xzcat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/yes b/squashfs-root/usr/bin/yes new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/bin/yes @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/bin/zip b/squashfs-root/usr/bin/zip new file mode 100755 index 0000000..469510f Binary files /dev/null and b/squashfs-root/usr/bin/zip differ diff --git a/squashfs-root/usr/bin/zipcloak b/squashfs-root/usr/bin/zipcloak new file mode 100755 index 0000000..b5d9692 Binary files /dev/null and b/squashfs-root/usr/bin/zipcloak differ diff --git a/squashfs-root/usr/bin/zipcmp b/squashfs-root/usr/bin/zipcmp new file mode 100755 index 0000000..ec9c785 Binary files /dev/null and b/squashfs-root/usr/bin/zipcmp differ diff --git a/squashfs-root/usr/bin/zipmerge b/squashfs-root/usr/bin/zipmerge new file mode 100755 index 0000000..a66569f Binary files /dev/null and b/squashfs-root/usr/bin/zipmerge differ diff --git a/squashfs-root/usr/bin/zipnote b/squashfs-root/usr/bin/zipnote new file mode 100755 index 0000000..182144d Binary files /dev/null and b/squashfs-root/usr/bin/zipnote differ diff --git a/squashfs-root/usr/bin/zipsplit b/squashfs-root/usr/bin/zipsplit new file mode 100755 index 0000000..18deac9 Binary files /dev/null and b/squashfs-root/usr/bin/zipsplit differ diff --git a/squashfs-root/usr/bin/ziptool b/squashfs-root/usr/bin/ziptool new file mode 100755 index 0000000..ed26a76 Binary files /dev/null and b/squashfs-root/usr/bin/ziptool differ diff --git a/squashfs-root/usr/lib/ao/plugins-4/libalsa.so b/squashfs-root/usr/lib/ao/plugins-4/libalsa.so new file mode 100755 index 0000000..4ec4794 Binary files /dev/null and b/squashfs-root/usr/lib/ao/plugins-4/libalsa.so differ diff --git a/squashfs-root/usr/lib/charset.alias b/squashfs-root/usr/lib/charset.alias new file mode 100644 index 0000000..0001c6e --- /dev/null +++ b/squashfs-root/usr/lib/charset.alias @@ -0,0 +1,5 @@ +# This file contains a table of character encoding aliases, +# suitable for operating system 'linux-uclibcgnueabi'. +# It was automatically generated from config.charset. +# Packages using this file: @PACKAGE@ glib gettext-runtime +ISO_646.IRV:1983 ASCII diff --git a/squashfs-root/usr/lib/ckport/db/libao.ckport b/squashfs-root/usr/lib/ckport/db/libao.ckport new file mode 100644 index 0000000..544bc25 --- /dev/null +++ b/squashfs-root/usr/lib/ckport/db/libao.ckport @@ -0,0 +1,33 @@ +#ckport(1) database for libao -- A Cross-platform Audio Library: +!NAME: libao +!TYPE: func +!TARGET: libao4 + +# Startup and shutdown: +ao_initialize ok +ao_shutdown ok + +# Drivers: +ao_driver_id ok +ao_default_driver_id ok +ao_driver_info ok +ao_driver_info_list ok +ao_file_extension ok + +# Options: +ao_append_global_option ok +ao_append_option ok +ao_free_options ok + +# Opening and closing: +ao_open_file ok +ao_open_live ok +ao_close ok + +# Playback: +ao_play ok + +# Misc: +ao_is_big_endian ok + +#ll diff --git a/squashfs-root/usr/lib/dri/swrast_dri.so b/squashfs-root/usr/lib/dri/swrast_dri.so new file mode 100755 index 0000000..6b0285b Binary files /dev/null and b/squashfs-root/usr/lib/dri/swrast_dri.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_aarch64-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_aarch64-0.169.so new file mode 100755 index 0000000..2d984c0 Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_aarch64-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_aarch64.so b/squashfs-root/usr/lib/elfutils/libebl_aarch64.so new file mode 120000 index 0000000..b2a94c2 --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_aarch64.so @@ -0,0 +1 @@ +libebl_aarch64-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_alpha-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_alpha-0.169.so new file mode 100755 index 0000000..b8ca749 Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_alpha-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_alpha.so b/squashfs-root/usr/lib/elfutils/libebl_alpha.so new file mode 120000 index 0000000..d504f8b --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_alpha.so @@ -0,0 +1 @@ +libebl_alpha-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_arm-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_arm-0.169.so new file mode 100755 index 0000000..7389d87 Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_arm-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_arm.so b/squashfs-root/usr/lib/elfutils/libebl_arm.so new file mode 120000 index 0000000..798dc78 --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_arm.so @@ -0,0 +1 @@ +libebl_arm-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_bpf-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_bpf-0.169.so new file mode 100755 index 0000000..4c7173d Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_bpf-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_bpf.so b/squashfs-root/usr/lib/elfutils/libebl_bpf.so new file mode 120000 index 0000000..dcbff21 --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_bpf.so @@ -0,0 +1 @@ +libebl_bpf-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_i386-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_i386-0.169.so new file mode 100755 index 0000000..8fbf92b Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_i386-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_i386.so b/squashfs-root/usr/lib/elfutils/libebl_i386.so new file mode 120000 index 0000000..e608aeb --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_i386.so @@ -0,0 +1 @@ +libebl_i386-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_ia64-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_ia64-0.169.so new file mode 100755 index 0000000..26e19d8 Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_ia64-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_ia64.so b/squashfs-root/usr/lib/elfutils/libebl_ia64.so new file mode 120000 index 0000000..367a904 --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_ia64.so @@ -0,0 +1 @@ +libebl_ia64-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_m68k-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_m68k-0.169.so new file mode 100755 index 0000000..a4331ca Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_m68k-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_m68k.so b/squashfs-root/usr/lib/elfutils/libebl_m68k.so new file mode 120000 index 0000000..713069e --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_m68k.so @@ -0,0 +1 @@ +libebl_m68k-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_ppc-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_ppc-0.169.so new file mode 100755 index 0000000..b388f12 Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_ppc-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_ppc.so b/squashfs-root/usr/lib/elfutils/libebl_ppc.so new file mode 120000 index 0000000..a7514fe --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_ppc.so @@ -0,0 +1 @@ +libebl_ppc-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_ppc64-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_ppc64-0.169.so new file mode 100755 index 0000000..cf42217 Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_ppc64-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_ppc64.so b/squashfs-root/usr/lib/elfutils/libebl_ppc64.so new file mode 120000 index 0000000..10657f4 --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_ppc64.so @@ -0,0 +1 @@ +libebl_ppc64-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_s390-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_s390-0.169.so new file mode 100755 index 0000000..ce8a029 Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_s390-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_s390.so b/squashfs-root/usr/lib/elfutils/libebl_s390.so new file mode 120000 index 0000000..b693ae1 --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_s390.so @@ -0,0 +1 @@ +libebl_s390-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_sh-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_sh-0.169.so new file mode 100755 index 0000000..4432c70 Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_sh-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_sh.so b/squashfs-root/usr/lib/elfutils/libebl_sh.so new file mode 120000 index 0000000..1fbb7f8 --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_sh.so @@ -0,0 +1 @@ +libebl_sh-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_sparc-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_sparc-0.169.so new file mode 100755 index 0000000..8236eee Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_sparc-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_sparc.so b/squashfs-root/usr/lib/elfutils/libebl_sparc.so new file mode 120000 index 0000000..32175f9 --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_sparc.so @@ -0,0 +1 @@ +libebl_sparc-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_tilegx-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_tilegx-0.169.so new file mode 100755 index 0000000..c4f26b5 Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_tilegx-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_tilegx.so b/squashfs-root/usr/lib/elfutils/libebl_tilegx.so new file mode 120000 index 0000000..5e10b0e --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_tilegx.so @@ -0,0 +1 @@ +libebl_tilegx-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/elfutils/libebl_x86_64-0.169.so b/squashfs-root/usr/lib/elfutils/libebl_x86_64-0.169.so new file mode 100755 index 0000000..fb05b02 Binary files /dev/null and b/squashfs-root/usr/lib/elfutils/libebl_x86_64-0.169.so differ diff --git a/squashfs-root/usr/lib/elfutils/libebl_x86_64.so b/squashfs-root/usr/lib/elfutils/libebl_x86_64.so new file mode 120000 index 0000000..d4a47f5 --- /dev/null +++ b/squashfs-root/usr/lib/elfutils/libebl_x86_64.so @@ -0,0 +1 @@ +libebl_x86_64-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/giomm-2.4/include/giommconfig.h b/squashfs-root/usr/lib/giomm-2.4/include/giommconfig.h new file mode 100644 index 0000000..c8e9039 --- /dev/null +++ b/squashfs-root/usr/lib/giomm-2.4/include/giommconfig.h @@ -0,0 +1,41 @@ +/* gio/giommconfig.h. Generated from giommconfig.h.in by configure. */ +#ifndef _GIOMM_CONFIG_H +#define _GIOMM_CONFIG_H + +#include + +/* Define to omit deprecated API from the library. */ +/* #undef GIOMM_DISABLE_DEPRECATED */ + +/* Major version number of giomm. */ +#define GIOMM_MAJOR_VERSION 2 + +/* Micro version number of giomm. */ +#define GIOMM_MICRO_VERSION 1 + +/* Minor version number of giomm. */ +#define GIOMM_MINOR_VERSION 54 + +/* Define if giomm is built as a static library */ +/* #undef GIOMM_STATIC_LIB */ + +// Enable DLL-specific stuff only when not building a static library +#if !defined(__CYGWIN__) && defined(__MINGW32__) && !defined(GIOMM_STATIC_LIB) +# define GIOMM_DLL 1 +#endif + +#ifdef GIOMM_DLL +# if defined(GIOMM_BUILD) && defined(_WINDLL) + /* Do not dllexport as it is handled by gendef on MSVC */ +# define GIOMM_API +# elif !defined(GIOMM_BUILD) +# define GIOMM_API __declspec(dllimport) +# else + /* Build a static library */ +# define GIOMM_API +# endif /* GIOMM_BUILD - _WINDLL */ +#else +# define GIOMM_API +#endif /* GIOMM_DLL */ + +#endif /* _GIOMM_CONFIG_H */ diff --git a/squashfs-root/usr/lib/glibmm-2.4/include/glibmmconfig.h b/squashfs-root/usr/lib/glibmm-2.4/include/glibmmconfig.h new file mode 100644 index 0000000..4d21d69 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/include/glibmmconfig.h @@ -0,0 +1,162 @@ +/* glib/glibmmconfig.h. Generated from glibmmconfig.h.in by configure. */ +#ifndef _GLIBMM_CONFIG_H +#define _GLIBMM_CONFIG_H + +#ifdef _WIN32 + /* Win32 compilers have a lot of varation */ +# if defined(_MSC_VER) +# define GLIBMM_MSC 1 +# define GLIBMM_WIN32 1 +# define GLIBMM_DLL 1 +# elif defined(__CYGWIN__) +# define GLIBMM_CONFIGURE 1 +# elif defined(__MINGW32__) +# define GLIBMM_WIN32 1 +# define GLIBMM_CONFIGURE 1 +# else + /* AIX clR compiler complains about this even though it doesn't get this far */ +# error "Unknown architecture (send me gcc --dumpspecs or equiv)" +# endif +#else +# define GLIBMM_CONFIGURE 1 +#endif /* _WIN32 */ + +#ifdef GLIBMM_CONFIGURE + +/* Define only on Mac OS, COCOA */ +/* #undef GLIBMM_OS_COCOA */ + +/* Define if extern "C" and extern "C++" function pointers are compatible. */ +#define GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS 1 + +/* Define if non-instantiated templates may dynamic_cast<> to an undefined + type. */ +#define GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION 1 + +/* Define if the compiler honors namespaces inside extern "C" blocks. */ +#define GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC 1 + +/* Defined when the SUN Forte C++ compiler is being used. */ +/* #undef GLIBMM_COMPILER_SUN_FORTE */ + +/* Defined when the --enable-debug-refcounting configure argument was given */ +/* #undef GLIBMM_DEBUG_REFCOUNTING */ + +/* This is always set. This is only for backwards compatibility. */ +#define GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED 1 + +/* Define to omit deprecated API from the library. */ +/* #undef GLIBMM_DISABLE_DEPRECATED */ + +/* This is always set. This is only for backwards compatibility. */ +#define GLIBMM_EXCEPTIONS_ENABLED 1 + +/* This is always set. This is only for backwards compatibility. */ +#define GLIBMM_VFUNCS_ENABLED 1 + +/* Defined if a static member variable may be initialized inline to + std::string::npos */ +#define GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS 1 + +/* Defined when time_t is not equivalent to gint32, meaning that it can be + used for a method overload */ +#define GLIBMM_HAVE_C_STD_TIME_T_IS_NOT_INT32 1 + +/* Define if the compiler disambiguates template specializations for const and + non-const types. */ +#define GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS 1 + +/* Defined when the libstdc++ declares the std-namespace */ +#define GLIBMM_HAVE_NAMESPACE_STD 1 + +/* Defined if std::iterator_traits<> is standard-conforming */ +#define GLIBMM_HAVE_STD_ITERATOR_TRAITS 1 + +/* Defined if std::reverse_iterator is in Sun libCstd style */ +/* #undef GLIBMM_HAVE_SUN_REVERSE_ITERATOR */ + +/* Defined if the STL containers have templated sequence ctors */ +#define GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS 1 + +/* Define to 1 if wide stream is available. */ +#define GLIBMM_HAVE_WIDE_STREAM 1 + +/* Major version number of glibmm. */ +#define GLIBMM_MAJOR_VERSION 2 + +/* Define if C++ member functions may refer to member templates. */ +#define GLIBMM_MEMBER_FUNCTIONS_MEMBER_TEMPLATES 1 + +/* Micro version number of glibmm. */ +#define GLIBMM_MICRO_VERSION 1 + +/* Minor version number of glibmm. */ +#define GLIBMM_MINOR_VERSION 54 + +/* This is always set. This is only for backwards compatibility. */ +#define GLIBMM_PROPERTIES_ENABLED 1 + +/* Define if glibmm is built as a static library */ +/* #undef GLIBMM_STATIC_LIB */ + + +#endif /* GLIBMM_CONFIGURE */ + +#ifdef GLIBMM_MSC +# define GLIBMM_HAVE_STD_ITERATOR_TRAITS 1 +# define GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS 1 +# define GLIBMM_HAVE_WIDE_STREAM 1 +# define GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS 1 +# define GLIBMM_HAVE_C_STD_TIME_T_IS_NOT_INT32 1 +# define GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION 1 +# define GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS 1 +# define GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC 1 +# define GLIBMM_PROPERTIES_ENABLED 1 +# define GLIBMM_VFUNCS_ENABLED 1 +# define GLIBMM_EXCEPTIONS_ENABLED 1 +# define GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED 1 +# pragma warning (disable: 4786 4355 4800 4181) + +#if (_MSC_VER < 1900) +/* The C++-11 keywords noexcept and thread_local are supported on + * Visual Studio 2013 via Microsoft-specific extensions, but are + * supported directly in Visual Studio 2015 + */ + +#define _ALLOW_KEYWORD_MACROS 1 + +#ifndef noexcept +#define noexcept _NOEXCEPT +#endif + +#ifndef thread_local +#define thread_local __declspec (thread) +#endif + +#endif /* _MSC_VER < 1900 */ +#endif /* GLIBMM_MSC */ + +/* Dummy macro definition for compatibility with old code that expects + * it to be defined. Remove after grace period. */ +#define GLIBMM_USING_STD(Symbol) + +/* Enable DLL-specific stuff only when not building a static library */ +#if !defined(__CYGWIN__) && defined(__MINGW32__) && !defined(GLIBMM_STATIC_LIB) +# define GLIBMM_DLL 1 +#endif + +#ifdef GLIBMM_DLL +# if defined(GLIBMM_BUILD) && defined(_WINDLL) + /* Do not dllexport as it is handled by gendef on MSVC */ +# define GLIBMM_API +# elif !defined(GLIBMM_BUILD) +# define GLIBMM_API __declspec(dllimport) +# else + /* Build a static library */ +# define GLIBMM_API +# endif /* GLIBMM_BUILD - _WINDLL */ +#else +# define GLIBMM_API +#endif /* GLIBMM_DLL */ + +#endif /* _GLIBMM_CONFIG_H */ diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/generate_wrap_init.pl b/squashfs-root/usr/lib/glibmm-2.4/proc/generate_wrap_init.pl new file mode 100755 index 0000000..e60200b --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/generate_wrap_init.pl @@ -0,0 +1,452 @@ +#! /usr/bin/perl +# +# tools/generate_wrap_init.pl. Generated from generate_wrap_init.pl.in by configure. +# + +use strict; + +my @namespace_whole = (); # list of strings. +my $function_prefix = ""; +my $parent_dir = ""; # e.g. gtkmm +my $debug = 0; +my %objects = (); # Hashmap of arrays of objects (classes) in each file +my %exceptions = (); # Hashmap of arrays of exception classes in each file +my %conditional_compilation = (); +my %deprecated = (); +my %extra_includes = (); + +# Hashmap telling if the registration of the classes in a file should not be +# included in the wrap_init() function. (This is useful for modules such as +# gstreamermm that want to exclude plug-in types from being registered in their +# wrap_init() function.) +my %exclude_from_wrap_init = (); + +# The keys in all hashes except %extra_includes are names of header files (xyz.h), +# corresponding to the read .hg files. +# +# The keys in %extra_includes are names of header files to include without reading. +# %extra_includes is a hash rather than a list because we don't want duplicates. +# Its values are not used. In C++ it would have been a std::set. + +# $objects{$filename_header} is a reference to an array. That array contains +# references to arrays with two or more elements, ($cppname, $basename, @extra_namespace), +# one reference per object defined in file $filename_header. +# %exceptions has the same structure as %objects. + +sub print_with_guards +{ + my $file = $_[0]; + my $message = $_[1]; + if ($deprecated{$file}) + { + # The uc(parent_dir) is a bit of a hack. One day it will get it wrong. + print "#ifndef " . uc($parent_dir) ."_DISABLE_DEPRECATED\n" + } + + if ($conditional_compilation{$file}) + { + print "#$conditional_compilation{$file}\n" + } + + print "$message"; + + if ($conditional_compilation{$file}) + { + print "#endif // $conditional_compilation{$file}\n" + } + + if ($deprecated{$file}) + { + print "#endif // *_DISABLE_DEPRECATED\n" + } +} + +# Loop through command line flags, setting variables: +while ($ARGV[0] =~ /^-/) +{ + if ($ARGV[0] =~ /--namespace=(\S+)/) + { + push(@namespace_whole, split('::', $1)); + + if($parent_dir eq "") + { $parent_dir = lc($1) . "mm"; } + } + elsif ($ARGV[0] =~ /--function_prefix=(\S+)/) + { + $function_prefix = "$1"; + } + elsif ($ARGV[0] =~ /--parent_dir=(\S+)/) + { + $parent_dir = "$1"; + } + elsif ($ARGV[0] =~ /--debug/) + { + $debug = 1; + } + elsif ($ARGV[0] =~ /--path=(\S+)/) + { + # Do nothing. Just for backwards compatibility. + } + else + { + print "Error: unknown option $ARGV[0]\n"; + exit; + } + + shift @ARGV; +} + +# Loop through remaining command line arguments, names of .hg files. +while ($ARGV[0]) +{ + if ($debug) {warn "Processing file : $ARGV[0]\n";} + + my $filename = $ARGV[0]; + open FILE, $filename or die "Couldn't open file $filename : $!\n"; + + # Store header filename, so we can #include it later: + my $filename_header = $filename; + $filename_header =~ s#.*/([^/]+)\.hg#$1.h#; + $conditional_compilation{$filename_header} = ""; + $deprecated{$filename_header} = 0; + + # Keep track of sub-namespaces, if any. + # Otherwise we can't tell the difference between Gio::Error and Gio::DBus::Error. + my @extra_namespace = (); + + while () + { + # Skip comments. + # This is far from foolproof. It only skips one-line comments, and it does + # not try to skip quoted strings. + s#//.*##; + s#/\*.*?\*/##g; + + # This is useful when only some classes use a sub-namespace. + # Alternatively, we could parse the namespace start and end parentheses, + # but this hack is easier. + if (/\b_GMMPROC_EXTRA_NAMESPACE\((\w+)\)/) + { + # debug: print "generate_wrap_init: namespace found: $1\n"; + push(@extra_namespace, $1); + } + elsif (/\b(_CLASS_GOBJECT|_CLASS_GTKOBJECT|_WRAP_GERROR)\s*\(/) + { + my $type_of_class = $1; + my $line = $_; + while ($line !~ /\)/ && ($_ = )) + { + $line .= $_; + } + if (!$_) + { + die "Reached end of file $filename in $type_of_class macro. " . + "(No right parenthesis.)\n"; + } + + $line =~ s/^.*$type_of_class\s*\(//; + $line =~ s/\s+//g; + $line =~ s/\).*//; + my ($cppname, $cname, $ccast) = split(/,/, $line); + my $basename = lc($ccast); + my @names = ($cppname, $basename, @extra_namespace); + + if ($type_of_class eq "_CLASS_GOBJECT" or + ($type_of_class eq "_CLASS_GTKOBJECT" and + #TODO: Remove this hack eventually. + ($cname ne "GtkTree" && $cname ne "GtkTreeItem" && $cname ne "GtkText"))) + { + push(@{$objects{$filename_header}}, \@names); + } + elsif ($type_of_class eq "_WRAP_GERROR") + { + push(@{$exceptions{$filename_header}}, \@names); + } + } + elsif (/\b_INCLUDE_IN_WRAP_INIT\((.+)\)/) + { + $extra_includes{$1} = 1; + } + elsif (/\b_GTKMMPROC_WIN32_NO_WRAP\b/) + { + # This file will not be compiled on Win32. + # No extra include is required. If G_OS_WIN32 is defined, it's defined in + # a file included indirectly by glibmm.h. + $conditional_compilation{$filename_header} = "ifndef G_OS_WIN32"; + } + elsif (/\b_GMMPROC_WRAP_CONDITIONALLY\((.+)\)/) + { + # The compilation of this file will be controlled by a preprocessor directive. + + # Allow m4 quotes in the parameter. There may be cases where the m4 processor + # would misunderstand a parameter without quotes. + my $par = $1; + $par =~ s/^\s*`*\s*//; # Remove m4 quotes and leading and trailing white space. + $par =~ s/\s*'*\s*$//; + $conditional_compilation{$filename_header} = $par; + } + elsif (/\b_IS_DEPRECATED\b/) + { + $deprecated{$filename_header} = 1; # This file is deprecated + } + elsif (/\b_NO_WRAP_INIT_REGISTRATION\b/) + { + $exclude_from_wrap_init{$filename_header} = 1; + } + } + + shift @ARGV; + close(FILE); +} + + +# Print the wrap_init.cc file. + +print << "EOF"; +// Generated by generate_wrap_init.pl -- DO NOT MODIFY! + +#define GLIBMM_INCLUDED_FROM_WRAP_INIT_CC +#include + +// Disable the 'const' function attribute of the get_type() functions. +// GCC would optimize them out because we don't use the return value. +#undef G_GNUC_CONST +#define G_GNUC_CONST /* empty */ + +#include <${parent_dir}/wrap_init.h> +#include +#include +EOF + +foreach my $filename_header (sort keys %extra_includes) +{ + print "#include <$filename_header>\n"; +} + +print "\n// #include the widget headers so that we can call the get_type() static methods:\n"; + +# keys %deprecated contains all filenames, not just the names of deprecated files. +foreach my $filename_header (sort keys %deprecated) +{ + next if($exclude_from_wrap_init{$filename_header}); + print_with_guards($filename_header, "#include \"$filename_header\"\n"); +} + +# Declarations of glib functions. + +print "\nextern \"C\"\n"; +print "{\n"; +print "//Declarations of the *_get_type() functions:\n\n"; + +foreach my $filename_header (sort keys %objects) +{ + next if($exclude_from_wrap_init{$filename_header}); + + my @objects_in_file = @{$objects{$filename_header}}; + my $message = ""; + foreach my $i (@objects_in_file) + { + # $i is a reference to an array with info on one object, declared in file $filename_header. + my $basename = ${$i}[1]; + $message .= "GType ${basename}_get_type(void);\n"; + } + print_with_guards($filename_header, $message); +} + +print "\n//Declarations of the *_error_quark() functions:\n\n"; + +foreach my $filename_header (sort keys %exceptions) +{ + my @exceptions_in_file = @{$exceptions{$filename_header}}; + my $message = ""; + foreach my $i (@exceptions_in_file) + { + # $i is a reference to an array with info on one exception, declared in file $filename_header. + my $basename = ${$i}[1]; + $message .= "GQuark ${basename}_quark(void);\n"; + } + print_with_guards($filename_header, $message); +} + +print "} // extern \"C\"\n"; +print "\n"; + +my $namespace_whole_declarations = ""; +my $namespace_whole_close = ""; +foreach (@namespace_whole) +{ + $namespace_whole_declarations .= "namespace $_ {\n"; + $namespace_whole_close = "} // $_\n$namespace_whole_close"; +} + +print "$namespace_whole_declarations"; + +print "\n//Declarations of the *_Class::wrap_new() methods, instead of including all the private headers:\n\n"; + +foreach my $filename_header (sort keys %objects) +{ + next if($exclude_from_wrap_init{$filename_header}); + + my @objects_in_file = @{$objects{$filename_header}}; + my $message = ""; + foreach my $i (@objects_in_file) + { + my ($cppname, undef, @extra_namespace) = @{$i}; + + my $namespace_declarations = ""; + my $namespace_close = ""; + foreach (@extra_namespace) + { + $namespace_declarations .= "namespace $_ { "; + $namespace_close .= " }"; + } + + $message .= "${namespace_declarations}class ${cppname}_Class " . + "{ public: static Glib::ObjectBase* wrap_new(GObject*); };$namespace_close\n"; + } + print_with_guards($filename_header, $message); +} + +# wrap_init() calls throw_func() in each exception class. throw_func() is a +# private method. wrap_init() is declared as a friend of the exception class. +# The friends will find each other easily only if the calling wrap_init() +# function is declared in the same namespace as the exception class. +# If there are extra namespaces, we define extra wrap_init() functions, which +# are called from the wrap_init() function in @namespace_whole. + +my %extra_namespaces = (); +foreach my $filename_header (keys %exceptions) +{ + my @exceptions_in_file = @{$exceptions{$filename_header}}; + foreach my $i (@exceptions_in_file) + { + if (@{$i} > 2) + { + my (undef, undef, @extra_namespace) = @{$i}; + $extra_namespaces{join("::", @extra_namespace)} = 1; + } + } +} + +# Generate the extra wrap_init() functions in sub-namespaces, if any. + +# If you suspect that code with three levels of foreach is inefficient, you are +# probably right, but it's not important here. The exception classes are few in +# most modules (hardly more than about 10), and the sub-namespaces are even +# fewer (usually 0 or 1). + +print "\n// Register Error domains in sub-namespaces:\n" if keys %extra_namespaces > 0; + +foreach my $sub_namespace (sort keys %extra_namespaces) +{ + my @extra_namespace = split("::", $sub_namespace); + my $namespace_declarations = ""; + my $namespace_close = ""; + foreach (@extra_namespace) + { + $namespace_declarations .= "namespace $_ {\n"; + $namespace_close = "} // $_\n$namespace_close"; + } + + print "\n$namespace_declarations"; + print "\nvoid wrap_init()\n{\n"; + + foreach my $filename_header (sort keys %exceptions) + { + my @exceptions_in_file = @{$exceptions{$filename_header}}; + my $message = ""; + foreach my $i (@exceptions_in_file) + { + my ($cppname, $basename, @extra_namespace) = @{$i}; + if (@extra_namespace > 0 && $sub_namespace eq join("::", @extra_namespace)) + { + $message .= " Glib::Error::register_domain(${basename}_quark(), &" . + "${sub_namespace}::${cppname}::throw_func);\n"; + } + } + print_with_guards($filename_header, $message) if $message; + } + + print "\n} // wrap_init()\n"; + print "\n$namespace_close"; +} + +# Generate namespace::wrap_init() body + +print "\nvoid ${function_prefix}wrap_init()\n{\n"; + +print " // Register Error domains in the main namespace:\n"; + +foreach my $filename_header (sort keys %exceptions) +{ + my @exceptions_in_file = @{$exceptions{$filename_header}}; + my $message = ""; + foreach my $i (@exceptions_in_file) + { + my ($cppname, $basename, @extra_namespace) = @{$i}; + if (@extra_namespace == 0) + { + $message .= " Glib::Error::register_domain(${basename}_quark(), &" . + "${cppname}::throw_func);\n"; + } + } + print_with_guards($filename_header, $message) if $message; +} + +# Exception classes in sub-namespaces are registered after the ones in the main +# namespace. If you ever change this order, check that it's ok with Glib::ThreadError +# and Glib::Threads::ThreadError. Both these classes wrap GThreadError, and +# Glib::ThreadError is deprecated (2012-02-27). + +print "\n // Call the wrap_init() functions in sub-namespaces:\n" if keys %extra_namespaces > 0; + +foreach my $sub_namespace (sort keys %extra_namespaces) +{ + print " ${sub_namespace}::wrap_init();\n"; +} + +print "\n"; +print " // Map gtypes to gtkmm wrapper-creation functions:\n"; + +foreach my $filename_header (sort keys %objects) +{ + next if($exclude_from_wrap_init{$filename_header}); + + my @objects_in_file = @{$objects{$filename_header}}; + my $message = ""; + foreach my $i (@objects_in_file) + { + my ($cppname, $basename, @extra_namespace) = @{$i}; + my $qualified_cppname = join("::", (@extra_namespace, $cppname)); + $message .= " Glib::wrap_register(${basename}_get_type(), &" . + "${qualified_cppname}_Class::wrap_new);\n"; + } + print_with_guards($filename_header, $message); +} + +print "\n"; +print " // Register the gtkmm gtypes:\n"; + +foreach my $filename_header (sort keys %objects) +{ + next if($exclude_from_wrap_init{$filename_header}); + + my @objects_in_file = @{$objects{$filename_header}}; + my $message = ""; + foreach my $i (@objects_in_file) + { + my ($cppname, $basename, @extra_namespace) = @{$i}; + my $qualified_cppname = join("::", (@extra_namespace, $cppname)); + $message .= " ${qualified_cppname}::get_type();\n" + } + print_with_guards($filename_header, $message); +} + +print << "EOF"; + +} // wrap_init() + +$namespace_whole_close +EOF + +exit 0; diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/gmmproc b/squashfs-root/usr/lib/glibmm-2.4/proc/gmmproc new file mode 100755 index 0000000..5cdd909 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/gmmproc @@ -0,0 +1,239 @@ +#! /usr/bin/perl +# +# tools/gmmproc. Generated from gmmproc.in by configure. +# +###################################################################### +# gmmproc (version 4) +###################################################################### +# +# *** WARNING: Only modify gmmproc.in. gmmproc is built. *** +# +# Copyright 2001, Karl Einar Nelson, Murray Cumming +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# +# 'classes': +# WrapParser: steps through .hg and .ccg files, outputting appropriate m4 code with Outputter. +# Outputter: Used by WrapParser to output wrapper code. Outputs *.g1 temp file +# and uses m4 to generate *.g2 from it. Then outputs .h and .cc files. +# Function: Contains information about C and C++ functions and signals. +# +###################################################################### + +########################## 'main()' ################################## + +$main::procdir; +$main::m4path; +$main::glibmm_version; + +BEGIN { + # get prefix info from configure + my $prefix = "/usr"; + my $exec_prefix = "/usr"; + my $libdir = "${exec_prefix}/lib"; + + # This line must match the install directory + $main::procdir = $libdir . '/glibmm-2.4/proc'; + $main::m4path = "m4"; + $main::glibmm_version = "2.54.1"; + + push(@INC, $main::procdir . '/pm'); +} + +use strict; +use warnings; + +use Output; +use WrapParser; + +# initialize globals +@main::macrodirs = (); +$main::srcdir = '.'; +$main::defsdir = '.'; +$main::source = ''; +$main::unwrapped = 1; +$main::return_mismatches = (exists $ENV{'GMMPROC_RETURN_MISMATCHES'}) ? $ENV{'GMMPROC_RETURN_MISMATCHES'} : 0; +$main::debug = (exists $ENV{'GMMPROC_DEBUG'}) ? $ENV{'GMMPROC_DEBUG'} : ''; + +# prototypes +sub parse_command_line_args(); + +#main() +parse_command_line_args(); + +my $objOutputter = &Output::new($main::m4path, \@main::macrodirs); +my $objWrapParser = &WrapParser::new($objOutputter); + +$$objWrapParser{srcdir} = $main::srcdir; +$$objWrapParser{defsdir} = $main::defsdir; +$$objWrapParser{source} = $main::source; +$$objOutputter{source} = $main::source; +$$objOutputter{destdir} = $ARGV[1]; + +# Merge the C docs, e.g. gtk_docs.xml + +# Suck the whole file into one big string, breaking it into tokens: +$objWrapParser->read_file($main::srcdir, $main::source); + +# Parse output +$objWrapParser->parse_and_build_output(); + +# Write out *.g1 temporary file: +$objOutputter->output_temp_g1($$objWrapParser{module}, $main::glibmm_version); # e.g. gtkmm, 2.38.0 + +# Execute m4 to get *.g2 file: +{ + my $exitcode = $objOutputter->make_g2_from_g1(); + if ($exitcode) + { + $objOutputter->remove_temp_files() unless ($main::debug); + + print STDERR "m4 failed with exit code $exitcode. Aborting...\n"; + exit($exitcode); + } +} + +# Section out the resulting output +$objOutputter->write_sections_to_files(); +$objOutputter->remove_temp_files() unless ($main::debug); + +#Warn about any unwrapped function/signals: +if ($main::unwrapped) +{ + my @unwrapped = GtkDefs::get_unwrapped(); + @unwrapped = grep { exists $$_{entity_type} } @unwrapped; + + if (@unwrapped) + { + my @methods = grep { $$_{entity_type} eq 'method' and $$_{c_name} !~ m/^_/s } @unwrapped; + my @signals = grep { $$_{entity_type} eq 'signal' } @unwrapped; + # Don't take non-readable construct-only properties into account. + my @properties = grep { $$_{entity_type} eq 'property' and ( $$_{readable} or not $$_{construct_only} ) } @unwrapped; + + # Don't print a name of any kind between the first and second colon on a line, + # if there is any chance that "error" is (part of) the name. + # MS Visual Studio will misunderstand. + # See https://mail.gnome.org/archives/gtkmm-list/2014-November/msg00044.html + + local $, = "\ngmmproc: "; + local $\ = "\n"; + + if (@methods) + { + print STDERR ("gmmproc, $main::source: Unwrapped functions:", + map($$_{c_name}, @methods)); + } + if (@properties) + { + print STDERR ("gmmproc, $main::source: Unwrapped properties:", + map($$_{class} . '::' . $$_{name}, @properties)); + } + if (@signals) + { + print STDERR ("gmmproc, $main::source: Unwrapped signals:", + map($$_{class} . '::' . $$_{name}, @signals)); + } + } +} + +# end of program +exit; + + +#################################################################### + + +sub print_usage() +{ + print +'Usage: gmmproc [options] name srcdir destdir + -h + --help This usage message. + + --doc Produces a header file for documentation. (FIXME) + + --debug Leave intermediate output arround for analysis. + Alternatively, set GMMPROC_DEBUG=1 in the environment. + + --unwrapped Warn about possible unwrapped functions. + + --return-mismatches Warn about possible method return mismatches. + + --defs dir Change the directory to seach for defs. + + -I dir Specify the directory with m4 files. + + +Note: This will read srcdir/name.{hg,ccg} file and generates destdir/name.cc +'; + exit(1); +} + +# void parse_command_line_args() +sub parse_command_line_args() +{ + print_usage() if ($#ARGV == -1); + + while ($#ARGV != -1) + { + $_ = shift @ARGV; + + if (/^-/) + { + print_usage() if ( /^--help/); + print_usage() if ( /^-h/); + if (/^-I/) + { + push @main::macrodirs, shift @ARGV; + } + elsif (/^--unwrapped/) + { + $main::unwrapped = 1; + } + elsif (/^--return-mismatches/) + { + $main::return_mismatches = 1; + } + elsif (/^--defs/) + { + $main::defsdir = shift @ARGV; + } + elsif (/^--debug/) + { + $main::debug = 1; + } + else + { + print "unknown parameter $_\n"; + } + next; + } + + last; + } + + # we already have one argument + + if ($#ARGV != 1) + { + print STDERR ('Invalid number of arguments (', $#ARGV + 2, ")\n"); + print_usage(); + } + + $main::srcdir = $ARGV[0]; + $main::source = $_; + + push @main::macrodirs, $main::procdir . '/m4'; +} diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/base.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/base.m4 new file mode 100644 index 0000000..4535475 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/base.m4 @@ -0,0 +1,478 @@ +dnl $Id$ +divert(-1) + +dnl +dnl The general convention is +dnl _* are macros +dnl __*__ are variables + +dnl +dnl rename several m4 builtins to avoid name clashes +dnl + +define(`_PREFIX_BUILTIN_ALIAS', `define(`m4_$1', defn(`$1'))') +define(`_PREFIX_BUILTIN', `_PREFIX_BUILTIN_ALIAS(`$1')`'undefine(`$1')') + +_PREFIX_BUILTIN(`builtin') +_PREFIX_BUILTIN(`decr') +_PREFIX_BUILTIN(`errprint') +_PREFIX_BUILTIN(`esyscmd') +_PREFIX_BUILTIN(`eval') +_PREFIX_BUILTIN(`format') +_PREFIX_BUILTIN(`incr') +_PREFIX_BUILTIN(`index') +_PREFIX_BUILTIN(`indir') +_PREFIX_BUILTIN(`len') +_PREFIX_BUILTIN(`maketemp') +_PREFIX_BUILTIN(`syscmd') +_PREFIX_BUILTIN(`substr') +_PREFIX_BUILTIN(`sysval') +_PREFIX_BUILTIN(`mkstemp') + +dnl +dnl More alternative names for m4 macros, not undefined (yet!). +dnl + +_PREFIX_BUILTIN_ALIAS(`changecom') +_PREFIX_BUILTIN_ALIAS(`changequote') +_PREFIX_BUILTIN_ALIAS(`define') +_PREFIX_BUILTIN_ALIAS(`divert') +_PREFIX_BUILTIN_ALIAS(`divnum') +_PREFIX_BUILTIN_ALIAS(`ifdef') +_PREFIX_BUILTIN_ALIAS(`ifelse') +_PREFIX_BUILTIN_ALIAS(`include') +_PREFIX_BUILTIN_ALIAS(`m4exit') +_PREFIX_BUILTIN_ALIAS(`m4wrap') +_PREFIX_BUILTIN_ALIAS(`patsubst') +_PREFIX_BUILTIN_ALIAS(`popdef') +_PREFIX_BUILTIN_ALIAS(`pushdef') +_PREFIX_BUILTIN_ALIAS(`shift') +_PREFIX_BUILTIN_ALIAS(`undefine') +_PREFIX_BUILTIN_ALIAS(`undivert') +_PREFIX_BUILTIN_ALIAS(`regexp') +_PREFIX_BUILTIN_ALIAS(`translit') + +dnl +dnl Type Conversion Macros +dnl + +m4_include(convert.m4) + +dnl +dnl Initialization macros +dnl + +m4_include(initialize.m4) + +dnl +dnl ----------------------- Utility Macros ------------------------- +dnl + +dnl +dnl Add a comma before the arg if any, do nothing otherwise +dnl _COMMA_PREFIX(a) -> ,a +dnl _COMMA_PREFIX() -> `' +dnl +define(`_COMMA_PREFIX', `m4_ifelse(m4_eval(m4_len(`$*') >= 1), 1, `,$*')')dnl + +dnl +dnl Add a comma after the arg if any, do nothing otherwise +dnl _COMMA_SUFFIX(a) -> a, +dnl _COMMA_SUFFIX() -> `' +dnl +define(`_COMMA_SUFFIX', `m4_ifelse(m4_eval(m4_len(`$*') >= 1), 1, `$*,')')dnl + + +dnl +dnl _UPPER(string) +dnl uppercase a string +define(`_UPPER',`m4_translit(`$*',`abcdefghijklmnopqrstuvwxyz',`ABCDEFGHIJKLMNOPQRSTUVWXYZ')') + +dnl +dnl _LOWER(string) +dnl lower a string +define(`_LOWER',`m4_translit(`$*',`ABCDEFGHIJKLMNOPQRSTUVWXYZ',`abcdefghijklmnopqrstuvwxyz')') + +dnl +dnl _QUOTE(macro) +dnl If a macro generates an output with commas we need to protect it +dnl from being broken down and interpreted +define(`_QUOTE',``$*'') + +dnl +dnl _NUM(arglist) +dnl count number of arguments +define(`_NUM',`m4_ifelse(m4_len(`$*'),0,0,`$#')') + +dnl +dnl For handling of included macro files. +dnl + +dnl _PUSH(section_name) +dnl Uses pushdef() to redefine the __DIV__ macro +dnl so that it diverts output to the section_name, +dnl or discards it (-1) if no section_name is given. +dnl _POP() uses __DIV__ for choosing diversion number. +define(`_PUSH',`pushdef(`__DIV__',divnum)m4_divert(m4_ifelse($1,,-1,__SEC_$1))dnl`'') + +dnl _POP(section_name) +dnl Uses popdef() to go back to the previous definition of the __DIV__ macro. +define(`_POP',`m4_divert(__DIV__)popdef(`__DIV__')dnl`'') + +dnl _SECTION(section_name): +dnl m4_divert() sends subsequent output to the specified file: +define(`_SECTION',`m4_divert(__SEC_$1)dnl') + +dnl _IMPORT(section_name): +define(`_IMPORT',`m4_undivert(__SEC_$1)dnl') + +dnl _GET_TYPE_FUNC(GtkWidget) -> gtk_widget_get_type() +dnl The way the macro works is that (in the inner patsubst) it first finds +dnl groups of caps, pre-pending an '_' to the groups . After (in the outer +dnl patsubst), it finds pairs of a caps and a lowercase (like 'Fo' or 'Ba'), +dnl also pre-pending an '_' to the pairs. Finally, it converts all characters +dnl to lowercase (with the translit), removing the first '_' (with substr) and +dnl appending _get_type(). This works with regular types like GtkWidget, but +dnl also multi-cap types like GdkGCFooBar or GdkFOOBar. +define(`_GET_TYPE_FUNC',`dnl +m4_translit(m4_substr(m4_patsubst(m4_patsubst(`$1',`[A-Z][A-Z]+',`_\&'),`[A-Z][a-z]',`_\&'),1),`[A-Z]',`[a-z]')_get_type()`'dnl +') + +dnl Define a new diversion +dnl In m4, m4_divert() selects the output file to be used for subsequent text output. +dnl 0 is the normal output. We define extra output files with _NEW_SECTION(). +dnl This macro seems to redefine __SEC_COUNT as __SEC_COUNT+1, and also +dnl define __SEC_ as __SEC_COUNT. +dnl So it just sets that section identifier to the next number. + +define(`__SEC_COUNT__',0) + +define(`_NEW_SECTION',`dnl +define(`__SEC_COUNT__',m4_eval(__SEC_COUNT__+1))dnl +define(`__SEC_$1',__SEC_COUNT__)dnl +') + + +changequote([,]) +define([__BT__],[changequote(,)`changequote(`,')]) +define([__FT__],[changequote(,)'changequote(`,')]) +changequote(`,') + +changecom() + +dnl +dnl ----------------------- Main Headers ------------------------- +dnl + +_NEW_SECTION(SECTION_HEADER_FIRST)dnl Before any generated code +_NEW_SECTION(SECTION_HEADER1) dnl header up to the first namespace +_NEW_SECTION(SECTION_HEADER2) dnl header after the first namespace +_NEW_SECTION(SECTION_HEADER3) dnl header after the first namespace +_NEW_SECTION(SECTION_PHEADER) dnl private header +_NEW_SECTION(SECTION_CC_PRE_INCLUDES) dnl section just before the includes +_NEW_SECTION(SECTION_CC_INCLUDES) dnl section for additional includes +_NEW_SECTION(SECTION_SRC_CUSTOM) dnl user supplied implementation +_NEW_SECTION(SECTION_ANONYMOUS_NAMESPACE) dnl built implementation in anonymous namespace +_NEW_SECTION(SECTION_SRC_GENERATED) dnl built implementation +_NEW_SECTION(SECTION_CLASS1) dnl decl to _CLASS +_NEW_SECTION(SECTION_CLASS2) dnl _CLASS to end of class +_NEW_SECTION(SECTION_CC) dnl section for methods (in current namespace) + +_NEW_SECTION(SECTION_CC_IMPLEMENTS_INTERFACES) dnl Calls SomeBaseInterface::add_interface(get_type()). +_NEW_SECTION(SECTION_CC_MOVE_CONSTRUCTOR_INTERFACES) dnl Calls the base constructors +_NEW_SECTION(SECTION_CC_MOVE_ASSIGNMENT_OPERATOR_INTERFACES) dnl Calls the base move assignment operator + +dnl Virtual Functions and Default Signal Handlers (Very similar) +_NEW_SECTION(SECTION_H_VFUNCS) dnl Declaration of vfunc hooks. +_NEW_SECTION(SECTION_H_VFUNCS_CPPWRAPPER) dnl Convenience method, using C++ types, that just calls the vfunc. +_NEW_SECTION(SECTION_H_DEFAULT_SIGNAL_HANDLERS) dnl Declaration of default signal handler' hooks. + +_NEW_SECTION(SECTION_CC_DEFAULT_SIGNAL_HANDLERS) +_NEW_SECTION(SECTION_CC_VFUNCS) +_NEW_SECTION(SECTION_CC_VFUNCS_CPPWRAPPER) dnl Convenience method, using C++ types, that just calls the vfunc. + +_NEW_SECTION(SECTION_PH_DEFAULT_SIGNAL_HANDLERS) dnl private class declaration +_NEW_SECTION(SECTION_PH_VFUNCS) dnl private class declaration + +_NEW_SECTION(SECTION_PCC_DEFAULT_SIGNAL_HANDLERS) dnl private class implementation +_NEW_SECTION(SECTION_PCC_VFUNCS) dnl private class implementation + +_NEW_SECTION(SECTION_PCC_CLASS_INIT_DEFAULT_SIGNAL_HANDLERS) dnl gtk+ class_init function +_NEW_SECTION(SECTION_PCC_CLASS_INIT_VFUNCS) dnl gtk+ class_init function + + +dnl Signal Proxies: +dnl _NEW_SECTION(SECTION_H_SIGNALPROXIES) dnl signal member objects +_NEW_SECTION(SECTION_CC_SIGNALPROXIES) dnl signal member objects + +dnl Property Proxies: +dnl _NEW_SECTION(SECTION_H_PROPERTYPROXIES) +_NEW_SECTION(SECTION_CC_PROPERTYPROXIES) + +dnl Just a hack for some GError wrappers: +_NEW_SECTION(SECTION_H_GERROR_PRIVATE) dnl In the private part of the declaration. + +_NEW_SECTION(SECTION_CC_INITIALIZE_CLASS_EXTRA) dnl For instance, to initialize special member data from all constructors. Not commonly used. + +dnl _NEW_SECTION(PROXY) +dnl _NEW_SECTION(SECTION_PCC_OBJECT_INIT) dnl gtk+ object_init function + + +_NEW_SECTION(SECTION_CHECK) +_NEW_SECTION(SECTION_USR) + +dnl Used for documenting destructors if desired. +_NEW_SECTION(SECTION_DTOR_DOCUMENTATION) + +define(`_CHECK',`dnl +_PUSH(SECTION_CHECK) + $* +_POP() +') + +dnl This macro is for including the config header before any code (such as +dnl the #ifndef *_DISABLE_DEPRECATED in deprecated classes) is generated. +define(`_CONFIGINCLUDE',`dnl +_PUSH(SECTION_HEADER_FIRST) +#include <$1> +_POP() +_PUSH() +dnl Define this macro to be tested for later. +define(`__FILENAME_CONFIGINCLUDE__',`$1') +_POP() +') + +dnl Start of processing +dnl +dnl _START(filename,module,module_canonical,glibmm_version) .e.g _START(button, gtkmm, gtkmm, 2.38.0) +define(`_START',`dnl +define(`__MODULE__',$2)dnl +define(`__MODULE_CANONICAL__',$3)dnl +define(`__HEADER_GUARD__',`_`'_UPPER(m4_translit(`$3`'_`'$1', `-', `_'))')dnl +define(`__FILE__',$1)dnl +define(`__DEPRECATION_GUARD__',`_UPPER($3)'`_DISABLE_DEPRECATED')dnl +define(`__GLIBMM_VERSION__',$4)dnl +_SECTION(SECTION_HEADER1) +') + +dnl Start deprecation of individual methods: +define(`_DEPRECATE_IFDEF_START',`dnl +#ifndef __DEPRECATION_GUARD__' +) + +dnl end deprecation of individual methods: +define(`_DEPRECATE_IFDEF_END',`dnl +#endif // __DEPRECATION_GUARD__' +) + +dnl begin optional deprecation of whole file +define(`_DEPRECATE_IFDEF_CLASS_START',`dnl +ifdef(`__BOOL_DEPRECATED__',`dnl +_DEPRECATE_IFDEF_START',`dnl +') +') + +dnl begin optional deprecation of whole file, +dnl preceded by inclusion of config file +dnl (the config file may define the __DEPRECATION_GUARD__) +define(`_DEPRECATE_IFDEF_CLASS_CONFIG_START',`dnl +ifdef(`__BOOL_DEPRECATED__',`dnl +ifdef(`__FILENAME_CONFIGINCLUDE__',`dnl +#include <__FILENAME_CONFIGINCLUDE__>',`dnl +') +_DEPRECATE_IFDEF_START',`dnl +') +') + +dnl end optional deprecation of whole file +define(`_DEPRECATE_IFDEF_CLASS_END',`dnl +ifdef(`__BOOL_DEPRECATED__',`dnl +_DEPRECATE_IFDEF_END',`dnl +') +') + +dnl This does all the work of assembling the final output +dnl +dnl _END() +dnl +define(`_END',`dnl +m4_divert(0)dnl +#S 0 dnl Marks the beginning of the header file. + +// Generated by gmmproc __GLIBMM_VERSION__ -- DO NOT MODIFY! +#ifndef __HEADER_GUARD__`'_H +#define __HEADER_GUARD__`'_H + +_IMPORT(SECTION_HEADER_FIRST) + +_DEPRECATE_IFDEF_CLASS_START + +m4_ifelse(__MODULE__,glibmm,,`dnl else +#include +#include +')dnl +_IMPORT(SECTION_HEADER1) +_IMPORT(SECTION_HEADER2) +_IMPORT(SECTION_HEADER3) + +_DEPRECATE_IFDEF_CLASS_END + +#endif /* __HEADER_GUARD__`'_H */ + +#S 1 dnl Marks the beginning of the private header file. + +// Generated by gmmproc __GLIBMM_VERSION__ -- DO NOT MODIFY! +#ifndef __HEADER_GUARD__`'_P_H +#define __HEADER_GUARD__`'_P_H +_DEPRECATE_IFDEF_CLASS_START +_IMPORT(SECTION_PHEADER) +_DEPRECATE_IFDEF_CLASS_END +#endif /* __HEADER_GUARD__`'_P_H */ + +#S 2 dnl Marks the beginning of the source file. + +// Generated by gmmproc __GLIBMM_VERSION__ -- DO NOT MODIFY! + +_IMPORT(SECTION_CC_PRE_INCLUDES) + +_DEPRECATE_IFDEF_CLASS_CONFIG_START + +#include + +#include <__MODULE__/__FILE__.h> +#include <__MODULE__/private/__FILE__`'_p.h> + +_IMPORT(SECTION_CC_INCLUDES) + +_IMPORT(SECTION_SRC_CUSTOM) + +namespace +{ +_IMPORT(SECTION_ANONYMOUS_NAMESPACE) +} // anonymous namespace + +_IMPORT(SECTION_SRC_GENERATED) +_DEPRECATE_IFDEF_CLASS_END + +m4_divert(-1) +m4_undivert +') + +define(`_NAMESPACE',`dnl +_PUSH() +m4_ifdef(`__NAMESPACE__',`dnl +pushdef(`__NAMESPACE__',__NAMESPACE__`::'$1) +pushdef(`__NAMESPACE_BEGIN__',__NAMESPACE_BEGIN__` + +namespace '$1` +{') +pushdef(`__NAMESPACE_END__',`} // namespace '$1` + +'__NAMESPACE_END__) +',`dnl else +pushdef(`__NAMESPACE__',$1) +pushdef(`__NAMESPACE_BEGIN__',`namespace '$1` +{') +pushdef(`__NAMESPACE_END__',`} // namespace '$1) +')dnl endif __NAMESPACE__ +_POP() +')dnl enddef _NAMESPACE + +define(`_END_NAMESPACE',`dnl +_PUSH() +popdef(`__NAMESPACE__') +popdef(`__NAMESPACE_BEGIN__') +popdef(`__NAMESPACE_END__') +_POP() +')dnl enddef _END_NAMESPACE + +define(`_INCLUDE_FLAG',`__FLAG_$1_INCLUDE_`'_UPPER(m4_translit(`$2',`/.-',`___'))__')dnl + +define(`_PH_INCLUDE',`dnl +m4_ifdef(_INCLUDE_FLAG(PH,`$*'),,`dnl else +define(_INCLUDE_FLAG(PH,`$*'))dnl +_PUSH(SECTION_PHEADER) +#include <$*> +_POP() +')dnl endif +')dnl + +define(`_CC_INCLUDE',`dnl +m4_ifdef(_INCLUDE_FLAG(CC,`$*'),,`dnl else +define(_INCLUDE_FLAG(CC,`$*'))dnl +_PUSH(SECTION_CC_INCLUDES) +#include <$*> +_POP() +')dnl endif +')dnl + +define(`_PINCLUDE', defn(`_PH_INCLUDE')) + +# Put these, for instance, around gtkmmproc macros (_WRAP_SIGNAL) +# to make the #ifndef appear around the generated code in both the .h +# and .cc files. +# e.g. _GTKMMPROC_H_AND_CC(#ifndef _SUN_CC_) +# e.g. _GTKMMPROC_H_AND_CC(#endif //_SUN_CC_) +# _GTKMMPROC_H_AND_CC(code) +define(`_GTKMMPROC_H_AND_CC',`dnl +$1 +_PUSH(SECTION_CC) +$1 + +_POP() +')dnl + +# Same thing as _GTKMMPROC_H_AND_CC but for signals (_WRAP_SIGNAL) +define(`_GTKMMPROC_SIGNAL_H_AND_CC',`dnl +$1 +_PUSH(SECTION_ANONYMOUS_NAMESPACE) +$1 +_POP() + +$1 +_PUSH(SECTION_H_DEFAULT_SIGNAL_HANDLERS) +$1 +_POP() + +$1 +_PUSH(SECTION_PCC_CLASS_INIT_DEFAULT_SIGNAL_HANDLERS) +$1 +_POP() + +$1 +_PUSH(SECTION_CC_DEFAULT_SIGNAL_HANDLERS) +$1 +_POP() + +$1 +_PUSH(SECTION_PCC_DEFAULT_SIGNAL_HANDLERS) +$1 +_POP() + +$1 +_PUSH(SECTION_CC_SIGNALPROXIES) +$1 +_POP() +')dnl + +m4_include(class_shared.m4) +m4_include(class_generic.m4) +m4_include(class_gobject.m4) +dnl m4_include(class_gtkobject.m4) +m4_include(class_boxedtype.m4) +m4_include(class_boxedtype_static.m4) +m4_include(class_interface.m4) +m4_include(class_opaque_copyable.m4) +m4_include(class_opaque_refcounted.m4) +m4_include(gerror.m4) +m4_include(signal.m4) +m4_include(vfunc.m4) +m4_include(method.m4) +m4_include(member.m4) +m4_include(compare.m4) +m4_include(ctor.m4) +m4_include(property.m4) +m4_include(enum.m4) + +_SECTION(SECTION_HEADER1) + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_boxedtype.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_boxedtype.m4 new file mode 100644 index 0000000..a5046f5 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_boxedtype.m4 @@ -0,0 +1,246 @@ +dnl $Id$ + +dnl +dnl _CLASS_BOXEDTYPE(Region, GdkRegion, gdk_region_new, gdk_region_copy, gdk_region_destroy) +dnl + +define(`_CLASS_BOXEDTYPE',`dnl +_PUSH() +dnl +dnl Define the args for later macros +define(`__CPPNAME__',`$1') +define(`__CNAME__',`$2') +define(`__BOXEDTYPE_FUNC_NEW',`$3') +define(`__BOXEDTYPE_FUNC_COPY',`$4') +define(`__BOXEDTYPE_FUNC_FREE',`$5') + +define(`_CUSTOM_DEFAULT_CTOR',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_DEFAULT_CTOR__',`$1') +_POP() +') + +define(`_CUSTOM_CTOR_CAST',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_CTOR_CAST__',`$1') +_POP() +') + +_POP() +_SECTION(SECTION_CLASS2) +') dnl End of _CLASS_BOXEDTYPE. + +dnl Some of the Gdk types are unions - e.g. GdkEvent. +define(`_CUSTOM_STRUCT_PROTOTYPE',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_STRUCT_PROTOTYPE__',`$1') +_POP() +') + +dnl +dnl _END_CLASS_BOXEDTYPE() +dnl denotes the end of a class +dnl +define(`_END_CLASS_BOXEDTYPE',` +_SECTION(SECTION_HEADER1) +ifdef(`__BOOL_CUSTOM_STRUCT_PROTOTYPE__',`dnl +',`dnl +#ifndef DOXYGEN_SHOULD_SKIP_THIS +extern "C" { typedef struct _`'__CNAME__ __CNAME__; } +#endif +')dnl + +_SECTION(SECTION_HEADER3) + +__NAMESPACE_BEGIN__ + +/** @relates __NAMESPACE__::__CPPNAME__ + * @param lhs The left-hand side + * @param rhs The right-hand side + */ +inline void swap(__CPPNAME__& lhs, __CPPNAME__& rhs) noexcept + { lhs.swap(rhs); } + +__NAMESPACE_END__ + +namespace Glib +{ +ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl +',`dnl else + +/** A Glib::wrap() method for this object. + * + * @param object The C instance. + * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. + * @result A C++ instance that wraps this C instance. + * + * @relates __NAMESPACE__::__CPPNAME__ + */ +__NAMESPACE__::__CPPNAME__ wrap(__CNAME__* object, bool take_copy = false); +')dnl endif __BOOL_NO_WRAP_FUNCTION__ + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +template <> +class Value<__NAMESPACE__::__CPPNAME__> : public Glib::Value_Boxed<__NAMESPACE__::__CPPNAME__> +{}; +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + +} // namespace Glib + +_SECTION(SECTION_SRC_GENERATED) + +ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl +',`dnl else +namespace Glib +{ + +__NAMESPACE__::__CPPNAME__ wrap(__CNAME__* object, bool take_copy) +{ + return __NAMESPACE__::__CPPNAME__`'(object, take_copy); +} + +} // namespace Glib +')dnl endif + + +__NAMESPACE_BEGIN__ + +dnl +dnl The implementation: +dnl + +// static +GType __CPPNAME__::get_type() +{ + return _GET_TYPE_FUNC(__CNAME__); +} + +ifdef(`__BOOL_CUSTOM_DEFAULT_CTOR__',`dnl +',`dnl else +__CPPNAME__::__CPPNAME__`'() +: +ifelse(__BOXEDTYPE_FUNC_NEW,NONE,`dnl + gobject_ (nullptr) // Allows creation of invalid wrapper, e.g. for output arguments to methods. +',`dnl else + gobject_ (__BOXEDTYPE_FUNC_NEW`'()) +')dnl +{} +')dnl endif __BOOL_CUSTOM_DEFAULT_CTOR__ + +__CPPNAME__::__CPPNAME__`'(const __CPPNAME__& other) +: + gobject_ ((other.gobject_) ? __BOXEDTYPE_FUNC_COPY`'(other.gobject_) : nullptr) +{} + +__CPPNAME__::__CPPNAME__`'(__CPPNAME__&& other) noexcept +: + gobject_(other.gobject_) +{ + other.gobject_ = nullptr; +} + +__CPPNAME__& __CPPNAME__::operator=(__CPPNAME__`'&& other) noexcept +{ + __CPPNAME__ temp (other); + swap(temp); + return *this; +} + +ifdef(`__BOOL_CUSTOM_CTOR_CAST__',,`dnl else +__CPPNAME__::__CPPNAME__`'(__CNAME__* gobject, bool make_a_copy) +: + // For BoxedType wrappers, make_a_copy is true by default. The static + // BoxedType wrappers must always take a copy, thus make_a_copy = true + // ensures identical behaviour if the default argument is used. + gobject_ ((make_a_copy && gobject) ? __BOXEDTYPE_FUNC_COPY`'(gobject) : gobject) +{} +')dnl + +__CPPNAME__& __CPPNAME__::operator=(const __CPPNAME__`'& other) +{ + __CPPNAME__ temp (other); + swap(temp); + return *this; +} + +__CPPNAME__::~__CPPNAME__`'() noexcept +{ +dnl This could be a free or an unref, we do not need to know. + if(gobject_) + __BOXEDTYPE_FUNC_FREE`'(gobject_); +} + +void __CPPNAME__::swap(__CPPNAME__& other) noexcept +{ + std::swap(gobject_, other.gobject_); +} + +__CNAME__* __CPPNAME__::gobj_copy() const +{ + return __BOXEDTYPE_FUNC_COPY`'(gobject_); +} + +_IMPORT(SECTION_CC) + +__NAMESPACE_END__ + + +dnl +dnl +dnl +dnl +_POP() +dnl +dnl +dnl The actual class, e.g. Pango::FontDescription, declaration: +dnl +_IMPORT(SECTION_CLASS1) +public: +#ifndef DOXYGEN_SHOULD_SKIP_THIS + using CppObjectType = __CPPNAME__; + using BaseObjectType = __CNAME__; +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + + /** Get the GType for this class, for use with the underlying GObject type system. + */ + static GType get_type() G_GNUC_CONST; + +ifdef(`__BOOL_CUSTOM_DEFAULT_CTOR__',`dnl +',`dnl else + __CPPNAME__`'(); +')dnl + +ifdef(`__BOOL_CUSTOM_CTOR_CAST__',,`dnl else + explicit __CPPNAME__`'(__CNAME__* gobject, bool make_a_copy = true); +')dnl + + __CPPNAME__`'(const __CPPNAME__& other); + __CPPNAME__& operator=(const __CPPNAME__& other); + + __CPPNAME__`'(__CPPNAME__&& other) noexcept; + __CPPNAME__& operator=(__CPPNAME__&& other) noexcept; + +_IMPORT(SECTION_DTOR_DOCUMENTATION) + ~__CPPNAME__`'() noexcept; + + void swap(__CPPNAME__& other) noexcept; + + ///Provides access to the underlying C instance. + __CNAME__* gobj() { return gobject_; } + + ///Provides access to the underlying C instance. + const __CNAME__* gobj() const { return gobject_; } + + ///Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs. + __CNAME__* gobj_copy() const; + +protected: + __CNAME__* gobject_; + +private: +_IMPORT(SECTION_CLASS2) +') + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_boxedtype_static.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_boxedtype_static.m4 new file mode 100644 index 0000000..926ac49 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_boxedtype_static.m4 @@ -0,0 +1,206 @@ +dnl $Id$ + +dnl +dnl _CLASS_BOXEDTYPE_STATIC(TreeIter, GtkTreeIter) +dnl +define(`_CLASS_BOXEDTYPE_STATIC',`dnl +_PUSH() +dnl +dnl Define the args for later macros +define(`__CPPNAME__',`$1') +define(`__CNAME__',`$2') + +define(`_CUSTOM_DEFAULT_CTOR',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_DEFAULT_CTOR__',`$1') +_POP() +') + +define(`_CUSTOM_CTOR_CAST',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_CTOR_CAST__',`$1') +_POP() +') + +_POP() +_SECTION(SECTION_CLASS2) +') dnl End of _CLASS_BOXEDTYPE_STATIC. + +dnl TreeIterBase shouldn't have a wrap() method - we'll custom implement them for TreeIter and TreeRow: +define(`_NO_WRAP_FUNCTION',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_NO_WRAP_FUNCTION__',`$1') +_POP() +') + +dnl +dnl _END_CLASS_BOXEDTYPE_STATIC() +dnl denotes the end of a class +dnl +define(`_END_CLASS_BOXEDTYPE_STATIC',` + +_SECTION(SECTION_HEADER3) + +namespace Glib +{ +ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl +',`dnl else + +/** @relates __NAMESPACE__::__CPPNAME__ + * @param object The C instance + * @result A C++ instance that wraps this C instance. + */ +__NAMESPACE__::__CPPNAME__& wrap(__CNAME__* object); + +/** @relates __NAMESPACE__::__CPPNAME__ + * @param object The C instance + * @result A C++ instance that wraps this C instance. + */ +const __NAMESPACE__::__CPPNAME__& wrap(const __CNAME__* object); +')dnl endif __BOOL_NO_WRAP_FUNCTION__ + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +template <> +class Value<__NAMESPACE__::__CPPNAME__> : public Glib::Value_Boxed<__NAMESPACE__::__CPPNAME__> +{}; +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + +} // namespace Glib + +_SECTION(SECTION_CC_INCLUDES) +#include // std::memset`'() +_SECTION(SECTION_SRC_GENERATED) + +ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl +',`dnl else +namespace Glib +{ + +__NAMESPACE__::__CPPNAME__& wrap(__CNAME__* object) +{ + return *reinterpret_cast<__NAMESPACE__::__CPPNAME__*>(object); +} + +const __NAMESPACE__::__CPPNAME__& wrap(const __CNAME__* object) +{ + return *reinterpret_cast(object); +} + +} // namespace Glib +')dnl endif __BOOL_NO_WRAP_FUNCTION__ + + +__NAMESPACE_BEGIN__ + +dnl +dnl The implementation: +dnl + +__CPPNAME__::__CPPNAME__`'(const __CPPNAME__& other) noexcept +: + gobject_(other.gobject_) +{ +} + +__CPPNAME__& __CPPNAME__::operator=(const __CPPNAME__`'& other) noexcept +{ + gobject_ = other.gobject_; + return *this; +} + +__CPPNAME__::__CPPNAME__`'(__CPPNAME__&& other) noexcept +: + gobject_(std::move(other.gobject_)) +{ + //We could wipe other.gobject_ via memset, + //but that is not really necessary: + //other.gobject_ = nullptr; +} + +__CPPNAME__& __CPPNAME__::operator=(__CPPNAME__`'&& other) noexcept +{ + gobject_ = std::move(other.gobject_); + return *this; +} + +dnl // static +dnl const __CNAME__ __CPPNAME__::gobject_initializer_ = { 0, }; +dnl +// static +GType __CPPNAME__::get_type() +{ + return _GET_TYPE_FUNC(__CNAME__); +} + +ifdef(`__BOOL_CUSTOM_DEFAULT_CTOR__',,`dnl else +__CPPNAME__::__CPPNAME__`'() +{ + std::memset`'(&gobject_, 0, sizeof(__CNAME__)); +} +')dnl + +ifdef(`__BOOL_CUSTOM_CTOR_CAST__',,`dnl else +__CPPNAME__::__CPPNAME__`'(const __CNAME__* gobject) +{ + if(gobject) + gobject_ = *gobject; + else + std::memset`'(&gobject_, 0, sizeof(__CNAME__)); +} +')dnl + +_IMPORT(SECTION_CC) + +__NAMESPACE_END__ + +dnl +dnl +dnl +dnl +_POP() +dnl +dnl +dnl The actual class, e.g. Gtk::TreeIter, declaration: +dnl +_IMPORT(SECTION_CLASS1) +public: +#ifndef DOXYGEN_SHOULD_SKIP_THIS + using CppObjectType = __CPPNAME__; + using BaseObjectType = __CNAME__; +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + + __CPPNAME__`'(const __CPPNAME__& other) noexcept; + __CPPNAME__& operator=(const __CPPNAME__& other) noexcept; + + __CPPNAME__`'(__CPPNAME__&& other) noexcept; + __CPPNAME__& operator=(__CPPNAME__&& other) noexcept; + + /** Get the GType for this class, for use with the underlying GObject type system. + */ + static GType get_type() G_GNUC_CONST; + +ifdef(`__BOOL_CUSTOM_DEFAULT_CTOR__',,`dnl else + __CPPNAME__`'(); +')dnl + +ifdef(`__BOOL_CUSTOM_CTOR_CAST__',,`dnl else + explicit __CPPNAME__`'(const __CNAME__* gobject); // always takes a copy +')dnl + + ///Provides access to the underlying C instance. + __CNAME__* gobj() { return &gobject_; } + + ///Provides access to the underlying C instance. + const __CNAME__* gobj() const { return &gobject_; } + +protected: + __CNAME__ gobject_; +dnl static const __CNAME__ gobject_initializer_; + +private: + _IMPORT(SECTION_CLASS2) +') + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_generic.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_generic.m4 new file mode 100644 index 0000000..6395946 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_generic.m4 @@ -0,0 +1,54 @@ +dnl $Id$ + +dnl +dnl _CLASS_GENERIC(LayoutIter, PangoLayoutIter) +dnl + +define(`_CLASS_GENERIC',`dnl +_PUSH() +dnl +dnl Define the args for later macros +define(`__CPPNAME__',`$1') +define(`__CNAME__',`$2') + +_POP() +_SECTION(SECTION_CLASS2) +') dnl End of _CLASS_GENERIC. + + +dnl +dnl _END_CLASS_GENERIC() +dnl denotes the end of a class +dnl +define(`_END_CLASS_GENERIC',` + +_SECTION(SECTION_SRC_GENERATED) + +__NAMESPACE_BEGIN__ + +dnl The implementation: + +_IMPORT(SECTION_CC) + +__NAMESPACE_END__ + +dnl +dnl +dnl +dnl +_POP() +dnl +dnl +dnl The actual class, e.g. Pango::FontDescription, declaration: +dnl +_IMPORT(SECTION_CLASS1) +public: +#ifndef DOXYGEN_SHOULD_SKIP_THIS + using CppObjectType = __CPPNAME__; + using BaseObjectType = __CNAME__; +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + +private: +_IMPORT(SECTION_CLASS2) +') + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_gobject.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_gobject.m4 new file mode 100644 index 0000000..0e0e4f6 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_gobject.m4 @@ -0,0 +1,323 @@ +dnl $Id$ + + +define(`_CLASS_GOBJECT',`dnl +_PUSH() +dnl +dnl Define the args for later macros +define(`__CPPNAME__',`$1') +define(`__CNAME__',`$2') +define(`__CCAST__',`$3') +define(`__BASE__',_LOWER(__CPPNAME__)) +define(`__CPPPARENT__',`$4') +define(`__CPARENT__',`$5') +define(`__PCAST__',`($5*)') + +dnl Some C types, e.g. GdkWindow or GdkPixmap, are a typedef to their base type, +dnl rather than the real instance type. That is really ugly, yes. We get around +dnl the problem by supporting optional __REAL_* arguments to this macro. +define(`__REAL_CNAME__',ifelse(`$6',,__CNAME__,`$6')) +define(`__REAL_CPARENT__',ifelse(`$7',,__CPARENT__,`$7')) + + +_POP() +_SECTION(SECTION_CLASS2) +') dnl end of _CLASS_GOBJECT + +dnl Widget and Object, and some others, have custom-written destructor implementations: +define(`_CUSTOM_DTOR',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_DTOR__',`$1') +_POP() +') + +dnl For classes that need custom code for move operations. +define(`_CUSTOM_MOVE_OPERATIONS', `dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_MOVE_OPERATIONS__',`$1') +_POP() +') + +dnl For classes that need custom code in their cast and construct_params +dnl constructor. +define(`_CUSTOM_CTOR_CAST',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_CTOR_CAST__',`$1') +_POP() +') + +dnl Gdk::Pixmap_Class::wrap_new() needs a custom implementation, in order +dnl to create a Gdk::Bitmap object if appropriate. See comments there. +define(`_CUSTOM_WRAP_NEW',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_WRAP_NEW__',`1') +_POP() +') + +dnl Gnome::Canvas::CanvasAA::CanvasAA() needs access to the +dnl normally-private canvas_class_ member variable. See comments there. +define(`_GMMPROC_PROTECTED_GCLASS',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_PROTECTED_GCLASS__',`1') +_POP() +') + +dnl Some of the Gdk types are actually direct typedefs of their base type. +dnl This means that 2 wrap functions would have the same argument. +dnl define(`_NO_WRAP_FUNCTION',`dnl +dnl _PUSH() +dnl Define this macro to be tested for later. +dnl define(`__BOOL_NO_WRAP_FUNCTION__',`$1') +dnl _POP() +dnl ') + +dnl In case a class needs to write its own implementation of its Glib::wrap() +dnl function. The function will be declared in the header, but the body is not +dnl generated. +define(`_CUSTOM_WRAP_FUNCTION',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_WRAP_FUNCTION__',`$1') +_POP() +') + +dnl Some gobjects actually derive from GInitiallyUnowned, which does some odd reference-counting that is useful to C coders. +dnl We don't want to expose that base class in our API, +dnl but we do want to reverse what it does: +define(`_DERIVES_INITIALLY_UNOWNED',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_DERIVES_INITIALLY_UNOWNED__',`$1') +_POP() +') + + +dnl +dnl _CREATE_METHOD(args_type_and_name_hpp, args_type_and_name_cpp,args_name_only); +dnl +define(`_CREATE_METHOD',` + static Glib::RefPtr<`'__CPPNAME__`'> create(`'$1`'); +_PUSH(SECTION_CC) +Glib::RefPtr<`'__CPPNAME__`'> __CPPNAME__`'::create(`'$2`') +{ + return Glib::RefPtr<`'__CPPNAME__`'>( new __CPPNAME__`'(`'$3`') ); +} + +_POP() +') + + +dnl +dnl _END_CLASS_GOBJECT() +dnl denotes the end of a class +dnl +define(`_END_CLASS_GOBJECT',` +_SECTION(SECTION_HEADER1) +ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl +',`dnl +_STRUCT_PROTOTYPE() +')dnl + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +__NAMESPACE_BEGIN__ class __CPPNAME__`'_Class; __NAMESPACE_END__ +#endif //DOXYGEN_SHOULD_SKIP_THIS + +_SECTION(SECTION_HEADER3) + +ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl +',`dnl +namespace Glib +{ + /** A Glib::wrap() method for this object. + * + * @param object The C instance. + * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. + * @result A C++ instance that wraps this C instance. + * + * @relates __NAMESPACE__::__CPPNAME__ + */ + Glib::RefPtr<__NAMESPACE__::__CPPNAME__> wrap(__REAL_CNAME__`'* object, bool take_copy = false); +} +')dnl + + +dnl +dnl +_SECTION(SECTION_PHEADER) + +#include + +__NAMESPACE_BEGIN__ + +_PH_CLASS_DECLARATION() + +__NAMESPACE_END__ + +_SECTION(SECTION_SRC_GENERATED) + +ifdef(`__BOOL_CUSTOM_WRAP_FUNCTION__',`dnl +',`dnl else +ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl +',`dnl else +namespace Glib +{ + +Glib::RefPtr<__NAMESPACE__::__CPPNAME__> wrap(__REAL_CNAME__`'* object, bool take_copy) +{ + return Glib::RefPtr<__NAMESPACE__::__CPPNAME__>( dynamic_cast<__NAMESPACE__::__CPPNAME__*> (Glib::wrap_auto ((GObject*)(object), take_copy)) ); + //We use dynamic_cast<> in case of multiple inheritance. +} + +} /* namespace Glib */ +')dnl endif +')dnl endif + + + + +__NAMESPACE_BEGIN__ + + +/* The *_Class implementation: */ + +_PCC_CLASS_IMPLEMENTATION() + +m4_ifdef(`__BOOL_CUSTOM_WRAP_NEW__',,`dnl else +Glib::ObjectBase* __CPPNAME__`'_Class::wrap_new(GObject* object) +{ + return new __CPPNAME__`'((__CNAME__*)`'object); +} + +')dnl endif + +/* The implementation: */ + +__CNAME__* __CPPNAME__::gobj_copy() +{ + reference(); + return gobj(); +} + +ifdef(`__BOOL_CUSTOM_CTOR_CAST__',`dnl +',`dnl +__CPPNAME__::__CPPNAME__`'(const Glib::ConstructParams& construct_params) +: + __CPPPARENT__`'(construct_params) +{ +_INITIALLY_UNOWNED_SINK +} + +__CPPNAME__::__CPPNAME__`'(__CNAME__* castitem) +: + __CPPPARENT__`'(__PCAST__`'(castitem)) +{} + +')dnl + +ifdef(`__BOOL_CUSTOM_MOVE_OPERATIONS__',`dnl +',`dnl +__CPPNAME__::__CPPNAME__`'(__CPPNAME__&& src) noexcept +: __CPPPARENT__`'(std::move(src)) +_IMPORT(SECTION_CC_MOVE_CONSTRUCTOR_INTERFACES) +{} + +__CPPNAME__& __CPPNAME__::operator=(__CPPNAME__&& src) noexcept +{ + __CPPPARENT__::operator=`'(std::move(src)); +_IMPORT(SECTION_CC_MOVE_ASSIGNMENT_OPERATOR_INTERFACES) + return *this; +} + +')dnl + +ifdef(`__BOOL_CUSTOM_DTOR__',`dnl +',`dnl +__CPPNAME__::~__CPPNAME__`'() noexcept +{} + +')dnl + + +_CC_CLASS_IMPLEMENTATION() + +__NAMESPACE_END__ + +dnl +dnl +dnl +dnl +_POP() +dnl +dnl The actual class, e.g. Gtk::Widget, declaration: +dnl _IMPORT(SECTION_H_SIGNALPROXIES_CUSTOM) + +_IMPORT(SECTION_CLASS1) + +#ifndef DOXYGEN_SHOULD_SKIP_THIS + +public: + using CppObjectType = __CPPNAME__; + using CppClassType = __CPPNAME__`'_Class; + using BaseObjectType = __CNAME__; + using BaseClassType = __REAL_CNAME__`'Class; + + // noncopyable + __CPPNAME__`'(const __CPPNAME__&) = delete; + __CPPNAME__& operator=(const __CPPNAME__&) = delete; + +m4_ifdef(`__BOOL_PROTECTED_GCLASS__', +`protected:',`dnl else +private:')dnl endif + friend class __CPPNAME__`'_Class; + static CppClassType `'__BASE__`'_class_; + +protected: + explicit __CPPNAME__`'(const Glib::ConstructParams& construct_params); + explicit __CPPNAME__`'(__CNAME__* castitem); + +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + +public: + +ifdef(`__BOOL_CUSTOM_MOVE_OPERATIONS__',`dnl +',`dnl + __CPPNAME__`'(__CPPNAME__&& src) noexcept; + __CPPNAME__& operator=(__CPPNAME__&& src) noexcept; +')dnl + +_IMPORT(SECTION_DTOR_DOCUMENTATION) + ~__CPPNAME__`'() noexcept override; + + /** Get the GType for this class, for use with the underlying GObject type system. + */ + static GType get_type() G_GNUC_CONST; + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +ifdef(`__BOOL_DYNAMIC_GTYPE_REGISTRATION__',` + static GType get_type(GTypeModule* module) G_GNUC_CONST; +',`') + + static GType get_base_type() G_GNUC_CONST; +#endif + + ///Provides access to the underlying C GObject. + __CNAME__* gobj() { return reinterpret_cast<__CNAME__*>(gobject_); } + + ///Provides access to the underlying C GObject. + const __CNAME__* gobj() const { return reinterpret_cast<__CNAME__*>(gobject_); } + + ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. + __CNAME__* gobj_copy(); + +private: +_IMPORT(SECTION_CLASS2) + +public: +_H_VFUNCS_AND_SIGNALS() + +') diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_interface.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_interface.m4 new file mode 100644 index 0000000..3c0b93e --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_interface.m4 @@ -0,0 +1,311 @@ +dnl $Id$ + + +define(`_CLASS_INTERFACE',`dnl +_PUSH() +dnl +dnl Define the args for later macros +define(`__CPPNAME__',`$1') +define(`__CNAME__',`$2') +define(`__CCAST__',`$3') +define(`__CCLASS__',`$4') dnl SomethingIface or SomethingClass, both suffixes are used. +define(`__BASE__',_LOWER(__CPPNAME__)) +define(`__CPPPARENT__',m4_ifelse($5,`',`Glib::Interface',$5)) #Optional parameter. +define(`__CPARENT__',m4_ifelse($6,`',`GObject',$6)) #Optional parameter. +define(`__PCAST__',`(__CPARENT__`'*)') +define(`__BOOL_IS_INTERFACE__',`1') + + +dnl For classes that need custom code in their cast constructor. +define(`_CUSTOM_CTOR_CAST',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_CTOR_CAST__',`$1') +_POP() +') + +_POP() +_SECTION(SECTION_CLASS2) +') dnl end of _CLASS_INTERFACE + + +dnl Some of the Gdk types are actually direct typedefs of their base type. +dnl This means that 2 wrap functions would have the same argument. +dnl define(`_NO_WRAP_FUNCTION',`dnl +dnl _PUSH() +dnl Define this macro to be tested for later. +dnl define(`__BOOL_NO_WRAP_FUNCTION__',`$1') +dnl _POP() +dnl ') + +dnl +dnl +dnl +define(`_PH_CLASS_DECLARATION_INTERFACE',`dnl +class __CPPNAME__`'_Class : public __CPPPARENT__`'_Class +{ +public: + using CppObjectType = __CPPNAME__; + using BaseObjectType = __CNAME__; + using BaseClassType = __CCLASS__; + using CppClassParent = __CPPPARENT__`'_Class; + + friend class __CPPNAME__; + + const Glib::Interface_Class& init(); + + static void iface_init_function(void* g_iface, void* iface_data); + + static Glib::ObjectBase* wrap_new(GObject*); + +protected: + + //Callbacks (default signal handlers): + //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any. + //You could prevent the original default signal handlers being called by overriding the *_impl method. +_IMPORT(SECTION_PH_DEFAULT_SIGNAL_HANDLERS) + + //Callbacks (virtual functions): +_IMPORT(SECTION_PH_VFUNCS) +}; +') + + +dnl +dnl +dnl +define(`_PCC_CLASS_IMPLEMENTATION_INTERFACE',`dnl +const Glib::Interface_Class& __CPPNAME__`'_Class::init() +{ + if(!gtype_) // create the GType if necessary + { + // Glib::Interface_Class has to know the interface init function + // in order to add interfaces to implementing types. + class_init_func_ = &__CPPNAME__`'_Class::iface_init_function; + + // We can not derive from another interface, and it is not necessary anyway. + gtype_ = _LOWER(__CCAST__)_get_type(); + } + + return *this; +} + +void __CPPNAME__`'_Class::iface_init_function(void* g_iface, void*) +{ + const auto klass = static_cast(g_iface); + + //This is just to avoid an "unused variable" warning when there are no vfuncs or signal handlers to connect. + //This is a temporary fix until I find out why I can not seem to derive a GtkFileChooser interface. murrayc + g_assert(klass != nullptr); + +_IMPORT(SECTION_PCC_CLASS_INIT_VFUNCS) + +_IMPORT(SECTION_PCC_CLASS_INIT_DEFAULT_SIGNAL_HANDLERS) +} + +_IMPORT(SECTION_PCC_VFUNCS) + +_IMPORT(SECTION_PCC_DEFAULT_SIGNAL_HANDLERS) +') + + +dnl +dnl _END_CLASS_INTERFACE() +dnl denotes the end of a class +dnl +define(`_END_CLASS_INTERFACE',` +_SECTION(SECTION_HEADER1) +_STRUCT_PROTOTYPE() + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +__NAMESPACE_BEGIN__ class __CPPNAME__`'_Class; __NAMESPACE_END__ +#endif // DOXYGEN_SHOULD_SKIP_THIS + +_SECTION(SECTION_HEADER3) + +ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl +',`dnl +namespace Glib +{ + /** A Glib::wrap() method for this object. + * + * @param object The C instance. + * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. + * @result A C++ instance that wraps this C instance. + * + * @relates __NAMESPACE__::__CPPNAME__ + */ + Glib::RefPtr<__NAMESPACE__::__CPPNAME__> wrap(__CNAME__`'* object, bool take_copy = false); + +} // namespace Glib + +')dnl +dnl +dnl +_SECTION(SECTION_PHEADER) + +#include + +__NAMESPACE_BEGIN__ + +_PH_CLASS_DECLARATION_INTERFACE() + +__NAMESPACE_END__ + +_SECTION(SECTION_SRC_GENERATED) + +ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl +',`dnl else +namespace Glib +{ + +Glib::RefPtr<__NAMESPACE__::__CPPNAME__> wrap(__CNAME__`'* object, bool take_copy) +{ + return Glib::RefPtr<__NAMESPACE__::__CPPNAME__>( dynamic_cast<__NAMESPACE__::__CPPNAME__*> (Glib::wrap_auto_interface<__NAMESPACE__::__CPPNAME__> ((GObject*)(object), take_copy)) ); + //We use dynamic_cast<> in case of multiple inheritance. +} + +} // namespace Glib +')dnl endif + + +__NAMESPACE_BEGIN__ + + +/* The *_Class implementation: */ + +_PCC_CLASS_IMPLEMENTATION_INTERFACE() + +Glib::ObjectBase* __CPPNAME__`'_Class::wrap_new(GObject* object) +{ + return new __CPPNAME__`'((__CNAME__*)`'(object)); +} + + +/* The implementation: */ + +__CPPNAME__::__CPPNAME__`'() +: + __CPPPARENT__`'(__BASE__`'_class_.init()) +{} + +ifdef(`__BOOL_CUSTOM_CTOR_CAST__',`dnl +',`dnl +__CPPNAME__::__CPPNAME__`'(__CNAME__* castitem) +: + __CPPPARENT__`'(__PCAST__`'(castitem)) +{} +')dnl + +__CPPNAME__::__CPPNAME__`'(const Glib::Interface_Class& interface_class) +: __CPPPARENT__`'(interface_class) +{ +} + +__CPPNAME__::__CPPNAME__`'(__CPPNAME__&& src) noexcept +: __CPPPARENT__`'(std::move(src)) +{} + +__CPPNAME__& __CPPNAME__::operator=(__CPPNAME__&& src) noexcept +{ + __CPPPARENT__::operator=`'(std::move(src)); + return *this; +} + +__CPPNAME__::~__CPPNAME__`'() noexcept +{} + +// static +void __CPPNAME__`'::add_interface(GType gtype_implementer) +{ + __BASE__`'_class_.init().add_interface(gtype_implementer); +} + +_CC_CLASS_IMPLEMENTATION() + +__NAMESPACE_END__ + +dnl +dnl +dnl +dnl +_POP() +dnl +dnl The actual class, e.g. Gtk::Widget, declaration: +dnl _IMPORT(SECTION_H_SIGNALPROXIES_CUSTOM) + +_IMPORT(SECTION_CLASS1) + +#ifndef DOXYGEN_SHOULD_SKIP_THIS + +public: + using CppObjectType = __CPPNAME__; + using CppClassType = __CPPNAME__`'_Class; + using BaseObjectType = __CNAME__; + using BaseClassType = __CCLASS__; + + // noncopyable + __CPPNAME__`'(const __CPPNAME__&) = delete; + __CPPNAME__& operator=(const __CPPNAME__&) = delete; + +private: + friend class __CPPNAME__`'_Class; + static CppClassType `'__BASE__`'_class_; + +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ +protected: + /** + * You should derive from this class to use it. + */ + __CPPNAME__`'(); + +#ifndef DOXYGEN_SHOULD_SKIP_THIS + /** Called by constructors of derived classes. Provide the result of + * the Class init() function to ensure that it is properly + * initialized. + * + * @param interface_class The Class object for the derived type. + */ + explicit __CPPNAME__`'(const Glib::Interface_Class& interface_class); + +public: + // This is public so that C++ wrapper instances can be + // created for C instances of unwrapped types. + // For instance, if an unexpected C type implements the C interface. + explicit __CPPNAME__`'(__CNAME__* castitem); + +protected: +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + +public: + + __CPPNAME__`'(__CPPNAME__&& src) noexcept; + __CPPNAME__& operator=(__CPPNAME__&& src) noexcept; + +_IMPORT(SECTION_DTOR_DOCUMENTATION) + ~__CPPNAME__`'() noexcept override; + + static void add_interface(GType gtype_implementer); + + /** Get the GType for this class, for use with the underlying GObject type system. + */ + static GType get_type() G_GNUC_CONST; + +#ifndef DOXYGEN_SHOULD_SKIP_THIS + static GType get_base_type() G_GNUC_CONST; +#endif + + ///Provides access to the underlying C GObject. + __CNAME__* gobj() { return reinterpret_cast<__CNAME__*>(gobject_); } + + ///Provides access to the underlying C GObject. + const __CNAME__* gobj() const { return reinterpret_cast<__CNAME__*>(gobject_); } + +private: +_IMPORT(SECTION_CLASS2) + +public: +_H_VFUNCS_AND_SIGNALS() + +') + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_opaque_copyable.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_opaque_copyable.m4 new file mode 100644 index 0000000..7e04921 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_opaque_copyable.m4 @@ -0,0 +1,233 @@ +dnl $Id$ + +dnl +dnl _CLASS_OPAQUE_COPYABLE(Region, GdkRegion, gdk_region_new, gdk_region_copy, gdk_region_destroy) +dnl + +define(`_CLASS_OPAQUE_COPYABLE',`dnl +_PUSH() +dnl +dnl Define the args for later macros +define(`__CPPNAME__',`$1') +define(`__CNAME__',`$2') +define(`__OPAQUE_FUNC_NEW',`$3') +define(`__OPAQUE_FUNC_COPY',`$4') +define(`__OPAQUE_FUNC_FREE',`$5') + +define(`_CUSTOM_DEFAULT_CTOR',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_DEFAULT_CTOR__',`$1') +_POP() +') + +define(`_CUSTOM_CTOR_CAST',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_CUSTOM_CTOR_CAST__',`$1') +_POP() +') + +_POP() +_SECTION(SECTION_CLASS2) +') dnl End of _CLASS_OPAQUE_COPYABLE. + + +dnl +dnl _END_CLASS_OPAQUE_COPYABLE() +dnl denotes the end of a class +dnl +define(`_END_CLASS_OPAQUE_COPYABLE',` + +_SECTION(SECTION_HEADER3) + +__NAMESPACE_BEGIN__ + +/** @relates __NAMESPACE__::__CPPNAME__ + * @param lhs The left-hand side + * @param rhs The right-hand side + */ +inline void swap(__CPPNAME__& lhs, __CPPNAME__& rhs) noexcept + { lhs.swap(rhs); } + +__NAMESPACE_END__ + +ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl +',`dnl else +namespace Glib +{ + + /** A Glib::wrap() method for this object. + * + * @param object The C instance. + * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. + * @result A C++ instance that wraps this C instance. + * + * @relates __NAMESPACE__::__CPPNAME__ + */ +__NAMESPACE__::__CPPNAME__ wrap(__CNAME__* object, bool take_copy = false); + +} // namespace Glib +')dnl endif __BOOL_NO_WRAP_FUNCTION__ + +_SECTION(SECTION_SRC_GENERATED) + +ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl +',`dnl else +namespace Glib +{ + +__NAMESPACE__::__CPPNAME__ wrap(__CNAME__* object, bool take_copy /* = false */) +{ + return __NAMESPACE__::__CPPNAME__`'(object, take_copy); +} + +} // namespace Glib +')dnl endif + + +__NAMESPACE_BEGIN__ + +dnl +dnl The implementation: +dnl + +ifdef(`__BOOL_CUSTOM_DEFAULT_CTOR__',`dnl +',`dnl else +__CPPNAME__::__CPPNAME__`'() +: +ifelse(__OPAQUE_FUNC_NEW,NONE,`dnl + gobject_ (nullptr) // Allows creation of invalid wrapper, e.g. for output arguments to methods. +',`dnl else + gobject_ (__OPAQUE_FUNC_NEW`'()) +')dnl +{} +')dnl endif __BOOL_CUSTOM_DEFAULT_CTOR__ + +__CPPNAME__::__CPPNAME__`'(const __CPPNAME__& src) +: + gobject_ ((src.gobject_) ? __OPAQUE_FUNC_COPY`'(src.gobject_) : nullptr) +{} + +ifdef(`__BOOL_CUSTOM_CTOR_CAST__',,`dnl else +__CPPNAME__::__CPPNAME__`'(__CNAME__* castitem, bool make_a_copy /* = false */) +{ + if(!make_a_copy) + { + // It was given to us by a function which has already made a copy for us to keep. + gobject_ = castitem; + } + else + { + // We are probably getting it via direct access to a struct, + // so we can not just take it - we have to take a copy of it. + if(castitem) + gobject_ = __OPAQUE_FUNC_COPY`'(castitem); + else + gobject_ = nullptr; + } +} +') + +ifelse(__OPAQUE_FUNC_COPY,NONE,`dnl +',`dnl else +__CPPNAME__& __CPPNAME__::operator=(const __CPPNAME__`'& src) +{ + const auto new_gobject = (src.gobject_) ? __OPAQUE_FUNC_COPY`'(src.gobject_) : nullptr; + + if(gobject_) + __OPAQUE_FUNC_FREE`'(gobject_); + + gobject_ = new_gobject; + + return *this; +} +')dnl + +__CPPNAME__::__CPPNAME__`'(__CPPNAME__&& other) noexcept +: + gobject_(other.gobject_) +{ + other.gobject_ = nullptr; +} + +__CPPNAME__& __CPPNAME__::operator=(__CPPNAME__`'&& other) noexcept +{ + __CPPNAME__ temp (other); + swap(temp); + return *this; +} + +__CPPNAME__::~__CPPNAME__`'() noexcept +{ + if(gobject_) + __OPAQUE_FUNC_FREE`'(gobject_); +} + +void __CPPNAME__::swap(__CPPNAME__& other) noexcept +{ + std::swap(gobject_, other.gobject_); +} + +__CNAME__* __CPPNAME__::gobj_copy() const +{ + return __OPAQUE_FUNC_COPY`'(gobject_); +} + +_IMPORT(SECTION_CC) + +__NAMESPACE_END__ + + +dnl +dnl +dnl +dnl +_POP() +dnl +dnl +dnl The actual class, e.g. Pango::FontDescription, declaration: +dnl +_IMPORT(SECTION_CLASS1) +public: +#ifndef DOXYGEN_SHOULD_SKIP_THIS + using CppObjectType = __CPPNAME__; + using BaseObjectType = __CNAME__; +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + +ifdef(`__BOOL_CUSTOM_DEFAULT_CTOR__',`dnl +',`dnl else + /** Constructs an invalid object. + * E.g. for output arguments to methods. There is not much you can do with + * the object before it has been assigned a valid value. + */ + __CPPNAME__`'(); +')dnl + + // Use make_a_copy=true when getting it directly from a struct. + explicit __CPPNAME__`'(__CNAME__* castitem, bool make_a_copy = false); + + __CPPNAME__`'(const __CPPNAME__& src); + __CPPNAME__& operator=(const __CPPNAME__& src); + + __CPPNAME__`'(__CPPNAME__&& other) noexcept; + __CPPNAME__& operator=(__CPPNAME__&& other) noexcept; + +_IMPORT(SECTION_DTOR_DOCUMENTATION) + ~__CPPNAME__`'() noexcept; + + void swap(__CPPNAME__& other) noexcept; + + __CNAME__* gobj() { return gobject_; } + const __CNAME__* gobj() const { return gobject_; } + + ///Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs. + __CNAME__* gobj_copy() const; + +protected: + __CNAME__* gobject_; + +private: +_IMPORT(SECTION_CLASS2) +') + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_opaque_refcounted.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_opaque_refcounted.m4 new file mode 100644 index 0000000..e90a1c0 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_opaque_refcounted.m4 @@ -0,0 +1,182 @@ +dnl $Id$ + +dnl +dnl _CLASS_OPAQUE_REFCOUNTED(Coverage, PangoCoverage, pango_coverage_new, pango_coverage_ref, pango_coverage_unref) +dnl + +define(`_CLASS_OPAQUE_REFCOUNTED',`dnl +_PUSH() +dnl +dnl Define the args for later macros +define(`__CPPNAME__',`$1') +define(`__CNAME__',`$2') +define(`__OPAQUE_FUNC_NEW',`$3') +define(`__OPAQUE_FUNC_REF',`$4') +define(`__OPAQUE_FUNC_UNREF',`$5') + +_POP() +_SECTION(SECTION_CLASS2) +')dnl End of _CLASS_OPAQUE_REFCOUNTED. + + +dnl +dnl _END_CLASS_OPAQUE_REFCOUNTED() +dnl denotes the end of a class +dnl +define(`_END_CLASS_OPAQUE_REFCOUNTED',` + +_SECTION(SECTION_HEADER3) + +namespace Glib +{ + + /** A Glib::wrap() method for this object. + * + * @param object The C instance. + * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. + * @result A C++ instance that wraps this C instance. + * + * @relates __NAMESPACE__::__CPPNAME__ + */ + Glib::RefPtr<__NAMESPACE__::__CPPNAME__> wrap(__CNAME__* object, bool take_copy = false); + +} // namespace Glib + +_SECTION(SECTION_SRC_GENERATED) + +/* Why reinterpret_cast<__CPPNAME__*>(gobject) is needed: + * + * A __CPPNAME__ instance is in fact always a __CNAME__ instance. + * Unfortunately, __CNAME__ cannot be a member of __CPPNAME__, + * because it is an opaque struct. Also, the C interface does not provide + * any hooks to install a destroy notification handler, thus we cannot + * wrap it dynamically either. + * + * The cast works because __CPPNAME__ does not have any member data, and + * it is impossible to derive from it. This is ensured by using final on the + * class and by using = delete on the default constructor. + */ + +namespace Glib +{ + +Glib::RefPtr<__NAMESPACE__::__CPPNAME__> wrap(__CNAME__* object, bool take_copy) +{ + if(take_copy && object) + __OPAQUE_FUNC_REF`'(object); + + // See the comment at the top of this file, if you want to know why the cast works. + return Glib::RefPtr<__NAMESPACE__::__CPPNAME__>(reinterpret_cast<__NAMESPACE__::__CPPNAME__*>(object)); +} + +} // namespace Glib + + +__NAMESPACE_BEGIN__ + +dnl +dnl The implementation: +dnl + +ifelse(__OPAQUE_FUNC_NEW,NONE,`dnl +',`dnl else +// static +Glib::RefPtr<__CPPNAME__> __CPPNAME__::create() +{ + // See the comment at the top of this file, if you want to know why the cast works. + return Glib::RefPtr<__CPPNAME__>(reinterpret_cast<__CPPNAME__*>(__OPAQUE_FUNC_NEW`'())); +} +')dnl endif __OPAQUE_FUNC_NEW + +void __CPPNAME__::reference() const +{ + // See the comment at the top of this file, if you want to know why the cast works. + __OPAQUE_FUNC_REF`'(reinterpret_cast<__CNAME__*>(const_cast<__CPPNAME__*>(this))); +} + +void __CPPNAME__::unreference() const +{ + // See the comment at the top of this file, if you want to know why the cast works. + __OPAQUE_FUNC_UNREF`'(reinterpret_cast<__CNAME__*>(const_cast<__CPPNAME__*>(this))); +} + +__CNAME__* __CPPNAME__::gobj() +{ + // See the comment at the top of this file, if you want to know why the cast works. + return reinterpret_cast<__CNAME__*>(this); +} + +const __CNAME__* __CPPNAME__::gobj() const +{ + // See the comment at the top of this file, if you want to know why the cast works. + return reinterpret_cast(this); +} + +__CNAME__* __CPPNAME__::gobj_copy() const +{ + // See the comment at the top of this file, if you want to know why the cast works. + const auto gobject = reinterpret_cast<__CNAME__*>(const_cast<__CPPNAME__*>(this)); + __OPAQUE_FUNC_REF`'(gobject); + return gobject; +} + +_IMPORT(SECTION_CC) + +__NAMESPACE_END__ + + +dnl +dnl +dnl +dnl +_POP() +dnl +dnl +dnl The actual class, e.g. Pango::FontDescription, declaration: +dnl +_IMPORT(SECTION_CLASS1) +public: +#ifndef DOXYGEN_SHOULD_SKIP_THIS + using CppObjectType = __CPPNAME__; + using BaseObjectType = __CNAME__; +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + +ifelse(__OPAQUE_FUNC_NEW,NONE,`dnl +',`dnl else + static Glib::RefPtr<__CPPNAME__> create(); +')dnl endif __OPAQUE_FUNC_NEW + + /** Increment the reference count for this object. + * You should never need to do this manually - use the object via a RefPtr instead. + */ + void reference() const; + + /** Decrement the reference count for this object. + * You should never need to do this manually - use the object via a RefPtr instead. + */ + void unreference() const; + + ///Provides access to the underlying C instance. + __CNAME__* gobj(); + + ///Provides access to the underlying C instance. + const __CNAME__* gobj() const; + + ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. + __CNAME__* gobj_copy() const; + + __CPPNAME__`'() = delete; + + // noncopyable + __CPPNAME__`'(const __CPPNAME__&) = delete; + __CPPNAME__& operator=(const __CPPNAME__&) = delete; + +protected: + // Do not derive this. __NAMESPACE__::__CPPNAME__ can neither be constructed nor deleted. + + void operator delete(void*, std::size_t); + +private: +_IMPORT(SECTION_CLASS2) +') + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_shared.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_shared.m4 new file mode 100644 index 0000000..6880412 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/class_shared.m4 @@ -0,0 +1,344 @@ +dnl $Id$ + + +dnl This is just a hint to generate_wrap_init.pl. +dnl It does not generate any code in the actual .h and .cc file. +m4_define(`_GMMPROC_EXTRA_NAMESPACE',`') + +define(`_CLASS_START',`dnl +_PUSH(SECTION_CLASS1) +') + +dnl +dnl +dnl +define(`_H_VFUNCS_AND_SIGNALS',`dnl + +public: + //C++ methods used to invoke GTK+ virtual functions: +_IMPORT(SECTION_H_VFUNCS_CPPWRAPPER) + +protected: + //GTK+ Virtual Functions (override these to change behaviour): +_IMPORT(SECTION_H_VFUNCS) + + //Default Signal Handlers:: +_IMPORT(SECTION_H_DEFAULT_SIGNAL_HANDLERS) +') + + +dnl +dnl +dnl +define(`_IMPLEMENTS_INTERFACE_CC',`dnl +_PUSH(SECTION_CC_IMPLEMENTS_INTERFACES) +ifelse(`$2',,,`#ifdef $2' +)dnl + $1`'::add_interface(get_type()); +ifelse(`$2',,,` +#endif // $2 +')dnl +_POP() +_PUSH(SECTION_CC_MOVE_CONSTRUCTOR_INTERFACES) +ifelse(`$2',,,`#ifdef $2' +)dnl + , $1`'(std::move(src)) +ifelse(`$2',,,` +#endif // $2 +')dnl +_POP() +_PUSH(SECTION_CC_MOVE_ASSIGNMENT_OPERATOR_INTERFACES) +ifelse(`$2',,,`#ifdef $2' +)dnl + $1`'::operator=(std::move(src)); +ifelse(`$2',,,` +#endif // $2 +')dnl +_POP() +') + +dnl GVolumeMonitor can be broken/impeded by defining a sub-type. +define(`_DO_NOT_DERIVE_GTYPE',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_DO_NOT_DERIVE_GTYPE__',`$1') +_POP() +') + +dnl GVolumeMonitor can be broken/impeded by defining a sub-type. +define(`_DYNAMIC_GTYPE_REGISTRATION',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_DYNAMIC_GTYPE_REGISTRATION__',`$1') +_POP() +') + +dnl This macro inserts the supplied text as a Doxygen comment block before the +dnl automatically generated declaration of a class' destructor. The inner +dnl m4_ifelse() attempts to remove double quotes before and after the text if +dnl it is a single line. If it is not, it returns the supplied lines, removing +dnl trailing spaces from each of them (with an m4_patsubst()). The following +dnl outer m4_patsubst() prepends possible multiple lines below the first one +dnl with ' * ' by assuming that these lines are preceded by at least one space. +dnl Finally, the outer m4_patsubst() inserts spaces after commas which are +dnl removed by m4 in the processing. +dnl +dnl +dnl +dnl +define(`_DOCUMENT_DTOR',`dnl +_PUSH(SECTION_DTOR_DOCUMENTATION) +m4_ifelse(`$*',,,`dnl + m4_patsubst(`m4_patsubst(`/** m4_ifelse(m4_regexp(`$*',`".*"'),-1,`m4_patsubst(`$*',`\s*$')',`m4_regexp(`$*',`"\s*\(.*\)\(\S\)\s*"',`\1\2')')',`^\s+',` * ')',`,',`, ') + */ +')dnl +_POP() +') + + + +dnl +dnl +dnl +define(`_PH_CLASS_DECLARATION',`dnl +class __CPPNAME__`'_Class : public Glib::Class +{ +public: +#ifndef DOXYGEN_SHOULD_SKIP_THIS + using CppObjectType = __CPPNAME__; + using BaseObjectType = __REAL_CNAME__; +ifdef(`__BOOL_DO_NOT_DERIVE_GTYPE__',`dnl + using CppClassParent = __CPPPARENT__`'_Class; +',`dnl + using BaseClassType = __REAL_CNAME__`'Class; + using CppClassParent = __CPPPARENT__`'_Class; + using BaseClassParent = __REAL_CPARENT__`'Class; +')dnl + + friend class __CPPNAME__; +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + + const Glib::Class& init(); + +ifdef(`__BOOL_DYNAMIC_GTYPE_REGISTRATION__',` + const Glib::Class& init(GTypeModule* module); +',`') + +ifdef(`__BOOL_DO_NOT_DERIVE_GTYPE__',`dnl +',`dnl + static void class_init_function(void* g_class, void* class_data); +')dnl + + static Glib::ObjectBase* wrap_new(GObject*); + +protected: + + //Callbacks (default signal handlers): + //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any. + //You could prevent the original default signal handlers being called by overriding the *_impl method. +_IMPORT(SECTION_PH_DEFAULT_SIGNAL_HANDLERS) + + //Callbacks (virtual functions): +_IMPORT(SECTION_PH_VFUNCS) +}; +') + + +dnl +dnl +dnl +define(`_PCC_CLASS_IMPLEMENTATION',`dnl +const Glib::Class& __CPPNAME__`'_Class::init() +{ + if(!gtype_) // create the GType if necessary + { +ifdef(`__BOOL_DO_NOT_DERIVE_GTYPE__',`dnl + // Do not derive a GType, or use a derived klass: + gtype_ = CppClassParent::CppObjectType::get_type(); +',`dnl + // Glib::Class has to know the class init function to clone custom types. + class_init_func_ = &__CPPNAME__`'_Class::class_init_function; + + // This is actually just optimized away, apparently with no harm. + // Make sure that the parent type has been created. + //CppClassParent::CppObjectType::get_type(); + + // Create the wrapper type, with the same class/instance size as the base type. + register_derived_type(_LOWER(__CCAST__)_get_type()); + + // Add derived versions of interfaces, if the C type implements any interfaces: +_IMPORT(SECTION_CC_IMPLEMENTS_INTERFACES) +') + } + + return *this; +} + +ifdef(`__BOOL_DYNAMIC_GTYPE_REGISTRATION__',` +const Glib::Class& __CPPNAME__`'_Class::init(GTypeModule* module) +{ + if(!gtype_) // create the GType if necessary + { +ifdef(`__BOOL_DO_NOT_DERIVE_GTYPE__',`dnl + // Do not derive a GType, or use a derived klass: + gtype_ = CppClassParent::CppObjectType::get_type(); +',`dnl + // Glib::Class has to know the class init function to clone custom types. + class_init_func_ = &__CPPNAME__`'_Class::class_init_function; + + // This is actually just optimized away, apparently with no harm. + // Make sure that the parent type has been created. + //CppClassParent::CppObjectType::get_type(); + + // Create the wrapper type, with the same class/instance size as the base type. + register_derived_type(_LOWER(__CCAST__)_get_type(), module); + + // Add derived versions of interfaces, if the C type implements any interfaces: +_IMPORT(SECTION_CC_IMPLEMENTS_INTERFACES) +') + } + + return *this; +',`') + +ifdef(`__BOOL_DO_NOT_DERIVE_GTYPE__',`dnl +',`dnl + +void __CPPNAME__`'_Class::class_init_function(void* g_class, void* class_data) +{ + const auto klass = static_cast(g_class); + CppClassParent::class_init_function(klass, class_data); + +_IMPORT(SECTION_PCC_CLASS_INIT_VFUNCS) + +_IMPORT(SECTION_PCC_CLASS_INIT_DEFAULT_SIGNAL_HANDLERS) +} +')dnl + +_IMPORT(SECTION_PCC_VFUNCS) + +_IMPORT(SECTION_PCC_DEFAULT_SIGNAL_HANDLERS) +') + + + +dnl +dnl +dnl +define(`_CC_CLASS_IMPLEMENTATION',`dnl +__CPPNAME__::CppClassType __CPPNAME__::`'__BASE__`'_class_; // initialize static member + +GType __CPPNAME__::get_type() +{ + return __BASE__`'_class_.init().get_type(); +} + +ifdef(`__BOOL_DYNAMIC_GTYPE_REGISTRATION__',` +GType __CPPNAME__::get_type(GTypeModule* module) +{ + return __BASE__`'_class_.init(module).get_type(); +} +'dnl +,`'dnl +) + +GType __CPPNAME__::get_base_type() +{ + return _LOWER(__CCAST__)_get_type(); +} + +_IMPORT(SECTION_CC) + +dnl _IMPORT(SECTION_CC_SIGNALPROXIES_CUSTOM) + +_IMPORT(SECTION_CC_SIGNALPROXIES) + +_IMPORT(SECTION_CC_PROPERTYPROXIES) + +_IMPORT(SECTION_CC_DEFAULT_SIGNAL_HANDLERS) + +_IMPORT(SECTION_CC_VFUNCS) +_IMPORT(SECTION_CC_VFUNCS_CPPWRAPPER) +') + +dnl _PARENT_GCLASS_FROM_OBJECT(object_instance_name) +define(`_PARENT_GCLASS_FROM_OBJECT',`dnl +g_type_class_peek_parent`'(G_OBJECT_GET_CLASS`'($1)) // Get the parent class of the object class (The original underlying C class). +') + +dnl _IFACE_PARENT_FROM_OBJECT(object_instance_name) +define(`_IFACE_PARENT_FROM_OBJECT',`dnl +g_type_interface_peek_parent`'( // Get the parent interface of the interface (The original underlying C interface). +g_type_interface_peek`'(G_OBJECT_GET_CLASS`'($1), CppObjectType::get_type`'()) // Get the interface. +)dnl +') + +dnl Bonobo doesn't use the "typedef struct _somestruct struct" system. +define(`_STRUCT_NOT_HIDDEN',`dnl +_PUSH() +dnl Define this macro to be tested for later. +define(`__BOOL_STRUCT_NOT_HIDDEN__',`$1') +_POP() +') + +dnl _STRUCT_PROTOTYPE() +define(`_STRUCT_PROTOTYPE',`dnl +#ifndef DOXYGEN_SHOULD_SKIP_THIS +ifdef(`__BOOL_STRUCT_NOT_HIDDEN__',`dnl +',`dnl +using __CNAME__ = struct _`'__CNAME__; +using __CNAME__`'Class = struct _`'__CNAME__`'Class; +')dnl +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ +undefine(`__BOOL_STRUCT_NOT_HIDDEN__')dnl +') + +dnl _GTKMMPROC_WIN32_NO_WRAP +dnl Just process it to remove it from the generated file. +dnl generate_wrap_init.pl will look for this in the original .hg file. +dnl +define(`_GTKMMPROC_WIN32_NO_WRAP', dnl +`//This is not available on Win32. +//This source file will not be compiled on Win32, +//and no class defined in it will be registered by wrap_init`'(). +')dnl + +dnl _GMMPROC_WRAP_CONDITIONALLY(preprocessor_if/ifdef/ifndef_directive_without_#) +dnl Just process it to remove it from the generated file. +dnl generate_wrap_init.pl will look for this in the original .hg file. +dnl +dnl Example calls: +dnl _GMMPROC_WRAP_CONDITIONALLY(ifndef G_OS_WIN32) # Same as _GTKMMPROC_WIN32_NO_WRAP +dnl _GMMPROC_WRAP_CONDITIONALLY(ifdef GDK_WINDOWING_X11) +dnl _GMMPROC_WRAP_CONDITIONALLY(`if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_QUARTZ)') +dnl +define(`_GMMPROC_WRAP_CONDITIONALLY', dnl +`//This is available only #$1. +//Otherwise this source file will not be compiled, +//and no class defined in it will be registered by wrap_init`'(). +')dnl + +dnl _INCLUDE_IN_WRAP_INIT(file) +dnl Usually used in combination with _GMMPROC_WRAP_CONDITIONALLY. +dnl It does not generate any code in the .h and .cc files. +dnl generate_wrap_init.pl will look for this in the original .hg file. +dnl +define(`_INCLUDE_IN_WRAP_INIT',`')dnl + +dnl _IS_DEPRECATED +dnl ifdef-out the whole .h and .cc files. +dnl generate_wrap_init.pl will look for this in the original .hg file. +define(`_IS_DEPRECATED',`dnl +_PUSH() +dnl Define this macro to be tested for later. See base.m4. +define(`__BOOL_DEPRECATED__',`$1') +_POP() +') + +dnl _NO_WRAP_INIT_REGISTRATION +dnl Used to tag the classes in a file as one not be registered by the +dnl wrap_init() function (all the classes in the file will not be registered). +dnl This macro does not generate any code in the .h and .cc files. +dnl generate_wrap_init.pl will look for this in the original .hg file. +dnl +define(`_NO_WRAP_INIT_REGISTRATION',`')dnl diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/compare.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/compare.m4 new file mode 100644 index 0000000..46afd7e --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/compare.m4 @@ -0,0 +1,118 @@ +dnl $Id$ + +define(`__OPERATOR_DECL',`dnl +/** @relates __NAMESPACE__::__CPPNAME__ + * @param lhs The left-hand side + * @param rhs The right-hand side + * @result The result + */ +bool operator`'$1`'(const __CPPNAME__& lhs, const __CPPNAME__& rhs); +') + +define(`__OPERATOR_IMPL',`dnl +bool operator`'$1`'(const __CPPNAME__& lhs, const __CPPNAME__& rhs) +{' +ifelse`'(`__UNCONST__',`unconst',`dnl + return ($2`'(const_cast<__CNAME__*>(lhs.gobj()), const_cast<__CNAME__*>(rhs.gobj())) $3); +',`dnl else + return ($2`'(lhs.gobj(), rhs.gobj()) $3); +')`dnl endif +} +') + + +dnl +dnl _WRAP_EQUAL(gdk_region_equal, unconst) +dnl +define(`_WRAP_EQUAL',`dnl +pushdef(`__FUNC_EQUAL__',$1)dnl +pushdef(`__UNCONST__',$2)dnl +_PUSH(SECTION_HEADER3) + +__NAMESPACE_BEGIN__ + +__OPERATOR_DECL(`==') +__OPERATOR_DECL(`!=') + +__NAMESPACE_END__ + +_SECTION(SECTION_CC) + +__OPERATOR_IMPL(`==', __FUNC_EQUAL__, `!= 0') +__OPERATOR_IMPL(`!=', __FUNC_EQUAL__, `== 0') + +_POP() +popdef(`__UNCONST__')dnl +popdef(`__FUNC_EQUAL__')dnl +')dnl enddef _WRAP_EQUAL + + +dnl +dnl _WRAP_COMPARE(gtk_tree_path_compare) +dnl +define(`_WRAP_COMPARE',`dnl +pushdef(`__FUNC_COMPARE__',$1)dnl +pushdef(`__UNCONST__',$2)dnl +_PUSH(SECTION_HEADER3) + +__NAMESPACE_BEGIN__ + +__OPERATOR_DECL(`==') +__OPERATOR_DECL(`!=') +__OPERATOR_DECL(`<') +__OPERATOR_DECL(`>') +__OPERATOR_DECL(`<=') +__OPERATOR_DECL(`>=') + +__NAMESPACE_END__ + +_SECTION(SECTION_CC) + +__OPERATOR_IMPL(`==', __FUNC_COMPARE__, `== 0') +__OPERATOR_IMPL(`!=', __FUNC_COMPARE__, `!= 0') +__OPERATOR_IMPL(`<', __FUNC_COMPARE__, `< 0') +__OPERATOR_IMPL(`>', __FUNC_COMPARE__, `> 0') +__OPERATOR_IMPL(`<=', __FUNC_COMPARE__, `<= 0') +__OPERATOR_IMPL(`>=', __FUNC_COMPARE__, `>= 0') + +_POP() +popdef(`__UNCONST__')dnl +popdef(`__FUNC_COMPARE__')dnl +')dnl enddef _WRAP_COMPARE + + +dnl +dnl _WRAP_EQUAL_AND_COMPARE(gtk_text_iter_equal, gtk_text_iter_compare) +dnl +define(`_WRAP_EQUAL_AND_COMPARE',`dnl +pushdef(`__FUNC_EQUAL__',$1)dnl +pushdef(`__FUNC_COMPARE__',$2)dnl +pushdef(`__UNCONST__',$3)dnl +_PUSH(SECTION_HEADER3) + +__NAMESPACE_BEGIN__ + +__OPERATOR_DECL(`==') +__OPERATOR_DECL(`!=') +__OPERATOR_DECL(`<') +__OPERATOR_DECL(`>') +__OPERATOR_DECL(`<=') +__OPERATOR_DECL(`>=') + +__NAMESPACE_END__ + +_SECTION(SECTION_CC) + +__OPERATOR_IMPL(`==', __FUNC_EQUAL__, `!= 0') +__OPERATOR_IMPL(`!=', __FUNC_EQUAL__, `== 0') +__OPERATOR_IMPL(`<', __FUNC_COMPARE__, `< 0') +__OPERATOR_IMPL(`>', __FUNC_COMPARE__, `> 0') +__OPERATOR_IMPL(`<=', __FUNC_COMPARE__, `<= 0') +__OPERATOR_IMPL(`>=', __FUNC_COMPARE__, `>= 0') + +_POP() +popdef(`__UNCONST__')dnl +popdef(`__FUNC_COMPARE__')dnl +popdef(`__FUNC_EQUAL__')dnl +')dnl enddef _WRAP_EQUAL_AND_COMPARE + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert.m4 new file mode 100644 index 0000000..9813f39 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert.m4 @@ -0,0 +1,6 @@ +dnl $Id$ + +# Other libraries, such as libgnomeuimm, can provide their own convert.m4 files, +# Maybe choosing to include the same files as this one. + +include(convert_glibmm.m4) diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_base.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_base.m4 new file mode 100644 index 0000000..8d372fa --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_base.m4 @@ -0,0 +1,88 @@ +dnl $Id$ + +# +# Define a hashing for names +# +define(`__HASH',`__`'m4_translit(`$*',`ABCDEFGHIJKLMNOPQRSTUVWXYZ<>[]&*, ',`abcdefghijklmnopqrstuvwxyzVBNMRSC_')`'') +define(`__EQUIV',`m4_ifdef(EV`'__HASH(`$1'),EV`'__HASH(`$1'),`$1')') + +dnl __HASH2(firsttype, secondtype) +dnl +dnl Provides a textual combination of the two given types which can be used as +dnl a hash to store and retrieve conversions and initializations. It first +dnl sees if the two types have equivalent types that should be used in their +dnl places (using the __EQUIV macro above). Since the types returned by +dnl __EQUIV may contain commas (because of types such as std::map<>), quote the +dnl call to the macro to avoid the types to be interpreted as more than one +dnl argument to the pushdef() calls. Also quote the expansion of the __E1 and +dnl __E2 macros in the m4_ifelse for the same reason. +define(`__HASH2',`dnl +pushdef(`__E1',`__EQUIV(`$1')')pushdef(`__E2',`__EQUIV(`$2')')dnl +m4_ifelse(_QUOTE(__E1),_QUOTE(__E2),`__EQ',__HASH(__E1)`'__HASH(__E2))`'dnl +popdef(`__E1')popdef(`__E2')`'') + +define(`CF__EQ',`$3') + +# _CONVERT(fromtype, totype, name, wrap_line) +# +# Print the conversion from 'fromtype' to 'totype' +define(`_CONVERT',`dnl +m4_ifelse(`$2',void,`$3',`dnl +pushdef(`__COV',`CF`'__HASH2(`$1',`$2')')dnl +m4_ifdef(__COV,`m4_indir(__COV,`$1',`$2',`$3')',` +m4_errprint(`No conversion from $1 to $2 defined (line: $4, parameter name: $3) +') +m4_m4exit(1) +')`'dnl +')`'dnl +') + + +# _CONVERSION(fromtype, totype, conversion) +# +# Functions for populating the tables. +# +define(`_CONVERSION',` +m4_ifelse(`$3',,,`define(CF`'__HASH2(`$1',`$2'),`$3')') +') + +define(`_EQUAL',`define(EV`'__HASH(`$1'),`$2')') + +/*******************************************************************/ + + +define(`__ARG3__',`$`'3') +define(`_CONV_ENUM',`dnl +_CONVERSION(`$1$2', `$2', (($2)(__ARG3__))) +_CONVERSION(`$1$2', `$1::$2', (($1::$2)(__ARG3__))) +_CONVERSION(`$2', `$1$2', (($1$2)(__ARG3__))) +_CONVERSION(`$1::$2', `$1$2', (($1$2)(__ARG3__))) +')dnl + +# e.g. Glib::RefPtr to GdkSomething* +define(`__CONVERT_REFPTR_TO_P',`Glib::unwrap($`'3)') + +define(`__FR2P',`($`'3).gobj()') +define(`__CFR2P',`const_cast<$`'2>($`'3.gobj())') +define(`__FCR2P',`const_cast<$`'2>(($`'3).gobj())') + +define(`__FL2H_SHALLOW',`$`'2($`'3, Glib::OWNERSHIP_SHALLOW)') + +# e.g. Glib::RefPtr to GdkSomething* +#define(`__CONVERT_CONST_REFPTR_TO_P',`const_cast<$`'2>($`'3->gobj())') +define(`__CONVERT_CONST_REFPTR_TO_P',`const_cast<$`'2>(Glib::unwrap($`'3))') + +# The Sun Forte compiler doesn't seem to be able to handle these, so we are using the altlernative, __CONVERT_CONST_REFPTR_TO_P_SUN. +# The Sun compiler gives this error, for instance: +# "widget.cc", line 4463: Error: Overloading ambiguity between "Glib::unwrap(const Glib::RefPtr&)" and +# "Glib::unwrap(const Glib::RefPtr&)". +# +define(`__CONVERT_CONST_REFPTR_TO_P_SUN',`const_cast<$`'2>(Glib::unwrap<$1>($`'3))') + + +#include(convert_gtk.m4) +#include(convert_pango.m4) +#include(convert_gdk.m4) +#include(convert_atk.m4) +include(convert_glib.m4) + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_gio.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_gio.m4 new file mode 100644 index 0000000..e6f7cb4 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_gio.m4 @@ -0,0 +1,341 @@ +_CONV_ENUM(G,AppInfoCreateFlags) +_CONV_ENUM(G,ApplicationFlags) +_CONV_ENUM(G,AskPasswordFlags) +_CONV_ENUM(G,BusType) +_CONV_ENUM(G,ConverterFlags) +_CONV_ENUM(G,ConverterResult) +_CONV_ENUM(G,CredentialsType) +_CONV_ENUM(G,DataStreamByteOrder) +_CONV_ENUM(G,DataStreamNewlineType) +_CONV_ENUM(GDBus,CallFlags) +_CONV_ENUM(GDBus,CapabilityFlags) +_CONV_ENUM(GDBus, InterfaceSkeletonFlags) +_CONV_ENUM(GDBus,MessageFlags) +_CONV_ENUM(GDBus,MessageHeaderField) +_CONV_ENUM(GDBus,MessageType) +_CONV_ENUM(GDBus,ProxyFlags) +_CONV_ENUM(GDBus,SendMessageFlags) +_CONV_ENUM(GDBus,ServerFlags) +_CONV_ENUM(G,DriveStartFlags) +_CONV_ENUM(G,DriveStartFlags) +_CONV_ENUM(G,DriveStartStopType) +_CONV_ENUM(G,EmblemOrigin) +_CONV_ENUM(G,FileAttributeInfoFlags) +_CONV_ENUM(G,FileAttributeStatus) +_CONV_ENUM(G,FileAttributeType) +_CONV_ENUM(G,FileCopyFlags) +_CONV_ENUM(G,FileCreateFlags) +_CONV_ENUM(G,FileMonitorEvent) +_CONV_ENUM(G,FileMonitorFlags) +_CONV_ENUM(G,FileQueryInfoFlags) +_CONV_ENUM(G,FileType) +_CONV_ENUM(G,MountMountFlags) +_CONV_ENUM(G,MountOperationResult) +_CONV_ENUM(G,MountUnmountFlags) +_CONV_ENUM(G,NetworkConnectivity) +_CONV_ENUM(G,NotificationPriority) +_CONV_ENUM(G,OutputStreamSpliceFlags) +_CONV_ENUM(G,PasswordSave) +_CONV_ENUM(G,ResolverRecordType) +_CONV_ENUM(G,ResourceFlags) +_CONV_ENUM(G,ResourceLookupFlags) +_CONV_ENUM(G,SettingsBindFlags) +_CONV_ENUM(G,SocketClientEvent) +_CONV_ENUM(G,SocketFamily) +_CONV_ENUM(G,SocketMsgFlags) +_CONV_ENUM(G,SocketProtocol) +_CONV_ENUM(G,SocketType) +_CONV_ENUM(G,TlsCertificateFlags) +_CONV_ENUM(G,TlsCertificateRequestFlags) +_CONV_ENUM(G,TlsDatabaseVerifyFlags) +_CONV_ENUM(G,TlsDatabaseLookupFlags) +_CONV_ENUM(G,TlsInteractionResult) +_CONV_ENUM(G,TlsPasswordFlags) +_CONV_ENUM(G,TlsRehandshakeMode) +_CONV_ENUM(G,UnixSocketAddressType) +_CONV_ENUM(G,ZlibCompressorFormat) + +# Action +_CONVERSION(`GAction*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GAction*',__CONVERT_REFPTR_TO_P) + +# ActionGroup +_CONVERSION(`const Glib::RefPtr&',`GActionGroup*',__CONVERT_REFPTR_TO_P) + +# AppInfo +_CONVERSION(`GAppInfo*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GAppLaunchContext*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`GAppLaunchContext*',`const Glib::RefPtr&',Glib::wrap($3)) +_CONVERSION(`const Glib::RefPtr&',`GAppInfo*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`Glib::RefPtr',`GAppInfo*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`GAppInfo*',`const Glib::RefPtr&',`Glib::wrap($3)') +_CONVERSION(`const Glib::ListHandle< Glib::RefPtr >&',`GList*',`$3.data()') + +# Application +_CONVERSION(`GApplication*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GApplication*',__CONVERT_CONST_REFPTR_TO_P) + +# ApplicationCommandLine +_CONVERSION(`const Glib::RefPtr&',`GApplicationCommandLine*',__CONVERT_CONST_REFPTR_TO_P) + +# AsyncResult +_CONVERSION(`Glib::RefPtr',`GObject*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&',`GAsyncResult*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`Glib::RefPtr&',`GAsyncResult*',__CONVERT_REFPTR_TO_P) + +#ByteArray +_CONVERSION(`const Glib::RefPtr&',`GByteArray*',`Glib::unwrap($3)') + +# Cancellable +_CONVERSION(`const Glib::RefPtr&',`GCancellable*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&',`GCancellable*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`GCancellable*', `Glib::RefPtr', `Glib::wrap($3)') +_CONVERSION(`GCancellable*', `const Glib::RefPtr&', `Glib::wrap($3)') + +# Converter +_CONVERSION(`const Glib::RefPtr&',`GConverter*',`Glib::unwrap($3)') +_CONVERSION(`GConverter*',`Glib::RefPtr',`Glib::wrap($3)') + +# Credentials +_CONVERSION(`const Glib::RefPtr&',`GCredentials*',__CONVERT_CONST_REFPTR_TO_P_SUN(Gio::Credentials)) +_CONVERSION(`const Glib::RefPtr&',`GCredentials*',__CONVERT_CONST_REFPTR_TO_P_SUN(Gio::Credentials)) +_CONVERSION(`GCredentials*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GCredentials*',`Glib::RefPtr',`Glib::wrap($3)') + +# DBusConnection +_CONVERSION(`const Glib::RefPtr&',`GDBusConnection*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&',`GDBusConnection*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`GDBusConnection*',`Glib::RefPtr',Glib::wrap($3)) +_CONVERSION(`GDBusConnection*',`Glib::RefPtr',Glib::wrap($3)) +_CONVERSION(`GDBusConnection*',`Glib::RefPtr',Glib::wrap($3)) +_CONVERSION(`GDBusConnection*',`Glib::RefPtr',Glib::wrap($3)) + +# DBusMessage +_CONVERSION(`const Glib::RefPtr&',`GDBusMessage*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`GDBusMessage*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GDBusMessage*',__CONVERT_CONST_REFPTR_TO_P) + +# DBus*Info +_CONVERSION(`GDBusMethodInfo*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GDBusSignalInfo*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GDBusPropertyInfo*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GDBusNodeInfo*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GDBusInterfaceInfo*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GDBusInterfaceInfo*',`Glib::unwrap($3)') +_CONVERSION(`Glib::RefPtr',`GDBusInterfaceInfo*',`Glib::unwrap($3)') +_CONVERSION(`GDBusInterfaceInfo*',`const Glib::RefPtr',`Glib::wrap($3)') + +# DBusInterface +_CONVERSION(`GDBusInterface*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`Glib::RefPtr',`GDBusInterface*',`Glib::unwrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GDBusInterface*',`Glib::unwrap($3)') + +# DBusMethodInvocation +_CONVERSION(`const Glib::RefPtr&',`GDBusMethodInvocation*',`Glib::unwrap($3)') + +# DBusObject +_CONVERSION(`GDBusObject*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GDBusObject*',`Glib::unwrap($3)') +_CONVERSION(`Glib::RefPtr',`GDBusObject*',`Glib::unwrap($3)') + +# DBusProxy +_CONVERSION(`GDBusProxy*',`Glib::RefPtr',`Glib::wrap($3)') + +# DesktopAppInfo +_CONVERSION(`GDesktopAppInfo*', `Glib::RefPtr', `Glib::wrap($3)') + +# Drive +_CONVERSION(`GDrive*',`Glib::RefPtr',`Glib::wrap($3)') + +# File +_CONVERSION(`return-char*',`std::string',`Glib::convert_return_gchar_ptr_to_stdstring($3)') +_CONVERSION(`Glib::RefPtr',`GFile*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&',`GFile*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&',`GFile*',__CONVERT_CONST_REFPTR_TO_P_SUN(Gio::File)) +_CONVERSION(`GFile*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GFile*',`Glib::RefPtr',`Glib::wrap($3)') + +# FileAttribute +_CONVERSION(`GFileAttributeValue*',`FileAttributeValue',`Glib::wrap($3)') +_CONVERSION(`const FileAttributeValue&',`const GFileAttributeValue*',`$3.gobj()') +_CONVERSION(`GFileAttributeInfoList*',`Glib::RefPtr',`Glib::wrap($3)') + +# FileAttributeMatcher +_CONVERSION(`GFileAttributeMatcher*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GFileAttributeMatcher*',`const_cast(Glib::unwrap($3))') + +#FileEnumerator +_CONVERSION(`GFileEnumerator*',`Glib::RefPtr',`Glib::wrap($3)') + +# FileInfo +_CONVERSION(`GFileInfo*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`Glib::RefPtr&',`GFileInfo*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&',`GFileInfo*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`Glib::TimeVal&', `GTimeVal*', static_cast<$2>(&$3)) +_CONVERSION(`const Glib::TimeVal&', `GTimeVal*', const_cast(static_cast(&$3))) +_CONVERSION(`const Glib::RefPtr&',`GFileAttributeMatcher*',__CONVERT_CONST_REFPTR_TO_P) + +# FileInputStream +_CONVERSION(`GFileInputStream*',`Glib::RefPtr',`Glib::wrap($3)') + +# FileMonitor +_CONVERSION(`GFileMonitor*',`Glib::RefPtr',`Glib::wrap($3)') + +# FileOutputStream +_CONVERSION(`GFileOutputStream*',`Glib::RefPtr',`Glib::wrap($3)') + +# FilterInputStream +#_CONVERSION(`GFilterInputStream*',`Glib::RefPtr',`Glib::wrap($3)') + +_CONVERSION(`GFileIOStream*',`Glib::RefPtr',`Glib::wrap($3)') + +# Icon +_CONVERSION(`GIcon*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GIcon*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`Glib::RefPtr',`GIcon*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`Glib::RefPtr',`GIcon*',__CONVERT_CONST_REFPTR_TO_P) + +# Emblem +_CONVERSION(`const Glib::RefPtr&',`GEmblem*',__CONVERT_CONST_REFPTR_TO_P) + +# IOStream +_CONVERSION(`GIOStream*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GIOStream*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GIOStream*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GIOStream*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GIOStream*',`Glib::unwrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GIOStream*',`const_cast(Glib::unwrap($3))') + +# InetAddress +_CONVERSION(`const Glib::RefPtr&',`GInetAddress*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&',`GInetAddress*',`const_cast(Glib::unwrap($3))') +_CONVERSION(`GInetAddress*',`Glib::RefPtr',`Glib::wrap($3)') + +# InputStream +_CONVERSION(`const Glib::RefPtr&',`GInputStream*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&',`GInputStream*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`GInputStream*',`Glib::RefPtr',`Glib::wrap($3)') + +# MenuAttributeIter +_CONVERSION(`GMenuAttributeIter*',`Glib::RefPtr',`Glib::wrap($3)') + +# MenuLinkIter +_CONVERSION(`GMenuLinkIter*',`Glib::RefPtr',`Glib::wrap($3)') + +# MenuModel +_CONVERSION(`GMenuModel*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GMenuModel*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GMenuModel*',__CONVERT_CONST_REFPTR_TO_P) + +# MenuItem +_CONVERSION(`GMenuItem*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GMenuItem*',__CONVERT_CONST_REFPTR_TO_P) + +# Mount +_CONVERSION(`GMount*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GMount*',__CONVERT_CONST_REFPTR_TO_P) + +# MountOptions +_CONVERSION(`GPasswordSave',`PasswordSave',`($2)$3') +_CONVERSION(`PasswordSave',`GPasswordSave',`($2)$3') + +#MountOperation +#_CONVERSION(`GAskPasswordFlags',`AskPasswordFlags',`($2)$3') + +# NetworkMonitor +_CONVERSION(`GNetworkMonitor*',`Glib::RefPtr',`Glib::wrap($3)') + + +# Notification +_CONVERSION(`GNotification*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GNotification*',__CONVERT_CONST_REFPTR_TO_P) + +# OutputStream +_CONVERSION(`GOutputStream*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GOutputStream*',__CONVERT_CONST_REFPTR_TO_P) + +_CONVERSION(`const Glib::RefPtr&',`GProxyResolver*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`GProxyResolver*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GProxy*',`Glib::RefPtr',`Glib::wrap($3)') + +_CONVERSION(`const Glib::RefPtr&',`GProxyAddress*',__CONVERT_CONST_REFPTR_TO_P) + +#Resource +_CONVERSION(`GResource*',`Glib::RefPtr',`Glib::wrap($3)') + +#Settings +_CONVERSION(`GSettings*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::StringArrayHandle&',`const gchar*-const*',`($3).data()') +_CONVERSION(`const Glib::RefPtr&',`GSettingsBackend*',__CONVERT_REFPTR_TO_P) + +_CONVERSION(`GSettingsSchemaKey*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GSettingsSchemaKey*',`Glib::RefPtr',`Glib::wrap($3)') + +_CONVERSION(`GSettingsSchema*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GSettingsSchema*',`Glib::RefPtr',`Glib::wrap($3)') + +_CONVERSION(`GSettingsSchemaSource*',`Glib::RefPtr',`Glib::wrap($3)') + + +#Socket +_CONVERSION(`const Glib::RefPtr&',`GSocket*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`GSocket*',`Glib::RefPtr',`Glib::wrap($3)') + +#SocketAddress +_CONVERSION(`GSocketAddress*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GSocketAddress*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`Glib::RefPtr&',`GSocketAddress*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`GSocketAddressEnumerator*',`Glib::RefPtr',`Glib::wrap($3)') + +#SocketConnectable +_CONVERSION(`const Glib::RefPtr&',`GSocketConnectable*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&', `GSocketConnectable*', `const_cast(Glib::unwrap($3))') +_CONVERSION(`GSocketConnectable*',`Glib::RefPtr',`Glib::wrap($3)') + +#SocketConnection +_CONVERSION(`GSocketConnection*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GSocketConnection*',__CONVERT_CONST_REFPTR_TO_P) + +#SocketControlMessage +_CONVERSION(`GSocketControlMessage*',`Glib::RefPtr',`Glib::wrap($3)') + +#TimeZoneMonitor +_CONVERSION(`GTimeZoneMonitor*',`Glib::RefPtr',`Glib::wrap($3)') + +#TlsCertificate +_CONVERSION(`GTlsCertificate*', `Glib::RefPtr', `Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&', `GTlsCertificate*', `const_cast(Glib::unwrap($3))') +_CONVERSION(`const Glib::RefPtr&',`GTlsCertificate*',`Glib::unwrap($3)') + +#TlsConnection: +_CONVERSION(`const Glib::RefPtr&',`GTlsConnection*',`Glib::unwrap($3)') + +#TlsClientConnection: +_CONVERSION(`const Glib::RefPtr&',`GTlsClientConnection*',__CONVERT_REFPTR_TO_P) + +#TlsDatabase +_CONVERSION(`GTlsDatabase*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GTlsDatabase*',__CONVERT_REFPTR_TO_P) + +#TlsInteraction +_CONVERSION(`const Glib::RefPtr&',`GTlsInteraction*',`Glib::unwrap($3)') +_CONVERSION(`GTlsInteraction*',`Glib::RefPtr',`Glib::wrap($3)') + +#TlsPassword +_CONVERSION(`const Glib::RefPtr&',`GTlsPassword*',__CONVERT_REFPTR_TO_P) + +#UnixFDList +_CONVERSION(`GUnixFDList*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GUnixFDList*',__CONVERT_REFPTR_TO_P) + +#Volume +_CONVERSION(`GVolume*',`Glib::RefPtr',`Glib::wrap($3)') + +# VolumeMonitor +_CONVERSION(`GVolumeMonitor*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GDrive*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&',`GMount*',__CONVERT_CONST_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&',`GVolume*',__CONVERT_CONST_REFPTR_TO_P) + +#Vfs +_CONVERSION(`GVfs*', `Glib::RefPtr', `Glib::wrap($3)') diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_glib.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_glib.m4 new file mode 100644 index 0000000..0c70cdf --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_glib.m4 @@ -0,0 +1,180 @@ +dnl +dnl Glib C names have prefix 'G' but C++ namespace Glib +dnl +define(`_CONV_GLIB_ENUM',`dnl +_CONVERSION(`G$1', `$1', (($1)(__ARG3__))) +_CONVERSION(`G$1', `Glib::$1', ((Glib::$1)(__ARG3__))) +_CONVERSION(`$1', `G$1', ((G$1)(__ARG3__))) +_CONVERSION(`Glib::$1', `G$1', ((G$1)(__ARG3__))) +')dnl + +_EQUAL(gchar,char) +_EQUAL(gchar*,char*) +_EQUAL(gchar**,char**) +_EQUAL(gint**,int**) +_EQUAL(gchar**,char*[]) +_EQUAL(const gchar*,const char*) +_EQUAL(const-gchar*,const char*) +_EQUAL(gpointer*,void**) + +_EQUAL(gboolean,int) +_EQUAL(gint,int) +_EQUAL(gint*,int*) +_EQUAL(gint&,int&) +_EQUAL(guint,unsigned int) +_EQUAL(guint*,unsigned int*) +_EQUAL(guint&,unsigned int&) +_EQUAL(gdouble,double) +_EQUAL(gdouble*,double*) +_EQUAL(gfloat, float) +_EQUAL(float*,gfloat[]) + +_EQUAL(const-char*,const-gchar*) +_EQUAL(return-char*,return-gchar*) +_EQUAL(gpointer,void*) +_EQUAL(gconstpointer,const void*) + +_EQUAL(GdkAtom,Gdk::Atom) +_EQUAL(GTimeSpan,TimeSpan) + +# Basic Types +_CONVERSION(`int',`bool',`$3') +_CONVERSION(`bool',`int',`static_cast($3)') +_CONVERSION(`unsigned int',`bool',`$3') +_CONVERSION(`bool',`unsigned int',`static_cast($3)') +_CONVERSION(`bool&',`gboolean*',`(($2) &($3))') +_CONVERSION(`int&',`gint*',`&($3)') +_CONVERSION(`gint*',`int&',`*($3)') +_CONVERSION(`guint&',`guint*',`&($3)') +_CONVERSION(`guint64&',`guint64*',`&($3)') +_CONVERSION(`double&',`gdouble*',`&($3)') +_CONVERSION(`float&',`gfloat*',`&($3)') +_CONVERSION(`gchar**',`char**',`$3') +_CONVERSION(`char**',`gchar**',`$3') +_CONVERSION(`gpointer&',`gpointer*',`&($3)') +_CONVERSION(`void*&',`gpointer*',`&($3)') + +_CONVERSION(`GError*&',`GError**',`&($3)') + +dnl +dnl # These are for fixmegtkconst +_CONVERSION(`const guchar*',`guchar*',`const_cast($3)',`$3') + +_CONV_GLIB_ENUM(BindingFlags) +_CONV_GLIB_ENUM(IOCondition) +_CONV_GLIB_ENUM(IOFlags) +_CONV_GLIB_ENUM(IOStatus) +_CONV_GLIB_ENUM(KeyFileFlags) +_CONV_GLIB_ENUM(OptionArg) +_CONV_GLIB_ENUM(RegexCompileFlags) +_CONV_GLIB_ENUM(RegexMatchFlags) +_CONV_GLIB_ENUM(SeekType) +_CONV_GLIB_ENUM(TimeType) + + +_CONVERSION(`gunichar&',`gunichar*',`&($3)') +_CONVERSION(`gsize&',`gsize*',`&($3)') + + +# Strings: +define(`__GCHARP_TO_USTRING',`Glib::convert_const_gchar_ptr_to_ustring($`'3)') +define(`__GCHARP_TO_STDSTRING',`Glib::convert_const_gchar_ptr_to_stdstring($`'3)') + +_CONVERSION(`const Glib::ustring&',`const char*',`$3.c_str()') +_CONVERSION(`const Glib::ustring&', `const guchar*', `(($2)$3.c_str())') +_CONVERSION(`const std::string&',`const char*',`$3.c_str()') +_CONVERSION(`std::string',`const char*',`$3.c_str()') +_CONVERSION(`const Glib::ustring&',`gchar*',`const_cast($3.c_str())') +_CONVERSION(`gchar*',`Glib::ustring',__GCHARP_TO_USTRING) +_CONVERSION(`const-gchar*',`Glib::ustring',__GCHARP_TO_USTRING) +_CONVERSION(`const-guchar*',`Glib::ustring',__GCHARP_TO_USTRING) +_CONVERSION(`const gchar*',`Glib::ustring',__GCHARP_TO_USTRING) +_CONVERSION(`const char*',`Glib::ustring',__GCHARP_TO_USTRING) +_CONVERSION(`const char*',`const Glib::ustring&',__GCHARP_TO_USTRING) +_CONVERSION(`const char*',`std::string',__GCHARP_TO_STDSTRING) +_CONVERSION(`const char*',`const-gchar*',`$3') +_CONVERSION(`const-gchar*',`const char*',`$3') +_CONVERSION(`const char*',`const std::string&',__GCHARP_TO_STDSTRING) +_CONVERSION(`char*',`std::string',__GCHARP_TO_STDSTRING) +_CONVERSION(`std::string', `char*', `g_strdup(($3).c_str())') +_CONVERSION(`const std::string&', `char*', `g_strdup(($3).c_str())') +_CONVERSION(`Glib::ustring', `char*', `g_strdup(($3).c_str())') + +_CONVERSION(`return-gchar*',`Glib::ustring',`Glib::convert_return_gchar_ptr_to_ustring($3)') +_CONVERSION(`return-gchar*',`std::string',`Glib::convert_return_gchar_ptr_to_stdstring($3)') +_CONVERSION(`return-char*',`Glib::ustring',`Glib::convert_return_gchar_ptr_to_ustring($3)') + +dnl DateTime +_CONVERSION(`GDateTime*',`DateTime',`Glib::wrap($3)') +_CONVERSION(`GDateTime*',`Glib::DateTime',`Glib::wrap($3)') +_CONVERSION(`const DateTime&',`GDateTime*',`const_cast<$2>($3.gobj())') + +dnl KeyFile +_CONVERSION(`Glib::KeyFile&',`GKeyFile*',`($3).gobj()') + +dnl Object +_CONVERSION(`const Glib::RefPtr&',`GObject*',__CONVERT_REFPTR_TO_P) +_CONVERSION(`const Glib::RefPtr&',`GObject*',__CONVERT_CONST_REFPTR_TO_P_SUN(Glib::Object)) +_CONVERSION(`GObject*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GObject*',`Glib::RefPtr',`Glib::wrap($3)') + +_CONVERSION(`GObject*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GObject*',`Glib::RefPtr',`Glib::wrap($3)') + +dnl OptionGroup +_CONVERSION(`OptionGroup&',`GOptionGroup*',`($3).gobj()') +_CONVERSION(`Glib::OptionGroup&',`GOptionGroup*',`($3).gobj()') + +dnl Bytes +_CONVERSION(`GBytes*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GBytes*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`const Glib::RefPtr&',`GBytes*',__CONVERT_CONST_REFPTR_TO_P_SUN(Glib::Bytes))) + +dnl ByteArray +_CONVERSION(`GByteArray*',`Glib::RefPtr',`Glib::wrap($3)') + +dnl Regex +_CONVERSION(`GRegex*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GRegex*',`Glib::RefPtr',`Glib::wrap($3)') + +#Source +_CONVERSION(`GSource*',`Glib::RefPtr',`Glib::wrap($3)') + +dnl TimeVal +_CONVERSION(`const TimeVal&',`const GTimeVal*',`&($3)') +_CONVERSION(`TimeVal&',`GTimeVal*',`&($3)') + +dnl TimeZone +_CONVERSION(`GTimeZone*',`TimeZone',`Glib::wrap($3)') +_CONVERSION(`const TimeZone&',`GTimeZone*',`const_cast<$2>($3.gobj())') + +dnl ValueBase +_CONVERSION(`Glib::ValueBase&',`GValue*',`($3).gobj()') +_CONVERSION(`const Glib::ValueBase&',`const GValue*',`($3).gobj()') +_CONVERSION(`const Glib::ValueBase&',`GValue*',`const_cast(($3).gobj())') +_CONVERSION(`GValue*', `Glib::ValueBase&', `*reinterpret_cast($3)') +_CONVERSION(`const GValue*', `const Glib::ValueBase&', `*reinterpret_cast($3)') + +#Variant +_CONVERSION(`GVariant*',`Glib::VariantBase',`Glib::wrap($3, false)') +_CONVERSION(`GVariant*',`Glib::VariantContainerBase',`Glib::VariantContainerBase($3, false)') +_CONVERSION(`const VariantBase&',`GVariant*',`const_cast(($3).gobj())') +_CONVERSION(`const Glib::VariantBase&',`GVariant*',`const_cast(($3).gobj())') +_CONVERSION(`const Glib::VariantContainerBase&',`GVariant*',`const_cast(($3).gobj())') + +# VariantContainerBase +_CONVERSION(`const VariantContainerBase&',`GVariant*',`const_cast(($3).gobj())') + +#VariantDict +_CONVERSION(`GVariantDict*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GVariantDict*',`Glib::RefPtr',`Glib::wrap($3)') +_CONVERSION(`GVariantDict*',`Glib::RefPtr',`Glib::wrap($3)') + +#VariantType +_CONVERSION(`const GVariantType*',`Glib::VariantType',`Glib::wrap(const_cast($3), true)') +_CONVERSION(`const VariantType&',`const GVariantType*',`($3).gobj()') +_CONVERSION(`const Glib::VariantType&',`const GVariantType*',`($3).gobj()') +_CONVERSION(`GVariantType*',`VariantType',`Glib::wrap($3)') + +dnl Miscellaneous +_CONVERSION(`gint64&',`gint64*',`&($3)') diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_glibmm.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_glibmm.m4 new file mode 100644 index 0000000..2da764e --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/convert_glibmm.m4 @@ -0,0 +1,6 @@ +dnl $Id$ + +include(convert_base.m4) +include(convert_glib.m4) +include(convert_gio.m4) + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/ctor.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/ctor.m4 new file mode 100644 index 0000000..c9dd414 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/ctor.m4 @@ -0,0 +1,71 @@ +dnl $Id$ +dnl +dnl M4 macros for constructor generation. +dnl + +dnl Code to sink a GInitiallyUnowned: +dnl +m4_define(`_INITIALLY_UNOWNED_SINK',`dnl +ifdef(`__BOOL_DERIVES_INITIALLY_UNOWNED__',`dnl + if(gobject_ && g_object_is_floating (gobject_)) + g_object_ref_sink(gobject_); //Stops it from being floating. +',`')') + +dnl Declares and implements the default constructor +dnl +m4_define(`_CTOR_DEFAULT',`dnl +__CPPNAME__`'(); +_PUSH(SECTION_CC) +__CPPNAME__::__CPPNAME__`'() +: + // Mark this class as non-derived to allow C++ vfuncs to be skipped. + Glib::ObjectBase(nullptr), + __CPPPARENT__`'(Glib::ConstructParams(__BASE__`'_class_.init())) +{ + _IMPORT(SECTION_CC_INITIALIZE_CLASS_EXTRA) + +_INITIALLY_UNOWNED_SINK +} + +_POP()') + +dnl Constructors with property initializations. +dnl +dnl _CTOR_IMPL(cppname, cname, cppargs, c_varargs) +dnl $1 $2 $3 $4 +dnl +m4_define(`_CTOR_IMPL',`dnl +_PUSH(SECTION_CC) +__CPPNAME__::$1`'($3) +: + // Mark this class as non-derived to allow C++ vfuncs to be skipped. + Glib::ObjectBase(nullptr), + __CPPPARENT__`'(Glib::ConstructParams(__BASE__`'_class_.init()m4_ifelse(`$4',,,`, $4, nullptr'))) +{ + _IMPORT(SECTION_CC_INITIALIZE_CLASS_EXTRA) + +_INITIALLY_UNOWNED_SINK +} + +_POP()') + +m4_define(`_CONSTRUCT', + `// Mark this class as non-derived to allow C++ vfuncs to be skipped. + Glib::ObjectBase(nullptr), + __CPPPARENT__`'(Glib::ConstructParams(__BASE__`'_class_.init()m4_ifelse(`$1',,,`, $@, nullptr')))') + +dnl _CONSTRUCT() does not deal with multiple class definitions in one file. +dnl If necessary, _CONSTRUCT_SPECIFIC(BaseClass, Class) must be used instead. +dnl +m4_define(`_CONSTRUCT_SPECIFIC', + `// Mark this class as non-derived to allow C++ vfuncs to be skipped. + Glib::ObjectBase(nullptr), + $1`'(Glib::ConstructParams(_LOWER(`$2')_class_.init()m4_ifelse(`$3',,,`, m4_shift(m4_shift($@)), nullptr')))') + +dnl Extra code for initialize_class. +dnl Not commonly used. +dnl +m4_define(`_INITIALIZE_CLASS_EXTRA',`dnl +_PUSH(SECTION_CC_INITIALIZE_CLASS_EXTRA) +$1 +_POP()') diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/doc.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/doc.m4 new file mode 100644 index 0000000..aef3bf9 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/doc.m4 @@ -0,0 +1,3 @@ +dnl $Id$ + +divert(-1) diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/enum.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/enum.m4 new file mode 100644 index 0000000..9064e35 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/enum.m4 @@ -0,0 +1,105 @@ +dnl +dnl _ENUM(cpp_type, c_type, value_suffix, `element_list', `no_gtype', `optional_refdoc_comment', 'deprecated') +dnl $1 $2 $3 $4 $5 $6 $7 +dnl +m4_define(`_ENUM',`dnl +_PUSH() + +m4_define(`__ENUM_CPPNAME__',`$1') +m4_define(`__ENUM_CNAME__',`$2') +m4_define(`__ENUM_VALUE_BASE__',`Glib::Value_$3<__NAMESPACE__::__ENUM_CPPNAME__>') + +_POP() +dnl +dnl // Define a new Doxygen group if this is the first enum in the file. +dnl +m4_ifdef(`__DOCGROUP_'__MODULE_CANONICAL__`_ENUMS__',,`dnl else +m4_define(`__DOCGROUP_'__MODULE_CANONICAL__`_ENUMS__')dnl +/** @addtogroup '__MODULE_CANONICAL__`Enums __MODULE_CANONICAL__ Enums and Flags */ + +')dnl endif +dnl +dnl +ifelse(`$7',,,`_DEPRECATE_IFDEF_START')`'dnl The expansion of _DEPRECATE_IFDEF_START ends with a newline +/** $6 + * + * @ingroup __MODULE_CANONICAL__`'Enums +m4_ifelse($3,Flags,`dnl + * @par Bitwise operators: + * %__ENUM_CPPNAME__ operator|(__ENUM_CPPNAME__, __ENUM_CPPNAME__)
+ * %__ENUM_CPPNAME__ operator&(__ENUM_CPPNAME__, __ENUM_CPPNAME__)
+ * %__ENUM_CPPNAME__ operator^(__ENUM_CPPNAME__, __ENUM_CPPNAME__)
+ * %__ENUM_CPPNAME__ operator~(__ENUM_CPPNAME__)
+ * %__ENUM_CPPNAME__& operator|=(__ENUM_CPPNAME__&, __ENUM_CPPNAME__)
+ * %__ENUM_CPPNAME__& operator&=(__ENUM_CPPNAME__&, __ENUM_CPPNAME__)
+ * %__ENUM_CPPNAME__& operator^=(__ENUM_CPPNAME__&, __ENUM_CPPNAME__)
+')dnl endif + */ +enum __ENUM_CPPNAME__ +{ +$4 +}; +m4_ifelse($3,Flags,`dnl + +/** @ingroup __MODULE_CANONICAL__`'Enums */ +inline __ENUM_CPPNAME__ operator|(__ENUM_CPPNAME__ lhs, __ENUM_CPPNAME__ rhs) + { return static_cast<__ENUM_CPPNAME__>(static_cast(lhs) | static_cast(rhs)); } + +/** @ingroup __MODULE_CANONICAL__`'Enums */ +inline __ENUM_CPPNAME__ operator&(__ENUM_CPPNAME__ lhs, __ENUM_CPPNAME__ rhs) + { return static_cast<__ENUM_CPPNAME__>(static_cast(lhs) & static_cast(rhs)); } + +/** @ingroup __MODULE_CANONICAL__`'Enums */ +inline __ENUM_CPPNAME__ operator^(__ENUM_CPPNAME__ lhs, __ENUM_CPPNAME__ rhs) + { return static_cast<__ENUM_CPPNAME__>(static_cast(lhs) ^ static_cast(rhs)); } + +/** @ingroup __MODULE_CANONICAL__`'Enums */ +inline __ENUM_CPPNAME__ operator~(__ENUM_CPPNAME__ flags) + { return static_cast<__ENUM_CPPNAME__>(~static_cast(flags)); } + +/** @ingroup __MODULE_CANONICAL__`'Enums */ +inline __ENUM_CPPNAME__& operator|=(__ENUM_CPPNAME__& lhs, __ENUM_CPPNAME__ rhs) + { return (lhs = static_cast<__ENUM_CPPNAME__>(static_cast(lhs) | static_cast(rhs))); } + +/** @ingroup __MODULE_CANONICAL__`'Enums */ +inline __ENUM_CPPNAME__& operator&=(__ENUM_CPPNAME__& lhs, __ENUM_CPPNAME__ rhs) + { return (lhs = static_cast<__ENUM_CPPNAME__>(static_cast(lhs) & static_cast(rhs))); } + +/** @ingroup __MODULE_CANONICAL__`'Enums */ +inline __ENUM_CPPNAME__& operator^=(__ENUM_CPPNAME__& lhs, __ENUM_CPPNAME__ rhs) + { return (lhs = static_cast<__ENUM_CPPNAME__>(static_cast(lhs) ^ static_cast(rhs))); } +')dnl endif Flags +ifelse(`$7',,,`_DEPRECATE_IFDEF_END')`'dnl The expansion of _DEPRECATE_IFDEF_END ends with a newline + +m4_ifelse($5,`NO_GTYPE',,`dnl else +__NAMESPACE_END__ + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +namespace Glib +{ + +ifelse(`$7',,,`_DEPRECATE_IFDEF_START')`'dnl +template <> +class Value<__NAMESPACE__::__ENUM_CPPNAME__> : public __ENUM_VALUE_BASE__ +{ +public: + static GType value_type() G_GNUC_CONST; +}; +ifelse(`$7',,,`_DEPRECATE_IFDEF_END')`'dnl + +} // namespace Glib +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + +__NAMESPACE_BEGIN__ +_PUSH(SECTION_SRC_GENERATED) +ifelse(`$7',,,`_DEPRECATE_IFDEF_START')`'dnl +// static +GType Glib::Value<__NAMESPACE__::__ENUM_CPPNAME__>::value_type() +{ + return _GET_TYPE_FUNC(__ENUM_CNAME__); +} +ifelse(`$7',,,`_DEPRECATE_IFDEF_END')`'dnl + +_POP() +')dnl endif !NO_GTYPE +')dnl enddef _ENUM diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/gerror.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/gerror.m4 new file mode 100644 index 0000000..f7515bb --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/gerror.m4 @@ -0,0 +1,100 @@ +dnl +dnl _GERROR(cpp_type, c_type, domain, `element_list', `no_gtype', `class_docs', `enum_docs', 'deprecated') +dnl $1 $2 $3 $4 $5 $6 $7 $8 +dnl + +m4_define(`_GERROR',`dnl +_PUSH() +dnl +dnl Define the args for later macros +m4_define(`__CPPNAME__',`$1') +m4_define(`__CNAME__',`$2') +m4_define(`__CQUARK__',`$3') +m4_define(`__VALUE_BASE__',`Glib::Value_Enum<__NAMESPACE__::__CPPNAME__::Code>') +_POP() +ifelse(`$8',,,`_DEPRECATE_IFDEF_START')`'dnl The expansion of _DEPRECATE_IFDEF_START ends with a newline +ifelse(`$6',,,`dnl +/** $6 + */ +')dnl +class __CPPNAME__ : public Glib::Error +{ +public: + /** $7 + */ + enum Code + { +$4 + }; + + __CPPNAME__`'(Code error_code, const Glib::ustring& error_message); + explicit __CPPNAME__`'(GError* gobject); + Code code() const; + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +private: + + static void throw_func(GError* gobject); + + friend void wrap_init(); // uses throw_func() + + _IMPORT(SECTION_H_GERROR_PRIVATE) +#endif //DOXYGEN_SHOULD_SKIP_THIS +}; +ifelse(`$8',,,`_DEPRECATE_IFDEF_END')`'dnl The expansion of _DEPRECATE_IFDEF_END ends with a newline + +m4_ifelse($5,`NO_GTYPE',,`dnl else +__NAMESPACE_END__ + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +namespace Glib +{ + +ifelse(`$8',,,`_DEPRECATE_IFDEF_START')`'dnl +template <> +class Value<__NAMESPACE__::__CPPNAME__::Code> : public __VALUE_BASE__ +{ +public: + static GType value_type() G_GNUC_CONST; +}; +ifelse(`$8',,,`_DEPRECATE_IFDEF_END')`'dnl + +} // namespace Glib +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + +__NAMESPACE_BEGIN__ +')dnl endif !NO_GTYPE +_PUSH(SECTION_SRC_GENERATED) + +ifelse(`$8',,,`_DEPRECATE_IFDEF_START')`'dnl +__NAMESPACE__::__CPPNAME__::__CPPNAME__`'(__NAMESPACE__::__CPPNAME__::Code error_code, const Glib::ustring& error_message) +: + Glib::Error (__CQUARK__, error_code, error_message) +{} + +__NAMESPACE__::__CPPNAME__::__CPPNAME__`'(GError* gobject) +: + Glib::Error (gobject) +{} + +__NAMESPACE__::__CPPNAME__::Code __NAMESPACE__::__CPPNAME__::code() const +{ + return static_cast(Glib::Error::code()); +} + +void __NAMESPACE__::__CPPNAME__::throw_func(GError* gobject) +{ + throw __NAMESPACE__::__CPPNAME__`'(gobject); +} + +m4_ifelse($5,`NO_GTYPE',,`dnl else +// static +GType Glib::Value<__NAMESPACE__::__CPPNAME__::Code>::value_type() +{ + return _GET_TYPE_FUNC(__CNAME__); +} + +')dnl endif !NO_GTYPE +ifelse(`$8',,,`_DEPRECATE_IFDEF_END')`'dnl +_POP() +')dnl enddef _GERROR diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize.m4 new file mode 100644 index 0000000..0c41505 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize.m4 @@ -0,0 +1,4 @@ +dnl Other libraries, such as libgnomeuimm, can provide their own initialize.m4 +dnl files, maybe choosing to include the same files as this one. + +include(initialize_glibmm.m4) diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_base.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_base.m4 new file mode 100644 index 0000000..138fe42 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_base.m4 @@ -0,0 +1,51 @@ +dnl +dnl Macros for keeping track of how to initialize a C++ from a C type. + +# +# Define a hashing for names +# +define(`__HASH',`__`'m4_translit(`$*',`ABCDEFGHIJKLMNOPQRSTUVWXYZ<>[]&*, ',`abcdefghijklmnopqrstuvwxyzVBNMRSC_')`'') +define(`__EQUIV',`m4_ifdef(EV`'__HASH(`$1'),EV`'__HASH(`$1'),`$1')') + +dnl __HASH2(firsttype, secondtype) +dnl +dnl Provides a textual combination of the two given types which can be used as +dnl a hash to store and retrieve conversions and initializations. It first +dnl sees if the two types have equivalent types that should be used in their +dnl places (using the __EQUIV macro above). Since the types returned by +dnl __EQUIV may contain commas (because of types such as std::map<>), quote the +dnl call to the macro to avoid the types to be interpreted as more than one +dnl argument to the pushdef() calls. Also quote the expansion of the __E1 and +dnl __E2 macros in the m4_ifelse for the same reason. +define(`__HASH2',`dnl +pushdef(`__E1',`__EQUIV(`$1')')pushdef(`__E2',`__EQUIV(`$2')')dnl +m4_ifelse(_QUOTE(__E1),_QUOTE(__E2),`__EQ',__HASH(__E1)`'__HASH(__E2))`'dnl +popdef(`__E1')popdef(`__E2')`'') + +define(`IN__EQ',`$3') + +# _INITIALIZE(target_type, fromtype, output_param_name, c_return, wrap_line) +# +# Print an initialize statement from ctype to cpptype +define(`_INITIALIZE',`dnl +m4_ifelse(`$1',void,`$4',`dnl +pushdef(`__INI',`IN`'__HASH2(`$1',`$2')')dnl +m4_ifdef(__INI,`m4_indir(__INI,m4_substr(`$1',`0',m4_decr(m4_len(`$1'))),`$2',`$3', $4)',` +m4_errprint(`No initialization for type $1 from type $2 defined (line: $5, output param: $3, c return: $4) +') +m4_m4exit(1) +')`'dnl +')`'dnl +') + +# _INITIALIZATION(fromtype, totype, initialization) +# +# Functions for populating initialization tables. +# +define(`_INITIALIZATION',` +m4_ifelse(`$3',,,`define(IN`'__HASH2(`$1',`$2'),m4_patsubst(`$3',`; +',`; + '))') +') + + +include(initialize_glib.m4) diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_gio.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_gio.m4 new file mode 100644 index 0000000..fcfd145 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_gio.m4 @@ -0,0 +1,6 @@ +dnl +dnl Initializations for giomm C++ types from Gio C types. +dnl + +dnl UnixFDList +_INITIALIZATION(`Glib::RefPtr&',`GUnixFDList*', `$3 = Glib::wrap($4)') diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_glib.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_glib.m4 new file mode 100644 index 0000000..5264d98 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_glib.m4 @@ -0,0 +1,16 @@ +dnl +dnl Initialization rules for glibmm C++ types from Glib C types. +dnl + +dnl Basic Types +_INITIALIZATION(`bool&',`gboolean',`$3 = static_cast($4)') + + +dnl VariantBase +_INITIALIZATION(`Glib::VariantBase&',`GVariant*',`$3 = Glib::wrap($4)') + +dnl VariantType +_INITIALIZATION(`Glib::VariantType&',`const GVariantType*',`$3 = Glib::wrap(const_cast($4))') + +dnl ustring +_INITIALIZATION(`Glib::ustring&',`gchar*',`$3 = Glib::convert_return_gchar_ptr_to_ustring($4)') diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_glibmm.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_glibmm.m4 new file mode 100644 index 0000000..a5fbecf --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/initialize_glibmm.m4 @@ -0,0 +1,6 @@ +dnl $Id$ + +include(initialize_base.m4) +include(initialize_glib.m4) +include(initialize_gio.m4) + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/member.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/member.m4 new file mode 100644 index 0000000..acb6c04 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/member.m4 @@ -0,0 +1,132 @@ +dnl +dnl --------------------------- Accessors ---------------------------- +dnl + + +dnl Get: + + +dnl Creates accessors for simple types: +dnl _MEMBER_GET(cpp_name, c_name, cpp_type, c_type, deprecated (optional)) +define(`_MEMBER_GET',`dnl +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +$3 get_$1() const; +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl +_PUSH(SECTION_CC) +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +$3 __CPPNAME__::get_$1() const +{ + return _CONVERT($4,$3,`gobj()->$2'); +} +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl + +_POP()') + +dnl Creates two accessors for pointer types, one const and one non-const: +define(`_MEMBER_GET_PTR',`dnl +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +$3 get_$1(); + const $3 get_$1() const; +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl +_PUSH(SECTION_CC) +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +$3 __CPPNAME__::get_$1() +{ + return _CONVERT($4,$3,`gobj()->$2'); +} + +const $3 __CPPNAME__::get_$1() const +{ + return _CONVERT($4,const $3,`gobj()->$2'); +} +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl + +_POP()') + +dnl Creates accessors for GObject-derived types that must be ref()ed. +define(`_MEMBER_GET_GOBJECT',`dnl +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +Glib::RefPtr<$3> get_$1(); + Glib::RefPtr get_$1() const; +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl +_PUSH(SECTION_CC) +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +Glib::RefPtr<$3> __CPPNAME__::get_$1() +{ + Glib::RefPtr<$3> ref_ptr(_CONVERT($4,Glib::RefPtr<$3>,`gobj()->$2')); + +dnl We could use the bool with Glib::wrap(), but we want to share the m4 type-conversion map. + if(ref_ptr) + ref_ptr->reference(); + + return ref_ptr; +} + +Glib::RefPtr __CPPNAME__::get_$1() const +{ + Glib::RefPtr ref_ptr(_CONVERT($4,Glib::RefPtr,`gobj()->$2')); + +dnl We could use the bool with Glib::wrap(), but we want to share the m4 type-conversion map. + if(ref_ptr) + ref_ptr->reference(); + + return ref_ptr; +} +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl + +_POP()') + + +dnl Set: + +dnl Creates accessors for simple types: +define(`_MEMBER_SET',`dnl +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +void set_$1(const $3`'& value); +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl +_PUSH(SECTION_CC) +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +void __CPPNAME__::set_$1(const $3`'& value) +{ + gobj()->$2 = _CONVERT($3,$4,`value'); +} +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl + +_POP()') + +dnl Creates accessors for pointer types: +define(`_MEMBER_SET_PTR',`dnl +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +void set_$1($3 value); +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl +_PUSH(SECTION_CC) +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +void __CPPNAME__::set_$1($3 value) +{ + gobj()->$2 = _CONVERT($3,$4,`value'); +} +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl + +_POP()') + +dnl Creates accessors for GObject-derived types that must be ref()ed. +define(`_MEMBER_SET_GOBJECT',`dnl +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +void set_$1(const Glib::RefPtr<$3>& value); +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl +_PUSH(SECTION_CC) +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_START ')dnl +void __CPPNAME__::set_$1(const Glib::RefPtr<$3>& value) +{ + Glib::RefPtr<$3> valueOld(_CONVERT($4,Glib::RefPtr<$3>,`gobj()->$2')); //Take possession of the old one, unref-ing it in the destructor. + + if(value) + value->reference(); //Ref once for the recipient. + + gobj()->$2 = _CONVERT(const Glib::RefPtr<$3>&,$4,`value'); +} +ifelse(`$5',`deprecated',`_DEPRECATE_IFDEF_END ')dnl + +_POP()') + + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/method.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/method.m4 new file mode 100644 index 0000000..3ca4de6 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/method.m4 @@ -0,0 +1,197 @@ +dnl +dnl +dnl Code generation sections for making a method. +dnl +dnl + +dnl +dnl method +dnl $1 $2 $3 $4 $5 $6 $7 $8 +dnl _METHOD(cppname,cname,cpprettype,crettype,arglist,cdeclarations,cargs,cinitializations, +dnl $9 $10 $11 $12 $13 $14 $15 +dnl const,refreturn,errthrow,deprecated,constversion,arglist_without_types,ifdef, +dnl $16 $17 $18 $19 $20 $21 +dnl out_param,out_param_cpptype,slot_type,slot_name,no_slot_copy,wrap_line) +define(`_METHOD',`dnl +_PUSH(SECTION_CC) +ifelse(`$15',,,`#ifdef $15' +)dnl +ifelse(`$12',,,`_DEPRECATE_IFDEF_START`'dnl The expansion of _DEPRECATE_IFDEF_START ends with a newline +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +')dnl +$3 __CPPNAME__::$1`'($5)ifelse(`$9',1,` const') +{ +ifelse(`$13',,dnl +`ifelse(`$10'`$11',,dnl If it is not errthrow or refreturn +dnl If a slot type has been specified insert a slot copy declaration. +`ifelse(`$18',,,dnl +dnl See if the slot should or should not be copied +`ifelse(`$20',,dnl +` // Create a copy of the slot. + auto slot_copy = new $18($19); ',dnl +dnl +` // Use the original slot (not a copy). + auto slot_copy = const_cast<$18*>(&$19);') + +')`'dnl +dnl Insert the declarations for C output parameters +ifelse(`$6',,,`$6 +')`'dnl +ifelse(`$16',,dnl If no C++ output parameter is specified +`ifelse(`$3',void,dnl If the C function returns voids: +` $2(ifelse(`$9',1,const_cast<__CNAME__*>(gobj()),gobj())`'ifelse(`$7',,,`, ')$7); +dnl Insert the initializations for the C output parameters +ifelse(`$8',,,`$8 +')dnl +',dnl If the C function returns non-void: +dnl Store the return if there are C output parameters. +`ifelse(`$6',,` return ',` `$3' retvalue = ')_CONVERT($4,`$3',`$2`'(ifelse(`$9',1,const_cast<__CNAME__*>(gobj()),gobj())`'ifelse(`$7',,,`, ')$7)'); +dnl Insert the initializations for the C output parameters +ifelse(`$8',,,`$8 +')dnl +dnl return the value +ifelse(`$6',,,` return retvalue; +')dnl +')'dnl End if it returns voids. +dnl A C++ output parameter is specified: +,` _INITIALIZE($17,$4,`$16',`$2`'(ifelse(`$9',1,const_cast<__CNAME__*>(gobj()),gobj())`'ifelse(`$7',,,`, ')$7)',$21); +dnl +dnl Insert the initializations for the C output parameters +ifelse(`$8',,,`$8 +')dnl +')',dnl End if a C++ output parameter is specified. +dnl If is errthrow or refreturn +`ifelse(`$11',,,` GError* gerror = nullptr; +')dnl +dnl If a slot type has been specified insert a slot copy declaration. +ifelse(`$18',,,dnl +dnl See if the slot should or should not be copied +`ifelse(`$20',,dnl +` // Create a copy of the slot. + auto slot_copy = new $18($19); ',dnl +dnl +` // Use the original slot (not a copy). + auto slot_copy = const_cast<$18*>(&$19);') + +')`'dnl +dnl Insert the declarations for C output parameters +ifelse(`$6',,,`$6 +')`'dnl +ifelse(`$16',,dnl If no C++ output parameter is specified: +` ifelse(`$3',void,,``$3' retvalue = ')_CONVERT($4,`$3',`$2`'(ifelse(`$9',1,const_cast<__CNAME__*>(gobj()),gobj())`'ifelse(`$7',,,`, ')$7)'); +'dnl +,dnl A C++ output parameter is specified: +` _INITIALIZE($17,$4,`$16',`$2`'(ifelse(`$9',1,const_cast<__CNAME__*>(gobj()),gobj())`'ifelse(`$7',,,`, ')$7)',$21); +'dnl +)dnl +ifelse(`$11',,,`dnl + if(gerror) + ::Glib::Error::throw_exception(gerror); +')dnl +ifelse(`$10',,,`dnl + if(ifelse(`$16',,`retvalue',$16)) + ifelse(`$16',,`retvalue',$16)->reference(); //The function does not do a ref for us. +')dnl +dnl Insert the initializations for the C output parameters +ifelse(`$8',,,`$8 +')`'dnl +ifelse(`$3',void,,` return retvalue; +')dnl +')dnl End errthrow/refreturn +',` return const_cast<__CPPNAME__*>(this)->$1($14); +')dnl +} +ifelse(`$12',,,`G_GNUC_END_IGNORE_DEPRECATIONS +_DEPRECATE_IFDEF_END')`'dnl The expansion of _DEPRECATE_IFDEF_END ends with a newline +ifelse(`$15',,,`#endif // $15 +') +_POP()') + +dnl +dnl static method +dnl $1 $2 $3 $4 $5 $6 $7 +dnl _STATIC_METHOD(cppname,cname,cpprettype,crettype,arglist,cdeclarations,cargs, +dnl $8 $9 $10 $11 $12 $13 +dnl cinitializations,refreturn,errthrow,deprecated,ifdef,out_param, +dnl $14 $15 $16 $17 $18 +dnl out_param_type,slot_type,slot_name,no_slot_copy,wrap_line) +define(`_STATIC_METHOD',`dnl +_PUSH(SECTION_CC) +ifelse(`$12',,,`#ifdef $12' +)dnl +ifelse(`$11',,,`_DEPRECATE_IFDEF_START`'dnl The expansion of _DEPRECATE_IFDEF_START ends with a newline +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +')dnl +$3 __CPPNAME__::$1($5) +{ +ifelse(`$9'`$10',,dnl +dnl If a slot type has been specified insert a slot copy declaration. +ifelse(`$15',,,dnl +dnl See if the slot should or should not be copied +`ifelse(`$17',,dnl +` // Create a copy of the slot. + auto slot_copy = new $15($16); ',dnl +dnl +` // Use the original slot (not a copy). + auto slot_copy = const_cast<$15*>(&$16);') + +')`'dnl +dnl Insert declarations for C the output parameters +ifelse(`$6',,,`$6 +')`'dnl +`ifelse(`$13',, +dnl If no C++ output parameter is specified. +` ifelse(`$3',void,,dnl +dnl Returns non-void: +dnl Store the return if there are C output parameters +ifelse(`$6',,`return ',``$3' retval = '))_CONVERT($4,`$3',`$2`'($7)');'dnl +dnl A C++ output parameter is specified so initialize it from C return +,` _INITIALIZE($14,$4,`$13',`$2`'($7)',$18);'dnl +) +dnl Insert the initializations for the C output parameters if there are any +ifelse(`$8',,,`$8 +')`'dnl +dnl Return the value if it was stored and if the method returns something +ifelse(`$3',void,,`ifelse(`$6',,,` return retval; +')')dnl +',dnl End if a C++ output parameter is specified. +`ifelse(`$10',,,` GError* gerror = nullptr;') +dnl If a slot type has been specified insert a slot copy declaration. +ifelse(`$15',,,dnl +dnl See if the slot should or should not be copied +`ifelse(`$17',,dnl +` // Create a copy of the slot. + auto slot_copy = new $15($16); ',dnl +dnl +` // Use the original slot (not a copy). + auto slot_copy = const_cast<$15*>(&$16);') + +')`'dnl +dnl Insert the declarations for the C output parameters +ifelse(`$6',,,`$6 +')`'dnl +ifelse(`$13',,dnl If no C++ output parameter is specified: + ifelse(`$3',void,,``$3' retvalue = ')_CONVERT($4,`$3',`$2`'($7)');dnl +dnl A C++ output parameter is specified: +,` _INITIALIZE($14,$4,`$13',`$2`'($7)',$18);'dnl +)dnl +ifelse(`$10',,,` + if(gerror) + ::Glib::Error::throw_exception(gerror); +')dnl +dnl Insert the initializations for the C output parameters. +ifelse(`$8',,,`$8 +')`'dnl +ifelse(`$9',,,` + if(ifelse(`$13',,`retvalue',$13)) + ifelse(`$13',,`retvalue',$13)->reference(); //The function does not do a ref for us +')dnl +ifelse(`$3',void,,` return retvalue; +')dnl +')dnl +} +ifelse(`$11',,,`G_GNUC_END_IGNORE_DEPRECATIONS +_DEPRECATE_IFDEF_END')`'dnl The expansion of _DEPRECATE_IFDEF_END ends with a newline +ifelse(`$12',,,`#endif // $12 +') +_POP()') diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/property.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/property.m4 new file mode 100644 index 0000000..1709aff --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/property.m4 @@ -0,0 +1,38 @@ +dnl +dnl +dnl Code generation sections for properties +dnl +dnl + +dnl $1 $2 $3 $4 $5 $6 +dnl _PROPERTY_PROXY(name, name_underscored, cpp_type, proxy_suffix, deprecated, docs) +dnl proxy_suffix could be "", "_WriteOnly" or "_ReadOnly" +dnl The method will be const if the propertyproxy is _ReadOnly. +dnl +define(`_PROPERTY_PROXY',`dnl +dnl +dnl Put spaces around the template parameter if necessary. +pushdef(`__PROXY_TYPE__',`dnl +Glib::PropertyProxy$4< _QUOTE($3) >'dnl +)dnl +/** $6 + * + * @return A PropertyProxy$4 that allows you to dnl +ifelse($4,_ReadOnly,get,`ifelse($4,_WriteOnly,set,get or set)') the value of the property, + * or receive notification when the value of the property changes. + */ + __PROXY_TYPE__ property_$2`'() ifelse($4,_ReadOnly, const,); +_PUSH(SECTION_CC_PROPERTYPROXIES) +ifelse(`$5',,,`_DEPRECATE_IFDEF_START +')dnl +__PROXY_TYPE__ __CPPNAME__::property_$2`'() ifelse($4,_ReadOnly, const,) +{ + return __PROXY_TYPE__`'(this, "$1"); +} +ifelse(`$5',,,`_DEPRECATE_IFDEF_END +')dnl + +_POP() +popdef(`__PROXY_TYPE__')dnl +')dnl + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/signal.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/signal.m4 new file mode 100644 index 0000000..5b680f4 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/signal.m4 @@ -0,0 +1,353 @@ +# +# --------------------------- Signal Decl---------------------------- +# + +dnl _SIGNAL_PROXY($1 = c_signal_name, +dnl $2 = c_return_type, +dnl $3 = `', +dnl $4 = cpp_signal_name, +dnl $5 = cpp_return_type, +dnl $6 = `', +dnl $7 = `', +dnl $8 = `custom_c_callback (boolean)', +dnl $9 = `deprecated' (boolean), +dnl $10 = `refdoc_comment', +dnl $11 = ifdef, +dnl $12 = exceptionHandler, +dnl $13 = detail_name, +dnl $14 = two_signal_methods (boolean)) + +define(`_SIGNAL_PROXY',` +ifelse(`$11',,,`#ifdef $11' +)dnl +ifelse(`$9',,,`_DEPRECATE_IFDEF_START +')dnl +ifelse($13,,`dnl no detail_name +$10 + Glib::SignalProxy< $5`'_COMMA_PREFIX($6) > signal_$4`'(); +',dnl detail_name +$14,0,`dnl +$10 + Glib::SignalProxyDetailedAnyType< $5`'_COMMA_PREFIX($6) > signal_$4`'(const Glib::ustring& $13 = Glib::ustring()); +',`dnl detail_name and two_signal_methods +$10 + Glib::SignalProxy< $5`'_COMMA_PREFIX($6) > signal_$4`'(); + +$10 + Glib::SignalProxyDetailedAnyType< $5`'_COMMA_PREFIX($6) > signal_$4`'(const Glib::ustring& $13); +')dnl end detail_name +ifelse(`$9',,,`_DEPRECATE_IFDEF_END +')dnl +ifelse(`$11',,,`#endif // $11 +')dnl +dnl +_PUSH(SECTION_ANONYMOUS_NAMESPACE) + +ifelse(`$11',,,`#ifdef $11' +)dnl +ifelse(`$9',,,`_DEPRECATE_IFDEF_START +')dnl +dnl +ifelse($2`'_NUM($3)`'$5`'_NUM($6)`'$8`'_NUM($12),`void0void000',`dnl +dnl +dnl Use predefined callback for SignalProxy0, to reduce code size, +dnl if custom_c_callback or exception_handler is not specified. + +static const Glib::SignalProxyInfo __CPPNAME__`'_signal_$4_info = +{ + "$1", + (GCallback) &Glib::SignalProxyNormal::slot0_void_callback, + (GCallback) &Glib::SignalProxyNormal::slot0_void_callback +}; +',`dnl else + +ifelse($8,`1',,`dnl Do not generate the implementation if it should be custom: +static $2 __CPPNAME__`'_signal_$4_callback`'(__CNAME__`'* self, _COMMA_SUFFIX($3)`'void* data) +{ + using namespace __NAMESPACE__; + using SlotType = sigc::slot< $5`'_COMMA_PREFIX($6) >; + + auto obj = dynamic_cast<__CPPNAME__*>(Glib::ObjectBase::_get_current_wrapper((GObject*) self)); + // Do not try to call a signal on a disassociated wrapper. + if(obj) + { + try + { + if(const auto slot = Glib::SignalProxyNormal::data_to_slot`'(data)) +ifelse(`$2',void,`dnl + (*static_cast(slot))($7); +',`dnl else + return _CONVERT($5,$2,`(*static_cast(slot))($7)'); +')dnl endif + } + catch(...) + { +ifelse($12, `', `dnl + Glib::exception_handlers_invoke`'(); +', `dnl + try + { + return _CONVERT($5, $2, `obj->$12`'()'); + } + catch(...) + { + Glib::exception_handlers_invoke`'(); + } +')dnl + } + } +ifelse($2,void,,`dnl else + + using RType = $2; + return RType`'(); +')dnl +} +ifelse($2,void,,`dnl else + +static $2 __CPPNAME__`'_signal_$4_notify_callback`'(__CNAME__`'* self, _COMMA_SUFFIX($3)`' void* data) +{ + using namespace __NAMESPACE__; + using SlotType = sigc::slot< void`'_COMMA_PREFIX($6) >; + + auto obj = dynamic_cast<__CPPNAME__*>(Glib::ObjectBase::_get_current_wrapper((GObject*) self)); + // Do not try to call a signal on a disassociated wrapper. + if(obj) + { + try + { + if(const auto slot = Glib::SignalProxyNormal::data_to_slot`'(data)) + (*static_cast(slot))($7); + } + catch(...) + { +ifelse($12, `', `dnl + Glib::exception_handlers_invoke`'(); +', `dnl + try + { + return _CONVERT($5, $2, `obj->$12`'()'); + } + catch(...) + { + Glib::exception_handlers_invoke`'(); + } +')dnl + } + } + + using RType = $2; + return RType`'(); +} +')dnl endif +')dnl endif + +static const Glib::SignalProxyInfo __CPPNAME__`'_signal_$4_info = +{ + "$1", + (GCallback) &__CPPNAME__`'_signal_$4_callback, + (GCallback) &__CPPNAME__`'_signal_$4_`'ifelse($2,void,,notify_)`'callback +}; +')dnl endif + +ifelse(`$9',,,`_DEPRECATE_IFDEF_END +')dnl +ifelse(`$11',,,`#endif // $11 +')dnl + +_SECTION(SECTION_CC_SIGNALPROXIES) + +ifelse(`$11',,,`#ifdef $11' +)dnl +ifelse(`$9',,,`_DEPRECATE_IFDEF_START +')dnl +ifelse($13,,`dnl no detail_name +Glib::SignalProxy< $5`'_COMMA_PREFIX($6) > __CPPNAME__::signal_$4`'() +{ + return Glib::SignalProxy< $5`'_COMMA_PREFIX($6) >(this, &__CPPNAME__`'_signal_$4_info); +} +',dnl detail_name +$14,0,`dnl +Glib::SignalProxyDetailedAnyType< $5`'_COMMA_PREFIX($6) > __CPPNAME__::signal_$4`'(const Glib::ustring& $13) +{ + return Glib::SignalProxyDetailedAnyType< $5`'_COMMA_PREFIX($6) >(this, &__CPPNAME__`'_signal_$4_info, $13); +} +',`dnl detail_name and two_signal_methods +Glib::SignalProxy< $5`'_COMMA_PREFIX($6) > __CPPNAME__::signal_$4`'() +{ + return Glib::SignalProxy< $5`'_COMMA_PREFIX($6) >(this, &__CPPNAME__`'_signal_$4_info); +} + +Glib::SignalProxyDetailedAnyType< $5`'_COMMA_PREFIX($6) > __CPPNAME__::signal_$4`'(const Glib::ustring& $13) +{ + return Glib::SignalProxyDetailedAnyType< $5`'_COMMA_PREFIX($6) >(this, &__CPPNAME__`'_signal_$4_info, $13); +} +')dnl end detail_name +ifelse(`$9',,,`_DEPRECATE_IFDEF_END +')dnl +ifelse(`$11',,,`#endif // $11 +')dnl + +_POP()') + + +dnl $1 $2 $3 $4 $5 $6 +dnl _SIGNAL_PH(gname, crettype, cargs and names, ifdef, deprecated, exceptionHandler) +dnl Create a callback and set it in our derived G*Class. +dnl +define(`_SIGNAL_PH',`dnl +_PUSH(SECTION_PCC_CLASS_INIT_DEFAULT_SIGNAL_HANDLERS) +ifelse(`$4',,,`#ifdef $4' +)dnl +ifelse(`$5',,,`_DEPRECATE_IFDEF_START +')dnl + klass->$1 = `&'$1_callback; +ifelse(`$5',,,`_DEPRECATE_IFDEF_END +')dnl +ifelse(`$4',,,`#endif // $4 +')dnl +_SECTION(SECTION_PH_DEFAULT_SIGNAL_HANDLERS) +ifelse(`$4',,,`#ifdef $4' +)dnl +ifelse(`$5',,,`_DEPRECATE_IFDEF_START +')dnl + static $2 $1_callback`'($3); +ifelse(`$5',,,`_DEPRECATE_IFDEF_END +')dnl +ifelse(`$4',,,`#endif // $4 +')dnl +_POP()') + + + +dnl $1 $2 $3 $4 $5 $6 +dnl _SIGNAL_PCC(cppname,gname,cpprettype,crettype,`',`', +dnl $7 $8 $9 $10 $11 +dnl `',firstarg,,deprecated,exceptionHandler) +dnl +define(`_SIGNAL_PCC',`dnl +_PUSH(SECTION_PCC_DEFAULT_SIGNAL_HANDLERS) +ifelse(`$9',,,`#ifdef $9' +)dnl +ifelse(`$10',,,`_DEPRECATE_IFDEF_START +')dnl +$4 __CPPNAME__`'_Class::$2_callback`'($5) +{ +dnl First, do a simple cast to ObjectBase. We will have to do a dynamic_cast +dnl eventually, but it is not necessary to check whether we need to call +dnl the vfunc. + const auto obj_base = static_cast( + Glib::ObjectBase::_get_current_wrapper`'((GObject*)$8)); + +_IMPORT(SECTION_CHECK) + // Non-gtkmmproc-generated custom classes implicitly call the default + // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc- + // generated classes can use this optimisation, which avoids the unnecessary + // parameter conversions if there is no possibility of the virtual function + // being overridden: + if(obj_base && obj_base->is_derived_()) + { +dnl We need to do a dynamic cast to get the real object type, to call the +dnl C++ vfunc on it. + const auto obj = dynamic_cast(obj_base); + if(obj) // This can be NULL during destruction. + { + try // Trap C++ exceptions which would normally be lost because this is a C callback. + { + // Call the virtual member method, which derived classes might override. +ifelse($4,void,`dnl + obj->on_$1`'($7); + return; +',`dnl + return _CONVERT($3,$4,`obj->on_$1`'($7)'); +')dnl + } + catch(...) + { +ifelse($11, `', `dnl + Glib::exception_handlers_invoke`'(); +', `dnl + try + { + return _CONVERT($3, $4, `obj->$11`'()'); + } + catch(...) + { + Glib::exception_handlers_invoke`'(); + } +')dnl + } + } + } + + const auto base = static_cast( +ifdef(`__BOOL_IS_INTERFACE__',`dnl + _IFACE_PARENT_FROM_OBJECT($8)dnl +',`dnl + _PARENT_GCLASS_FROM_OBJECT($8)dnl +') ); +dnl g_assert(base != nullptr); + + // Call the original underlying C function: + if(base && base->$2) + ifelse($4,void,,`return ')(*base->$2)`'($6); +ifelse($4,void,,`dnl + + using RType = $4; + return RType`'(); +')dnl +} +ifelse(`$10',,,`_DEPRECATE_IFDEF_END +')dnl +ifelse(`$9',,,`#endif // $9 +')dnl +_POP()') + + +dnl $1 $2 $3 $4 +dnl _SIGNAL_H(signame, rettype, `', ) +dnl +define(`_SIGNAL_H',`dnl +_PUSH(SECTION_H_DEFAULT_SIGNAL_HANDLERS) +ifelse(`$4',,,`#ifdef $4' +)dnl + /// This is a default handler for the signal signal_$1`'(). + virtual $2 on_$1`'($3); +ifelse(`$4',,,`#endif // $4 +')dnl +_POP()') + +dnl $1 $2 $3 $4 $5 $6 $7 $8 $9 +dnl _SIGNAL_CC(signame,gname,rettype,crettype,`',`', const, refreturn, ) +dnl +define(`_SIGNAL_CC',`dnl +_PUSH(SECTION_CC_DEFAULT_SIGNAL_HANDLERS) +ifelse(`$9',,,`#ifdef $9' +)dnl +$3 __NAMESPACE__::__CPPNAME__::on_$1`'($5) +{ + const auto base = static_cast( +ifdef(`__BOOL_IS_INTERFACE__',`dnl + _IFACE_PARENT_FROM_OBJECT(gobject_)dnl +',`dnl + _PARENT_GCLASS_FROM_OBJECT(gobject_)dnl +') ); +dnl g_assert(base != nullptr); + + if(base && base->$2) +ifelse($3,void,`dnl + (*base->$2)`'(gobj`'()`'_COMMA_PREFIX($6)); +',`dnl +ifelse($8,refreturn,`dnl Assume Glib::wrap() is correct if refreturn is requested. + return Glib::wrap((*base->$2)`'(ifelse(`$7',1,const_cast<__CNAME__*>(gobj()),gobj())`'_COMMA_PREFIX($6)), true); +',`dnl + return _CONVERT($4,$3,`(*base->$2)`'(ifelse(`$7',1,const_cast<__CNAME__*>(gobj()),gobj())`'_COMMA_PREFIX($6))'); +')dnl + + using RType = $3; + return RType`'(); +')dnl +} +ifelse(`$9',,,`#endif // $9 +')dnl +_POP()') + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/m4/vfunc.m4 b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/vfunc.m4 new file mode 100644 index 0000000..e1609a9 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/m4/vfunc.m4 @@ -0,0 +1,233 @@ +dnl +dnl _VFUNC_PH(gtkname, crettype, cargs and names) +dnl Create a callback and set it in our derived G*Class. +dnl +define(`_VFUNC_PH',`dnl +_PUSH(SECTION_PCC_CLASS_INIT_VFUNCS) +ifelse(`$4',,,`#ifdef $4' +)dnl + klass->$1 = `&'$1_vfunc_callback; +ifelse(`$4',,,`#endif // $4 +')dnl +_SECTION(SECTION_PH_VFUNCS) +ifelse(`$4',,,`#ifdef $4' +)dnl + static $2 $1_vfunc_callback`'($3); +ifelse(`$4',,,`#endif // $4 +')dnl +_POP()') + + +dnl $1 $2 $3 $4 +dnl _VFUNC_PCC(cppname,gtkname,cpprettype,crettype, +dnl $5 $6 $7 $8 +dnl `',`',`',firstarg, +dnl $9 $10 $11 $12 +dnl refreturn_ctype, keep_return, ifdef, errthrow, +dnl $13 $14 $15 $16 $17 +dnl slot_type, c_data_param_name, return_value, err_return_value, exception_handler) +dnl +dnl Note: _get_current_wrapper_inline() could be used throughout for performance instead of _get_current_wrapper(), +dnl and is_derived_() instead of is_derived_(), +dnl but it is not yet clear whether that would be a worthwhile performance optimization. +define(`_VFUNC_PCC',`dnl +_PUSH(SECTION_PCC_VFUNCS) +ifelse(`$11',,,`#ifdef $11' +)dnl +$4 __CPPNAME__`'_Class::$2_vfunc_callback`'($5) +{ +ifelse(`$14',,,dnl +` const auto slot = static_cast<$13*>($14); + +')dnl +dnl First, do a simple cast to ObjectBase. We will have to do a dynamic_cast +dnl eventually, but it is not necessary to check whether we need to call +dnl the vfunc. + const auto obj_base = static_cast( + Glib::ObjectBase::_get_current_wrapper`'((GObject*)$8)); + +_IMPORT(SECTION_CHECK) + // Non-gtkmmproc-generated custom classes implicitly call the default + // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc- + // generated classes can use this optimisation, which avoids the unnecessary + // parameter conversions if there is no possibility of the virtual function + // being overridden: + if(obj_base && obj_base->is_derived_()) + { +dnl We need to do a dynamic cast to get the real object type, to call the +dnl C++ vfunc on it. + const auto obj = dynamic_cast(obj_base); + if(obj) // This can be NULL during destruction. + { + try // Trap C++ exceptions which would normally be lost because this is a C callback. + { + // Call the virtual member method, which derived classes might override. +ifelse($4,void,`dnl + obj->$1`'($7); + return; +',`dnl not void +ifelse($9,refreturn_ctype,`dnl Assume Glib::unwrap_copy() is correct if refreturn_ctype is requested. + return Glib::unwrap_copy`'(`obj->$1'($7)); +',`dnl not refreturn_ctype +ifelse($10,keep_return,`dnl + static auto quark_return_value = g_quark_from_static_string("__NAMESPACE__::__CPPNAME__::$1"); + + auto return_value = static_cast<$3*>(g_object_get_qdata(obj_base->gobj(), quark_return_value)); + if (!return_value) + { + return_value = new $3`'(); + g_object_set_qdata_full(obj_base->gobj(), quark_return_value, return_value, + &Glib::destroy_notify_delete<$3>); + } + // Keep a copy of the return value. The caller is not expected + // to free the object that the returned pointer points to. + *return_value = obj->$1`'($7); + return _CONVERT($3,$4,`(*return_value)'); +',`dnl not keep_return + return _CONVERT($3,$4,`obj->$1`'($7)'); +')dnl end keep_return +')dnl end refreturn_ctype +')dnl end void + } +ifelse($17,,,`dnl if (exception_handler) + catch(...) + { + try + { +ifelse($9,refreturn_ctype,`dnl + return Glib::unwrap_copy`'(obj->$17`'()); +', `dnl + return _CONVERT($3, $4, `obj->$17`'()'); +')dnl + } +')dnl end exception_handler +ifelse($12,errthrow,`dnl + catch(Glib::Error& errormm) + { + errormm.propagate(error); +ifelse($4,void,`dnl + return; +',`dnl +ifelse(`$16', `',`dnl + using RType = $4; + return RType`'(); +',`dnl + return _CONVERT($3,$4,`$16'); +')dnl +')dnl + } +')dnl end errthrow + catch(...) + { + Glib::exception_handlers_invoke`'(); + } +ifelse($17,,,`dnl if (exception_handler) + } +')dnl + } + } + + BaseClassType *const base = static_cast( +ifdef(`__BOOL_IS_INTERFACE__',`dnl + _IFACE_PARENT_FROM_OBJECT($8)dnl +',`dnl + _PARENT_GCLASS_FROM_OBJECT($8)dnl +') ); +dnl g_assert(base != nullptr); + + // Call the original underlying C function: + if(base && base->$2) + ifelse($4,void,,`return ')(*base->$2)`'($6); +ifelse($4,void,,`dnl + +ifelse(`$15', `',`dnl + using RType = $4; + return RType`'(); +',`dnl + return _CONVERT($3,$4,`$15'); +')dnl +')dnl +} +ifelse(`$11',,,`#endif // $11 +')dnl +_POP()') + +# $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 +# _VFUNC_CC(vfunc_name, gtkname, cpp_rettype, c_rettype, `', `', is_const, refreturn, $ifdef, $errthrow, $slot_type, $slot_name, $no_slot_copy, $returnValue) +# +define(`_VFUNC_CC',`dnl +_PUSH(SECTION_CC_VFUNCS) +ifelse(`$9',,,`#ifdef $9' +)dnl +$3 __NAMESPACE__::__CPPNAME__::$1`'($5) ifelse($7,1,const,) +{ +dnl If a slot type has been specified, insert code to create a copy of it. +ifelse(`$11',,,dnl +dnl See if the slot should or should not be copied +`ifelse(`$13',,dnl +` // Create a copy of the slot. + auto slot_copy = new $11($12); ',dnl +dnl +` // Use the original slot (not a copy). + auto slot_copy = const_cast<$11*>(&$12);') + +')dnl + const auto base = static_cast( +ifdef(`__BOOL_IS_INTERFACE__',`dnl + _IFACE_PARENT_FROM_OBJECT(gobject_)dnl +',`dnl + _PARENT_GCLASS_FROM_OBJECT(gobject_)dnl +') ); +dnl g_assert(base != nullptr); + + if(base && base->$2) + { +ifelse($10,errthrow,`dnl + GError* gerror = nullptr; +')dnl +ifelse($3,void,`dnl + (*base->$2)`'(ifelse(`$7',1,const_cast<__CNAME__*>(gobj()),gobj())`'_COMMA_PREFIX($6)); + } +',`dnl +ifelse($8,refreturn,`dnl Assume Glib::wrap() is correct if refreturn is requested. + $3 retval(Glib::wrap((*base->$2)`'(ifelse(`$7',1,const_cast<__CNAME__*>(gobj()),gobj())`'_COMMA_PREFIX($6)), true)); +',`dnl + $3 retval(_CONVERT($4,$3,`(*base->$2)`'(ifelse(`$7',1,const_cast<__CNAME__*>(gobj()),gobj())`'_COMMA_PREFIX($6))')); +')dnl +ifelse($10,errthrow,`dnl + if(gerror) + ::Glib::Error::throw_exception(gerror); +')dnl + return retval; + } + +ifelse(`$14', `',`dnl + using RType = $3; + return RType`'(); +',`dnl + return $14; +')dnl +')dnl +} +ifelse(`$9',,,`#endif // $9 +')dnl +_POP()') + + +# $1 $2 $3 $4 $5 +# _VFUNC_H(vfunc_name, rettype, `', is_const, ifndef) +# Only used for custom vfuncs. +# +define(`_VFUNC_H',`dnl +_PUSH(SECTION_H_VFUNCS) +ifelse(`$5',,,`#ifdef $5' +)dnl +ifelse($4,`1',`dnl +virtual $2 $1`'($3) const; +',`dnl +virtual $2 $1`'($3); +') +ifelse(`$5',,,`#endif // $5 +')dnl +_POP()') + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/pm/DocsParser.pm b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/DocsParser.pm new file mode 100644 index 0000000..047aff4 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/DocsParser.pm @@ -0,0 +1,970 @@ +# gtkmm - DocsParser module +# +# Copyright 2001 Free Software Foundation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# Based on XML::Parser tutorial found at http://www.devshed.com/Server_Side/Perl/PerlXML/PerlXML1/page1.html +# This module isn't properly Object Orientated because the XML Parser needs global callbacks. + +package DocsParser; +use XML::Parser; +use strict; +use warnings; +use feature 'state'; + +use Util; +use Function; +use GtkDefs; +use Object; + +BEGIN { + use Exporter (); + our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); + + # set the version for version checking + $VERSION = 1.00; + + @ISA = qw(Exporter); + @EXPORT = ( ); + %EXPORT_TAGS = ( ); + + # your exported package globals go here, + # as well as any optionally exported functions + @EXPORT_OK = ( ); +} +our @EXPORT_OK; + +##################################### + +use strict; +use warnings; + +##################################### + +$DocsParser::CurrentFile = ""; + +$DocsParser::refAppendTo = undef; # string reference to store the data into +$DocsParser::currentParam = undef; + +$DocsParser::objCurrentFunction = undef; #Function +%DocsParser::hasharrayFunctions = (); #Function elements +%DocsParser::type_names = (); # Type names (e.g. enums) with non-standard C-to-C++ translation. +%DocsParser::enumerator_name_prefixes = (); # Enumerator name prefixes with non-standard C-to-C++ translation. +%DocsParser::enumerator_names = (); # Enumerator names with non-standard C-to-C++ translation. + +$DocsParser::commentStart = " /** "; +$DocsParser::commentMiddleStart = " * "; +$DocsParser::commentEnd = " */"; + +sub read_defs($$$) +{ + my ($path, $filename, $filename_override) = @_; + + my $objParser = new XML::Parser(ErrorContext => 0); + $objParser->setHandlers(Start => \&parse_on_start, End => \&parse_on_end, Char => \&parse_on_cdata); + + # C documentation: + $DocsParser::CurrentFile = "$path/$filename"; + if ( ! -r $DocsParser::CurrentFile) + { + print STDERR "DocsParser.pm: Warning: Can't read file \"" . $DocsParser::CurrentFile . "\".\n"; + return; + } + # Parse + eval { $objParser->parsefile($DocsParser::CurrentFile) }; + if( $@ ) + { + $@ =~ s/at \/.*?$//s; + print STDERR "\nError in \"" . $DocsParser::CurrentFile . "\":$@\n"; + return; + } + + # C++ override documentation: + $DocsParser::CurrentFile = $path . '/' . $filename_override; + + # It is not an error if the documentation override file does not exist. + return unless (-r $DocsParser::CurrentFile); + + # Parse + eval { $objParser->parsefile($DocsParser::CurrentFile) }; + if( $@ ) + { + $@ =~ s/at \/.*?$//s; + print STDERR "\nError in \"" . $DocsParser::CurrentFile . "\":$@"; + return; + } +} + +sub parse_on_start($$%) +{ + my ($objParser, $tag, %attr) = @_; + + $tag = lc($tag); + + if($tag eq "function" or $tag eq "signal" or $tag eq "property" or $tag eq "enum") + { + if(defined $DocsParser::objCurrentFunction) + { + $objParser->xpcroak( + "\nClose a function, signal, property or enum tag before you open another one."); + } + + my $functionName = $attr{name}; + + # Change signal name from Class::a-signal-name to Class::a_signal_name + # and property name from Class:a-property-name to Class:a_property_name + $functionName =~ s/-/_/g if ($tag eq "signal" or $tag eq "property"); + + #Reuse existing Function, if it exists: + #(For instance, if this is the override parse) + $DocsParser::objCurrentFunction = $DocsParser::hasharrayFunctions{$functionName}; + if(!$DocsParser::objCurrentFunction) + { + #Make a new one if necessary: + $DocsParser::objCurrentFunction = Function::new_empty(); + # The idea is to change the policy a bit: + # If a function is redefined in a later parsing run only values which are redefined + # will be overwritten. For the name this is trivial. The description is simply rewritten. + # Same goes for the return description and the class mapping. Only exception is the + # parameter list. Everytime we enter a tag the list is emptied again. + $$DocsParser::objCurrentFunction{name} = $functionName; + $$DocsParser::objCurrentFunction{description} = ""; + $$DocsParser::objCurrentFunction{param_names} = []; + $$DocsParser::objCurrentFunction{param_descriptions} = (); + $$DocsParser::objCurrentFunction{return_description} = ""; + $$DocsParser::objCurrentFunction{mapped_class} = ""; + } + } + elsif($tag eq "parameters") + { + $$DocsParser::objCurrentFunction{param_names} = []; + $$DocsParser::objCurrentFunction{param_descriptions} = (); + } + elsif($tag eq "parameter") + { + $DocsParser::currentParam = $attr{name}; + $$DocsParser::objCurrentFunction{param_descriptions}->{$DocsParser::currentParam} = ""; + } + elsif($tag eq "description") + { + $$DocsParser::objCurrentFunction{description} = ""; + # Set destination for parse_on_cdata(). + $DocsParser::refAppendTo = \$$DocsParser::objCurrentFunction{description}; + } + elsif($tag eq "parameter_description") + { + # Set destination for parse_on_cdata(). + my $param_desc = \$$DocsParser::objCurrentFunction{param_descriptions}; + $DocsParser::refAppendTo = \$$param_desc->{$DocsParser::currentParam}; + } + elsif($tag eq "return") + { + $$DocsParser::objCurrentFunction{return_description} = ""; + # Set destination for parse_on_cdata(). + $DocsParser::refAppendTo = \$$DocsParser::objCurrentFunction{return_description}; + } + elsif($tag eq "mapping") + { + $$DocsParser::objCurrentFunction{mapped_class} = $attr{class}; + } + elsif($tag eq "substitute_type_name") + { + $DocsParser::type_names{$attr{from}} = $attr{to}; + } + elsif($tag eq "substitute_enumerator_name") + { + if (exists $attr{from_prefix}) + { + $DocsParser::enumerator_name_prefixes{$attr{from_prefix}} = $attr{to_prefix}; + } + if (exists $attr{from}) + { + $DocsParser::enumerator_names{$attr{from}} = $attr{to}; + } + } + elsif($tag ne "root") + { + $objParser->xpcroak("\nUnknown tag \"$tag\"."); + } +} + + +sub parse_on_end($$) +{ + my ($parser, $tag) = @_; + + # Clear destination for parse_on_cdata(). + $DocsParser::refAppendTo = undef; + + $tag = lc($tag); + + if($tag eq "function" or $tag eq "signal" or $tag eq "property" or $tag eq "enum") + { + # Store the Function structure in the array: + my $functionName = $$DocsParser::objCurrentFunction{name}; + $DocsParser::hasharrayFunctions{$functionName} = $DocsParser::objCurrentFunction; + $DocsParser::objCurrentFunction = undef; + } + elsif($tag eq "parameter") + { + # and means the same. + if($DocsParser::currentParam eq "returns") + { + my $param_descriptions = \$$DocsParser::objCurrentFunction{param_descriptions}; + my $return_description = \$$DocsParser::objCurrentFunction{return_description}; + $$return_description = delete $$param_descriptions->{"returns"}; + } + else + { + # Append to list of parameters. + push(@{$$DocsParser::objCurrentFunction{param_names}}, $DocsParser::currentParam); + } + + $DocsParser::currentParam = undef; + } +} + + +sub parse_on_cdata($$) +{ + my ($parser, $data) = @_; + + if(defined $DocsParser::refAppendTo) + { + # Dispatch $data to the current destination string. + $$DocsParser::refAppendTo .= $data; + } +} + +sub lookup_enum_documentation($$$$$$$) +{ + my ($c_enum_name, $cpp_enum_name, $indent, $ref_subst_in, $ref_subst_out, + $deprecation_docs, $newin) = @_; + + my $objFunction = $DocsParser::hasharrayFunctions{$c_enum_name}; + if(!$objFunction) + { + #print "DocsParser.pm: Warning: enum not found: $enum_name\n"; + return "" + } + + my $docs = ""; + + my @param_names = @{$$objFunction{param_names}}; + my $param_descriptions = \$$objFunction{param_descriptions}; + + # Append the param docs first so that the enum description can come last and + # the possible flag docs that the m4 _ENUM() macro appends goes in the right + # place. + foreach my $param (@param_names) + { + my $desc = $$param_descriptions->{$param}; + + # Remove the initial prefix in the name of the enum constant. Would be something like GTK_. + $param =~ s/\b[A-Z]+_//; + + # Now apply custom substitutions. + for(my $i = 0; $i < scalar(@$ref_subst_in); ++$i) + { + $param =~ s/$$ref_subst_in[$i]/$$ref_subst_out[$i]/; + $desc =~ s/$$ref_subst_in[$i]/$$ref_subst_out[$i]/; + } + + # Skip this element, if its name has been deleted. + next if($param eq ""); + + $param =~ s/([a-zA-Z0-9]*(_[a-zA-Z0-9]+)*)_?/$1/g; + if(length($desc) > 0) + { + # Chop off leading and trailing whitespace. + $desc =~ s/^\s+//; + $desc =~ s/\s+$//; + $desc .= '.' unless($desc =~ /(?:^|\.)$/); + $docs .= "\@var $cpp_enum_name ${param}\n\u${desc}\n\n"; # \u = Convert next char to uppercase + } + } + + # Replace @newin in the enum description, but don't in the element descriptions. + my $description = "\@enum $cpp_enum_name\n"; + $description .= $$objFunction{description}; + DocsParser::convert_docs_to_cpp($c_enum_name, \$description); + DocsParser::replace_or_add_newin(\$description, $newin); + + # Add note about deprecation if we have specified that in our _WRAP_ENUM(), + # _WRAP_ENUM_DOCS_ONLY() or _WRAP_GERROR() call: + if($deprecation_docs ne "") + { + $description .= "\n\@deprecated $deprecation_docs\n"; + } + + # Append the enum description docs. + DocsParser::convert_docs_to_cpp($c_enum_name, \$docs); + $docs .= "\n\n$description"; + DocsParser::add_m4_quotes(\$docs); + + # Escape the space after "i.e." or "e.g." in the brief description. + $docs =~ s/^([^.]*\b(?:i\.e\.|e\.g\.))\s/$1\\ /; + + remove_example_code($c_enum_name, \$docs); + + # Add indentation and an asterisk on all lines except the first. + # $docs does not contain leading "/**" and trailing "*/". + $docs =~ s/\n/\n${indent}\* /g; + + return $docs; +} + +# $strCommentBlock lookup_documentation($strFunctionName, $deprecation_docs, $newin, $objCppfunc) +# The final objCppfunc parameter is optional. If passed, it is used to +# decide if the final C parameter should be omitted if the C++ method +# has a slot parameter. It is also used for converting C parameter names to +# C++ parameter names in the documentation, if they differ. +sub lookup_documentation($$$;$) +{ + my ($functionName, $deprecation_docs, $newin, $objCppfunc) = @_; + + my $objFunction = $DocsParser::hasharrayFunctions{$functionName}; + if(!$objFunction) + { + #print "DocsParser.pm: Warning: function not found: $functionName\n"; + return "" + } + + my $text = $$objFunction{description}; + + if(length($text) eq 0) + { + print "DocsParser.pm: Warning: No C docs for: \"$functionName\"\n"; + } + + DocsParser::convert_docs_to_cpp($functionName, \$text); + DocsParser::replace_or_add_newin(\$text, $newin); + # A blank line, marking the end of a paragraph, is needed after @newin. + # Most @newins are at the end of a function description. + $text .= "\n"; + + # Add note about deprecation if we have specified that in our _WRAP_METHOD(), + # _WRAP_SIGNAL(), _WRAP_PROPERTY() or _WRAP_CHILD_PROPERTY() call: + if($deprecation_docs ne "") + { + $text .= "\n\@deprecated $deprecation_docs\n"; + } + + my %param_name_mappings = DocsParser::append_parameter_docs($objFunction, \$text, $objCppfunc); + DocsParser::append_return_docs($objFunction, \$text); + + # Convert C parameter names to C++ parameter names where they differ. + foreach my $key (keys %param_name_mappings) + { + $text =~ s/\@(param|a) $key\b/\@$1 $param_name_mappings{$key}/g; + } + + # Remove leading and trailing white space. + $text = string_trim($text); + + DocsParser::add_m4_quotes(\$text); + + # Escape the space after "i.e." or "e.g." in the brief description. + $text =~ s/^([^.]*\b(?:i\.e\.|e\.g\.))\s/$1\\ /; + + remove_example_code($functionName, \$text); + + # Convert to Doxygen-style comment. + $text =~ s/\n/\n${DocsParser::commentMiddleStart}/g; + $text = $DocsParser::commentStart . $text; + $text .= "\n${DocsParser::commentEnd}\n"; + + return $text; +} + +# void convert_value_to_cpp(\$text) +# Converts e.g. a property's default value. +sub convert_value_to_cpp($) +{ + my ($text) = @_; + + $$text =~ s"\bFALSE\b"false"g; + $$text =~ s"\bTRUE\b"true"g; + $$text =~ s"\bNULL\b"nullptr"g; + + # Enumerator names + $$text =~ s/\b([A-Z]+)_([A-Z\d_]+)\b/&DocsParser::substitute_enumerator_name($1, $2)/eg; +} + +# void remove_example_code($obj_name, \$text) +# Removes example code from the text of docs (passed by reference). +sub remove_example_code($$) +{ + my ($obj_name, $text) = @_; + + # Remove C example code. + my $example_removals = + ($$text =~ s".*?"[C example ellipted]"sg); + $example_removals += + ($$text =~ s".*?"\n[C example ellipted]"sg); + $example_removals += ($$text =~ s"\|\[.*?]\|"\n[C example ellipted]"sg); + + # See "MS Visual Studio" comment in gmmproc.in. + print STDERR "gmmproc, $main::source, $obj_name: Example code discarded.\n" + if ($example_removals); +} + +sub add_m4_quotes($) +{ + my ($text) = @_; + + # __BT__ and __FT__ are M4 macros defined in the base.m4 file that produce + # a "`" and a "'" resp. without M4 errors. + my %m4_quotes = ( + "`" => "'__BT__`", + "'" => "'__FT__`", + ); + + $$text =~ s/([`'])/$m4_quotes{$1}/g; + $$text = "`" . $$text . "'"; +} + +# The final objCppfunc is optional. If passed, it is used to determine +# if the final C parameter should be omitted if the C++ method has a +# slot parameter. It is also used for converting C parameter names to +# C++ parameter names in the documentation, if they differ. +sub append_parameter_docs($$;$) +{ + my ($obj_function, $text, $objCppfunc) = @_; + + my @docs_param_names = @{$$obj_function{param_names}}; + my $param_descriptions = \$$obj_function{param_descriptions}; + my $defs_method = GtkDefs::lookup_method_dont_mark($$obj_function{name}); + my @c_param_names = $defs_method ? @{$$defs_method{param_names}} : @docs_param_names; + + # The information in + # $obj_function comes from the docs.xml file, + # $objCppfunc comes from _WRAP_METHOD() or _WRAP_SIGNAL() in the .hg file, + # $defs_method comes from the methods.defs file. + + # Ideally @docs_param_names and @c_param_names are identical. + # In the real world the parameters in the C documentation are sometimes not + # listed in the same order as the arguments in the C function declaration. + # We try to handle that case to some extent. If no argument name is misspelt + # in either the docs or the C function declaration, it usually succeeds for + # methods, but not for signals. For signals there is no C function declaration + # to compare with. If the docs of some method or signal get badly distorted + # due to imperfections in the C docs, and it's difficult to get the C docs + # corrected, correct docs can be added to the docs_override.xml file. + + # Skip first param if this is a signal. + if ($$obj_function{name} =~ /\w+::/) + { + shift(@docs_param_names); + shift(@c_param_names); + } + # Skip first parameter if this is a non-static method. + elsif (defined($objCppfunc)) + { + if (!$$objCppfunc{static}) + { + shift(@docs_param_names); + shift(@c_param_names); + } + } + # The second alternative is for use with method-mappings meaning: + # this function is mapped into this Gtk::class. + elsif (($defs_method && $$defs_method{class} ne "") || + $$obj_function{mapped_class} ne "") + { + shift(@docs_param_names); + shift(@c_param_names); + } + + + # Skip the last param if there is a slot because it would be a + # gpointer user_data parameter. + if (defined($objCppfunc) && $$objCppfunc{slot_name}) + { + pop(@docs_param_names); + pop(@c_param_names); + } + + # Skip the last param if it's an error output param. + if (scalar @docs_param_names && $docs_param_names[-1] eq "error") + { + pop(@docs_param_names); + pop(@c_param_names); + } + + my $cpp_param_names; + my $param_mappings; + my $out_param_index = 1000; # No method has that many arguments, hopefully. + if (defined($objCppfunc)) + { + $cpp_param_names = $$objCppfunc{param_names}; + $param_mappings = $$objCppfunc{param_mappings}; # C name -> C++ index + if (exists $$param_mappings{OUT}) + { + $out_param_index = $$param_mappings{OUT}; + } + } + my %param_name_mappings; # C name -> C++ name + + for (my $i = 0; $i < @docs_param_names; ++$i) + { + my $param = $docs_param_names[$i]; + my $desc = $$param_descriptions->{$param}; + my $param_without_trailing_underscore = $param; + $param_without_trailing_underscore =~ s/([a-zA-Z0-9]*(_[a-zA-Z0-9]+)*)_?/$1/g; + + if (defined($objCppfunc)) + { + # If the C++ name is not equal to the C name, mark that the name + # shall be changed in the documentation. + my $cpp_name = $param; + if (exists $$param_mappings{$param}) + { + # Rename and/or reorder declaration ({c_name} or {.}) in _WRAP_*(). + $cpp_name = $$cpp_param_names[$$param_mappings{$param}]; + } + elsif ($c_param_names[$i] eq $param) + { + # Location in docs coincides with location in C declaration. + my $cpp_index = $i; + $cpp_index++ if ($i >= $out_param_index); + $cpp_name = $$cpp_param_names[$cpp_index]; + } + else + { + # Search for the param in the C declaration. + for (my $j = 0; $j < @c_param_names; ++$j) + { + if ($c_param_names[$j] eq $param) + { + my $cpp_index = $j; + $cpp_index++ if ($j >= $out_param_index); + $cpp_name = $$cpp_param_names[$cpp_index]; + last; + } + } + } + if ($cpp_name ne $param) + { + $param_name_mappings{$param_without_trailing_underscore} = $cpp_name; + } + } + elsif ($param eq "callback") + { + # Deal with callback parameters converting the docs to a slot + # compatible format. + $param_name_mappings{$param} = "slot"; + } + + DocsParser::convert_docs_to_cpp($$obj_function{name}, \$desc); + if(length($desc) > 0) + { + $desc .= '.' unless($desc =~ /(?:^|\.)$/); + $$text .= "\n\@param ${param_without_trailing_underscore} \u${desc}"; + } + } + return %param_name_mappings; +} + + +sub append_return_docs($$) +{ + my ($obj_function, $text) = @_; + + my $desc = $$obj_function{return_description}; + DocsParser::convert_docs_to_cpp($$obj_function{name}, \$desc); + + $desc =~ s/\.$//; + $$text .= "\n\@return \u${desc}." unless($desc eq ""); +} + + +sub convert_docs_to_cpp($$) +{ + my ($doc_func, $text) = @_; + + # Chop off leading and trailing whitespace. + $$text =~ s/^\s+//; + $$text =~ s/\s+$//; + + # Convert C documentation to C++. + DocsParser::remove_c_memory_handling_info($text); + DocsParser::convert_tags_to_doxygen($text); + DocsParser::substitute_identifiers($doc_func, $text); + + $$text =~ s/\bX\s+Window\b/X \%Window/g; + $$text =~ s/\bWindow\s+manager/\%Window manager/g; +} + +sub remove_c_memory_handling_info($) +{ + my ($text) = @_; + + # These C memory handling functions are removed, in most cases: + # g_free, g_strfreev, g_list_free, g_slist_free + my $mem_funcs = '\\bg_(?:free|strfreev|s?list_free)\\b'; + + return if ($$text !~ /$mem_funcs/); + + # The text contains $mem_funcs. That's usually not relevant to C++ programmers. + # Try to remove irrelevant text without removing too much. + + # This function is called separately for the description of each method, + # parameter and return value. Let's assume that only one removal is necessary. + + # Don't modify the text, if $mem_funcs is part of example code. + # remove_c_memory_handling_info() is called before remove_example_code(). + return if ($$text =~ m"(?:||\|\[).*?$mem_funcs.*?(?:||]\|)"s); + + # First try to remove the sentence containing $mem_funcs. + # For simplicity, assume that a sentence is any string ending with a period. + my $tmp = $$text; + if ($tmp =~ s/[^.]*$mem_funcs.*?(?:\.|$)//s) + { + if ($tmp =~ /\w/) + { + # A sentence contains $mem_funcs, and it's not the only sentence in the text. + # Remove that sentence. + $$text = $tmp; + return; + } + } + + $tmp = $$text; + if ($tmp =~ s/[^.,]*$mem_funcs.*?(?:\.|,|$)//s) + { + if ($tmp =~ /\w/) + { + # A clause, delimited by comma or period, contains $mem_funcs, + # and it's not the only clause in the text. Remove that clause. + $tmp =~ s/,\s*$/./; + $$text = $tmp; + return; + } + } + + # Last attempt. If this doesn't remove anything, don't modify the text. + $$text =~ s/ that (?:must|should) be freed with g_free(?:\(\))?//; +} + +sub convert_tags_to_doxygen($) +{ + my ($text) = @_; + + for($$text) + { + # Replace format tags. + s"<(/?)(?:emphasis|replaceable)>"<$1em>"g; + s"<(/?)(?:constant|envar|filename|function|guimenuitem|literal|option|structfield|varname)>"<$1tt>"g; + + # Some argument names are suffixed by "_" -- strip this. + # gtk-doc uses @thearg, but doxygen uses @a thearg. + s" ?\@([a-zA-Z0-9]*(_[a-zA-Z0-9]+)*)_?\b" \@a $1"g; + + # Don't convert Doxygen's $throw, @throws and @param, so these can be used + # in the docs_override.xml. + # Also don't convert @enum and @var which are used for enum documentation. + s" \@a (throws?|param|enum|var)\b" \@$1"g; + + s"^Note ?\d?: "\@note "mg; + s"""g; + s"""g; + + # Remove all link tags. + s"""g; + + # Remove all para tags and simpara tags (simple paragraph). + s"""g; + + # Convert , and to something that + # Doxygen understands. + s"\n?(.*?)\n?"&DocsParser::convert_simplelist($1)"esg; + s"\n?(.*?)\n?"&DocsParser::convert_itemizedlist($1)"esg; + s"\n?(.*?)\n?"&DocsParser::convert_variablelist($1)"esg; + + # Use our Doxygen @newin alias. + # Accept "Since" with or without a following colon. + # Require the Since clause to be + # - at the end of the string, + # - at the end of a line and followed by a blank line, or + # - followed by "Deprecated". + # If none of these requirements is met, "Since" may be embedded inside + # a function description, referring to only a part of the description. + # See e.g. g_date_time_format() and gdk_cursor_new_from_pixbuf(). + # Doxygen assumes that @newin is followed by a paragraph that describes + # what is new, but we don't use it that way. + my $first_part = '\bSince[:\h]\h*(\d+)\.(\d+)'; # \h == [\t ] (horizontal whitespace) + my $last_part = '\.?(\s*$|\h*\n\h*\n|\s+Deprecated)'; + s/$first_part\.(\d+)$last_part/\@newin{$1,$2,$3}$4/g; + s/$first_part$last_part/\@newin{$1,$2}$3/g; + + # Doxygen is too dumb to handle — + s"—" \@htmlonly—\@endhtmlonly "g; + + s"\%?\bFALSE\b"false"g; + s"\%?\bTRUE\b"true"g; + s"\%?\bNULL\b"nullptr"g; + + s"#?\bgboolean\b"bool"g; + s"#?\bg(int|short|long)\b"$1"g; + s"#?\bgu(int|short|long)\b"unsigned $1"g; + + # Escape all backslashes, except in \throw, \throws and \param, which can + # be Doxygen commands in the docs_override.xml. + s"\\"\\\\"g; + s"\\\\(throws?|param)\b"\\$1"g + } +} + +# void replace_or_add_newin(\$text, $newin) +# If $newin is not empty, replace the version numbers in an existing @newin +# Doxygen alias, or add one if there is none. +sub replace_or_add_newin($$) +{ + my ($text, $newin) = @_; + + return if ($newin eq ""); + + if (!($$text =~ s/\@newin\{[\d,]+\}/\@newin{$newin}/)) + { + $$text .= "\n\n\@newin{$newin}"; + } +} + +# Convert tags to a list of newline-separated elements. +sub convert_simplelist($) +{ + my ($text) = @_; + + $text =~ s"(.*?)(\n?)(\n?)"$1
\n"sg; + return "
\n" . $text . "
\n"; +} + +# Convert tags to Doxygen format. +sub convert_itemizedlist($) +{ + my ($text) = @_; + + $text =~ s"(.*?)(\n?)(\n?)"- $1\n"sg; + return $text; +} + +# Convert tags to an HTML definition list. +sub convert_variablelist($) +{ + my ($text) = @_; + + $text =~ s"\n?""g; + $text =~ s"<(/?)term>"<$1dt>"g; + $text =~ s"<(/?)listitem>"<$1dd>"g; + return "
\n" . $text . "
\n"; +} + +sub substitute_identifiers($$) +{ + my ($doc_func, $text) = @_; + + for($$text) + { + # TODO: handle more than one namespace + + # Convert property names to C++. + # The standard (and correct) gtk-doc way of referring to properties. + s/(#[A-Z]\w+):([a-z\d-]+)/my $name = "$1::property_$2()"; $name =~ s"-"_"g; "$name";/ge; + # This is an incorrect format but widely used so correctly treat as a + # property. + s/(\s)::([a-z\d-]+)(\s+property)/my $name = "$1property_$2()$3"; $name =~ s"-"_"g; "$name";/ge; + # This one catches properties written in the gtk-doc block as for example + # '#GtkActivatable::related-action property'. The correct way to write it + # would be 'GtkActivatable:related-action' (with a single colon and not + # two because the double colons are specifically for signals -- see the + # gtk-doc docs: + # http://developer.gnome.org/gtk-doc-manual/unstable/documenting_symbols.html.en) + # but a few are written with the double colon in the gtk+ docs so this + # protects against those errors. + s/([A-Z]\w+)::([a-z\d-]+)(\s+property)/my $name = "$1::property_$2()$3"; $name =~ s"-"_"g; "$name";/ge; + + # Convert signal names to C++. + s/(^|\s)::([a-z\d-]+)(\(\))*([^:\w]|$)/my $name = "$1signal_$2()$4"; $name =~ s"-"_"g; "$name";/ge; + s/(#[A-Z]\w+)::([a-z\d-]+)(\(\))*([^:\w]|$)/my $name = "$1::signal_$2()$4"; $name =~ s"-"_"g; "$name";/ge; + + # Type names + s/[#%]([A-Z][a-z]*)([A-Z][A-Za-z]+)\b/&DocsParser::substitute_type_name($1, $2)/eg; + + # Enumerator names + s/[#%]([A-Z]+)_([A-Z\d_]+)\b/&DocsParser::substitute_enumerator_name($1, $2)/eg; + + s/\bG:://g; #Rename G::Something to Something. + + # Substitute callback types to slot types. + s/(\b\w+)Callback/Slot$1/g; + + # Replace C function names with C++ counterparts. + s/\b([a-z]+_[a-z][a-z\d_]+) ?\(\)/&DocsParser::substitute_function($doc_func, $1)/eg; + } +} + +sub substitute_type_name($$) +{ + my ($module, $name) = @_; + my $c_name = $module . $name; + + if (exists $DocsParser::type_names{$c_name}) + { + return $DocsParser::type_names{$c_name}; + } + #print "DocsParser.pm: Assuming the type $c_name shall become " . (($module eq "G") ? "" : "${module}::") . "$name.\n"; + return $module . "::" . $name; +} + +sub substitute_enumerator_name($$) +{ + state $first_call = 1; + state @sorted_keys; + + my ($module, $name) = @_; + my $c_name = $module . "_" . $name; + + if (exists $DocsParser::enumerator_names{$c_name}) + { + return $DocsParser::enumerator_names{$c_name}; + } + + if ($first_call) + { + # Sort only once, on the first call. + # "state @sorted_keys = ...;" is not possible. Only a scalar variable + # can have a one-time assignment in its defining "state" statement. + $first_call = 0; + @sorted_keys = reverse sort keys(%DocsParser::enumerator_name_prefixes); + } + + # This is a linear search through the keys of %DocsParser::enumerator_name_prefixes. + # It's inefficient if %DocsParser::enumerator_name_prefixes contains many values. + # + # If one key is part of another key (e.g. G_REGEX_MATCH_ and G_REGEX_), + # search for a match against the longer key before the shorter key. + foreach my $key (@sorted_keys) + { + if ($c_name =~ m/^$key/) + { + # $c_name begins with $key. Replace that part of $c_name with the C++ analogue. + $c_name =~ s/^$key/$DocsParser::enumerator_name_prefixes{$key}/; + return $c_name; # Now it's the C++ name. + } + } + + # Don't apply the default substitution to these module names. + # They are not really modules. + if (grep {$module eq $_} qw(HAS NO O SO AF)) + { + return $c_name; + } + + my $cxx_name = (($module eq "G") ? "" : (ucfirst(lc($module)) . "::")) . $name; + + #print "DocsParser.pm: Assuming the enumerator $c_name shall become $cxx_name.\n"; + return $cxx_name; +} + +sub substitute_function($$) +{ + my ($doc_func, $name) = @_; + + if(my $defs_method = GtkDefs::lookup_method_dont_mark($name)) + { + if(my $defs_object = DocsParser::lookup_object_of_method($$defs_method{class}, $name)) + { + my $module = $$defs_object{module}; + my $class = $$defs_object{name}; + + DocsParser::build_method_name($doc_func, $module, $class, \$name); + } + else + { + print STDERR "Documentation: Class/Namespace for $name not found\n"; + } + } + else + { + # Not perfect, but better than nothing. + $name =~ s/^g_/Glib::/; + } + + return $name . "()"; +} + +sub lookup_object_of_method($$) +{ + my ($object, $name) = @_; + + if($object ne "") + { + my $result = GtkDefs::lookup_object($object); + + # We already know the C object name, because $name is a non-static method. + if(defined($result) and ($result ne "")) + { + return $result; + } + else + { + print "DocsParser.pm: lookup_object_of_method(): Warning: GtkDefs::lookup_object() failed for object name=" . $object . ", function name=" . $name . "\n"; + print " This may be a missing define-object in a *.defs file.\n" + } + } + + my @parts = split(/_/, $name); + pop(@parts); + + # (gtk, foo, bar) -> (Gtk, Foo, Bar) + foreach(@parts) { $_ = (length > 2) ? ucfirst : uc; } + + # Do a bit of try'n'error. + while($#parts >= 1) + { + my $try = join("", @parts); + + if(my $defs_object = GtkDefs::lookup_object($try)) + { return $defs_object; } + + pop(@parts); + } + + return undef; +} + + +sub build_method_name($$$$) +{ + my ($doc_func, $module, $class, $name) = @_; + + my $prefix = $module . $class; + + $prefix =~ s/([a-z])([A-Z])/$1_$2/g; + $prefix = lc($prefix) . '_'; + + if($$name =~ m/^\Q$prefix\E/) + { + my $scope = ""; + $scope = "${module}::${class}::" unless($doc_func =~ m/^\Q$prefix\E/); + + substr($$name, 0, length($prefix)) = $scope; + } +} + + +1; # indicate proper module load. diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Enum.pm b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Enum.pm new file mode 100644 index 0000000..ceb705c --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Enum.pm @@ -0,0 +1,327 @@ +package Enum; + +use strict; +use warnings; +use DocsParser; + +BEGIN { + use Exporter (); + our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); + + # set the version for version checking + $VERSION = 1.00; + @ISA = qw(Exporter); + @EXPORT = ( ); + %EXPORT_TAGS = ( ); + # your exported package globals go here, + # as well as any optionally exported functions + @EXPORT_OK = ( ); + } +our @EXPORT_OK; + +# class Enum +# { +# bool flags; +# string type; +# string module; +# string c_type; +# +# string array elem_names; +# string array elem_values; +# string c_prefix; +# +# bool mark; +# } + +# +# private functions: +# + +sub split_enum_tokens($) +{ + my ($token_string) = @_; + my @tokens = (); + # index of first opening double quotes between parens - beginning of a new + # token. + my $begin_token = 0; + # index of last closing double quotes between parens - end of a token. + my $end_token = 0; + # whether we are inside double quotes. + my $inside_dquotes = 0; + # whether we are inside double and then single quotes (for situations like + # "'"'"). + my $inside_squotes = 0; + my $len = length($token_string); + # whether we found opening paren and we are expecting an opening double + # quotes. + my $near_begin = 0; + # count of double quotes pairs between parens. + my $dq_count = 0; + # whether previous char was a backslash - important only when being between + # double quotes. + my $backslash = 0; + for (my $index = 0; $index < $len; $index++) + { + my $char = substr($token_string, $index, 1); + if ($inside_dquotes) + { + # if prevous char was backslash, then current char is not important - + # we are still inside double or double/single quotes anyway. + if ($backslash) + { + $backslash = 0; + } + # if current char is backslash. + elsif ($char eq '\\') + { + $backslash = 1; + } + # if current char is unescaped double quotes and we are not inside single + # ones - means, we are going outside string. We mark this place as an end + # of the token in case we find a closing paren after this. + elsif ($char eq '"' and not $inside_squotes) + { + $inside_dquotes = 0; + $end_token = $index; + } + # if current char is single quote then switch being inside single quotes + # state. + elsif ($char eq '\'') + { + $inside_squotes = not $inside_squotes; + } + } + # current char is opening paren - this means we are near the beginning of + # a token (first double quotes after this paren). + elsif ($char eq '(') + { + $near_begin = 1; + } + # current char is closing paren - this means we reached end of a token at + # last closing double quotes. + elsif ($char eq ')') + { + my $token_len = $end_token + 1 - $begin_token; + my $token = substr($token_string, $begin_token, $token_len); + # there should be three pairs of double quotes. + if ($dq_count == 3) + { + push(@tokens, $token); + } + else + { + print STDERR "Wrong value statement while parsing ($token)\n"; + } + $dq_count = 0; + } + # current char is opening double quotes - this can be a beginning of + # a token. + elsif ($char eq '"') + { + if ($near_begin) + { + $begin_token = $index; + $near_begin = 0; + } + $inside_dquotes = 1; + $dq_count++; + } + } + return @tokens; +} + +# +# end of private functions. +# + +sub new +{ + my ($def) = @_; + my $self = {}; + bless $self; + + $def =~ s/^\(//; + $def =~ s/\)$//; + + $$self{mark} = 0; + $$self{flags} = 0; + $$self{c_prefix} = ""; + + $$self{elem_names} = []; + $$self{elem_values} = []; + + # snarf down the fields + + if($def =~ s/^define-(enum|flags)-extended (\S+)//) + { + $$self{type} = $2; + $$self{flags} = 1 if($1 eq "flags"); + } + + $$self{module} = $1 if($def =~ s/\(in-module "(\S+)"\)//); + $$self{c_type} = $1 if($def =~ s/\(c-name "(\S+)"\)//); + + # values are compound lisp statement + if($def =~ s/\(values((?: '\("\S+" "\S+" "[^"]+"\))*) \)//) + { + $self->parse_values($1); + } + + if($def !~ /^\s*$/) + { + GtkDefs::error("Unhandled enum def ($def) in $$self{module}\::$$self{type}\n") + } + + # this should never happen + warn if(scalar(@{$$self{elem_names}}) != scalar(@{$$self{elem_values}})); + + return $self; +} + +sub parse_values($$) +{ + my ($self, $value) = @_; + + my $elem_names = []; + my $elem_values = []; + my $common_prefix = undef; + # break up the value statements - it works with parens inside double quotes + # and handles triples like '("dq-token", "MY_SCANNER_DQ_TOKEN", "'"'"). + foreach (split_enum_tokens($value)) + { + if (/^"\S+" "(\S+)" "(.+)"$/) + { + my ($name, $value) = ($1, $2); + + # detect whether there is module prefix common to all names, e.g. GTK_ + my $prefix = $1 if ($name =~ /^([^_]+_)/); + + if (not defined($common_prefix)) + { + $common_prefix = $prefix; + } + elsif ($prefix ne $common_prefix) + { + $common_prefix = ""; + } + + push(@$elem_names, $name); + push(@$elem_values, $value); + } + else + { + GtkDefs::error("Unknown value statement ($_) in $$self{c_type}\n"); + } + } + + if ($common_prefix) + { + # cut off the module prefix, e.g. GTK_ + s/^$common_prefix// foreach (@$elem_names); + + # Save the common prefix. + $$self{c_prefix} = $common_prefix; + } + + $$self{elem_names} = $elem_names; + $$self{elem_values} = $elem_values; +} + +sub beautify_values($) +{ + my ($self) = @_; + + return if($$self{flags}); + + my $elem_names = $$self{elem_names}; + my $elem_values = $$self{elem_values}; + + my $num_elements = scalar(@$elem_values); + return if($num_elements == 0); + + my $first = $$elem_values[0]; + return if($first !~ /^-?[0-9]+$/); + + my $prev = $first; + + # Continuous? (Aliases to prior enum values are allowed.) + foreach my $value (@$elem_values) + { + return if ($value =~ /[G-WY-Zg-wy-z_]/); + return if(($value < $first) || ($value > $prev + 1)); + $prev = $value; + } + + # This point is reached only if the values are a continuous range. + # 1) Let's kill all the superfluous values, for better readability. + # 2) Substitute aliases to prior enum values. + + my %aliases = (); + + for(my $i = 0; $i < $num_elements; ++$i) + { + my $value = \$$elem_values[$i]; + my $alias = \$aliases{$$value}; + + if(defined($$alias)) + { + $$value = $$alias; + } + else + { + $$alias = $$elem_names[$i]; + $$value = "" unless($first != 0 && $$value == $first); + } + } +} + +sub build_element_list($$$$) +{ + my ($self, $ref_subst_in, $ref_subst_out, $indent) = @_; + + my $elem_names = $$self{elem_names}; + my $elem_values = $$self{elem_values}; + + my $num_elements = scalar(@$elem_names); + my $elements = ""; + + for(my $i = 0; $i < $num_elements; ++$i) + { + my $name = $$elem_names[$i]; + my $value = $$elem_values[$i]; + + for(my $ii = 0; $ii < scalar(@$ref_subst_in); ++$ii) + { + $name =~ s/$$ref_subst_in[$ii]/$$ref_subst_out[$ii]/; + $value =~ s/$$ref_subst_in[$ii]/$$ref_subst_out[$ii]/; + } + + # Skip this element, if its name has been deleted. + next if($name eq ""); + + $elements .= ",\n" if($elements ne ""); + $elements .= "${indent}${name}"; + $elements .= " = ${value}" if($value ne ""); + } + + return $elements; +} + +sub dump($) +{ + my ($self) = @_; + + print "\n"; + + my $elem_names = $$self{elem_names}; + my $elem_values = $$self{elem_values}; + + for(my $i = 0; $i < scalar(@$elem_names); ++$i) + { + print " \n"; + } + + print "\n\n"; +} + +1; # indicate proper module load. diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Function.pm b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Function.pm new file mode 100644 index 0000000..f962216 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Function.pm @@ -0,0 +1,497 @@ +package Function; + +use strict; +use warnings; +use Util; +use FunctionBase; + +# These flags indicate whether parameters are optional or output parameters. +use constant FLAG_PARAM_OPTIONAL => 1; +use constant FLAG_PARAM_OUTPUT => 2; +# These flags indicate how an empty string shall be translated to a C string: +# to a nullptr or to a pointer to an empty string. +use constant FLAG_PARAM_NULLPTR => 4; +use constant FLAG_PARAM_EMPTY_STRING => 8; + +BEGIN { + use Exporter (); + our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); + + # set the version for version checking + $VERSION = 1.00; + @ISA = qw(FunctionBase); + @EXPORT = qw(&func1 &func2 &func4); + %EXPORT_TAGS = ( ); + # your exported package globals go here, + # as well as any optionally exported functions + @EXPORT_OK = qw($Var1 %Hashit &func3 FLAG_PARAM_OPTIONAL FLAG_PARAM_OUTPUT + FLAG_PARAM_NULLPTR FLAG_PARAM_EMPTY_STRING); + } +our @EXPORT_OK; + +################################################## +### Function +# Commonly used algorithm for parsing a function declaration into +# its component pieces +# +# class Function : FunctionBase +# { +# string rettype; +# bool const; +# bool static; +# string name; e.g. gtk_accelerator_valid +# string c_name; +# string array param_type; +# string array param_name; +# string array param_default_value; +# int array param_flags; (stores flags form params: 1 => optional, 2 => output) +# hash param_mappings; (maps C param names (if specified) to the C++ index) +# string array possible_args_list; (a list of space separated indexes) +# string in_module; e.g. Gtk +# string signal_when. e.g. first, last, or both. +# string class e.g. GtkButton ( == of-object. Useful for signal because their names are not unique. +# string entity_type. e.g. method or signal +# } + +# Subroutine to get an array of string of indices representing the possible +# combination of arguments based on whether some parameters are optional. +sub possible_args_list($$); + +sub new_empty() +{ + my $self = {}; + bless $self; + + return $self; +} + +# $objFunction new($function_declaration, $objWrapParser) +sub new($$) +{ + #Parse a function/method declaration. + #e.g. guint gtk_something_set_thing(guint a, const gchar* something) + + my ($line, $objWrapParser) = @_; + + my $self = {}; + bless $self; + + #Initialize member data: + $$self{rettype} = ""; + $$self{rettype_needs_ref} = 0; #Often the gtk function doesn't do an extra ref for the receiver. + $$self{const} = 0; + $$self{name} = ""; + $$self{param_types} = []; + $$self{param_names} = []; + $$self{param_default_values} = []; + $$self{param_flags} = []; + $$self{param_mappings} = {}; + $$self{possible_args_list} = []; + $$self{in_module} = ""; + $$self{class} = ""; + $$self{entity_type} = "method"; + + $line =~ s/^\s+//; # Remove leading whitespace. + $line =~ s/\s+/ /g; # Compress white space. + + if ($line =~ /^static\s+([^()]+)\s+(\S+)\s*\((.*)\)\s*$/) + { + $$self{rettype} = $1; + $$self{name} = $2; + $$self{c_name} = $2; + $self->parse_param($3); + $$self{static} = 1; + } + elsif ($line =~ /^([^()]+)\s+(\S+)\s*\((.*)\)\s*(const)*$/) + { + $$self{rettype} = $1; + $$self{name} = $2; + $$self{c_name} = $2; + $self->parse_param($3); + $$self{const} = defined($4); + } + else + { + $objWrapParser->error("fail to parse $line\n"); + } + + # Store the list of possible argument combinations based on if arguments + # are optional. + my $possible_args_list = $$self{possible_args_list}; + push(@$possible_args_list, $self->possible_args_list()); + + return $self; +} + + +# $objFunction new_ctor($function_declaration, $objWrapParser) +# Like new(), but the function_declaration doesn't need a return type. +sub new_ctor($$) +{ + #Parse a function/method declaration. + #e.g. guint gtk_something_set_thing(guint a, const gchar* something) + + my ($line, $objWrapParser) = @_; + + my $self = {}; + bless $self; + + #Initialize member data: + $$self{rettype} = ""; + $$self{rettype_needs_ref} = 0; + $$self{const} = 0; + $$self{name} = ""; + $$self{param_types} = []; + $$self{param_names} = []; + $$self{param_default_values} = []; + $$self{param_flags} = []; + $$self{param_mappings} = {}; + $$self{possible_args_list} = []; + $$self{in_module} = ""; + $$self{class} = ""; + $$self{entity_type} = "method"; + + $line =~ s/^\s+//; # Remove leading whitespace. + $line =~ s/\s+/ /g; # Compress white space. + + if ($line =~ /^(\S+)\s*\((.*)\)\s*/) + { + $$self{name} = $1; + $$self{c_name} = $1; + $self->parse_param($2); + } + else + { + $objWrapParser->error("fail to parse $line\n"); + } + + # Store the list of possible argument combinations based on if arguments + # are optional. + my $possible_args_list = $$self{possible_args_list}; + push(@$possible_args_list, $self->possible_args_list()); + + return $self; +} + +# $num num_args() +sub num_args #($) +{ + my ($self) = @_; + my $param_types = $$self{param_types}; + return $#$param_types+1; +} + +# parses C++ parameter lists. +# forms a list of types, names, and default values +sub parse_param($$) +{ + my ($self, $line) = @_; + + my $type = ""; + my $name = ""; + my $name_pos = -1; + my $value = ""; + my $id = 0; + my $has_value = 0; + my $flags = 0; + my $curr_param = 0; + + my $param_types = $$self{param_types}; + my $param_names = $$self{param_names}; + my $param_default_values = $$self{param_default_values}; + my $param_flags = $$self{param_flags}; + my $param_mappings = $$self{param_mappings}; + + # Mappings from a C name to this C++ param defaults to empty (no mapping). + my $mapping = ""; + + # clean up space and handle empty case + $line = string_trim($line); + $line =~ s/\s+/ /g; # Compress whitespace. + return if ($line =~ /^$/); + + # Add a ',' at the end. No special treatment of the last parameter is necessary, + # if it's followed by a comma, like the other parameters. + $line .= ',' if (substr($line, -1) ne ','); + + # Parse through the argument list. + # + # We must find commas (,) that separate parameters, and equal signs (=) that + # separate parameter names from optional default values. + # '&', '*' and '>' are delimiters in split() because they must be separated + # from the parameter name even if there is no space char between. + # Commas within "<.,.>" or "{.,.}" or "(.,.)" do not end a parameter. + # This parsing is not guaranteed to work well if there are several levels + # of (()) or {{}}. X> works in the normal case where there is nothing + # but possibly spaces between the multiple ">>". + # Quoted strings are not detected. If a quoted string exists in a function + # prototype, it's probably as part of a default value, inside ("x") or {"y"}. + # + my @str = (); + foreach (split(/(\bconst\b|[,=&*>]|<.*?>|{.*?}|\(.*?\)|\s+)/, $line)) + { + next if ( !defined($_) or $_ eq "" ); + + if ($_ =~ /^(?:const|[*&>]|<.*>|\(.*\)|\s+)$/) + { + # Any separator, except ',' or '=' or {.*}. + push(@str, $_); + next; + } + elsif ($_ =~ /^{(.*)}$/) + { + if (!$has_value) + { + # gmmproc options have been specified for the current parameter so + # process them. + + # Get the options. + my $options = $1; + + # Check if param should be optional or an output param. + $flags = FLAG_PARAM_OPTIONAL if($options =~ /\?/); + $flags |= FLAG_PARAM_OUTPUT if($options =~ />>/); + + # Delete "NULL" from $options, so it won't be interpreted as a parameter name. + if ($options =~ s/(!?\bNULL\b)//) + { + $flags |= ($1 eq "!NULL") ? FLAG_PARAM_EMPTY_STRING : FLAG_PARAM_NULLPTR; + } + + # Check if it should be mapped to a C param. + if ($options =~ /(\w+|\.)/) + { + $mapping = $1; + $mapping = $name if($mapping eq "."); + } + } + else + { + # {...} in a default value. + push(@str, $_); + } + next; + } + elsif ( $_ eq "=" ) #Default value + { + $str[$name_pos] = "" if ($name_pos >= 0); + # The type is everything before the = character, except the parameter name. + $type = join("", @str); + @str = (); #Wipe it so that it will only contain the default value, which comes next. + $has_value = 1; + next; + } + elsif ( $_ eq "," ) #The end of one parameter: + { + if ($has_value) + { + $value = join("", @str); # If there's a default value, then it's the part before the next ",". + } + else + { + $str[$name_pos] = "" if ($name_pos >= 0); + $type = join("", @str); + } + + if ($name eq "") + { + $name = sprintf("p%s", $#$param_types + 2) + } + + $type = string_trim($type); + + push(@$param_types, $type); + push(@$param_names, $name); + push(@$param_default_values, $value); + push(@$param_flags, $flags); + + # Map from the c_name to the C++ index (no map if no name given). + $$param_mappings{$mapping} = $curr_param if($mapping); + + #Clear variables, ready for the next parameter. + @str = (); + $type= ""; + $value = ""; + $has_value = 0; + $name = ""; + $name_pos = -1; + $flags = 0; + $curr_param++; + + # Mappings from a C name to this C++ param defaults to empty (no mapping). + $mapping = ""; + + $id = 0; + next; + } + + # Anything but a separator in split(). + push(@str, $_); + + if (!$has_value) + { + # The last identifier before ',', '=', or '{.*}' is the parameter name. + # E.g. int name, unsigned long int name = 42, const unsigned int& name. + # The name must be preceded by at least one other identifier (the type). + # 'const' is treated specially, as it can't by itself denote the type. + $id++; + if ($id >= 2) + { + $name = $_; + $name_pos = $#str; + } + } + } # end foreach +} + +# add_parameter_autoname($, $type, $name) +# Adds e.g "sometype somename" +sub add_parameter_autoname($$) +{ + my ($self, $type) = @_; + + add_parameter($self, $type, ""); +} + +# add_parameter($, $type, $name) +# Adds e.g GtkSomething* p1" +sub add_parameter($$$) +{ + my ($self, $type, $name) = @_; + $type = string_unquote($type); + $type =~ s/-/ /g; + + my $param_names = $$self{param_names}; + + if ($name eq "") + { + $name = sprintf("p%s", $#$param_names + 2); + } + + push(@$param_names, $name); + + my $param_types = $$self{param_types}; + push(@$param_types, $type); + + return $self; +} + +# $string get_refdoc_comment($existing_signal_docs, $signal_flags) +# Generate a readable prototype for signals and merge the prototype into the +# existing Doxygen comment block. +sub get_refdoc_comment($$$) +{ + my ($self, $documentation, $signal_flags) = @_; + + my $str = " /**\n"; + + $str .= " * \@par Slot Prototype:\n"; + $str .= " * $$self{rettype} on_my_\%$$self{name}("; + + my $param_names = $$self{param_names}; + my $param_types = $$self{param_types}; + my $num_params = scalar(@$param_types); + + # List the parameters: + for(my $i = 0; $i < $num_params; ++$i) + { + $str .= $$param_types[$i] . ' ' . $$param_names[$i]; + $str .= ", " if($i < $num_params - 1); + } + + $str .= ")\n"; + $str .= " *\n"; + + if ($signal_flags) + { + $str .= " * Flags: $signal_flags\n *\n"; + } + + if($documentation ne "") + { + # Remove the initial '/** ' from the existing docs and merge it. + $documentation =~ s/\/\*\*\s+/ \* /; + $str .= $documentation; + } + else + { + # Close the doc block if there's no existing docs. + $str .= " */\n"; + } + + # Return the merged documentation. + return $str; +} + +sub get_is_const($) +{ + my ($self) = @_; + + return $$self{const}; +} + +# string array possible_args_list() +# Returns an array of string of space separated indexes representing the +# possible argument combinations based on whether parameters are optional. +sub possible_args_list($$) +{ + my ($self, $start_index) = @_; + + my $param_names = $$self{param_names}; + my $param_types = $$self{param_types}; + my $param_flags = $$self{param_flags}; + + my @result = (); + + # Default starting index is 0 (The first call will have an undefined start + # index). + my $i = $start_index || 0; + + if($i > $#$param_types) + { + # If index is past last arg, return an empty array inserting an empty + # string if this function has no parameters. + push(@result, "") if ($i == 0); + return @result; + } + elsif($i == $#$param_types) + { + # If it's the last arg just add its index: + push(@result, "$i"); + # And if it's optional also add an empty string to represent that it is + # not added. + push(@result, "") if ($$param_flags[$i] & FLAG_PARAM_OPTIONAL); + return @result; + } + + # Get the possible indices for remaining params without this one. + my @remaining = possible_args_list($self, $i + 1); + + # Prepend this param's index to the remaining ones. + foreach my $possibility (@remaining) + { + if($possibility) + { + push(@result, "$i " . $possibility); + } + else + { + push(@result, "$i"); + } + } + + # If this parameter is optional, append the remaining possibilities without + # this param's type and name. + if($$param_flags[$i] & FLAG_PARAM_OPTIONAL) + { + foreach my $possibility (@remaining) + { + push(@result, $possibility); + } + } + + return @result; +} + +1; # indicate proper module load. + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/pm/FunctionBase.pm b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/FunctionBase.pm new file mode 100644 index 0000000..0a0ba19 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/FunctionBase.pm @@ -0,0 +1,322 @@ +package FunctionBase; + +use strict; +use warnings; +use Util; + +BEGIN { + use Exporter (); + our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); + + # set the version for version checking + $VERSION = 1.00; + @ISA = qw(Exporter); + @EXPORT = qw(&func1 &func2 &func4); + %EXPORT_TAGS = ( ); + # your exported package globals go here, + # as well as any optionally exported functions + @EXPORT_OK = qw($Var1 %Hashit &func3); + } +our @EXPORT_OK; + +################################################## +### FunctionBase +# Contains data and methods used by both Function (C++ declarations) and GtkDefs::Function (C defs descriptions) +# Note that GtkDefs::Signal inherits from GtkDefs::Function so it get these methods too. +# +# class Function : FunctionBase +# { +# string array param_types; +# string array param_names; +# string array param_documentation; +# string return_documention; +# } + + +# $string args_types_only($) +# comma-delimited argument types. +sub args_types_only($) +{ + my ($self) = @_; + + my $param_types = $$self{param_types}; + return join(", ", @$param_types); +} + +# $string args_names_only(int index = 0) +# Gets the args names. The optional index specifies which argument +# list should be used out of the possible combination of arguments based on +# whether any arguments are optional. index = 0 ==> all the names. +sub args_names_only($) +{ + my ($self, $index) = @_; + + $index = 0 unless defined($index); + + my $param_names = $$self{param_names}; + my $possible_args_list = $$self{possible_args_list}; + my @out; + + my @arg_indices; + + if(defined($possible_args_list)) + { + @arg_indices = split(" ", @$possible_args_list[$index]); + } + else + { + @arg_indices = (0..@$param_names - 1); + } + + for (my $i = 0; $i < @arg_indices; $i++) + { + push(@out, $$param_names[$arg_indices[$i]]); + } + return join(", ", @out); +} + +# $string args_types_and_names(int index = 0) +# Gets the args types and names. The optional index specifies which argument +# list should be used out of the possible combination of arguments based on +# whether any arguments are optional. index = 0 ==> all the types and names. +sub args_types_and_names($) +{ + my ($self, $index) = @_; + + $index = 0 unless defined($index); + + my $i; + + my $param_names = $$self{param_names}; + my $param_types = $$self{param_types}; + my $possible_args_list = $$self{possible_args_list}; + my @out; + + #debugging: + #if($#$param_types) + #{ + # return "NOARGS"; + #} + + my @arg_indices; + + if(defined($possible_args_list)) + { + @arg_indices = split(" ", @$possible_args_list[$index]); + } + else + { + @arg_indices = (0..@$param_names - 1); + } + + for ($i = 0; $i < @arg_indices; $i++) + { + my $str = sprintf("%s %s", $$param_types[$arg_indices[$i]], + $$param_names[$arg_indices[$i]]); + push(@out, $str); + } + + my $result = join(", ", @out); + return $result; +} + +# $string args_names_only_without_object($) +sub args_names_only_without_object2($) +{ + my ($self) = @_; + + my $param_names = $$self{param_names}; + + my $result = ""; + my $bInclude = 0; #Ignore the first (object) arg. + foreach (@{$param_names}) + { + # Add comma if there was an arg before this one: + if( $result ne "") + { + $result .= ", "; + } + + # Append this arg if it's not the first one: + if($bInclude) + { + $result .= $_; + } + + $bInclude = 1; + } + + return $result; +} + +# $string args_types_and_names_without_object($) +sub args_types_and_names_without_object($) +{ + my ($self) = @_; + + my $param_names = $$self{param_names}; + my $param_types = $$self{param_types}; + my $i = 0; + my @out; + + for ($i = 1; $i < $#$param_types + 1; $i++) #Ignore the first arg. + { + my $str = sprintf("%s %s", $$param_types[$i], $$param_names[$i]); + push(@out, $str); + } + + return join(", ", @out); +} + +# $string args_names_only_without_object($) +sub args_names_only_without_object($) +{ + my ($self) = @_; + + my $param_names = $$self{param_names}; + + my $result = ""; + my $bInclude = 0; #Ignore the first (object) arg. + foreach (@{$param_names}) + { + # Add comma if there was an arg before this one: + if( $result ne "") + { + $result .= ", "; + } + + # Append this arg if it's not the first one: + if($bInclude) + { + $result .= $_; + } + + $bInclude = 1; + } + + return $result; +} + +sub dump($) +{ + my ($self) = @_; + + my $param_types = $$self{param_types}; + my $param_names = $$self{param_names}; + + print "\n"; + foreach (keys %$self) + { + print " <$_ value=\"$$self{$_}\"/>\n" if (!ref $$self{$_} && $$self{$_} ne ""); + } + + if (scalar(@$param_types)>0) + { + print " \n"; + + for (my $i = 0; $i < scalar(@$param_types); $i++) + { + print " \"$$param_types[$i]\" \"$$param_names[$i]\" \n"; + } + + print " \n"; + } + + print "\n\n"; +} + +# $string args_types_and_names_with_default_values(int index = 0) +# Gets the args types and names with default values. The optional index +# specifies which argument list should be used out of the possible +# combination of arguments based on whether any arguments are optional. +# index = 0 ==> all the types and names. +sub args_types_and_names_with_default_values($) +{ + my ($self, $index) = @_; + + $index = 0 unless defined $index; + + my $i; + + my $param_names = $$self{param_names}; + my $param_types = $$self{param_types}; + my $param_default_values = $$self{param_default_values}; + my $possible_args_list = $$self{possible_args_list}; + my @out; + + my @arg_indices; + + if(defined($possible_args_list)) + { + @arg_indices = split(" ", @$possible_args_list[$index]); + } + else + { + @arg_indices = (0..@$param_names - 1); + } + + for ($i = 0; $i < @arg_indices; $i++) + { + my $str = sprintf("%s %s", $$param_types[$arg_indices[$i]], + $$param_names[$arg_indices[$i]]); + + + if(defined($$param_default_values[$arg_indices[$i]])) + { + my $default_value = $$param_default_values[$arg_indices[$i]]; + + if($default_value ne "") + { + $str .= " = " . $default_value; + } + } + + push(@out, $str); + } + + return join(", ", @out); +} + +# $string get_declaration(int index = 0) +# Gets the function declaration (this includes the default values of the +# args). The optional index specifies which argument list should be used out +# of the possible combination of arguments based on whether any arguments are +# optional. index = 0 ==> all the types and names. +sub get_declaration($) +{ + my ($self, $index) = @_; + + $index = 0 unless defined $index; + my $out = ""; + + $out = "static " if($$self{static}); + $out = $out . "$$self{rettype} " if($$self{rettype}); + $out = $out . $$self{name} . "(" . + $self->args_types_and_names_with_default_values($index) . ")"; + $out = $out . " const" if $$self{const}; + $out = $out . ";"; + + return $out; +} + +# int get_num_possible_args_list(); +# Returns the number of possible argument list based on whether some args are +# optional. +sub get_num_possible_args_list() +{ + my ($self) = @_; + + my $possible_args_list = $$self{possible_args_list}; + + if(defined($possible_args_list)) + { + return @$possible_args_list; + } + else + { + return 1; + } +} + +1; # indicate proper module load. + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/pm/GtkDefs.pm b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/GtkDefs.pm new file mode 100644 index 0000000..c50af4a --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/GtkDefs.pm @@ -0,0 +1,884 @@ +# gtkmm - GtkDefs module +# +# Copyright 2001 Free Software Foundation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +package GtkDefs; +use strict; +use warnings; +use open IO => ":utf8"; + +use Util; +use Enum; +use Object; +use Property; +use FunctionBase; + +# +# Public functions +# read_defs(path, file) +# +# @ get_methods() +# @ get_signals() +# @ get_properties() +# @ get_child_properties() +# @ get_unwrapped() +# +# $ lookup_enum(c_type) +# $ lookup_object(c_name) +# $ lookup_method_dont_mark(c_name) +# $ lookup_method_set_weak_mark(c_name) +# $ lookup_method(c_name) +# $ lookup_function(c_name) +# $ lookup_property(object, c_name) +# $ lookup_child_property(object, c_name) +# $ lookup_signal(object, c_name) +# + +BEGIN { + use Exporter (); + our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); + + # set the version for version checking + $VERSION = 1.00; + + @ISA = qw(Exporter); + @EXPORT = ( ); + %EXPORT_TAGS = ( ); + + # your exported package globals go here, +# # as well as any optionally exported functions + @EXPORT_OK = ( ); +} +our @EXPORT_OK; + +##################################### + +use strict; +use warnings; + +##################################### + +%GtkDefs::enums = (); #Enum +%GtkDefs::objects = (); #Object +%GtkDefs::methods = (); #GtkDefs::Function +%GtkDefs::signals = (); #GtkDefs::Signal +%GtkDefs::properties = (); #Property +%GtkDefs::child_properties = (); #Property + +@GtkDefs::read = (); +@GtkDefs::file = (); + + +##################################### +#prototype to get rid of warning +sub read_defs($$;$); + +sub read_defs($$;$) +{ + my ($path, $filename, $restrict) = @_; + $restrict = "" if ($#_ < 2); + + # check that the file is there. + if ( ! -r "$path/$filename") + { + print "Error: can't read defs file $filename\n"; + return; + } + + # break the tokens into lisp phrases up to three levels deep. + # WARNING: reading the following perl statement may induce seizures, + # please flush eyes with water immediately, and consult a mortician. + # + # this regexp is weak - it does not work on multiple and/or unpaired parens + # inside double quotes - those shouldn't be ever considered. i replaced this + # splitting with my own function, which does the job very well - krnowak. +# my @tokens = split( +# m/( +# \( +# (?: +# [^()]* +# \( +# (?: +# [^()]* +# \( +# [^()]* +# \) +# )* +# [^()]* +# \) +# )* +# [^()]* +# \) +# )/x, +# read_file($path, $filename)); + + my @tokens = split_tokens(read_file($path, $filename)); + + # scan through top level tokens + while ($#tokens > -1) + { + my $token = shift @tokens; + next if ($token =~ /^\s*$/); + + if ($token =~ /\(include (\S+)\)/) + { + read_defs($path,$1,$restrict); + next; + } + elsif ($token =~ /^\(define-flags-extended.*\)$/) + { on_enum($token); } + elsif ($token =~ /^\(define-enum-extended.*\)$/) + { on_enum($token); } + elsif ($token =~ /^\(define-flags.*\)$/) + { } + elsif ($token =~ /^\(define-enum.*\)$/) + { } + elsif ($token =~ /^\(define-object.*\)$/) + { on_object($token); } + elsif ($token =~ /^\(define-function.*\)$/) + { on_function($token); } + elsif ($token =~ /^\(define-method.*\)$/) + { on_method($token); } + elsif ($token =~ /^\(define-property.*\)$/) + { on_property($token); } + elsif ($token =~ /^\(define-child-property.*\)$/) + { on_child_property($token); } + elsif ($token =~ /^\(define-signal.*\)$/) + { on_signal($token); } + elsif ($token =~ /^\(define-vfunc.*\)$/) + { on_vfunc($token); } + else + { + if ( $token =~ /^\(define-(\S+) (\S+)/) + { + # FIXME need to figure out the line number. + print STDERR "Broken lisp definition for $1 $2.\n"; + } + else + { + print "unknown token $token \n"; + } + } + } +} + +sub split_tokens($) +{ + my ($token_string) = @_; + my @tokens = (); + # whether we are inside double quotes. + my $inside_dquotes = 0; + # whether we are inside double and then single quotes (for situations like + # "'"'"). + my $inside_squotes = 0; + # number of yet unpaired opening parens. + my $parens = 0; + # whether previous char was a backslash - important only when being between + # double quotes. + my $backslash = 0; + # index of first opening paren - beginning of a new token. + my $begin_token = 0; + + # Isolate characters with special significance for the token split. + my @substrings = split(/([\\"'()])/, $token_string); + + my $index = -1; + for my $substring (@substrings) + { + $index++; + # if we are inside double quotes. + if ($inside_dquotes) + { + # if prevous char was backslash, then current char is not important - + # we are still inside double or double/single quotes anyway. + if ($backslash) + { + $backslash = 0; + } + # if current char is backslash. + elsif ($substring eq '\\') + { + $backslash = 1; + } + # if current char is unescaped double quotes and we are not inside single + # ones - means, we are going outside string. + elsif ($substring eq '"' and not $inside_squotes) + { + $inside_dquotes = 0; + } + # if current char is unescaped single quote, then we have two cases: + # 1. it just plain apostrophe. + # 2. it is a piece of a C code: + # a) opening quotes, + # b) closing quotes. + # if there is near (2 or 3 indexes away) second quote, then it is 2a, + # if 2a occured earlier, then it is 2b. + # otherwise is 1. + elsif ($substring eq '\'') + { + # if we are already inside single quotes, it is 2b. + if ($inside_squotes) + { + $inside_squotes = 0; + } + else + { + # if there is closing quotes near, it is 2a. + if (join('', @substrings[$index .. min($#substrings, $index+3)]) =~ /^'\\?.'/) + { + $inside_squotes = 1; + } + # else it is just 1. + } + } + } + # double quotes - beginning of a string. + elsif ($substring eq '"') + { + $inside_dquotes = 1; + } + # opening paren - if paren count is 0 then this is a beginning of a token. + elsif ($substring eq '(') + { + unless ($parens) + { + $begin_token = $index; + } + $parens++; + } + # closing paren - if paren count is 1 then this is an end of a token, so we + # extract it from token string and push into token list. + elsif ($substring eq ')') + { + $parens--; + unless ($parens) + { + my $token = join('', @substrings[$begin_token .. $index]); + push(@tokens, $token); + } + } + # do nothing on other chars. + } + return @tokens; +} + +sub min($$) +{ + return ($_[0] < $_[1]) ? $_[0] : $_[1]; +} + +sub read_file($$) +{ + my ($path, $filename)=@_; + my @buf = (); + + # don't read a file twice + foreach (@GtkDefs::read) + { + return "" if ($_ eq "$path/$filename"); + } + push @GtkDefs::read, "$path/$filename"; + + # read file while stripping comments + open(FILE, "$path/$filename"); + while () + { + s/^;.*$//; # remove comments + chop; # remove new lines + push(@buf, $_); + } + close(FILE); + + $_ = join("", @buf); + s/\s+/ /g; + return $_; +} + + +sub on_enum($) +{ + my $thing = Enum::new(shift(@_)); + $GtkDefs::enums{$$thing{c_type}} = $thing; +} + +sub on_object($) +{ + my $thing = Object::new(shift(@_)); + $GtkDefs::objects{$$thing{c_name}} = $thing; +} + +sub on_function($) +{ + my $thing = GtkDefs::Function::new(shift(@_)); + $GtkDefs::methods{$$thing{c_name}} = $thing; +} + +sub on_method($) +{ + my $thing = GtkDefs::Function::new(shift(@_)); + $GtkDefs::methods{$$thing{c_name}} = $thing if ($thing); +} + +sub on_property($) +{ + my $thing = Property::new(shift(@_)); + $GtkDefs::properties{"$$thing{class}::$$thing{name}"} = $thing; +} + +sub on_child_property($) +{ + my $thing = Property::new(shift(@_)); + $GtkDefs::child_properties{"$$thing{class}::$$thing{name}"} = $thing; +} + +sub on_signal($) +{ + my $thing = GtkDefs::Signal::new(shift(@_)); + $GtkDefs::signals{"$$thing{class}::$$thing{name}"} = $thing; +} + +sub on_vfunc($) +{ + my $thing = GtkDefs::Signal::new(shift(@_)); + $GtkDefs::signals{"$$thing{class}::$$thing{name}"} = $thing; +} + +########################## + +sub get_enums +{ + return sort {$$a{c_type} cmp $$b{c_type}} values %GtkDefs::enums; +} +sub get_methods +{ + return sort {$$a{c_name} cmp $$b{c_name}} values %GtkDefs::methods; +} +sub get_signals +{ + return sort {$$a{name} cmp $$b{name}} values %GtkDefs::signals; +} +sub get_properties +{ + return sort {$$a{name} cmp $$b{name}} values %GtkDefs::properties; +} + +sub get_child_properties +{ + return sort {$$a{name} cmp $$b{name}} values %GtkDefs::child_properties; +} + +sub get_marked +{ + no warnings; + return grep {$$_{mark}==1} values %GtkDefs::methods; +} + +# This searches for items wrapped by this file and then tries to locate +# other methods/signals/properties which may have been left unmarked. +sub get_unwrapped +{ + # find methods which were used in a _WRAP or _IGNORE. + my @targets; + push @targets,grep {$$_{entity_type} eq "method" && $$_{mark}==1} values %GtkDefs::methods; + push @targets,grep {$$_{mark}==1} values %GtkDefs::signals; + push @targets,grep {$$_{mark}==1} values %GtkDefs::properties; + push @targets,grep {$$_{mark}==1} values %GtkDefs::child_properties; + + # find the classes which used them. + my @classes = unique(map { $$_{class} } @targets); + + # find methods/signals/properties which are in those classes which didn't get marked. + my @unwrapped; + my $class; + foreach $class (@classes) + { + # if this class's parent is defined then don't put its properties as unwrapped. + # this may not work if parent is from other library (GtkApplication's parent + # is GApplication, so all its properties will be marked as unwrapped) + my $detailed = 0; + my $parent = undef; + if (exists $GtkDefs::objects{$class}) + { + my $object = $GtkDefs::objects{$class}; + + if (defined $object) + { + $parent = $object->{parent}; + + # may be empty for some classes deriving a GInterface? + if ($parent) + { + $detailed = 1; + } + } + } + if ($detailed) + { + push @unwrapped, grep {$$_{class} eq $class && $$_{mark}==0 && not exists $GtkDefs::properties{$parent . '::' . $_->{name}}} values %GtkDefs::properties; + push @unwrapped, grep {$$_{class} eq $class && $$_{mark}==0 && not exists $GtkDefs::child_properties{$parent . '::' . $_->{name}}} values %GtkDefs::child_properties; + } + else + { + push @unwrapped, grep {$$_{class} eq $class && $$_{mark}==0} values %GtkDefs::properties; + push @unwrapped, grep {$$_{class} eq $class && $$_{mark}==0} values %GtkDefs::child_properties; + } + + push @unwrapped, grep {$$_{class} eq $class && $$_{mark}==0} values %GtkDefs::methods; + push @unwrapped, grep {$$_{class} eq $class && $$_{mark}==0} values %GtkDefs::signals; + } + + return @unwrapped; +} + +########################## + +sub lookup_enum($) +{ + no warnings; + my ($c_type) = @_; + my $obj = $GtkDefs::enums{$c_type}; + return 0 if(!$obj); + $$obj{mark} = 1; + return $obj; +} + +sub lookup_object($) +{ + no warnings; + + my $c_name = $_[0]; + my $result = $GtkDefs::objects{$c_name}; + + if (not defined($result)) + { + # We do not print this error because it's not always an error, + # because the caller will often try several object names, + # while guessing an object name prefix from a function name. + # + # print "GtkDefs:lookup_object(): can't find object with name=" . $c_name . "\n"; + + # debug output: + # foreach my $key (keys %GtkDefs::objects) + # { + # print " possible name=" . $key . "\n"; + # } + } + + return $result; +} + +# $objProperty lookup_property($name, $parent_object_name) +sub lookup_property($$) +{ + no warnings; + my ($parent_object_name, $name) = @_; + $name =~ s/-/_/g; + my $obj = $GtkDefs::properties{"${parent_object_name}::${name}"}; + return 0 if ($obj eq ""); + $$obj{mark} = 1; + return $obj; +} + +# $objChildProperty lookup_child_property($name, $parent_object_name) +sub lookup_child_property($$) +{ + no warnings; + my ($parent_object_name, $name) = @_; + $name =~ s/-/_/g; + my $obj = $GtkDefs::child_properties{"${parent_object_name}::${name}"}; + return 0 if ($obj eq ""); + $$obj{mark} = 1; + return $obj; +} + +sub lookup_method_dont_mark($) +{ + no warnings; + my ($c_name) = @_; + $c_name =~ s/-/_/g; + + my $obj = $GtkDefs::methods{$c_name}; + return 0 if ($obj eq ""); + + return $obj; +} + +sub lookup_method($) +{ + my $obj = lookup_method_dont_mark($_[0]); + + $$obj{mark} = 1 if($obj); + return $obj; +} + +sub lookup_function($) +{ + return lookup_method($_[0]); +} + +sub lookup_method_set_weak_mark($) +{ + my $obj = lookup_method_dont_mark($_[0]); + + # A constructor or a static method may be listed in the .defs file as a method + # of another class, if its first parameter is a pointer to a class instance. + # Examples: + # GVariantIter* g_variant_iter_new(GVariant* value) + # GtkWidget* gtk_application_window_new(GtkApplication* application) + # GSocketConnection* g_socket_connection_factory_create_connection(GSocket* socket) + # + # The use of gtk_application_window_new() in Gtk::ApplicationWindow shall + # not cause get_unwrapped() to list all methods, signals and properties of + # GtkApplication as unwrapped in applicationwindow.hg. + # Therefore mark=2 instead of mark=1. + + $$obj{mark} = 2 if ($obj && $$obj{mark} == 0); + return $obj; +} + +sub lookup_signal($$) +{ + no warnings; + my ($parent_object_name, $name) = @_; + + $name =~ s/-/_/g; + my $obj = $GtkDefs::signals{"${parent_object_name}::${name}"}; + return 0 if ($obj eq ""); + $$obj{mark} = 1; + return $obj; +} + +sub error +{ + my $format = shift @_; + printf STDERR "GtkDefs.pm: $format\n", @_; +} + + +######################################################################## +package GtkDefs::Function; +BEGIN { @GtkDefs::Function::ISA=qw(FunctionBase); } + +# class Function : FunctionBase +# { +# string name; e.g. function: gtk_accelerator_valid, method: clicked +# string c_name; e.g. gtk_accelerator_valid, gtk_button_clicked +# string class; e.g. GtkButton +# +# string rettype; +# string array param_types; +# string array param_names; +# +# string entity_type; e.g. method or function +# +# bool varargs; +# bool mark; +# } + +# "new" can't have prototype +sub new +{ + my ($def) = @_; + my $whole = $def; + my $self = {}; + bless $self; + + #Remove first and last braces: + $def =~ s/^\(//; + $def =~ s/\)$//; + + #In rare cases a method can be nameless (g_iconv). + #Don't interpret the following "(of-object" as the method's name. + $def =~ s/^\s*define-([^\s\(]+)\s*([^\s\(]*)\s*//; + $$self{entity_type} = $1; + $$self{name} = $2; + $$self{name} =~ s/-/_/g; # change - to _ + + # init variables + $$self{mark} = 0; + $$self{rettype} = "none"; + $$self{param_types} = []; + $$self{param_names} = []; + $$self{class} = ""; + + # snarf down lisp fields + $$self{c_name} = $1 if ($def=~s/\(c-name "(\S+)"\)//); + $$self{class} = $1 if ($def=~s/\(of-object "(\S+)"\)//); + + if ($def =~ s/\(return-type "(\S+)"\)//) + { + $$self{rettype} = $1; + $$self{rettype} =~ s/-/ /g; #e.g. replace const-gchar* with const gchar*. Otherwise it will be used in code. + } + + $$self{varargs} = 1 if ($def=~s/\(varargs\s+#t\)//); + $$self{rettype} = "void" if ($$self{rettype} eq "none"); + + # methods have a parameter not stated in the defs file + if ($$self{entity_type} eq "method") + { + push( @{$$self{param_types}}, "$$self{class}*" ); + push( @{$$self{param_names}}, "self" ); + } + + # parameters are compound lisp statement + if ($def =~ s/\(parameters(( '\("\S+" "\S+"\))*) \)//) + { + $self->parse_param($1); + } + + # is-constructor-of: + if ($def =~ s/\(is-constructor-of "(\S+)"\)//) + { + #Ignore them. + } + + # of-object + if ($def =~ s/\(of-object "(\S+)"\)//) + { + #Ignore them. + } + + GtkDefs::error("Unhandled function parameter ($def) in $$self{c_name}\n") + if ($def !~ /^\s*$/); + + return $self; +} + +sub parse_param($$) +{ + my ($self, $param) = @_; + + # break up the parameter statements + foreach (split(/\s*'*[()]\s*/, $param)) + { + next if ($_ eq ""); + if (/^"(\S+)" "(\S+)"$/) + { + my ($p1, $p2) = ($1,$2); + $p1 =~ s/-/ /; + push( @{$$self{param_types}}, $p1); + push( @{$$self{param_names}}, $p2); + } + else + { + GtkDefs::error("Unknown parameter statement ($_) in $$self{c_name}\n"); + } + } +} + + +# $string get_return_type_for_methods(). +# Changes gchar* (not const-gchar*) to return-gchar* so that _CONVERT knows that it needs to be freed. +sub get_return_type_for_methods($) +{ + my ($self) = @_; + + my $rettype = $$self{rettype}; + if($rettype eq "gchar*" || $rettype eq "char*") + { + $rettype = "return-" . $rettype; + } + + return $rettype; +} + +sub get_param_names +{ + my ($self) = @_; + return @$self{param_names}; +} + +###################################################################### +package GtkDefs::Signal; +BEGIN { @GtkDefs::Signal::ISA=qw(GtkDefs::Function); } + +# class Signal : Function +# { +# string name; e.g. gtk_accelerator_valid +# string class e.g. GtkButton ( == of-object.) +# +# string rettype; +# +# string flags. e.g. Run Last, No Hooks +# string entity_type. e.g. vfunc or signal +# bool detailed; # optional +# bool deprecated; # optional +# } + +# "new" can't have prototype +sub new +{ + my ($def) = @_; + + my $whole = $def; + my $self = {}; + bless $self; + + #Remove first and last braces: + $def =~ s/^\(//; + $def =~ s/\)$//; + + $def =~ s/^\s*define-(\S+)\s+(\S+)\s*//; + $$self{entity_type} = $1; + $$self{name} = $2; + $$self{name} =~ s/-/_/g; #change - to _ + + # init variables + $$self{mark}=0; + $$self{rettype} = "none"; + $$self{param_types} = []; + $$self{param_names} = []; + $$self{flags} = ""; + $$self{class} = ""; + + # snarf down lisp fields + if($def =~ s/\(of-object "(\S+)"\)//) + { + $$self{class} = $1; + } + else + { + GtkDefs::error("define-signal/define-vfunc without of-object (entity type: $$self{entity_type}): $whole"); + } + + if($def =~ s/\(return-type "(\S+)"\)//) + { + $$self{rettype} = $1; + $$self{rettype} =~ s/-/ /g; #e.g. replace const-gchar* with const gchar*. Otherwise it will be used in code. + } + + if ($def =~ s/\(flags "(.*?)"\)//) + { + $$self{flags} = $1; + } + elsif ($def =~ s/\(when "(\S+)"\)//) + { + # "when" is a deprecated alternative to "flags". + # when eq "none", "first", "last", or "both". + if ($1 eq "first") + { + $$self{flags} = "Run First"; + } + elsif ($1 eq "last") + { + $$self{flags} = "Run Last"; + } + elsif ($1 eq "both") + { + $$self{flags} = "Run First, Run Last"; + } + } + + if($$self{rettype} eq "none") + { + $$self{rettype} = "void" + } + + $$self{detailed} = ($1 eq "#t") if ($def =~ s/\(detailed (\S+)\)//); + $$self{deprecated} = ($1 eq "#t") if ($def =~ s/\(deprecated (\S+)\)//); + + # signals always have a parameter + push(@{$$self{param_types}}, "$$self{class}*"); + push(@{$$self{param_names}}, "self"); + + # parameters are compound lisp statement + if ($def =~ s/\(parameters(( '\("\S+" "\S+"\))+) \)//) + { + $self->parse_param($1); + } + + if ($def!~/^\s*$/) + { + GtkDefs::error("Unhandled signal/vfunc def ($def) in $$self{class}::$$self{name}"); + } + + return $self; +} + +# bool get_detailed() +sub get_detailed($) +{ + my ($self) = @_; + return $$self{detailed}; # undef, 0 or 1 +} + +# bool get_deprecated() +sub get_deprecated($) +{ + my ($self) = @_; + return $$self{deprecated}; # undef, 0 or 1 +} + +# bool has_same_types($objFunction) +# Compares return types and argument types +sub has_same_types($$) +{ + my ($self, $objFuncOther) = @_; + + #Compare return types: + if($self->types_are_equal($$self{rettype}, $$objFuncOther{rettype}) ne 1) + { + # printf("debug: different return types: %s, %s\n", $$self{rettype}, $$objFuncOther{rettype}); + return 0; #Different types found. + } + + #Compare arguement types: + my $i = 0; + my $param_types = $$self{param_types}; + my $param_types_other = $$objFuncOther{param_types}; + for ($i = 1; $i < $#$param_types + 1; $i++) + { + my $type_a = $$param_types[$i]; + my $type_b = $$param_types_other[$i-1]; + + if($self->types_are_equal($type_a, $type_b) ne 1) + { + # printf("debug: different arg types: %s, %s\n", $type_a, $type_b); + return 0; #Different types found. + } + } + + return 1; #They must all be the same for it to get this far. +} + +# bool types_are_equal($a, $b) +# Compares types, ignoring gint/int differences, etc. +sub types_are_equal($$$) +{ + #TODO: Proper method of getting a normalized type name. + + my ($self, $type_a, $type_b) = @_; + + if($type_a ne $type_b) + { + #Try adding g to one of them: + if( ("g" . $type_a) ne $type_b ) + { + #Try adding g to the other one: + if( $type_a ne ("g" . $type_b) ) + { + #After all these checks it's still not equal: + return 0; #not equal. + } + } + } + + # printf("DEBUG: types are equal: %s, %s\n", $$type_a, $$type_b); + return 1; #They must be the same for it to get this far. +} + +1; # indicate proper module load. diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Object.pm b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Object.pm new file mode 100644 index 0000000..aef72c3 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Object.pm @@ -0,0 +1,72 @@ +package Object; + +use strict; +use warnings; + +BEGIN { + use Exporter (); + our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); + + # set the version for version checking + $VERSION = 1.00; + + @ISA = qw(Exporter); + @EXPORT = ( ); + %EXPORT_TAGS = ( ); + + # your exported package globals go here, + # as well as any optionally exported functions + @EXPORT_OK = ( ); +} +our @EXPORT_OK; + +# class Object +# { +# string name; +# string module; +# string parent; +# string c_name; +# string gtype_id; +# } + + +sub new +{ + my ($def) = @_; + + my $self = {}; + bless $self; + + $def =~ s/^\(//; + $def =~ s/\)$//; + + # snarf down the fields + $$self{name} = $1 if($def =~ s/^define-object (\S+)//); + $$self{module} = $1 if($def =~ s/\(in-module "(\S+)"\)//); + $$self{parent} = $1 if($def =~ s/\(parent "(\S+)"\)//); + $$self{c_name} = $1 if($def =~ s/\(c-name "(\S+)"\)//); + $$self{gtype_id} = $1 if($def =~ s/\(gtype-id "(\S+)"\)//); + + if($def !~ /^\s*$/) + { + GtkDefs::error("Unhandled object def ($def) in $$self{module}\::$$self{name}\n") + } + + return $self; +} + + +sub dump($) +{ + my ($self) = @_; + + print "\n"; + + foreach(keys %$self) + { print " <$_ value=\"$$self{$_}\"/>\n"; } + + print "\n\n"; +} + + +1; # indicate proper module load. diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Output.pm b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Output.pm new file mode 100644 index 0000000..f0a011a --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Output.pm @@ -0,0 +1,1669 @@ +# Gtkmmproc Output module +# +# Copyright 2001 Free Software Foundation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +package Output; +use strict; +use open IO => ":utf8"; +use Function qw(FLAG_PARAM_OPTIONAL FLAG_PARAM_OUTPUT FLAG_PARAM_NULLPTR + FLAG_PARAM_EMPTY_STRING); + +use DocsParser; + +BEGIN { @Namespace::ISA=qw(main); } + +# $objOutputter new() +sub new +{ + my ($m4path, $macrodirs) = @_; + my $self = {}; + bless $self; + + $$self{out} = []; + + $$self{source} = ""; + $$self{tmpdir} = File::Spec->tmpdir(); + $$self{destdir} = ""; + $$self{objDefsParser} = undef; # It will be set in set_defsparser() + + $$self{m4path} = $m4path; + $$self{m4args} = "-I"; + $$self{m4args} .= join(" -I", @$macrodirs); + + return $self; +} + +sub set_defsparser($$) +{ + my ($self, $objDefsParser) = @_; + + $$self{objDefsParser} = $objDefsParser; #Remember it so that we can use it in our output methods. +} + +sub m4args_append($$) +{ + my ($self, $str) = @_; + $$self{m4args} .= $str; +} + +sub append($$) +{ + my ($self, $str) = @_; + + push(@{$$self{out}}, $str); +} + +# void output_wrap_failed($cname, $error) +# Puts a comment in the header about the error during code-generation. +sub output_wrap_failed($$$) +{ + my ($self, $cname, $error) = @_; + + # See "MS Visual Studio" comment in gmmproc.in. + my $str = sprintf("//gtkmmproc error: %s : %s", $cname, $error); + print STDERR "Output.pm, $main::source, $cname : $error\n"; + $self->append($str); +} + +sub error +{ + my $format=shift @_; + printf STDERR "Output.pm, $main::source: $format",@_; +} + +# void check_deprecation($file_deprecated, $defs_deprecated, $wrap_deprecated, +# $entity_name, $entity_type, $wrapper) +sub check_deprecation($$$$$$) +{ + my ($file_deprecated, $defs_deprecated, $wrap_deprecated, + $entity_name, $entity_type, $wrapper) = @_; + + # Don't print a warning if the whole .hg file is deprecated. + return if ($file_deprecated); + + if ($defs_deprecated && !$wrap_deprecated) + { + print STDERR "Warning, $main::source: The $entity_name $entity_type" . + " is deprecated in the .defs file, but not in _WRAP_$wrapper.\n"; + } + elsif (!$defs_deprecated && $wrap_deprecated) + { + print STDERR "Warning, $main::source: The $entity_name $entity_type" . + " is deprecated in _WRAP_$wrapper, but not in the .defs file.\n"; + } +} + +sub ifdef($$) +{ + my ($self, $ifdef) = @_; + if ($ifdef) + { + $self->append("\n#ifdef $ifdef\n"); + } +} + +sub endif($$) +{ + my ($self, $ifdef) = @_; + if ($ifdef) + { + $self->append("\n#endif // $ifdef\n"); + } +} + +### Convert _WRAP to a virtual +# _VFUNC_H(signame,rettype,`') +# _VFUNC_PH(gtkname,crettype,cargs and names) +# void output_wrap_vfunc_h($filename, $line_num, $objCppfunc, $objCDefsFunc) +sub output_wrap_vfunc_h($$$$$$) +{ + my ($self, $filename, $line_num, $objCppfunc, $objCDefsFunc, $ifdef) = @_; + +#Old code. We removed _VFUNC_H from the .m4 file +# my $str = sprintf("_VFUNC_H(%s,%s,\`%s\',%s)dnl\n", +# $$objCppfunc{name}, +# $$objCppfunc{rettype}, +# $objCppfunc->args_types_and_names(), +# $objCppfunc->get_is_const() +# ); +# $self->append($str); + + $self->ifdef($ifdef); + + # Prepend a Doxygen @throws directive to the declaration if the virtual + # function throws an error. + if($$objCDefsFunc{throw_any_errors}) + { + $self->append('/// @throws Glib::Error.' . "\n"); + } + + my $cppVfuncDecl = "virtual " . $$objCppfunc{rettype} . " " . $$objCppfunc{name} . "(" . $objCppfunc->args_types_and_names() . ")"; + if($objCppfunc->get_is_const()) + { + $cppVfuncDecl .= " const"; + } + + $self->append(" $cppVfuncDecl;\n"); + $self->endif($ifdef); + + #The default callback, which will call *_vfunc, which will then call the base default callback. + #Declares the callback in the private *Class class and sets it in the class_init function. + + my $str = sprintf("_VFUNC_PH(%s,%s,\`%s\',%s)dnl\n", + $$objCDefsFunc{name}, + $$objCDefsFunc{rettype}, + $objCDefsFunc->args_types_and_names(), + $ifdef + ); + $self->append($str); +} + +# _VFUNC_CC(signame,gtkname,rettype,crettype,`',`') +sub output_wrap_vfunc_cc($$$$$$$$) +{ + my ($self, $filename, $line_num, $objCppfunc, $objCFunc, + $custom_vfunc, $custom_vfunc_callback, $ifdef) = @_; + + my $cname = $$objCFunc{name}; + + my $errthrow = ""; + if($$objCFunc{throw_any_errors}) + { + $errthrow = "errthrow" + } + + # e.g. Gtk::Button::draw_indicator: + + #Use a different macro for Interfaces, to generate an extra convenience method. + + if (!$custom_vfunc) + { + my $refreturn = ""; + $refreturn = "refreturn" if($$objCppfunc{rettype_needs_ref}); + my $returnValue = $$objCppfunc{return_value}; + + my ($conversions, $declarations, $initializations) = + convert_args_cpp_to_c($objCppfunc, $objCFunc, 0, $line_num, $errthrow); + + my $no_slot_copy = ""; + $no_slot_copy = "no_slot_copy" if ($$objCppfunc{no_slot_copy}); + + my $str = sprintf("_VFUNC_CC(%s,%s,%s,%s,\`%s\',\`%s\',%s,%s,%s,%s,%s,%s,%s,%s)dnl\n", + $$objCppfunc{name}, + $cname, + $$objCppfunc{rettype}, + $$objCFunc{rettype}, + $objCppfunc->args_types_and_names(), + $conversions, + $objCppfunc->get_is_const(), + $refreturn, + $ifdef, + $errthrow, + $$objCppfunc{slot_type}, + $$objCppfunc{slot_name}, + $no_slot_copy, + $returnValue); + + $self->append($str); + } + + # e.g. Gtk::ButtonClass::draw_indicator(): + + if (!$custom_vfunc_callback) + { + my $refreturn_ctype = ""; + $refreturn_ctype = "refreturn_ctype" if($$objCFunc{rettype_needs_ref}); + + my $keep_return = ""; + $keep_return = "keep_return" if($$objCppfunc{keep_return}); + + # Get the conversions. + my $conversions = + convert_args_c_to_cpp($objCFunc, $objCppfunc, $line_num); + + my $returnValue = $$objCppfunc{return_value}; + my $errReturnValue = $$objCppfunc{err_return_value}; + my $exceptionHandler = $$objCppfunc{exception_handler}; + + my $str = sprintf("_VFUNC_PCC(%s,%s,%s,%s,\`%s\',\`%s\',\`%s\',%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)dnl\n", + $$objCppfunc{name}, + $cname, + $$objCppfunc{rettype}, + $$objCFunc{rettype}, + $objCFunc->args_types_and_names(), + $objCFunc->args_names_only(), + $conversions, + ${$objCFunc->get_param_names()}[0], + $refreturn_ctype, + $keep_return, + $ifdef, + $errthrow, + $$objCppfunc{slot_type}, + $$objCppfunc{c_data_param_name}, + $returnValue, + $errReturnValue, + $exceptionHandler); + + $self->append($str); + } +} + +### Convert _WRAP to a signal +# _SIGNAL_H(signame,rettype, `', ifdef) +# _SIGNAL_PH(gtkname,crettype, cargs and names, ifdef, deprecated) +# void output_wrap_default_signal_handler_h($filename, $line_num, $objCppfunc, +# $objCDefsFunc, $ifdef, $deprecated, $exceptionHandler) +sub output_wrap_default_signal_handler_h($$$$$$$$) +{ + my ($self, $filename, $line_num, $objCppfunc, $objCDefsFunc, $ifdef, $deprecated, $exceptionHandler) = @_; + + # The default signal handler is a virtual function. + # It's not hidden by deprecation, since that would break ABI. + my $str = sprintf("_SIGNAL_H(%s,%s,\`%s\',%s)dnl\n", + $$objCppfunc{name}, + $$objCppfunc{rettype}, + $objCppfunc->args_types_and_names(), + $ifdef + ); + $self->append($str); + + + #The default callback, which will call on_* or the base default callback. + #Declares the callback in the private *Class class and sets it in the class_init function. + #This is hidden by deprecation. + $str = sprintf("_SIGNAL_PH(%s,%s,\`%s\',%s,%s,%s)dnl\n", + $$objCDefsFunc{name}, + $$objCDefsFunc{rettype}, + $objCDefsFunc->args_types_and_names(), + $ifdef, + $deprecated, + $exceptionHandler + ); + $self->append($str); +} + +# _SIGNAL_CC(signame, gtkname, rettype, crettype,`',`', const, refreturn, ifdef, exceptionHandler) +sub output_wrap_default_signal_handler_cc($$$$$$$$$$$) +{ + my ($self, $filename, $line_num, $objCppfunc, $objDefsSignal, $bImplement, + $bCustomCCallback, $bRefreturn, $ifdef, $deprecated, $exceptionHandler) = @_; + + my $cname = $$objDefsSignal{name}; + # $cname = $1 if ($args[3] =~ /"(.*)"/); #TODO: What's this about? + + # e.g. Gtk::Button::on_clicked: + if($bImplement eq 1) + { + my $refreturn = ""; + $refreturn = "refreturn" if($bRefreturn eq 1); + + my ($conversions, $declarations, $initializations) = + convert_args_cpp_to_c($objCppfunc, $objDefsSignal, 0, $line_num); + + # The default signal handler is a virtual function. + # It's not hidden by deprecation, since that would break ABI. + my $str = sprintf("_SIGNAL_CC(%s,%s,%s,%s,\`%s\',\`%s\',%s,%s,%s)dnl\n", + $$objCppfunc{name}, + $cname, + $$objCppfunc{rettype}, + $$objDefsSignal{rettype}, + $objCppfunc->args_types_and_names(), + $conversions, + $$objCppfunc{const}, + $refreturn, + $ifdef + ); + $self->append($str); + } + + + # e.g. Gtk::ButtonClass::on_clicked(): + + #Callbacks always take the object instance as the first argument: +# my $arglist_names = "object"; +# my $arglist_names_extra = $objDefsSignal->args_names_only(); +# if ($arglist_names_extra) +# { +# $arglist_names .= ", "; +# $arglist_names .= $arglist_names_extra; +# } + + if($bCustomCCallback ne 1) + { + my $conversions = + convert_args_c_to_cpp($objDefsSignal, $objCppfunc, $line_num); + + #This is hidden by deprecation. + my $str = sprintf("_SIGNAL_PCC(%s,%s,%s,%s,\`%s\',\`%s\',\`%s\',\`%s\',%s,%s,%s)dnl\n", + $$objCppfunc{name}, + $cname, + $$objCppfunc{rettype}, + $$objDefsSignal{rettype}, + $objDefsSignal->args_types_and_names(), + $objDefsSignal->args_names_only(), + $conversions, + ${$objDefsSignal->get_param_names()}[0], + $ifdef, + $deprecated, + $exceptionHandler); + $self->append($str); + } +} + +### Convert _WRAP to a method +# _METHOD(cppname,cname,cpprettype,crettype,arglist,cargs,const) +# void output_wrap_meth($filename, $line_num, $objCppFunc, $objCDefsFunc, $cppMethodDecl, $documentation, $ifdef) +sub output_wrap_meth($$$$$$$) +{ + my ($self, $filename, $line_num, $objCppfunc, $objCDefsFunc, $cppMethodDecl, $documentation, $ifdef) = @_; + my $objDefsParser = $$self{objDefsParser}; + + my $cpp_param_names = $$objCppfunc{param_names}; + my $cpp_param_types = $$objCppfunc{param_types}; + my $c_param_name_mappings = $$objCppfunc{param_mappings}; + + my $num_args_list = $objCppfunc->get_num_possible_args_list(); + + my $output_var_name; + my $output_var_type; + + if(defined($$c_param_name_mappings{"OUT"})) + { + $output_var_name = $$cpp_param_names[$$c_param_name_mappings{"OUT"}]; + $output_var_type = $$cpp_param_types[$$c_param_name_mappings{"OUT"}]; + } + + for(my $arg_list = 0; $arg_list < $num_args_list; $arg_list++) + { + # Allow the generated .h/.cc code to have an #ifndef around it, and add + # deprecation docs to the generated documentation. + my $deprecated = ""; + if($$objCDefsFunc{deprecated}) + { + $deprecated = "deprecated"; + } + + #Declaration: + if($deprecated ne "") + { + $self->append("\n_DEPRECATE_IFDEF_START"); + } + + $self->ifdef($ifdef); + + if($arg_list == 0) + { + # Doxygen documentation before the method declaration: + $self->output_wrap_meth_docs_only($filename, $line_num, $documentation); + } + else + { + $self->append("\n\n /// A $$objCppfunc{name}() convenience overload.\n"); + } + + $self->append(" " . $objCppfunc->get_declaration($arg_list)); + + $self->endif($ifdef); + + if($deprecated ne "") + { + $self->append("\n_DEPRECATE_IFDEF_END\n"); + } + + my $refneeded = ""; + if($$objCDefsFunc{rettype_needs_ref}) + { + $refneeded = "refreturn" + } + + my $errthrow = ""; + if($$objCDefsFunc{throw_any_errors}) + { + $errthrow = "errthrow" + } + + my $constversion = ""; #Whether it is just a const overload (so it can reuse code) + if($$objCDefsFunc{constversion}) + { + $constversion = "constversion" + } + + #Implementation: + my $str; + if ($$objCppfunc{static}) { + my ($conversions, $declarations, $initializations) = + convert_args_cpp_to_c($objCppfunc, $objCDefsFunc, 1, $line_num, + $errthrow, $arg_list); #1 means it's static, so it has 'object'. + + my $no_slot_copy = ""; + my $slot_type = ""; + my $slot_name = ""; + + # A slot may be optional so if it is signaled by + # convert_args_cpp_to_c() to not be included, then don't. + if ($$objCppfunc{include_slot}) + { + $slot_type = $$objCppfunc{slot_type}; + $slot_name = $$objCppfunc{slot_name}; + $no_slot_copy = "no_slot_copy" if ($$objCppfunc{no_slot_copy}); + } + + $str = sprintf("_STATIC_METHOD(%s,%s,\`%s\',%s,\`%s\',\`%s\',\`%s\',\`%s\',%s,%s,%s,%s,%s,%s,`%s',`%s',`%s',%s)dnl\n", + $$objCppfunc{name}, + $$objCDefsFunc{c_name}, + $$objCppfunc{rettype}, + $objCDefsFunc->get_return_type_for_methods(), + $objCppfunc->args_types_and_names($arg_list), + $declarations, + $conversions, + $initializations, + $refneeded, + $errthrow, + $deprecated, + $ifdef, + $output_var_name, + $output_var_type, + $slot_type, + $slot_name, + $no_slot_copy, + $line_num + ); + } else { + my ($conversions, $declarations, $initializations) = + convert_args_cpp_to_c($objCppfunc, $objCDefsFunc, 0, $line_num, + $errthrow, $arg_list); + + my $no_slot_copy = ""; + my $slot_type = ""; + my $slot_name = ""; + + # A slot may be optional so if it is signaled by + # convert_args_cpp_to_c() to not be included, then don't. + if ($$objCppfunc{include_slot}) + { + $slot_type = $$objCppfunc{slot_type}; + $slot_name = $$objCppfunc{slot_name}; + $no_slot_copy = "no_slot_copy" if ($$objCppfunc{no_slot_copy}); + } + + $str = sprintf("_METHOD(%s,%s,\`%s\',%s,\`%s\',\`%s\',\`%s\',\`%s\',%s,%s,%s,%s,%s,\`%s\',%s,%s,%s,`%s',`%s',`%s',%s)dnl\n", + $$objCppfunc{name}, + $$objCDefsFunc{c_name}, + $$objCppfunc{rettype}, + $objCDefsFunc->get_return_type_for_methods(), + $objCppfunc->args_types_and_names($arg_list), + $declarations, + $conversions, + $initializations, + $$objCppfunc{const}, + $refneeded, + $errthrow, + $deprecated, + $constversion, + $objCppfunc->args_names_only($arg_list), + $ifdef, + $output_var_name, + $output_var_type, + $slot_type, + $slot_name, + $no_slot_copy, + $line_num + ); + } + $self->append($str); + } +} + +### Convert _WRAP to a method +# _METHOD(cppname,cname,cpprettype,crettype,arglist,cargs,const) +# void output_wrap_meth($filename, $line_num, $documentation) +sub output_wrap_meth_docs_only($$$$) +{ + my ($self, $filename, $line_num, $documentation) = @_; + my $objDefsParser = $$self{objDefsParser}; + + # Doxygen documentation before the method declaration: + $self->append("\n${documentation}"); +} + +### Convert _WRAP_CTOR to a ctor +# _METHOD(cppname,cname,cpprettype,crettype,arglist,cargs,const) +# void output_wrap_ctor($filename, $line_num, $objCppFunc, $objCDefsFunc, $cppMethodDecl) +sub output_wrap_ctor($$$$$) +{ + my ($self, $filename, $line_num, $objCppfunc, $objCDefsFunc, $cppMethodDecl) = @_; + my $objDefsParser = $$self{objDefsParser}; + + my $num_args_list = $objCppfunc->get_num_possible_args_list(); + + for(my $arg_list = 0; $arg_list < $num_args_list; $arg_list++) + { + if ($arg_list > 0) + { + $self->append("\n\n /// A $$objCppfunc{name}() convenience overload.\n"); + } + + #Ctor Declaration: + $self->append(" explicit " . $objCppfunc->get_declaration($arg_list) . "\n"); + + my $errthrow = ""; + if($$objCDefsFunc{throw_any_errors}) + { + $errthrow = "errthrow"; + } + + #Implementation: + my $str = sprintf("_CTOR_IMPL(%s,%s,\`%s\',\`%s\')dnl\n", + $$objCppfunc{name}, + $$objCDefsFunc{c_name}, + $objCppfunc->args_types_and_names($arg_list), + get_ctor_properties($objCppfunc, $objCDefsFunc, $line_num, $errthrow, $arg_list) + ); + + $self->append($str); + } +} + +sub output_wrap_create($$$) +{ + my ($self, $args_type_and_name_with_default_values, $objWrapParser) = @_; + + #Re-use Function in a very hacky way, to separate the argument types_and_names. + my $fake_decl = "void fake_func(" . $args_type_and_name_with_default_values . ")"; + + my $objFunction = &Function::new($fake_decl, $objWrapParser); + + my $num_args_list = $objFunction->get_num_possible_args_list(); + + for(my $arg_list = 0; $arg_list < $num_args_list; $arg_list++) + { + my $args_names_only = $objFunction->args_names_only($arg_list); + my $args_type_and_name_hpp = + $objFunction->args_types_and_names_with_default_values($arg_list); + my $args_type_and_name_cpp = $objFunction->args_types_and_names($arg_list); + + if ($arg_list > 0) { + $self->append("\n /// A create() convenience overload."); + } + + my $str = sprintf("_CREATE_METHOD(\`%s\',\`%s\',\`%s\')dnl\n", + $args_type_and_name_hpp, , $args_type_and_name_cpp, $args_names_only); + + $self->append($str) + } +} + +# void output_wrap_sig_decl($filename, $line_num, $objCSignal, $objCppfunc, $signal_name, +# $bCustomCCallback, $ifdef, $commentblock, $deprecated, $deprecation_docs, +# $newin, $exceptionHandler, $detail_name, $bTwoSignalMethods) +sub output_wrap_sig_decl($$$$$$$$$$$$$$) +{ + my ($self, $filename, $line_num, $objCSignal, $objCppfunc, $signal_name, + $bCustomCCallback, $ifdef, $commentblock, $deprecated, $deprecation_docs, + $newin, $exceptionHandler, $detail_name, $bTwoSignalMethods) = @_; + +# _SIGNAL_PROXY(c_signal_name, c_return_type, `', +# cpp_signal_name, cpp_return_type, `',`', +# refdoc_comment, exceptionHandler) + + # Get the signal name with underscores only (to look up docs -- they are + # stored that way). + my $underscored_signal_name = $signal_name; + $underscored_signal_name =~ s/-/_/g; + + # Get the existing signal documentation from the parsed docs. + my $documentation = DocsParser::lookup_documentation( + "$$objCSignal{class}::$underscored_signal_name", $deprecation_docs, $newin, $objCppfunc); + + # Create a merged Doxygen comment block for the signal from the looked up + # docs (the block will also contain a prototype of the slot as an example). + my $doxycomment = $objCppfunc->get_refdoc_comment($documentation, $$objCSignal{flags}); + + # If there was already a previous doxygen comment, we want to merge this + # one with the previous so it is one big comment. If + # $commentblock is not emtpy, it contains the previous doxygen comment without + # opening and closing tokens (/** and */). + if($commentblock ne "") + { + # Strip leading whitespace + $doxycomment =~ s/^\s+//; + # Add a level of m4 quotes. Necessary if $commentblock contains __FT__ or __BT__. + # DocsParser::lookup_documentation() adds it in $documentation. + $commentblock = "`" . $commentblock . "'"; + + # We don't have something to add, so just use $commentblock with + # opening and closing tokens added. + if($doxycomment eq "") + { + $doxycomment = ' /**' . $commentblock . "\n */"; + } + else + { + # Merge the two comments, but remove the first three characters from the + # second comment (/**) that mark the beginning of the comment. + $doxycomment = substr($doxycomment, 3); + $doxycomment =~ s/^\s+//; + $doxycomment = ' /**' . $commentblock . "\n *\n " . $doxycomment; + } + } + + my $conversions = + convert_args_c_to_cpp($objCSignal, $objCppfunc, $line_num); + + my $str = sprintf("_SIGNAL_PROXY(%s,%s,\`%s\',%s,%s,\`%s\',\`%s\',\`%s\',%s,\`%s\',%s,%s,%s,%s)dnl\n", + $signal_name, + $$objCSignal{rettype}, + $objCSignal->args_types_and_names_without_object(), + $$objCppfunc{name}, + $$objCppfunc{rettype}, + $objCppfunc->args_types_only(), + $conversions, + $bCustomCCallback, #When this is true, it will not write the *_callback implementation for you. + $deprecated, + $doxycomment, + $ifdef, + $exceptionHandler, + $detail_name, # If a detailed name is supported (signal_name::detail_name) + $bTwoSignalMethods # If separate signal_xxx() methods for detailed and general name. + ); + + $self->append($str); +} + +# void output_wrap_enum($filename, $line_num, $cpp_type, $c_type, +# $comment, $ref_subst_in, $ref_subst_out, $no_gtype, +# $deprecated, $deprecation_docs, $newin) +sub output_wrap_enum($$$$$$$$$$$$) +{ + my ($self, $filename, $line_num, $cpp_type, $c_type, + $comment, $ref_subst_in, $ref_subst_out, $no_gtype, + $deprecated, $deprecation_docs, $newin) = @_; + + my $objEnum = GtkDefs::lookup_enum($c_type); + if(!$objEnum) + { + $self->output_wrap_failed($c_type, "enum defs lookup failed."); + return; + } + + $objEnum->beautify_values(); + + my $elements = $objEnum->build_element_list($ref_subst_in, $ref_subst_out, " "); + add_m4_quotes(\$elements); + + if(!$elements) + { + $self->output_wrap_failed($c_type, "unknown _WRAP_ENUM() flag"); + return; + } + + my $value_suffix = "Enum"; + $value_suffix = "Flags" if($$objEnum{flags}); + + # Get the enum documentation from the parsed docs. + my $enum_docs = DocsParser::lookup_enum_documentation("$c_type", "$cpp_type", + " ", $ref_subst_in, $ref_subst_out, $deprecation_docs, $newin); + + # Merge the passed in comment to the existing enum documentation. + $comment .= "\n * " . $enum_docs if $enum_docs ne ""; + + my $str = sprintf("_ENUM(%s,%s,%s,\`%s\',\`%s\',\`%s\',\`%s\')dnl\n", + $cpp_type, + $c_type, + $value_suffix, + $elements, + $no_gtype, + $comment, + $deprecated + ); + + $self->append($str); +} + +sub output_wrap_enum_docs_only($$$$$$$$$$$) +{ + my ($self, $filename, $line_num, $module_canonical, $cpp_type, $c_type, + $comment, $ref_subst_in, $ref_subst_out, $deprecation_docs, $newin) = @_; + + # Get the existing enum description from the parsed docs. + my $enum_docs = DocsParser::lookup_enum_documentation("$c_type", "$cpp_type", + " ", $ref_subst_in, $ref_subst_out, $deprecation_docs, $newin); + + if($enum_docs eq "") + { + $self->output_wrap_failed($c_type, "failed to find documentation."); + return; + } + + # Include the enum docs in the module's enum docs group. + $enum_docs .= "\n *\n * \@ingroup ${module_canonical}Enums"; + + # Merge the passed in comment to the existing enum documentation. + $comment = "/** " . $comment . "\n * " . $enum_docs . "\n */\n"; + + $self->append($comment); +} + +# void output_wrap_gerror($filename, $line_num, $cpp_type, $c_type, $domain, +# $class_docs, $ref_subst_in, $ref_subst_out, $no_gtype, +# $deprecated, $deprecation_docs, $newin) +sub output_wrap_gerror($$$$$$$$$$$$$) +{ + my ($self, $filename, $line_num, $cpp_type, $c_type, $domain, + $class_docs, $ref_subst_in, $ref_subst_out, $no_gtype, + $deprecated, $deprecation_docs, $newin) = @_; + + my $objDefsParser = $$self{objDefsParser}; + + my $objEnum = GtkDefs::lookup_enum($c_type); + if(!$objEnum) + { + $self->output_wrap_failed($c_type, "enum defs lookup failed."); + return; + } + + # Shouldn't happen, and if it does, I'd like to know that. + warn if($$objEnum{flags}); + + $objEnum->beautify_values(); + + # cut off the module prefix, e.g. GDK_ + my $prefix = $domain; + $prefix =~ s/^[^_]+_//; + + # Chop off the domain prefix, because we put the enum into the class. + unshift(@$ref_subst_in, "^${prefix}_"); + unshift(@$ref_subst_out, ""); + + my $elements = $objEnum->build_element_list($ref_subst_in, $ref_subst_out, " "); + add_m4_quotes(\$elements); + + # Get the enum documentation from the parsed docs. + my $enum_docs = DocsParser::lookup_enum_documentation("$c_type", "Code", + " ", $ref_subst_in, $ref_subst_out, $deprecation_docs, $newin); + + # Prevent Doxygen from auto-linking to a class called Error. + $enum_docs =~ s/([^%])(Error code)/$1%$2/g; + + # Add @newin and @deprecated to the class documentation, if appropriate. + my $extra_class_docs = ""; + if ($newin ne "" and !($class_docs =~ /\@newin/)) + { + $extra_class_docs .= "\n *\n *" if $class_docs; + $extra_class_docs .= " \@newin{$newin}"; + } + if ($deprecation_docs ne "" and !($class_docs =~ /\@deprecated/)) + { + $extra_class_docs .= "\n *\n *" if $class_docs or $extra_class_docs; + $extra_class_docs .= " \@deprecated $deprecation_docs"; + } + if ($extra_class_docs ne "") + { + # $class_docs has got ` and ' replaced and m4 quotes added in WrapParser:: + # on_comment_doxygen() and extract_preceding_documentation(). + # Fix $extra_class_docs here. $deprecation_docs can contain any characters. + add_m4_quotes(\$extra_class_docs); + $class_docs .= $extra_class_docs; + } + + # Prevent Doxygen from auto-linking to a class called Exception. + $class_docs =~ s/([^%])(Exception class)/$1%$2/g; + + my $str = sprintf("_GERROR(%s,%s,%s,\`%s\',%s,\`%s\',\`%s\',\`%s\')dnl\n", + $cpp_type, + $c_type, + $domain, + $elements, + $no_gtype, + $class_docs, + $enum_docs, + $deprecated + ); + + $self->append($str); +} + +# _PROPERTY_PROXY(name, cpp_type) and _CHILD_PROPERTY_PROXY(name, cpp_type) +# void output_wrap_any_property($filename, $line_num, $name, $cpp_type, $c_class, $deprecated, $deprecation_docs, $objProperty, $proxy_macro) +sub output_wrap_any_property($$$$$$$$$$) +{ + my ($self, $filename, $line_num, $name, $cpp_type, $c_class, $deprecated, + $deprecation_docs, $newin, $objProperty, $proxy_macro) = @_; + + my $objDefsParser = $$self{objDefsParser}; + + # We use a suffix to specify a particular Glib::PropertyProxy* class. + my $proxy_suffix = ""; + + # Read/Write: + if ($objProperty->get_construct_only()) + { + # construct-only functions can be read, but not written. + $proxy_suffix = "_ReadOnly"; + + if (!$objProperty->get_readable()) + { + $self->output_wrap_failed($name, "attempt to wrap write-only and construct-only property."); + return; + } + } + elsif (!$objProperty->get_readable()) + { + $proxy_suffix = "_WriteOnly"; + } + elsif (!$objProperty->get_writable()) + { + $proxy_suffix = "_ReadOnly"; + } + + # Convert - to _ so we can use it in C++ method and variable names: + my $name_underscored = $name; + $name_underscored =~ tr/-/_/; + + # Get the existing property documentation, if any, from the parsed docs. + my $documentation = DocsParser::lookup_documentation( + "$$objProperty{class}:$name_underscored", $deprecation_docs, $newin); + + if ($documentation ne "") + { + # Remove leading "/**" and trailing "*/". They will be added by the m4 macro. + $documentation =~ s/^\s*\/\*\*\s*//; + $documentation =~ s/\s*\*\/\s*$//; + } + + if ($documentation =~ /^`?[*\s]* + (?: + \@newin\{[\d,]+\} + |[Ss]ince[:\h]+\d+\.\d+ + |\@deprecated\s + |[Dd]eprecated[:\s] + )/x) + { + # The documentation begins with a "@newin", "Since", "@deprecated" or + # "Deprecated" line. Get documentation also from the Property object, + # but don't add another @newin or @deprecated. + my $objdoc = $objProperty->get_docs("", ""); + if ($objdoc ne "") + { + $documentation = "$objdoc\n *\n * $documentation"; + } + } + elsif ($documentation eq "") + { + # Try to get the (usually short) documentation from the Property object. + $documentation = $objProperty->get_docs($deprecation_docs, $newin); + } + + # Default value, if available: + my $default_value = $objProperty->get_default_value(); + if (defined($default_value)) + { + DocsParser::convert_value_to_cpp(\$default_value); + + # Add double quotes around a string value. + if ($objProperty->get_type() eq "GParamString") + { + $default_value = "\"" . $default_value . "\""; + } + $default_value = "Default value: $default_value"; + add_m4_quotes(\$default_value); + if ($documentation ne "") + { + $documentation .= "\n *\n * "; + } + $documentation .= $default_value; + } + + #Declaration: + if($deprecated ne "") + { + $self->append("\n_DEPRECATE_IFDEF_START\n"); + } + + my $str = sprintf("$proxy_macro(%s,%s,%s,%s,%s,`%s')dnl\n", + $name, + $name_underscored, + $cpp_type, + $proxy_suffix, + $deprecated, + $documentation + ); + $self->append($str); + $self->append("\n"); + + # If the property is not already read-only, and the property can be read, + # then add a second const accessor for a read-only propertyproxy: + if( ($proxy_suffix ne "_ReadOnly") && ($objProperty->get_readable()) ) + { + my $str = sprintf("$proxy_macro(%s,%s,%s,%s,%s,`%s')dnl\n", + $name, + $name_underscored, + $cpp_type, + "_ReadOnly", + $deprecated, + $documentation + ); + $self->append($str); + } + + if($deprecated ne "") + { + $self->append("\n_DEPRECATE_IFDEF_END"); + } +} + +# _PROPERTY_PROXY(name, cpp_type) +# void output_wrap_property($filename, $line_num, $name, $cpp_type, $file_deprecated, +# $deprecated, $deprecation_docs) +sub output_wrap_property($$$$$$$$$$) +{ + my ($self, $filename, $line_num, $name, $cpp_type, $c_class, $file_deprecated, + $deprecated, $deprecation_docs, $newin) = @_; + + my $objProperty = GtkDefs::lookup_property($c_class, $name); + if($objProperty eq 0) #If the lookup failed: + { + $self->output_wrap_failed($name, "property defs lookup failed."); + } + else + { + Output::check_deprecation($file_deprecated, $objProperty->get_deprecated(), + $deprecated, $name, "property", "PROPERTY"); + + $self->output_wrap_any_property($filename, $line_num, $name, $cpp_type, $c_class, + $deprecated, $deprecation_docs, $newin, $objProperty, "_PROPERTY_PROXY"); + } +} + +# _CHILD_PROPERTY_PROXY(name, cpp_type) +# void output_wrap_child_property($filename, $line_num, $name, $cpp_type, $file_deprecated, +# $deprecated, $deprecation_docs) +sub output_wrap_child_property($$$$$$$$$$) +{ + my ($self, $filename, $line_num, $name, $cpp_type, $c_class, $file_deprecated, + $deprecated, $deprecation_docs, $newin) = @_; + + my $objChildProperty = GtkDefs::lookup_child_property($c_class, $name); + if($objChildProperty eq 0) #If the lookup failed: + { + $self->output_wrap_failed($name, "child property defs lookup failed."); + } + else + { + Output::check_deprecation($file_deprecated, $objChildProperty->get_deprecated(), + $deprecated, $name, "child property", "CHILD_PROPERTY"); + + $self->output_wrap_any_property($filename, $line_num, $name, $cpp_type, $c_class, + $deprecated, $deprecation_docs, $newin, $objChildProperty, "_CHILD_PROPERTY_PROXY"); + } +} + +sub add_m4_quotes($) +{ + my ($text) = @_; + + # __BT__ and __FT__ are M4 macros defined in the base.m4 file that produce + # a "`" and a "'" resp. without M4 errors. + my %m4_quotes = ( + "`" => "'__BT__`", + "'" => "'__FT__`", + ); + + $$text =~ s/([`'])/$m4_quotes{$1}/g; + $$text = "`" . $$text . "'"; +} + +# void output_temp_g1($module, $glibmm_version) e.g. output_temp_g1(gtkmm, 2.38.0) +sub output_temp_g1($$$) +{ + my ($self, $module, $glibmm_version) = @_; + + # Write out *.g1 temporary file + open(FILE, '>', "$$self{tmpdir}/gtkmmproc_$$.g1"); # $$ is the Process ID + + print FILE "include(base.m4)dnl\n"; + + my $module_canonical = Util::string_canonical($module); #In case there is a / character in the module. + print FILE "_START($$self{source},$module,$module_canonical,$glibmm_version)dnl\n"; + print FILE join("", @{$$self{out}}); + print FILE "_END()\n"; + close(FILE); +} + +sub make_g2_from_g1($) +{ + my ($self) = @_; + + # Execute m4 to get *.g2 file: + system("$$self{m4path} $$self{m4args} \"$$self{tmpdir}/gtkmmproc_$$.g1\" > \"$$self{tmpdir}/gtkmmproc_$$.g2\""); + return ($? >> 8); +} + +# void write_sections_to_files() +# This is where we snip the /tmp/gtkmmproc*.g2 file into sections (,h, .cc, _private.h) +sub write_sections_to_files() +{ + my ($self) = @_; + + my $fname_h = "$$self{destdir}/$$self{source}.h"; + my $fname_ph = "$$self{destdir}/private/$$self{source}_p.h"; + my $fname_cc = "$$self{destdir}/$$self{source}.cc"; + + open(INPUT, '<', "$$self{tmpdir}/gtkmmproc_$$.g2"); # $$ is the process ID. + + # open temporary file for each section + open(OUTPUT_H, '>', "$fname_h.tmp"); + open(OUTPUT_PH, '>', "$fname_ph.tmp"); + open(OUTPUT_CC, '>', "$fname_cc.tmp"); + + my $oldfh = select(OUTPUT_H); + my $blank = 0; + + while() + { + # section switching + if(/^#S 0/) { select(OUTPUT_H); next; } + if(/^#S 1/) { select(OUTPUT_PH); next; } + if(/^#S 2/) { select(OUTPUT_CC); next; } + + # get rid of bogus blank lines + if(/^\s*$/) { ++$blank; } else { $blank = 0; } + next if($blank > 2); + + print $_; + } + + select($oldfh); + close(INPUT); + close(OUTPUT_H); + close(OUTPUT_PH); + close(OUTPUT_CC); + + foreach($fname_h, $fname_ph, $fname_cc) + { + # overwrite the source file only if it has actually changed + + # Win32 does fail at this, so we do the two steps separately: + #system("cmp -s '$_.tmp' '$_' || cp '$_.tmp' '$_'" ; rm -f '$_.tmp'); + + system("cmp -s '$_.tmp' '$_' || cp '$_.tmp' '$_'"); + system("rm -f '$_.tmp'"); + } +} + + +sub remove_temp_files($) +{ + my ($self) = @_; + + system("rm -f \"$$self{tmpdir}/gtkmmproc_$$.g1\""); + system("rm -f \"$$self{tmpdir}/gtkmmproc_$$.g2\""); +} + + + +# procedure for generating CONVERT macros, C declarations (for C output +# variables), and INITIALIZE macros (to set the corresponding C++ parameters +# from the C output parameters) for the specified argument list +# (string, string, string) convert_args_cpp_to_c($objCppfunc, $objCDefsFunc, $static, $wrap_line_number,$automatic_error, $index = 0) +# The return is an array of 3 strings: The _CONVERT macros, the C declarations +# and the _INITIALIZE macros. +# The optional index specifies which arg list out of the possible combination +# of arguments based on whether any arguments are optional. index = 0 ==> all +# the arguments. +sub convert_args_cpp_to_c($$$$$) +{ + my ($objCppfunc, $objCDefsFunc, $static, $wrap_line_number, $automatic_error, $index) = @_; + + $automatic_error = "" unless defined $automatic_error; + $index = 0 unless defined $index; + + my $cpp_param_names = $$objCppfunc{param_names}; + my $cpp_param_types = $$objCppfunc{param_types}; + my $cpp_param_flags = $$objCppfunc{param_flags}; + my $c_param_name_mappings = $$objCppfunc{param_mappings}; + my $c_param_types = $$objCDefsFunc{param_types}; + my $c_param_names = $$objCDefsFunc{param_names}; + + my @conversions = (); + my @declarations = (); + my @initializations = (); + + my $num_c_args_expected = scalar(@{$c_param_types}); + if( !($static) ) { $num_c_args_expected--; } #The cpp method will need an Object* paramater at the start. + + my $num_cpp_args = scalar(@{$cpp_param_types}); + + my $has_output_param = 0; + my $output_param_index; + + # See if there is an output parameter. If so, temporarily decrement the + # number of C++ arguments so that the possible GError addition works and + # note the existence. + if(defined($$c_param_name_mappings{"OUT"})) + { + $num_cpp_args--; + $has_output_param = 1; + $output_param_index = $$c_param_name_mappings{"OUT"}; + } + else + { + # Check for possible void return mismatch (warn if the option was + # specified to gmmproc at the command line). + if($main::return_mismatches && + $$objCppfunc{rettype} eq "void" && $$objCDefsFunc{rettype} ne "void") + { + Output::error( + "void return of $$objCppfunc{name}() does not match the " + . "$$objCDefsFunc{rettype} return type.\n"); + } + } + + # add implicit last error parameter; + if ( $automatic_error ne "" && + $num_cpp_args == ($num_c_args_expected - 1) && + ${$c_param_types}[-1] eq "GError**" ) + { + $num_cpp_args++; + $cpp_param_names = [@{$cpp_param_names},"gerror"]; + $cpp_param_types = [@{$cpp_param_types},"GError*&"]; + $cpp_param_flags = [@{$cpp_param_flags}, 0]; + + # Map from the C gerror param name to the newly added C++ param index. + # The correct C++ index to map to (from the C name) depends on if there + # is an output parameter since it will be readded. + my $cpp_index = $num_cpp_args - 1; + $cpp_index++ if($has_output_param); + $$c_param_name_mappings{$$c_param_names[$num_c_args_expected]} = $cpp_index; + } + + # If the method has a slot temporarily decrement the C arg count when + # comparing the C++ and C argument count because the C function would + # have a final 'gpointer data' parameter. + $num_c_args_expected-- if ($$objCppfunc{slot_name}); + + if ( $num_cpp_args != $num_c_args_expected ) + { + Output::error( "convert_args_cpp_to_c(): Incorrect number of arguments. (%d != %d)\n", + $num_cpp_args, + $num_c_args_expected ); + $objCppfunc->dump(); + $objCDefsFunc->dump(); + + return ("", "", ""); + } + + # Reincrement the expected C argument count if there is a slot. + $num_c_args_expected++ if ($$objCppfunc{slot_name}); + + # If there is an output parameter it must be processed so re-increment (now) + # the number of C++ arguments. + $num_cpp_args++ if($has_output_param); + + if ($index == 0) + { + # Check if the C param names in %$c_param_name_mappings exist. + foreach my $mapped_c_param_name (keys %$c_param_name_mappings) + { + next if $mapped_c_param_name eq "" || $mapped_c_param_name eq "OUT"; + + if (!grep($_ eq $mapped_c_param_name, @$c_param_names)) + { + Output::error("convert_args_cpp_to_c(): There is no C argument called \"$mapped_c_param_name\"\n"); + $objCDefsFunc->dump(); + return ("", "", ""); + } + } + } + + # Get the desired argument list combination. + my $possible_arg_list = $$objCppfunc{possible_args_list}[$index]; + + # Tells if slot code should be included or not based on if a slot + # parameter is optional. + $$objCppfunc{include_slot} = 0; + + # Loop through the parameters: + my $i; + my $cpp_param_max = $num_cpp_args; + # if( !($static) ) { $cpp_param_max++; } + + for ($i = 0; $i < $cpp_param_max; $i++) + { + # Skip the output parameter because it is handled in output_wrap_meth(). + next if($has_output_param && $i == $output_param_index); + + #index of C parameter: + my $iCParam = $i; + if( !($static) ) { $iCParam++; } + + # Account for a possible C++ output param in the C++ arg list. + $iCParam-- if($has_output_param && $i > $output_param_index); + + my $c_param_name = $$c_param_names[$iCParam]; + my $cpp_param_index = $i; + $cpp_param_index = $$c_param_name_mappings{$c_param_name} if(defined($$c_param_name_mappings{$c_param_name})); + + my $cppParamType = $$cpp_param_types[$cpp_param_index]; + $cppParamType =~ s/ &/&/g; #Remove space between type and & + $cppParamType =~ s/ \*/*/g; #Remove space between type and * + + my $cppParamName = $$cpp_param_names[$cpp_param_index]; + my $cParamType = $$c_param_types[$iCParam]; + + if(!($possible_arg_list =~ /\b$cpp_param_index\b/)) + { + # If the C++ index is not found in the list of desired parameters, pass + # nullptr to the C func unless the param is not optional (applies to a + # possibly added GError parameter). + if ($$cpp_param_flags[$cpp_param_index] & FLAG_PARAM_OPTIONAL) + { + push(@conversions, "nullptr"); + next; + } + } + + if ($$cpp_param_flags[$cpp_param_index] & FLAG_PARAM_OUTPUT) + { + # Get a generic name for the C output parameter name. + my $cOutputParamName = "g_" . $$c_param_names[$iCParam]; + my $cOutputParamType = $cParamType; + # Remove a possible final '*' from the output parameter type because it + # will be passed by C reference (&name). + $cOutputParamType =~ s/\*$//; + + # Only initialize pointers to nullptr. Otherwise, use the default + # constructor of the type. + my $initialization = ""; + if($cOutputParamType =~ /\*$/) + { + $initialization = " = nullptr"; + } + else + { + $initialization = " = $cOutputParamType()"; + } + + push(@declarations, " $cOutputParamType $cOutputParamName$initialization;"); + + push(@conversions, "&" . $cOutputParamName); + + push(@initializations, sprintf("_INITIALIZE(\`%s\',%s,%s,%s,%s);", + $cppParamType, + $cOutputParamType, + $cppParamName, + $cOutputParamName, + $wrap_line_number)); + next; + } + + # If dealing with a slot. + if ($$objCppfunc{slot_name} eq $cppParamName) + { + if ($$objCppfunc{slot_callback}) + { + # The conversion for the slot is the address of the callback. + push(@conversions, "&" . $$objCppfunc{slot_callback}); + } + else + { + Output::error( + "convert_args_cpp_to_c(): Missing a slot callback. " . + "Specify it with the 'slot_callback' option.\n",); + $objCppfunc->dump(); + $objCDefsFunc->dump(); + return ("", "", ""); + } + + # Get the slot type without the const and the & and store it so + # it can be passed to the m4 _*METHOD macros. + $cppParamType =~ /^const\s+(.*)&/; + $$objCppfunc{slot_type} = $1; + + # Signal that the slot code should be included. + $$objCppfunc{include_slot} = 1; + + next; + } + + if ($cppParamType ne $cParamType) #If a type conversion is needed. + { + my $std_conversion = sprintf("_CONVERT(%s,%s,%s,%s)", + $cppParamType, + $cParamType, + $cppParamName, + $wrap_line_number); + + # Shall an empty string be translated to a nullptr or to a pointer to + # an empty string? The default is "pointer to an empty string" for + # mandatory parameters, nullptr for optional parameters. + if (($$cpp_param_flags[$cpp_param_index] & FLAG_PARAM_NULLPTR) || + (($$cpp_param_flags[$cpp_param_index] & + (FLAG_PARAM_OPTIONAL | FLAG_PARAM_EMPTY_STRING)) == FLAG_PARAM_OPTIONAL && # OPTIONAL and not EMPTY_STRING + $cppParamType =~ /^(const\s+)?(std::string|Glib::ustring)&?/)) + { + push(@conversions, "$cppParamName.empty() ? nullptr : " . $std_conversion); + } + else + { + push(@conversions, $std_conversion); + } + } + else + { + push(@conversions, $cppParamName); + } + } + + # Append the final slot copy parameter to the C function if the method + # has a slot. The m4 macros assume that that parameter name is + # "slot_copy". The m4 macros will either copy the slot to the + # "slot_copy" variable or set it to the address of the slot itself if + # the slot should not be copied. + if ($$objCppfunc{slot_name}) + { + if ($$objCppfunc{include_slot}) + { + push(@conversions, "slot_copy"); + } + else + { + push(@conversions, "nullptr") + } + } + + return ( join(", ", @conversions), join("\n", @declarations), + join("\n ", @initializations) ); +} + +# procedure for generating CONVERT macros +# Ignores the first C 'self' argument. +# $string convert_args_c_to_cpp($objCDefsFunc, $objCppFunc, $wrap_line_number) +sub convert_args_c_to_cpp($$$) +{ + my ($objCDefsFunc, $objCppfunc, $wrap_line_number) = @_; + + my $cpp_param_names = $$objCppfunc{param_names}; + my $cpp_param_types = $$objCppfunc{param_types}; + my $c_param_types = $$objCDefsFunc{param_types}; + my $c_param_names = $$objCDefsFunc{param_names}; + + # This variable stores the C++ parameter mappings from the C++ + # index to the C param name if the mappings exist. + my %cpp_index_param_mappings; + + # Fill the index to param names mappings from the c param names to index + # mappings variable above. + @cpp_index_param_mappings{values %{$$objCppfunc{param_mappings}}} + = keys %{$$objCppfunc{param_mappings}}; + + my @result; + + my $num_c_args = scalar(@{$c_param_types}); + + # If the the function has been marked as a function that throws errors + # (Glib::Error) don't count the last GError** argument. + $num_c_args-- if($$objCDefsFunc{throw_any_errors}); + + my $num_cpp_args = scalar(@{$cpp_param_types}); + + # If the method has a slot temporarily increment the C++ arg count when + # comparing the C++ and C argument count because the C function would + # have a final 'gpointer data' parameter and the C++ method would not. + $num_cpp_args++ if ($$objCppfunc{slot_name}); + + if ( ($num_cpp_args + 1) != $num_c_args ) + { + Output::error( "convert_args_c_to_cpp(): Incorrect number of arguments. (%d != %d)\n", + $num_cpp_args + 1, + $num_c_args); + $objCppfunc->dump(); + $objCDefsFunc->dump(); + + return ""; + } + + # Re-decrement the expected C++ argument count if there is a slot. + $num_cpp_args-- if ($$objCppfunc{slot_name}); + + # Loop through the C++ parameters: + my $i; + my $cpp_param_max = $num_cpp_args; + my $num_c_args = scalar(@{$c_param_names}); + + for ($i = 0; $i < $cpp_param_max; $i++) + { + my $cParamName = ""; + my $c_index = 0; + + if (defined $cpp_index_param_mappings{$i}) + { + # If a mapping exists from the current index to a C param name, + # use that C param for the conversion. + $cParamName = $cpp_index_param_mappings{$i}; + + # Get the C index based on the C param name. + ++$c_index until $c_index >= $num_c_args || $$c_param_names[$c_index] eq $cParamName; + if ($c_index >= $num_c_args) + { + Output::error("convert_args_c_to_cpp(): There is no C argument called \"$cParamName\"\n"); + $objCDefsFunc->dump(); + return ""; + } + } + else + { + # If no mapping exists, the C index is the C++ index + 1 (to skip + # The 'self' argument of the C function). + $c_index = $i + 1; + $cParamName = $$c_param_names[$c_index]; + } + + my $cParamType = $$c_param_types[$c_index]; + + my $cppParamName = $$cpp_param_names[$i]; + my $cppParamType = $$cpp_param_types[$i]; + $cppParamType =~ s/ &/&/g; #Remove space between type and &. + $cppParamType =~ s/ \*/*/g; #Remove space between type and * + + if ($$objCppfunc{slot_name}) + { + # If the current parameter is the slot parameter insert the + # derefenced name of the variable containing the slot which is + # assumed to be '*slot'. The m4 macro is responsible for ensuring + # that the variable is declared and the slot in the 'user_data' C + # param is placed in the variable. + if ($$objCppfunc{slot_name} eq $cppParamName) + { + push(@result, "*slot"); + + # Get the slot type without the const and the '&' and store it so + # it can be passed to the m4 macro. + $cppParamType =~ /^const\s+(.*)&/; + + # If the type does not contain + # any '::' then assume that it is in the library standard namespace + # by prepending '__NAMESPACE__::' to it which the m4 macros will + # translate to the library namespace. + my $plainCppParamType = $1; + $plainCppParamType = "__NAMESPACE__::" . $plainCppParamType + if (!($plainCppParamType =~ /::/)); + + $$objCppfunc{slot_type} = $plainCppParamType; + + # Store the name of the C data parameter so it can be passed + # to the m4 macro so it can extract the slot. + $$objCppfunc{c_data_param_name} = $$c_param_names[$num_c_args - 1]; + + next; + } + } + + if ($cParamType ne $cppParamType) #If a type conversion is needed. + { + push(@result, sprintf("_CONVERT(%s,%s,%s,%s)\n", + $cParamType, + $cppParamType, + $cParamName, + $wrap_line_number) ); + } + else + { + push(@result, $cParamName); + } + } + + return join(", ",@result); +} + + +# generates the XXX in g_object_new(get_type(), XXX): A list of property names +# and values. Uses the cpp arg name as the property name. +# +# - The optional index specifies which arg list out of the possible combination +# of arguments based on whether any arguments are optional. index = 0 ==> all +# the arguments. +# +# - The errthrow parameter tells if the C new function has a final GError** +# parameter. That parameter is ignored since it will not form part of the +# property list. +# +# $string get_ctor_properties($objCppfunc, $objCDefsFunc, $wrap_line_number, $errthrow, $index = 0) +sub get_ctor_properties($$$$$$) +{ + my ($objCppfunc, $objCDefsFunc, $wrap_line_number, $errthrow, $index) = @_; + + $index = 0 unless defined $index; + + my $cpp_param_names = $$objCppfunc{param_names}; + my $cpp_param_types = $$objCppfunc{param_types}; + my $cpp_param_flags = $$objCppfunc{param_flags}; + my $c_param_name_mappings = $$objCppfunc{param_mappings}; + my $c_param_types = $$objCDefsFunc{param_types}; + my $c_param_names = $$objCDefsFunc{param_names}; + + my @result; + + my $num_args = scalar(@{$c_param_types}); + + # If the C function has a final GError** parameter, ignore it. + $num_args-- if ($errthrow eq "errthrow"); + + my $num_cpp_args = scalar(@{$cpp_param_types}); + if ( $num_cpp_args != $num_args ) + { + Output::error("get_ctor_properties(): Incorrect number of arguments. (%d != %d)\n", + $num_cpp_args, + $num_args ); + return ""; + } + + if ($index == 0) + { + # Check if the C param names in %$c_param_name_mappings exist. + foreach my $mapped_c_param_name (keys %$c_param_name_mappings) + { + next if $mapped_c_param_name eq ""; + + if (!grep($_ eq $mapped_c_param_name, @$c_param_names)) + { + Output::error("get_ctor_properties(): There is no C argument called \"$mapped_c_param_name\"\n"); + $objCDefsFunc->dump(); + return ("", "", ""); + } + } + } + + # Get the desired argument list combination. + my $possible_arg_list = $$objCppfunc{possible_args_list}[$index]; + + # Loop through the parameters: + my $i = 0; + + for ($i = 0; $i < $num_args; $i++) + { + my $c_param_name = $$c_param_names[$i]; + my $cpp_param_index = $i; + $cpp_param_index = $$c_param_name_mappings{$c_param_name} if(defined($$c_param_name_mappings{$c_param_name})); + + my $cppParamType = $$cpp_param_types[$cpp_param_index]; + $cppParamType =~ s/ &/&/g; #Remove space between type and & + $cppParamType =~ s/ \*/*/g; #Remove space between type and * + + my $cppParamName = $$cpp_param_names[$cpp_param_index]; + my $cParamType = $$c_param_types[$i]; + + # Property name: + push(@result, "\"" . $cppParamName . "\""); + + if(!($possible_arg_list =~ /\b$cpp_param_index\b/)) + { + # If the C++ index is not found in the list of desired parameters, pass + # nullptr to the C func unless the param is not optional. + if ($$cpp_param_flags[$cpp_param_index] & FLAG_PARAM_OPTIONAL) + { + push(@result, "nullptr"); + next; + } + } + + # C property value: + if ($cppParamType ne $cParamType) #If a type conversion is needed. + { + push(@result, sprintf("_CONVERT(%s,%s,%s,%s)", + $cppParamType, + $cParamType, + $cppParamName, + $wrap_line_number) ); + } + else + { + push(@result, $cppParamName); + } + } + + return join(", ", @result); +} + +### Convert _WRAP to a corba method +# _CORBA_METHOD(retype, method_name,args, arg_names_only) - implemented in libbonobomm. +# void output_wrap_corba_method($filename, $line_num, $objCppFunc) +sub output_wrap_corba_method($$$$) +{ + my ($self, $filename, $line_num, $objCppfunc) = @_; + + my $str = sprintf("_CORBA_METHOD(%s,%s,\`%s\',\`%s\')dnl\n", + $$objCppfunc{rettype}, + $$objCppfunc{name}, + $objCppfunc->args_types_and_names(), + $objCppfunc->args_names_only() + ); + + $self->append($str); +} + +sub output_implements_interface($$) +{ + my ($self, $interface, $ifdef) = @_; + + my $str = sprintf("_IMPLEMENTS_INTERFACE_CC(%s, %s)dnl\n", + $interface, + $ifdef); + + $self->append($str); +} + +1; # indicate proper module load. diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Property.pm b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Property.pm new file mode 100644 index 0000000..5efca50 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Property.pm @@ -0,0 +1,158 @@ +package Property; + +use strict; +use warnings; +use DocsParser; + +BEGIN { + use Exporter (); + our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); + + # set the version for version checking + $VERSION = 1.00; + @ISA = qw(Exporter); + @EXPORT = qw(&func1 &func2 &func4); + %EXPORT_TAGS = ( ); + # your exported package globals go here, + # as well as any optionally exported functions + @EXPORT_OK = qw($Var1 %Hashit &func3); + } +our @EXPORT_OK; + +# class Property +# { +# string name; +# string class; +# string type; +# bool readable; +# bool writable; +# bool construct_only; +# bool deprecated; # optional +# string default_value; # optional +# string docs; +# } + + +sub new +{ + my ($def) = @_; + my $self = {}; + bless $self; + + $def=~s/^\(//; + $def=~s/\)$//; + # snarf down the fields + $$self{mark} = 0; + $$self{name} = $2 if ($def =~ s/(^define-property|^define-child-property) (\S+)//); + $$self{class} = $1 if ($def =~ s/\(of-object "(\S+)"\)//); + $$self{type} = $1 if ($def =~ s/\(prop-type "(\S+)"\)//); + $$self{readable} = ($1 eq "#t") if ($def =~ s/\(readable (\S+)\)//); + $$self{writable} = ($1 eq "#t") if ($def =~ s/\(writable (\S+)\)//); + $$self{construct_only} = ($1 eq "#t") if ($def =~ s/\(construct-only (\S+)\)//); + $$self{deprecated} = ($1 eq "#t") if ($def =~ s/\(deprecated (\S+)\)//); + $$self{default_value} = $1 if ($def =~ s/\(default-value "(.*?)"\)//); + $$self{entity_type} = 'property'; + + # Property documentation: + my $propertydocs = $1 if ($def =~ s/\(docs "([^"]*)"\)//); + # Add a full-stop if there is not one already: + if(defined($propertydocs)) + { + my $docslen = length($propertydocs); + if($docslen) + { + if( !(substr($propertydocs, $docslen - 1, 1) eq ".") ) + { + $propertydocs = $propertydocs . "."; + } + } + } + + $$self{docs} = $propertydocs; + + + $$self{name} =~ s/-/_/g; # change - to _ + + GtkDefs::error("Unhandled property def ($def) in $$self{class}\::$$self{name}\n") + if ($def !~ /^\s*$/); + + return $self; +} + +sub dump($) +{ + my ($self) = @_; + + print "\n"; + + foreach (keys %$self) + { print " <$_ value=\"$$self{$_}\"/>\n"; } + + print "\n\n"; +} + +sub get_construct_only($) +{ + my ($self) = @_; + return $$self{construct_only}; +} + +sub get_type($) +{ + my ($self) = @_; + return $$self{type}; +} + +sub get_readable($) +{ + my ($self) = @_; + return $$self{readable}; +} + +sub get_writable($) +{ + my ($self) = @_; + return $$self{writable}; +} + +sub get_deprecated($) +{ + my ($self) = @_; + return $$self{deprecated}; # undef, 0 or 1 +} + +sub get_default_value($) +{ + my ($self) = @_; + return $$self{default_value}; # undef or a string (possibly empty) +} + +sub get_docs($$) +{ + my ($self, $deprecation_docs, $newin) = @_; + my $text = $$self{docs}; + + DocsParser::convert_docs_to_cpp("$$self{class}:$$self{name}", \$text); + + #Add note about deprecation if we have specified that in our _WRAP_PROPERTY() + #or_WRAP_CHILD_PROPERTY() call: + if($deprecation_docs ne "") + { + $text .= "\n * \@deprecated $deprecation_docs"; + } + + if ($newin ne "") + { + $text .= "\n *\n * \@newin{$newin}"; + } + + if ($text ne "") + { + DocsParser::add_m4_quotes(\$text); + } + + return $text; +} + + +1; # indicate proper module load. diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Util.pm b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Util.pm new file mode 100644 index 0000000..9b0dd66 --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/Util.pm @@ -0,0 +1,112 @@ +# gtkmm - Util module +# +# Copyright 2001 Free Software Foundation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# # but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# +# This file holds basic functions used throughout gtkmmproc modules. +# Functions in this module are exported so there is no need to +# request them by module name. +# +package Util; +use strict; +use warnings; + +BEGIN { + use Exporter (); + our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); + + # set the version for version checking + $VERSION = 1.00; + @ISA = qw(Exporter); + @EXPORT = qw(&string_unquote &string_trim &string_canonical + &trace &unique); + %EXPORT_TAGS = ( ); + + # your exported package globals go here, + # as well as any optionally exported functions + #@EXPORT_OK = qw($Var1 %Hashit &func3); + } +our @EXPORT_OK; + + +#$ string_unquote($string) +# Removes leading and trailing quotes. +sub string_unquote($) +{ + my ($str) = @_; + + $str =~ s/^['`"]// ; + $str =~ s/['`"]$// ; + + return $str; +} + +# $ string_trim($string) +# Removes leading and trailing white space. +sub string_trim($) +{ + ($_) = @_; + s/^\s+//; + s/\s+$//; + return $_; +} + +# $ string_canonical($string) +# Convert - to _. +sub string_canonical($) +{ + ($_) = @_; + s/-/_/g ; # g means 'replace all' + s/\//_/g ; # g means 'replace all' + return $_; +} + +# +# Back tracing utility. +# Prints the call stack. +# +# void trace() +sub trace() +{ + my ($package, $filename, $line, $subroutine, $hasargs, + $wantarray, $evaltext, $is_require, $hints, $bitmask) = caller(1); + + no warnings qw(uninitialized); + + my $i = 2; + print "Trace on ${subroutine} called from ${filename}:${line}\n"; + while (1) + { + ($package, $filename, $line, $subroutine) = caller($i); + $i++; + next if ($line eq ""); + print " From ${subroutine} call from ${filename}:${line}\n"; + } +} + +sub unique(@) +{ + my %hash; + foreach (@_) + { + $hash{$_}=1; + } + + return keys %hash; +} + +1; # indicate proper module load. + diff --git a/squashfs-root/usr/lib/glibmm-2.4/proc/pm/WrapParser.pm b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/WrapParser.pm new file mode 100644 index 0000000..cb3337a --- /dev/null +++ b/squashfs-root/usr/lib/glibmm-2.4/proc/pm/WrapParser.pm @@ -0,0 +1,1821 @@ +# gtkmm - WrapParser module +# +# Copyright 2001 Free Software Foundation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +package WrapParser; +use strict; +use warnings; +use open IO => ":utf8"; + +use Util; +use GtkDefs; +use Function; +use DocsParser; + +BEGIN { + use Exporter (); + our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); + + # set the version for version checking + $VERSION = 1.00; + @ISA = qw(Exporter); + @EXPORT = ( ); + %EXPORT_TAGS = ( ); + # your exported package globals go here, + # as well as any optionally exported functions + @EXPORT_OK = ( ); + } +our @EXPORT_OK; + +############################################################################ + +my @tokens = (); + +# $objWrapParser new($objOutputter) +sub new($) +{ + my ($objOutputter) = @_; + + my $self = {}; + bless $self; + + #Initialize member data: + $$self{objOutputter} = $objOutputter; + $$self{filename} = "(none)"; + $$self{line_num} = 0; + + $$self{level} = 0; + $$self{class} = ""; + $$self{c_class} = ""; + $$self{in_class} = 0; + $$self{first_namespace} = 1; + $$self{namespace} = []; + $$self{in_namespace} = []; + + $$self{defsdir} = "."; + + $$self{module} = ""; #e.g. "gtkmm" + + $$self{type} = "GTKOBJECT"; # or "BOXEDTYPE", or "GOBJECT" - wrapped differently. + + return $self; +} + +# void parse_and_build_output() +sub parse_and_build_output($) +{ + my ($self) = @_; + + my $objOutputter = $$self{objOutputter}; + + # Parse the tokens. + my $token; + while ( scalar(@tokens) ) + { + $token = $self->extract_token(); + my $bAppend = 1; + + # we need to monitor the depth of braces + if ($token eq '{') { $self->on_open_brace(); } + if ($token eq '}') { $self->on_close_brace(); $bAppend = 0;} + + # protect `' from the source file from m4 + if ($token eq "`") { $objOutputter->append("`'__BT__`'"); next; } + if ($token eq "'") { $objOutputter->append("`'__FT__`'"); next; } + + if ($token eq '"') { $objOutputter->append($self->on_string_literal()); next; } + if ($token eq '//') { $objOutputter->append($self->on_comment_cpp()); next; } + if ($token eq '/*') { $objOutputter->append($self->on_comment_c()); next; } + if ($token eq '/**') { $self->on_comment_doxygen(); next; } + + # handle #m4begin ... #m4end + if ($token eq "#m4begin") { $objOutputter->append($self->on_m4_section()); next;} + + # handle #m4 ... \n + if ($token eq "#m4") { $objOutputter->append($self->on_m4_line()); next;} + + if ($token eq "_DEFS") { $self->on_defs(); next;} #Read the defs file. + if ($token eq "_IGNORE") { $self->on_ignore(); next;} #Ignore a function. + if ($token eq "_IGNORE_SIGNAL") { $self->on_ignore_signal(); next;} #Ignore a signal. + if ($token eq "_IGNORE_PROPERTY") { $self->on_ignore_property(); next;} #Ignore a property. + if ($token eq "_IGNORE_CHILD_PROPERTY") { $self->on_ignore_child_property(); next;} #Ignore a child property. + if ($token eq "_WRAP_METHOD") { $self->on_wrap_method(); next;} + if ($token eq "_WRAP_METHOD_DOCS_ONLY") { $self->on_wrap_method_docs_only(); next;} + if ($token eq "_WRAP_CORBA_METHOD") { $self->on_wrap_corba_method(); next;} #Used in libbonobo*mm. + if ($token eq "_WRAP_SIGNAL") { $self->on_wrap_signal(); next;} + if ($token eq "_WRAP_PROPERTY") { $self->on_wrap_property(); next;} + if ($token eq "_WRAP_CHILD_PROPERTY") { $self->on_wrap_child_property(); next;} + if ($token eq "_WRAP_VFUNC") { $self->on_wrap_vfunc(); next;} + if ($token eq "_WRAP_CTOR") { $self->on_wrap_ctor(); next;} + if ($token eq "_WRAP_CREATE") { $self->on_wrap_create(); next;} + + if ($token eq "_WRAP_ENUM") { $self->on_wrap_enum(); next;} + if ($token eq "_WRAP_ENUM_DOCS_ONLY") { $self->on_wrap_enum_docs_only(); next;} + if ($token eq "_WRAP_GERROR") { $self->on_wrap_gerror(); next;} + if ($token eq "_IMPLEMENTS_INTERFACE") { $self->on_implements_interface(); next;} + + if ($token =~ m/\A_CLASS_/s) + { + $self->on_class($token); + next; + + # e.g.: + # _CLASS_GENERIC + # _CLASS_GOBJECT + # _CLASS_GTKOBJECT + # _CLASS_BOXEDTYPE + # _CLASS_BOXEDTYPE_STATIC + # _CLASS_INTERFACE + # _CLASS_OPAQUE_COPYABLE + # _CLASS_OPAQUE_REFCOUNTED + } + + if ($token eq "namespace") { $self->on_namespace(); } + if ($token eq "_IS_DEPRECATED") { $$self{deprecated} = 1; } + + # After all token manipulations + if($bAppend) + { + $objOutputter->append($token); + } + } +} + +sub error($$) +{ + my ($self, $format) = @_; + + $format = "$$self{filename}:$$self{line_num}: $format"; + printf STDERR $format,@_; +} + +###################################################################### +##### 1.1 parser subroutines + +######################################## +### returns the next token, ignoring some stuff. +# $string extract_token() +sub extract_token($) +{ + my ($self) = @_; + + while ( scalar(@tokens) ) + { + $_ = shift @tokens; + + # skip empty tokens + next if ( !defined($_) or $_ eq "" ); + + # eat line statements + if (m/^#l (\S+)\n/) + { + $$self{line_num} = $1; + next; + } + + # eat file statements + if (m/^#f (\S+)\n/) + { + $$self{filename} = $1; + next; + } + + return $_; + } + + return ""; +} + +### Returns the next token, but does not remove it from the queue, so that +# extract_token will return it again. +# $string peek_token() +sub peek_token($) +{ + my ($self) = @_; + + while ( scalar(@tokens) ) + { + $_ = $tokens[0]; + + # skip empty tokens + if(!defined($_) or $_ eq "") + { + shift @tokens; + } + # eat line statements + elsif ( /^#l (\S+)\n/) + { + $$self{line_num} = $1; + shift @tokens; + } + # eat file statements + elsif ( /^#f (\S+)\n/) + { + $$self{filename} = $1; + shift @tokens; + } + else + { + return $_; + } + } + + return ""; +} + +# bool tokens_remaining() +sub tokens_remaining($) +{ + my ($self) = @_; + return $#tokens >= 0; +} + + +######################################## +### we pass strings literally with quote substitution +# void on_string_literal() +sub on_string_literal($) +{ + my ($self) = @_; + + my @out; + push (@out, '"'); + while ( scalar(@tokens) ) + { + $_ = $self->extract_token(); + if ($_ eq "`") { push(@out, "`'__BT__`'"); next; } + if ($_ eq "'") { push(@out, "`'__FT__`'"); next; } + push (@out, $_); + + return join("",@out) if ($_ eq '"'); + } + + my $line_num = $$self{line_num}; + my $filename = $$self{filename}; + print STDERR "$filename:$line_num: Hit eof while in string\n"; +} + + +######################################## +### we pass comments literally with quote substitution +# void on_comment_cpp() +sub on_comment_cpp($) +{ + my ($self) = @_; + + my @out; + push (@out,"//\`"); + while ( scalar(@tokens) ) + { + $_ = $self->extract_token(); + if ($_ eq "`") { push(@out,"\'__BT__\`"); next; } + if ($_ eq "'") { push(@out,"\'__FT__\`"); next; } + if ($_ eq "\n") + { + push (@out,"\'\n"); + return join("",@out) + } + + if ($_ =~ /^_[A-Z]+$/) {$_="_$_";} # wipe out potential macros + + push (@out,$_); + } +} + + +######################################## +### we pass C comments literally with quote substitution +# void on_comment_c() +sub on_comment_c($) +{ + my ($self) = @_; + + my @out; + push (@out,"/*\`"); + while ( scalar(@tokens) ) + { + $_ = $self->extract_token(); + if ($_ eq "`") { push(@out,"\'__BT__\`"); next; } + if ($_ eq "'") { push(@out,"\'__FT__\`"); next; } + if ($_ eq "*/") + { + push (@out,"\'*/"); + return join("",@out) + } + + push (@out,$_); + } +} + +sub on_comment_doxygen($) +{ + my ($self) = @_; + + my $objOutputter = $$self{objOutputter}; + + my @out; + push (@out,"/**\`"); + while ( scalar(@tokens) ) + { + $_ = $self->extract_token(); + if ($_ eq "`") { push(@out,"\'__BT__\`"); next; } + if ($_ eq "'") { push(@out,"\'__FT__\`"); next; } + + if ($_ eq "*/") + { + push (@out,"\'*/"); + $objOutputter->append(join("", @out)); + + # Extract all following whitespace tokens. + my @whitespace; + my $next_token = $self->peek_token(); + while ($next_token !~ /\S/) + { + push(@whitespace, $self->extract_token()); + $next_token = $self->peek_token(); + } + # Do not extract the following non-whitespace token so that + # parse_and_build_output() will process it. + + # Append whitespace. + # extract_preceding_documentation() expects to find a preceding + # doxygen comment, if any, as two array elements, one with the whole + # comment, the following (possibly empty) with the following + # whitespace. + $objOutputter->append(join("", @whitespace)); + last; + } + + push (@out,$_); + } +} + + +######################################## +### handle #m4begin ... #m4end +# we don't substitute ` or ' in #m4begin +# void on_m4_section() +sub on_m4_section($) +{ + my ($self) = @_; + + my @value; + my $token; + + while ( scalar(@tokens) ) + { + $token = $self->extract_token(); + return join("", @value) if ($token eq "#m4end"); + push(@value, $token); + } + + my $line_num = $$self{line_num}; + my $filename = $$self{filename}; + print STDERR "$filename:$line_num: Hit eof looking for #m4end\n"; + next; +} + + +######################################## +### handle #m4 ... /n +# we don't substitute ` or ' in #m4 +# void on_m4_line() +sub on_m4_line ($) +{ + my ($self) = @_; + + my @value; + my $token; + while ( scalar(@tokens) ) + { + $token = $self->extract_token(); + push(@value,$token); # push first, so we don't eat the newline + return join("",@value) if ($token eq "\n"); + } +} + + +######################################## +# m4 needs to know when we entered a namespace +# void on_namespace() +sub on_namespace($) +{ + my ($self) = @_; + my $objOutputter = $$self{objOutputter}; + + my $number = 0; + my $token; + my $arg; + + # we need to peek ahead to figure out what type of namespace + # declaration this is. + while ( $number <= $#tokens ) + { + $token = $tokens[$number]; + $number++; + next if (!defined($token) or $token eq ""); +# print "> $token\n"; + + if ($token eq '{') + { + $arg = string_trim($arg); + + if ($$self{first_namespace}) + { + $objOutputter->append("_SECTION(SECTION_HEADER2)\n"); + $$self{first_namespace} = 0; + } + + $objOutputter->append("_NAMESPACE($arg)"); + unshift(@{$$self{namespace}}, $arg); + unshift(@{$$self{in_namespace}}, $$self{level}+1); + return; + } + + next if ( $token =~ /^#[lf] \S+\n/); + return if ($token eq ';'); + + $arg .= $token; #concatenate + } +} + + +######################################## +### we don't want to report every petty function as unwrapped +# void on_ignore($) +sub on_ignore($) +{ + my ($self) = @_; + my $objOutputter = $$self{objOutputter}; + my $str = $self->extract_bracketed_text(); + my @args = split(/\s+|,/,$str); + foreach (@args) + { + next if ($_ eq ""); + my $objCfunc = GtkDefs::lookup_function($_); #Pretend that we've used it. + if(!$objCfunc) + { + $objOutputter->output_wrap_failed($_, "ignored method defs lookup failed"); + } + } +} + +# void on_ignore_signal_or_property(\&lookup_function, $type) +sub on_ignore_signal_or_property($$$) +{ + my ($self, $lookup_function, $type) = @_; + my $str = $self->extract_bracketed_text(); + my @args = split(/\s+|,/,$str); + foreach (@args) + { + my $name = string_unquote($_); + next if ($name eq ""); + my $objCentity = $lookup_function->($$self{c_class}, $name); #Pretend that we've used it. + if (!$objCentity) + { + $$self{objOutputter}->output_wrap_failed($name, "ignored $type defs lookup failed"); + } + } +} + +sub on_ignore_signal($) +{ + my ($self) = @_; + $self->on_ignore_signal_or_property(\&GtkDefs::lookup_signal, "signal"); +} + +sub on_ignore_property($) +{ + my ($self) = @_; + $self->on_ignore_signal_or_property(\&GtkDefs::lookup_property, "property"); +} + +sub on_ignore_child_property($) +{ + my ($self) = @_; + $self->on_ignore_signal_or_property(\&GtkDefs::lookup_child_property, "child property"); +} + +######################################## +### we have certain macros we need to insert at end of statements +# void on_class($, $strClassCommand) +sub on_class($$) +{ + my ($self, $class_command) = @_; + + my $objOutputter = $$self{objOutputter}; + + $$self{in_class} = $$self{level}; + + #Remember the type of wrapper required, so that we can append the correct _END_CLASS_* macro later. + { + my $str = $class_command; + $str =~ s/^_CLASS_//; + $$self{type} = $str; + } + + my $str = $self->extract_bracketed_text(); + my ($class, $c_class) = split(',',$str); + $class = string_trim($class); + $c_class = string_trim($c_class); + + $$self{class} = $class; + $$self{c_class} = $c_class; + + my @back; + push(@back, $class_command); + push(@back, "($str)"); + + # When we hit _CLASS, we walk backwards through the output to find "class" + my $token; + while ( scalar(@{$$objOutputter{out}})) + { + $token = pop @{$$objOutputter{out}}; + unshift(@back, $token); + if ($token eq "class") + { + $objOutputter->append("_CLASS_START()"); + + my $strBack = join("", @back); + + $objOutputter->append($strBack); + return; + } + } + + $self->error("$class_command outside of class.\n"); + exit(-1); +} + +# remove surround spaces from the string +sub trim($) +{ + my $string = shift; + $string =~ s/^\s+//; + $string =~ s/\s+$//; + return $string; +} + +# order to read the defs file +# void on_defs() +sub on_defs($) +{ + my ($self) = @_; + + my $str = $self->extract_bracketed_text(); + my ($module, $defsfile) = split(/,/, $str); #e.g. _DEFS(gtkmm,gtk), where gtkmm is the module name, and gtk is the defs file name. + $module = trim($module); + $defsfile = trim($defsfile); + + # $$self{section} = $section; #Save it so that we can reuse it in read_defs_included. + $$self{module} = $module; #Use it later in call to output_temp_g1(). + + GtkDefs::read_defs("$$self{defsdir}", "$defsfile.defs"); + + #Read the documentation too, so that we can merge it into the generated C++ code: + my $docs_filename = $defsfile . "_docs.xml"; + my $docs_filename_override = $defsfile . "_docs_override.xml"; + DocsParser::read_defs("$$self{defsdir}", $docs_filename, $docs_filename_override); +} + +# void on_open_brace() +sub on_open_brace($) +{ + my ($self) = @_; + + $$self{level}++; +} + +# void on_close_brace($) +sub on_close_brace($) +{ + my ($self) = @_; + my $objOutputter = $$self{objOutputter}; + + #push(@out, "($$self{level})"); + + $self->on_end_class() + if ($$self{in_class} && $$self{in_class} == $$self{level}); + + $objOutputter->append("}"); #We append it here instead of after we return, so that we can end the namespace after it. + + $self->on_end_namespace() + if ( scalar(@{$$self{in_namespace}}) && (@{$$self{in_namespace}}[0] == $$self{level}) ); + + $$self{level}--; +} + + +######################################## +### denote the end of a class +# void on_end_class($) +sub on_end_class($) +{ + my ($self) = @_; + my $objOutputter = $$self{objOutputter}; + + # Examine $$self{type}, which was set in on_class() + # And append the _END_CLASS_* macro, which will, in turn, output the m4 code. + { + my $str = $$self{type}; + $objOutputter->append("`'_END_CLASS_$str()\n"); + } + + $$self{class} = ""; + $$self{c_class} = ""; + $$self{in_class} = 0; +} + + +######################################## +### +# void on_end_namespace($) +sub on_end_namespace($) +{ + my ($self) = @_; + my $objOutputter = $$self{objOutputter}; + + $objOutputter->append("`'_END_NAMESPACE()"); + shift( @{$$self{namespace}} ); + shift( @{$$self{in_namespace}} ); +} + + +###################################################################### +##### some utility subroutines + +######################################## +### takes (\S+) from the tokens (smart) +# $string extract_bracketed_text() +sub extract_bracketed_text($) +{ + my ($self) = @_; + + my $level = 1; + my $in_quotes = 0; + my $str = ""; + + # Move to the first "(": + while ( scalar(@tokens) ) + { + my $t = $self->extract_token(); + last if ($t eq "("); + } + + # TODO: Don't count "(" and ")" within double quotes. + # There may be .hg files with unpaired quotes that generate correct + # .h and .cc files. Don't want to break such code yet. + # See also TODO in string_split_commas(). + + # Concatenate until the corresponding ")": + while ( scalar(@tokens) ) + { + my $t = $self->extract_token(); + $in_quotes = !$in_quotes if ($t eq '"'); + $level++ if ($t eq "("); + $level-- if ($t eq ")"); + + if (!$level) + { + $self->error("End of gmmproc directive within a quoted string.\n") if $in_quotes; + return $str; + } + $str .= $t; + } + + return ""; +} + + +######################################## +### breaks up a string by commas (smart) +# @strings string_split_commas($string [, $ignore_quotes]) +sub string_split_commas($;$) +{ + my ($in, $ignore_quotes) = @_; + + $ignore_quotes = 2 unless defined $ignore_quotes; + my @out; + my $level = 0; + my $in_quotes = 0; + my $str = ""; + my @in = split(/([,"()<>{}])/, $in); + + while (scalar(@in)) + { + my $t = shift @in; + + next if ($t eq ""); + + # TODO: Delete the test for scalar(@out) >= $ignore_quotes when we can stop accepting + # .hg files with unpaired quotes, such as _WRAP_PROPERTY("text_column, int). + # See also TODO in extract_bracketed_text(). + $in_quotes = !$in_quotes if ($t eq '"' and scalar(@out) >= $ignore_quotes); + if (!$in_quotes) + { + $level++ if ($t eq "(" or $t eq "<" or $t eq "{"); + + # In the case of a '>' decrease the level if it is not in a {...} without + # a preceding '<', because then it is most likely indicating that + # a parameter in a method declaration is an output parameter (name{>>}). + $level-- if ($t eq ")" or $t eq "}" or ($t eq ">" && $str !~ /{[^<}]*$/)); + + # Don't split at comma, if inside a function, e.g. void f1(int x, int y) + # or std::map f2(), + # or inside a quoted string, e.g. deprecated "Use f1(), f2() or f3() instead.". + if ($t eq "," && !$level) + { + push(@out, $str); + $str = ""; + next; + } + } + + $str .= $t; + } + + push(@out, $str); + return @out; +} + + +######################################## +### reads in the preprocessor files +# we insert line and file directives for later stages +# void read_file() +sub read_file($$$) +{ + my ($self, $srcdir, $source) = @_; + + my $lineno = 1; + my @in = (); + + if ( ! -r "${srcdir}/${source}.hg") + { + print "Unable to find header file $srcdir/$source.hg\n"; + exit(1); + } + + # Read header file: + open(FILE, "${srcdir}/${source}.hg"); + push(@in, "#f ${source}.hg\n"); + while () + { + push(@in, "#l $lineno\n"); + push(@in, $_); + ++$lineno; + } + close(FILE); + push(@in, "\n", "_SECTION(SECTION_SRC_CUSTOM)\n"); + + # Source file is optional. + if ( -r "${srcdir}/${source}.ccg") + { + open(FILE, "${srcdir}/${source}.ccg"); + $lineno = 1; + push(@in, "#f ${source}.ccg\n"); + while () + { + push(@in, "#l $lineno\n"); + push(@in, $_); + ++$lineno; + } + close(FILE); + } + + my $strIn = join("", @in); + + # Break the file into tokens. Token is + # any group of #, A to z, 0 to 9, _ + # /** + # /* + # *. + # // + # any char proceeded by \ + # symbols ;{}"`'()<> + # newline + @tokens = split(/(\#[lf] \S+\n)|([#A-Za-z0-9_]+)|(\/\*\*)|(\/\*)|(\*\/)|(\/\/)|(\\.)|([;{}"'`()<>])|(\n)/, + $strIn); +} + + +sub class_prefix($) +{ + my ($self) = @_; + + my $str = $$self{class}; + $str =~ s/([a-z])([A-Z])/$1_$2/g; + $str =~ tr/A-Z/a-z/; + return $str; +} + + +###################################################################### +##### 2.1 subroutines for _WRAP + +######################################## + +# $bool check_for_eof() +sub check_for_eof($) +{ + my ($self) = @_; + + my $filename = $$self{filename}; + my $line_num = $$self{line_num}; + + unless (scalar(@tokens)) + { + print STDERR "$filename:$line_num:hit eof in _WRAP\n"; + return 0; #EOF + } + + return 1; # No EOF +} + +# Look back for a Doxygen comment. If there is one, +# remove it from the output and return it as a string. +sub extract_preceding_documentation ($) +{ + my ($self) = @_; + my $outputter = $$self{objOutputter}; + my $out = \@{$$outputter{out}}; + + my $comment = ''; + + if ($#$out >= 1) + { + # steal the last two tokens + my @back = splice(@$out, -2); + local $_ = join('', @back); + + # Check for /*[*!] ... */ or //[/!] comments. The closing */ _must_ + # be the last token of the previous line. Apart from this restriction, + # anything else should work, including multi-line comments. + + if (m#\A/\s*\*(?:\*`|`!)(.+)'\*/\s*\z#s or m#\A\s*//`[/!](.+)'\s*\z#s) + { + $comment = '`' . $1; + $comment =~ s/\s*$/'/; + } + else + { + # restore stolen tokens + push(@$out, @back); + } + } + + return $comment; +} + +# void on_wrap_method() +sub on_wrap_method($) +{ + my ($self) = @_; + my $objOutputter = $$self{objOutputter}; + + return unless ($self->check_for_eof()); + + my $filename = $$self{filename}; + my $line_num = $$self{line_num}; + + my $commentblock = $self->extract_preceding_documentation(); + my $str = $self->extract_bracketed_text(); + my @args = string_split_commas($str); + + my $entity_type = "method"; + + unless ($$self{in_class}) + { + print STDERR "$filename:$line_num:_WRAP macro encountered outside class\n"; + return; + } + + my $objCfunc; + my $objCppfunc; + + # handle first argument + my $argCppMethodDecl = $args[0]; + if ($argCppMethodDecl !~ m/\S/s) + { + print STDERR "$filename:$line_num:_WRAP_METHOD: missing prototype\n"; + return; + } + + #Parse the method declaration and build an object that holds the details: + $objCppfunc = &Function::new($argCppMethodDecl, $self); + + # handle second argument: + + my $argCFunctionName = $args[1]; + $argCFunctionName = string_trim($argCFunctionName); + + #Get the c function's details: + + # Checks that it's not empty and that it contains no whitespace. + if ($argCFunctionName =~ m/^\S+$/s) + { + #c-name. e.g. gtk_clist_set_column_title + if ($$objCppfunc{static}) { + $objCfunc = GtkDefs::lookup_method_set_weak_mark($argCFunctionName); + } else { + $objCfunc = GtkDefs::lookup_method($argCFunctionName); + } + + if(!$objCfunc) #If the lookup failed: + { + $objOutputter->output_wrap_failed($argCFunctionName, "method defs lookup failed (1)"); + return; + } + } + + # Extra stuff needed? + $$objCfunc{rettype_needs_ref} = 0; + $$objCfunc{throw_any_errors} = 0; + $$objCfunc{constversion} = 0; + $$objCfunc{deprecated} = ""; + my $deprecation_docs = ""; + my $newin = ""; + my $ifdef; + while($#args >= 2) # If the optional ref/err/deprecated arguments are there. + { + my $argRef = string_trim(pop @args); + #print "debug arg=$argRef\n"; + if($argRef eq "refreturn") + { + $$objCfunc{rettype_needs_ref} = 1; + } + elsif($argRef eq "errthrow") + { + $$objCfunc{throw_any_errors} = 1; + } + elsif($argRef eq "constversion") + { + $$objCfunc{constversion} = 1; + } + elsif($argRef =~ /^deprecated(.*)/) #If deprecated is at the start. + { + $$objCfunc{deprecated} = "deprecated"; + + if($1 ne "") + { + $deprecation_docs = string_unquote(string_trim($1)); + } + } + elsif($argRef =~ /^newin(.*)/) #If newin is at the start. + { + $newin = string_unquote(string_trim($1)); + } + elsif($argRef =~ /^ifdef(.*)/) #If ifdef is at the start. + { + $ifdef = $1; + } + # The "slot_name" option tells gmmproc the name of the parameter + # that is a slot in the method if there is one. + elsif($argRef =~ /^slot_name\s+(\w+)/) + { + $$objCppfunc{slot_name} = $1; + } + # The "slot_callback" option tells gmmproc the name of the + # callback function that should be passed to the C function if the + # method has a slot. + elsif($argRef =~ /^slot_callback\s+(\w+)/) + { + $$objCppfunc{slot_callback} = $1; + } + # The "no_slot_copy" options tells gmmproc to pass the actual slot + # and not a copy of it to the C function in the data parameter. + if($argRef eq "no_slot_copy") + { + $$objCppfunc{no_slot_copy} = 1; + } + } + + if ($commentblock ne '') + { + $commentblock = ' /**' . $commentblock . "\n */\n"; + } + else + { + $commentblock = DocsParser::lookup_documentation($argCFunctionName, + $deprecation_docs, $newin, $objCppfunc); + } + + $objOutputter->output_wrap_meth($filename, $line_num, $objCppfunc, $objCfunc, $argCppMethodDecl, $commentblock, $ifdef); +} + +# void on_wrap_method_docs_only() +sub on_wrap_method_docs_only($) +{ + my ($self) = @_; + my $objOutputter = $$self{objOutputter}; + + return unless ($self->check_for_eof()); + + my $filename = $$self{filename}; + my $line_num = $$self{line_num}; + + my $str = $self->extract_bracketed_text(); + my @args = string_split_commas($str, 1); + + my $entity_type = "method"; + + if (!$$self{in_class}) + { + print STDERR "$filename:$line_num:_WRAP macro encountered outside class\n"; + return; + } + + my $objCfunc; + + # handle first argument + my $argCFunctionName = $args[0]; + $argCFunctionName = string_trim($argCFunctionName); + + # Get the C function's details: + + # Checks that it's not empty or contains whitespace + if ($argCFunctionName =~ m/^\S+$/s) + { + #c-name. e.g. gtk_clist_set_column_title + $objCfunc = GtkDefs::lookup_method_set_weak_mark($argCFunctionName); + + if(!$objCfunc) #If the lookup failed: + { + $objOutputter->output_wrap_failed($argCFunctionName, "method defs lookup failed (1)"); + return; + } + } + + $$objCfunc{throw_any_errors} = 0; + my $newin = ""; + while($#args >= 1) # If the optional ref/err arguments are there. + { + my $argRef = string_trim(pop @args); + if($argRef eq "errthrow") + { + $$objCfunc{throw_any_errors} = 1; + } + elsif($argRef =~ /^newin(.*)/) #If newin is at the start. + { + $newin = string_unquote(string_trim($1)); + } + } + + my $commentblock = ""; + $commentblock = DocsParser::lookup_documentation($argCFunctionName, "", $newin); + $objOutputter->output_wrap_meth_docs_only($filename, $line_num, $commentblock); +} + +sub on_wrap_ctor($) +{ + my ($self) = @_; + my $objOutputter = $$self{objOutputter}; + + if( !($self->check_for_eof()) ) + { + return; + } + + my $filename = $$self{filename}; + my $line_num = $$self{line_num}; + + my $str = $self->extract_bracketed_text(); + my @args = string_split_commas($str); + + my $entity_type = "method"; + + if (!$$self{in_class}) + { + print STDERR "$filename:$line_num:_WRAP_CTOR macro encountered outside class\n"; + return; + } + + my $objCfunc; + my $objCppfunc; + + # handle first argument + my $argCppMethodDecl = $args[0]; + if ($argCppMethodDecl !~ m/\S/s) + { + print STDERR "$filename:$line_num:_WRAP_CTOR: missing prototype\n"; + return; + } + + #Parse the method decaration and build an object that holds the details: + $objCppfunc = &Function::new_ctor($argCppMethodDecl, $self); + + # handle second argument: + + my $argCFunctionName = $args[1]; + $argCFunctionName = string_trim($argCFunctionName); + + #Get the C function's details: + if ($argCFunctionName =~ m/^\S+$/s) + { + #c-name. e.g. gtk_button_new + $objCfunc = GtkDefs::lookup_method_set_weak_mark($argCFunctionName); + if(!$objCfunc) #If the lookup failed: + { + $objOutputter->output_wrap_failed($argCFunctionName, "ctor defs lookup failed (2)"); + return; + } + } + + # Handle options (presently only "errthrow" is recognized). + $$objCfunc{throw_any_errors} = 0; + while($#args >= 2) + { + my $argRef = string_trim(pop @args); + if($argRef eq "errthrow") + { + $$objCfunc{throw_any_errors} = 1; + } + else + { + print STDERR "$filename:$line_num:_WRAP_CTOR: Invalid option '$argRef'.\n"; + return; + } + } + + $objOutputter->output_wrap_ctor($filename, $line_num, $objCppfunc, $objCfunc, $argCppMethodDecl); +} + +sub on_implements_interface($$) +{ + my ($self) = @_; + + if( !($self->check_for_eof()) ) + { + return; + } + + my $filename = $$self{filename}; + my $line_num = $$self{line_num}; + + my $str = $self->extract_bracketed_text(); + my @args = string_split_commas($str); + + # handle first argument + my $interface = $args[0]; + + # Extra stuff needed? + my $ifdef; + while($#args >= 1) # If the optional ref/err/deprecated arguments are there. + { + my $argRef = string_trim(pop @args); + if($argRef =~ /^ifdef(.*)/) #If ifdef is at the start. + { + $ifdef = $1; + } + } + my $objOutputter = $$self{objOutputter}; + $objOutputter->output_implements_interface($interface, $ifdef); +} + +sub on_wrap_create($) +{ + my ($self) = @_; + + if( !($self->check_for_eof()) ) + { + return; + } + + my $str = $self->extract_bracketed_text(); + + my $objOutputter = $$self{objOutputter}; + $objOutputter->output_wrap_create($str, $self); +} + +sub on_wrap_signal($$) +{ + my ($self) = @_; + + if( !($self->check_for_eof()) ) + { + return; + } + + my $commentblock = $self->extract_preceding_documentation(); + # Remove leading and trailing m4 quotes, if any. + # M4 quotes will be added around the whole comment, after $commentblock has + # possibly been merged with a second comment block. + $commentblock =~ s/^`//; + $commentblock =~ s/'$//; + + my $str = $self->extract_bracketed_text(); + my @args = string_split_commas($str); + + #Get the arguments: + my $argCppDecl = $args[0]; + my $argCName = $args[1]; + $argCName = string_trim($argCName); + $argCName = string_unquote($argCName); + + my $bCustomDefaultHandler = 0; + my $bNoDefaultHandler = 0; + my $bCustomCCallback = 0; + my $bRefreturn = 0; + my $ifdef = ""; + my $argDeprecated = ""; + my $deprecation_docs = ""; + my $newin = ""; + my $exceptionHandler = ""; + my $detail_name = ""; + my $bTwoSignalMethods = 0; + + while($#args >= 2) # If optional arguments are there. + { + my $argRef = string_trim(pop @args); + if($argRef eq "custom_default_handler") + { + $bCustomDefaultHandler = 1; + } + elsif($argRef eq "no_default_handler") + { + $bNoDefaultHandler = 1; + } + elsif($argRef eq "custom_c_callback") + { + $bCustomCCallback = 1; + } + elsif($argRef eq "refreturn") + { + $bRefreturn = 1; + } + elsif($argRef =~ /^deprecated(.*)/) #If deprecated is at the start. + { + $argDeprecated = "deprecated"; + + if($1 ne "") + { + $deprecation_docs = string_unquote(string_trim($1)); + } + } + elsif($argRef =~ /^newin(.*)/) #If newin is at the start. + { + $newin = string_unquote(string_trim($1)); + } + elsif($argRef =~ /^ifdef(.*)/) #If ifdef is at the start. + { + $ifdef = $1; + } + elsif($argRef =~ /^exception_handler\s+(.*)/) #If exception_handler at the start. + { + $exceptionHandler = $1; + } + elsif($argRef =~ /^detail_name\s+(.+)/) #If detail_name at the start. + { + $detail_name = $1; + } + elsif($argRef eq "two_signal_methods") + { + $bTwoSignalMethods = 1; + } + else + { + $self->error("_WRAP_SIGNAL: Invalid option '$argRef'.\n"); + } + } + + $self->output_wrap_signal($argCppDecl, $argCName, $$self{filename}, $$self{line_num}, + $bCustomDefaultHandler, $bNoDefaultHandler, $bCustomCCallback, + $bRefreturn, $ifdef, $commentblock, $argDeprecated, $deprecation_docs, + $newin, $exceptionHandler, $detail_name, $bTwoSignalMethods); +} + +# void on_wrap_vfunc() +sub on_wrap_vfunc($) +{ + my ($self) = @_; + + if( !($self->check_for_eof()) ) + { + return; + } + + my $str = $self->extract_bracketed_text(); + my @args = string_split_commas($str); + + #Get the arguments: + my $argCppDecl = $args[0]; + my $argCName = $args[1]; + $argCName = string_trim($argCName); + $argCName = string_unquote($argCName); + + my $refreturn = 0; + my $keep_return = 0; + my $refreturn_ctype = 0; + my $returnValue = ""; + my $errReturnValue = ""; + my $exceptionHandler = ""; + my $custom_vfunc = 0; + my $custom_vfunc_callback = 0; + my $ifdef = ""; + my $errthrow = 0; + my $slot_name = ""; + my $slot_callback = ""; + my $no_slot_copy = 0; + + while($#args >= 2) # If optional arguments are there. + { + my $argRef = string_trim(pop @args); + + # Extra ref needed? + if($argRef eq "refreturn") + { + $refreturn = 1; + } + # Must a copy of the return value be kept, because the caller does not + # get its own copy? + elsif($argRef eq "keep_return") + { + $keep_return = 1; + } + elsif($argRef eq "refreturn_ctype") + { + $refreturn_ctype = 1; + } + # Return value, if neither the underlying C class defines the vfunc + # nor the C++ vfunc is overridden in a user-defined subclass. + # (Default is the default value of the return type, e.g. false or 0.) + elsif($argRef =~ /^return_value\s+(.*)/) + { + $returnValue = $1; + } + # Return value, if the C++ vfunc throws an exception which is propagated + # to the C callback. + # (Default is the default value of the return type or, if return_value + # is specified, the return_value.) + elsif($argRef =~ /^err_return_value\s+(.*)/) + { + $errReturnValue = $1; + } + # If exception handler is not defined, then Glib::exception_handlers_invoke + # method will be used for exception handling. + elsif($argRef =~ /^exception_handler\s+(.*)/) + { + $exceptionHandler = $1; + } + elsif($argRef eq "custom_vfunc") + { + $custom_vfunc = 1; + } + elsif($argRef eq "custom_vfunc_callback") + { + $custom_vfunc_callback = 1; + } + elsif($argRef eq "errthrow") + { + $errthrow = 1; + } + elsif($argRef =~ /^ifdef(.*)/) #If ifdef is at the start. + { + $ifdef = $1; + } + # The "slot_name" option tells gmmproc the name of the parameter + # that is a slot in the virtual function if there is one. + elsif($argRef =~ /^slot_name\s+(\w+)/) + { + $slot_name = $1; + } + # The "slot_callback" option tells gmmproc the name of the + # callback function that should be passed to the C function if the + # virtual function has a slot. + elsif($argRef =~ /^slot_callback\s+(\w+)/) + { + $slot_callback = $1; + } + # The "no_slot_copy" options tells gmmproc to pass the actual slot + # and not a copy of it to the C function in the data parameter. + elsif($argRef eq "no_slot_copy") + { + $no_slot_copy = 1; + } + } + $errReturnValue = $returnValue if ($returnValue ne "" and $errReturnValue eq ""); + + $self->output_wrap_vfunc($argCppDecl, $argCName, $$self{filename}, $$self{line_num}, + $refreturn, $keep_return, $refreturn_ctype, $custom_vfunc, + $custom_vfunc_callback, $ifdef, $errthrow, + $slot_name, $slot_callback, $no_slot_copy, + $returnValue, $errReturnValue, $exceptionHandler); +} + +# Common part of _WRAP_ENUM(), _WRAP_ENUM_DOCS_ONLY() and _WRAP_GERROR(). +sub on_wrap_any_enum($$) +{ + my ($self, $is_gerror) = @_; + + my $str = $self->extract_bracketed_text(); + my @args = string_split_commas($str); + + #Get the arguments: + my $cpp_type = string_trim(shift(@args)); + my $c_type = string_trim(shift(@args)); + my $domain = $is_gerror ? string_trim(shift(@args)) : ""; + + my @subst_in = []; + my @subst_out = []; + my $no_gtype = ""; + my $argDeprecated = ""; + my $deprecation_docs = ""; + my $newin = ""; + + # Build a list of custom substitutions, and recognize some flags too. + foreach (@args) + { + my $arg = string_trim($_); + + if ($arg eq "NO_GTYPE") + { + $no_gtype = "NO_GTYPE"; + } + elsif ($arg =~ /^(get_type_func=)(\s*)$/) + { + my $part1 = $1; + my $part2 = $2; + } + elsif ($arg =~ /^s#([^#]+)#([^#]*)#$/) + { + push(@subst_in, $1); + push(@subst_out, $2); + } + elsif ($arg =~ /^deprecated(.*)/) #If deprecated is at the start. + { + $argDeprecated = "deprecated"; + + if ($1 ne "") + { + $deprecation_docs = string_unquote(string_trim($1)); + } + } + elsif ($arg =~ /^newin(.*)/) #If newin is at the start. + { + $newin = string_unquote(string_trim($1)); + } + } + return ($cpp_type, $c_type, $domain, \@subst_in, \@subst_out, $no_gtype, + $argDeprecated, $deprecation_docs, $newin); +} + +sub on_wrap_enum($) +{ + my ($self) = @_; + + return unless ($self->check_for_eof()); + + my $comment = $self->extract_preceding_documentation(); + + # get the arguments + my ($cpp_type, $c_type, undef, $ref_subst_in, $ref_subst_out, $no_gtype, + $argDeprecated, $deprecation_docs, $newin) = $self->on_wrap_any_enum(0); + + $$self{objOutputter}->output_wrap_enum( + $$self{filename}, $$self{line_num}, $cpp_type, $c_type, + $comment, $ref_subst_in, $ref_subst_out, $no_gtype, + $argDeprecated, $deprecation_docs, $newin); +} + +sub on_wrap_enum_docs_only($) +{ + my ($self) = @_; + + return unless ($self->check_for_eof()); + + my $comment = $self->extract_preceding_documentation(); + + # get the arguments + my ($cpp_type, $c_type, undef, $ref_subst_in, $ref_subst_out, undef, + $argDeprecated, $deprecation_docs, $newin) = $self->on_wrap_any_enum(0); + + # Get the module name so the enum docs can be included in the module's + # Doxygen enum group. + my $module_canonical = Util::string_canonical($$self{module}); + + $$self{objOutputter}->output_wrap_enum_docs_only( + $$self{filename}, $$self{line_num}, $module_canonical, $cpp_type, $c_type, + $comment, $ref_subst_in, $ref_subst_out, $deprecation_docs, $newin); +} + +sub on_wrap_gerror($) +{ + my ($self) = @_; + + return unless ($self->check_for_eof()); + + # If _WRAP_GERROR is preceded by a doxygen comment, it will be applied + # to the generated exception class as a whole, and not to the enum Code + # inside the class. + my $class_docs = $self->extract_preceding_documentation(); + + # get the arguments + my ($cpp_type, $c_type, $domain, $ref_subst_in, $ref_subst_out, $no_gtype, + $argDeprecated, $deprecation_docs, $newin) = $self->on_wrap_any_enum(1); + + $$self{objOutputter}->output_wrap_gerror( + $$self{filename}, $$self{line_num}, $cpp_type, $c_type, $domain, + $class_docs, $ref_subst_in, $ref_subst_out, $no_gtype, + $argDeprecated, $deprecation_docs, $newin); +} + +sub on_wrap_any_property($) +{ + my ($self) = @_; + + my $str = $self->extract_bracketed_text(); + my @args = string_split_commas($str); + + #Get the arguments: + my $argPropertyName = $args[0]; + $argPropertyName = string_trim($argPropertyName); + $argPropertyName = string_unquote($argPropertyName); + + #Convert the property name to a canonical form, as it is inside gobject. + #Otherwise, gobject might not recognise the name, + #and we will not recognise the property name when we get notification that the value changes. + $argPropertyName =~ tr/_/-/; + + my $argCppType = $args[1]; + $argCppType = string_trim($argCppType); + $argCppType = string_unquote($argCppType); + + my $filename = $$self{filename}; + my $line_num = $$self{line_num}; + + #TODO: Reduce duplication with on_wrap_method(): + my $argDeprecated = ""; + my $deprecation_docs = ""; + my $newin = ""; + while($#args >= 2) # If the optional arguments are there. + { + my $argRef = string_trim(pop @args); + + if($argRef =~ /^deprecated(.*)/) #If deprecated is at the start. + { + $argDeprecated = "deprecated"; + + if($1 ne "") + { + $deprecation_docs = string_unquote(string_trim($1)); + } + } + elsif($argRef =~ /^newin(.*)/) #If newin is at the start. + { + $newin = string_unquote(string_trim($1)); + } + } + + return ($filename, $line_num, $argPropertyName, $argCppType, + $argDeprecated, $deprecation_docs, $newin); +} + +sub on_wrap_property($) +{ + my ($self) = @_; + my $objOutputter = $$self{objOutputter}; + + return unless ($self->check_for_eof()); + + my ($filename, $line_num, $argPropertyName, $argCppType, $argDeprecated, + $deprecation_docs, $newin) = $self->on_wrap_any_property(); + + $objOutputter->output_wrap_property($filename, $line_num, $argPropertyName, + $argCppType, $$self{c_class}, $$self{deprecated}, $argDeprecated, $deprecation_docs, $newin); +} + +sub on_wrap_child_property($) +{ + my ($self) = @_; + my $objOutputter = $$self{objOutputter}; + + return unless ($self->check_for_eof()); + + my ($filename, $line_num, $argPropertyName, $argCppType, $argDeprecated, + $deprecation_docs, $newin) = $self->on_wrap_any_property(); + + $objOutputter->output_wrap_child_property($filename, $line_num, $argPropertyName, + $argCppType, $$self{c_class}, $$self{deprecated}, $argDeprecated, $deprecation_docs, $newin); +} + +sub output_wrap_check($$$$$$) +{ + my ($self, $CppDecl, $signal_name, $filename, $line_num, $macro_name) = @_; + + #Some checks: + + unless ($$self{in_class}) + { + print STDERR "$filename:$line_num: $macro_name macro encountered outside class\n"; + return 1; + } + if ($CppDecl !~ m/\S/s) + { + print STDERR "$filename:$line_num:$macro_name: missing prototype\n"; + return 1; + } + return ''; +} + +# void output_wrap($CppDecl, $signal_name, $filename, $line_num, $bCustomDefaultHandler, +# $bNoDefaultHandler, $bCustomCCallback, $bRefreturn, $ifdef, +# $commentblock, $deprecated, $deprecation_docs, $newin, $exceptionHandler, +# $detail_name, $bTwoSignalMethods) +sub output_wrap_signal($$$$$$$$$$$$$$$$$) +{ + my ($self, $CppDecl, $signal_name, $filename, $line_num, $bCustomDefaultHandler, + $bNoDefaultHandler, $bCustomCCallback, $bRefreturn, $ifdef, + $commentblock, $deprecated, $deprecation_docs, $newin, $exceptionHandler, + $detail_name, $bTwoSignalMethods) = @_; + + #Some checks: + return if ($self->output_wrap_check($CppDecl, $signal_name, + $filename, $line_num, "_WRAP_SIGNAL")); + # handle first argument + + #Parse the method declaration and build an object that holds the details: + my $objCppSignal = &Function::new($CppDecl, $self); + $$objCppSignal{class} = $$self{class}; #Remember the class name for use in Outputter::output_wrap_signal(). + + + # handle second argument: + my $objCSignal = undef; + + my $objOutputter = $$self{objOutputter}; + + #Get the c function's details: + if ($signal_name ne '') + { + $objCSignal = GtkDefs::lookup_signal($$self{c_class}, $signal_name); + + # Check for failed lookup. + if (!$objCSignal) + { + print STDERR "$signal_name\n"; + $objOutputter->output_wrap_failed($signal_name, + " signal defs lookup failed"); + return; + } + } + + # Check detailed. + my $defs_detailed = $objCSignal->get_detailed(); + if ($defs_detailed && !$detail_name) + { + print STDERR "Warning, $main::source: The $signal_name signal" . + " is marked 'detailed' in the .defs file, but not in _WRAP_SIGNAL.\n"; + } + elsif (!$defs_detailed && $detail_name) + { + print STDERR "Warning, $main::source: The $signal_name signal" . + " is marked 'detailed' in _WRAP_SIGNAL, but not in the .defs file.\n"; + } + + Output::check_deprecation($$self{deprecated}, $objCSignal->get_deprecated(), + $deprecated, $signal_name, "signal", "SIGNAL"); + + $objOutputter->output_wrap_sig_decl($filename, $line_num, $objCSignal, $objCppSignal, + $signal_name, $bCustomCCallback, $ifdef, $commentblock, + $deprecated, $deprecation_docs, $newin, $exceptionHandler, + $detail_name, $bTwoSignalMethods); + + if (!$bNoDefaultHandler) + { + $objOutputter->output_wrap_default_signal_handler_h($filename, $line_num, + $objCppSignal, $objCSignal, $ifdef, $deprecated, $exceptionHandler); + + my $bImplement = 1; + if($bCustomDefaultHandler) { $bImplement = 0; } + $objOutputter->output_wrap_default_signal_handler_cc($filename, $line_num, + $objCppSignal, $objCSignal, $bImplement, $bCustomCCallback, $bRefreturn, + $ifdef, $deprecated, $exceptionHandler); + } +} + +# void output_wrap_vfunc($CppDecl, $vfunc_name, $filename, $line_num, +# $refreturn, $keep_return, $refreturn_ctype, +# $custom_vfunc, $custom_vfunc_callback, $ifdef, $errthrow, +# $slot_name, $slot_callback, $no_slot_copy, $returnValue, +# $errReturnValue, $exceptionHandler) +sub output_wrap_vfunc($$$$$$$$$$$$$$$$$$) +{ + my ($self, $CppDecl, $vfunc_name, $filename, $line_num, $refreturn, $keep_return, $refreturn_ctype, + $custom_vfunc, $custom_vfunc_callback, $ifdef, $errthrow, + $slot_name, $slot_callback, $no_slot_copy, $returnValue, $errReturnValue, $exceptionHandler) = @_; + + #Some checks: + return if ($self->output_wrap_check($CppDecl, $vfunc_name, $filename, $line_num, '_WRAP_VFUNC')); + + # handle first argument + + #Parse the method declaration and build an object that holds the details: + my $objCppVfunc = &Function::new($CppDecl, $self); + + + # handle second argument: + my $objCVfunc = undef; + + my $objOutputter = $$self{objOutputter}; + + #Get the c function's details: + if ($vfunc_name =~ m/^\S+$/s) # if it's not empty and contains no whitespace + { + $objCVfunc = GtkDefs::lookup_signal($$self{c_class},$vfunc_name); + if(!$objCVfunc) #If the lookup failed: + { + $objOutputter->output_wrap_failed($vfunc_name, " vfunc defs lookup failed"); + return; + } + } + + # Write out the appropriate macros. + # These macros are defined in vfunc.m4: + + $$objCppVfunc{rettype_needs_ref} = $refreturn; + $$objCppVfunc{keep_return} = $keep_return; + $$objCppVfunc{return_value} = $returnValue; + $$objCppVfunc{err_return_value} = $errReturnValue; + $$objCppVfunc{exception_handler} = $exceptionHandler; + $$objCppVfunc{name} .= "_vfunc"; #All vfuncs should have the "_vfunc" suffix, and a separate easily-named invoker method. + + # Store the slot information in the vfunc if specified. + $$objCppVfunc{slot_name} = $slot_name if ($slot_name); + $$objCppVfunc{slot_callback} = $slot_callback if ($slot_callback); + $$objCppVfunc{no_slot_copy} = $no_slot_copy if ($no_slot_copy); + + $$objCVfunc{rettype_needs_ref} = $refreturn_ctype; + $$objCVfunc{throw_any_errors} = 1 if($errthrow); + + $objOutputter->output_wrap_vfunc_h($filename, $line_num, $objCppVfunc, $objCVfunc, $ifdef); + $objOutputter->output_wrap_vfunc_cc($filename, $line_num, $objCppVfunc, $objCVfunc, + $custom_vfunc, $custom_vfunc_callback, $ifdef); +} + +# give some sort of weights to sorting attibutes +sub byattrib() +{ + my %attrib_value = ( + "virtual_impl" ,1, + "virtual_decl" ,2, + # "sig_impl" ,3, + "sig_decl" ,4, + "meth" ,5 + ); + + # $a and $b are hidden parameters to a sorting function + return $attrib_value{$b} <=> $attrib_value{$a}; +} + + +# void on_wrap_corba_method() +sub on_wrap_corba_method($) +{ + my ($self) = @_; + my $objOutputter = $$self{objOutputter}; + + return unless ($self->check_for_eof()); + + my $filename = $$self{filename}; + my $line_num = $$self{line_num}; + + my $str = $self->extract_bracketed_text(); + my @args = string_split_commas($str); + + my $entity_type = "method"; + + if (!$$self{in_class}) + { + print STDERR "$filename:$line_num:_WRAP macro encountered outside class\n"; + return; + } + + my $objCppfunc; + + # handle first argument + my $argCppMethodDecl = $args[0]; + if ($argCppMethodDecl !~ m/\S/s) + { + print STDERR "$filename:$line_num:_WRAP_CORBA_METHOD: missing prototype\n"; + return; + } + + # Parse the method decaration and build an object that holds the details: + $objCppfunc = &Function::new($argCppMethodDecl, $self); + $objOutputter->output_wrap_corba_method($filename, $line_num, $objCppfunc); +} + + +1; # return package loaded okay. diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstaudioconvert.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstaudioconvert.so new file mode 100755 index 0000000..32b87f8 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstaudioconvert.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstaudioresample.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstaudioresample.so new file mode 100755 index 0000000..ee6c991 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstaudioresample.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstavi.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstavi.so new file mode 100755 index 0000000..47b85b3 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstavi.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstcog.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstcog.so new file mode 100755 index 0000000..290c005 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstcog.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstcoreelements.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstcoreelements.so new file mode 100755 index 0000000..56df01c Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstcoreelements.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstcoreindexers.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstcoreindexers.so new file mode 100755 index 0000000..ab495ae Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstcoreindexers.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstdecodebin.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstdecodebin.so new file mode 100755 index 0000000..0c3fd88 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstdecodebin.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstdecodebin2.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstdecodebin2.so new file mode 100755 index 0000000..8d5bd10 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstdecodebin2.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstffmpegcolorspace.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstffmpegcolorspace.so new file mode 100755 index 0000000..b8a2750 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstffmpegcolorspace.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstgio.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstgio.so new file mode 100755 index 0000000..7ef28b0 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstgio.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstivorbisdec.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstivorbisdec.so new file mode 100755 index 0000000..18a3932 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstivorbisdec.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstogg.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstogg.so new file mode 100755 index 0000000..e37e353 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstogg.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstpango.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstpango.so new file mode 100755 index 0000000..2abd2aa Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstpango.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstplaybin.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstplaybin.so new file mode 100755 index 0000000..4e56978 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstplaybin.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstshm.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstshm.so new file mode 100755 index 0000000..c2ed9a9 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstshm.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgsttheora.so b/squashfs-root/usr/lib/gstreamer-0.10/libgsttheora.so new file mode 100755 index 0000000..043d0e5 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgsttheora.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgsttypefindfunctions.so b/squashfs-root/usr/lib/gstreamer-0.10/libgsttypefindfunctions.so new file mode 100755 index 0000000..df2d0e7 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgsttypefindfunctions.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstvideoscale.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstvideoscale.so new file mode 100755 index 0000000..99b5d3b Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstvideoscale.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstvolume.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstvolume.so new file mode 100755 index 0000000..c3396e4 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstvolume.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstvorbis.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstvorbis.so new file mode 100755 index 0000000..b002c70 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstvorbis.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstwavparse.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstwavparse.so new file mode 100755 index 0000000..cd5531a Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstwavparse.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstximagesink.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstximagesink.so new file mode 100755 index 0000000..e31497b Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstximagesink.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstximagesrc.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstximagesrc.so new file mode 100755 index 0000000..7dc3f51 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstximagesrc.so differ diff --git a/squashfs-root/usr/lib/gstreamer-0.10/libgstxvimagesink.so b/squashfs-root/usr/lib/gstreamer-0.10/libgstxvimagesink.so new file mode 100755 index 0000000..c2601e6 Binary files /dev/null and b/squashfs-root/usr/lib/gstreamer-0.10/libgstxvimagesink.so differ diff --git a/squashfs-root/usr/lib/libBulletCollision.so b/squashfs-root/usr/lib/libBulletCollision.so new file mode 120000 index 0000000..ff68785 --- /dev/null +++ b/squashfs-root/usr/lib/libBulletCollision.so @@ -0,0 +1 @@ +libBulletCollision.so.2.86 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libBulletCollision.so.2.86 b/squashfs-root/usr/lib/libBulletCollision.so.2.86 new file mode 100755 index 0000000..bb273cd Binary files /dev/null and b/squashfs-root/usr/lib/libBulletCollision.so.2.86 differ diff --git a/squashfs-root/usr/lib/libBulletDynamics.so b/squashfs-root/usr/lib/libBulletDynamics.so new file mode 120000 index 0000000..60dd743 --- /dev/null +++ b/squashfs-root/usr/lib/libBulletDynamics.so @@ -0,0 +1 @@ +libBulletDynamics.so.2.86 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libBulletDynamics.so.2.86 b/squashfs-root/usr/lib/libBulletDynamics.so.2.86 new file mode 100755 index 0000000..75003e6 Binary files /dev/null and b/squashfs-root/usr/lib/libBulletDynamics.so.2.86 differ diff --git a/squashfs-root/usr/lib/libBulletSoftBody.so b/squashfs-root/usr/lib/libBulletSoftBody.so new file mode 120000 index 0000000..ff83e43 --- /dev/null +++ b/squashfs-root/usr/lib/libBulletSoftBody.so @@ -0,0 +1 @@ +libBulletSoftBody.so.2.86 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libBulletSoftBody.so.2.86 b/squashfs-root/usr/lib/libBulletSoftBody.so.2.86 new file mode 100755 index 0000000..8ae8c6c Binary files /dev/null and b/squashfs-root/usr/lib/libBulletSoftBody.so.2.86 differ diff --git a/squashfs-root/usr/lib/libEGL.so b/squashfs-root/usr/lib/libEGL.so new file mode 120000 index 0000000..ecdb31b --- /dev/null +++ b/squashfs-root/usr/lib/libEGL.so @@ -0,0 +1 @@ +libEGL.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libEGL.so.1 b/squashfs-root/usr/lib/libEGL.so.1 new file mode 120000 index 0000000..ecdb31b --- /dev/null +++ b/squashfs-root/usr/lib/libEGL.so.1 @@ -0,0 +1 @@ +libEGL.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libEGL.so.1.0.0 b/squashfs-root/usr/lib/libEGL.so.1.0.0 new file mode 100755 index 0000000..23fba05 Binary files /dev/null and b/squashfs-root/usr/lib/libEGL.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libGL.so b/squashfs-root/usr/lib/libGL.so new file mode 120000 index 0000000..0791364 --- /dev/null +++ b/squashfs-root/usr/lib/libGL.so @@ -0,0 +1 @@ +libGL.so.1.2.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libGL.so.1 b/squashfs-root/usr/lib/libGL.so.1 new file mode 120000 index 0000000..0791364 --- /dev/null +++ b/squashfs-root/usr/lib/libGL.so.1 @@ -0,0 +1 @@ +libGL.so.1.2.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libGL.so.1.2.0 b/squashfs-root/usr/lib/libGL.so.1.2.0 new file mode 100755 index 0000000..270b1df Binary files /dev/null and b/squashfs-root/usr/lib/libGL.so.1.2.0 differ diff --git a/squashfs-root/usr/lib/libGLESv1_CM.so b/squashfs-root/usr/lib/libGLESv1_CM.so new file mode 120000 index 0000000..e8dafc5 --- /dev/null +++ b/squashfs-root/usr/lib/libGLESv1_CM.so @@ -0,0 +1 @@ +libGLESv1_CM.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libGLESv1_CM.so.1 b/squashfs-root/usr/lib/libGLESv1_CM.so.1 new file mode 120000 index 0000000..e8dafc5 --- /dev/null +++ b/squashfs-root/usr/lib/libGLESv1_CM.so.1 @@ -0,0 +1 @@ +libGLESv1_CM.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libGLESv1_CM.so.1.1.0 b/squashfs-root/usr/lib/libGLESv1_CM.so.1.1.0 new file mode 100755 index 0000000..e03995b Binary files /dev/null and b/squashfs-root/usr/lib/libGLESv1_CM.so.1.1.0 differ diff --git a/squashfs-root/usr/lib/libGLESv2.so b/squashfs-root/usr/lib/libGLESv2.so new file mode 120000 index 0000000..2f3ba82 --- /dev/null +++ b/squashfs-root/usr/lib/libGLESv2.so @@ -0,0 +1 @@ +libGLESv2.so.2.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libGLESv2.so.2 b/squashfs-root/usr/lib/libGLESv2.so.2 new file mode 120000 index 0000000..2f3ba82 --- /dev/null +++ b/squashfs-root/usr/lib/libGLESv2.so.2 @@ -0,0 +1 @@ +libGLESv2.so.2.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libGLESv2.so.2.0.0 b/squashfs-root/usr/lib/libGLESv2.so.2.0.0 new file mode 100755 index 0000000..edd678f Binary files /dev/null and b/squashfs-root/usr/lib/libGLESv2.so.2.0.0 differ diff --git a/squashfs-root/usr/lib/libGLU.so b/squashfs-root/usr/lib/libGLU.so new file mode 120000 index 0000000..3665143 --- /dev/null +++ b/squashfs-root/usr/lib/libGLU.so @@ -0,0 +1 @@ +libGLU.so.1.3.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libGLU.so.1 b/squashfs-root/usr/lib/libGLU.so.1 new file mode 120000 index 0000000..3665143 --- /dev/null +++ b/squashfs-root/usr/lib/libGLU.so.1 @@ -0,0 +1 @@ +libGLU.so.1.3.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libGLU.so.1.3.1 b/squashfs-root/usr/lib/libGLU.so.1.3.1 new file mode 100755 index 0000000..5f2bffd Binary files /dev/null and b/squashfs-root/usr/lib/libGLU.so.1.3.1 differ diff --git a/squashfs-root/usr/lib/libICE.so b/squashfs-root/usr/lib/libICE.so new file mode 120000 index 0000000..d31cc33 --- /dev/null +++ b/squashfs-root/usr/lib/libICE.so @@ -0,0 +1 @@ +libICE.so.6.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libICE.so.6 b/squashfs-root/usr/lib/libICE.so.6 new file mode 120000 index 0000000..d31cc33 --- /dev/null +++ b/squashfs-root/usr/lib/libICE.so.6 @@ -0,0 +1 @@ +libICE.so.6.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libICE.so.6.3.0 b/squashfs-root/usr/lib/libICE.so.6.3.0 new file mode 100755 index 0000000..bc970cc Binary files /dev/null and b/squashfs-root/usr/lib/libICE.so.6.3.0 differ diff --git a/squashfs-root/usr/lib/libLinearMath.so b/squashfs-root/usr/lib/libLinearMath.so new file mode 120000 index 0000000..268bc0e --- /dev/null +++ b/squashfs-root/usr/lib/libLinearMath.so @@ -0,0 +1 @@ +libLinearMath.so.2.86 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libLinearMath.so.2.86 b/squashfs-root/usr/lib/libLinearMath.so.2.86 new file mode 100755 index 0000000..cd6d002 Binary files /dev/null and b/squashfs-root/usr/lib/libLinearMath.so.2.86 differ diff --git a/squashfs-root/usr/lib/libSDL-1.2.so.0 b/squashfs-root/usr/lib/libSDL-1.2.so.0 new file mode 120000 index 0000000..880e50a --- /dev/null +++ b/squashfs-root/usr/lib/libSDL-1.2.so.0 @@ -0,0 +1 @@ +libSDL-1.2.so.0.11.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL-1.2.so.0.11.4 b/squashfs-root/usr/lib/libSDL-1.2.so.0.11.4 new file mode 100755 index 0000000..dd430d2 Binary files /dev/null and b/squashfs-root/usr/lib/libSDL-1.2.so.0.11.4 differ diff --git a/squashfs-root/usr/lib/libSDL.so b/squashfs-root/usr/lib/libSDL.so new file mode 120000 index 0000000..880e50a --- /dev/null +++ b/squashfs-root/usr/lib/libSDL.so @@ -0,0 +1 @@ +libSDL-1.2.so.0.11.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL2-2.0.so.0 b/squashfs-root/usr/lib/libSDL2-2.0.so.0 new file mode 120000 index 0000000..2f28f74 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL2-2.0.so.0 @@ -0,0 +1 @@ +libSDL2-2.0.so.0.7.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL2-2.0.so.0.7.0 b/squashfs-root/usr/lib/libSDL2-2.0.so.0.7.0 new file mode 100755 index 0000000..9b97817 Binary files /dev/null and b/squashfs-root/usr/lib/libSDL2-2.0.so.0.7.0 differ diff --git a/squashfs-root/usr/lib/libSDL2.so b/squashfs-root/usr/lib/libSDL2.so new file mode 120000 index 0000000..2f28f74 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL2.so @@ -0,0 +1 @@ +libSDL2-2.0.so.0.7.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL2_gfx-1.0.so.0 b/squashfs-root/usr/lib/libSDL2_gfx-1.0.so.0 new file mode 120000 index 0000000..43e4cfc --- /dev/null +++ b/squashfs-root/usr/lib/libSDL2_gfx-1.0.so.0 @@ -0,0 +1 @@ +libSDL2_gfx-1.0.so.0.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL2_gfx-1.0.so.0.0.1 b/squashfs-root/usr/lib/libSDL2_gfx-1.0.so.0.0.1 new file mode 100755 index 0000000..f668259 Binary files /dev/null and b/squashfs-root/usr/lib/libSDL2_gfx-1.0.so.0.0.1 differ diff --git a/squashfs-root/usr/lib/libSDL2_gfx.so b/squashfs-root/usr/lib/libSDL2_gfx.so new file mode 120000 index 0000000..43e4cfc --- /dev/null +++ b/squashfs-root/usr/lib/libSDL2_gfx.so @@ -0,0 +1 @@ +libSDL2_gfx-1.0.so.0.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL2_image-2.0.so.0 b/squashfs-root/usr/lib/libSDL2_image-2.0.so.0 new file mode 120000 index 0000000..edc2e07 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL2_image-2.0.so.0 @@ -0,0 +1 @@ +libSDL2_image-2.0.so.0.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL2_image-2.0.so.0.0.1 b/squashfs-root/usr/lib/libSDL2_image-2.0.so.0.0.1 new file mode 100755 index 0000000..c6eb2d5 Binary files /dev/null and b/squashfs-root/usr/lib/libSDL2_image-2.0.so.0.0.1 differ diff --git a/squashfs-root/usr/lib/libSDL2_image.so b/squashfs-root/usr/lib/libSDL2_image.so new file mode 120000 index 0000000..edc2e07 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL2_image.so @@ -0,0 +1 @@ +libSDL2_image-2.0.so.0.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL2_ttf-2.0.so.0 b/squashfs-root/usr/lib/libSDL2_ttf-2.0.so.0 new file mode 120000 index 0000000..714f93a --- /dev/null +++ b/squashfs-root/usr/lib/libSDL2_ttf-2.0.so.0 @@ -0,0 +1 @@ +libSDL2_ttf-2.0.so.0.14.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL2_ttf-2.0.so.0.14.0 b/squashfs-root/usr/lib/libSDL2_ttf-2.0.so.0.14.0 new file mode 100755 index 0000000..1eae9ff Binary files /dev/null and b/squashfs-root/usr/lib/libSDL2_ttf-2.0.so.0.14.0 differ diff --git a/squashfs-root/usr/lib/libSDL2_ttf.so b/squashfs-root/usr/lib/libSDL2_ttf.so new file mode 120000 index 0000000..714f93a --- /dev/null +++ b/squashfs-root/usr/lib/libSDL2_ttf.so @@ -0,0 +1 @@ +libSDL2_ttf-2.0.so.0.14.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_gfx.so b/squashfs-root/usr/lib/libSDL_gfx.so new file mode 120000 index 0000000..47dab17 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_gfx.so @@ -0,0 +1 @@ +libSDL_gfx.so.13.9.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_gfx.so.13 b/squashfs-root/usr/lib/libSDL_gfx.so.13 new file mode 120000 index 0000000..47dab17 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_gfx.so.13 @@ -0,0 +1 @@ +libSDL_gfx.so.13.9.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_gfx.so.13.9.1 b/squashfs-root/usr/lib/libSDL_gfx.so.13.9.1 new file mode 100755 index 0000000..f0ec49f Binary files /dev/null and b/squashfs-root/usr/lib/libSDL_gfx.so.13.9.1 differ diff --git a/squashfs-root/usr/lib/libSDL_image-1.2.so.0 b/squashfs-root/usr/lib/libSDL_image-1.2.so.0 new file mode 120000 index 0000000..a2fd474 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_image-1.2.so.0 @@ -0,0 +1 @@ +libSDL_image-1.2.so.0.8.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_image-1.2.so.0.8.4 b/squashfs-root/usr/lib/libSDL_image-1.2.so.0.8.4 new file mode 100755 index 0000000..aa1422f Binary files /dev/null and b/squashfs-root/usr/lib/libSDL_image-1.2.so.0.8.4 differ diff --git a/squashfs-root/usr/lib/libSDL_image.so b/squashfs-root/usr/lib/libSDL_image.so new file mode 120000 index 0000000..a2fd474 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_image.so @@ -0,0 +1 @@ +libSDL_image-1.2.so.0.8.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_mixer-1.2.so.0 b/squashfs-root/usr/lib/libSDL_mixer-1.2.so.0 new file mode 120000 index 0000000..10abbe2 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_mixer-1.2.so.0 @@ -0,0 +1 @@ +libSDL_mixer-1.2.so.0.12.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_mixer-1.2.so.0.12.0 b/squashfs-root/usr/lib/libSDL_mixer-1.2.so.0.12.0 new file mode 100755 index 0000000..0aa8480 Binary files /dev/null and b/squashfs-root/usr/lib/libSDL_mixer-1.2.so.0.12.0 differ diff --git a/squashfs-root/usr/lib/libSDL_mixer-1.2.so.0.12.1 b/squashfs-root/usr/lib/libSDL_mixer-1.2.so.0.12.1 new file mode 100755 index 0000000..ca16d41 Binary files /dev/null and b/squashfs-root/usr/lib/libSDL_mixer-1.2.so.0.12.1 differ diff --git a/squashfs-root/usr/lib/libSDL_mixer.so b/squashfs-root/usr/lib/libSDL_mixer.so new file mode 120000 index 0000000..038856f --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_mixer.so @@ -0,0 +1 @@ +libSDL_mixer-1.2.so.0.12.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_net-1.2.so.0 b/squashfs-root/usr/lib/libSDL_net-1.2.so.0 new file mode 120000 index 0000000..5980f4b --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_net-1.2.so.0 @@ -0,0 +1 @@ +libSDL_net-1.2.so.0.8.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_net-1.2.so.0.8.0 b/squashfs-root/usr/lib/libSDL_net-1.2.so.0.8.0 new file mode 100755 index 0000000..06e7b45 Binary files /dev/null and b/squashfs-root/usr/lib/libSDL_net-1.2.so.0.8.0 differ diff --git a/squashfs-root/usr/lib/libSDL_net.so b/squashfs-root/usr/lib/libSDL_net.so new file mode 120000 index 0000000..5980f4b --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_net.so @@ -0,0 +1 @@ +libSDL_net-1.2.so.0.8.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_sound-1.0.so.1 b/squashfs-root/usr/lib/libSDL_sound-1.0.so.1 new file mode 120000 index 0000000..690a397 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_sound-1.0.so.1 @@ -0,0 +1 @@ +libSDL_sound-1.0.so.1.0.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_sound-1.0.so.1.0.2 b/squashfs-root/usr/lib/libSDL_sound-1.0.so.1.0.2 new file mode 100755 index 0000000..0b7a562 Binary files /dev/null and b/squashfs-root/usr/lib/libSDL_sound-1.0.so.1.0.2 differ diff --git a/squashfs-root/usr/lib/libSDL_sound.so b/squashfs-root/usr/lib/libSDL_sound.so new file mode 120000 index 0000000..690a397 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_sound.so @@ -0,0 +1 @@ +libSDL_sound-1.0.so.1.0.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_ttf-2.0.so.0 b/squashfs-root/usr/lib/libSDL_ttf-2.0.so.0 new file mode 120000 index 0000000..363a832 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_ttf-2.0.so.0 @@ -0,0 +1 @@ +libSDL_ttf-2.0.so.0.10.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSDL_ttf-2.0.so.0.10.1 b/squashfs-root/usr/lib/libSDL_ttf-2.0.so.0.10.1 new file mode 100755 index 0000000..9a249bd Binary files /dev/null and b/squashfs-root/usr/lib/libSDL_ttf-2.0.so.0.10.1 differ diff --git a/squashfs-root/usr/lib/libSDL_ttf.so b/squashfs-root/usr/lib/libSDL_ttf.so new file mode 120000 index 0000000..363a832 --- /dev/null +++ b/squashfs-root/usr/lib/libSDL_ttf.so @@ -0,0 +1 @@ +libSDL_ttf-2.0.so.0.10.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSM.so b/squashfs-root/usr/lib/libSM.so new file mode 120000 index 0000000..49d5d95 --- /dev/null +++ b/squashfs-root/usr/lib/libSM.so @@ -0,0 +1 @@ +libSM.so.6.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSM.so.6 b/squashfs-root/usr/lib/libSM.so.6 new file mode 120000 index 0000000..49d5d95 --- /dev/null +++ b/squashfs-root/usr/lib/libSM.so.6 @@ -0,0 +1 @@ +libSM.so.6.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libSM.so.6.0.1 b/squashfs-root/usr/lib/libSM.so.6.0.1 new file mode 100755 index 0000000..ad256ff Binary files /dev/null and b/squashfs-root/usr/lib/libSM.so.6.0.1 differ diff --git a/squashfs-root/usr/lib/libX11-xcb.so b/squashfs-root/usr/lib/libX11-xcb.so new file mode 120000 index 0000000..56afc83 --- /dev/null +++ b/squashfs-root/usr/lib/libX11-xcb.so @@ -0,0 +1 @@ +libX11-xcb.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libX11-xcb.so.1 b/squashfs-root/usr/lib/libX11-xcb.so.1 new file mode 120000 index 0000000..56afc83 --- /dev/null +++ b/squashfs-root/usr/lib/libX11-xcb.so.1 @@ -0,0 +1 @@ +libX11-xcb.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libX11-xcb.so.1.0.0 b/squashfs-root/usr/lib/libX11-xcb.so.1.0.0 new file mode 100755 index 0000000..431d6e7 Binary files /dev/null and b/squashfs-root/usr/lib/libX11-xcb.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libX11.so b/squashfs-root/usr/lib/libX11.so new file mode 120000 index 0000000..3877db7 --- /dev/null +++ b/squashfs-root/usr/lib/libX11.so @@ -0,0 +1 @@ +libX11.so.6.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libX11.so.6 b/squashfs-root/usr/lib/libX11.so.6 new file mode 120000 index 0000000..3877db7 --- /dev/null +++ b/squashfs-root/usr/lib/libX11.so.6 @@ -0,0 +1 @@ +libX11.so.6.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libX11.so.6.3.0 b/squashfs-root/usr/lib/libX11.so.6.3.0 new file mode 100755 index 0000000..4a3be2a Binary files /dev/null and b/squashfs-root/usr/lib/libX11.so.6.3.0 differ diff --git a/squashfs-root/usr/lib/libXRes.so b/squashfs-root/usr/lib/libXRes.so new file mode 120000 index 0000000..812f1f1 --- /dev/null +++ b/squashfs-root/usr/lib/libXRes.so @@ -0,0 +1 @@ +libXRes.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXRes.so.1 b/squashfs-root/usr/lib/libXRes.so.1 new file mode 120000 index 0000000..812f1f1 --- /dev/null +++ b/squashfs-root/usr/lib/libXRes.so.1 @@ -0,0 +1 @@ +libXRes.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXRes.so.1.0.0 b/squashfs-root/usr/lib/libXRes.so.1.0.0 new file mode 100755 index 0000000..3a6d177 Binary files /dev/null and b/squashfs-root/usr/lib/libXRes.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libXau.so b/squashfs-root/usr/lib/libXau.so new file mode 120000 index 0000000..339636b --- /dev/null +++ b/squashfs-root/usr/lib/libXau.so @@ -0,0 +1 @@ +libXau.so.6.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXau.so.6 b/squashfs-root/usr/lib/libXau.so.6 new file mode 120000 index 0000000..339636b --- /dev/null +++ b/squashfs-root/usr/lib/libXau.so.6 @@ -0,0 +1 @@ +libXau.so.6.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXau.so.6.0.0 b/squashfs-root/usr/lib/libXau.so.6.0.0 new file mode 100755 index 0000000..4e5a3eb Binary files /dev/null and b/squashfs-root/usr/lib/libXau.so.6.0.0 differ diff --git a/squashfs-root/usr/lib/libXcomposite.so b/squashfs-root/usr/lib/libXcomposite.so new file mode 120000 index 0000000..6169164 --- /dev/null +++ b/squashfs-root/usr/lib/libXcomposite.so @@ -0,0 +1 @@ +libXcomposite.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXcomposite.so.1 b/squashfs-root/usr/lib/libXcomposite.so.1 new file mode 120000 index 0000000..6169164 --- /dev/null +++ b/squashfs-root/usr/lib/libXcomposite.so.1 @@ -0,0 +1 @@ +libXcomposite.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXcomposite.so.1.0.0 b/squashfs-root/usr/lib/libXcomposite.so.1.0.0 new file mode 100755 index 0000000..d5736b0 Binary files /dev/null and b/squashfs-root/usr/lib/libXcomposite.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libXcursor.so b/squashfs-root/usr/lib/libXcursor.so new file mode 120000 index 0000000..266c2ec --- /dev/null +++ b/squashfs-root/usr/lib/libXcursor.so @@ -0,0 +1 @@ +libXcursor.so.1.0.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXcursor.so.1 b/squashfs-root/usr/lib/libXcursor.so.1 new file mode 120000 index 0000000..266c2ec --- /dev/null +++ b/squashfs-root/usr/lib/libXcursor.so.1 @@ -0,0 +1 @@ +libXcursor.so.1.0.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXcursor.so.1.0.2 b/squashfs-root/usr/lib/libXcursor.so.1.0.2 new file mode 100755 index 0000000..3307424 Binary files /dev/null and b/squashfs-root/usr/lib/libXcursor.so.1.0.2 differ diff --git a/squashfs-root/usr/lib/libXdamage.so b/squashfs-root/usr/lib/libXdamage.so new file mode 120000 index 0000000..a61d91e --- /dev/null +++ b/squashfs-root/usr/lib/libXdamage.so @@ -0,0 +1 @@ +libXdamage.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXdamage.so.1 b/squashfs-root/usr/lib/libXdamage.so.1 new file mode 120000 index 0000000..a61d91e --- /dev/null +++ b/squashfs-root/usr/lib/libXdamage.so.1 @@ -0,0 +1 @@ +libXdamage.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXdamage.so.1.1.0 b/squashfs-root/usr/lib/libXdamage.so.1.1.0 new file mode 100755 index 0000000..deda26c Binary files /dev/null and b/squashfs-root/usr/lib/libXdamage.so.1.1.0 differ diff --git a/squashfs-root/usr/lib/libXdmcp.so b/squashfs-root/usr/lib/libXdmcp.so new file mode 120000 index 0000000..bbf4646 --- /dev/null +++ b/squashfs-root/usr/lib/libXdmcp.so @@ -0,0 +1 @@ +libXdmcp.so.6.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXdmcp.so.6 b/squashfs-root/usr/lib/libXdmcp.so.6 new file mode 120000 index 0000000..bbf4646 --- /dev/null +++ b/squashfs-root/usr/lib/libXdmcp.so.6 @@ -0,0 +1 @@ +libXdmcp.so.6.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXdmcp.so.6.0.0 b/squashfs-root/usr/lib/libXdmcp.so.6.0.0 new file mode 100755 index 0000000..b581a09 Binary files /dev/null and b/squashfs-root/usr/lib/libXdmcp.so.6.0.0 differ diff --git a/squashfs-root/usr/lib/libXext.so b/squashfs-root/usr/lib/libXext.so new file mode 120000 index 0000000..465f805 --- /dev/null +++ b/squashfs-root/usr/lib/libXext.so @@ -0,0 +1 @@ +libXext.so.6.4.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXext.so.6 b/squashfs-root/usr/lib/libXext.so.6 new file mode 120000 index 0000000..465f805 --- /dev/null +++ b/squashfs-root/usr/lib/libXext.so.6 @@ -0,0 +1 @@ +libXext.so.6.4.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXext.so.6.4.0 b/squashfs-root/usr/lib/libXext.so.6.4.0 new file mode 100755 index 0000000..544388d Binary files /dev/null and b/squashfs-root/usr/lib/libXext.so.6.4.0 differ diff --git a/squashfs-root/usr/lib/libXfixes.so b/squashfs-root/usr/lib/libXfixes.so new file mode 120000 index 0000000..927da99 --- /dev/null +++ b/squashfs-root/usr/lib/libXfixes.so @@ -0,0 +1 @@ +libXfixes.so.3.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXfixes.so.3 b/squashfs-root/usr/lib/libXfixes.so.3 new file mode 120000 index 0000000..927da99 --- /dev/null +++ b/squashfs-root/usr/lib/libXfixes.so.3 @@ -0,0 +1 @@ +libXfixes.so.3.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXfixes.so.3.1.0 b/squashfs-root/usr/lib/libXfixes.so.3.1.0 new file mode 100755 index 0000000..b8d200a Binary files /dev/null and b/squashfs-root/usr/lib/libXfixes.so.3.1.0 differ diff --git a/squashfs-root/usr/lib/libXfont2.so b/squashfs-root/usr/lib/libXfont2.so new file mode 120000 index 0000000..60b9e1e --- /dev/null +++ b/squashfs-root/usr/lib/libXfont2.so @@ -0,0 +1 @@ +libXfont2.so.2.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXfont2.so.2 b/squashfs-root/usr/lib/libXfont2.so.2 new file mode 120000 index 0000000..60b9e1e --- /dev/null +++ b/squashfs-root/usr/lib/libXfont2.so.2 @@ -0,0 +1 @@ +libXfont2.so.2.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXfont2.so.2.0.0 b/squashfs-root/usr/lib/libXfont2.so.2.0.0 new file mode 100755 index 0000000..1a2cd75 Binary files /dev/null and b/squashfs-root/usr/lib/libXfont2.so.2.0.0 differ diff --git a/squashfs-root/usr/lib/libXft.so b/squashfs-root/usr/lib/libXft.so new file mode 120000 index 0000000..a1aeb8c --- /dev/null +++ b/squashfs-root/usr/lib/libXft.so @@ -0,0 +1 @@ +libXft.so.2.3.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXft.so.2 b/squashfs-root/usr/lib/libXft.so.2 new file mode 120000 index 0000000..a1aeb8c --- /dev/null +++ b/squashfs-root/usr/lib/libXft.so.2 @@ -0,0 +1 @@ +libXft.so.2.3.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXft.so.2.3.2 b/squashfs-root/usr/lib/libXft.so.2.3.2 new file mode 100755 index 0000000..dc4e4c9 Binary files /dev/null and b/squashfs-root/usr/lib/libXft.so.2.3.2 differ diff --git a/squashfs-root/usr/lib/libXi.so b/squashfs-root/usr/lib/libXi.so new file mode 120000 index 0000000..592c8f9 --- /dev/null +++ b/squashfs-root/usr/lib/libXi.so @@ -0,0 +1 @@ +libXi.so.6.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXi.so.6 b/squashfs-root/usr/lib/libXi.so.6 new file mode 120000 index 0000000..592c8f9 --- /dev/null +++ b/squashfs-root/usr/lib/libXi.so.6 @@ -0,0 +1 @@ +libXi.so.6.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXi.so.6.1.0 b/squashfs-root/usr/lib/libXi.so.6.1.0 new file mode 100755 index 0000000..1d8a2ab Binary files /dev/null and b/squashfs-root/usr/lib/libXi.so.6.1.0 differ diff --git a/squashfs-root/usr/lib/libXinerama.so b/squashfs-root/usr/lib/libXinerama.so new file mode 120000 index 0000000..307fcce --- /dev/null +++ b/squashfs-root/usr/lib/libXinerama.so @@ -0,0 +1 @@ +libXinerama.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXinerama.so.1 b/squashfs-root/usr/lib/libXinerama.so.1 new file mode 120000 index 0000000..307fcce --- /dev/null +++ b/squashfs-root/usr/lib/libXinerama.so.1 @@ -0,0 +1 @@ +libXinerama.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXinerama.so.1.0.0 b/squashfs-root/usr/lib/libXinerama.so.1.0.0 new file mode 100755 index 0000000..7c33a73 Binary files /dev/null and b/squashfs-root/usr/lib/libXinerama.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libXmu.so b/squashfs-root/usr/lib/libXmu.so new file mode 120000 index 0000000..c0c61e5 --- /dev/null +++ b/squashfs-root/usr/lib/libXmu.so @@ -0,0 +1 @@ +libXmu.so.6.2.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXmu.so.6 b/squashfs-root/usr/lib/libXmu.so.6 new file mode 120000 index 0000000..c0c61e5 --- /dev/null +++ b/squashfs-root/usr/lib/libXmu.so.6 @@ -0,0 +1 @@ +libXmu.so.6.2.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXmu.so.6.2.0 b/squashfs-root/usr/lib/libXmu.so.6.2.0 new file mode 100755 index 0000000..77f4e53 Binary files /dev/null and b/squashfs-root/usr/lib/libXmu.so.6.2.0 differ diff --git a/squashfs-root/usr/lib/libXmuu.so b/squashfs-root/usr/lib/libXmuu.so new file mode 120000 index 0000000..3f19d30 --- /dev/null +++ b/squashfs-root/usr/lib/libXmuu.so @@ -0,0 +1 @@ +libXmuu.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXmuu.so.1 b/squashfs-root/usr/lib/libXmuu.so.1 new file mode 120000 index 0000000..3f19d30 --- /dev/null +++ b/squashfs-root/usr/lib/libXmuu.so.1 @@ -0,0 +1 @@ +libXmuu.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXmuu.so.1.0.0 b/squashfs-root/usr/lib/libXmuu.so.1.0.0 new file mode 100755 index 0000000..3ab86d4 Binary files /dev/null and b/squashfs-root/usr/lib/libXmuu.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libXrandr.so b/squashfs-root/usr/lib/libXrandr.so new file mode 120000 index 0000000..9591d0d --- /dev/null +++ b/squashfs-root/usr/lib/libXrandr.so @@ -0,0 +1 @@ +libXrandr.so.2.2.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXrandr.so.2 b/squashfs-root/usr/lib/libXrandr.so.2 new file mode 120000 index 0000000..9591d0d --- /dev/null +++ b/squashfs-root/usr/lib/libXrandr.so.2 @@ -0,0 +1 @@ +libXrandr.so.2.2.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXrandr.so.2.2.0 b/squashfs-root/usr/lib/libXrandr.so.2.2.0 new file mode 100755 index 0000000..27c6860 Binary files /dev/null and b/squashfs-root/usr/lib/libXrandr.so.2.2.0 differ diff --git a/squashfs-root/usr/lib/libXrender.so b/squashfs-root/usr/lib/libXrender.so new file mode 120000 index 0000000..e49c718 --- /dev/null +++ b/squashfs-root/usr/lib/libXrender.so @@ -0,0 +1 @@ +libXrender.so.1.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXrender.so.1 b/squashfs-root/usr/lib/libXrender.so.1 new file mode 120000 index 0000000..e49c718 --- /dev/null +++ b/squashfs-root/usr/lib/libXrender.so.1 @@ -0,0 +1 @@ +libXrender.so.1.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXrender.so.1.3.0 b/squashfs-root/usr/lib/libXrender.so.1.3.0 new file mode 100755 index 0000000..be325be Binary files /dev/null and b/squashfs-root/usr/lib/libXrender.so.1.3.0 differ diff --git a/squashfs-root/usr/lib/libXss.so b/squashfs-root/usr/lib/libXss.so new file mode 120000 index 0000000..be9b257 --- /dev/null +++ b/squashfs-root/usr/lib/libXss.so @@ -0,0 +1 @@ +libXss.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXss.so.1 b/squashfs-root/usr/lib/libXss.so.1 new file mode 120000 index 0000000..be9b257 --- /dev/null +++ b/squashfs-root/usr/lib/libXss.so.1 @@ -0,0 +1 @@ +libXss.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXss.so.1.0.0 b/squashfs-root/usr/lib/libXss.so.1.0.0 new file mode 100755 index 0000000..7664dc5 Binary files /dev/null and b/squashfs-root/usr/lib/libXss.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libXt.so b/squashfs-root/usr/lib/libXt.so new file mode 120000 index 0000000..be4f487 --- /dev/null +++ b/squashfs-root/usr/lib/libXt.so @@ -0,0 +1 @@ +libXt.so.6.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXt.so.6 b/squashfs-root/usr/lib/libXt.so.6 new file mode 120000 index 0000000..be4f487 --- /dev/null +++ b/squashfs-root/usr/lib/libXt.so.6 @@ -0,0 +1 @@ +libXt.so.6.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXt.so.6.0.0 b/squashfs-root/usr/lib/libXt.so.6.0.0 new file mode 100755 index 0000000..a7648b4 Binary files /dev/null and b/squashfs-root/usr/lib/libXt.so.6.0.0 differ diff --git a/squashfs-root/usr/lib/libXtst.so b/squashfs-root/usr/lib/libXtst.so new file mode 120000 index 0000000..050c5c7 --- /dev/null +++ b/squashfs-root/usr/lib/libXtst.so @@ -0,0 +1 @@ +libXtst.so.6.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXtst.so.6 b/squashfs-root/usr/lib/libXtst.so.6 new file mode 120000 index 0000000..050c5c7 --- /dev/null +++ b/squashfs-root/usr/lib/libXtst.so.6 @@ -0,0 +1 @@ +libXtst.so.6.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXtst.so.6.1.0 b/squashfs-root/usr/lib/libXtst.so.6.1.0 new file mode 100755 index 0000000..6c91007 Binary files /dev/null and b/squashfs-root/usr/lib/libXtst.so.6.1.0 differ diff --git a/squashfs-root/usr/lib/libXv.so b/squashfs-root/usr/lib/libXv.so new file mode 120000 index 0000000..1a3904e --- /dev/null +++ b/squashfs-root/usr/lib/libXv.so @@ -0,0 +1 @@ +libXv.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXv.so.1 b/squashfs-root/usr/lib/libXv.so.1 new file mode 120000 index 0000000..1a3904e --- /dev/null +++ b/squashfs-root/usr/lib/libXv.so.1 @@ -0,0 +1 @@ +libXv.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXv.so.1.0.0 b/squashfs-root/usr/lib/libXv.so.1.0.0 new file mode 100755 index 0000000..0df3544 Binary files /dev/null and b/squashfs-root/usr/lib/libXv.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libXxf86vm.so b/squashfs-root/usr/lib/libXxf86vm.so new file mode 120000 index 0000000..e991ff9 --- /dev/null +++ b/squashfs-root/usr/lib/libXxf86vm.so @@ -0,0 +1 @@ +libXxf86vm.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXxf86vm.so.1 b/squashfs-root/usr/lib/libXxf86vm.so.1 new file mode 120000 index 0000000..e991ff9 --- /dev/null +++ b/squashfs-root/usr/lib/libXxf86vm.so.1 @@ -0,0 +1 @@ +libXxf86vm.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libXxf86vm.so.1.0.0 b/squashfs-root/usr/lib/libXxf86vm.so.1.0.0 new file mode 100755 index 0000000..0a135f0 Binary files /dev/null and b/squashfs-root/usr/lib/libXxf86vm.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libao.so b/squashfs-root/usr/lib/libao.so new file mode 120000 index 0000000..1752638 --- /dev/null +++ b/squashfs-root/usr/lib/libao.so @@ -0,0 +1 @@ +libao.so.4.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libao.so.4 b/squashfs-root/usr/lib/libao.so.4 new file mode 120000 index 0000000..1752638 --- /dev/null +++ b/squashfs-root/usr/lib/libao.so.4 @@ -0,0 +1 @@ +libao.so.4.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libao.so.4.1.0 b/squashfs-root/usr/lib/libao.so.4.1.0 new file mode 100755 index 0000000..f168587 Binary files /dev/null and b/squashfs-root/usr/lib/libao.so.4.1.0 differ diff --git a/squashfs-root/usr/lib/libasm-0.169.so b/squashfs-root/usr/lib/libasm-0.169.so new file mode 100755 index 0000000..5f04c5a Binary files /dev/null and b/squashfs-root/usr/lib/libasm-0.169.so differ diff --git a/squashfs-root/usr/lib/libasm.so b/squashfs-root/usr/lib/libasm.so new file mode 120000 index 0000000..25710cd --- /dev/null +++ b/squashfs-root/usr/lib/libasm.so @@ -0,0 +1 @@ +libasm.so.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libasm.so.1 b/squashfs-root/usr/lib/libasm.so.1 new file mode 120000 index 0000000..0dff732 --- /dev/null +++ b/squashfs-root/usr/lib/libasm.so.1 @@ -0,0 +1 @@ +libasm-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/libasound.so b/squashfs-root/usr/lib/libasound.so new file mode 120000 index 0000000..42dfc99 --- /dev/null +++ b/squashfs-root/usr/lib/libasound.so @@ -0,0 +1 @@ +libasound.so.2.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libasound.so.2 b/squashfs-root/usr/lib/libasound.so.2 new file mode 120000 index 0000000..42dfc99 --- /dev/null +++ b/squashfs-root/usr/lib/libasound.so.2 @@ -0,0 +1 @@ +libasound.so.2.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libasound.so.2.0.0 b/squashfs-root/usr/lib/libasound.so.2.0.0 new file mode 100755 index 0000000..0dbc17e Binary files /dev/null and b/squashfs-root/usr/lib/libasound.so.2.0.0 differ diff --git a/squashfs-root/usr/lib/libass.so b/squashfs-root/usr/lib/libass.so new file mode 120000 index 0000000..02a6511 --- /dev/null +++ b/squashfs-root/usr/lib/libass.so @@ -0,0 +1 @@ +libass.so.9.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libass.so.9 b/squashfs-root/usr/lib/libass.so.9 new file mode 120000 index 0000000..02a6511 --- /dev/null +++ b/squashfs-root/usr/lib/libass.so.9 @@ -0,0 +1 @@ +libass.so.9.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libass.so.9.0.1 b/squashfs-root/usr/lib/libass.so.9.0.1 new file mode 100755 index 0000000..2e336ea Binary files /dev/null and b/squashfs-root/usr/lib/libass.so.9.0.1 differ diff --git a/squashfs-root/usr/lib/libbgdrtm.so b/squashfs-root/usr/lib/libbgdrtm.so new file mode 100755 index 0000000..d0b7adf Binary files /dev/null and b/squashfs-root/usr/lib/libbgdrtm.so differ diff --git a/squashfs-root/usr/lib/libbgload.so b/squashfs-root/usr/lib/libbgload.so new file mode 100755 index 0000000..31b0c2e Binary files /dev/null and b/squashfs-root/usr/lib/libbgload.so differ diff --git a/squashfs-root/usr/lib/libblit.so b/squashfs-root/usr/lib/libblit.so new file mode 100755 index 0000000..628570a Binary files /dev/null and b/squashfs-root/usr/lib/libblit.so differ diff --git a/squashfs-root/usr/lib/libblkid.so b/squashfs-root/usr/lib/libblkid.so new file mode 120000 index 0000000..b567a5e --- /dev/null +++ b/squashfs-root/usr/lib/libblkid.so @@ -0,0 +1 @@ +../../lib/libblkid.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libbz2.so b/squashfs-root/usr/lib/libbz2.so new file mode 120000 index 0000000..6d4aa98 --- /dev/null +++ b/squashfs-root/usr/lib/libbz2.so @@ -0,0 +1 @@ +libbz2.so.1.0.6 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libbz2.so.1.0 b/squashfs-root/usr/lib/libbz2.so.1.0 new file mode 120000 index 0000000..6d4aa98 --- /dev/null +++ b/squashfs-root/usr/lib/libbz2.so.1.0 @@ -0,0 +1 @@ +libbz2.so.1.0.6 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libbz2.so.1.0.6 b/squashfs-root/usr/lib/libbz2.so.1.0.6 new file mode 100755 index 0000000..a0fa038 Binary files /dev/null and b/squashfs-root/usr/lib/libbz2.so.1.0.6 differ diff --git a/squashfs-root/usr/lib/libcairo-gobject.so b/squashfs-root/usr/lib/libcairo-gobject.so new file mode 120000 index 0000000..929e637 --- /dev/null +++ b/squashfs-root/usr/lib/libcairo-gobject.so @@ -0,0 +1 @@ +libcairo-gobject.so.2.11400.10 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libcairo-gobject.so.2 b/squashfs-root/usr/lib/libcairo-gobject.so.2 new file mode 120000 index 0000000..929e637 --- /dev/null +++ b/squashfs-root/usr/lib/libcairo-gobject.so.2 @@ -0,0 +1 @@ +libcairo-gobject.so.2.11400.10 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libcairo-gobject.so.2.11400.10 b/squashfs-root/usr/lib/libcairo-gobject.so.2.11400.10 new file mode 100755 index 0000000..cf6f6ca Binary files /dev/null and b/squashfs-root/usr/lib/libcairo-gobject.so.2.11400.10 differ diff --git a/squashfs-root/usr/lib/libcairo.so b/squashfs-root/usr/lib/libcairo.so new file mode 120000 index 0000000..fe2adf3 --- /dev/null +++ b/squashfs-root/usr/lib/libcairo.so @@ -0,0 +1 @@ +libcairo.so.2.11400.10 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libcairo.so.2 b/squashfs-root/usr/lib/libcairo.so.2 new file mode 120000 index 0000000..fe2adf3 --- /dev/null +++ b/squashfs-root/usr/lib/libcairo.so.2 @@ -0,0 +1 @@ +libcairo.so.2.11400.10 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libcairo.so.2.11400.10 b/squashfs-root/usr/lib/libcairo.so.2.11400.10 new file mode 100755 index 0000000..07645a5 Binary files /dev/null and b/squashfs-root/usr/lib/libcairo.so.2.11400.10 differ diff --git a/squashfs-root/usr/lib/libcharset.so b/squashfs-root/usr/lib/libcharset.so new file mode 120000 index 0000000..6570913 --- /dev/null +++ b/squashfs-root/usr/lib/libcharset.so @@ -0,0 +1 @@ +libcharset.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libcharset.so.1 b/squashfs-root/usr/lib/libcharset.so.1 new file mode 120000 index 0000000..6570913 --- /dev/null +++ b/squashfs-root/usr/lib/libcharset.so.1 @@ -0,0 +1 @@ +libcharset.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libcharset.so.1.0.0 b/squashfs-root/usr/lib/libcharset.so.1.0.0 new file mode 100755 index 0000000..b44cc56 Binary files /dev/null and b/squashfs-root/usr/lib/libcharset.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libconfuse.so b/squashfs-root/usr/lib/libconfuse.so new file mode 120000 index 0000000..bae3485 --- /dev/null +++ b/squashfs-root/usr/lib/libconfuse.so @@ -0,0 +1 @@ +libconfuse.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libconfuse.so.1 b/squashfs-root/usr/lib/libconfuse.so.1 new file mode 120000 index 0000000..bae3485 --- /dev/null +++ b/squashfs-root/usr/lib/libconfuse.so.1 @@ -0,0 +1 @@ +libconfuse.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libconfuse.so.1.1.0 b/squashfs-root/usr/lib/libconfuse.so.1.1.0 new file mode 100755 index 0000000..b87653d Binary files /dev/null and b/squashfs-root/usr/lib/libconfuse.so.1.1.0 differ diff --git a/squashfs-root/usr/lib/libcurl.so b/squashfs-root/usr/lib/libcurl.so new file mode 120000 index 0000000..a5e8ad8 --- /dev/null +++ b/squashfs-root/usr/lib/libcurl.so @@ -0,0 +1 @@ +libcurl.so.4.5.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libcurl.so.4 b/squashfs-root/usr/lib/libcurl.so.4 new file mode 120000 index 0000000..a5e8ad8 --- /dev/null +++ b/squashfs-root/usr/lib/libcurl.so.4 @@ -0,0 +1 @@ +libcurl.so.4.5.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libcurl.so.4.5.0 b/squashfs-root/usr/lib/libcurl.so.4.5.0 new file mode 100755 index 0000000..1bc66e5 Binary files /dev/null and b/squashfs-root/usr/lib/libcurl.so.4.5.0 differ diff --git a/squashfs-root/usr/lib/libcurses.so b/squashfs-root/usr/lib/libcurses.so new file mode 120000 index 0000000..11c564f --- /dev/null +++ b/squashfs-root/usr/lib/libcurses.so @@ -0,0 +1 @@ +libncurses.so.6.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libdbus-1.so b/squashfs-root/usr/lib/libdbus-1.so new file mode 120000 index 0000000..55154fb --- /dev/null +++ b/squashfs-root/usr/lib/libdbus-1.so @@ -0,0 +1 @@ +libdbus-1.so.3.19.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libdbus-1.so.3 b/squashfs-root/usr/lib/libdbus-1.so.3 new file mode 120000 index 0000000..55154fb --- /dev/null +++ b/squashfs-root/usr/lib/libdbus-1.so.3 @@ -0,0 +1 @@ +libdbus-1.so.3.19.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libdbus-1.so.3.19.4 b/squashfs-root/usr/lib/libdbus-1.so.3.19.4 new file mode 100755 index 0000000..b732f54 Binary files /dev/null and b/squashfs-root/usr/lib/libdbus-1.so.3.19.4 differ diff --git a/squashfs-root/usr/lib/libdes.so b/squashfs-root/usr/lib/libdes.so new file mode 100755 index 0000000..41d0689 Binary files /dev/null and b/squashfs-root/usr/lib/libdes.so differ diff --git a/squashfs-root/usr/lib/libdraw.so b/squashfs-root/usr/lib/libdraw.so new file mode 100755 index 0000000..d38bc2f Binary files /dev/null and b/squashfs-root/usr/lib/libdraw.so differ diff --git a/squashfs-root/usr/lib/libdrm.so b/squashfs-root/usr/lib/libdrm.so new file mode 120000 index 0000000..6df23e6 --- /dev/null +++ b/squashfs-root/usr/lib/libdrm.so @@ -0,0 +1 @@ +libdrm.so.2.4.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libdrm.so.2 b/squashfs-root/usr/lib/libdrm.so.2 new file mode 120000 index 0000000..6df23e6 --- /dev/null +++ b/squashfs-root/usr/lib/libdrm.so.2 @@ -0,0 +1 @@ +libdrm.so.2.4.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libdrm.so.2.4.0 b/squashfs-root/usr/lib/libdrm.so.2.4.0 new file mode 100755 index 0000000..c804f86 Binary files /dev/null and b/squashfs-root/usr/lib/libdrm.so.2.4.0 differ diff --git a/squashfs-root/usr/lib/libdw-0.169.so b/squashfs-root/usr/lib/libdw-0.169.so new file mode 100755 index 0000000..9cfb5de Binary files /dev/null and b/squashfs-root/usr/lib/libdw-0.169.so differ diff --git a/squashfs-root/usr/lib/libdw.so b/squashfs-root/usr/lib/libdw.so new file mode 120000 index 0000000..4ff68e8 --- /dev/null +++ b/squashfs-root/usr/lib/libdw.so @@ -0,0 +1 @@ +libdw.so.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libdw.so.1 b/squashfs-root/usr/lib/libdw.so.1 new file mode 120000 index 0000000..61ce781 --- /dev/null +++ b/squashfs-root/usr/lib/libdw.so.1 @@ -0,0 +1 @@ +libdw-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/libelf-0.169.so b/squashfs-root/usr/lib/libelf-0.169.so new file mode 100755 index 0000000..4b58074 Binary files /dev/null and b/squashfs-root/usr/lib/libelf-0.169.so differ diff --git a/squashfs-root/usr/lib/libelf.so b/squashfs-root/usr/lib/libelf.so new file mode 120000 index 0000000..92cba5b --- /dev/null +++ b/squashfs-root/usr/lib/libelf.so @@ -0,0 +1 @@ +libelf.so.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libelf.so.1 b/squashfs-root/usr/lib/libelf.so.1 new file mode 120000 index 0000000..96f1a11 --- /dev/null +++ b/squashfs-root/usr/lib/libelf.so.1 @@ -0,0 +1 @@ +libelf-0.169.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/libexpat.so b/squashfs-root/usr/lib/libexpat.so new file mode 120000 index 0000000..11bb97a --- /dev/null +++ b/squashfs-root/usr/lib/libexpat.so @@ -0,0 +1 @@ +libexpat.so.1.6.7 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libexpat.so.1 b/squashfs-root/usr/lib/libexpat.so.1 new file mode 120000 index 0000000..11bb97a --- /dev/null +++ b/squashfs-root/usr/lib/libexpat.so.1 @@ -0,0 +1 @@ +libexpat.so.1.6.7 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libexpat.so.1.6.7 b/squashfs-root/usr/lib/libexpat.so.1.6.7 new file mode 100755 index 0000000..d1b4e71 Binary files /dev/null and b/squashfs-root/usr/lib/libexpat.so.1.6.7 differ diff --git a/squashfs-root/usr/lib/libffi.so b/squashfs-root/usr/lib/libffi.so new file mode 120000 index 0000000..c6cc6fd --- /dev/null +++ b/squashfs-root/usr/lib/libffi.so @@ -0,0 +1 @@ +libffi.so.6.0.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libffi.so.6 b/squashfs-root/usr/lib/libffi.so.6 new file mode 120000 index 0000000..c6cc6fd --- /dev/null +++ b/squashfs-root/usr/lib/libffi.so.6 @@ -0,0 +1 @@ +libffi.so.6.0.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libffi.so.6.0.4 b/squashfs-root/usr/lib/libffi.so.6.0.4 new file mode 100755 index 0000000..d46e6fd Binary files /dev/null and b/squashfs-root/usr/lib/libffi.so.6.0.4 differ diff --git a/squashfs-root/usr/lib/libfont.so b/squashfs-root/usr/lib/libfont.so new file mode 100755 index 0000000..580617f Binary files /dev/null and b/squashfs-root/usr/lib/libfont.so differ diff --git a/squashfs-root/usr/lib/libfontconfig.so b/squashfs-root/usr/lib/libfontconfig.so new file mode 120000 index 0000000..c5de82c --- /dev/null +++ b/squashfs-root/usr/lib/libfontconfig.so @@ -0,0 +1 @@ +libfontconfig.so.1.9.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libfontconfig.so.1 b/squashfs-root/usr/lib/libfontconfig.so.1 new file mode 120000 index 0000000..c5de82c --- /dev/null +++ b/squashfs-root/usr/lib/libfontconfig.so.1 @@ -0,0 +1 @@ +libfontconfig.so.1.9.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libfontconfig.so.1.9.4 b/squashfs-root/usr/lib/libfontconfig.so.1.9.4 new file mode 100755 index 0000000..b86fecc Binary files /dev/null and b/squashfs-root/usr/lib/libfontconfig.so.1.9.4 differ diff --git a/squashfs-root/usr/lib/libfontenc.so b/squashfs-root/usr/lib/libfontenc.so new file mode 120000 index 0000000..518adaf --- /dev/null +++ b/squashfs-root/usr/lib/libfontenc.so @@ -0,0 +1 @@ +libfontenc.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libfontenc.so.1 b/squashfs-root/usr/lib/libfontenc.so.1 new file mode 120000 index 0000000..518adaf --- /dev/null +++ b/squashfs-root/usr/lib/libfontenc.so.1 @@ -0,0 +1 @@ +libfontenc.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libfontenc.so.1.0.0 b/squashfs-root/usr/lib/libfontenc.so.1.0.0 new file mode 100755 index 0000000..fd90ede Binary files /dev/null and b/squashfs-root/usr/lib/libfontenc.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libform.so b/squashfs-root/usr/lib/libform.so new file mode 120000 index 0000000..ff7cadc --- /dev/null +++ b/squashfs-root/usr/lib/libform.so @@ -0,0 +1 @@ +libform.so.6 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libform.so.6 b/squashfs-root/usr/lib/libform.so.6 new file mode 120000 index 0000000..3ba5bbc --- /dev/null +++ b/squashfs-root/usr/lib/libform.so.6 @@ -0,0 +1 @@ +libform.so.6.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libform.so.6.0 b/squashfs-root/usr/lib/libform.so.6.0 new file mode 100755 index 0000000..f54597c Binary files /dev/null and b/squashfs-root/usr/lib/libform.so.6.0 differ diff --git a/squashfs-root/usr/lib/libfreetype.so b/squashfs-root/usr/lib/libfreetype.so new file mode 120000 index 0000000..e950703 --- /dev/null +++ b/squashfs-root/usr/lib/libfreetype.so @@ -0,0 +1 @@ +libfreetype.so.6.15.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libfreetype.so.6 b/squashfs-root/usr/lib/libfreetype.so.6 new file mode 120000 index 0000000..e950703 --- /dev/null +++ b/squashfs-root/usr/lib/libfreetype.so.6 @@ -0,0 +1 @@ +libfreetype.so.6.15.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libfreetype.so.6.15.0 b/squashfs-root/usr/lib/libfreetype.so.6.15.0 new file mode 100755 index 0000000..02985b0 Binary files /dev/null and b/squashfs-root/usr/lib/libfreetype.so.6.15.0 differ diff --git a/squashfs-root/usr/lib/libfribidi.so b/squashfs-root/usr/lib/libfribidi.so new file mode 120000 index 0000000..60a16fb --- /dev/null +++ b/squashfs-root/usr/lib/libfribidi.so @@ -0,0 +1 @@ +libfribidi.so.0.3.6 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libfribidi.so.0 b/squashfs-root/usr/lib/libfribidi.so.0 new file mode 120000 index 0000000..60a16fb --- /dev/null +++ b/squashfs-root/usr/lib/libfribidi.so.0 @@ -0,0 +1 @@ +libfribidi.so.0.3.6 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libfribidi.so.0.3.6 b/squashfs-root/usr/lib/libfribidi.so.0.3.6 new file mode 100755 index 0000000..900634f Binary files /dev/null and b/squashfs-root/usr/lib/libfribidi.so.0.3.6 differ diff --git a/squashfs-root/usr/lib/libgbm.so b/squashfs-root/usr/lib/libgbm.so new file mode 120000 index 0000000..1164cff --- /dev/null +++ b/squashfs-root/usr/lib/libgbm.so @@ -0,0 +1 @@ +libgbm.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgbm.so.1 b/squashfs-root/usr/lib/libgbm.so.1 new file mode 120000 index 0000000..1164cff --- /dev/null +++ b/squashfs-root/usr/lib/libgbm.so.1 @@ -0,0 +1 @@ +libgbm.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgbm.so.1.0.0 b/squashfs-root/usr/lib/libgbm.so.1.0.0 new file mode 100755 index 0000000..4c7ede7 Binary files /dev/null and b/squashfs-root/usr/lib/libgbm.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libgif.so b/squashfs-root/usr/lib/libgif.so new file mode 120000 index 0000000..cefb10d --- /dev/null +++ b/squashfs-root/usr/lib/libgif.so @@ -0,0 +1 @@ +libgif.so.7.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgif.so.7 b/squashfs-root/usr/lib/libgif.so.7 new file mode 120000 index 0000000..cefb10d --- /dev/null +++ b/squashfs-root/usr/lib/libgif.so.7 @@ -0,0 +1 @@ +libgif.so.7.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgif.so.7.0.0 b/squashfs-root/usr/lib/libgif.so.7.0.0 new file mode 100755 index 0000000..18a38f0 Binary files /dev/null and b/squashfs-root/usr/lib/libgif.so.7.0.0 differ diff --git a/squashfs-root/usr/lib/libgio-2.0.so b/squashfs-root/usr/lib/libgio-2.0.so new file mode 120000 index 0000000..de2ccbb --- /dev/null +++ b/squashfs-root/usr/lib/libgio-2.0.so @@ -0,0 +1 @@ +libgio-2.0.so.0.5400.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgio-2.0.so.0 b/squashfs-root/usr/lib/libgio-2.0.so.0 new file mode 120000 index 0000000..de2ccbb --- /dev/null +++ b/squashfs-root/usr/lib/libgio-2.0.so.0 @@ -0,0 +1 @@ +libgio-2.0.so.0.5400.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgio-2.0.so.0.5400.2 b/squashfs-root/usr/lib/libgio-2.0.so.0.5400.2 new file mode 100755 index 0000000..ecd21e2 Binary files /dev/null and b/squashfs-root/usr/lib/libgio-2.0.so.0.5400.2 differ diff --git a/squashfs-root/usr/lib/libgiomm-2.4.so b/squashfs-root/usr/lib/libgiomm-2.4.so new file mode 120000 index 0000000..beb0d8e --- /dev/null +++ b/squashfs-root/usr/lib/libgiomm-2.4.so @@ -0,0 +1 @@ +libgiomm-2.4.so.1.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgiomm-2.4.so.1 b/squashfs-root/usr/lib/libgiomm-2.4.so.1 new file mode 120000 index 0000000..beb0d8e --- /dev/null +++ b/squashfs-root/usr/lib/libgiomm-2.4.so.1 @@ -0,0 +1 @@ +libgiomm-2.4.so.1.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgiomm-2.4.so.1.3.0 b/squashfs-root/usr/lib/libgiomm-2.4.so.1.3.0 new file mode 100755 index 0000000..f1d52a3 Binary files /dev/null and b/squashfs-root/usr/lib/libgiomm-2.4.so.1.3.0 differ diff --git a/squashfs-root/usr/lib/libglapi.so b/squashfs-root/usr/lib/libglapi.so new file mode 120000 index 0000000..9de6608 --- /dev/null +++ b/squashfs-root/usr/lib/libglapi.so @@ -0,0 +1 @@ +libglapi.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libglapi.so.0 b/squashfs-root/usr/lib/libglapi.so.0 new file mode 120000 index 0000000..9de6608 --- /dev/null +++ b/squashfs-root/usr/lib/libglapi.so.0 @@ -0,0 +1 @@ +libglapi.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libglapi.so.0.0.0 b/squashfs-root/usr/lib/libglapi.so.0.0.0 new file mode 100755 index 0000000..8ae7c22 Binary files /dev/null and b/squashfs-root/usr/lib/libglapi.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libglib-2.0.so b/squashfs-root/usr/lib/libglib-2.0.so new file mode 120000 index 0000000..24c3a3a --- /dev/null +++ b/squashfs-root/usr/lib/libglib-2.0.so @@ -0,0 +1 @@ +libglib-2.0.so.0.5400.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libglib-2.0.so.0 b/squashfs-root/usr/lib/libglib-2.0.so.0 new file mode 120000 index 0000000..24c3a3a --- /dev/null +++ b/squashfs-root/usr/lib/libglib-2.0.so.0 @@ -0,0 +1 @@ +libglib-2.0.so.0.5400.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libglib-2.0.so.0.5400.2 b/squashfs-root/usr/lib/libglib-2.0.so.0.5400.2 new file mode 100755 index 0000000..a86cd20 Binary files /dev/null and b/squashfs-root/usr/lib/libglib-2.0.so.0.5400.2 differ diff --git a/squashfs-root/usr/lib/libglibmm-2.4.so b/squashfs-root/usr/lib/libglibmm-2.4.so new file mode 120000 index 0000000..1d0a016 --- /dev/null +++ b/squashfs-root/usr/lib/libglibmm-2.4.so @@ -0,0 +1 @@ +libglibmm-2.4.so.1.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libglibmm-2.4.so.1 b/squashfs-root/usr/lib/libglibmm-2.4.so.1 new file mode 120000 index 0000000..1d0a016 --- /dev/null +++ b/squashfs-root/usr/lib/libglibmm-2.4.so.1 @@ -0,0 +1 @@ +libglibmm-2.4.so.1.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libglibmm-2.4.so.1.3.0 b/squashfs-root/usr/lib/libglibmm-2.4.so.1.3.0 new file mode 100755 index 0000000..8c2d5d8 Binary files /dev/null and b/squashfs-root/usr/lib/libglibmm-2.4.so.1.3.0 differ diff --git a/squashfs-root/usr/lib/libglibmm_generate_extra_defs-2.4.so b/squashfs-root/usr/lib/libglibmm_generate_extra_defs-2.4.so new file mode 120000 index 0000000..4468ec1 --- /dev/null +++ b/squashfs-root/usr/lib/libglibmm_generate_extra_defs-2.4.so @@ -0,0 +1 @@ +libglibmm_generate_extra_defs-2.4.so.1.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libglibmm_generate_extra_defs-2.4.so.1 b/squashfs-root/usr/lib/libglibmm_generate_extra_defs-2.4.so.1 new file mode 120000 index 0000000..4468ec1 --- /dev/null +++ b/squashfs-root/usr/lib/libglibmm_generate_extra_defs-2.4.so.1 @@ -0,0 +1 @@ +libglibmm_generate_extra_defs-2.4.so.1.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libglibmm_generate_extra_defs-2.4.so.1.3.0 b/squashfs-root/usr/lib/libglibmm_generate_extra_defs-2.4.so.1.3.0 new file mode 100755 index 0000000..3042eef Binary files /dev/null and b/squashfs-root/usr/lib/libglibmm_generate_extra_defs-2.4.so.1.3.0 differ diff --git a/squashfs-root/usr/lib/libglut.so b/squashfs-root/usr/lib/libglut.so new file mode 120000 index 0000000..e54a278 --- /dev/null +++ b/squashfs-root/usr/lib/libglut.so @@ -0,0 +1 @@ +libglut.so.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libglut.so.3 b/squashfs-root/usr/lib/libglut.so.3 new file mode 120000 index 0000000..0da66f0 --- /dev/null +++ b/squashfs-root/usr/lib/libglut.so.3 @@ -0,0 +1 @@ +libglut.so.3.10.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libglut.so.3.10.0 b/squashfs-root/usr/lib/libglut.so.3.10.0 new file mode 100755 index 0000000..142f884 Binary files /dev/null and b/squashfs-root/usr/lib/libglut.so.3.10.0 differ diff --git a/squashfs-root/usr/lib/libgmodule-2.0.so b/squashfs-root/usr/lib/libgmodule-2.0.so new file mode 120000 index 0000000..cfcdde9 --- /dev/null +++ b/squashfs-root/usr/lib/libgmodule-2.0.so @@ -0,0 +1 @@ +libgmodule-2.0.so.0.5400.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgmodule-2.0.so.0 b/squashfs-root/usr/lib/libgmodule-2.0.so.0 new file mode 120000 index 0000000..cfcdde9 --- /dev/null +++ b/squashfs-root/usr/lib/libgmodule-2.0.so.0 @@ -0,0 +1 @@ +libgmodule-2.0.so.0.5400.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgmodule-2.0.so.0.5400.2 b/squashfs-root/usr/lib/libgmodule-2.0.so.0.5400.2 new file mode 100755 index 0000000..ec5e519 Binary files /dev/null and b/squashfs-root/usr/lib/libgmodule-2.0.so.0.5400.2 differ diff --git a/squashfs-root/usr/lib/libgobject-2.0.so b/squashfs-root/usr/lib/libgobject-2.0.so new file mode 120000 index 0000000..4aeeec5 --- /dev/null +++ b/squashfs-root/usr/lib/libgobject-2.0.so @@ -0,0 +1 @@ +libgobject-2.0.so.0.5400.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgobject-2.0.so.0 b/squashfs-root/usr/lib/libgobject-2.0.so.0 new file mode 120000 index 0000000..4aeeec5 --- /dev/null +++ b/squashfs-root/usr/lib/libgobject-2.0.so.0 @@ -0,0 +1 @@ +libgobject-2.0.so.0.5400.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgobject-2.0.so.0.5400.2 b/squashfs-root/usr/lib/libgobject-2.0.so.0.5400.2 new file mode 100755 index 0000000..9cc828d Binary files /dev/null and b/squashfs-root/usr/lib/libgobject-2.0.so.0.5400.2 differ diff --git a/squashfs-root/usr/lib/libgrbase.so b/squashfs-root/usr/lib/libgrbase.so new file mode 100755 index 0000000..e845d1e Binary files /dev/null and b/squashfs-root/usr/lib/libgrbase.so differ diff --git a/squashfs-root/usr/lib/libgstapp-0.10.so b/squashfs-root/usr/lib/libgstapp-0.10.so new file mode 120000 index 0000000..40bfa88 --- /dev/null +++ b/squashfs-root/usr/lib/libgstapp-0.10.so @@ -0,0 +1 @@ +libgstapp-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstapp-0.10.so.0 b/squashfs-root/usr/lib/libgstapp-0.10.so.0 new file mode 120000 index 0000000..40bfa88 --- /dev/null +++ b/squashfs-root/usr/lib/libgstapp-0.10.so.0 @@ -0,0 +1 @@ +libgstapp-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstapp-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstapp-0.10.so.0.25.0 new file mode 100755 index 0000000..8a3af4f Binary files /dev/null and b/squashfs-root/usr/lib/libgstapp-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstaudio-0.10.so b/squashfs-root/usr/lib/libgstaudio-0.10.so new file mode 120000 index 0000000..26fddbb --- /dev/null +++ b/squashfs-root/usr/lib/libgstaudio-0.10.so @@ -0,0 +1 @@ +libgstaudio-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstaudio-0.10.so.0 b/squashfs-root/usr/lib/libgstaudio-0.10.so.0 new file mode 120000 index 0000000..26fddbb --- /dev/null +++ b/squashfs-root/usr/lib/libgstaudio-0.10.so.0 @@ -0,0 +1 @@ +libgstaudio-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstaudio-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstaudio-0.10.so.0.25.0 new file mode 100755 index 0000000..3628b5c Binary files /dev/null and b/squashfs-root/usr/lib/libgstaudio-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstbase-0.10.so b/squashfs-root/usr/lib/libgstbase-0.10.so new file mode 120000 index 0000000..9acc701 --- /dev/null +++ b/squashfs-root/usr/lib/libgstbase-0.10.so @@ -0,0 +1 @@ +libgstbase-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstbase-0.10.so.0 b/squashfs-root/usr/lib/libgstbase-0.10.so.0 new file mode 120000 index 0000000..9acc701 --- /dev/null +++ b/squashfs-root/usr/lib/libgstbase-0.10.so.0 @@ -0,0 +1 @@ +libgstbase-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstbase-0.10.so.0.30.0 b/squashfs-root/usr/lib/libgstbase-0.10.so.0.30.0 new file mode 100755 index 0000000..92e4cd4 Binary files /dev/null and b/squashfs-root/usr/lib/libgstbase-0.10.so.0.30.0 differ diff --git a/squashfs-root/usr/lib/libgstbasecamerabinsrc-0.10.so b/squashfs-root/usr/lib/libgstbasecamerabinsrc-0.10.so new file mode 120000 index 0000000..4e9bbc3 --- /dev/null +++ b/squashfs-root/usr/lib/libgstbasecamerabinsrc-0.10.so @@ -0,0 +1 @@ +libgstbasecamerabinsrc-0.10.so.23.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstbasecamerabinsrc-0.10.so.23 b/squashfs-root/usr/lib/libgstbasecamerabinsrc-0.10.so.23 new file mode 120000 index 0000000..4e9bbc3 --- /dev/null +++ b/squashfs-root/usr/lib/libgstbasecamerabinsrc-0.10.so.23 @@ -0,0 +1 @@ +libgstbasecamerabinsrc-0.10.so.23.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstbasecamerabinsrc-0.10.so.23.0.0 b/squashfs-root/usr/lib/libgstbasecamerabinsrc-0.10.so.23.0.0 new file mode 100755 index 0000000..7565bf0 Binary files /dev/null and b/squashfs-root/usr/lib/libgstbasecamerabinsrc-0.10.so.23.0.0 differ diff --git a/squashfs-root/usr/lib/libgstbasevideo-0.10.so b/squashfs-root/usr/lib/libgstbasevideo-0.10.so new file mode 120000 index 0000000..aaf6774 --- /dev/null +++ b/squashfs-root/usr/lib/libgstbasevideo-0.10.so @@ -0,0 +1 @@ +libgstbasevideo-0.10.so.23.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstbasevideo-0.10.so.23 b/squashfs-root/usr/lib/libgstbasevideo-0.10.so.23 new file mode 120000 index 0000000..aaf6774 --- /dev/null +++ b/squashfs-root/usr/lib/libgstbasevideo-0.10.so.23 @@ -0,0 +1 @@ +libgstbasevideo-0.10.so.23.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstbasevideo-0.10.so.23.0.0 b/squashfs-root/usr/lib/libgstbasevideo-0.10.so.23.0.0 new file mode 100755 index 0000000..a1ed8f3 Binary files /dev/null and b/squashfs-root/usr/lib/libgstbasevideo-0.10.so.23.0.0 differ diff --git a/squashfs-root/usr/lib/libgstcdda-0.10.so b/squashfs-root/usr/lib/libgstcdda-0.10.so new file mode 120000 index 0000000..dc977a3 --- /dev/null +++ b/squashfs-root/usr/lib/libgstcdda-0.10.so @@ -0,0 +1 @@ +libgstcdda-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstcdda-0.10.so.0 b/squashfs-root/usr/lib/libgstcdda-0.10.so.0 new file mode 120000 index 0000000..dc977a3 --- /dev/null +++ b/squashfs-root/usr/lib/libgstcdda-0.10.so.0 @@ -0,0 +1 @@ +libgstcdda-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstcdda-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstcdda-0.10.so.0.25.0 new file mode 100755 index 0000000..919fcc1 Binary files /dev/null and b/squashfs-root/usr/lib/libgstcdda-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstcheck-0.10.so b/squashfs-root/usr/lib/libgstcheck-0.10.so new file mode 120000 index 0000000..e9f7909 --- /dev/null +++ b/squashfs-root/usr/lib/libgstcheck-0.10.so @@ -0,0 +1 @@ +libgstcheck-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstcheck-0.10.so.0 b/squashfs-root/usr/lib/libgstcheck-0.10.so.0 new file mode 120000 index 0000000..e9f7909 --- /dev/null +++ b/squashfs-root/usr/lib/libgstcheck-0.10.so.0 @@ -0,0 +1 @@ +libgstcheck-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstcheck-0.10.so.0.30.0 b/squashfs-root/usr/lib/libgstcheck-0.10.so.0.30.0 new file mode 100755 index 0000000..dd3992d Binary files /dev/null and b/squashfs-root/usr/lib/libgstcheck-0.10.so.0.30.0 differ diff --git a/squashfs-root/usr/lib/libgstcodecparsers-0.10.so b/squashfs-root/usr/lib/libgstcodecparsers-0.10.so new file mode 120000 index 0000000..c2e8445 --- /dev/null +++ b/squashfs-root/usr/lib/libgstcodecparsers-0.10.so @@ -0,0 +1 @@ +libgstcodecparsers-0.10.so.23.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstcodecparsers-0.10.so.23 b/squashfs-root/usr/lib/libgstcodecparsers-0.10.so.23 new file mode 120000 index 0000000..c2e8445 --- /dev/null +++ b/squashfs-root/usr/lib/libgstcodecparsers-0.10.so.23 @@ -0,0 +1 @@ +libgstcodecparsers-0.10.so.23.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstcodecparsers-0.10.so.23.0.0 b/squashfs-root/usr/lib/libgstcodecparsers-0.10.so.23.0.0 new file mode 100755 index 0000000..46ddaff Binary files /dev/null and b/squashfs-root/usr/lib/libgstcodecparsers-0.10.so.23.0.0 differ diff --git a/squashfs-root/usr/lib/libgstcontroller-0.10.so b/squashfs-root/usr/lib/libgstcontroller-0.10.so new file mode 120000 index 0000000..d247c90 --- /dev/null +++ b/squashfs-root/usr/lib/libgstcontroller-0.10.so @@ -0,0 +1 @@ +libgstcontroller-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstcontroller-0.10.so.0 b/squashfs-root/usr/lib/libgstcontroller-0.10.so.0 new file mode 120000 index 0000000..d247c90 --- /dev/null +++ b/squashfs-root/usr/lib/libgstcontroller-0.10.so.0 @@ -0,0 +1 @@ +libgstcontroller-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstcontroller-0.10.so.0.30.0 b/squashfs-root/usr/lib/libgstcontroller-0.10.so.0.30.0 new file mode 100755 index 0000000..5170422 Binary files /dev/null and b/squashfs-root/usr/lib/libgstcontroller-0.10.so.0.30.0 differ diff --git a/squashfs-root/usr/lib/libgstdataprotocol-0.10.so b/squashfs-root/usr/lib/libgstdataprotocol-0.10.so new file mode 120000 index 0000000..d407105 --- /dev/null +++ b/squashfs-root/usr/lib/libgstdataprotocol-0.10.so @@ -0,0 +1 @@ +libgstdataprotocol-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstdataprotocol-0.10.so.0 b/squashfs-root/usr/lib/libgstdataprotocol-0.10.so.0 new file mode 120000 index 0000000..d407105 --- /dev/null +++ b/squashfs-root/usr/lib/libgstdataprotocol-0.10.so.0 @@ -0,0 +1 @@ +libgstdataprotocol-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstdataprotocol-0.10.so.0.30.0 b/squashfs-root/usr/lib/libgstdataprotocol-0.10.so.0.30.0 new file mode 100755 index 0000000..a00f226 Binary files /dev/null and b/squashfs-root/usr/lib/libgstdataprotocol-0.10.so.0.30.0 differ diff --git a/squashfs-root/usr/lib/libgstfft-0.10.so b/squashfs-root/usr/lib/libgstfft-0.10.so new file mode 120000 index 0000000..bb90449 --- /dev/null +++ b/squashfs-root/usr/lib/libgstfft-0.10.so @@ -0,0 +1 @@ +libgstfft-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstfft-0.10.so.0 b/squashfs-root/usr/lib/libgstfft-0.10.so.0 new file mode 120000 index 0000000..bb90449 --- /dev/null +++ b/squashfs-root/usr/lib/libgstfft-0.10.so.0 @@ -0,0 +1 @@ +libgstfft-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstfft-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstfft-0.10.so.0.25.0 new file mode 100755 index 0000000..7521075 Binary files /dev/null and b/squashfs-root/usr/lib/libgstfft-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstinterfaces-0.10.so b/squashfs-root/usr/lib/libgstinterfaces-0.10.so new file mode 120000 index 0000000..adabbc0 --- /dev/null +++ b/squashfs-root/usr/lib/libgstinterfaces-0.10.so @@ -0,0 +1 @@ +libgstinterfaces-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstinterfaces-0.10.so.0 b/squashfs-root/usr/lib/libgstinterfaces-0.10.so.0 new file mode 120000 index 0000000..adabbc0 --- /dev/null +++ b/squashfs-root/usr/lib/libgstinterfaces-0.10.so.0 @@ -0,0 +1 @@ +libgstinterfaces-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstinterfaces-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstinterfaces-0.10.so.0.25.0 new file mode 100755 index 0000000..4658560 Binary files /dev/null and b/squashfs-root/usr/lib/libgstinterfaces-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstnet-0.10.so b/squashfs-root/usr/lib/libgstnet-0.10.so new file mode 120000 index 0000000..16b60f5 --- /dev/null +++ b/squashfs-root/usr/lib/libgstnet-0.10.so @@ -0,0 +1 @@ +libgstnet-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstnet-0.10.so.0 b/squashfs-root/usr/lib/libgstnet-0.10.so.0 new file mode 120000 index 0000000..16b60f5 --- /dev/null +++ b/squashfs-root/usr/lib/libgstnet-0.10.so.0 @@ -0,0 +1 @@ +libgstnet-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstnet-0.10.so.0.30.0 b/squashfs-root/usr/lib/libgstnet-0.10.so.0.30.0 new file mode 100755 index 0000000..c282514 Binary files /dev/null and b/squashfs-root/usr/lib/libgstnet-0.10.so.0.30.0 differ diff --git a/squashfs-root/usr/lib/libgstnetbuffer-0.10.so b/squashfs-root/usr/lib/libgstnetbuffer-0.10.so new file mode 120000 index 0000000..2eef331 --- /dev/null +++ b/squashfs-root/usr/lib/libgstnetbuffer-0.10.so @@ -0,0 +1 @@ +libgstnetbuffer-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstnetbuffer-0.10.so.0 b/squashfs-root/usr/lib/libgstnetbuffer-0.10.so.0 new file mode 120000 index 0000000..2eef331 --- /dev/null +++ b/squashfs-root/usr/lib/libgstnetbuffer-0.10.so.0 @@ -0,0 +1 @@ +libgstnetbuffer-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstnetbuffer-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstnetbuffer-0.10.so.0.25.0 new file mode 100755 index 0000000..57d35d7 Binary files /dev/null and b/squashfs-root/usr/lib/libgstnetbuffer-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstpbutils-0.10.so b/squashfs-root/usr/lib/libgstpbutils-0.10.so new file mode 120000 index 0000000..7d69075 --- /dev/null +++ b/squashfs-root/usr/lib/libgstpbutils-0.10.so @@ -0,0 +1 @@ +libgstpbutils-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstpbutils-0.10.so.0 b/squashfs-root/usr/lib/libgstpbutils-0.10.so.0 new file mode 120000 index 0000000..7d69075 --- /dev/null +++ b/squashfs-root/usr/lib/libgstpbutils-0.10.so.0 @@ -0,0 +1 @@ +libgstpbutils-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstpbutils-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstpbutils-0.10.so.0.25.0 new file mode 100755 index 0000000..220c222 Binary files /dev/null and b/squashfs-root/usr/lib/libgstpbutils-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstphotography-0.10.so b/squashfs-root/usr/lib/libgstphotography-0.10.so new file mode 120000 index 0000000..a42c567 --- /dev/null +++ b/squashfs-root/usr/lib/libgstphotography-0.10.so @@ -0,0 +1 @@ +libgstphotography-0.10.so.23.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstphotography-0.10.so.23 b/squashfs-root/usr/lib/libgstphotography-0.10.so.23 new file mode 120000 index 0000000..a42c567 --- /dev/null +++ b/squashfs-root/usr/lib/libgstphotography-0.10.so.23 @@ -0,0 +1 @@ +libgstphotography-0.10.so.23.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstphotography-0.10.so.23.0.0 b/squashfs-root/usr/lib/libgstphotography-0.10.so.23.0.0 new file mode 100755 index 0000000..7035d9c Binary files /dev/null and b/squashfs-root/usr/lib/libgstphotography-0.10.so.23.0.0 differ diff --git a/squashfs-root/usr/lib/libgstreamer-0.10.so b/squashfs-root/usr/lib/libgstreamer-0.10.so new file mode 120000 index 0000000..46604bf --- /dev/null +++ b/squashfs-root/usr/lib/libgstreamer-0.10.so @@ -0,0 +1 @@ +libgstreamer-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstreamer-0.10.so.0 b/squashfs-root/usr/lib/libgstreamer-0.10.so.0 new file mode 120000 index 0000000..46604bf --- /dev/null +++ b/squashfs-root/usr/lib/libgstreamer-0.10.so.0 @@ -0,0 +1 @@ +libgstreamer-0.10.so.0.30.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstreamer-0.10.so.0.30.0 b/squashfs-root/usr/lib/libgstreamer-0.10.so.0.30.0 new file mode 100755 index 0000000..6d8b6c7 Binary files /dev/null and b/squashfs-root/usr/lib/libgstreamer-0.10.so.0.30.0 differ diff --git a/squashfs-root/usr/lib/libgstriff-0.10.so b/squashfs-root/usr/lib/libgstriff-0.10.so new file mode 120000 index 0000000..708a032 --- /dev/null +++ b/squashfs-root/usr/lib/libgstriff-0.10.so @@ -0,0 +1 @@ +libgstriff-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstriff-0.10.so.0 b/squashfs-root/usr/lib/libgstriff-0.10.so.0 new file mode 120000 index 0000000..708a032 --- /dev/null +++ b/squashfs-root/usr/lib/libgstriff-0.10.so.0 @@ -0,0 +1 @@ +libgstriff-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstriff-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstriff-0.10.so.0.25.0 new file mode 100755 index 0000000..c4c9a3d Binary files /dev/null and b/squashfs-root/usr/lib/libgstriff-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstrtp-0.10.so b/squashfs-root/usr/lib/libgstrtp-0.10.so new file mode 120000 index 0000000..bdadb34 --- /dev/null +++ b/squashfs-root/usr/lib/libgstrtp-0.10.so @@ -0,0 +1 @@ +libgstrtp-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstrtp-0.10.so.0 b/squashfs-root/usr/lib/libgstrtp-0.10.so.0 new file mode 120000 index 0000000..bdadb34 --- /dev/null +++ b/squashfs-root/usr/lib/libgstrtp-0.10.so.0 @@ -0,0 +1 @@ +libgstrtp-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstrtp-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstrtp-0.10.so.0.25.0 new file mode 100755 index 0000000..9b9da80 Binary files /dev/null and b/squashfs-root/usr/lib/libgstrtp-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstrtsp-0.10.so b/squashfs-root/usr/lib/libgstrtsp-0.10.so new file mode 120000 index 0000000..78d7e99 --- /dev/null +++ b/squashfs-root/usr/lib/libgstrtsp-0.10.so @@ -0,0 +1 @@ +libgstrtsp-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstrtsp-0.10.so.0 b/squashfs-root/usr/lib/libgstrtsp-0.10.so.0 new file mode 120000 index 0000000..78d7e99 --- /dev/null +++ b/squashfs-root/usr/lib/libgstrtsp-0.10.so.0 @@ -0,0 +1 @@ +libgstrtsp-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstrtsp-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstrtsp-0.10.so.0.25.0 new file mode 100755 index 0000000..0846369 Binary files /dev/null and b/squashfs-root/usr/lib/libgstrtsp-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstsdp-0.10.so b/squashfs-root/usr/lib/libgstsdp-0.10.so new file mode 120000 index 0000000..a672092 --- /dev/null +++ b/squashfs-root/usr/lib/libgstsdp-0.10.so @@ -0,0 +1 @@ +libgstsdp-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstsdp-0.10.so.0 b/squashfs-root/usr/lib/libgstsdp-0.10.so.0 new file mode 120000 index 0000000..a672092 --- /dev/null +++ b/squashfs-root/usr/lib/libgstsdp-0.10.so.0 @@ -0,0 +1 @@ +libgstsdp-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstsdp-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstsdp-0.10.so.0.25.0 new file mode 100755 index 0000000..3ec1f4a Binary files /dev/null and b/squashfs-root/usr/lib/libgstsdp-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstsignalprocessor-0.10.so b/squashfs-root/usr/lib/libgstsignalprocessor-0.10.so new file mode 120000 index 0000000..cd88721 --- /dev/null +++ b/squashfs-root/usr/lib/libgstsignalprocessor-0.10.so @@ -0,0 +1 @@ +libgstsignalprocessor-0.10.so.23.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstsignalprocessor-0.10.so.23 b/squashfs-root/usr/lib/libgstsignalprocessor-0.10.so.23 new file mode 120000 index 0000000..cd88721 --- /dev/null +++ b/squashfs-root/usr/lib/libgstsignalprocessor-0.10.so.23 @@ -0,0 +1 @@ +libgstsignalprocessor-0.10.so.23.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstsignalprocessor-0.10.so.23.0.0 b/squashfs-root/usr/lib/libgstsignalprocessor-0.10.so.23.0.0 new file mode 100755 index 0000000..ef90bd1 Binary files /dev/null and b/squashfs-root/usr/lib/libgstsignalprocessor-0.10.so.23.0.0 differ diff --git a/squashfs-root/usr/lib/libgsttag-0.10.so b/squashfs-root/usr/lib/libgsttag-0.10.so new file mode 120000 index 0000000..b7e0a6e --- /dev/null +++ b/squashfs-root/usr/lib/libgsttag-0.10.so @@ -0,0 +1 @@ +libgsttag-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgsttag-0.10.so.0 b/squashfs-root/usr/lib/libgsttag-0.10.so.0 new file mode 120000 index 0000000..b7e0a6e --- /dev/null +++ b/squashfs-root/usr/lib/libgsttag-0.10.so.0 @@ -0,0 +1 @@ +libgsttag-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgsttag-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgsttag-0.10.so.0.25.0 new file mode 100755 index 0000000..eea48db Binary files /dev/null and b/squashfs-root/usr/lib/libgsttag-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgstvideo-0.10.so b/squashfs-root/usr/lib/libgstvideo-0.10.so new file mode 120000 index 0000000..4898a4a --- /dev/null +++ b/squashfs-root/usr/lib/libgstvideo-0.10.so @@ -0,0 +1 @@ +libgstvideo-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstvideo-0.10.so.0 b/squashfs-root/usr/lib/libgstvideo-0.10.so.0 new file mode 120000 index 0000000..4898a4a --- /dev/null +++ b/squashfs-root/usr/lib/libgstvideo-0.10.so.0 @@ -0,0 +1 @@ +libgstvideo-0.10.so.0.25.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgstvideo-0.10.so.0.25.0 b/squashfs-root/usr/lib/libgstvideo-0.10.so.0.25.0 new file mode 100755 index 0000000..75ff362 Binary files /dev/null and b/squashfs-root/usr/lib/libgstvideo-0.10.so.0.25.0 differ diff --git a/squashfs-root/usr/lib/libgthread-2.0.so b/squashfs-root/usr/lib/libgthread-2.0.so new file mode 120000 index 0000000..d49ea9b --- /dev/null +++ b/squashfs-root/usr/lib/libgthread-2.0.so @@ -0,0 +1 @@ +libgthread-2.0.so.0.5400.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgthread-2.0.so.0 b/squashfs-root/usr/lib/libgthread-2.0.so.0 new file mode 120000 index 0000000..d49ea9b --- /dev/null +++ b/squashfs-root/usr/lib/libgthread-2.0.so.0 @@ -0,0 +1 @@ +libgthread-2.0.so.0.5400.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libgthread-2.0.so.0.5400.2 b/squashfs-root/usr/lib/libgthread-2.0.so.0.5400.2 new file mode 100755 index 0000000..798dc44 Binary files /dev/null and b/squashfs-root/usr/lib/libgthread-2.0.so.0.5400.2 differ diff --git a/squashfs-root/usr/lib/libharfbuzz.so b/squashfs-root/usr/lib/libharfbuzz.so new file mode 120000 index 0000000..5e29efd --- /dev/null +++ b/squashfs-root/usr/lib/libharfbuzz.so @@ -0,0 +1 @@ +libharfbuzz.so.0.10701.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libharfbuzz.so.0 b/squashfs-root/usr/lib/libharfbuzz.so.0 new file mode 120000 index 0000000..5e29efd --- /dev/null +++ b/squashfs-root/usr/lib/libharfbuzz.so.0 @@ -0,0 +1 @@ +libharfbuzz.so.0.10701.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libharfbuzz.so.0.10701.0 b/squashfs-root/usr/lib/libharfbuzz.so.0.10701.0 new file mode 100755 index 0000000..ee3ae5f Binary files /dev/null and b/squashfs-root/usr/lib/libharfbuzz.so.0.10701.0 differ diff --git a/squashfs-root/usr/lib/libhistory.so b/squashfs-root/usr/lib/libhistory.so new file mode 120000 index 0000000..1f720e5 --- /dev/null +++ b/squashfs-root/usr/lib/libhistory.so @@ -0,0 +1 @@ +libhistory.so.7 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libhistory.so.7 b/squashfs-root/usr/lib/libhistory.so.7 new file mode 120000 index 0000000..be67584 --- /dev/null +++ b/squashfs-root/usr/lib/libhistory.so.7 @@ -0,0 +1 @@ +libhistory.so.7.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libhistory.so.7.0 b/squashfs-root/usr/lib/libhistory.so.7.0 new file mode 100755 index 0000000..9ba130a Binary files /dev/null and b/squashfs-root/usr/lib/libhistory.so.7.0 differ diff --git a/squashfs-root/usr/lib/libiconv.so b/squashfs-root/usr/lib/libiconv.so new file mode 120000 index 0000000..fe4fc96 --- /dev/null +++ b/squashfs-root/usr/lib/libiconv.so @@ -0,0 +1 @@ +libiconv.so.2.6.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libiconv.so.2 b/squashfs-root/usr/lib/libiconv.so.2 new file mode 120000 index 0000000..fe4fc96 --- /dev/null +++ b/squashfs-root/usr/lib/libiconv.so.2 @@ -0,0 +1 @@ +libiconv.so.2.6.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libiconv.so.2.6.0 b/squashfs-root/usr/lib/libiconv.so.2.6.0 new file mode 100755 index 0000000..64cc717 Binary files /dev/null and b/squashfs-root/usr/lib/libiconv.so.2.6.0 differ diff --git a/squashfs-root/usr/lib/libid3tag.so b/squashfs-root/usr/lib/libid3tag.so new file mode 120000 index 0000000..642a1ed --- /dev/null +++ b/squashfs-root/usr/lib/libid3tag.so @@ -0,0 +1 @@ +libid3tag.so.0.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libid3tag.so.0 b/squashfs-root/usr/lib/libid3tag.so.0 new file mode 120000 index 0000000..642a1ed --- /dev/null +++ b/squashfs-root/usr/lib/libid3tag.so.0 @@ -0,0 +1 @@ +libid3tag.so.0.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libid3tag.so.0.3.0 b/squashfs-root/usr/lib/libid3tag.so.0.3.0 new file mode 100755 index 0000000..8b289f0 Binary files /dev/null and b/squashfs-root/usr/lib/libid3tag.so.0.3.0 differ diff --git a/squashfs-root/usr/lib/libintl.so b/squashfs-root/usr/lib/libintl.so new file mode 120000 index 0000000..1f7003d --- /dev/null +++ b/squashfs-root/usr/lib/libintl.so @@ -0,0 +1 @@ +libintl.so.8.1.5 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libintl.so.8 b/squashfs-root/usr/lib/libintl.so.8 new file mode 120000 index 0000000..1f7003d --- /dev/null +++ b/squashfs-root/usr/lib/libintl.so.8 @@ -0,0 +1 @@ +libintl.so.8.1.5 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libintl.so.8.1.5 b/squashfs-root/usr/lib/libintl.so.8.1.5 new file mode 100644 index 0000000..f947275 Binary files /dev/null and b/squashfs-root/usr/lib/libintl.so.8.1.5 differ diff --git a/squashfs-root/usr/lib/libjoy.so b/squashfs-root/usr/lib/libjoy.so new file mode 100755 index 0000000..aa75ba3 Binary files /dev/null and b/squashfs-root/usr/lib/libjoy.so differ diff --git a/squashfs-root/usr/lib/libjpeg.so b/squashfs-root/usr/lib/libjpeg.so new file mode 120000 index 0000000..97713d5 --- /dev/null +++ b/squashfs-root/usr/lib/libjpeg.so @@ -0,0 +1 @@ +libjpeg.so.9.2.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libjpeg.so.9 b/squashfs-root/usr/lib/libjpeg.so.9 new file mode 120000 index 0000000..97713d5 --- /dev/null +++ b/squashfs-root/usr/lib/libjpeg.so.9 @@ -0,0 +1 @@ +libjpeg.so.9.2.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libjpeg.so.9.2.0 b/squashfs-root/usr/lib/libjpeg.so.9.2.0 new file mode 100755 index 0000000..dfde60e Binary files /dev/null and b/squashfs-root/usr/lib/libjpeg.so.9.2.0 differ diff --git a/squashfs-root/usr/lib/libjson-c.so b/squashfs-root/usr/lib/libjson-c.so new file mode 120000 index 0000000..c58964a --- /dev/null +++ b/squashfs-root/usr/lib/libjson-c.so @@ -0,0 +1 @@ +libjson-c.so.3.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libjson-c.so.3 b/squashfs-root/usr/lib/libjson-c.so.3 new file mode 120000 index 0000000..c58964a --- /dev/null +++ b/squashfs-root/usr/lib/libjson-c.so.3 @@ -0,0 +1 @@ +libjson-c.so.3.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libjson-c.so.3.0.1 b/squashfs-root/usr/lib/libjson-c.so.3.0.1 new file mode 100755 index 0000000..91a1408 Binary files /dev/null and b/squashfs-root/usr/lib/libjson-c.so.3.0.1 differ diff --git a/squashfs-root/usr/lib/libkey.so b/squashfs-root/usr/lib/libkey.so new file mode 100755 index 0000000..009e6f3 Binary files /dev/null and b/squashfs-root/usr/lib/libkey.so differ diff --git a/squashfs-root/usr/lib/libkms.so b/squashfs-root/usr/lib/libkms.so new file mode 120000 index 0000000..5f3f293 --- /dev/null +++ b/squashfs-root/usr/lib/libkms.so @@ -0,0 +1 @@ +libkms.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libkms.so.1 b/squashfs-root/usr/lib/libkms.so.1 new file mode 120000 index 0000000..5f3f293 --- /dev/null +++ b/squashfs-root/usr/lib/libkms.so.1 @@ -0,0 +1 @@ +libkms.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libkms.so.1.0.0 b/squashfs-root/usr/lib/libkms.so.1.0.0 new file mode 100755 index 0000000..0917e63 Binary files /dev/null and b/squashfs-root/usr/lib/libkms.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libltdl.so b/squashfs-root/usr/lib/libltdl.so new file mode 120000 index 0000000..3341eab --- /dev/null +++ b/squashfs-root/usr/lib/libltdl.so @@ -0,0 +1 @@ +libltdl.so.7.3.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libltdl.so.7 b/squashfs-root/usr/lib/libltdl.so.7 new file mode 120000 index 0000000..3341eab --- /dev/null +++ b/squashfs-root/usr/lib/libltdl.so.7 @@ -0,0 +1 @@ +libltdl.so.7.3.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libltdl.so.7.3.1 b/squashfs-root/usr/lib/libltdl.so.7.3.1 new file mode 100755 index 0000000..54a2901 Binary files /dev/null and b/squashfs-root/usr/lib/libltdl.so.7.3.1 differ diff --git a/squashfs-root/usr/lib/liblua.so b/squashfs-root/usr/lib/liblua.so new file mode 120000 index 0000000..ae03306 --- /dev/null +++ b/squashfs-root/usr/lib/liblua.so @@ -0,0 +1 @@ +liblua.so.5.1.5 \ No newline at end of file diff --git a/squashfs-root/usr/lib/liblua.so.5.1.5 b/squashfs-root/usr/lib/liblua.so.5.1.5 new file mode 100755 index 0000000..d300f34 Binary files /dev/null and b/squashfs-root/usr/lib/liblua.so.5.1.5 differ diff --git a/squashfs-root/usr/lib/liblz4.so b/squashfs-root/usr/lib/liblz4.so new file mode 120000 index 0000000..80f11d1 --- /dev/null +++ b/squashfs-root/usr/lib/liblz4.so @@ -0,0 +1 @@ +liblz4.so.1.7.5 \ No newline at end of file diff --git a/squashfs-root/usr/lib/liblz4.so.1 b/squashfs-root/usr/lib/liblz4.so.1 new file mode 120000 index 0000000..80f11d1 --- /dev/null +++ b/squashfs-root/usr/lib/liblz4.so.1 @@ -0,0 +1 @@ +liblz4.so.1.7.5 \ No newline at end of file diff --git a/squashfs-root/usr/lib/liblz4.so.1.7.5 b/squashfs-root/usr/lib/liblz4.so.1.7.5 new file mode 100755 index 0000000..c1abf10 Binary files /dev/null and b/squashfs-root/usr/lib/liblz4.so.1.7.5 differ diff --git a/squashfs-root/usr/lib/libmad.so b/squashfs-root/usr/lib/libmad.so new file mode 120000 index 0000000..bd82fcc --- /dev/null +++ b/squashfs-root/usr/lib/libmad.so @@ -0,0 +1 @@ +libmad.so.0.2.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libmad.so.0 b/squashfs-root/usr/lib/libmad.so.0 new file mode 120000 index 0000000..bd82fcc --- /dev/null +++ b/squashfs-root/usr/lib/libmad.so.0 @@ -0,0 +1 @@ +libmad.so.0.2.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libmad.so.0.2.1 b/squashfs-root/usr/lib/libmad.so.0.2.1 new file mode 100755 index 0000000..b3f9815 Binary files /dev/null and b/squashfs-root/usr/lib/libmad.so.0.2.1 differ diff --git a/squashfs-root/usr/lib/libmenu.so b/squashfs-root/usr/lib/libmenu.so new file mode 120000 index 0000000..922a3ee --- /dev/null +++ b/squashfs-root/usr/lib/libmenu.so @@ -0,0 +1 @@ +libmenu.so.6 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libmenu.so.6 b/squashfs-root/usr/lib/libmenu.so.6 new file mode 120000 index 0000000..555730d --- /dev/null +++ b/squashfs-root/usr/lib/libmenu.so.6 @@ -0,0 +1 @@ +libmenu.so.6.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libmenu.so.6.0 b/squashfs-root/usr/lib/libmenu.so.6.0 new file mode 100755 index 0000000..1730c77 Binary files /dev/null and b/squashfs-root/usr/lib/libmenu.so.6.0 differ diff --git a/squashfs-root/usr/lib/libmod_blendop.so b/squashfs-root/usr/lib/libmod_blendop.so new file mode 100755 index 0000000..feb4a58 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_blendop.so differ diff --git a/squashfs-root/usr/lib/libmod_cd.so b/squashfs-root/usr/lib/libmod_cd.so new file mode 100755 index 0000000..3725883 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_cd.so differ diff --git a/squashfs-root/usr/lib/libmod_crypt.so b/squashfs-root/usr/lib/libmod_crypt.so new file mode 100755 index 0000000..8495700 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_crypt.so differ diff --git a/squashfs-root/usr/lib/libmod_debug.so b/squashfs-root/usr/lib/libmod_debug.so new file mode 100755 index 0000000..b3c02a2 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_debug.so differ diff --git a/squashfs-root/usr/lib/libmod_dir.so b/squashfs-root/usr/lib/libmod_dir.so new file mode 100755 index 0000000..d60d3f2 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_dir.so differ diff --git a/squashfs-root/usr/lib/libmod_draw.so b/squashfs-root/usr/lib/libmod_draw.so new file mode 100755 index 0000000..861c45d Binary files /dev/null and b/squashfs-root/usr/lib/libmod_draw.so differ diff --git a/squashfs-root/usr/lib/libmod_effects.so b/squashfs-root/usr/lib/libmod_effects.so new file mode 100755 index 0000000..69d53c3 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_effects.so differ diff --git a/squashfs-root/usr/lib/libmod_file.so b/squashfs-root/usr/lib/libmod_file.so new file mode 100755 index 0000000..01b0a5b Binary files /dev/null and b/squashfs-root/usr/lib/libmod_file.so differ diff --git a/squashfs-root/usr/lib/libmod_flic.so b/squashfs-root/usr/lib/libmod_flic.so new file mode 100755 index 0000000..7c848cd Binary files /dev/null and b/squashfs-root/usr/lib/libmod_flic.so differ diff --git a/squashfs-root/usr/lib/libmod_grproc.so b/squashfs-root/usr/lib/libmod_grproc.so new file mode 100755 index 0000000..2f9cafb Binary files /dev/null and b/squashfs-root/usr/lib/libmod_grproc.so differ diff --git a/squashfs-root/usr/lib/libmod_joy.so b/squashfs-root/usr/lib/libmod_joy.so new file mode 100755 index 0000000..c67ca44 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_joy.so differ diff --git a/squashfs-root/usr/lib/libmod_key.so b/squashfs-root/usr/lib/libmod_key.so new file mode 100755 index 0000000..e2469c1 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_key.so differ diff --git a/squashfs-root/usr/lib/libmod_m7.so b/squashfs-root/usr/lib/libmod_m7.so new file mode 100755 index 0000000..2cd6611 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_m7.so differ diff --git a/squashfs-root/usr/lib/libmod_map.so b/squashfs-root/usr/lib/libmod_map.so new file mode 100755 index 0000000..99825a2 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_map.so differ diff --git a/squashfs-root/usr/lib/libmod_math.so b/squashfs-root/usr/lib/libmod_math.so new file mode 100755 index 0000000..2d9d2d1 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_math.so differ diff --git a/squashfs-root/usr/lib/libmod_mathi.so b/squashfs-root/usr/lib/libmod_mathi.so new file mode 100755 index 0000000..c908225 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_mathi.so differ diff --git a/squashfs-root/usr/lib/libmod_mem.so b/squashfs-root/usr/lib/libmod_mem.so new file mode 100755 index 0000000..91ed6b8 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_mem.so differ diff --git a/squashfs-root/usr/lib/libmod_mouse.so b/squashfs-root/usr/lib/libmod_mouse.so new file mode 100755 index 0000000..6668800 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_mouse.so differ diff --git a/squashfs-root/usr/lib/libmod_path.so b/squashfs-root/usr/lib/libmod_path.so new file mode 100755 index 0000000..50fe105 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_path.so differ diff --git a/squashfs-root/usr/lib/libmod_proc.so b/squashfs-root/usr/lib/libmod_proc.so new file mode 100755 index 0000000..8cb07d6 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_proc.so differ diff --git a/squashfs-root/usr/lib/libmod_rand.so b/squashfs-root/usr/lib/libmod_rand.so new file mode 100755 index 0000000..f7d52ec Binary files /dev/null and b/squashfs-root/usr/lib/libmod_rand.so differ diff --git a/squashfs-root/usr/lib/libmod_regex.so b/squashfs-root/usr/lib/libmod_regex.so new file mode 100755 index 0000000..f0c0707 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_regex.so differ diff --git a/squashfs-root/usr/lib/libmod_say.so b/squashfs-root/usr/lib/libmod_say.so new file mode 100755 index 0000000..37636e8 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_say.so differ diff --git a/squashfs-root/usr/lib/libmod_screen.so b/squashfs-root/usr/lib/libmod_screen.so new file mode 100755 index 0000000..c152e38 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_screen.so differ diff --git a/squashfs-root/usr/lib/libmod_scroll.so b/squashfs-root/usr/lib/libmod_scroll.so new file mode 100755 index 0000000..e9b7247 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_scroll.so differ diff --git a/squashfs-root/usr/lib/libmod_sort.so b/squashfs-root/usr/lib/libmod_sort.so new file mode 100755 index 0000000..5bef63c Binary files /dev/null and b/squashfs-root/usr/lib/libmod_sort.so differ diff --git a/squashfs-root/usr/lib/libmod_sound.so b/squashfs-root/usr/lib/libmod_sound.so new file mode 100755 index 0000000..54d9a86 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_sound.so differ diff --git a/squashfs-root/usr/lib/libmod_string.so b/squashfs-root/usr/lib/libmod_string.so new file mode 100755 index 0000000..e976006 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_string.so differ diff --git a/squashfs-root/usr/lib/libmod_sys.so b/squashfs-root/usr/lib/libmod_sys.so new file mode 100755 index 0000000..45db589 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_sys.so differ diff --git a/squashfs-root/usr/lib/libmod_text.so b/squashfs-root/usr/lib/libmod_text.so new file mode 100755 index 0000000..00ca9e1 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_text.so differ diff --git a/squashfs-root/usr/lib/libmod_time.so b/squashfs-root/usr/lib/libmod_time.so new file mode 100755 index 0000000..2c961bf Binary files /dev/null and b/squashfs-root/usr/lib/libmod_time.so differ diff --git a/squashfs-root/usr/lib/libmod_timers.so b/squashfs-root/usr/lib/libmod_timers.so new file mode 100755 index 0000000..91c132f Binary files /dev/null and b/squashfs-root/usr/lib/libmod_timers.so differ diff --git a/squashfs-root/usr/lib/libmod_video.so b/squashfs-root/usr/lib/libmod_video.so new file mode 100755 index 0000000..b6776e0 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_video.so differ diff --git a/squashfs-root/usr/lib/libmod_wm.so b/squashfs-root/usr/lib/libmod_wm.so new file mode 100755 index 0000000..5f1b6a0 Binary files /dev/null and b/squashfs-root/usr/lib/libmod_wm.so differ diff --git a/squashfs-root/usr/lib/libmount.so b/squashfs-root/usr/lib/libmount.so new file mode 120000 index 0000000..4592460 --- /dev/null +++ b/squashfs-root/usr/lib/libmount.so @@ -0,0 +1 @@ +../../lib/libmount.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libmouse.so b/squashfs-root/usr/lib/libmouse.so new file mode 100755 index 0000000..71740fd Binary files /dev/null and b/squashfs-root/usr/lib/libmouse.so differ diff --git a/squashfs-root/usr/lib/libncurses.so b/squashfs-root/usr/lib/libncurses.so new file mode 120000 index 0000000..05c9b57 --- /dev/null +++ b/squashfs-root/usr/lib/libncurses.so @@ -0,0 +1 @@ +libncurses.so.6 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libncurses.so.6 b/squashfs-root/usr/lib/libncurses.so.6 new file mode 120000 index 0000000..11c564f --- /dev/null +++ b/squashfs-root/usr/lib/libncurses.so.6 @@ -0,0 +1 @@ +libncurses.so.6.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libncurses.so.6.0 b/squashfs-root/usr/lib/libncurses.so.6.0 new file mode 100755 index 0000000..69f62d5 Binary files /dev/null and b/squashfs-root/usr/lib/libncurses.so.6.0 differ diff --git a/squashfs-root/usr/lib/libogg.so b/squashfs-root/usr/lib/libogg.so new file mode 120000 index 0000000..98adf09 --- /dev/null +++ b/squashfs-root/usr/lib/libogg.so @@ -0,0 +1 @@ +libogg.so.0.8.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libogg.so.0 b/squashfs-root/usr/lib/libogg.so.0 new file mode 120000 index 0000000..98adf09 --- /dev/null +++ b/squashfs-root/usr/lib/libogg.so.0 @@ -0,0 +1 @@ +libogg.so.0.8.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libogg.so.0.8.3 b/squashfs-root/usr/lib/libogg.so.0.8.3 new file mode 100755 index 0000000..3840d9d Binary files /dev/null and b/squashfs-root/usr/lib/libogg.so.0.8.3 differ diff --git a/squashfs-root/usr/lib/libopenal.so b/squashfs-root/usr/lib/libopenal.so new file mode 120000 index 0000000..fe266de --- /dev/null +++ b/squashfs-root/usr/lib/libopenal.so @@ -0,0 +1 @@ +libopenal.so.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libopenal.so.1 b/squashfs-root/usr/lib/libopenal.so.1 new file mode 120000 index 0000000..3e40baf --- /dev/null +++ b/squashfs-root/usr/lib/libopenal.so.1 @@ -0,0 +1 @@ +libopenal.so.1.18.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libopenal.so.1.18.1 b/squashfs-root/usr/lib/libopenal.so.1.18.1 new file mode 100755 index 0000000..4fdd66e Binary files /dev/null and b/squashfs-root/usr/lib/libopenal.so.1.18.1 differ diff --git a/squashfs-root/usr/lib/libpanel.so b/squashfs-root/usr/lib/libpanel.so new file mode 120000 index 0000000..997f51f --- /dev/null +++ b/squashfs-root/usr/lib/libpanel.so @@ -0,0 +1 @@ +libpanel.so.6 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpanel.so.6 b/squashfs-root/usr/lib/libpanel.so.6 new file mode 120000 index 0000000..c46664d --- /dev/null +++ b/squashfs-root/usr/lib/libpanel.so.6 @@ -0,0 +1 @@ +libpanel.so.6.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpanel.so.6.0 b/squashfs-root/usr/lib/libpanel.so.6.0 new file mode 100755 index 0000000..ee6fa7c Binary files /dev/null and b/squashfs-root/usr/lib/libpanel.so.6.0 differ diff --git a/squashfs-root/usr/lib/libpango-1.0.so b/squashfs-root/usr/lib/libpango-1.0.so new file mode 120000 index 0000000..ff1459e --- /dev/null +++ b/squashfs-root/usr/lib/libpango-1.0.so @@ -0,0 +1 @@ +libpango-1.0.so.0.4000.14 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpango-1.0.so.0 b/squashfs-root/usr/lib/libpango-1.0.so.0 new file mode 120000 index 0000000..ff1459e --- /dev/null +++ b/squashfs-root/usr/lib/libpango-1.0.so.0 @@ -0,0 +1 @@ +libpango-1.0.so.0.4000.14 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpango-1.0.so.0.4000.14 b/squashfs-root/usr/lib/libpango-1.0.so.0.4000.14 new file mode 100755 index 0000000..34eec5b Binary files /dev/null and b/squashfs-root/usr/lib/libpango-1.0.so.0.4000.14 differ diff --git a/squashfs-root/usr/lib/libpangocairo-1.0.so b/squashfs-root/usr/lib/libpangocairo-1.0.so new file mode 120000 index 0000000..05aed97 --- /dev/null +++ b/squashfs-root/usr/lib/libpangocairo-1.0.so @@ -0,0 +1 @@ +libpangocairo-1.0.so.0.4000.14 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpangocairo-1.0.so.0 b/squashfs-root/usr/lib/libpangocairo-1.0.so.0 new file mode 120000 index 0000000..05aed97 --- /dev/null +++ b/squashfs-root/usr/lib/libpangocairo-1.0.so.0 @@ -0,0 +1 @@ +libpangocairo-1.0.so.0.4000.14 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpangocairo-1.0.so.0.4000.14 b/squashfs-root/usr/lib/libpangocairo-1.0.so.0.4000.14 new file mode 100755 index 0000000..5f907d7 Binary files /dev/null and b/squashfs-root/usr/lib/libpangocairo-1.0.so.0.4000.14 differ diff --git a/squashfs-root/usr/lib/libpangoft2-1.0.so b/squashfs-root/usr/lib/libpangoft2-1.0.so new file mode 120000 index 0000000..fa8a58d --- /dev/null +++ b/squashfs-root/usr/lib/libpangoft2-1.0.so @@ -0,0 +1 @@ +libpangoft2-1.0.so.0.4000.14 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpangoft2-1.0.so.0 b/squashfs-root/usr/lib/libpangoft2-1.0.so.0 new file mode 120000 index 0000000..fa8a58d --- /dev/null +++ b/squashfs-root/usr/lib/libpangoft2-1.0.so.0 @@ -0,0 +1 @@ +libpangoft2-1.0.so.0.4000.14 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpangoft2-1.0.so.0.4000.14 b/squashfs-root/usr/lib/libpangoft2-1.0.so.0.4000.14 new file mode 100755 index 0000000..2405601 Binary files /dev/null and b/squashfs-root/usr/lib/libpangoft2-1.0.so.0.4000.14 differ diff --git a/squashfs-root/usr/lib/libpangoxft-1.0.so b/squashfs-root/usr/lib/libpangoxft-1.0.so new file mode 120000 index 0000000..bc6fc13 --- /dev/null +++ b/squashfs-root/usr/lib/libpangoxft-1.0.so @@ -0,0 +1 @@ +libpangoxft-1.0.so.0.4000.14 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpangoxft-1.0.so.0 b/squashfs-root/usr/lib/libpangoxft-1.0.so.0 new file mode 120000 index 0000000..bc6fc13 --- /dev/null +++ b/squashfs-root/usr/lib/libpangoxft-1.0.so.0 @@ -0,0 +1 @@ +libpangoxft-1.0.so.0.4000.14 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpangoxft-1.0.so.0.4000.14 b/squashfs-root/usr/lib/libpangoxft-1.0.so.0.4000.14 new file mode 100755 index 0000000..f5b8ca8 Binary files /dev/null and b/squashfs-root/usr/lib/libpangoxft-1.0.so.0.4000.14 differ diff --git a/squashfs-root/usr/lib/libpciaccess.so b/squashfs-root/usr/lib/libpciaccess.so new file mode 120000 index 0000000..5328ad6 --- /dev/null +++ b/squashfs-root/usr/lib/libpciaccess.so @@ -0,0 +1 @@ +libpciaccess.so.0.11.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpciaccess.so.0 b/squashfs-root/usr/lib/libpciaccess.so.0 new file mode 120000 index 0000000..5328ad6 --- /dev/null +++ b/squashfs-root/usr/lib/libpciaccess.so.0 @@ -0,0 +1 @@ +libpciaccess.so.0.11.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpciaccess.so.0.11.1 b/squashfs-root/usr/lib/libpciaccess.so.0.11.1 new file mode 100755 index 0000000..09b7f61 Binary files /dev/null and b/squashfs-root/usr/lib/libpciaccess.so.0.11.1 differ diff --git a/squashfs-root/usr/lib/libpcre.so b/squashfs-root/usr/lib/libpcre.so new file mode 120000 index 0000000..53a1639 --- /dev/null +++ b/squashfs-root/usr/lib/libpcre.so @@ -0,0 +1 @@ +libpcre.so.1.2.9 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpcre.so.1 b/squashfs-root/usr/lib/libpcre.so.1 new file mode 120000 index 0000000..53a1639 --- /dev/null +++ b/squashfs-root/usr/lib/libpcre.so.1 @@ -0,0 +1 @@ +libpcre.so.1.2.9 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpcre.so.1.2.9 b/squashfs-root/usr/lib/libpcre.so.1.2.9 new file mode 100755 index 0000000..e0dec01 Binary files /dev/null and b/squashfs-root/usr/lib/libpcre.so.1.2.9 differ diff --git a/squashfs-root/usr/lib/libpcrecpp.so b/squashfs-root/usr/lib/libpcrecpp.so new file mode 120000 index 0000000..78f99b8 --- /dev/null +++ b/squashfs-root/usr/lib/libpcrecpp.so @@ -0,0 +1 @@ +libpcrecpp.so.0.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpcrecpp.so.0 b/squashfs-root/usr/lib/libpcrecpp.so.0 new file mode 120000 index 0000000..78f99b8 --- /dev/null +++ b/squashfs-root/usr/lib/libpcrecpp.so.0 @@ -0,0 +1 @@ +libpcrecpp.so.0.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpcrecpp.so.0.0.1 b/squashfs-root/usr/lib/libpcrecpp.so.0.0.1 new file mode 100755 index 0000000..e328264 Binary files /dev/null and b/squashfs-root/usr/lib/libpcrecpp.so.0.0.1 differ diff --git a/squashfs-root/usr/lib/libpcreposix.so b/squashfs-root/usr/lib/libpcreposix.so new file mode 120000 index 0000000..72af995 --- /dev/null +++ b/squashfs-root/usr/lib/libpcreposix.so @@ -0,0 +1 @@ +libpcreposix.so.0.0.5 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpcreposix.so.0 b/squashfs-root/usr/lib/libpcreposix.so.0 new file mode 120000 index 0000000..72af995 --- /dev/null +++ b/squashfs-root/usr/lib/libpcreposix.so.0 @@ -0,0 +1 @@ +libpcreposix.so.0.0.5 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpcreposix.so.0.0.5 b/squashfs-root/usr/lib/libpcreposix.so.0.0.5 new file mode 100755 index 0000000..0e2fdbc Binary files /dev/null and b/squashfs-root/usr/lib/libpcreposix.so.0.0.5 differ diff --git a/squashfs-root/usr/lib/libpixman-1.so b/squashfs-root/usr/lib/libpixman-1.so new file mode 120000 index 0000000..37a0e8b --- /dev/null +++ b/squashfs-root/usr/lib/libpixman-1.so @@ -0,0 +1 @@ +libpixman-1.so.0.34.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpixman-1.so.0 b/squashfs-root/usr/lib/libpixman-1.so.0 new file mode 120000 index 0000000..37a0e8b --- /dev/null +++ b/squashfs-root/usr/lib/libpixman-1.so.0 @@ -0,0 +1 @@ +libpixman-1.so.0.34.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpixman-1.so.0.34.0 b/squashfs-root/usr/lib/libpixman-1.so.0.34.0 new file mode 100755 index 0000000..a32aff4 Binary files /dev/null and b/squashfs-root/usr/lib/libpixman-1.so.0.34.0 differ diff --git a/squashfs-root/usr/lib/libpng.so b/squashfs-root/usr/lib/libpng.so new file mode 120000 index 0000000..e41f2c3 --- /dev/null +++ b/squashfs-root/usr/lib/libpng.so @@ -0,0 +1 @@ +libpng16.so \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpng16.so b/squashfs-root/usr/lib/libpng16.so new file mode 120000 index 0000000..ff817eb --- /dev/null +++ b/squashfs-root/usr/lib/libpng16.so @@ -0,0 +1 @@ +libpng16.so.16.34.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpng16.so.16 b/squashfs-root/usr/lib/libpng16.so.16 new file mode 120000 index 0000000..ff817eb --- /dev/null +++ b/squashfs-root/usr/lib/libpng16.so.16 @@ -0,0 +1 @@ +libpng16.so.16.34.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libpng16.so.16.34.0 b/squashfs-root/usr/lib/libpng16.so.16.34.0 new file mode 100755 index 0000000..5fbb2e4 Binary files /dev/null and b/squashfs-root/usr/lib/libpng16.so.16.34.0 differ diff --git a/squashfs-root/usr/lib/libreadline.so b/squashfs-root/usr/lib/libreadline.so new file mode 120000 index 0000000..2d0c876 --- /dev/null +++ b/squashfs-root/usr/lib/libreadline.so @@ -0,0 +1 @@ +libreadline.so.7 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libreadline.so.7 b/squashfs-root/usr/lib/libreadline.so.7 new file mode 120000 index 0000000..c3bff79 --- /dev/null +++ b/squashfs-root/usr/lib/libreadline.so.7 @@ -0,0 +1 @@ +libreadline.so.7.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libreadline.so.7.0 b/squashfs-root/usr/lib/libreadline.so.7.0 new file mode 100755 index 0000000..9c9430b Binary files /dev/null and b/squashfs-root/usr/lib/libreadline.so.7.0 differ diff --git a/squashfs-root/usr/lib/librender.so b/squashfs-root/usr/lib/librender.so new file mode 100755 index 0000000..6006402 Binary files /dev/null and b/squashfs-root/usr/lib/librender.so differ diff --git a/squashfs-root/usr/lib/libscroll.so b/squashfs-root/usr/lib/libscroll.so new file mode 100755 index 0000000..0f58146 Binary files /dev/null and b/squashfs-root/usr/lib/libscroll.so differ diff --git a/squashfs-root/usr/lib/libsdlhandler.so b/squashfs-root/usr/lib/libsdlhandler.so new file mode 100755 index 0000000..3696758 Binary files /dev/null and b/squashfs-root/usr/lib/libsdlhandler.so differ diff --git a/squashfs-root/usr/lib/libsha1.so b/squashfs-root/usr/lib/libsha1.so new file mode 120000 index 0000000..f3ff38a --- /dev/null +++ b/squashfs-root/usr/lib/libsha1.so @@ -0,0 +1 @@ +libsha1.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libsha1.so.0 b/squashfs-root/usr/lib/libsha1.so.0 new file mode 120000 index 0000000..f3ff38a --- /dev/null +++ b/squashfs-root/usr/lib/libsha1.so.0 @@ -0,0 +1 @@ +libsha1.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libsha1.so.0.0.0 b/squashfs-root/usr/lib/libsha1.so.0.0.0 new file mode 100755 index 0000000..494ebf8 Binary files /dev/null and b/squashfs-root/usr/lib/libsha1.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libsigc-2.0.so b/squashfs-root/usr/lib/libsigc-2.0.so new file mode 120000 index 0000000..ba038a9 --- /dev/null +++ b/squashfs-root/usr/lib/libsigc-2.0.so @@ -0,0 +1 @@ +libsigc-2.0.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libsigc-2.0.so.0 b/squashfs-root/usr/lib/libsigc-2.0.so.0 new file mode 120000 index 0000000..ba038a9 --- /dev/null +++ b/squashfs-root/usr/lib/libsigc-2.0.so.0 @@ -0,0 +1 @@ +libsigc-2.0.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libsigc-2.0.so.0.0.0 b/squashfs-root/usr/lib/libsigc-2.0.so.0.0.0 new file mode 100755 index 0000000..8cb76ab Binary files /dev/null and b/squashfs-root/usr/lib/libsigc-2.0.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libsndfile.so b/squashfs-root/usr/lib/libsndfile.so new file mode 120000 index 0000000..808d73d --- /dev/null +++ b/squashfs-root/usr/lib/libsndfile.so @@ -0,0 +1 @@ +libsndfile.so.1.0.28 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libsndfile.so.1 b/squashfs-root/usr/lib/libsndfile.so.1 new file mode 120000 index 0000000..808d73d --- /dev/null +++ b/squashfs-root/usr/lib/libsndfile.so.1 @@ -0,0 +1 @@ +libsndfile.so.1.0.28 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libsndfile.so.1.0.28 b/squashfs-root/usr/lib/libsndfile.so.1.0.28 new file mode 100755 index 0000000..c53aebc Binary files /dev/null and b/squashfs-root/usr/lib/libsndfile.so.1.0.28 differ diff --git a/squashfs-root/usr/lib/libspeex.so b/squashfs-root/usr/lib/libspeex.so new file mode 120000 index 0000000..2896393 --- /dev/null +++ b/squashfs-root/usr/lib/libspeex.so @@ -0,0 +1 @@ +libspeex.so.1.5.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libspeex.so.1 b/squashfs-root/usr/lib/libspeex.so.1 new file mode 120000 index 0000000..2896393 --- /dev/null +++ b/squashfs-root/usr/lib/libspeex.so.1 @@ -0,0 +1 @@ +libspeex.so.1.5.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libspeex.so.1.5.0 b/squashfs-root/usr/lib/libspeex.so.1.5.0 new file mode 100755 index 0000000..a66836a Binary files /dev/null and b/squashfs-root/usr/lib/libspeex.so.1.5.0 differ diff --git a/squashfs-root/usr/lib/libspeexdsp.so b/squashfs-root/usr/lib/libspeexdsp.so new file mode 120000 index 0000000..a197d4c --- /dev/null +++ b/squashfs-root/usr/lib/libspeexdsp.so @@ -0,0 +1 @@ +libspeexdsp.so.1.5.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libspeexdsp.so.1 b/squashfs-root/usr/lib/libspeexdsp.so.1 new file mode 120000 index 0000000..a197d4c --- /dev/null +++ b/squashfs-root/usr/lib/libspeexdsp.so.1 @@ -0,0 +1 @@ +libspeexdsp.so.1.5.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libspeexdsp.so.1.5.0 b/squashfs-root/usr/lib/libspeexdsp.so.1.5.0 new file mode 100755 index 0000000..9790470 Binary files /dev/null and b/squashfs-root/usr/lib/libspeexdsp.so.1.5.0 differ diff --git a/squashfs-root/usr/lib/libstdc++.so b/squashfs-root/usr/lib/libstdc++.so new file mode 120000 index 0000000..a6d5db9 --- /dev/null +++ b/squashfs-root/usr/lib/libstdc++.so @@ -0,0 +1 @@ +libstdc++.so.6.0.24 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libstdc++.so.6 b/squashfs-root/usr/lib/libstdc++.so.6 new file mode 120000 index 0000000..a6d5db9 --- /dev/null +++ b/squashfs-root/usr/lib/libstdc++.so.6 @@ -0,0 +1 @@ +libstdc++.so.6.0.24 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libstdc++.so.6.0.24 b/squashfs-root/usr/lib/libstdc++.so.6.0.24 new file mode 100755 index 0000000..9c85268 Binary files /dev/null and b/squashfs-root/usr/lib/libstdc++.so.6.0.24 differ diff --git a/squashfs-root/usr/lib/libstdc++.so.6.0.24-gdb.py b/squashfs-root/usr/lib/libstdc++.so.6.0.24-gdb.py new file mode 100644 index 0000000..bc5b294 --- /dev/null +++ b/squashfs-root/usr/lib/libstdc++.so.6.0.24-gdb.py @@ -0,0 +1,61 @@ +# -*- python -*- +# Copyright (C) 2009-2017 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import sys +import gdb +import os +import os.path + +pythondir = '/opt/miyoo/share/gcc-7.3.0/python' +libdir = '/opt/miyoo/arm-miyoo-linux-uclibcgnueabi/lib' + +# This file might be loaded when there is no current objfile. This +# can happen if the user loads it manually. In this case we don't +# update sys.path; instead we just hope the user managed to do that +# beforehand. +if gdb.current_objfile () is not None: + # Update module path. We want to find the relative path from libdir + # to pythondir, and then we want to apply that relative path to the + # directory holding the objfile with which this file is associated. + # This preserves relocatability of the gcc tree. + + # Do a simple normalization that removes duplicate separators. + pythondir = os.path.normpath (pythondir) + libdir = os.path.normpath (libdir) + + prefix = os.path.commonprefix ([libdir, pythondir]) + # In some bizarre configuration we might have found a match in the + # middle of a directory name. + if prefix[-1] != '/': + prefix = os.path.dirname (prefix) + '/' + + # Strip off the prefix. + pythondir = pythondir[len (prefix):] + libdir = libdir[len (prefix):] + + # Compute the ".."s needed to get from libdir to the prefix. + dotdots = ('..' + os.sep) * len (libdir.split (os.sep)) + + objfile = gdb.current_objfile ().filename + dir_ = os.path.join (os.path.dirname (objfile), dotdots, pythondir) + + if not dir_ in sys.path: + sys.path.insert(0, dir_) + +# Call a function as a plain import would not execute body of the included file +# on repeated reloads of this object file. +from libstdcxx.v6 import register_libstdcxx_printers +register_libstdcxx_printers(gdb.current_objfile()) diff --git a/squashfs-root/usr/lib/libsvg-cairo.so b/squashfs-root/usr/lib/libsvg-cairo.so new file mode 120000 index 0000000..10de4d7 --- /dev/null +++ b/squashfs-root/usr/lib/libsvg-cairo.so @@ -0,0 +1 @@ +libsvg-cairo.so.1.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libsvg-cairo.so.1 b/squashfs-root/usr/lib/libsvg-cairo.so.1 new file mode 120000 index 0000000..10de4d7 --- /dev/null +++ b/squashfs-root/usr/lib/libsvg-cairo.so.1 @@ -0,0 +1 @@ +libsvg-cairo.so.1.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libsvg-cairo.so.1.0.1 b/squashfs-root/usr/lib/libsvg-cairo.so.1.0.1 new file mode 100755 index 0000000..792aa5c Binary files /dev/null and b/squashfs-root/usr/lib/libsvg-cairo.so.1.0.1 differ diff --git a/squashfs-root/usr/lib/libsvg.so b/squashfs-root/usr/lib/libsvg.so new file mode 120000 index 0000000..232a8e9 --- /dev/null +++ b/squashfs-root/usr/lib/libsvg.so @@ -0,0 +1 @@ +libsvg.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libsvg.so.1 b/squashfs-root/usr/lib/libsvg.so.1 new file mode 120000 index 0000000..232a8e9 --- /dev/null +++ b/squashfs-root/usr/lib/libsvg.so.1 @@ -0,0 +1 @@ +libsvg.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libsvg.so.1.0.0 b/squashfs-root/usr/lib/libsvg.so.1.0.0 new file mode 100755 index 0000000..be3f61c Binary files /dev/null and b/squashfs-root/usr/lib/libsvg.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libtext.so b/squashfs-root/usr/lib/libtext.so new file mode 100755 index 0000000..8698055 Binary files /dev/null and b/squashfs-root/usr/lib/libtext.so differ diff --git a/squashfs-root/usr/lib/libtheora.so b/squashfs-root/usr/lib/libtheora.so new file mode 120000 index 0000000..1879265 --- /dev/null +++ b/squashfs-root/usr/lib/libtheora.so @@ -0,0 +1 @@ +libtheora.so.0.3.10 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtheora.so.0 b/squashfs-root/usr/lib/libtheora.so.0 new file mode 120000 index 0000000..1879265 --- /dev/null +++ b/squashfs-root/usr/lib/libtheora.so.0 @@ -0,0 +1 @@ +libtheora.so.0.3.10 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtheora.so.0.3.10 b/squashfs-root/usr/lib/libtheora.so.0.3.10 new file mode 100755 index 0000000..5ab9568 Binary files /dev/null and b/squashfs-root/usr/lib/libtheora.so.0.3.10 differ diff --git a/squashfs-root/usr/lib/libtheoradec.so b/squashfs-root/usr/lib/libtheoradec.so new file mode 120000 index 0000000..e310a09 --- /dev/null +++ b/squashfs-root/usr/lib/libtheoradec.so @@ -0,0 +1 @@ +libtheoradec.so.1.1.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtheoradec.so.1 b/squashfs-root/usr/lib/libtheoradec.so.1 new file mode 120000 index 0000000..e310a09 --- /dev/null +++ b/squashfs-root/usr/lib/libtheoradec.so.1 @@ -0,0 +1 @@ +libtheoradec.so.1.1.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtheoradec.so.1.1.4 b/squashfs-root/usr/lib/libtheoradec.so.1.1.4 new file mode 100755 index 0000000..f5d7923 Binary files /dev/null and b/squashfs-root/usr/lib/libtheoradec.so.1.1.4 differ diff --git a/squashfs-root/usr/lib/libtheoraenc.so b/squashfs-root/usr/lib/libtheoraenc.so new file mode 120000 index 0000000..813f43e --- /dev/null +++ b/squashfs-root/usr/lib/libtheoraenc.so @@ -0,0 +1 @@ +libtheoraenc.so.1.1.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtheoraenc.so.1 b/squashfs-root/usr/lib/libtheoraenc.so.1 new file mode 120000 index 0000000..813f43e --- /dev/null +++ b/squashfs-root/usr/lib/libtheoraenc.so.1 @@ -0,0 +1 @@ +libtheoraenc.so.1.1.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtheoraenc.so.1.1.2 b/squashfs-root/usr/lib/libtheoraenc.so.1.1.2 new file mode 100755 index 0000000..345bea7 Binary files /dev/null and b/squashfs-root/usr/lib/libtheoraenc.so.1.1.2 differ diff --git a/squashfs-root/usr/lib/libtiff.so b/squashfs-root/usr/lib/libtiff.so new file mode 120000 index 0000000..9d3308b --- /dev/null +++ b/squashfs-root/usr/lib/libtiff.so @@ -0,0 +1 @@ +libtiff.so.5.2.6 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtiff.so.5 b/squashfs-root/usr/lib/libtiff.so.5 new file mode 120000 index 0000000..9d3308b --- /dev/null +++ b/squashfs-root/usr/lib/libtiff.so.5 @@ -0,0 +1 @@ +libtiff.so.5.2.6 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtiff.so.5.2.6 b/squashfs-root/usr/lib/libtiff.so.5.2.6 new file mode 100755 index 0000000..df156aa Binary files /dev/null and b/squashfs-root/usr/lib/libtiff.so.5.2.6 differ diff --git a/squashfs-root/usr/lib/libtinyxml.so b/squashfs-root/usr/lib/libtinyxml.so new file mode 120000 index 0000000..7977afb --- /dev/null +++ b/squashfs-root/usr/lib/libtinyxml.so @@ -0,0 +1 @@ +libtinyxml.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtinyxml.so.0 b/squashfs-root/usr/lib/libtinyxml.so.0 new file mode 120000 index 0000000..7977afb --- /dev/null +++ b/squashfs-root/usr/lib/libtinyxml.so.0 @@ -0,0 +1 @@ +libtinyxml.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtinyxml.so.0.0.0 b/squashfs-root/usr/lib/libtinyxml.so.0.0.0 new file mode 100755 index 0000000..4010eef Binary files /dev/null and b/squashfs-root/usr/lib/libtinyxml.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libtinyxml2.so b/squashfs-root/usr/lib/libtinyxml2.so new file mode 120000 index 0000000..0491ae4 --- /dev/null +++ b/squashfs-root/usr/lib/libtinyxml2.so @@ -0,0 +1 @@ +libtinyxml2.so.4 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtinyxml2.so.4 b/squashfs-root/usr/lib/libtinyxml2.so.4 new file mode 120000 index 0000000..485d7a9 --- /dev/null +++ b/squashfs-root/usr/lib/libtinyxml2.so.4 @@ -0,0 +1 @@ +libtinyxml2.so.4.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libtinyxml2.so.4.0.1 b/squashfs-root/usr/lib/libtinyxml2.so.4.0.1 new file mode 100755 index 0000000..6eee294 Binary files /dev/null and b/squashfs-root/usr/lib/libtinyxml2.so.4.0.1 differ diff --git a/squashfs-root/usr/lib/libts.so b/squashfs-root/usr/lib/libts.so new file mode 120000 index 0000000..00278ff --- /dev/null +++ b/squashfs-root/usr/lib/libts.so @@ -0,0 +1 @@ +libts.so.0.9.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libts.so.0 b/squashfs-root/usr/lib/libts.so.0 new file mode 120000 index 0000000..00278ff --- /dev/null +++ b/squashfs-root/usr/lib/libts.so.0 @@ -0,0 +1 @@ +libts.so.0.9.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libts.so.0.9.0 b/squashfs-root/usr/lib/libts.so.0.9.0 new file mode 100755 index 0000000..b8b6950 Binary files /dev/null and b/squashfs-root/usr/lib/libts.so.0.9.0 differ diff --git a/squashfs-root/usr/lib/libuuid.so b/squashfs-root/usr/lib/libuuid.so new file mode 120000 index 0000000..464fe3d --- /dev/null +++ b/squashfs-root/usr/lib/libuuid.so @@ -0,0 +1 @@ +../../lib/libuuid.so.1.3.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libvideo.so b/squashfs-root/usr/lib/libvideo.so new file mode 100755 index 0000000..458cbb3 Binary files /dev/null and b/squashfs-root/usr/lib/libvideo.so differ diff --git a/squashfs-root/usr/lib/libvorbis.so b/squashfs-root/usr/lib/libvorbis.so new file mode 120000 index 0000000..771c635 --- /dev/null +++ b/squashfs-root/usr/lib/libvorbis.so @@ -0,0 +1 @@ +libvorbis.so.0.4.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libvorbis.so.0 b/squashfs-root/usr/lib/libvorbis.so.0 new file mode 120000 index 0000000..771c635 --- /dev/null +++ b/squashfs-root/usr/lib/libvorbis.so.0 @@ -0,0 +1 @@ +libvorbis.so.0.4.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libvorbis.so.0.4.8 b/squashfs-root/usr/lib/libvorbis.so.0.4.8 new file mode 100755 index 0000000..d992139 Binary files /dev/null and b/squashfs-root/usr/lib/libvorbis.so.0.4.8 differ diff --git a/squashfs-root/usr/lib/libvorbisenc.so b/squashfs-root/usr/lib/libvorbisenc.so new file mode 120000 index 0000000..ab1e585 --- /dev/null +++ b/squashfs-root/usr/lib/libvorbisenc.so @@ -0,0 +1 @@ +libvorbisenc.so.2.0.11 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libvorbisenc.so.2 b/squashfs-root/usr/lib/libvorbisenc.so.2 new file mode 120000 index 0000000..ab1e585 --- /dev/null +++ b/squashfs-root/usr/lib/libvorbisenc.so.2 @@ -0,0 +1 @@ +libvorbisenc.so.2.0.11 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libvorbisenc.so.2.0.11 b/squashfs-root/usr/lib/libvorbisenc.so.2.0.11 new file mode 100755 index 0000000..76f6851 Binary files /dev/null and b/squashfs-root/usr/lib/libvorbisenc.so.2.0.11 differ diff --git a/squashfs-root/usr/lib/libvorbisfile.so b/squashfs-root/usr/lib/libvorbisfile.so new file mode 120000 index 0000000..f59e178 --- /dev/null +++ b/squashfs-root/usr/lib/libvorbisfile.so @@ -0,0 +1 @@ +libvorbisfile.so.3.3.7 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libvorbisfile.so.3 b/squashfs-root/usr/lib/libvorbisfile.so.3 new file mode 120000 index 0000000..f59e178 --- /dev/null +++ b/squashfs-root/usr/lib/libvorbisfile.so.3 @@ -0,0 +1 @@ +libvorbisfile.so.3.3.7 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libvorbisfile.so.3.3.7 b/squashfs-root/usr/lib/libvorbisfile.so.3.3.7 new file mode 100755 index 0000000..72cd6da Binary files /dev/null and b/squashfs-root/usr/lib/libvorbisfile.so.3.3.7 differ diff --git a/squashfs-root/usr/lib/libvorbisidec.so b/squashfs-root/usr/lib/libvorbisidec.so new file mode 120000 index 0000000..621a148 --- /dev/null +++ b/squashfs-root/usr/lib/libvorbisidec.so @@ -0,0 +1 @@ +libvorbisidec.so.1.0.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libvorbisidec.so.1 b/squashfs-root/usr/lib/libvorbisidec.so.1 new file mode 120000 index 0000000..621a148 --- /dev/null +++ b/squashfs-root/usr/lib/libvorbisidec.so.1 @@ -0,0 +1 @@ +libvorbisidec.so.1.0.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libvorbisidec.so.1.0.3 b/squashfs-root/usr/lib/libvorbisidec.so.1.0.3 new file mode 100755 index 0000000..13eb6da Binary files /dev/null and b/squashfs-root/usr/lib/libvorbisidec.so.1.0.3 differ diff --git a/squashfs-root/usr/lib/libwebp.so b/squashfs-root/usr/lib/libwebp.so new file mode 120000 index 0000000..82a37fd --- /dev/null +++ b/squashfs-root/usr/lib/libwebp.so @@ -0,0 +1 @@ +libwebp.so.7.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libwebp.so.7 b/squashfs-root/usr/lib/libwebp.so.7 new file mode 120000 index 0000000..82a37fd --- /dev/null +++ b/squashfs-root/usr/lib/libwebp.so.7 @@ -0,0 +1 @@ +libwebp.so.7.0.1 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libwebp.so.7.0.1 b/squashfs-root/usr/lib/libwebp.so.7.0.1 new file mode 100755 index 0000000..a7436c4 Binary files /dev/null and b/squashfs-root/usr/lib/libwebp.so.7.0.1 differ diff --git a/squashfs-root/usr/lib/libwm.so b/squashfs-root/usr/lib/libwm.so new file mode 100755 index 0000000..0a7dfd8 Binary files /dev/null and b/squashfs-root/usr/lib/libwm.so differ diff --git a/squashfs-root/usr/lib/libx264.so b/squashfs-root/usr/lib/libx264.so new file mode 120000 index 0000000..3d5545d --- /dev/null +++ b/squashfs-root/usr/lib/libx264.so @@ -0,0 +1 @@ +libx264.so.152 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libx264.so.152 b/squashfs-root/usr/lib/libx264.so.152 new file mode 100755 index 0000000..b36576a Binary files /dev/null and b/squashfs-root/usr/lib/libx264.so.152 differ diff --git a/squashfs-root/usr/lib/libxcb-composite.so b/squashfs-root/usr/lib/libxcb-composite.so new file mode 120000 index 0000000..b74200d --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-composite.so @@ -0,0 +1 @@ +libxcb-composite.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-composite.so.0 b/squashfs-root/usr/lib/libxcb-composite.so.0 new file mode 120000 index 0000000..b74200d --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-composite.so.0 @@ -0,0 +1 @@ +libxcb-composite.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-composite.so.0.0.0 b/squashfs-root/usr/lib/libxcb-composite.so.0.0.0 new file mode 100755 index 0000000..9eef3f0 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-composite.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-damage.so b/squashfs-root/usr/lib/libxcb-damage.so new file mode 120000 index 0000000..837cb1c --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-damage.so @@ -0,0 +1 @@ +libxcb-damage.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-damage.so.0 b/squashfs-root/usr/lib/libxcb-damage.so.0 new file mode 120000 index 0000000..837cb1c --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-damage.so.0 @@ -0,0 +1 @@ +libxcb-damage.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-damage.so.0.0.0 b/squashfs-root/usr/lib/libxcb-damage.so.0.0.0 new file mode 100755 index 0000000..56343e9 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-damage.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-dpms.so b/squashfs-root/usr/lib/libxcb-dpms.so new file mode 120000 index 0000000..3c058b5 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-dpms.so @@ -0,0 +1 @@ +libxcb-dpms.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-dpms.so.0 b/squashfs-root/usr/lib/libxcb-dpms.so.0 new file mode 120000 index 0000000..3c058b5 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-dpms.so.0 @@ -0,0 +1 @@ +libxcb-dpms.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-dpms.so.0.0.0 b/squashfs-root/usr/lib/libxcb-dpms.so.0.0.0 new file mode 100755 index 0000000..3312b72 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-dpms.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-dri2.so b/squashfs-root/usr/lib/libxcb-dri2.so new file mode 120000 index 0000000..5c29316 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-dri2.so @@ -0,0 +1 @@ +libxcb-dri2.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-dri2.so.0 b/squashfs-root/usr/lib/libxcb-dri2.so.0 new file mode 120000 index 0000000..5c29316 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-dri2.so.0 @@ -0,0 +1 @@ +libxcb-dri2.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-dri2.so.0.0.0 b/squashfs-root/usr/lib/libxcb-dri2.so.0.0.0 new file mode 100755 index 0000000..aa34e7c Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-dri2.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-dri3.so b/squashfs-root/usr/lib/libxcb-dri3.so new file mode 120000 index 0000000..19df299 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-dri3.so @@ -0,0 +1 @@ +libxcb-dri3.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-dri3.so.0 b/squashfs-root/usr/lib/libxcb-dri3.so.0 new file mode 120000 index 0000000..19df299 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-dri3.so.0 @@ -0,0 +1 @@ +libxcb-dri3.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-dri3.so.0.0.0 b/squashfs-root/usr/lib/libxcb-dri3.so.0.0.0 new file mode 100755 index 0000000..8b359e9 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-dri3.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-glx.so b/squashfs-root/usr/lib/libxcb-glx.so new file mode 120000 index 0000000..5c04993 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-glx.so @@ -0,0 +1 @@ +libxcb-glx.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-glx.so.0 b/squashfs-root/usr/lib/libxcb-glx.so.0 new file mode 120000 index 0000000..5c04993 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-glx.so.0 @@ -0,0 +1 @@ +libxcb-glx.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-glx.so.0.0.0 b/squashfs-root/usr/lib/libxcb-glx.so.0.0.0 new file mode 100755 index 0000000..e936251 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-glx.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-present.so b/squashfs-root/usr/lib/libxcb-present.so new file mode 120000 index 0000000..6529069 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-present.so @@ -0,0 +1 @@ +libxcb-present.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-present.so.0 b/squashfs-root/usr/lib/libxcb-present.so.0 new file mode 120000 index 0000000..6529069 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-present.so.0 @@ -0,0 +1 @@ +libxcb-present.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-present.so.0.0.0 b/squashfs-root/usr/lib/libxcb-present.so.0.0.0 new file mode 100755 index 0000000..55c1d6e Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-present.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-randr.so b/squashfs-root/usr/lib/libxcb-randr.so new file mode 120000 index 0000000..853ccd8 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-randr.so @@ -0,0 +1 @@ +libxcb-randr.so.0.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-randr.so.0 b/squashfs-root/usr/lib/libxcb-randr.so.0 new file mode 120000 index 0000000..853ccd8 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-randr.so.0 @@ -0,0 +1 @@ +libxcb-randr.so.0.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-randr.so.0.1.0 b/squashfs-root/usr/lib/libxcb-randr.so.0.1.0 new file mode 100755 index 0000000..654dbac Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-randr.so.0.1.0 differ diff --git a/squashfs-root/usr/lib/libxcb-record.so b/squashfs-root/usr/lib/libxcb-record.so new file mode 120000 index 0000000..963d6da --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-record.so @@ -0,0 +1 @@ +libxcb-record.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-record.so.0 b/squashfs-root/usr/lib/libxcb-record.so.0 new file mode 120000 index 0000000..963d6da --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-record.so.0 @@ -0,0 +1 @@ +libxcb-record.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-record.so.0.0.0 b/squashfs-root/usr/lib/libxcb-record.so.0.0.0 new file mode 100755 index 0000000..2e89496 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-record.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-render.so b/squashfs-root/usr/lib/libxcb-render.so new file mode 120000 index 0000000..717fa7e --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-render.so @@ -0,0 +1 @@ +libxcb-render.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-render.so.0 b/squashfs-root/usr/lib/libxcb-render.so.0 new file mode 120000 index 0000000..717fa7e --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-render.so.0 @@ -0,0 +1 @@ +libxcb-render.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-render.so.0.0.0 b/squashfs-root/usr/lib/libxcb-render.so.0.0.0 new file mode 100755 index 0000000..03b0435 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-render.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-res.so b/squashfs-root/usr/lib/libxcb-res.so new file mode 120000 index 0000000..10190d7 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-res.so @@ -0,0 +1 @@ +libxcb-res.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-res.so.0 b/squashfs-root/usr/lib/libxcb-res.so.0 new file mode 120000 index 0000000..10190d7 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-res.so.0 @@ -0,0 +1 @@ +libxcb-res.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-res.so.0.0.0 b/squashfs-root/usr/lib/libxcb-res.so.0.0.0 new file mode 100755 index 0000000..fd0eba0 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-res.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-screensaver.so b/squashfs-root/usr/lib/libxcb-screensaver.so new file mode 120000 index 0000000..534c291 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-screensaver.so @@ -0,0 +1 @@ +libxcb-screensaver.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-screensaver.so.0 b/squashfs-root/usr/lib/libxcb-screensaver.so.0 new file mode 120000 index 0000000..534c291 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-screensaver.so.0 @@ -0,0 +1 @@ +libxcb-screensaver.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-screensaver.so.0.0.0 b/squashfs-root/usr/lib/libxcb-screensaver.so.0.0.0 new file mode 100755 index 0000000..6ae3d77 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-screensaver.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-shape.so b/squashfs-root/usr/lib/libxcb-shape.so new file mode 120000 index 0000000..4f93062 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-shape.so @@ -0,0 +1 @@ +libxcb-shape.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-shape.so.0 b/squashfs-root/usr/lib/libxcb-shape.so.0 new file mode 120000 index 0000000..4f93062 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-shape.so.0 @@ -0,0 +1 @@ +libxcb-shape.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-shape.so.0.0.0 b/squashfs-root/usr/lib/libxcb-shape.so.0.0.0 new file mode 100755 index 0000000..b8840e2 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-shape.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-shm.so b/squashfs-root/usr/lib/libxcb-shm.so new file mode 120000 index 0000000..31030d6 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-shm.so @@ -0,0 +1 @@ +libxcb-shm.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-shm.so.0 b/squashfs-root/usr/lib/libxcb-shm.so.0 new file mode 120000 index 0000000..31030d6 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-shm.so.0 @@ -0,0 +1 @@ +libxcb-shm.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-shm.so.0.0.0 b/squashfs-root/usr/lib/libxcb-shm.so.0.0.0 new file mode 100755 index 0000000..b494de2 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-shm.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-sync.so b/squashfs-root/usr/lib/libxcb-sync.so new file mode 120000 index 0000000..1c30c95 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-sync.so @@ -0,0 +1 @@ +libxcb-sync.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-sync.so.1 b/squashfs-root/usr/lib/libxcb-sync.so.1 new file mode 120000 index 0000000..1c30c95 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-sync.so.1 @@ -0,0 +1 @@ +libxcb-sync.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-sync.so.1.0.0 b/squashfs-root/usr/lib/libxcb-sync.so.1.0.0 new file mode 100755 index 0000000..10acc7e Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-sync.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-xf86dri.so b/squashfs-root/usr/lib/libxcb-xf86dri.so new file mode 120000 index 0000000..884bcaf --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xf86dri.so @@ -0,0 +1 @@ +libxcb-xf86dri.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xf86dri.so.0 b/squashfs-root/usr/lib/libxcb-xf86dri.so.0 new file mode 120000 index 0000000..884bcaf --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xf86dri.so.0 @@ -0,0 +1 @@ +libxcb-xf86dri.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xf86dri.so.0.0.0 b/squashfs-root/usr/lib/libxcb-xf86dri.so.0.0.0 new file mode 100755 index 0000000..49e9d33 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-xf86dri.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-xfixes.so b/squashfs-root/usr/lib/libxcb-xfixes.so new file mode 120000 index 0000000..25216e8 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xfixes.so @@ -0,0 +1 @@ +libxcb-xfixes.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xfixes.so.0 b/squashfs-root/usr/lib/libxcb-xfixes.so.0 new file mode 120000 index 0000000..25216e8 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xfixes.so.0 @@ -0,0 +1 @@ +libxcb-xfixes.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xfixes.so.0.0.0 b/squashfs-root/usr/lib/libxcb-xfixes.so.0.0.0 new file mode 100755 index 0000000..d0b8d3c Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-xfixes.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-xinerama.so b/squashfs-root/usr/lib/libxcb-xinerama.so new file mode 120000 index 0000000..4af46cc --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xinerama.so @@ -0,0 +1 @@ +libxcb-xinerama.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xinerama.so.0 b/squashfs-root/usr/lib/libxcb-xinerama.so.0 new file mode 120000 index 0000000..4af46cc --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xinerama.so.0 @@ -0,0 +1 @@ +libxcb-xinerama.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xinerama.so.0.0.0 b/squashfs-root/usr/lib/libxcb-xinerama.so.0.0.0 new file mode 100755 index 0000000..ca18fa6 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-xinerama.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-xkb.so b/squashfs-root/usr/lib/libxcb-xkb.so new file mode 120000 index 0000000..12d491d --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xkb.so @@ -0,0 +1 @@ +libxcb-xkb.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xkb.so.1 b/squashfs-root/usr/lib/libxcb-xkb.so.1 new file mode 120000 index 0000000..12d491d --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xkb.so.1 @@ -0,0 +1 @@ +libxcb-xkb.so.1.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xkb.so.1.0.0 b/squashfs-root/usr/lib/libxcb-xkb.so.1.0.0 new file mode 100755 index 0000000..63cb5a2 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-xkb.so.1.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-xtest.so b/squashfs-root/usr/lib/libxcb-xtest.so new file mode 120000 index 0000000..e54fdad --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xtest.so @@ -0,0 +1 @@ +libxcb-xtest.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xtest.so.0 b/squashfs-root/usr/lib/libxcb-xtest.so.0 new file mode 120000 index 0000000..e54fdad --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xtest.so.0 @@ -0,0 +1 @@ +libxcb-xtest.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xtest.so.0.0.0 b/squashfs-root/usr/lib/libxcb-xtest.so.0.0.0 new file mode 100755 index 0000000..e20e090 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-xtest.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-xv.so b/squashfs-root/usr/lib/libxcb-xv.so new file mode 120000 index 0000000..018c0a4 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xv.so @@ -0,0 +1 @@ +libxcb-xv.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xv.so.0 b/squashfs-root/usr/lib/libxcb-xv.so.0 new file mode 120000 index 0000000..018c0a4 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xv.so.0 @@ -0,0 +1 @@ +libxcb-xv.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xv.so.0.0.0 b/squashfs-root/usr/lib/libxcb-xv.so.0.0.0 new file mode 100755 index 0000000..147efc8 Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-xv.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb-xvmc.so b/squashfs-root/usr/lib/libxcb-xvmc.so new file mode 120000 index 0000000..6e7c511 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xvmc.so @@ -0,0 +1 @@ +libxcb-xvmc.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xvmc.so.0 b/squashfs-root/usr/lib/libxcb-xvmc.so.0 new file mode 120000 index 0000000..6e7c511 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb-xvmc.so.0 @@ -0,0 +1 @@ +libxcb-xvmc.so.0.0.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb-xvmc.so.0.0.0 b/squashfs-root/usr/lib/libxcb-xvmc.so.0.0.0 new file mode 100755 index 0000000..996bd5a Binary files /dev/null and b/squashfs-root/usr/lib/libxcb-xvmc.so.0.0.0 differ diff --git a/squashfs-root/usr/lib/libxcb.so b/squashfs-root/usr/lib/libxcb.so new file mode 120000 index 0000000..e858d46 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb.so @@ -0,0 +1 @@ +libxcb.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb.so.1 b/squashfs-root/usr/lib/libxcb.so.1 new file mode 120000 index 0000000..e858d46 --- /dev/null +++ b/squashfs-root/usr/lib/libxcb.so.1 @@ -0,0 +1 @@ +libxcb.so.1.1.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxcb.so.1.1.0 b/squashfs-root/usr/lib/libxcb.so.1.1.0 new file mode 100755 index 0000000..f9991ee Binary files /dev/null and b/squashfs-root/usr/lib/libxcb.so.1.1.0 differ diff --git a/squashfs-root/usr/lib/libxkbfile.so b/squashfs-root/usr/lib/libxkbfile.so new file mode 120000 index 0000000..e469de0 --- /dev/null +++ b/squashfs-root/usr/lib/libxkbfile.so @@ -0,0 +1 @@ +libxkbfile.so.1.0.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxkbfile.so.1 b/squashfs-root/usr/lib/libxkbfile.so.1 new file mode 120000 index 0000000..e469de0 --- /dev/null +++ b/squashfs-root/usr/lib/libxkbfile.so.1 @@ -0,0 +1 @@ +libxkbfile.so.1.0.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxkbfile.so.1.0.2 b/squashfs-root/usr/lib/libxkbfile.so.1.0.2 new file mode 100755 index 0000000..46c2fce Binary files /dev/null and b/squashfs-root/usr/lib/libxkbfile.so.1.0.2 differ diff --git a/squashfs-root/usr/lib/libxml++-2.6.so b/squashfs-root/usr/lib/libxml++-2.6.so new file mode 120000 index 0000000..0c132c6 --- /dev/null +++ b/squashfs-root/usr/lib/libxml++-2.6.so @@ -0,0 +1 @@ +libxml++-2.6.so.2.0.7 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxml++-2.6.so.2 b/squashfs-root/usr/lib/libxml++-2.6.so.2 new file mode 120000 index 0000000..0c132c6 --- /dev/null +++ b/squashfs-root/usr/lib/libxml++-2.6.so.2 @@ -0,0 +1 @@ +libxml++-2.6.so.2.0.7 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxml++-2.6.so.2.0.7 b/squashfs-root/usr/lib/libxml++-2.6.so.2.0.7 new file mode 100755 index 0000000..ccd0d8f Binary files /dev/null and b/squashfs-root/usr/lib/libxml++-2.6.so.2.0.7 differ diff --git a/squashfs-root/usr/lib/libxml++-2.6/include/libxml++config.h b/squashfs-root/usr/lib/libxml++-2.6/include/libxml++config.h new file mode 100644 index 0000000..89d9513 --- /dev/null +++ b/squashfs-root/usr/lib/libxml++-2.6/include/libxml++config.h @@ -0,0 +1,40 @@ +/* libxml++config.h. Generated from libxml++config.h.in by configure. */ +#ifndef _LIBXMLPP_CONFIG_H +#define _LIBXMLPP_CONFIG_H + +#include + +/* Define to omit deprecated API from the library. */ +/* #undef LIBXMLXX_DISABLE_DEPRECATED */ + +/* Defined if the C++ library supports std::exception_ptr. */ +#define LIBXMLXX_HAVE_EXCEPTION_PTR 1 + +/* This is always set. This is only for backwards compatibility. */ +#define LIBXMLCPP_EXCEPTIONS_ENABLED 1 + +/* Major version number of libxml++. */ +#define LIBXMLXX_MAJOR_VERSION 2 + +/* Minor version number of libxml++. */ +#define LIBXMLXX_MINOR_VERSION 40 + +/* Micro version number of libxml++. */ +#define LIBXMLXX_MICRO_VERSION 1 + +#ifdef GLIBMM_DLL + #if defined(LIBXMLPP_BUILD) && defined(_WINDLL) + // Do not dllexport as it is handled by gendef on MSVC + #define LIBXMLPP_API + #elif !defined(LIBXMLPP_BUILD) + #define LIBXMLPP_API __declspec(dllimport) + #else + /* Build a static library */ + #define LIBXMLPP_API + #endif /* LIBXMLPP_BUILD - _WINDLL */ +#else + #define LIBXMLPP_API +#endif /* GLIBMM_DLL */ + +#endif /* _LIBXMLPP_CONFIG_H */ + diff --git a/squashfs-root/usr/lib/libxml2.so b/squashfs-root/usr/lib/libxml2.so new file mode 120000 index 0000000..6e79340 --- /dev/null +++ b/squashfs-root/usr/lib/libxml2.so @@ -0,0 +1 @@ +libxml2.so.2.9.7 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxml2.so.2 b/squashfs-root/usr/lib/libxml2.so.2 new file mode 120000 index 0000000..6e79340 --- /dev/null +++ b/squashfs-root/usr/lib/libxml2.so.2 @@ -0,0 +1 @@ +libxml2.so.2.9.7 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxml2.so.2.9.7 b/squashfs-root/usr/lib/libxml2.so.2.9.7 new file mode 100755 index 0000000..3f800f9 Binary files /dev/null and b/squashfs-root/usr/lib/libxml2.so.2.9.7 differ diff --git a/squashfs-root/usr/lib/libxmlrpc++.so b/squashfs-root/usr/lib/libxmlrpc++.so new file mode 120000 index 0000000..7f840dd --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc++.so @@ -0,0 +1 @@ +libxmlrpc++.so.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc++.so.8 b/squashfs-root/usr/lib/libxmlrpc++.so.8 new file mode 120000 index 0000000..7512afe --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc++.so.8 @@ -0,0 +1 @@ +libxmlrpc++.so.8.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc++.so.8.39 b/squashfs-root/usr/lib/libxmlrpc++.so.8.39 new file mode 100755 index 0000000..3ed1216 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc++.so.8.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc.so b/squashfs-root/usr/lib/libxmlrpc.so new file mode 120000 index 0000000..85c50f9 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc.so @@ -0,0 +1 @@ +libxmlrpc.so.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc.so.3 b/squashfs-root/usr/lib/libxmlrpc.so.3 new file mode 120000 index 0000000..6dbba9f --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc.so.3 @@ -0,0 +1 @@ +libxmlrpc.so.3.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc.so.3.39 b/squashfs-root/usr/lib/libxmlrpc.so.3.39 new file mode 100755 index 0000000..f2606cd Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc.so.3.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_abyss++.so b/squashfs-root/usr/lib/libxmlrpc_abyss++.so new file mode 120000 index 0000000..2174e84 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_abyss++.so @@ -0,0 +1 @@ +libxmlrpc_abyss++.so.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_abyss++.so.8 b/squashfs-root/usr/lib/libxmlrpc_abyss++.so.8 new file mode 120000 index 0000000..2768372 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_abyss++.so.8 @@ -0,0 +1 @@ +libxmlrpc_abyss++.so.8.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_abyss++.so.8.39 b/squashfs-root/usr/lib/libxmlrpc_abyss++.so.8.39 new file mode 100755 index 0000000..e7abe49 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_abyss++.so.8.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_abyss.so b/squashfs-root/usr/lib/libxmlrpc_abyss.so new file mode 120000 index 0000000..cd78b6c --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_abyss.so @@ -0,0 +1 @@ +libxmlrpc_abyss.so.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_abyss.so.3 b/squashfs-root/usr/lib/libxmlrpc_abyss.so.3 new file mode 120000 index 0000000..b684c71 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_abyss.so.3 @@ -0,0 +1 @@ +libxmlrpc_abyss.so.3.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_abyss.so.3.39 b/squashfs-root/usr/lib/libxmlrpc_abyss.so.3.39 new file mode 100755 index 0000000..eaac447 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_abyss.so.3.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_client++.so b/squashfs-root/usr/lib/libxmlrpc_client++.so new file mode 120000 index 0000000..089d111 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_client++.so @@ -0,0 +1 @@ +libxmlrpc_client++.so.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_client++.so.8 b/squashfs-root/usr/lib/libxmlrpc_client++.so.8 new file mode 120000 index 0000000..9200889 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_client++.so.8 @@ -0,0 +1 @@ +libxmlrpc_client++.so.8.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_client++.so.8.39 b/squashfs-root/usr/lib/libxmlrpc_client++.so.8.39 new file mode 100755 index 0000000..887541d Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_client++.so.8.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_client.so b/squashfs-root/usr/lib/libxmlrpc_client.so new file mode 120000 index 0000000..977a2ac --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_client.so @@ -0,0 +1 @@ +libxmlrpc_client.so.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_client.so.3 b/squashfs-root/usr/lib/libxmlrpc_client.so.3 new file mode 120000 index 0000000..0e84f15 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_client.so.3 @@ -0,0 +1 @@ +libxmlrpc_client.so.3.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_client.so.3.39 b/squashfs-root/usr/lib/libxmlrpc_client.so.3.39 new file mode 100755 index 0000000..93fa656 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_client.so.3.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_cpp.so b/squashfs-root/usr/lib/libxmlrpc_cpp.so new file mode 120000 index 0000000..9517bf1 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_cpp.so @@ -0,0 +1 @@ +libxmlrpc_cpp.so.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_cpp.so.8 b/squashfs-root/usr/lib/libxmlrpc_cpp.so.8 new file mode 120000 index 0000000..59ff6ab --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_cpp.so.8 @@ -0,0 +1 @@ +libxmlrpc_cpp.so.8.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_cpp.so.8.39 b/squashfs-root/usr/lib/libxmlrpc_cpp.so.8.39 new file mode 100755 index 0000000..0d12553 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_cpp.so.8.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_packetsocket.so b/squashfs-root/usr/lib/libxmlrpc_packetsocket.so new file mode 120000 index 0000000..a491d63 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_packetsocket.so @@ -0,0 +1 @@ +libxmlrpc_packetsocket.so.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_packetsocket.so.8 b/squashfs-root/usr/lib/libxmlrpc_packetsocket.so.8 new file mode 120000 index 0000000..89777ca --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_packetsocket.so.8 @@ -0,0 +1 @@ +libxmlrpc_packetsocket.so.8.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_packetsocket.so.8.39 b/squashfs-root/usr/lib/libxmlrpc_packetsocket.so.8.39 new file mode 100755 index 0000000..f1a67e8 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_packetsocket.so.8.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_server++.so b/squashfs-root/usr/lib/libxmlrpc_server++.so new file mode 120000 index 0000000..827d935 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server++.so @@ -0,0 +1 @@ +libxmlrpc_server++.so.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server++.so.8 b/squashfs-root/usr/lib/libxmlrpc_server++.so.8 new file mode 120000 index 0000000..a415a37 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server++.so.8 @@ -0,0 +1 @@ +libxmlrpc_server++.so.8.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server++.so.8.39 b/squashfs-root/usr/lib/libxmlrpc_server++.so.8.39 new file mode 100755 index 0000000..ead9ff9 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_server++.so.8.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_server.so b/squashfs-root/usr/lib/libxmlrpc_server.so new file mode 120000 index 0000000..3369b5a --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server.so @@ -0,0 +1 @@ +libxmlrpc_server.so.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server.so.3 b/squashfs-root/usr/lib/libxmlrpc_server.so.3 new file mode 120000 index 0000000..6792bd6 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server.so.3 @@ -0,0 +1 @@ +libxmlrpc_server.so.3.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server.so.3.39 b/squashfs-root/usr/lib/libxmlrpc_server.so.3.39 new file mode 100755 index 0000000..1b8de16 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_server.so.3.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_server_abyss++.so b/squashfs-root/usr/lib/libxmlrpc_server_abyss++.so new file mode 120000 index 0000000..691143b --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server_abyss++.so @@ -0,0 +1 @@ +libxmlrpc_server_abyss++.so.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server_abyss++.so.8 b/squashfs-root/usr/lib/libxmlrpc_server_abyss++.so.8 new file mode 120000 index 0000000..d214267 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server_abyss++.so.8 @@ -0,0 +1 @@ +libxmlrpc_server_abyss++.so.8.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server_abyss++.so.8.39 b/squashfs-root/usr/lib/libxmlrpc_server_abyss++.so.8.39 new file mode 100755 index 0000000..9c4b29f Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_server_abyss++.so.8.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_server_abyss.so b/squashfs-root/usr/lib/libxmlrpc_server_abyss.so new file mode 120000 index 0000000..c55aa28 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server_abyss.so @@ -0,0 +1 @@ +libxmlrpc_server_abyss.so.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server_abyss.so.3 b/squashfs-root/usr/lib/libxmlrpc_server_abyss.so.3 new file mode 120000 index 0000000..1c5ce7a --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server_abyss.so.3 @@ -0,0 +1 @@ +libxmlrpc_server_abyss.so.3.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server_abyss.so.3.39 b/squashfs-root/usr/lib/libxmlrpc_server_abyss.so.3.39 new file mode 100755 index 0000000..1db02f7 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_server_abyss.so.3.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_server_cgi++.so b/squashfs-root/usr/lib/libxmlrpc_server_cgi++.so new file mode 120000 index 0000000..b29be0c --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server_cgi++.so @@ -0,0 +1 @@ +libxmlrpc_server_cgi++.so.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server_cgi++.so.8 b/squashfs-root/usr/lib/libxmlrpc_server_cgi++.so.8 new file mode 120000 index 0000000..de90f57 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server_cgi++.so.8 @@ -0,0 +1 @@ +libxmlrpc_server_cgi++.so.8.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server_cgi++.so.8.39 b/squashfs-root/usr/lib/libxmlrpc_server_cgi++.so.8.39 new file mode 100755 index 0000000..874c102 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_server_cgi++.so.8.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_server_cgi.so b/squashfs-root/usr/lib/libxmlrpc_server_cgi.so new file mode 120000 index 0000000..76f5863 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server_cgi.so @@ -0,0 +1 @@ +libxmlrpc_server_cgi.so.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server_cgi.so.3 b/squashfs-root/usr/lib/libxmlrpc_server_cgi.so.3 new file mode 120000 index 0000000..00d8a37 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server_cgi.so.3 @@ -0,0 +1 @@ +libxmlrpc_server_cgi.so.3.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server_cgi.so.3.39 b/squashfs-root/usr/lib/libxmlrpc_server_cgi.so.3.39 new file mode 100755 index 0000000..cd30872 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_server_cgi.so.3.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_server_pstream++.so b/squashfs-root/usr/lib/libxmlrpc_server_pstream++.so new file mode 120000 index 0000000..cc5da5e --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server_pstream++.so @@ -0,0 +1 @@ +libxmlrpc_server_pstream++.so.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server_pstream++.so.8 b/squashfs-root/usr/lib/libxmlrpc_server_pstream++.so.8 new file mode 120000 index 0000000..b5d5ae8 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_server_pstream++.so.8 @@ -0,0 +1 @@ +libxmlrpc_server_pstream++.so.8.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_server_pstream++.so.8.39 b/squashfs-root/usr/lib/libxmlrpc_server_pstream++.so.8.39 new file mode 100755 index 0000000..7c37689 Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_server_pstream++.so.8.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_util++.so b/squashfs-root/usr/lib/libxmlrpc_util++.so new file mode 120000 index 0000000..8dd552e --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_util++.so @@ -0,0 +1 @@ +libxmlrpc_util++.so.8 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_util++.so.8 b/squashfs-root/usr/lib/libxmlrpc_util++.so.8 new file mode 120000 index 0000000..b3ef009 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_util++.so.8 @@ -0,0 +1 @@ +libxmlrpc_util++.so.8.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_util++.so.8.39 b/squashfs-root/usr/lib/libxmlrpc_util++.so.8.39 new file mode 100755 index 0000000..70dfa2a Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_util++.so.8.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_util.so b/squashfs-root/usr/lib/libxmlrpc_util.so new file mode 120000 index 0000000..1ffc30c --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_util.so @@ -0,0 +1 @@ +libxmlrpc_util.so.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_util.so.3 b/squashfs-root/usr/lib/libxmlrpc_util.so.3 new file mode 120000 index 0000000..53f5ee9 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_util.so.3 @@ -0,0 +1 @@ +libxmlrpc_util.so.3.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_util.so.3.39 b/squashfs-root/usr/lib/libxmlrpc_util.so.3.39 new file mode 100755 index 0000000..4db934e Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_util.so.3.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_xmlparse.so b/squashfs-root/usr/lib/libxmlrpc_xmlparse.so new file mode 120000 index 0000000..e07503f --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_xmlparse.so @@ -0,0 +1 @@ +libxmlrpc_xmlparse.so.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_xmlparse.so.3 b/squashfs-root/usr/lib/libxmlrpc_xmlparse.so.3 new file mode 120000 index 0000000..2e5e019 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_xmlparse.so.3 @@ -0,0 +1 @@ +libxmlrpc_xmlparse.so.3.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_xmlparse.so.3.39 b/squashfs-root/usr/lib/libxmlrpc_xmlparse.so.3.39 new file mode 100755 index 0000000..bebb0fb Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_xmlparse.so.3.39 differ diff --git a/squashfs-root/usr/lib/libxmlrpc_xmltok.so b/squashfs-root/usr/lib/libxmlrpc_xmltok.so new file mode 120000 index 0000000..ddea171 --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_xmltok.so @@ -0,0 +1 @@ +libxmlrpc_xmltok.so.3 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_xmltok.so.3 b/squashfs-root/usr/lib/libxmlrpc_xmltok.so.3 new file mode 120000 index 0000000..1d6fa2e --- /dev/null +++ b/squashfs-root/usr/lib/libxmlrpc_xmltok.so.3 @@ -0,0 +1 @@ +libxmlrpc_xmltok.so.3.39 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libxmlrpc_xmltok.so.3.39 b/squashfs-root/usr/lib/libxmlrpc_xmltok.so.3.39 new file mode 100755 index 0000000..c71e7aa Binary files /dev/null and b/squashfs-root/usr/lib/libxmlrpc_xmltok.so.3.39 differ diff --git a/squashfs-root/usr/lib/libyaml-cpp.so b/squashfs-root/usr/lib/libyaml-cpp.so new file mode 120000 index 0000000..72969d6 --- /dev/null +++ b/squashfs-root/usr/lib/libyaml-cpp.so @@ -0,0 +1 @@ +libyaml-cpp.so.0.5 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libyaml-cpp.so.0.5 b/squashfs-root/usr/lib/libyaml-cpp.so.0.5 new file mode 120000 index 0000000..d631c39 --- /dev/null +++ b/squashfs-root/usr/lib/libyaml-cpp.so.0.5 @@ -0,0 +1 @@ +libyaml-cpp.so.0.5.2 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libyaml-cpp.so.0.5.2 b/squashfs-root/usr/lib/libyaml-cpp.so.0.5.2 new file mode 100755 index 0000000..2af9127 Binary files /dev/null and b/squashfs-root/usr/lib/libyaml-cpp.so.0.5.2 differ diff --git a/squashfs-root/usr/lib/libz.so b/squashfs-root/usr/lib/libz.so new file mode 120000 index 0000000..95e0ebd --- /dev/null +++ b/squashfs-root/usr/lib/libz.so @@ -0,0 +1 @@ +libz.so.1.2.11 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libz.so.1 b/squashfs-root/usr/lib/libz.so.1 new file mode 120000 index 0000000..95e0ebd --- /dev/null +++ b/squashfs-root/usr/lib/libz.so.1 @@ -0,0 +1 @@ +libz.so.1.2.11 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libz.so.1.2.11 b/squashfs-root/usr/lib/libz.so.1.2.11 new file mode 100755 index 0000000..c453693 Binary files /dev/null and b/squashfs-root/usr/lib/libz.so.1.2.11 differ diff --git a/squashfs-root/usr/lib/libzip.so b/squashfs-root/usr/lib/libzip.so new file mode 120000 index 0000000..d0dce37 --- /dev/null +++ b/squashfs-root/usr/lib/libzip.so @@ -0,0 +1 @@ +libzip.so.5 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libzip.so.5 b/squashfs-root/usr/lib/libzip.so.5 new file mode 120000 index 0000000..418d3cf --- /dev/null +++ b/squashfs-root/usr/lib/libzip.so.5 @@ -0,0 +1 @@ +libzip.so.5.0 \ No newline at end of file diff --git a/squashfs-root/usr/lib/libzip.so.5.0 b/squashfs-root/usr/lib/libzip.so.5.0 new file mode 100755 index 0000000..e39cd78 Binary files /dev/null and b/squashfs-root/usr/lib/libzip.so.5.0 differ diff --git a/squashfs-root/usr/lib/os-release b/squashfs-root/usr/lib/os-release new file mode 100644 index 0000000..3d3cf3a --- /dev/null +++ b/squashfs-root/usr/lib/os-release @@ -0,0 +1,5 @@ +NAME=Buildroot +VERSION=2018.02 +ID=buildroot +VERSION_ID=2018.02 +PRETTY_NAME="Buildroot 2018.02" diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/__init__.py b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/__init__.py @@ -0,0 +1 @@ + diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/__init__.pyc b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/__init__.pyc new file mode 100644 index 0000000..755ead7 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/__init__.pyc differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/__init__.pyo b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/__init__.pyo new file mode 100644 index 0000000..755ead7 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/__init__.pyo differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/align.py b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/align.py new file mode 100644 index 0000000..d4c12ee --- /dev/null +++ b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/align.py @@ -0,0 +1,177 @@ +''' +This module contains helper classes for alignment arithmetic and checks +''' + +from fractions import gcd + +class Alignment(object): + + def __init__(self, align=4, offset=0): + self.align = align + # normalize the offset (just in case) + self.offset = offset % align + + + def __eq__(self, other): + return self.align == other.align and self.offset == other.offset + + def __str__(self): + return "(align=%d, offset=%d)" % (self.align, self.offset) + + @staticmethod + def for_primitive_type(size): + # compute the required start_alignment based on the size of the type + if size % 8 == 0: + # do 8-byte primitives require 8-byte alignment in X11? + return Alignment(8,0) + elif size % 4 == 0: + return Alignment(4,0) + elif size % 2 == 0: + return Alignment(2,0) + else: + return Alignment(1,0) + + + def align_after_fixed_size(self, size): + new_offset = (self.offset + size) % self.align + return Alignment(self.align, new_offset) + + + def is_guaranteed_at(self, external_align): + ''' + Assuming the given external_align, checks whether + self is fulfilled for all cases. + Returns True if yes, False otherwise. + ''' + if self.align == 1 and self.offset == 0: + # alignment 1 with offset 0 is always fulfilled + return True + + if external_align is None: + # there is no external align -> fail + return False + + if external_align.align < self.align: + # the external align guarantees less alignment -> not guaranteed + return False + + if external_align.align % self.align != 0: + # the external align cannot be divided by our align + # -> not guaranteed + # (this can only happen if there are alignments that are not + # a power of 2, which is highly discouraged. But better be + # safe and check for it) + return False + + if external_align.offset % self.align != self.offset: + # offsets do not match + return False + + return True + + + def combine_with(self, other): + # returns the alignment that is guaranteed when + # both, self or other, can happen + new_align = gcd(self.align, other.align) + new_offset_candidate1 = self.offset % new_align + new_offset_candidate2 = other.offset % new_align + if new_offset_candidate1 == new_offset_candidate2: + new_offset = new_offset_candidate1 + else: + offset_diff = abs(new_offset_candidate2 - new_offset_candidate1) + new_align = gcd(new_align, offset_diff) + new_offset_candidate1 = self.offset % new_align + new_offset_candidate2 = other.offset % new_align + assert new_offset_candidate1 == new_offset_candidate2 + new_offset = new_offset_candidate1 + # return the result + return Alignment(new_align, new_offset) + + +class AlignmentLog(object): + + def __init__(self): + self.ok_list = [] + self.fail_list = [] + self.verbosity = 1 + + def __str__(self): + result = "" + + # output the OK-list + for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list: + stacksize = len(callstack) + indent = ' ' * stacksize + if self.ok_callstack_is_relevant(callstack): + if field_name is None or field_name == "": + result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n" + % (indent, str(type_obj), indent, str(align_before), str(align_after))) + else: + result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n" + % (indent, str(field_name), str(type_obj), + indent, str(align_before), str(align_after))) + if self.verbosity >= 1: + result += self.callstack_to_str(indent, callstack) + + # output the fail-list + for (align_before, field_name, type_obj, callstack, reason) in self.fail_list: + stacksize = len(callstack) + indent = ' ' * stacksize + if field_name is None or field_name == "": + result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n" + % (indent, str(align_before), indent, str(type_obj), indent, reason)) + else: + result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n" + % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason)) + + if self.verbosity >= 1: + result += self.callstack_to_str(indent, callstack) + + + return result + + + def callstack_to_str(self, indent, callstack): + result = "\t%scallstack: [\n" % indent + for stack_elem in callstack: + result += "\t %s%s\n" % (indent, str(stack_elem)) + result += "\t%s]\n" % indent + return result + + + def ok_callstack_is_relevant(self, ok_callstack): + # determine whether an ok callstack is relevant for logging + if self.verbosity >= 2: + return True + + # empty callstacks are always relevant + if len(ok_callstack) == 0: + return True + + # check whether the ok_callstack is a subset or equal to a fail_callstack + for (align_before, field_name, type_obj, fail_callstack, reason) in self.fail_list: + if len(ok_callstack) <= len(fail_callstack): + zipped = zip(ok_callstack, fail_callstack[:len(ok_callstack)]) + is_subset = all([i == j for i, j in zipped]) + if is_subset: + return True + + return False + + + def ok(self, align_before, field_name, type_obj, callstack, align_after): + self.ok_list.append((align_before, field_name, type_obj, callstack, align_after)) + + def fail(self, align_before, field_name, type_obj, callstack, reason): + self.fail_list.append((align_before, field_name, type_obj, callstack, reason)) + + def append(self, other): + self.ok_list.extend(other.ok_list) + self.fail_list.extend(other.fail_list) + + def ok_count(self): + return len(self.ok_list) + + + diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/align.pyc b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/align.pyc new file mode 100644 index 0000000..7b6505f Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/align.pyc differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/align.pyo b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/align.pyo new file mode 100644 index 0000000..c17fad8 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/align.pyo differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/error.py b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/error.py new file mode 100644 index 0000000..bbcd501 --- /dev/null +++ b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/error.py @@ -0,0 +1,5 @@ +class ResolveException(Exception): + ''' + Gets thrown when a type doesn't resolve in the XML. + ''' + pass diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/error.pyc b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/error.pyc new file mode 100644 index 0000000..9aa7332 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/error.pyc differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/error.pyo b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/error.pyo new file mode 100644 index 0000000..9aa7332 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/error.pyo differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/expr.py b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/expr.py new file mode 100644 index 0000000..a716d34 --- /dev/null +++ b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/expr.py @@ -0,0 +1,175 @@ +''' +This module contains helper classes for structure fields and length expressions. +''' +class Field(object): + ''' + Represents a field of a structure. + + type is the datatype object for the field. + field_type is the name of the type (string tuple) + field_name is the name of the structure field. + visible is true iff the field should be in the request API. + wire is true iff the field should be in the request structure. + auto is true iff the field is on the wire but not in the request API (e.g. opcode) + enum is the enum name this field refers to, if any. + ''' + def __init__(self, type, field_type, field_name, visible, wire, auto, enum=None, isfd=False): + self.type = type + self.field_type = field_type + self.field_name = field_name + self.enum = enum + self.visible = visible + self.wire = wire + self.auto = auto + self.isfd = isfd + self.parent = None + + def __str__(self): + field_string = "Field" + if self.field_name is None: + if self.field_type is not None: + field_string += " with type " + str(self.type) + else: + field_string += " \"" + self.field_name + "\"" + if self.parent is not None: + field_string += " in " + str(self.parent) + + return field_string + +class Expression(object): + ''' + Represents a mathematical expression for a list length or exprfield. + + Public fields: + op is the operation (text +,*,/,<<,~) or None. + lhs and rhs are the sub-Expressions if op is set. + lenfield_name is the name of the length field, or None for request lists. + lenfield is the Field object for the length field, or None. + bitfield is True if the length field is a bitmask instead of a number. + nmemb is the fixed size (value)of the expression, or None + ''' + def __init__(self, elt, parent): + self.parent = parent + + self.nmemb = None + + self.lenfield_name = None + self.lenfield_type = None + self.lenfield_parent = None + self.lenfield = None + self.lenwire = False + self.bitfield = False + + self.op = None + self.lhs = None + self.rhs = None + + self.contains_listelement_ref = False + + if elt.tag == 'list': + # List going into a request, which has no length field (inferred by server) + self.lenfield_name = elt.get('name') + '_len' + self.lenfield_type = 'CARD32' + + elif elt.tag == 'fieldref': + # Standard list with a fieldref + self.lenfield_name = elt.text + + elif elt.tag == 'paramref': + self.lenfield_name = elt.text + self.lenfield_type = elt.get('type') + + elif elt.tag == 'op': + # Op field. Need to recurse. + self.op = elt.get('op') + self.lhs = Expression(list(elt)[0], parent) + self.rhs = Expression(list(elt)[1], parent) + + # Hopefully we don't have two separate length fields... + self.lenfield_name = self.lhs.lenfield_name + if self.lenfield_name == None: + self.lenfield_name = self.rhs.lenfield_name + + elif elt.tag == 'unop': + # Op field. Need to recurse. + self.op = elt.get('op') + self.rhs = Expression(list(elt)[0], parent) + + self.lenfield_name = self.rhs.lenfield_name + + elif elt.tag == 'value': + # Constant expression + self.nmemb = int(elt.text, 0) + + elif elt.tag == 'popcount': + self.op = 'popcount' + self.rhs = Expression(list(elt)[0], parent) + self.lenfield_name = self.rhs.lenfield_name + # xcb_popcount returns 'int' - handle the type in the language-specific part + + elif elt.tag == 'enumref': + self.op = 'enumref' + self.lenfield_name = (elt.get('ref'), elt.text) + + elif elt.tag == 'sumof': + self.op = 'sumof' + self.lenfield_name = elt.get('ref') + subexpressions = list(elt) + if len(subexpressions) > 0: + # sumof with a nested expression which is to be evaluated + # for each list-element in the context of that list-element. + # sumof then returns the sum of the results of these evaluations + self.rhs = Expression(subexpressions[0], parent) + + elif elt.tag == 'listelement-ref': + # current list element inside iterating expressions such as sumof + self.op = 'listelement-ref' + self.contains_listelement_ref = True + + else: + # Notreached + raise Exception("undefined tag '%s'" % elt.tag) + + def fixed_size(self): + return self.nmemb != None + + def get_value(self): + return self.nmemb + + # if the value of the expression is a guaranteed multiple of a number + # return this number, else return 1 (which is trivially guaranteed for integers) + def get_multiple(self): + multiple = 1 + if self.op == '*': + if self.lhs.fixed_size(): + multiple *= self.lhs.get_value() + if self.rhs.fixed_size(): + multiple *= self.rhs.get_value() + + return multiple + + def recursive_resolve_tasks(self, module, parents): + for subexpr in (self.lhs, self.rhs): + if subexpr != None: + subexpr.recursive_resolve_tasks(module, parents) + self.contains_listelement_ref |= subexpr.contains_listelement_ref + + def resolve(self, module, parents): + if self.op == 'enumref': + self.lenfield_type = module.get_type(self.lenfield_name[0]) + self.lenfield_name = self.lenfield_name[1] + elif self.op == 'sumof': + # need to find the field with lenfield_name + for p in reversed(parents): + fields = dict([(f.field_name, f) for f in p.fields]) + if self.lenfield_name in fields.keys(): + if p.is_case_or_bitcase: + # switch is the anchestor + self.lenfield_parent = p.parents[-1] + else: + self.lenfield_parent = p + self.lenfield_type = fields[self.lenfield_name].field_type + break + + self.recursive_resolve_tasks(module, parents) + diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/expr.pyc b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/expr.pyc new file mode 100644 index 0000000..a1fba78 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/expr.pyc differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/expr.pyo b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/expr.pyo new file mode 100644 index 0000000..a1fba78 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/expr.pyo differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/matcher.py b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/matcher.py new file mode 100644 index 0000000..bfa315e --- /dev/null +++ b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/matcher.py @@ -0,0 +1,115 @@ +''' +XML parser. One function for each top-level element in the schema. + +Most functions just declare a new object and add it to the module. +For typedefs, eventcopies, xidtypes, and other aliases though, +we do not create a new type object, we just record the existing one under a new name. +''' + +from os.path import join +from xml.etree.cElementTree import parse + +from xcbgen.xtypes import * + +def import_(node, module, namespace): + ''' + For imports, we load the file, create a new namespace object, + execute recursively, then record the import (for header files, etc.) + ''' + # To avoid circular import error + from xcbgen import state + module.import_level = module.import_level + 1 + new_file = join(namespace.dir, '%s.xml' % node.text) + new_root = parse(new_file).getroot() + new_namespace = state.Namespace(new_file) + execute(module, new_namespace) + module.import_level = module.import_level - 1 + if not module.has_import(node.text): + module.add_import(node.text, new_namespace) + +def typedef(node, module, namespace): + id = node.get('newname') + name = namespace.prefix + (id,) + type = module.get_type(node.get('oldname')) + module.add_type(id, namespace.ns, name, type) + +def xidtype(node, module, namespace): + id = node.get('name') + name = namespace.prefix + (id,) + type = module.get_type('CARD32') + module.add_type(id, namespace.ns, name, type) + +def xidunion(node, module, namespace): + id = node.get('name') + name = namespace.prefix + (id,) + type = module.get_type('CARD32') + module.add_type(id, namespace.ns, name, type) + +def enum(node, module, namespace): + id = node.get('name') + name = namespace.prefix + (id,) + type = Enum(name, node) + module.add_type(id, namespace.ns, name, type) + +def struct(node, module, namespace): + id = node.get('name') + name = namespace.prefix + (id,) + type = Struct(name, node) + module.add_type(id, namespace.ns, name, type) + +def union(node, module, namespace): + id = node.get('name') + name = namespace.prefix + (id,) + type = Union(name, node) + module.add_type(id, namespace.ns, name, type) + +def request(node, module, namespace): + id = node.get('name') + name = namespace.prefix + (id,) + type = Request(name, node) + module.add_request(id, name, type) + +def event(node, module, namespace): + id = node.get('name') + name = namespace.prefix + (id,) + event = Event(name, node) + event.add_opcode(node.get('number'), name, True) + module.add_event(id, name, event) + +def eventcopy(node, module, namespace): + id = node.get('name') + name = namespace.prefix + (id,) + event = module.get_event(node.get('ref')) + event.add_opcode(node.get('number'), name, False) + module.add_event(id, name, event) + +def error(node, module, namespace): + id = node.get('name') + name = namespace.prefix + (id,) + error = Error(name, node) + error.add_opcode(node.get('number'), name, True) + module.add_error(id, name, error) + +def errorcopy(node, module, namespace): + id = node.get('name') + name = namespace.prefix + (id,) + error = module.get_error(node.get('ref')) + error.add_opcode(node.get('number'), name, False) + module.add_error(id, name, error) + +funcs = {'import' : import_, + 'typedef' : typedef, + 'xidtype' : xidtype, + 'xidunion' : xidunion, + 'enum' : enum, + 'struct' : struct, + 'union' : union, + 'request' : request, + 'event' : event, + 'eventcopy' : eventcopy, + 'error' : error, + 'errorcopy' : errorcopy} + +def execute(module, namespace): + for elt in list(namespace.root): + funcs[elt.tag](elt, module, namespace) diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/matcher.pyc b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/matcher.pyc new file mode 100644 index 0000000..d1f56a4 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/matcher.pyc differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/matcher.pyo b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/matcher.pyo new file mode 100644 index 0000000..d1f56a4 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/matcher.pyo differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/state.py b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/state.py new file mode 100644 index 0000000..a6ad3a1 --- /dev/null +++ b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/state.py @@ -0,0 +1,173 @@ +''' +This module contains the namespace class and the singleton module class. +''' +from os.path import dirname, basename +from xml.etree.cElementTree import parse + +from xcbgen import matcher +from xcbgen.error import * +from xcbgen.xtypes import * + +import __main__ + +class Namespace(object): + ''' + Contains the naming information for an extension. + + Public fields: + + header is the header attribute ("header file" name). + is_ext is true for extensions, false for xproto. + major_version and minor_version are extension version info. + ext_xname is the X extension name string. + ext_name is the XCB extension name prefix. + ''' + def __init__(self, filename): + # Path info + self.path = filename + self.dir = dirname(filename) + self.file = basename(filename) + + # Parse XML + self.root = parse(filename).getroot() + self.header = self.root.get('header') + self.ns = self.header + ':' + + # Get root element attributes + if self.root.get('extension-xname', False): + self.is_ext = True + self.major_version = self.root.get('major-version') + self.minor_version = self.root.get('minor-version') + self.ext_xname = self.root.get('extension-xname') + self.ext_name = self.root.get('extension-name') + self.prefix = ('xcb', self.ext_name) + else: + self.is_ext = False + self.ext_name = '' + self.prefix = ('xcb',) + + +class Module(object): + ''' + This is the grand, encompassing class that represents an entire XCB specification. + Only gets instantiated once, in the main() routine. + + Don't need to worry about this much except to declare it and to get the namespace. + + Public fields: + namespace contains the namespace info for the spec. + ''' + open = __main__.output['open'] + close = __main__.output['close'] + + def __init__(self, filename, output): + self.namespace = Namespace(filename) + self.output = output + + self.imports = [] + self.direct_imports = [] + self.import_level = 0 + self.types = {} + self.events = {} + self.errors = {} + self.all = [] + + # Register some common types + self.add_type('CARD8', '', ('uint8_t',), tcard8) + self.add_type('CARD16', '', ('uint16_t',), tcard16) + self.add_type('CARD32', '', ('uint32_t',), tcard32) + self.add_type('CARD64', '', ('uint64_t',), tcard64) + self.add_type('INT8', '', ('int8_t',), tint8) + self.add_type('INT16', '', ('int16_t',), tint16) + self.add_type('INT32', '', ('int32_t',), tint32) + self.add_type('INT64', '', ('int64_t',), tint64) + self.add_type('BYTE', '', ('uint8_t',), tcard8) + self.add_type('BOOL', '', ('uint8_t',), tcard8) + self.add_type('char', '', ('char',), tchar) + self.add_type('float', '', ('float',), tfloat) + self.add_type('double', '', ('double',), tdouble) + self.add_type('void', '', ('void',), tcard8) + + # This goes out and parses the rest of the XML + def register(self): + matcher.execute(self, self.namespace) + + # Recursively resolve all types + def resolve(self): + for (name, item) in self.all: + self.pads = 0 + item.resolve(self) + + # Call all the output methods + def generate(self): + self.open() + + for (name, item) in self.all: + item.out(name) + + self.close() + + # Keeps track of what's been imported so far. + def add_import(self, name, namespace): + if self.import_level == 0: + self.direct_imports.append((name, namespace.header)) + self.imports.append((name, namespace.header)) + + def has_import(self, name): + for (name_, header) in self.imports: + if name_ == name: + return True + return False + + # Keeps track of non-request/event/error datatypes + def add_type(self, id, ns, name, item): + key = ns + id + if key in self.types: + return + self.types[key] = (name, item) + if name[:-1] == self.namespace.prefix: + self.all.append((name, item)) + + def get_type_impl(self, id, idx): + key = id + if key in self.types: + return self.types[key][idx] + + key = self.namespace.ns + id + if key in self.types: + return self.types[key][idx] + + for key in self.types.keys(): + if key.rpartition(':')[2] == id: + return self.types[key][idx] + + raise ResolveException('Type %s not found' % id) + + def get_type(self, id): + return self.get_type_impl(id, 1) + + def get_type_name(self, id): + return self.get_type_impl(id, 0) + + # Keeps track of request datatypes + def add_request(self, id, name, item): + if name[:-1] == self.namespace.prefix: + self.all.append((name, item)) + + # Keeps track of event datatypes + def add_event(self, id, name, item): + self.events[id] = (name, item) + if name[:-1] == self.namespace.prefix: + self.all.append((name, item)) + + def get_event(self, id): + return self.events[id][1] + + # Keeps track of error datatypes + def add_error(self, id, name, item): + self.errors[id] = (name, item) + if name[:-1] == self.namespace.prefix: + self.all.append((name, item)) + + def get_error(self, id): + return self.errors[id][1] diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/state.pyc b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/state.pyc new file mode 100644 index 0000000..b50e604 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/state.pyc differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/state.pyo b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/state.pyo new file mode 100644 index 0000000..b50e604 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/state.pyo differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/xtypes.py b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/xtypes.py new file mode 100644 index 0000000..b83b119 --- /dev/null +++ b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/xtypes.py @@ -0,0 +1,1285 @@ +''' +This module contains the classes which represent XCB data types. +''' +from xcbgen.expr import Field, Expression +from xcbgen.align import Alignment, AlignmentLog +import __main__ + +verbose_align_log = False +true_values = ['true', '1', 'yes'] + +class Type(object): + ''' + Abstract base class for all XCB data types. + Contains default fields, and some abstract methods. + ''' + def __init__(self, name): + ''' + Default structure initializer. Sets up default fields. + + Public fields: + name is a tuple of strings specifying the full type name. + size is the size of the datatype in bytes, or None if variable-sized. + nmemb is 1 for non-list types, None for variable-sized lists, otherwise number of elts. + booleans for identifying subclasses, because I can't figure out isinstance(). + ''' + self.name = name + self.size = None + self.nmemb = None + self.resolved = False + + # Screw isinstance(). + self.is_simple = False + self.is_list = False + self.is_expr = False + self.is_container = False + self.is_reply = False + self.is_union = False + self.is_pad = False + self.is_switch = False + self.is_case_or_bitcase = False + self.is_bitcase = False + self.is_case = False + self.required_start_align = Alignment() + + # the biggest align value of an align-pad contained in this type + self.max_align_pad = 1 + + def resolve(self, module): + ''' + Abstract method for resolving a type. + This should make sure any referenced types are already declared. + ''' + raise Exception('abstract resolve method not overridden!') + + def out(self, name): + ''' + Abstract method for outputting code. + These are declared in the language-specific modules, and + there must be a dictionary containing them declared when this module is imported! + ''' + raise Exception('abstract out method not overridden!') + + def fixed_size(self): + ''' + Abstract method for determining if the data type is fixed-size. + ''' + raise Exception('abstract fixed_size method not overridden!') + + def make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto, enum=None): + ''' + Default method for making a data type a member of a structure. + Extend this if the data type needs to add an additional length field or something. + + module is the global module object. + complex_type is the structure object. + see Field for the meaning of the other parameters. + ''' + new_field = Field(self, field_type, field_name, visible, wire, auto, enum) + + # We dump the _placeholder_byte if any fields are added. + for (idx, field) in enumerate(complex_type.fields): + if field == _placeholder_byte: + complex_type.fields[idx] = new_field + return + + complex_type.fields.append(new_field) + new_field.parent = complex_type + + def make_fd_of(self, module, complex_type, fd_name): + ''' + Method for making a fd member of a structure. + ''' + new_fd = Field(self, module.get_type_name('INT32'), fd_name, True, False, False, None, True) + # We dump the _placeholder_byte if any fields are added. + for (idx, field) in enumerate(complex_type.fields): + if field == _placeholder_byte: + complex_type.fields[idx] = new_fd + return + + complex_type.fields.append(new_fd) + + + def get_total_size(self): + ''' + get the total size of this type if it is fixed-size, otherwise None + ''' + if self.fixed_size(): + if self.nmemb is None: + return self.size + else: + return self.size * self.nmemb + else: + return None + + def get_align_offset(self): + if self.required_start_align is None: + return 0 + else: + return self.required_start_align.offset + + def is_acceptable_start_align(self, start_align, callstack, log): + return self.get_alignment_after(start_align, callstack, log) is not None + + def get_alignment_after(self, start_align, callstack, log): + ''' + get the alignment after this type based on the given start_align. + the start_align is checked for compatibility with the + internal start align. If it is not compatible, then None is returned + ''' + if self.required_start_align is None or self.required_start_align.is_guaranteed_at(start_align): + return self.unchecked_get_alignment_after(start_align, callstack, log) + else: + if log is not None: + log.fail(start_align, "", self, callstack + [self], + "start_align is incompatible with required_start_align %s" + % (str(self.required_start_align))) + return None + + def unchecked_get_alignment_after(self, start_align, callstack, log): + ''' + Abstract method for geting the alignment after this type + when the alignment at the start is given, and when this type + has variable size. + ''' + raise Exception('abstract unchecked_get_alignment_after method not overridden!') + + + @staticmethod + def type_name_to_str(type_name): + if isinstance(type_name, str): + #already a string + return type_name + else: + return ".".join(type_name) + + + def __str__(self): + return type(self).__name__ + " \"" + Type.type_name_to_str(self.name) + "\"" + +class PrimitiveType(Type): + + def __init__(self, name, size): + Type.__init__(self, name) + self.size = size + self.nmemb = 1 + + # compute the required start_alignment based on the size of the type + self.required_start_align = Alignment.for_primitive_type(self.size) + + def unchecked_get_alignment_after(self, start_align, callstack, log): + my_callstack = callstack + [self]; + after_align = start_align.align_after_fixed_size(self.size) + + if log is not None: + if after_align is None: + log.fail(start_align, "", self, my_callstack, + "align after fixed size %d failed" % self.size) + else: + log.ok(start_align, "", self, my_callstack, after_align) + + return after_align + + def fixed_size(self): + return True + +class SimpleType(PrimitiveType): + ''' + Derived class which represents a cardinal type like CARD32 or char. + Any type which is typedef'ed to cardinal will be one of these. + + Public fields added: + none + ''' + def __init__(self, name, size): + PrimitiveType.__init__(self, name, size) + self.is_simple = True + + + def resolve(self, module): + self.resolved = True + + out = __main__.output['simple'] + + +# Cardinal datatype globals. See module __init__ method. +tcard8 = SimpleType(('uint8_t',), 1) +tcard16 = SimpleType(('uint16_t',), 2) +tcard32 = SimpleType(('uint32_t',), 4) +tcard64 = SimpleType(('uint64_t',), 8) +tint8 = SimpleType(('int8_t',), 1) +tint16 = SimpleType(('int16_t',), 2) +tint32 = SimpleType(('int32_t',), 4) +tint64 = SimpleType(('int64_t',), 8) +tchar = SimpleType(('char',), 1) +tfloat = SimpleType(('float',), 4) +tdouble = SimpleType(('double',), 8) + + +class Enum(SimpleType): + ''' + Derived class which represents an enum. Fixed-size. + + Public fields added: + values contains a list of (name, value) tuples. value is empty, or a number. + bits contains a list of (name, bitnum) tuples. items only appear if specified as a bit. bitnum is a number. + ''' + def __init__(self, name, elt): + SimpleType.__init__(self, name, 4) + self.values = [] + self.bits = [] + self.doc = None + for item in list(elt): + if item.tag == 'doc': + self.doc = Doc(name, item) + + # First check if we're using a default value + if len(list(item)) == 0: + self.values.append((item.get('name'), '')) + continue + + # An explicit value or bit was specified. + value = list(item)[0] + if value.tag == 'value': + self.values.append((item.get('name'), value.text)) + elif value.tag == 'bit': + self.values.append((item.get('name'), '%u' % (1 << int(value.text, 0)))) + self.bits.append((item.get('name'), value.text)) + + def resolve(self, module): + self.resolved = True + + def fixed_size(self): + return True + + out = __main__.output['enum'] + + +class ListType(Type): + ''' + Derived class which represents a list of some other datatype. Fixed- or variable-sized. + + Public fields added: + member is the datatype of the list elements. + parent is the structure type containing the list. + expr is an Expression object containing the length information, for variable-sized lists. + ''' + def __init__(self, elt, member, *parent): + Type.__init__(self, member.name) + self.is_list = True + self.member = member + self.parents = list(parent) + lenfield_name = False + + if elt.tag == 'list': + elts = list(elt) + self.expr = Expression(elts[0] if len(elts) else elt, self) + is_list_in_parent = self.parents[0].elt.tag in ('request', 'event', 'reply', 'error') + if not len(elts) and is_list_in_parent: + self.expr = Expression(elt,self) + self.expr.op = 'calculate_len' + else: + self.expr = Expression(elts[0] if len(elts) else elt, self) + + self.size = member.size if member.fixed_size() else None + self.nmemb = self.expr.nmemb if self.expr.fixed_size() else None + + self.required_start_align = self.member.required_start_align + + def make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto, enum=None): + if not self.fixed_size(): + # We need a length field. + # Ask our Expression object for it's name, type, and whether it's on the wire. + lenfid = self.expr.lenfield_type + lenfield_name = self.expr.lenfield_name + lenwire = self.expr.lenwire + needlen = True + + # See if the length field is already in the structure. + for parent in self.parents: + for field in parent.fields: + if field.field_name == lenfield_name: + needlen = False + + # It isn't, so we need to add it to the structure ourself. + if needlen: + type = module.get_type(lenfid) + lenfield_type = module.get_type_name(lenfid) + type.make_member_of(module, complex_type, lenfield_type, lenfield_name, True, lenwire, False, enum) + + # Add ourself to the structure by calling our original method. + Type.make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto, enum) + + def resolve(self, module): + if self.resolved: + return + self.member.resolve(module) + self.expr.resolve(module, self.parents) + + self.required_start_align = self.member.required_start_align + + # Find my length field again. We need the actual Field object in the expr. + # This is needed because we might have added it ourself above. + if not self.fixed_size(): + for parent in self.parents: + for field in parent.fields: + if field.field_name == self.expr.lenfield_name and field.wire: + self.expr.lenfield = field + break + + self.resolved = True + + def fixed_size(self): + return self.member.fixed_size() and self.expr.fixed_size() + + def unchecked_get_alignment_after(self, start_align, callstack, log): + my_callstack = callstack[:] + my_callstack.append(self) + if start_align is None: + log.fail(start_align, "", self, my_callstack, "start_align is None") + return None + if self.expr.fixed_size(): + # fixed number of elements + num_elements = self.nmemb + prev_alignment = None + alignment = start_align + while num_elements > 0: + if alignment is None: + if log is not None: + log.fail(start_align, "", self, my_callstack, + ("fixed size list with size %d after %d iterations" + + ", at transition from alignment \"%s\"") + % (self.nmemb, + (self.nmemb - num_elements), + str(prev_alignment))) + return None + prev_alignment = alignment + alignment = self.member.get_alignment_after(prev_alignment, my_callstack, log) + num_elements -= 1 + if log is not None: + log.ok(start_align, "", self, my_callstack, alignment) + return alignment + else: + # variable number of elements + # check whether the number of elements is a multiple + multiple = self.expr.get_multiple() + assert multiple > 0 + + # iterate until the combined alignment does not change anymore + alignment = start_align + while True: + prev_multiple_alignment = alignment + # apply "multiple" amount of changes sequentially + prev_alignment = alignment + for multiple_count in range(0, multiple): + + after_alignment = self.member.get_alignment_after(prev_alignment, my_callstack, log) + if after_alignment is None: + if log is not None: + log.fail(start_align, "", self, my_callstack, + ("variable size list " + + "at transition from alignment \"%s\"") + % (str(prev_alignment))) + return None + + prev_alignment = after_alignment + + # combine with the cumulatively combined alignment + # (to model the variable number of entries) + alignment = prev_multiple_alignment.combine_with(after_alignment) + + if alignment == prev_multiple_alignment: + # does not change anymore by adding more potential elements + # -> finished + if log is not None: + log.ok(start_align, "", self, my_callstack, alignment) + return alignment + +class ExprType(PrimitiveType): + ''' + Derived class which represents an exprfield. Fixed size. + + Public fields added: + expr is an Expression object containing the value of the field. + ''' + def __init__(self, elt, member, *parents): + PrimitiveType.__init__(self, member.name, member.size) + self.is_expr = True + self.member = member + self.parents = parents + + self.expr = Expression(list(elt)[0], self) + + def resolve(self, module): + if self.resolved: + return + self.member.resolve(module) + self.resolved = True + + +class PadType(Type): + ''' + Derived class which represents a padding field. + ''' + def __init__(self, elt): + Type.__init__(self, tcard8.name) + self.is_pad = True + self.size = 1 + self.nmemb = 1 + self.align = 1 + if elt != None: + self.nmemb = int(elt.get('bytes', "1"), 0) + self.align = int(elt.get('align', "1"), 0) + self.serialize = elt.get('serialize', "false").lower() in true_values + + # pads don't require any alignment at their start + self.required_start_align = Alignment(1,0) + + def resolve(self, module): + self.resolved = True + + def fixed_size(self): + return self.align <= 1 + + def unchecked_get_alignment_after(self, start_align, callstack, log): + if self.align <= 1: + # fixed size pad + after_align = start_align.align_after_fixed_size(self.get_total_size()) + if log is not None: + if after_align is None: + log.fail(start_align, "", self, callstack, + "align after fixed size pad of size %d failed" % self.size) + else: + log.ok(start_align, "", self, callstack, after_align) + + return after_align + + # align-pad + assert self.align > 1 + assert self.size == 1 + assert self.nmemb == 1 + if (start_align.offset == 0 + and self.align <= start_align.align + and start_align.align % self.align == 0): + # the alignment pad is size 0 because the start_align + # is already sufficiently aligned -> return the start_align + after_align = start_align + else: + # the alignment pad has nonzero size -> return the alignment + # that is guaranteed by it, independently of the start_align + after_align = Alignment(self.align, 0) + + if log is not None: + log.ok(start_align, "", self, callstack, after_align) + + return after_align + +class ComplexType(Type): + ''' + Derived class which represents a structure. Base type for all structure types. + + Public fields added: + fields is an array of Field objects describing the structure fields. + ''' + def __init__(self, name, elt): + Type.__init__(self, name) + self.is_container = True + self.elt = elt + self.fields = [] + self.nmemb = 1 + self.size = 0 + self.lenfield_parent = [self] + self.fds = [] + + # get required_start_alignment + required_start_align_element = elt.find("required_start_align") + if required_start_align_element is None: + # unknown -> mark for autocompute + self.required_start_align = None + else: + self.required_start_align = Alignment( + int(required_start_align_element.get('align', "4"), 0), + int(required_start_align_element.get('offset', "0"), 0)) + if verbose_align_log: + print ("Explicit start-align for %s: %s\n" % (self, self.required_start_align)) + + def resolve(self, module): + if self.resolved: + return + enum = None + + # Resolve all of our field datatypes. + for child in list(self.elt): + if child.tag == 'pad': + field_name = 'pad' + str(module.pads) + fkey = 'CARD8' + type = PadType(child) + module.pads = module.pads + 1 + visible = False + elif child.tag == 'field': + field_name = child.get('name') + enum = child.get('enum') + fkey = child.get('type') + type = module.get_type(fkey) + visible = True + elif child.tag == 'exprfield': + field_name = child.get('name') + fkey = child.get('type') + type = ExprType(child, module.get_type(fkey), *self.lenfield_parent) + visible = False + elif child.tag == 'list': + field_name = child.get('name') + fkey = child.get('type') + type = ListType(child, module.get_type(fkey), *self.lenfield_parent) + visible = True + elif child.tag == 'switch': + field_name = child.get('name') + # construct the switch type name from the parent type and the field name + field_type = self.name + (field_name,) + type = SwitchType(field_type, child, *self.lenfield_parent) + visible = True + type.make_member_of(module, self, field_type, field_name, visible, True, False) + type.resolve(module) + continue + elif child.tag == 'fd': + fd_name = child.get('name') + type = module.get_type('INT32') + type.make_fd_of(module, self, fd_name) + continue + else: + # Hit this on Reply + continue + + # Get the full type name for the field + field_type = module.get_type_name(fkey) + # Add the field to ourself + type.make_member_of(module, self, field_type, field_name, visible, True, False, enum) + # Recursively resolve the type (could be another structure, list) + type.resolve(module) + + # Compute the size of the maximally contain align-pad + if type.max_align_pad > self.max_align_pad: + self.max_align_pad = type.max_align_pad + + self.check_implicit_fixed_size_part_aligns(); + + self.calc_size() # Figure out how big we are + self.calc_or_check_required_start_align() + + self.resolved = True + + def calc_size(self): + self.size = 0 + for m in self.fields: + if not m.wire: + continue + if m.type.fixed_size(): + self.size = self.size + m.type.get_total_size() + else: + self.size = None + break + + def calc_or_check_required_start_align(self): + if self.required_start_align is None: + # no required-start-align configured -> calculate it + log = AlignmentLog() + callstack = [] + self.required_start_align = self.calc_minimally_required_start_align(callstack, log) + if self.required_start_align is None: + print ("ERROR: could not calc required_start_align of %s\nDetails:\n%s" + % (str(self), str(log))) + else: + if verbose_align_log: + print ("calc_required_start_align: %s has start-align %s" + % (str(self), str(self.required_start_align))) + print ("Details:\n" + str(log)) + if self.required_start_align.offset != 0: + print (("WARNING: %s\n\thas start-align with non-zero offset: %s" + + "\n\tsuggest to add explicit definition with:" + + "\n\t\t" + + "\n\tor to fix the xml so that zero offset is ok\n") + % (str(self), self.required_start_align, + self.required_start_align.align, + self.required_start_align.offset)) + else: + # required-start-align configured -> check it + log = AlignmentLog() + callstack = [] + if not self.is_possible_start_align(self.required_start_align, callstack, log): + print ("ERROR: required_start_align %s of %s causes problems\nDetails:\n%s" + % (str(self.required_start_align), str(self), str(log))) + + + def calc_minimally_required_start_align(self, callstack, log): + # calculate the minimally required start_align that causes no + # align errors + best_log = None + best_failed_align = None + for align in [1,2,4,8]: + for offset in range(0,align): + align_candidate = Alignment(align, offset) + if verbose_align_log: + print ("trying %s for %s" % (str(align_candidate), str(self))) + my_log = AlignmentLog() + if self.is_possible_start_align(align_candidate, callstack, my_log): + log.append(my_log) + if verbose_align_log: + print ("found start-align %s for %s" % (str(align_candidate), str(self))) + return align_candidate + else: + my_ok_count = my_log.ok_count() + if (best_log is None + or my_ok_count > best_log.ok_count() + or (my_ok_count == best_log.ok_count() + and align_candidate.align > best_failed_align.align) + and align_candidate.align != 8): + best_log = my_log + best_failed_align = align_candidate + + + + # none of the candidates applies + # this type has illegal internal aligns for all possible start_aligns + if verbose_align_log: + print ("didn't find start-align for %s" % str(self)) + log.append(best_log) + return None + + def is_possible_start_align(self, align, callstack, log): + if align is None: + return False + if (self.max_align_pad > align.align + or align.align % self.max_align_pad != 0): + # our align pad implementation depends on known alignment + # at the start of our type + return False + + return self.get_alignment_after(align, callstack, log) is not None + + def fixed_size(self): + for m in self.fields: + if not m.type.fixed_size(): + return False + return True + + + # default impls of polymorphic methods which assume sequential layout of fields + # (like Struct or CaseOrBitcaseType) + def check_implicit_fixed_size_part_aligns(self): + # find places where the implementation of the C-binding would + # create code that makes the compiler add implicit alignment. + # make these places explicit, so we have + # consistent behaviour for all bindings + size = 0 + for field in self.fields: + if not field.wire: + continue + if not field.type.fixed_size(): + # end of fixed-size part + break + required_field_align = field.type.required_start_align + if required_field_align is None: + raise Exception( + "field \"%s\" in \"%s\" has not required_start_align" + % (field.field_name, self.name) + ) + mis_align = (size + required_field_align.offset) % required_field_align.align + if mis_align != 0: + # implicit align pad is required + padsize = required_field_align.align - mis_align + raise Exception( + "C-compiler would insert implicit alignpad of size %d before field \"%s\" in \"%s\"" + % (padsize, field.field_name, self.name) + ) + + def unchecked_get_alignment_after(self, start_align, callstack, log): + # default impl assumes sequential layout of fields + # (like Struct or CaseOrBitcaseType) + my_align = start_align + if my_align is None: + return None + + for field in self.fields: + if not field.wire: + continue + my_callstack = callstack[:] + my_callstack.extend([self, field]) + + prev_align = my_align + my_align = field.type.get_alignment_after(my_align, my_callstack, log) + if my_align is None: + if log is not None: + log.fail(prev_align, field.field_name, self, my_callstack, + "alignment is incompatible with this field") + return None + else: + if log is not None: + log.ok(prev_align, field.field_name, self, my_callstack, my_align) + + if log is not None: + my_callstack = callstack[:] + my_callstack.append(self) + log.ok(start_align, "", self, my_callstack, my_align) + return my_align + + +class SwitchType(ComplexType): + ''' + Derived class which represents a List of Items. + + Public fields added: + bitcases is an array of Bitcase objects describing the list items + ''' + + def __init__(self, name, elt, *parents): + ComplexType.__init__(self, name, elt) + self.parents = parents + # FIXME: switch cannot store lenfields, so it should just delegate the parents + self.lenfield_parent = list(parents) + [self] + # self.fields contains all possible fields collected from the Bitcase objects, + # whereas self.items contains the Bitcase objects themselves + self.bitcases = [] + + self.is_switch = True + elts = list(elt) + self.expr = Expression(elts[0] if len(elts) else elt, self) + + def resolve(self, module): + if self.resolved: + return + + parents = list(self.parents) + [self] + + # Resolve all of our field datatypes. + for index, child in enumerate(list(self.elt)): + if child.tag == 'bitcase' or child.tag == 'case': + field_name = child.get('name') + if field_name is None: + field_type = self.name + ('%s%d' % ( child.tag, index ),) + else: + field_type = self.name + (field_name,) + + # use self.parent to indicate anchestor, + # as switch does not contain named fields itself + if child.tag == 'bitcase': + type = BitcaseType(index, field_type, child, *parents) + else: + type = CaseType(index, field_type, child, *parents) + + # construct the switch type name from the parent type and the field name + if field_name is None: + type.has_name = False + # Get the full type name for the field + field_type = type.name + visible = True + + # add the field to ourself + type.make_member_of(module, self, field_type, field_name, visible, True, False) + + # recursively resolve the type (could be another structure, list) + type.resolve(module) + inserted = False + for new_field in type.fields: + # We dump the _placeholder_byte if any fields are added. + for (idx, field) in enumerate(self.fields): + if field == _placeholder_byte: + self.fields[idx] = new_field + inserted = True + break + if False == inserted: + self.fields.append(new_field) + + self.calc_size() # Figure out how big we are + self.calc_or_check_required_start_align() + self.resolved = True + + def make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto, enum=None): + if not self.fixed_size(): + # We need a length field. + # Ask our Expression object for it's name, type, and whether it's on the wire. + lenfid = self.expr.lenfield_type + lenfield_name = self.expr.lenfield_name + lenwire = self.expr.lenwire + needlen = True + + # See if the length field is already in the structure. + for parent in self.parents: + for field in parent.fields: + if field.field_name == lenfield_name: + needlen = False + + # It isn't, so we need to add it to the structure ourself. + if needlen: + type = module.get_type(lenfid) + lenfield_type = module.get_type_name(lenfid) + type.make_member_of(module, complex_type, lenfield_type, lenfield_name, True, lenwire, False, enum) + + # Add ourself to the structure by calling our original method. + Type.make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto, enum) + + # size for switch can only be calculated at runtime + def calc_size(self): + pass + + # note: switch is _always_ of variable size, but we indicate here wether + # it contains elements that are variable-sized themselves + def fixed_size(self): + return False +# for m in self.fields: +# if not m.type.fixed_size(): +# return False +# return True + + + + def check_implicit_fixed_size_part_aligns(self): + # this is done for the CaseType or BitCaseType + return + + def unchecked_get_alignment_after(self, start_align, callstack, log): + # we assume that BitCases can appear in any combination, + # and that at most one Case can appear + # (assuming that Cases are mutually exclusive) + + # get all Cases (we assume that at least one case is selected if there are cases) + case_fields = [] + for field in self.bitcases: + if field.type.is_case: + case_fields.append(field) + + if not case_fields: + # there are no case-fields -> check without case-fields + case_fields = [None] + + my_callstack = callstack[:] + my_callstack.append(self) + # + total_align = None + first = True + for case_field in case_fields: + my2_callstack = my_callstack[:] + if case_field is not None: + my2_callstack.append(case_field) + + case_align = self.get_align_for_selected_case_field( + case_field, start_align, my2_callstack, log) + + + if case_align is None: + if log is not None: + if case_field is None: + log.fail(start_align, "", self, my2_callstack, + "alignment without cases (only bitcases) failed") + else: + log.fail(start_align, "", self, my2_callstack + [case_field], + "alignment for selected case %s failed" + % case_field.field_name) + return None + if first: + total_align = case_align + else: + total_align = total_align.combine_with(case_align) + + if log is not None: + if case_field is None: + log.ok( + start_align, + "without cases (only arbitrary bitcases)", + self, my2_callstack, case_align) + else: + log.ok( + start_align, + "case %s and arbitrary bitcases" % case_field.field_name, + self, my2_callstack, case_align) + + + if log is not None: + log.ok(start_align, "", self, my_callstack, total_align) + return total_align + + # aux function for unchecked_get_alignment_after + def get_align_for_selected_case_field(self, case_field, start_align, callstack, log): + if verbose_align_log: + print ("get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field))) + total_align = start_align + for field in self.bitcases: + my_callstack = callstack[:] + my_callstack.append(field) + + if not field.wire: + continue + if field is case_field: + # assume that this field is active -> no combine_with to emulate optional + after_field_align = field.type.get_alignment_after(total_align, my_callstack, log) + + if log is not None: + if after_field_align is None: + log.fail(total_align, field.field_name, field.type, my_callstack, + "invalid aligment for this case branch") + else: + log.ok(total_align, field.field_name, field.type, my_callstack, + after_field_align) + + total_align = after_field_align + elif field.type.is_bitcase: + after_field_align = field.type.get_alignment_after(total_align, my_callstack, log) + # we assume that this field is optional, therefore combine + # alignment after the field with the alignment before the field. + if after_field_align is None: + if log is not None: + log.fail(total_align, field.field_name, field.type, my_callstack, + "invalid aligment for this bitcase branch") + total_align = None + else: + if log is not None: + log.ok(total_align, field.field_name, field.type, my_callstack, + after_field_align) + + # combine with the align before the field because + # the field is optional + total_align = total_align.combine_with(after_field_align) + else: + # ignore other fields as they are irrelevant for alignment + continue + + if total_align is None: + break + + return total_align + + +class Struct(ComplexType): + ''' + Derived class representing a struct data type. + ''' + out = __main__.output['struct'] + + +class Union(ComplexType): + ''' + Derived class representing a union data type. + ''' + def __init__(self, name, elt): + ComplexType.__init__(self, name, elt) + self.is_union = True + + out = __main__.output['union'] + + + def calc_size(self): + self.size = 0 + for m in self.fields: + if not m.wire: + continue + if m.type.fixed_size(): + self.size = max(self.size, m.type.get_total_size()) + else: + self.size = None + break + + + def check_implicit_fixed_size_part_aligns(self): + # a union does not have implicit aligns because all fields start + # at the start of the union + return + + + def unchecked_get_alignment_after(self, start_align, callstack, log): + my_callstack = callstack[:] + my_callstack.append(self) + + after_align = None + if self.fixed_size(): + + #check proper alignment for all members + start_align_ok = all( + [field.type.is_acceptable_start_align(start_align, my_callstack + [field], log) + for field in self.fields]) + + if start_align_ok: + #compute the after align from the start_align + after_align = start_align.align_after_fixed_size(self.get_total_size()) + else: + after_align = None + + if log is not None and after_align is not None: + log.ok(start_align, "fixed sized union", self, my_callstack, after_align) + + else: + if start_align is None: + if log is not None: + log.fail(start_align, "", self, my_callstack, + "missing start_align for union") + return None + + after_align = reduce( + lambda x, y: None if x is None or y is None else x.combine_with(y), + [field.type.get_alignment_after(start_align, my_callstack + [field], log) + for field in self.fields]) + + if log is not None and after_align is not None: + log.ok(start_align, "var sized union", self, my_callstack, after_align) + + + if after_align is None and log is not None: + log.fail(start_align, "", self, my_callstack, "start_align is not ok for all members") + + return after_align + +class CaseOrBitcaseType(ComplexType): + ''' + Derived class representing a case or bitcase. + ''' + def __init__(self, index, name, elt, *parent): + elts = list(elt) + self.expr = [] + for sub_elt in elts: + if sub_elt.tag == 'enumref': + self.expr.append(Expression(sub_elt, self)) + elt.remove(sub_elt) + ComplexType.__init__(self, name, elt) + self.has_name = True + self.index = 1 + self.lenfield_parent = list(parent) + [self] + self.parents = list(parent) + self.is_case_or_bitcase = True + + def make_member_of(self, module, switch_type, field_type, field_name, visible, wire, auto, enum=None): + ''' + register BitcaseType with the corresponding SwitchType + + module is the global module object. + complex_type is the structure object. + see Field for the meaning of the other parameters. + ''' + new_field = Field(self, field_type, field_name, visible, wire, auto, enum) + + # We dump the _placeholder_byte if any bitcases are added. + for (idx, field) in enumerate(switch_type.bitcases): + if field == _placeholder_byte: + switch_type.bitcases[idx] = new_field + return + + switch_type.bitcases.append(new_field) + + def resolve(self, module): + if self.resolved: + return + + for e in self.expr: + e.resolve(module, self.parents+[self]) + + # Resolve the bitcase expression + ComplexType.resolve(self, module) + + #calculate alignment + self.calc_or_check_required_start_align() + + +class BitcaseType(CaseOrBitcaseType): + ''' + Derived class representing a bitcase. + ''' + def __init__(self, index, name, elt, *parent): + CaseOrBitcaseType.__init__(self, index, name, elt, *parent) + self.is_bitcase = True + +class CaseType(CaseOrBitcaseType): + ''' + Derived class representing a case. + ''' + def __init__(self, index, name, elt, *parent): + CaseOrBitcaseType.__init__(self, index, name, elt, *parent) + self.is_case = True + + +class Reply(ComplexType): + ''' + Derived class representing a reply. Only found as a field of Request. + ''' + def __init__(self, name, elt): + ComplexType.__init__(self, name, elt) + self.is_reply = True + self.doc = None + if self.required_start_align is None: + self.required_start_align = Alignment(4,0) + + for child in list(elt): + if child.tag == 'doc': + self.doc = Doc(name, child) + + def resolve(self, module): + if self.resolved: + return + # Reset pads count + module.pads = 0 + # Add the automatic protocol fields + self.fields.append(Field(tcard8, tcard8.name, 'response_type', False, True, True)) + self.fields.append(_placeholder_byte) + self.fields.append(Field(tcard16, tcard16.name, 'sequence', False, True, True)) + self.fields.append(Field(tcard32, tcard32.name, 'length', False, True, True)) + ComplexType.resolve(self, module) + + +class Request(ComplexType): + ''' + Derived class representing a request. + + Public fields added: + reply contains the reply datatype or None for void requests. + opcode contains the request number. + ''' + def __init__(self, name, elt): + ComplexType.__init__(self, name, elt) + self.reply = None + self.doc = None + self.opcode = elt.get('opcode') + if self.required_start_align is None: + self.required_start_align = Alignment(4,0) + + for child in list(elt): + if child.tag == 'reply': + self.reply = Reply(name, child) + if child.tag == 'doc': + self.doc = Doc(name, child) + + def resolve(self, module): + if self.resolved: + return + # Add the automatic protocol fields + if module.namespace.is_ext: + self.fields.append(Field(tcard8, tcard8.name, 'major_opcode', False, True, True)) + self.fields.append(Field(tcard8, tcard8.name, 'minor_opcode', False, True, True)) + self.fields.append(Field(tcard16, tcard16.name, 'length', False, True, True)) + ComplexType.resolve(self, module) + else: + self.fields.append(Field(tcard8, tcard8.name, 'major_opcode', False, True, True)) + self.fields.append(_placeholder_byte) + self.fields.append(Field(tcard16, tcard16.name, 'length', False, True, True)) + ComplexType.resolve(self, module) + + if self.reply: + self.reply.resolve(module) + + out = __main__.output['request'] + + +class Event(ComplexType): + ''' + Derived class representing an event data type. + + Public fields added: + opcodes is a dictionary of name -> opcode number, for eventcopies. + ''' + def __init__(self, name, elt): + ComplexType.__init__(self, name, elt) + + if self.required_start_align is None: + self.required_start_align = Alignment(4,0) + + self.opcodes = {} + + self.has_seq = not bool(elt.get('no-sequence-number')) + + self.is_ge_event = bool(elt.get('xge')) + + self.doc = None + for item in list(elt): + if item.tag == 'doc': + self.doc = Doc(name, item) + + def add_opcode(self, opcode, name, main): + self.opcodes[name] = opcode + if main: + self.name = name + + def resolve(self, module): + def add_event_header(): + self.fields.append(Field(tcard8, tcard8.name, 'response_type', False, True, True)) + if self.has_seq: + self.fields.append(_placeholder_byte) + self.fields.append(Field(tcard16, tcard16.name, 'sequence', False, True, True)) + + def add_ge_event_header(): + self.fields.append(Field(tcard8, tcard8.name, 'response_type', False, True, True)) + self.fields.append(Field(tcard8, tcard8.name, 'extension', False, True, True)) + self.fields.append(Field(tcard16, tcard16.name, 'sequence', False, True, True)) + self.fields.append(Field(tcard32, tcard32.name, 'length', False, True, True)) + self.fields.append(Field(tcard16, tcard16.name, 'event_type', False, True, True)) + + if self.resolved: + return + + # Add the automatic protocol fields + if self.is_ge_event: + add_ge_event_header() + else: + add_event_header() + + ComplexType.resolve(self, module) + + out = __main__.output['event'] + + +class Error(ComplexType): + ''' + Derived class representing an error data type. + + Public fields added: + opcodes is a dictionary of name -> opcode number, for errorcopies. + ''' + def __init__(self, name, elt): + ComplexType.__init__(self, name, elt) + self.opcodes = {} + if self.required_start_align is None: + self.required_start_align = Alignment(4,0) + + def add_opcode(self, opcode, name, main): + self.opcodes[name] = opcode + if main: + self.name = name + + def resolve(self, module): + if self.resolved: + return + + # Add the automatic protocol fields + self.fields.append(Field(tcard8, tcard8.name, 'response_type', False, True, True)) + self.fields.append(Field(tcard8, tcard8.name, 'error_code', False, True, True)) + self.fields.append(Field(tcard16, tcard16.name, 'sequence', False, True, True)) + ComplexType.resolve(self, module) + + out = __main__.output['error'] + + +class Doc(object): + ''' + Class representing a tag. + ''' + def __init__(self, name, elt): + self.name = name + self.description = None + self.brief = 'BRIEF DESCRIPTION MISSING' + self.fields = {} + self.errors = {} + self.see = {} + self.example = None + + for child in list(elt): + text = child.text if child.text else '' + if child.tag == 'description': + self.description = text.strip() + if child.tag == 'brief': + self.brief = text.strip() + if child.tag == 'field': + self.fields[child.get('name')] = text.strip() + if child.tag == 'error': + self.errors[child.get('type')] = text.strip() + if child.tag == 'see': + self.see[child.get('name')] = child.get('type') + if child.tag == 'example': + self.example = text.strip() + + + +_placeholder_byte = Field(PadType(None), tcard8.name, 'pad0', False, True, False) diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/xtypes.pyc b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/xtypes.pyc new file mode 100644 index 0000000..421ddd8 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/xtypes.pyc differ diff --git a/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/xtypes.pyo b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/xtypes.pyo new file mode 100644 index 0000000..cac6af8 Binary files /dev/null and b/squashfs-root/usr/lib/python2.7/site-packages/xcbgen/xtypes.pyo differ diff --git a/squashfs-root/usr/lib/sigc++-2.0/include/sigc++config.h b/squashfs-root/usr/lib/sigc++-2.0/include/sigc++config.h new file mode 100644 index 0000000..e212700 --- /dev/null +++ b/squashfs-root/usr/lib/sigc++-2.0/include/sigc++config.h @@ -0,0 +1,85 @@ +/* sigc++config.h. Generated from sigc++config.h.in by configure. */ + +/* Define to omit deprecated API from the library. */ +/* #undef SIGCXX_DISABLE_DEPRECATED */ + +/* Major version number of sigc++. */ +#define SIGCXX_MAJOR_VERSION 2 + +/* Micro version number of sigc++. */ +#define SIGCXX_MICRO_VERSION 0 + +/* Minor version number of sigc++. */ +#define SIGCXX_MINOR_VERSION 10 + +/* Detect Win32 platform */ +#ifdef _WIN32 +# if defined(_MSC_VER) +# define SIGC_MSC 1 +# define SIGC_WIN32 1 +# define SIGC_DLL 1 +# elif defined(__CYGWIN__) +# define SIGC_CONFIGURE 1 +# elif defined(__MINGW32__) +# define SIGC_WIN32 1 +# define SIGC_CONFIGURE 1 +# else +# error "libsigc++ config: Unknown win32 architecture (send me gcc --dumpspecs or equiv)" +# endif +#else /* !_WIN32 */ +# define SIGC_CONFIGURE 1 +#endif /* !_WIN32 */ + +#ifdef SIGC_MSC +/* + * MS VC7 Warning 4251 says that the classes to any member objects in an + * exported class must also be exported. Some of the libsigc++ + * template classes contain std::list members. MS KB article 168958 says + * that it's not possible to export a std::list instantiation due to some + * wacky class nesting issues, so our only options are to ignore the + * warning or to modify libsigc++ to remove the std::list dependency. + * AFAICT, the std::list members are used internally by the library code + * and don't need to be used from the outside, and ignoring the warning + * seems to have no adverse effects, so that seems like a good enough + * solution for now. + */ +# pragma warning(disable:4251) + +# define SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD 1 +# define SIGC_NEW_DELETE_IN_LIBRARY_ONLY 1 /* To keep ABI compatibility */ +# define SIGC_PRAGMA_PUSH_POP_MACRO 1 + +#if (_MSC_VER < 1900) && !defined (noexcept) +#define _ALLOW_KEYWORD_MACROS 1 +#define noexcept _NOEXCEPT +#endif + +#else /* SIGC_MSC */ + +/* does the C++ compiler support the use of a particular specialization when + calling operator() template methods. */ +# define SIGC_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD 1 + +/* Define if the non-standard Sun reverse_iterator must be used. */ +/* # undef SIGC_HAVE_SUN_REVERSE_ITERATOR */ + +/* does the C++ compiler support the use of a particular specialization when + calling operator() template methods omitting the template keyword. */ +# define SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD 1 + +/* does the C++ preprocessor support pragma push_macro() and pop_macro(). */ +# define SIGC_PRAGMA_PUSH_POP_MACRO 1 + +#endif /* !SIGC_MSC */ + +#ifdef SIGC_DLL +# if defined(SIGC_BUILD) && defined(_WINDLL) +# define SIGC_API __declspec(dllexport) +# elif !defined(SIGC_BUILD) +# define SIGC_API __declspec(dllimport) +# else +# define SIGC_API +# endif +#else /* !SIGC_DLL */ +# define SIGC_API +#endif /* !SIGC_DLL */ diff --git a/squashfs-root/usr/lib/terminfo b/squashfs-root/usr/lib/terminfo new file mode 120000 index 0000000..32e6eb7 --- /dev/null +++ b/squashfs-root/usr/lib/terminfo @@ -0,0 +1 @@ +../share/terminfo \ No newline at end of file diff --git a/squashfs-root/usr/lib/ts/debounce.so b/squashfs-root/usr/lib/ts/debounce.so new file mode 100755 index 0000000..9e5cba9 Binary files /dev/null and b/squashfs-root/usr/lib/ts/debounce.so differ diff --git a/squashfs-root/usr/lib/ts/dejitter.so b/squashfs-root/usr/lib/ts/dejitter.so new file mode 100755 index 0000000..e540740 Binary files /dev/null and b/squashfs-root/usr/lib/ts/dejitter.so differ diff --git a/squashfs-root/usr/lib/ts/iir.so b/squashfs-root/usr/lib/ts/iir.so new file mode 100755 index 0000000..c4dedb2 Binary files /dev/null and b/squashfs-root/usr/lib/ts/iir.so differ diff --git a/squashfs-root/usr/lib/ts/input.so b/squashfs-root/usr/lib/ts/input.so new file mode 100755 index 0000000..0d2b70e Binary files /dev/null and b/squashfs-root/usr/lib/ts/input.so differ diff --git a/squashfs-root/usr/lib/ts/invert.so b/squashfs-root/usr/lib/ts/invert.so new file mode 100755 index 0000000..a3d4c3c Binary files /dev/null and b/squashfs-root/usr/lib/ts/invert.so differ diff --git a/squashfs-root/usr/lib/ts/linear.so b/squashfs-root/usr/lib/ts/linear.so new file mode 100755 index 0000000..94bde70 Binary files /dev/null and b/squashfs-root/usr/lib/ts/linear.so differ diff --git a/squashfs-root/usr/lib/ts/lowpass.so b/squashfs-root/usr/lib/ts/lowpass.so new file mode 100755 index 0000000..0650003 Binary files /dev/null and b/squashfs-root/usr/lib/ts/lowpass.so differ diff --git a/squashfs-root/usr/lib/ts/median.so b/squashfs-root/usr/lib/ts/median.so new file mode 100755 index 0000000..97a5d56 Binary files /dev/null and b/squashfs-root/usr/lib/ts/median.so differ diff --git a/squashfs-root/usr/lib/ts/pthres.so b/squashfs-root/usr/lib/ts/pthres.so new file mode 100755 index 0000000..2065a16 Binary files /dev/null and b/squashfs-root/usr/lib/ts/pthres.so differ diff --git a/squashfs-root/usr/lib/ts/skip.so b/squashfs-root/usr/lib/ts/skip.so new file mode 100755 index 0000000..08f6491 Binary files /dev/null and b/squashfs-root/usr/lib/ts/skip.so differ diff --git a/squashfs-root/usr/lib/ts/tatung.so b/squashfs-root/usr/lib/ts/tatung.so new file mode 100755 index 0000000..6d85922 Binary files /dev/null and b/squashfs-root/usr/lib/ts/tatung.so differ diff --git a/squashfs-root/usr/lib/ts/touchkit.so b/squashfs-root/usr/lib/ts/touchkit.so new file mode 100755 index 0000000..5d6d72b Binary files /dev/null and b/squashfs-root/usr/lib/ts/touchkit.so differ diff --git a/squashfs-root/usr/lib/ts/variance.so b/squashfs-root/usr/lib/ts/variance.so new file mode 100755 index 0000000..9759b88 Binary files /dev/null and b/squashfs-root/usr/lib/ts/variance.so differ diff --git a/squashfs-root/usr/lib/ts/waveshare.so b/squashfs-root/usr/lib/ts/waveshare.so new file mode 100755 index 0000000..1a2879a Binary files /dev/null and b/squashfs-root/usr/lib/ts/waveshare.so differ diff --git a/squashfs-root/usr/lib/xml2Conf.sh b/squashfs-root/usr/lib/xml2Conf.sh new file mode 100644 index 0000000..bdcc50b --- /dev/null +++ b/squashfs-root/usr/lib/xml2Conf.sh @@ -0,0 +1,8 @@ +# +# Configuration file for using the XML library in GNOME applications +# +XML2_LIBDIR="-L/usr/lib" +XML2_LIBS="-lxml2 -L/opt/miyoo/bin/../arm-miyoo-linux-uclibcgnueabi/sysroot/usr/lib -lz -liconv -lm " +XML2_INCLUDEDIR="-I/usr/include/libxml2" +MODULE_VERSION="xml2-2.9.7" + diff --git a/squashfs-root/usr/lib/xorg/modules/drivers/modesetting_drv.so b/squashfs-root/usr/lib/xorg/modules/drivers/modesetting_drv.so new file mode 100755 index 0000000..41675e7 Binary files /dev/null and b/squashfs-root/usr/lib/xorg/modules/drivers/modesetting_drv.so differ diff --git a/squashfs-root/usr/lib/xorg/modules/extensions/libglx.so b/squashfs-root/usr/lib/xorg/modules/extensions/libglx.so new file mode 100755 index 0000000..a52cb7a Binary files /dev/null and b/squashfs-root/usr/lib/xorg/modules/extensions/libglx.so differ diff --git a/squashfs-root/usr/lib/xorg/modules/libexa.so b/squashfs-root/usr/lib/xorg/modules/libexa.so new file mode 100755 index 0000000..7b304b8 Binary files /dev/null and b/squashfs-root/usr/lib/xorg/modules/libexa.so differ diff --git a/squashfs-root/usr/lib/xorg/modules/libfb.so b/squashfs-root/usr/lib/xorg/modules/libfb.so new file mode 100755 index 0000000..7d7fc10 Binary files /dev/null and b/squashfs-root/usr/lib/xorg/modules/libfb.so differ diff --git a/squashfs-root/usr/lib/xorg/modules/libfbdevhw.so b/squashfs-root/usr/lib/xorg/modules/libfbdevhw.so new file mode 100755 index 0000000..69f9789 Binary files /dev/null and b/squashfs-root/usr/lib/xorg/modules/libfbdevhw.so differ diff --git a/squashfs-root/usr/lib/xorg/modules/libint10.so b/squashfs-root/usr/lib/xorg/modules/libint10.so new file mode 100755 index 0000000..c7b2c2e Binary files /dev/null and b/squashfs-root/usr/lib/xorg/modules/libint10.so differ diff --git a/squashfs-root/usr/lib/xorg/modules/libshadow.so b/squashfs-root/usr/lib/xorg/modules/libshadow.so new file mode 100755 index 0000000..042c224 Binary files /dev/null and b/squashfs-root/usr/lib/xorg/modules/libshadow.so differ diff --git a/squashfs-root/usr/lib/xorg/modules/libshadowfb.so b/squashfs-root/usr/lib/xorg/modules/libshadowfb.so new file mode 100755 index 0000000..207fbc2 Binary files /dev/null and b/squashfs-root/usr/lib/xorg/modules/libshadowfb.so differ diff --git a/squashfs-root/usr/lib/xorg/modules/libvbe.so b/squashfs-root/usr/lib/xorg/modules/libvbe.so new file mode 100755 index 0000000..32664bf Binary files /dev/null and b/squashfs-root/usr/lib/xorg/modules/libvbe.so differ diff --git a/squashfs-root/usr/lib/xorg/modules/libvgahw.so b/squashfs-root/usr/lib/xorg/modules/libvgahw.so new file mode 100755 index 0000000..0f5ea64 Binary files /dev/null and b/squashfs-root/usr/lib/xorg/modules/libvgahw.so differ diff --git a/squashfs-root/usr/lib/xorg/modules/libwfb.so b/squashfs-root/usr/lib/xorg/modules/libwfb.so new file mode 100755 index 0000000..8a61370 Binary files /dev/null and b/squashfs-root/usr/lib/xorg/modules/libwfb.so differ diff --git a/squashfs-root/usr/lib/xorg/protocol.txt b/squashfs-root/usr/lib/xorg/protocol.txt new file mode 100644 index 0000000..244556a --- /dev/null +++ b/squashfs-root/usr/lib/xorg/protocol.txt @@ -0,0 +1,904 @@ +# Registry of protocol names used by X Server +# This will eventually be replaced by server-side XCB +# +# Format is Xnnn : +# R=Request, V=Event, E=Error +# +# This is a security-sensitive file, please set permissions as appropriate. +# +R000 Apple-DRI:QueryVersion +R001 Apple-DRI:QueryDirectRenderingCapable +R002 Apple-DRI:CreateSurface +R003 Apple-DRI:DestroySurface +R004 Apple-DRI:AuthConnection +V000 Apple-DRI:ObsoleteEvent1 +V001 Apple-DRI:ObsoleteEvent2 +V002 Apple-DRI:ObsoleteEvent3 +V003 Apple-DRI:SurfaceNotify +E000 Apple-DRI:ClientNotLocal +E001 Apple-DRI:OperationNotSupported +R000 Apple-WM:QueryVersion +R001 Apple-WM:FrameGetRect +R002 Apple-WM:FrameHitTest +R003 Apple-WM:FrameDraw +R004 Apple-WM:DisableUpdate +R005 Apple-WM:ReenableUpdate +R006 Apple-WM:SelectInput +R007 Apple-WM:SetWindowMenuCheck +R008 Apple-WM:SetFrontProcess +R009 Apple-WM:SetWindowLevel +R010 Apple-WM:SetCanQuit +R011 Apple-WM:SetWindowMenu +V000 Apple-WM:ControllerNotify +V001 Apple-WM:ActivationNotify +V002 Apple-WM:PasteboardNotify +E000 Apple-WM:ClientNotLocal +E001 Apple-WM:OperationNotSupported +R000 BIG-REQUESTS:Enable +R000 Composite:CompositeQueryVersion +R001 Composite:CompositeRedirectWindow +R002 Composite:CompositeRedirectSubwindows +R003 Composite:CompositeUnredirectWindow +R004 Composite:CompositeUnredirectSubwindows +R005 Composite:CompositeCreateRegionFromBorderClip +R006 Composite:CompositeNameWindowPixmap +R007 Composite:CompositeGetOverlayWindow +R008 Composite:CompositeReleaseOverlayWindow +R000 DAMAGE:QueryVersion +R001 DAMAGE:Create +R002 DAMAGE:Destroy +R003 DAMAGE:Subtract +R004 DAMAGE:Add +V000 DAMAGE:Notify +E000 DAMAGE:BadDamage +R000 DMX:DMXQueryVersion +R001 DMX:DMXGetScreenCount +R002 DMX:DMXGetScreenInfoDEPRECATED +R003 DMX:DMXGetWindowAttributes +R004 DMX:DMXGetInputCount +R005 DMX:DMXGetInputAttributes +R006 DMX:DMXForceWindowCreationDEPRECATED +R007 DMX:DMXReconfigureScreenDEPRECATED +R008 DMX:DMXSync +R009 DMX:DMXForceWindowCreation +R010 DMX:DMXGetScreenAttributes +R011 DMX:DMXChangeScreensAttributes +R012 DMX:DMXAddScreen +R013 DMX:DMXRemoveScreen +R014 DMX:DMXGetDesktopAttributes +R015 DMX:DMXChangeDesktopAttributes +R016 DMX:DMXAddInput +R017 DMX:DMXRemoveInput +R000 DOUBLE-BUFFER:GetVersion +R001 DOUBLE-BUFFER:AllocateBackBufferName +R002 DOUBLE-BUFFER:DeallocateBackBufferName +R003 DOUBLE-BUFFER:SwapBuffers +R004 DOUBLE-BUFFER:BeginIdiom +R005 DOUBLE-BUFFER:EndIdiom +R006 DOUBLE-BUFFER:GetVisualInfo +R007 DOUBLE-BUFFER:GetBackBufferAttributes +E000 DOUBLE-BUFFER:BadBuffer +R000 DPMS:GetVersion +R001 DPMS:Capable +R002 DPMS:GetTimeouts +R003 DPMS:SetTimeouts +R004 DPMS:Enable +R005 DPMS:Disable +R006 DPMS:ForceLevel +R007 DPMS:Info +R000 DRI2:QueryVersion +R001 DRI2:Connect +R002 DRI2:Authenticate +R003 DRI2:CreateDrawable +R004 DRI2:DestroyDrawable +R005 DRI2:GetBuffers +R006 DRI2:CopyRegion +R007 DRI2:GetBuffersWithFormat +R008 DRI2:SwapBuffers +R009 DRI2:GetMSC +R010 DRI2:WaitMSC +R011 DRI2:WaitSBC +R012 DRI2:SwapInterval +V000 DRI2:BufferSwapComplete +V001 DRI2:InvalidateBuffers +R000 DRI3:QueryVersion +R001 DRI3:Open +R002 DRI3:PixmapFromBuffer +R003 DRI3:BufferFromPixmap +R004 DRI3:FenceFromFD +R005 DRI3:FDFromFence +R000 Extended-Visual-Information:QueryVersion +R001 Extended-Visual-Information:GetVisualInfo +R000 FontCache:QueryVersion +R001 FontCache:GetCacheSettings +R002 FontCache:ChangeCacheSettings +R003 FontCache:GetCacheStatistics +E000 FontCache:BadProtocol +E001 FontCache:CannotAllocMemory +R001 GLX: +R002 GLX:Large +R003 GLX:CreateContext +R004 GLX:DestroyContext +R005 GLX:MakeCurrent +R006 GLX:IsDirect +R007 GLX:QueryVersion +R008 GLX:WaitGL +R009 GLX:WaitX +R010 GLX:CopyContext +R011 GLX:SwapBuffers +R012 GLX:UseXFont +R013 GLX:CreateGLXPixmap +R014 GLX:GetVisualConfigs +R015 GLX:DestroyGLXPixmap +R016 GLX:VendorPrivate +R017 GLX:VendorPrivateWithReply +R018 GLX:QueryExtensionsString +R019 GLX:QueryServerString +R020 GLX:ClientInfo +R021 GLX:GetFBConfigs +R022 GLX:CreatePixmap +R023 GLX:DestroyPixmap +R024 GLX:CreateNewContext +R025 GLX:QueryContext +R026 GLX:MakeContextCurrent +R027 GLX:CreatePbuffer +R028 GLX:DestroyPbuffer +R029 GLX:GetDrawableAttributes +R030 GLX:ChangeDrawableAttributes +R031 GLX:CreateWindow +R032 GLX:DeleteWindow +R033 GLX:SetClientInfoARB +R034 GLX:CreateContextAttribsARB +R101 GLX:NewList +R102 GLX:EndList +R103 GLX:DeleteLists +R104 GLX:GenLists +R105 GLX:FeedbackBuffer +R106 GLX:SelectBuffer +R107 GLX:Mode +R108 GLX:Finish +R109 GLX:PixelStoref +R110 GLX:PixelStorei +R111 GLX:ReadPixels +R112 GLX:GetBooleanv +R113 GLX:GetClipPlane +R114 GLX:GetDoublev +R115 GLX:GetError +R116 GLX:GetFloatv +R117 GLX:GetIntegerv +R118 GLX:GetLightfv +R119 GLX:GetLightiv +R120 GLX:GetMapdv +R121 GLX:GetMapfv +R122 GLX:GetMapiv +R123 GLX:GetMaterialfv +R124 GLX:GetMaterialiv +R125 GLX:GetPixelfv +R126 GLX:GetPixelMapuiv +R127 GLX:GetPixelMapusv +R128 GLX:GetPolygonStipple +R129 GLX:GetString +R130 GLX:GetTexEnvfv +R131 GLX:GetTexEnviv +R132 GLX:GetTexGendv +R133 GLX:GetTexGenfv +R134 GLX:GetTexGeniv +R135 GLX:GetTexImage +R136 GLX:GetTexParameterfv +R137 GLX:GetTexParameteriv +R138 GLX:GetTexLevelParameterfv +R139 GLX:GetTexLevelParameteriv +R140 GLX:IsEnabled +R141 GLX:IsList +R142 GLX:Flush +R143 GLX:AreTexturesResident +R144 GLX:DeleteTextures +R145 GLX:GenTextures +R146 GLX:IsTexture +R147 GLX:GetColorTable +R148 GLX:GetColorTableParameterfv +R149 GLX:GetColorTableParameterfv +R150 GLX:GetConvolutionFilter +R151 GLX:GetConvolutionParameterfv +R152 GLX:GetConvolutionParameteriv +R153 GLX:GetSeparableFilter +R154 GLX:GetHistogram +R155 GLX:GetHistogramParameterfv +R156 GLX:GetHistogramParameteriv +R157 GLX:GetMinmax +R158 GLX:GetMinmaxParameterfv +R159 GLX:GetMinmaxParameteriv +R160 GLX:GetCompressedTexImage +V000 GLX:PbufferClobber +V001 GLX:BufferSwapComplete +E000 GLX:BadContext +E001 GLX:BadContextState +E002 GLX:BadDrawable +E003 GLX:BadPixmap +E004 GLX:BadContextTag +E005 GLX:BadCurrentWindow +E006 GLX:BadRenderRequest +E007 GLX:BadLargeRequest +E008 GLX:UnsupportedPrivateRequest +E009 GLX:BadFBConfig +E010 GLX:BadPbuffer +E011 GLX:BadCurrentDrawable +E012 GLX:BadWindow +R000 MIT-SCREEN-SAVER:QueryVersion +R001 MIT-SCREEN-SAVER:QueryInfo +R002 MIT-SCREEN-SAVER:SelectInput +R003 MIT-SCREEN-SAVER:SetAttributes +R004 MIT-SCREEN-SAVER:UnsetAttributes +R005 MIT-SCREEN-SAVER:Suspend +V000 MIT-SCREEN-SAVER:Notify +R000 MIT-SHM:QueryVersion +R001 MIT-SHM:Attach +R002 MIT-SHM:Detach +R003 MIT-SHM:PutImage +R004 MIT-SHM:GetImage +R005 MIT-SHM:CreatePixmap +R006 MIT-SHM:AttachFd +R007 MIT-SHM:CreateSegment +V000 MIT-SHM:Completion +E000 MIT-SHM:BadShmSeg +R000 MIT-SUNDRY-NONSTANDARD:SetBugMode +R001 MIT-SUNDRY-NONSTANDARD:GetBugMode +R000 Present:QueryVersion +R001 Present:Pixmap +R002 Present:NotifyMSC +R003 Present:SelectInput +R004 Present:QueryCapabilities +R000 RANDR:QueryVersion +R001 RANDR:OldGetScreenInfo +R002 RANDR:SetScreenConfig +R003 RANDR:OldScreenChangeSelectInput +R004 RANDR:SelectInput +R005 RANDR:GetScreenInfo +R006 RANDR:GetScreenSizeRange +R007 RANDR:SetScreenSize +R008 RANDR:GetScreenResources +R009 RANDR:GetOutputInfo +R010 RANDR:ListOutputProperties +R011 RANDR:QueryOutputProperty +R012 RANDR:ConfigureOutputProperty +R013 RANDR:ChangeOutputProperty +R014 RANDR:DeleteOutputProperty +R015 RANDR:GetOutputProperty +R016 RANDR:CreateMode +R017 RANDR:DestroyMode +R018 RANDR:AddOutputMode +R019 RANDR:DeleteOutputMode +R020 RANDR:GetCrtcInfo +R021 RANDR:SetCrtcConfig +R022 RANDR:GetCrtcGammaSize +R023 RANDR:GetCrtcGamma +R024 RANDR:SetCrtcGamma +R025 RANDR:GetScreenResourcesCurrent +R026 RANDR:SetCrtcTransform +R027 RANDR:GetCrtcTransform +R028 RANDR:GetPanning +R029 RANDR:SetPanning +R030 RANDR:SetOutputPrimary +R031 RANDR:GetOutputPrimary +R032 RANDR:RRGetProviders +R033 RANDR:RRGetProviderInfo +R034 RANDR:RRSetProviderOffloadSink +R035 RANDR:RRSetProviderOutputSource +R036 RANDR:RRListProviderProperties +R037 RANDR:RRQueryProviderProperty +R038 RANDR:RRConfigureProviderProperty +R039 RANDR:RRChangeProviderProperty +R040 RANDR:RRDeleteProviderProperty +R041 RANDR:RRGetProviderProperty +R042 RANDR:GetMonitors +R043 RANDR:SetMonitor +R044 RANDR:DeleteMonitor +V000 RANDR:ScreenChangeNotify +V001 RANDR:Notify +E000 RANDR:BadRROutput +E001 RANDR:BadRRCrtc +E002 RANDR:BadRRMode +E003 RANDR:BadRRProvider +R000 RECORD:QueryVersion +R001 RECORD:CreateContext +R002 RECORD:RegisterClients +R003 RECORD:UnregisterClients +R004 RECORD:GetContext +R005 RECORD:EnableContext +R006 RECORD:DisableContext +R007 RECORD:FreeContext +E000 RECORD:BadContext +R000 RENDER:QueryVersion +R001 RENDER:QueryPictFormats +R002 RENDER:QueryPictIndexValues +R003 RENDER:QueryDithers +R004 RENDER:CreatePicture +R005 RENDER:ChangePicture +R006 RENDER:SetPictureClipRectangles +R007 RENDER:FreePicture +R008 RENDER:Composite +R009 RENDER:Scale +R010 RENDER:Trapezoids +R011 RENDER:Triangles +R012 RENDER:TriStrip +R013 RENDER:TriFan +R014 RENDER:ColorTrapezoids +R015 RENDER:ColorTriangles +R016 RENDER:Transform +R017 RENDER:CreateGlyphSet +R018 RENDER:ReferenceGlyphSet +R019 RENDER:FreeGlyphSet +R020 RENDER:AddGlyphs +R021 RENDER:AddGlyphsFromPicture +R022 RENDER:FreeGlyphs +R023 RENDER:CompositeGlyphs8 +R024 RENDER:CompositeGlyphs16 +R025 RENDER:CompositeGlyphs32 +R026 RENDER:FillRectangles +R027 RENDER:CreateCursor +R028 RENDER:SetPictureTransform +R029 RENDER:QueryFilters +R030 RENDER:SetPictureFilter +R031 RENDER:CreateAnimCursor +R032 RENDER:AddTraps +R033 RENDER:CreateSolidFill +R034 RENDER:CreateLinearGradient +R035 RENDER:CreateRadialGradient +R036 RENDER:CreateConicalGradient +E000 RENDER:BadPictFormat +E001 RENDER:BadPicture +E002 RENDER:BadPictOp +E003 RENDER:BadGlyphSet +E004 RENDER:BadGlyph +R000 SECURITY:QueryVersion +R001 SECURITY:GenerateAuthorization +R002 SECURITY:RevokeAuthorization +V000 SECURITY:AuthorizationRevoked +E000 SECURITY:BadAuthorization +E001 SECURITY:BadAuthorizationProtocol +R000 SELinux:SELinuxQueryVersion +R001 SELinux:SELinuxSetDeviceCreateContext +R002 SELinux:SELinuxGetDeviceCreateContext +R003 SELinux:SELinuxSetDeviceContext +R004 SELinux:SELinuxGetDeviceContext +R005 SELinux:SELinuxSetWindowCreateContext +R006 SELinux:SELinuxGetWindowCreateContext +R007 SELinux:SELinuxGetWindowContext +R008 SELinux:SELinuxSetPropertyCreateContext +R009 SELinux:SELinuxGetPropertyCreateContext +R010 SELinux:SELinuxSetPropertyUseContext +R011 SELinux:SELinuxGetPropertyUseContext +R012 SELinux:SELinuxGetPropertyContext +R013 SELinux:SELinuxGetPropertyDataContext +R014 SELinux:SELinuxListProperties +R015 SELinux:SELinuxSetSelectionCreateContext +R016 SELinux:SELinuxGetSelectionCreateContext +R017 SELinux:SELinuxSetSelectionUseContext +R018 SELinux:SELinuxGetSelectionUseContext +R019 SELinux:SELinuxGetSelectionContext +R020 SELinux:SELinuxGetSelectionDataContext +R021 SELinux:SELinuxListSelections +R022 SELinux:SELinuxGetClientContext +R000 SHAPE:QueryVersion +R001 SHAPE:Rectangles +R002 SHAPE:Mask +R003 SHAPE:Combine +R004 SHAPE:Offset +R005 SHAPE:QueryExtents +R006 SHAPE:SelectInput +R007 SHAPE:InputSelected +R008 SHAPE:GetRectangles +V000 SHAPE:Notify +R000 SYNC:Initialize +R001 SYNC:ListSystemCounters +R002 SYNC:CreateCounter +R003 SYNC:SetCounter +R004 SYNC:ChangeCounter +R005 SYNC:QueryCounter +R006 SYNC:DestroyCounter +R007 SYNC:Await +R008 SYNC:CreateAlarm +R009 SYNC:ChangeAlarm +R010 SYNC:QueryAlarm +R011 SYNC:DestroyAlarm +R012 SYNC:SetPriority +R013 SYNC:GetPriority +V000 SYNC:CounterNotify +V001 SYNC:AlarmNotify +E000 SYNC:BadCounter +E001 SYNC:BadAlarm +R000 TOG-CUP:QueryVersion +R001 TOG-CUP:GetReservedColormapEntries +R002 TOG-CUP:StoreColors +R000 Windows-WM:QueryVersion +R001 Windows-WM:FrameGetRect +R002 Windows-WM:FrameDraw +R003 Windows-WM:FrameSetTitle +R004 Windows-WM:DisableUpdate +R005 Windows-WM:ReenableUpdate +R006 Windows-WM:SelectInput +R007 Windows-WM:SetFrontProcess +V000 Windows-WM:ControllerNotify +V001 Windows-WM:ActivationNotify +E000 Windows-WM:ClientNotLocal +E001 Windows-WM:OperationNotSupported +R000 X-Resource:QueryVersion +R001 X-Resource:QueryClients +R002 X-Resource:QueryClientResources +R003 X-Resource:QueryClientPixmapBytes +R001 X11:CreateWindow +R002 X11:ChangeWindowAttributes +R003 X11:GetWindowAttributes +R004 X11:DestroyWindow +R005 X11:DestroySubwindows +R006 X11:ChangeSaveSet +R007 X11:ReparentWindow +R008 X11:MapWindow +R009 X11:MapSubwindows +R010 X11:UnmapWindow +R011 X11:UnmapSubwindows +R012 X11:ConfigureWindow +R013 X11:CirculateWindow +R014 X11:GetGeometry +R015 X11:QueryTree +R016 X11:InternAtom +R017 X11:GetAtomName +R018 X11:ChangeProperty +R019 X11:DeleteProperty +R020 X11:GetProperty +R021 X11:ListProperties +R022 X11:SetSelectionOwner +R023 X11:GetSelectionOwner +R024 X11:ConvertSelection +R025 X11:SendEvent +R026 X11:GrabPointer +R027 X11:UngrabPointer +R028 X11:GrabButton +R029 X11:UngrabButton +R030 X11:ChangeActivePointerGrab +R031 X11:GrabKeyboard +R032 X11:UngrabKeyboard +R033 X11:GrabKey +R034 X11:UngrabKey +R035 X11:AllowEvents +R036 X11:GrabServer +R037 X11:UngrabServer +R038 X11:QueryPointer +R039 X11:GetMotionEvents +R040 X11:TranslateCoords +R041 X11:WarpPointer +R042 X11:SetInputFocus +R043 X11:GetInputFocus +R044 X11:QueryKeymap +R045 X11:OpenFont +R046 X11:CloseFont +R047 X11:QueryFont +R048 X11:QueryTextExtents +R049 X11:ListFonts +R050 X11:ListFontsWithInfo +R051 X11:SetFontPath +R052 X11:GetFontPath +R053 X11:CreatePixmap +R054 X11:FreePixmap +R055 X11:CreateGC +R056 X11:ChangeGC +R057 X11:CopyGC +R058 X11:SetDashes +R059 X11:SetClipRectangles +R060 X11:FreeGC +R061 X11:ClearArea +R062 X11:CopyArea +R063 X11:CopyPlane +R064 X11:PolyPoint +R065 X11:PolyLine +R066 X11:PolySegment +R067 X11:PolyRectangle +R068 X11:PolyArc +R069 X11:FillPoly +R070 X11:PolyFillRectangle +R071 X11:PolyFillArc +R072 X11:PutImage +R073 X11:GetImage +R074 X11:PolyText8 +R075 X11:PolyText16 +R076 X11:ImageText8 +R077 X11:ImageText16 +R078 X11:CreateColormap +R079 X11:FreeColormap +R080 X11:CopyColormapAndFree +R081 X11:InstallColormap +R082 X11:UninstallColormap +R083 X11:ListInstalledColormaps +R084 X11:AllocColor +R085 X11:AllocNamedColor +R086 X11:AllocColorCells +R087 X11:AllocColorPlanes +R088 X11:FreeColors +R089 X11:StoreColors +R090 X11:StoreNamedColor +R091 X11:QueryColors +R092 X11:LookupColor +R093 X11:CreateCursor +R094 X11:CreateGlyphCursor +R095 X11:FreeCursor +R096 X11:RecolorCursor +R097 X11:QueryBestSize +R098 X11:QueryExtension +R099 X11:ListExtensions +R100 X11:ChangeKeyboardMapping +R101 X11:GetKeyboardMapping +R102 X11:ChangeKeyboardControl +R103 X11:GetKeyboardControl +R104 X11:Bell +R105 X11:ChangePointerControl +R106 X11:GetPointerControl +R107 X11:SetScreenSaver +R108 X11:GetScreenSaver +R109 X11:ChangeHosts +R110 X11:ListHosts +R111 X11:SetAccessControl +R112 X11:SetCloseDownMode +R113 X11:KillClient +R114 X11:RotateProperties +R115 X11:ForceScreenSaver +R116 X11:SetPointerMapping +R117 X11:GetPointerMapping +R118 X11:SetModifierMapping +R119 X11:GetModifierMapping +R127 X11:NoOperation +V000 X11:X_Error +V001 X11:X_Reply +V002 X11:KeyPress +V003 X11:KeyRelease +V004 X11:ButtonPress +V005 X11:ButtonRelease +V006 X11:MotionNotify +V007 X11:EnterNotify +V008 X11:LeaveNotify +V009 X11:FocusIn +V010 X11:FocusOut +V011 X11:KeymapNotify +V012 X11:Expose +V013 X11:GraphicsExpose +V014 X11:NoExpose +V015 X11:VisibilityNotify +V016 X11:CreateNotify +V017 X11:DestroyNotify +V018 X11:UnmapNotify +V019 X11:MapNotify +V020 X11:MapRequest +V021 X11:ReparentNotify +V022 X11:ConfigureNotify +V023 X11:ConfigureRequest +V024 X11:GravityNotify +V025 X11:ResizeRequest +V026 X11:CirculateNotify +V027 X11:CirculateRequest +V028 X11:PropertyNotify +V029 X11:SelectionClear +V030 X11:SelectionRequest +V031 X11:SelectionNotify +V032 X11:ColormapNotify +V033 X11:ClientMessage +V034 X11:MappingNotify +V035 X11:GenericEvent +E000 X11:Success +E001 X11:BadRequest +E002 X11:BadValue +E003 X11:BadWindow +E004 X11:BadPixmap +E005 X11:BadAtom +E006 X11:BadCursor +E007 X11:BadFont +E008 X11:BadMatch +E009 X11:BadDrawable +E010 X11:BadAccess +E011 X11:BadAlloc +E012 X11:BadColor +E013 X11:BadGC +E014 X11:BadIDChoice +E015 X11:BadName +E016 X11:BadLength +E017 X11:BadImplementation +R000 XC-APPGROUP:QueryVersion +R001 XC-APPGROUP:Create +R002 XC-APPGROUP:Destroy +R003 XC-APPGROUP:GetAttr +R004 XC-APPGROUP:Query +R005 XC-APPGROUP:CreateAssoc +R006 XC-APPGROUP:DestroyAssoc +E000 XC-APPGROUP:BadAppGroup +R000 XC-MISC:GetVersion +R001 XC-MISC:GetXIDRange +R002 XC-MISC:GetXIDList +R000 XFIXES:QueryVersion +R001 XFIXES:ChangeSaveSet +R002 XFIXES:SelectSelectionInput +R003 XFIXES:SelectCursorInput +R004 XFIXES:GetCursorImage +R005 XFIXES:CreateRegion +R006 XFIXES:CreateRegionFromBitmap +R007 XFIXES:CreateRegionFromWindow +R008 XFIXES:CreateRegionFromGC +R009 XFIXES:CreateRegionFromPicture +R010 XFIXES:DestroyRegion +R011 XFIXES:SetRegion +R012 XFIXES:CopyRegion +R013 XFIXES:UnionRegion +R014 XFIXES:IntersectRegion +R015 XFIXES:SubtractRegion +R016 XFIXES:InvertRegion +R017 XFIXES:TranslateRegion +R018 XFIXES:RegionExtents +R019 XFIXES:FetchRegion +R020 XFIXES:SetGCClipRegion +R021 XFIXES:SetWindowShapeRegion +R022 XFIXES:SetPictureClipRegion +R023 XFIXES:SetCursorName +R024 XFIXES:GetCursorName +R025 XFIXES:GetCursorImageAndName +R026 XFIXES:ChangeCursor +R027 XFIXES:ChangeCursorByName +R028 XFIXES:ExpandRegion +R029 XFIXES:HideCursor +R030 XFIXES:ShowCursor +V000 XFIXES:SelectionNotify +V001 XFIXES:CursorNotify +E000 XFIXES:BadRegion +R000 XFree86-Bigfont:QueryVersion +R001 XFree86-Bigfont:QueryFont +R000 XFree86-DGA:QueryVersion +R001 XFree86-DGA:GetVideoLL +R002 XFree86-DGA:DirectVideo +R003 XFree86-DGA:GetViewPortSize +R004 XFree86-DGA:SetViewPort +R005 XFree86-DGA:GetVidPage +R006 XFree86-DGA:SetVidPage +R007 XFree86-DGA:InstallColormap +R008 XFree86-DGA:QueryDirectVideo +R009 XFree86-DGA:ViewPortChanged +R010 XFree86-DGA:Obsolete1 +R011 XFree86-DGA:Obsolete2 +R012 XFree86-DGA:QueryModes +R013 XFree86-DGA:SetMode +R014 XFree86-DGA:SetViewport +R015 XFree86-DGA:InstallColormap +R016 XFree86-DGA:SelectInput +R017 XFree86-DGA:FillRectangle +R018 XFree86-DGA:CopyArea +R019 XFree86-DGA:CopyTransparentArea +R020 XFree86-DGA:GetViewportStatus +R021 XFree86-DGA:Sync +R022 XFree86-DGA:OpenFramebuffer +R023 XFree86-DGA:CloseFramebuffer +R024 XFree86-DGA:SetClientVersion +R025 XFree86-DGA:ChangePixmapMode +R026 XFree86-DGA:CreateColormap +E000 XFree86-DGA:ClientNotLocal +E001 XFree86-DGA:NoDirectVideoMode +E002 XFree86-DGA:ScreenNotActive +E003 XFree86-DGA:DirectNotActivated +E004 XFree86-DGA:OperationNotSupported +R000 XFree86-DRI:QueryVersion +R001 XFree86-DRI:QueryDirectRenderingCapable +R002 XFree86-DRI:OpenConnection +R003 XFree86-DRI:CloseConnection +R004 XFree86-DRI:GetClientDriverName +R005 XFree86-DRI:CreateContext +R006 XFree86-DRI:DestroyContext +R007 XFree86-DRI:CreateDrawable +R008 XFree86-DRI:DestroyDrawable +R009 XFree86-DRI:GetDrawableInfo +R010 XFree86-DRI:GetDeviceInfo +R011 XFree86-DRI:AuthConnection +R012 XFree86-DRI:OpenFullScreen +R013 XFree86-DRI:CloseFullScreen +E000 XFree86-DRI:ClientNotLocal +E001 XFree86-DRI:OperationNotSupported +R000 XFree86-Misc:QueryVersion +R001 XFree86-Misc:GetSaver +R002 XFree86-Misc:SetSaver +R003 XFree86-Misc:GetMouseSettings +R004 XFree86-Misc:GetKbdSettings +R005 XFree86-Misc:SetMouseSettings +R006 XFree86-Misc:SetKbdSettings +R007 XFree86-Misc:SetGrabKeysState +R008 XFree86-Misc:SetClientVersion +R009 XFree86-Misc:GetFilePaths +R010 XFree86-Misc:PassMessage +E000 XFree86-Misc:BadMouseProtocol +E001 XFree86-Misc:BadMouseBaudRate +E002 XFree86-Misc:BadMouseFlags +E003 XFree86-Misc:BadMouseCombo +E004 XFree86-Misc:BadKbdType +E005 XFree86-Misc:ModInDevDisabled +E006 XFree86-Misc:ModInDevClientNotLocal +E007 XFree86-Misc:NoModule +R000 XFree86-VidModeExtension:QueryVersion +R001 XFree86-VidModeExtension:GetModeLine +R002 XFree86-VidModeExtension:ModModeLine +R003 XFree86-VidModeExtension:SwitchMode +R004 XFree86-VidModeExtension:GetMonitor +R005 XFree86-VidModeExtension:LockModeSwitch +R006 XFree86-VidModeExtension:GetAllModeLines +R007 XFree86-VidModeExtension:AddModeLine +R008 XFree86-VidModeExtension:DeleteModeLine +R009 XFree86-VidModeExtension:ValidateModeLine +R010 XFree86-VidModeExtension:SwitchToMode +R011 XFree86-VidModeExtension:GetViewPort +R012 XFree86-VidModeExtension:SetViewPort +R013 XFree86-VidModeExtension:GetDotClocks +R014 XFree86-VidModeExtension:SetClientVersion +R015 XFree86-VidModeExtension:SetGamma +R016 XFree86-VidModeExtension:GetGamma +R017 XFree86-VidModeExtension:GetGammaRamp +R018 XFree86-VidModeExtension:SetGammaRamp +R019 XFree86-VidModeExtension:GetGammaRampSize +R020 XFree86-VidModeExtension:GetPermissions +V000 XFree86-VidModeExtension:Notify +E000 XFree86-VidModeExtension:BadClock +E001 XFree86-VidModeExtension:BadHTimings +E002 XFree86-VidModeExtension:BadVTimings +E003 XFree86-VidModeExtension:ModeUnsuitable +E004 XFree86-VidModeExtension:ExtensionDisabled +E005 XFree86-VidModeExtension:ClientNotLocal +E006 XFree86-VidModeExtension:ZoomLocked +R000 XINERAMA:QueryVersion +R001 XINERAMA:GetState +R002 XINERAMA:GetScreenCount +R003 XINERAMA:GetScreenSize +R004 XINERAMA:IsActive +R005 XINERAMA:QueryScreens +R001 XInputExtension:GetExtensionVersion +R002 XInputExtension:ListInputDevices +R003 XInputExtension:OpenDevice +R004 XInputExtension:CloseDevice +R005 XInputExtension:SetDeviceMode +R006 XInputExtension:SelectExtensionEvent +R007 XInputExtension:GetSelectedExtensionEvents +R008 XInputExtension:ChangeDeviceDontPropagateList +R009 XInputExtension:GetDeviceDontPropagageList +R010 XInputExtension:GetDeviceMotionEvents +R011 XInputExtension:ChangeKeyboardDevice +R012 XInputExtension:ChangePointerDevice +R013 XInputExtension:GrabDevice +R014 XInputExtension:UngrabDevice +R015 XInputExtension:GrabDeviceKey +R016 XInputExtension:UngrabDeviceKey +R017 XInputExtension:GrabDeviceButton +R018 XInputExtension:UngrabDeviceButton +R019 XInputExtension:AllowDeviceEvents +R020 XInputExtension:GetDeviceFocus +R021 XInputExtension:SetDeviceFocus +R022 XInputExtension:GetFeedbackControl +R023 XInputExtension:ChangeFeedbackControl +R024 XInputExtension:GetDeviceKeyMapping +R025 XInputExtension:ChangeDeviceKeyMapping +R026 XInputExtension:GetDeviceModifierMapping +R027 XInputExtension:SetDeviceModifierMapping +R028 XInputExtension:GetDeviceButtonMapping +R029 XInputExtension:SetDeviceButtonMapping +R030 XInputExtension:QueryDeviceState +R031 XInputExtension:SendExtensionEvent +R032 XInputExtension:DeviceBell +R033 XInputExtension:SetDeviceValuators +R034 XInputExtension:GetDeviceControl +R035 XInputExtension:ChangeDeviceControl +R036 XInputExtension:ListDeviceProperties +R037 XInputExtension:ChangeDeviceProperty +R038 XInputExtension:DeleteDeviceProperty +R039 XInputExtension:GetDeviceProperty +R040 XInputExtension:QueryPointer +R041 XInputExtension:WarpPointer +R042 XInputExtension:ChangeCursor +R043 XInputExtension:ChangeHierarchy +R044 XInputExtension:SetClientPointer +R045 XInputExtension:GetClientPointer +R046 XInputExtension:SelectEvents +R047 XInputExtension:QueryVersion +R048 XInputExtension:QueryDevice +R049 XInputExtension:SetFocus +R050 XInputExtension:GetFocus +R051 XInputExtension:GrabDevice +R052 XInputExtension:UngrabDevice +R053 XInputExtension:AllowEvents +R054 XInputExtension:PassiveGrabDevice +R055 XInputExtension:PassiveUngrabDevice +R056 XInputExtension:ListProperties +R057 XInputExtension:ChangeProperty +R058 XInputExtension:DeleteProperty +R059 XInputExtension:GetProperty +R060 XInputExtension:GetSelectedEvents +V000 XInputExtension:DeviceValuator +V001 XInputExtension:DeviceKeyPress +V002 XInputExtension:DeviceKeyRelease +V003 XInputExtension:DeviceButtonPress +V004 XInputExtension:DeviceButtonRelease +V005 XInputExtension:DeviceMotionNotify +V006 XInputExtension:DeviceFocusIn +V007 XInputExtension:DeviceFocusOut +V008 XInputExtension:ProximityIn +V009 XInputExtension:ProximityOut +V010 XInputExtension:DeviceStateNotify +V011 XInputExtension:DeviceMappingNotify +V012 XInputExtension:ChangeDeviceNotify +V013 XInputExtension:DeviceKeystateNotify +V014 XInputExtension:DeviceButtonstateNotify +V015 XInputExtension:DevicePresenceNotify +V016 XInputExtension:DevicePropertyNotify +E000 XInputExtension:BadDevice +E001 XInputExtension:BadEvent +E002 XInputExtension:BadMode +E003 XInputExtension:DeviceBusy +E004 XInputExtension:BadClass +R000 XKEYBOARD:UseExtension +R001 XKEYBOARD:SelectEvents +R002 XKEYBOARD:Obsolete +R003 XKEYBOARD:Bell +R004 XKEYBOARD:GetState +R005 XKEYBOARD:LatchLockState +R006 XKEYBOARD:GetControls +R007 XKEYBOARD:SetControls +R008 XKEYBOARD:GetMap +R009 XKEYBOARD:SetMap +R010 XKEYBOARD:GetCompatMap +R011 XKEYBOARD:SetCompatMap +R012 XKEYBOARD:GetIndicatorState +R013 XKEYBOARD:GetIndicatorMap +R014 XKEYBOARD:SetIndicatorMap +R015 XKEYBOARD:GetNamedIndicator +R016 XKEYBOARD:SetNamedIndicator +R017 XKEYBOARD:GetNames +R018 XKEYBOARD:SetNames +R019 XKEYBOARD:GetGeometry +R020 XKEYBOARD:SetGeometry +R021 XKEYBOARD:PerClientFlags +R022 XKEYBOARD:ListComponents +R023 XKEYBOARD:GetKbdByName +R024 XKEYBOARD:GetDeviceInfo +R025 XKEYBOARD:SetDeviceInfo +R101 XKEYBOARD:SetDebuggingFlags +V000 XKEYBOARD:EventCode +E000 XKEYBOARD:BadKeyboard +R000 XTEST:GetVersion +R001 XTEST:CompareCursor +R002 XTEST:FakeInput +R003 XTEST:GrabControl +R000 XVideo:QueryExtension +R001 XVideo:QueryAdaptors +R002 XVideo:QueryEncodings +R003 XVideo:GrabPort +R004 XVideo:UngrabPort +R005 XVideo:PutVideo +R006 XVideo:PutStill +R007 XVideo:GetVideo +R008 XVideo:GetStill +R009 XVideo:StopVideo +R010 XVideo:SelectVideoNotify +R011 XVideo:SelectPortNotify +R012 XVideo:QueryBestSize +R013 XVideo:SetPortAttribute +R014 XVideo:GetPortAttribute +R015 XVideo:QueryPortAttributes +R016 XVideo:ListImageFormats +R017 XVideo:QueryImageAttributes +R018 XVideo:PutImage +R019 XVideo:ShmPutImage +V000 XVideo:VideoNotify +V001 XVideo:PortNotify +E000 XVideo:BadPort +E001 XVideo:BadEncoding +E002 XVideo:BadControl +R000 XVideo-MotionCompensation:QueryVersion +R001 XVideo-MotionCompensation:ListSurfaceTypes +R002 XVideo-MotionCompensation:CreateContext +R003 XVideo-MotionCompensation:DestroyContext +R004 XVideo-MotionCompensation:CreateSurface +R005 XVideo-MotionCompensation:DestroySurface +R006 XVideo-MotionCompensation:CreateSubpicture +R007 XVideo-MotionCompensation:DestroySubpicture +R008 XVideo-MotionCompensation:ListSubpictureTypes +R009 XVideo-MotionCompensation:GetDRInfo +E000 XVideo-MotionCompensation:BadContext +E001 XVideo-MotionCompensation:BadSurface +E002 XVideo-MotionCompensation:BadSubpicture diff --git a/squashfs-root/usr/lib32 b/squashfs-root/usr/lib32 new file mode 120000 index 0000000..7951405 --- /dev/null +++ b/squashfs-root/usr/lib32 @@ -0,0 +1 @@ +lib \ No newline at end of file diff --git a/squashfs-root/usr/libexec/dbus-daemon-launch-helper b/squashfs-root/usr/libexec/dbus-daemon-launch-helper new file mode 100755 index 0000000..2c16286 Binary files /dev/null and b/squashfs-root/usr/libexec/dbus-daemon-launch-helper differ diff --git a/squashfs-root/usr/libexec/gstreamer-0.10/gst-plugin-scanner b/squashfs-root/usr/libexec/gstreamer-0.10/gst-plugin-scanner new file mode 100755 index 0000000..237d47d Binary files /dev/null and b/squashfs-root/usr/libexec/gstreamer-0.10/gst-plugin-scanner differ diff --git a/squashfs-root/usr/sbin/addgroup b/squashfs-root/usr/sbin/addgroup new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/addgroup @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/adduser b/squashfs-root/usr/sbin/adduser new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/adduser @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/alsactl b/squashfs-root/usr/sbin/alsactl new file mode 100755 index 0000000..c1a0ccb Binary files /dev/null and b/squashfs-root/usr/sbin/alsactl differ diff --git a/squashfs-root/usr/sbin/arping b/squashfs-root/usr/sbin/arping new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/arping @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/chroot b/squashfs-root/usr/sbin/chroot new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/chroot @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/crond b/squashfs-root/usr/sbin/crond new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/crond @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/delgroup b/squashfs-root/usr/sbin/delgroup new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/delgroup @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/deluser b/squashfs-root/usr/sbin/deluser new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/deluser @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/dnsd b/squashfs-root/usr/sbin/dnsd new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/dnsd @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/ether-wake b/squashfs-root/usr/sbin/ether-wake new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/ether-wake @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/fbset b/squashfs-root/usr/sbin/fbset new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/fbset @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/fdformat b/squashfs-root/usr/sbin/fdformat new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/fdformat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/fsfreeze b/squashfs-root/usr/sbin/fsfreeze new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/fsfreeze @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/i2cdetect b/squashfs-root/usr/sbin/i2cdetect new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/i2cdetect @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/i2cdump b/squashfs-root/usr/sbin/i2cdump new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/i2cdump @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/i2cget b/squashfs-root/usr/sbin/i2cget new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/i2cget @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/i2cset b/squashfs-root/usr/sbin/i2cset new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/i2cset @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/inetd b/squashfs-root/usr/sbin/inetd new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/inetd @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/killall5 b/squashfs-root/usr/sbin/killall5 new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/killall5 @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/loadfont b/squashfs-root/usr/sbin/loadfont new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/loadfont @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/partprobe b/squashfs-root/usr/sbin/partprobe new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/partprobe @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/rdate b/squashfs-root/usr/sbin/rdate new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/rdate @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/readprofile b/squashfs-root/usr/sbin/readprofile new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/readprofile @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/setlogcons b/squashfs-root/usr/sbin/setlogcons new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/setlogcons @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/sbin/ubirename b/squashfs-root/usr/sbin/ubirename new file mode 120000 index 0000000..f948f1a --- /dev/null +++ b/squashfs-root/usr/sbin/ubirename @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/squashfs-root/usr/share/X11/XErrorDB b/squashfs-root/usr/share/X11/XErrorDB new file mode 100644 index 0000000..7b6d465 --- /dev/null +++ b/squashfs-root/usr/share/X11/XErrorDB @@ -0,0 +1,1022 @@ +! +! Copyright 1993, 1995, 1998 The Open Group + +! Permission to use, copy, modify, distribute, and sell this software and its +! documentation for any purpose is hereby granted without fee, provided that +! the above copyright notice appear in all copies and that both that +! copyright notice and this permission notice appear in supporting +! documentation. +! +! The above copyright notice and this permission notice shall be +! included in all copies or substantial portions of the Software. +! +! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +! EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +! IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +! OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +! ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +! OTHER DEALINGS IN THE SOFTWARE. +! +! Except as contained in this notice, the name of The Open Group shall +! not be used in advertising or otherwise to promote the sale, use or +! other dealings in this Software without prior written authorization +! from The Open Group. +! +! +! these are used in XGetErrorMessage. +XlibMessage.XError: X Error of failed request +XlibMessage.MajorCode: Major opcode of failed request: %d +XlibMessage.MinorCode: Minor opcode of failed request: %d +XlibMessage.ResourceID: Resource id in failed request: 0x%lx +XlibMessage.Value: Value in failed request: 0x%lx +XlibMessage.AtomID: Atom id in failed request: 0x%lx +XlibMessage.ErrorSerial: Serial number of failed request: %lu +XlibMessage.CurrentSerial: Current serial number in output stream: %lu +! X request codes. +XRequest.1:X_CreateWindow +XRequest.2:X_ChangeWindowAttributes +XRequest.3:X_GetWindowAttributes +XRequest.4:X_DestroyWindow +XRequest.5:X_DestroySubwindows +XRequest.6:X_ChangeSaveSet +XRequest.7:X_ReparentWindow +XRequest.8:X_MapWindow +XRequest.9:X_MapSubwindows +XRequest.10:X_UnmapWindow +XRequest.11:X_UnmapSubwindows +XRequest.12:X_ConfigureWindow +XRequest.13:X_CirculateWindow +XRequest.14:X_GetGeometry +XRequest.15:X_QueryTree +XRequest.16:X_InternAtom +XRequest.17:X_GetAtomName +XRequest.18:X_ChangeProperty +XRequest.19:X_DeleteProperty +XRequest.20:X_GetProperty +XRequest.21:X_ListProperties +XRequest.22:X_SetSelectionOwner +XRequest.23:X_GetSelectionOwner +XRequest.24:X_ConvertSelection +XRequest.25:X_SendEvent +XRequest.26:X_GrabPointer +XRequest.27:X_UngrabPointer +XRequest.28:X_GrabButton +XRequest.29:X_UngrabButton +XRequest.30:X_ChangeActivePointerGrab +XRequest.31:X_GrabKeyboard +XRequest.32:X_UngrabKeyboard +XRequest.33:X_GrabKey +XRequest.34:X_UngrabKey +XRequest.35:X_AllowEvents +XRequest.36:X_GrabServer +XRequest.37:X_UngrabServer +XRequest.38:X_QueryPointer +XRequest.39:X_GetMotionEvents +XRequest.40:X_TranslateCoords +XRequest.41:X_WarpPointer +XRequest.42:X_SetInputFocus +XRequest.43:X_GetInputFocus +XRequest.44:X_QueryKeymap +XRequest.45:X_OpenFont +XRequest.46:X_CloseFont +XRequest.47:X_QueryFont +XRequest.48:X_QueryTextExtents +XRequest.49:X_ListFonts +XRequest.50:X_ListFontsWithInfo +XRequest.51:X_SetFontPath +XRequest.52:X_GetFontPath +XRequest.53:X_CreatePixmap +XRequest.54:X_FreePixmap +XRequest.55:X_CreateGC +XRequest.56:X_ChangeGC +XRequest.57:X_CopyGC +XRequest.58:X_SetDashes +XRequest.59:X_SetClipRectangles +XRequest.60:X_FreeGC +XRequest.61:X_ClearArea +XRequest.62:X_CopyArea +XRequest.63:X_CopyPlane +XRequest.64:X_PolyPoint +XRequest.65:X_PolyLine +XRequest.66:X_PolySegment +XRequest.67:X_PolyRectangle +XRequest.68:X_PolyArc +XRequest.69:X_FillPoly +XRequest.70:X_PolyFillRectangle +XRequest.71:X_PolyFillArc +XRequest.72:X_PutImage +XRequest.73:X_GetImage +XRequest.74:X_PolyText8 +XRequest.75:X_PolyText16 +XRequest.76:X_ImageText8 +XRequest.77:X_ImageText16 +XRequest.78:X_CreateColormap +XRequest.79:X_FreeColormap +XRequest.80:X_CopyColormapAndFree +XRequest.81:X_InstallColormap +XRequest.82:X_UninstallColormap +XRequest.83:X_ListInstalledColormaps +XRequest.84:X_AllocColor +XRequest.85:X_AllocNamedColor +XRequest.86:X_AllocColorCells +XRequest.87:X_AllocColorPlanes +XRequest.88:X_FreeColors +XRequest.89:X_StoreColors +XRequest.90:X_StoreNamedColor +XRequest.91:X_QueryColors +XRequest.92:X_LookupColor +XRequest.93:X_CreateCursor +XRequest.94:X_CreateGlyphCursor +XRequest.95:X_FreeCursor +XRequest.96:X_RecolorCursor +XRequest.97:X_QueryBestSize +XRequest.98:X_QueryExtension +XRequest.99:X_ListExtensions +XRequest.100:X_ChangeKeyboardMapping +XRequest.101:X_GetKeyboardMapping +XRequest.102:X_ChangeKeyboardControl +XRequest.103:X_GetKeyboardControl +XRequest.104:X_Bell +XRequest.105:X_ChangePointerControl +XRequest.106:X_GetPointerControl +XRequest.107:X_SetScreenSaver +XRequest.108:X_GetScreenSaver +XRequest.109:X_ChangeHosts +XRequest.110:X_ListHosts +XRequest.111:X_SetAccessControl +XRequest.112:X_SetCloseDownMode +XRequest.113:X_KillClient +XRequest.114:X_RotateProperties +XRequest.115:X_ForceScreenSaver +XRequest.116:X_SetPointerMapping +XRequest.117:X_GetPointerMapping +XRequest.118:X_SetModifierMapping +XRequest.119:X_GetModifierMapping +XRequest.127:X_NoOperation +! X Error Codes +XProtoError.0: unknown error code 0 +XProtoError.1: BadRequest (invalid request code or no such operation) +XProtoError.2: BadValue (integer parameter out of range for operation) +XProtoError.3: BadWindow (invalid Window parameter) +XProtoError.4: BadPixmap (invalid Pixmap parameter) +XProtoError.5: BadAtom (invalid Atom parameter) +XProtoError.6: BadCursor (invalid Cursor parameter) +XProtoError.7: BadFont (invalid Font parameter) +XProtoError.8: BadMatch (invalid parameter attributes) +XProtoError.9: BadDrawable (invalid Pixmap or Window parameter) +XProtoError.10: BadAccess (attempt to access private resource denied) +XProtoError.11: BadAlloc (insufficient resources for operation) +XProtoError.12: BadColor (invalid Colormap parameter) +XProtoError.13: BadGC (invalid GC parameter) +XProtoError.14: BadIDChoice (invalid resource ID chosen for this connection) +XProtoError.15: BadName (named color or font does not exist) +XProtoError.16: BadLength (poly request too large or internal Xlib length error) +XProtoError.17: BadImplementation (server does not implement operation) +! Multi-Buffering extension, not an X Consortium standard +XRequest.Multi-Buffering.0: X_MbufGetBufferVersion +XRequest.Multi-Buffering.1: X_MbufCreateImageBuffers +XRequest.Multi-Buffering.2: X_MbufDestroyImageBuffers +XRequest.Multi-Buffering.3: X_MbufDisplayImageBuffers +XRequest.Multi-Buffering.4: X_MbufSetMultiBufferAttributes +XRequest.Multi-Buffering.5: X_MbufGetMultiBufferAttributes +XRequest.Multi-Buffering.6: X_MbufSetBufferAttributes +XRequest.Multi-Buffering.7: X_MbufGetBufferAttributes +XRequest.Multi-Buffering.8: X_MbufGetBufferInfo +XRequest.Multi-Buffering.9: X_MbufCreateStereoWindow +XProtoError.Multi-Buffering.0: BadBuffer (invalid Buffer parameter) +XlibMessage.Multi-Buffering.0: Buffer id in failed request: 0x%lx +! SHAPE extension, an X Consortium standard +XRequest.SHAPE.0: X_ShapeQueryVersion +XRequest.SHAPE.1: X_ShapeRectangles +XRequest.SHAPE.2: X_ShapeMask +XRequest.SHAPE.3: X_ShapeCombine +XRequest.SHAPE.4: X_ShapeOffset +XRequest.SHAPE.5: X_ShapeQueryExtents +XRequest.SHAPE.6: X_ShapeSelectInput +XRequest.SHAPE.7: X_ShapeInputSelected +XRequest.SHAPE.8: X_ShapeGetRectangles +! Input extension, an X Consortium standard +XRequest.XInputExtension.1:X_GetExtensionVersion +XRequest.XInputExtension.2:X_ListInputDevices +XRequest.XInputExtension.3:X_OpenDevice +XRequest.XInputExtension.4:X_CloseDevice +XRequest.XInputExtension.5:X_SetDeviceMode +XRequest.XInputExtension.6:X_SelectExtensionEvent +XRequest.XInputExtension.7:X_GetSelectedExtensionEvents +XRequest.XInputExtension.8:X_ChangeDeviceDontPropagateList +XRequest.XInputExtension.9:X_GetDeviceDontPropagateList +XRequest.XInputExtension.10:X_GetDeviceMotionEvents +XRequest.XInputExtension.11:X_ChangeKeyboardDevice +XRequest.XInputExtension.12:X_ChangePointerDevice +XRequest.XInputExtension.13:X_GrabDevice +XRequest.XInputExtension.14:X_UngrabDevice +XRequest.XInputExtension.15:X_GrabDeviceKey +XRequest.XInputExtension.16:X_UngrabDeviceKey +XRequest.XInputExtension.17:X_GrabDeviceButton +XRequest.XInputExtension.18:X_UngrabDeviceButton +XRequest.XInputExtension.19:X_AllowDeviceEvents +XRequest.XInputExtension.20:X_GetDeviceFocus +XRequest.XInputExtension.21:X_SetDeviceFocus +XRequest.XInputExtension.22:X_GetFeedbackControl +XRequest.XInputExtension.23:X_ChangeFeedbackControl +XRequest.XInputExtension.24:X_GetDeviceKeyMapping +XRequest.XInputExtension.25:X_ChangeDeviceKeyMapping +XRequest.XInputExtension.26:X_GetDeviceModifierMapping +XRequest.XInputExtension.27:X_SetDeviceModifierMapping +XRequest.XInputExtension.28:X_GetDeviceButtonMapping +XRequest.XInputExtension.29:X_SetDeviceButtonMapping +XRequest.XInputExtension.30:X_QueryDeviceState +XRequest.XInputExtension.31:X_SendExtensionEvent +XRequest.XInputExtension.32:X_DeviceBell +XRequest.XInputExtension.33:X_SetDeviceValuators +XRequest.XInputExtension.34:X_GetDeviceControl +XRequest.XInputExtension.35:X_ChangeDeviceControl +XRequest.XInputExtension.36: X_ListDeviceProperties +XRequest.XInputExtension.37: X_ChangeDeviceProperty +XRequest.XInputExtension.38: X_DeleteDeviceProperty +XRequest.XInputExtension.39: X_GetDeviceProperty +XProtoError.XInputExtension.0: XI_BadDevice (invalid Device parameter) +XlibMessage.XInputExtension.0: Device id in failed request: 0x%lx +XProtoError.XInputExtension.1: XI_BadEvent (invalid Event parameter) +XlibMessage.XInputExtension.1: Event id in failed request: 0x%lx +XProtoError.XInputExtension.2: XI_BadMode (invalid Mode parameter) +XlibMessage.XInputExtension.2: Mode id in failed request: 0x%lx +XProtoError.XInputExtension.3: XI_DeviceBusy +XlibMessage.XInputExtension.3: Device id in failed request: 0x%lx +XProtoError.XInputExtension.4: XI_BadClass (invalid Class parameter) +XlibMessage.XInputExtension.4: Class id in failed request: 0x%lx +! MIT-SHM extension, experimental, not an X Consortium standard +XRequest.MIT-SHM.0: X_ShmQueryVersion +XRequest.MIT-SHM.1: X_ShmAttach +XRequest.MIT-SHM.2: X_ShmDetach +XRequest.MIT-SHM.3: X_ShmPutImage +XRequest.MIT-SHM.4: X_ShmGetImage +XRequest.MIT-SHM.5: X_ShmCreatePixmap +XProtoError.MIT-SHM.0: BadShmSeg (invalid shared segment parameter) +XlibMessage.MIT-SHM.0: Segment id in failed request: 0x%lx +! MIT-SUNDRY-NONSTANDARD extension, definitely not an X Consortium standard +XRequest.MIT-SUNDRY-NONSTANDARD.0: X_MITSetBugMode +XRequest.MIT-SUNDRY-NONSTANDARD.1: X_MITGetBugMode +! X3D-PEX extension +XRequest.X3D-PEX.1: PEX_GetExtensionInfo +XRequest.X3D-PEX.2: PEX_GetEnumeratedTypeInfo +XRequest.X3D-PEX.3: PEX_GetImpDepConstants +XRequest.X3D-PEX.4: PEX_CreateLookupTable +XRequest.X3D-PEX.5: PEX_CopyLookupTable +XRequest.X3D-PEX.6: PEX_FreeLookupTable +XRequest.X3D-PEX.7: PEX_GetTableInfo +XRequest.X3D-PEX.8: PEX_GetPredefinedEntries +XRequest.X3D-PEX.9: PEX_GetDefinedIndices +XRequest.X3D-PEX.10: PEX_GetTableEntry +XRequest.X3D-PEX.11: PEX_GetTableEntries +XRequest.X3D-PEX.12: PEX_SetTableEntries +XRequest.X3D-PEX.13: PEX_DeleteTableEntries +XRequest.X3D-PEX.14: PEX_CreatePipelineContext +XRequest.X3D-PEX.15: PEX_CopyPipelineContext +XRequest.X3D-PEX.16: PEX_FreePipelineContext +XRequest.X3D-PEX.17: PEX_GetPipelineContext +XRequest.X3D-PEX.18: PEX_ChangePipelineContext +XRequest.X3D-PEX.19: PEX_CreateRenderer +XRequest.X3D-PEX.20: PEX_FreeRenderer +XRequest.X3D-PEX.21: PEX_ChangeRenderer +XRequest.X3D-PEX.22: PEX_GetRendererAttributes +XRequest.X3D-PEX.23: PEX_GetRendererDynamics +XRequest.X3D-PEX.24: PEX_BeginRendering +XRequest.X3D-PEX.25: PEX_EndRendering +XRequest.X3D-PEX.26: PEX_BeginStructure +XRequest.X3D-PEX.27: PEX_EndStructure +XRequest.X3D-PEX.28: PEX_RenderOutputCommands +XRequest.X3D-PEX.29: PEX_RenderNetwork +XRequest.X3D-PEX.30: PEX_CreateStructure +XRequest.X3D-PEX.31: PEX_CopyStructure +XRequest.X3D-PEX.32: PEX_DestroyStructures +XRequest.X3D-PEX.33: PEX_GetStructureInfo +XRequest.X3D-PEX.34: PEX_GetElementInfo +XRequest.X3D-PEX.35: PEX_GetStructuresInNetwork +XRequest.X3D-PEX.36: PEX_GetAncestors +XRequest.X3D-PEX.37: PEX_GetDescendants +XRequest.X3D-PEX.38: PEX_FetchElements +XRequest.X3D-PEX.39: PEX_SetEditingMode +XRequest.X3D-PEX.40: PEX_SetElementPointer +XRequest.X3D-PEX.41: PEX_SetElementPointerAtLabel +XRequest.X3D-PEX.42: PEX_ElementSearch +XRequest.X3D-PEX.43: PEX_StoreElements +XRequest.X3D-PEX.44: PEX_DeleteElements +XRequest.X3D-PEX.45: PEX_DeleteElementsToLabel +XRequest.X3D-PEX.46: PEX_DeleteBetweenLabels +XRequest.X3D-PEX.47: PEX_CopyElements +XRequest.X3D-PEX.48: PEX_ChangeStructureRefs +XRequest.X3D-PEX.49: PEX_CreateNameSet +XRequest.X3D-PEX.50: PEX_CopyNameSet +XRequest.X3D-PEX.51: PEX_FreeNameSet +XRequest.X3D-PEX.52: PEX_GetNameSet +XRequest.X3D-PEX.53: PEX_ChangeNameSet +XRequest.X3D-PEX.54: PEX_CreateSearchContext +XRequest.X3D-PEX.55: PEX_CopySearchContext +XRequest.X3D-PEX.56: PEX_FreeSearchContext +XRequest.X3D-PEX.57: PEX_GetSearchContext +XRequest.X3D-PEX.58: PEX_ChangeSearchContext +XRequest.X3D-PEX.59: PEX_SearchNetwork +XRequest.X3D-PEX.60: PEX_CreatePhigsWks +XRequest.X3D-PEX.61: PEX_FreePhigsWks +XRequest.X3D-PEX.62: PEX_GetWksInfo +XRequest.X3D-PEX.63: PEX_GetDynamics +XRequest.X3D-PEX.64: PEX_GetViewRep +XRequest.X3D-PEX.65: PEX_RedrawAllStructures +XRequest.X3D-PEX.66: PEX_UpdateWorkstation +XRequest.X3D-PEX.67: PEX_RedrawClipRegion +XRequest.X3D-PEX.68: PEX_ExecuteDeferredActions +XRequest.X3D-PEX.69: PEX_SetViewPriority +XRequest.X3D-PEX.70: PEX_SetDisplayUpdateMode +XRequest.X3D-PEX.71: PEX_MapDCtoWC +XRequest.X3D-PEX.72: PEX_MapWCtoDC +XRequest.X3D-PEX.73: PEX_SetViewRep +XRequest.X3D-PEX.74: PEX_SetWksWindow +XRequest.X3D-PEX.75: PEX_SetWksViewport +XRequest.X3D-PEX.76: PEX_SetHlhsrMode +XRequest.X3D-PEX.77: PEX_SetWksBufferMode +XRequest.X3D-PEX.78: PEX_PostStructure +XRequest.X3D-PEX.79: PEX_UnpostStructure +XRequest.X3D-PEX.80: PEX_UnpostAllStructures +XRequest.X3D-PEX.81: PEX_GetWksPostings +XRequest.X3D-PEX.82: PEX_GetPickDevice +XRequest.X3D-PEX.83: PEX_ChangePickDevice +XRequest.X3D-PEX.84: PEX_CreatePickMeasure +XRequest.X3D-PEX.85: PEX_FreePickMeasure +XRequest.X3D-PEX.86: PEX_GetPickMeasure +XRequest.X3D-PEX.87: PEX_UpdatePickMeasure +XRequest.X3D-PEX.88: PEX_OpenFont +XRequest.X3D-PEX.89: PEX_CloseFont +XRequest.X3D-PEX.90: PEX_QueryFont +XRequest.X3D-PEX.91: PEX_ListFonts +XRequest.X3D-PEX.92: PEX_ListFontsWithInfo +XRequest.X3D-PEX.93: PEX_QueryTextExtents +XRequest.X3D-PEX.94: PEX_MatchRenderingTargets +XRequest.X3D-PEX.95: PEX_Escape +XRequest.X3D-PEX.96: PEX_EscapeWithReply +XRequest.X3D-PEX.97: PEX_RenderElements +XRequest.X3D-PEX.98: PEX_AccumulateState +XRequest.X3D-PEX.99: PEX_BeginPickOne +XRequest.X3D-PEX.100: PEX_EndPickOne +XRequest.X3D-PEX.101: PEX_PickOne +XRequest.X3D-PEX.102: PEX_BeginPickAll +XRequest.X3D-PEX.103: PEX_EndPickAll +XRequest.X3D-PEX.104: PEX_PickAll +XProtoError.X3D-PEX.0: PEXColorTypeError +XlibMessage.X3D-PEX.0: Color type in failed request: 0x%lx +XProtoError.X3D-PEX.1: PEXRendererStateError +XlibMessage.X3D-PEX.1: Renderer id in failed request: 0x%lx +XProtoError.X3D-PEX.2: PEXFloatingPointFormatError +XlibMessage.X3D-PEX.2: Format in failed request: 0x%lx +XProtoError.X3D-PEX.3: PEXLabelError +XlibMessage.X3D-PEX.3: Label in failed request: 0x%lx +XProtoError.X3D-PEX.4: PEXLookupTableError +XlibMessage.X3D-PEX.4: Table id in failed request: 0x%lx +XProtoError.X3D-PEX.5: PEXNameSetError +XlibMessage.X3D-PEX.5: Nameset in failed request: 0x%lx +XProtoError.X3D-PEX.6: PEXPathError +XlibMessage.X3D-PEX.6: Path id in failed request: 0x%lx +XProtoError.X3D-PEX.7: PEXFontError +XlibMessage.X3D-PEX.7: Font id in failed request: 0x%lx +XProtoError.X3D-PEX.8: PEXPhigsWksError +XlibMessage.X3D-PEX.8: Workstation id in failed request: 0x%lx +XProtoError.X3D-PEX.9: PEXPickMeasureError +XlibMessage.X3D-PEX.9: Device id in failed request: 0x%lx +XProtoError.X3D-PEX.10: PEXPipelineContextError +XlibMessage.X3D-PEX.10: Context id in failed request: 0x%lx +XProtoError.X3D-PEX.11: PEXRendererError +XlibMessage.X3D-PEX.11: Renderer id in failed request: 0x%lx +XProtoError.X3D-PEX.12: PEXSearchContextError +XlibMessage.X3D-PEX.12: Context id in failed request: 0x%lx +XProtoError.X3D-PEX.13: PEXStructureError +XlibMessage.X3D-PEX.13: Structure id in failed request: 0x%lx +XProtoError.X3D-PEX.14: PEXOutputCommandError +XlibMessage.X3D-PEX.14: Resource id in failed request: 0x%lx +! XTEST extension, an X Consortium standard +XRequest.XTEST.0: X_XTestGetVersion +XRequest.XTEST.1: X_XTestCompareCursor +XRequest.XTEST.2: X_XTestFakeInput +XRequest.XTEST.3: X_XTestGrabControl +! BIG-REQUESTS extension, an X Consortium standard +XRequest.BIG-REQUESTS.0: X_BigReqEnable +! XIE extension, an X Consortium standard +XRequest.XIE.1: XIE_QueryImageExtension +XRequest.XIE.2: XIE_QueryTechniques +XRequest.XIE.3: XIE_CreateColorList +XRequest.XIE.4: XIE_DestroyColorList +XRequest.XIE.5: XIE_PurgeColorList +XRequest.XIE.6: XIE_QueryColorList +XRequest.XIE.7: XIE_CreateLUT +XRequest.XIE.8: XIE_DestroyLUT +XRequest.XIE.9: XIE_CreatePhotomap +XRequest.XIE.10: XIE_DestroyPhotomap +XRequest.XIE.11: XIE_QueryPhotomap +XRequest.XIE.12: XIE_CreateROI +XRequest.XIE.13: XIE_DestroyROI +XRequest.XIE.14: XIE_CreatePhotospace +XRequest.XIE.15: XIE_DestroyPhotospace +XRequest.XIE.16: XIE_ExecuteImmediate +XRequest.XIE.17: XIE_CreatePhotoflo +XRequest.XIE.18: XIE_DestroyPhotoflo +XRequest.XIE.19: XIE_ExecutePhotoflo +XRequest.XIE.20: XIE_ModifyPhotoflo +XRequest.XIE.21: XIE_RedefinePhotoflo +XRequest.XIE.22: XIE_PutClientData +XRequest.XIE.23: XIE_GetClientData +XRequest.XIE.24: XIE_QueryPhotoflo +XRequest.XIE.25: XIE_Await +XRequest.XIE.26: XIE_Abort +XProtoError.XIE.0: XIE_ColorListError +XlibMessage.XIE.0: ColorList in failed request: 0x%lx +XProtoError.XIE.1: XIE_LUTError +XlibMessage.XIE.1: LUT in failed request: 0x%lx +XProtoError.XIE.2: XIE_PhotofloError +XlibMessage.XIE.2: Photoflo in failed request: 0x%lx +XProtoError.XIE.3: XIE_PhotomapError +XlibMessage.XIE.3: Photomap in failed request: 0x%lx +XProtoError.XIE.4: XIE_PhotospaceError +XlibMessage.XIE.4: Photospace in failed request: 0x%lx +XProtoError.XIE.5: XIE_ROIError +XlibMessage.XIE.5: ROI in failed request: 0x%lx +XProtoError.XIE.6: XIE_FloError +XlibMessage.XIE.6: Photoflo in failed request: 0x%lx +! SYNC extension, an X Consortium standard +XRequest.SYNC.0: X_SyncInitialize +XRequest.SYNC.1: X_SyncListSystemCounters +XRequest.SYNC.2: X_SyncCreateCounter +XRequest.SYNC.3: X_SyncSetCounter +XRequest.SYNC.4: X_SyncChangeCounter +XRequest.SYNC.5: X_SyncQueryCounter +XRequest.SYNC.6: X_SyncDestroyCounter +XRequest.SYNC.7: X_SyncAwait +XRequest.SYNC.8: X_SyncCreateAlarm +XRequest.SYNC.9: X_SyncChangeAlarm +XRequest.SYNC.10: X_SyncQueryAlarm +XRequest.SYNC.11: X_SyncDestroyAlarm +XRequest.SYNC.12: X_SyncSetPriority +XRequest.SYNC.13: X_SyncGetPriority +XProtoError.SYNC.0: XSyncBadCounter +XlibMessage.SYNC.0: Counter in failed request: 0x%lx +XProtoError.SYNC.1: XSyncBadAlarm +XlibMessage.SYNC.1: Alarm in failed request: 0x%lx +! XKB extension +XRequest.XKEYBOARD.0: XkbUseExtension +XRequest.XKEYBOARD.1: XkbSelectEvents +XRequest.XKEYBOARD.2: OBSOLETE +XRequest.XKEYBOARD.3: XkbBell +XRequest.XKEYBOARD.4: XkbGetState +XRequest.XKEYBOARD.5: XkbLatchLockState +XRequest.XKEYBOARD.6: XkbGetControls +XRequest.XKEYBOARD.7: XkbSetControls +XRequest.XKEYBOARD.8: XkbGetMap +XRequest.XKEYBOARD.9: XkbSetMap +XRequest.XKEYBOARD.10: XkbGetCompatMap +XRequest.XKEYBOARD.11: XkbSetCompatMap +XRequest.XKEYBOARD.12: XkbGetIndicatorState +XRequest.XKEYBOARD.13: XkbGetIndicatorMap +XRequest.XKEYBOARD.14: XkbSetIndicatorMap +XRequest.XKEYBOARD.15: XkbGetNamedIndicator +XRequest.XKEYBOARD.16: XkbSetNamedIndicator +XRequest.XKEYBOARD.17: XkbGetNames +XRequest.XKEYBOARD.18: XkbSetNames +XRequest.XKEYBOARD.19: XkbGetGeometry +XRequest.XKEYBOARD.20: XkbSetGeometry +XRequest.XKEYBOARD.21: XkbPerClientFlags +XRequest.XKEYBOARD.22: XkbListComponents +XRequest.XKEYBOARD.23: XkbGetKbdByName +XRequest.XKEYBOARD.24: XkbGetDeviceInfo +XRequest.XKEYBOARD.25: XkbSetDeviceInfo +XRequest.XKEYBOARD.101: XkbSetDebuggingFlags +XProtoError.XKEYBOARD.0: XkbBadKeyboard +XlibMessage.XKEYBOARD.0: Device id in failed request: 0x%lx +! GLX extension for OpenGL, an OpenGL Architectural Review Board standard +! GLX Commands +XRequest.GLX.7: X_GLXQueryVersion +XRequest.GLX.3: X_GLXCreateContext +XRequest.GLX.4: X_GLXDestroyContext +XRequest.GLX.5: X_GLXMakeCurrent +XRequest.GLX.6: X_GLXIsDirect +XRequest.GLX.10: X_GLXCopyContext +XRequest.GLX.8: X_GLXWaitGL +XRequest.GLX.9: X_GLXWaitX +XRequest.GLX.11: X_GLXSwapBuffers +XRequest.GLX.12: X_GLXUseXFont +XRequest.GLX.13: X_GLXCreateGLXPixmap +XRequest.GLX.15: X_GLXDestroyGLXPixmap +XRequest.GLX.14: X_GLXGetVisualConfigs +XRequest.GLX.16: X_GLXVendorPrivate +XRequest.GLX.17: X_GLXVendorPrivateWithReply +XRequest.GLX.18: X_GLXQueryExtensionsString +XRequest.GLX.19: X_GLXQueryServerString +XRequest.GLX.20: X_GLXClientInfo +XRequest.GLX.21: X_GLXGetFBConfigs +XRequest.GLX.22: X_GLXCreatePixmap +XRequest.GLX.23: X_GLXDestroyPixmap +XRequest.GLX.24: X_GLXCreateNewContext +XRequest.GLX.25: X_GLXQueryContext +XRequest.GLX.26: X_GLXMakeContextCurrent +XRequest.GLX.27: X_GLXCreatePbuffer +XRequest.GLX.28: X_GLXDestroyPbuffer +XRequest.GLX.29: X_GLXGetDrawableAttributes +XRequest.GLX.30: X_GLXChangeDrawableAttributes +XRequest.GLX.31: X_GLXCreateWindow +XRequest.GLX.32: X_GLXDestroyWindow +! GL Non-rendering Commands +XRequest.GLX.103: X_GLXDeleteLists +XRequest.GLX.102: X_GLXEndList +XRequest.GLX.105: X_GLXFeedbackBuffer +XRequest.GLX.108: X_GLXFinish +XRequest.GLX.142: X_GLXFlush +XRequest.GLX.104: X_GLXGenLists +XRequest.GLX.112: X_GLXGetBooleanv +XRequest.GLX.113: X_GLXGetClipPlane +XRequest.GLX.114: X_GLXGetDoublev +XRequest.GLX.115: X_GLXGetError +XRequest.GLX.116: X_GLXGetFloatv +XRequest.GLX.117: X_GLXGetIntegerv +XRequest.GLX.118: X_GLXGetLightfv +XRequest.GLX.119: X_GLXGetLightiv +XRequest.GLX.120: X_GLXGetMapdv +XRequest.GLX.121: X_GLXGetMapfv +XRequest.GLX.122: X_GLXGetMapiv +XRequest.GLX.123: X_GLXGetMaterialfv +XRequest.GLX.124: X_GLXGetMaterialiv +XRequest.GLX.125: X_GLXGetPixelfv +XRequest.GLX.126: X_GLXGetPixelMapuiv +XRequest.GLX.127: X_GLXGetPixelMapusv +XRequest.GLX.129: X_GLXGetString +XRequest.GLX.130: X_GLXGetTexEnvfv +XRequest.GLX.131: X_GLXGetTexEnviv +XRequest.GLX.132: X_GLXGetTexGendv +XRequest.GLX.133: X_GLXGetTexGenfv +XRequest.GLX.134: X_GLXGetTexGeniv +XRequest.GLX.138: X_GLXGetTexLevelParameterfv +XRequest.GLX.139: X_GLXGetTexLevelParameteriv +XRequest.GLX.136: X_GLXGetTexParameterfv +XRequest.GLX.137: X_GLXGetTexParameteriv +XRequest.GLX.140: X_GLXIsEnabled +XRequest.GLX.141: X_GLXIsList +XRequest.GLX.101: X_GLXNewList +XRequest.GLX.109: X_GLXPixelStoref +XRequest.GLX.110: X_GLXPixelStorei +XRequest.GLX.107: X_GLXRenderMode +XRequest.GLX.106: X_GLXSelectBuffer +! GL Non-rendering Commands That Return Pixel Data +XRequest.GLX.128: X_GLXGetPolygonStipple +XRequest.GLX.135: X_GLXGetTexImage +XRequest.GLX.111: X_GLXReadPixels +! GL Rendering Commands +XRequest.GLX.1: X_GLXRender +XRequest.GLX.2: X_GLXRenderLarge +! GLX Errors +XProtoError.GLX.0: GLXBadContext +XProtoError.GLX.1: GLXBadContextState +XProtoError.GLX.2: GLXBadDrawable +XProtoError.GLX.3: GLXBadPixmap +XProtoError.GLX.4: GLXBadContextTag +XProtoError.GLX.5: GLXBadCurrentWindow +XProtoError.GLX.6: GLXBadRenderRequest +XProtoError.GLX.7: GLXBadLargeRequest +XProtoError.GLX.8: GLXUnsupportedPrivateRequest +XProtoError.GLX.9: GLXBadFBConfig +XProtoError.GLX.10: GLXBadPbuffer +XProtoError.GLX.11: GLXBadCurrentDrawable +XProtoError.GLX.12: GLXBadWindow +XProtoError.GLX.13: GLXBadProfileARB +! XC-MISC extension, an X Consortium standard +XRequest.XC-MISC.0: XCMiscGetVersion +XRequest.XC-MISC.1: XCMiscGetXIDRange +! RECORD extension +XRequest.RECORD.0: XRecordQueryVersion +XRequest.RECORD.1: XRecordCreateContext +XRequest.RECORD.2: XRecordRegisterClients +XRequest.RECORD.3: XRecordUnregisterClients +XRequest.RECORD.4: XRecordGetContext +XRequest.RECORD.5: XRecordEnableContext +XRequest.RECORD.6: XRecordDisableContext +XRequest.RECORD.7: XRecordFreeContext +XProtoError.RECORD.0: XRecordBadContext +XlibMessage.RECORD.0: Context in failed request: 0x%lx +! XFree86-VidModeExtension -- not an X Consortium standard +XRequest.XFree86-VidModeExtension.0: XF86VidModeQueryVersion +XRequest.XFree86-VidModeExtension.1: XF86VidModeGetModeLine +XRequest.XFree86-VidModeExtension.2: XF86VidModeModModeLine +XRequest.XFree86-VidModeExtension.3: XF86VidModeSwitchMode +XRequest.XFree86-VidModeExtension.4: XF86VidModeGetMonitor +XRequest.XFree86-VidModeExtension.5: XF86VidModeLockModeSwitch +XRequest.XFree86-VidModeExtension.6: XF86VidModeGetAllModeLines +XRequest.XFree86-VidModeExtension.7: XF86VidModeAddModeLine +XRequest.XFree86-VidModeExtension.8: XF86VidModeDeleteModeLine +XRequest.XFree86-VidModeExtension.9: XF86VidModeValidateModeLine +XRequest.XFree86-VidModeExtension.10: XF86VidModeSwitchToMode +XRequest.XFree86-VidModeExtension.11: XF86VidModeGetViewPort +XRequest.XFree86-VidModeExtension.12: XF86VidModeSetViewPort +XRequest.XFree86-VidModeExtension.13: XF86VidModeGetDotClocks +XRequest.XFree86-VidModeExtension.14: XF86VidModeSetClientVersion +XRequest.XFree86-VidModeExtension.15: XF86VidModeSetGamma +XRequest.XFree86-VidModeExtension.16: XF86VidModeGetGamma +XRequest.XFree86-VidModeExtension.17: XF86VidModeGetGammaRamp +XRequest.XFree86-VidModeExtension.18: XF86VidModeSetGammaRamp +XRequest.XFree86-VidModeExtension.19: XF86VidModeGetGammaRampSize +XRequest.XFree86-VidModeExtension.20: XF86VidModeGetPermissions +XProtoError.XFree86-VidModeExtension.0: XF86VidModeBadClock +XProtoError.XFree86-VidModeExtension.1: XF86VidModeBadHTimings +XProtoError.XFree86-VidModeExtension.2: XF86VidModeBadVTimings +XProtoError.XFree86-VidModeExtension.3: XF86VidModeModeUnsuitable +XProtoError.XFree86-VidModeExtension.4: XF86VidModeExtensionDisabled +XProtoError.XFree86-VidModeExtension.5: XF86VidModeClientNotLocal +XProtoError.XFree86-VidModeExtension.6: XF86VidModeZoomLocked +! XFree86-Misc -- not an X Consortium standard +XRequest.XFree86-Misc.0: XF86MiscQueryVersion +XRequest.XFree86-Misc.1: XF86MiscGetSaver +XRequest.XFree86-Misc.2: XF86MiscSetSaver +XRequest.XFree86-Misc.3: XF86MiscGetMouseSettings +XRequest.XFree86-Misc.4: XF86MiscGetKbdSettings +XRequest.XFree86-Misc.5: XF86MiscSetMouseSettings +XRequest.XFree86-Misc.6: XF86MiscSetKbdSettings +XRequest.XFree86-Misc.7: XF86MiscSetGrabKeysState +XRequest.XFree86-Misc.8: XF86MiscSetClientVersion +XRequest.XFree86-Misc.9: XF86MiscGetFilePaths +XProtoError.XFree86-Misc.0: XF86MiscBadMouseProtocol +XProtoError.XFree86-Misc.1: XF86MiscBadMouseBaudRate +XProtoError.XFree86-Misc.2: XF86MiscBadMouseFlags +XProtoError.XFree86-Misc.3: XF86MiscBadMouseCombo +XProtoError.XFree86-Misc.4: XF86MiscBadKbdType +XProtoError.XFree86-Misc.5: XF86MiscModInDevDisabled +XProtoError.XFree86-Misc.6: XF86MiscModInDevClientNotLocal +XProtoError.XFree86-Misc.7: XF86MiscNoModule +! XFree86-DGA -- not an X Consortium standard +XRequest.XFree86-DGA.0: XF86DGAQueryVersion +XRequest.XFree86-DGA.1: XF86DGAGetVideoLL +XRequest.XFree86-DGA.2: XF86DGADirectVideo +XRequest.XFree86-DGA.3: XF86DGAGetViewPortSize +XRequest.XFree86-DGA.4: XF86DGASetViewPort +XRequest.XFree86-DGA.5: XF86DGAGetVidPage +XRequest.XFree86-DGA.6: XF86DGASetVidPage +XRequest.XFree86-DGA.7: XF86DGAInstallColormap +XRequest.XFree86-DGA.8: XF86DGAQueryDirectVideo +XRequest.XFree86-DGA.9: XF86DGAViewPortChanged +XRequest.XFree86-DGA.10: XF86DGAObsolete1 +XRequest.XFree86-DGA.11: XF86DGAObsolete2 +XRequest.XFree86-DGA.12: XDGAQueryModes +XRequest.XFree86-DGA.13: XDGASetMode +XRequest.XFree86-DGA.14: XDGASetViewport +XRequest.XFree86-DGA.15: XDGAInstallColormap +XRequest.XFree86-DGA.16: XDGASelectInput +XRequest.XFree86-DGA.17: XDGAFillRectangle +XRequest.XFree86-DGA.18: XDGACopyArea +XRequest.XFree86-DGA.19: XDGACopyTransparentArea +XRequest.XFree86-DGA.20: XDGAGetViewportStatus +XRequest.XFree86-DGA.21: XDGASync +XRequest.XFree86-DGA.22: XDGAOpenFramebuffer +XRequest.XFree86-DGA.23: XDGACloseFramebuffer +XRequest.XFree86-DGA.24: XDGASetClientVersion +XRequest.XFree86-DGA.25: XDGAChangePixmapMode +XRequest.XFree86-DGA.26: XDGACreateColormap +XProtoError.XFree86-DGA.0: XF86DGAClientNotLocal +XProtoError.XFree86-DGA.1: XF86DGANoDirectVideoMode +XProtoError.XFree86-DGA.2: XF86DGAScreenNotActive +XProtoError.XFree86-DGA.3: XF86DGADirectNotActivated +XProtoError.XFree86-DGA.4: XF86DGAOperationNotSupported +! DOUBLE-BUFFER (DBE), an X Consortium standard +XRequest.DOUBLE-BUFFER.0: DBEGetVersion +XRequest.DOUBLE-BUFFER.1: DBEAllocateBackBufferName +XRequest.DOUBLE-BUFFER.2: DBEDeallocateBackBufferName +XRequest.DOUBLE-BUFFER.3: DBESwapBuffers +XRequest.DOUBLE-BUFFER.4: DBEBeginIdiom +XRequest.DOUBLE-BUFFER.5: DBEEndIdiom +XRequest.DOUBLE-BUFFER.6: DBEGetVisualInfo +XRequest.DOUBLE-BUFFER.7: DBEGetBackBufferAttributes +XProtoError.DOUBLE-BUFFER.0: DBEBadBuffer (invalid BackBuffer parameter) +XlibMessage.DOUBLE-BUFFER.0: BackBuffer in failed request: 0x%lx +! SECURITY +XRequest.SECURITY.0: SecurityQueryVersion +XRequest.SECURITY.1: SecurityGenerateAuthorization +XProtoError.SECURITY.0: SecurityBadAuthorization (invalid authorization id) +XProtoError.SECURITY.1: SecurityBadAuthorizationProtocol (invalid authorization name or data) +XlibMessage.SECURITY.1: authorization id in failed request: 0x%lx +! AppGroup +XRequest.APPGROUP.0: XagQueryVersion +XRequest.APPGROUP.1: XagCreate +XRequest.APPGROUP.2: XagDestroy +XRequest.APPGROUP.3: XagGetAttr +XRequest.APPGROUP.4: XagQuery +XRequest.APPGROUP.5: XagCreateAssoc +XRequest.APPGROUP.6: XagDestroyAssoc +XProtoError.APPGROUP.0: XagBadAppGroup (invalid AppGroup parameter) +! LBX +XRequest.LBX.0: LbxQueryVersion +XRequest.LBX.1: LbxStartProxy +XRequest.LBX.2: LbxStopProxy +XRequest.LBX.3: LbxSwitch +XRequest.LBX.4: LbxNewClient +XRequest.LBX.5: LbxCloseClient +XRequest.LBX.6: LbxModifySequence +XRequest.LBX.7: LbxAllowMotion +XRequest.LBX.8: LbxIncrementPixel +XRequest.LBX.9: LbxDelta +XRequest.LBX.10: LbxGetModifierMapping +XRequest.LBX.11: LbxQueryTag +XRequest.LBX.12: LbxInvalidateTag +XRequest.LBX.13: LbxPolyPoint +XRequest.LBX.14: LbxPolyLine +XRequest.LBX.15: LbxPolySegment +XRequest.LBX.16: LbxPolyRectangle +XRequest.LBX.17: LbxPolyArc +XRequest.LBX.18: LbxFillPoly +XRequest.LBX.19: LbxPolyFillRectangle +XRequest.LBX.20: LbxPolyFillArc +XRequest.LBX.21: LbxGetKeyboardMapping +XRequest.LBX.22: LbxQueryFont +XRequest.LBX.23: LbxChangeProperty +XRequest.LBX.24: LbxGetProperty +XRequest.LBX.25: LbxTagData +XRequest.LBX.26: LbxCopyArea +XRequest.LBX.27: LbxCopyPlane +XRequest.LBX.28: LbxPolyText8 +XRequest.LBX.29: LbxPolyText16 +XRequest.LBX.30: LbxImageText8 +XRequest.LBX.31: LbxImageText16 +XRequest.LBX.32: LbxQueryExtension +XRequest.LBX.33: LbxPutImage +XRequest.LBX.34: LbxGetImage +XRequest.LBX.35: LbxBeginLargeRequest +XRequest.LBX.36: LbxLargeRequestData +XRequest.LBX.37: LbxEndLargeRequest +XRequest.LBX.38: LbxInternAtoms +XRequest.LBX.39: LbxGetWinAttrAndGeom +XRequest.LBX.40: LbxGrabCmap +XRequest.LBX.41: LbxReleaseCmap +XRequest.LBX.42: LbxAllocColor +XRequest.LBX.43: LbxSync +XProtoError.LBX.0: BadLbxClient +! XpExtension +XRequest.XpExtension.0: PrintQueryVersion +XRequest.XpExtension.1: PrintGetPrinterList +XRequest.XpExtension.2: PrintCreateContext +XRequest.XpExtension.3: PrintSetContext +XRequest.XpExtension.4: PrintGetContext +XRequest.XpExtension.5: PrintDestroyContext +XRequest.XpExtension.6: PrintGetContextScreen +XRequest.XpExtension.7: PrintStartJob +XRequest.XpExtension.8: PrintEndJob +XRequest.XpExtension.9: PrintStartDoc +XRequest.XpExtension.10: PrintEndDoc +XRequest.XpExtension.11: PrintPutDocumentData +XRequest.XpExtension.12: PrintGetDocumentData +XRequest.XpExtension.13: PrintStartPage +XRequest.XpExtension.14: PrintEndPage +XRequest.XpExtension.15: PrintSelectInput +XRequest.XpExtension.16: PrintInputSelected +XRequest.XpExtension.17: PrintGetAttributes +XRequest.XpExtension.18: PrintSetAttributes +XRequest.XpExtension.19: PrintGetOneAttribute +XRequest.XpExtension.20: PrintRehashPrinterList +XRequest.XpExtension.21: PrintGetPageDimensions +XRequest.XpExtension.22: PrintQueryScreens +XRequest.XpExtension.23: PrintSetImageResolution +XRequest.XpExtension.24: PrintGetImageResolution +XProtoError.XpExtension.0: XPBadContext (Print Context invalid or missing) +XlibMessage.XpExtension.0: Context in failed request: 0x%lx +XProtoError.XpExtension.1: XPBadSequence (Illegal sequence of XP operations) +XProtoError.XpExtension.2: XPBadResourceID (X resource not valid) +! TOG-CUP, an X Project Team specification +XRequest.TOG-CUP.0: CUPQueryVersion +XRequest.TOG-CUP.1: CUPGetReservedColormapEntries +XRequest.TOG-CUP.2: CUPStoreColors +! Extended-Visual-Information, an X Project Team specification +XRequest.Extended-Visual-Information.0: EVIQueryVersion +XRequest.Extended-Visual-Information.1: EVIGetVisualInfo +! DPMS (Display Power Management Signaling), an X Project Team specification +XRequest.DPMS.0: DPMSGetVersion +XRequest.DPMS.1: DPMSCapable +XRequest.DPMS.2: DPMSGetTimeouts +XRequest.DPMS.3: DPMSSetTimeouts +XRequest.DPMS.4: DPMSEnable +XRequest.DPMS.5: DPMSDisable +XRequest.DPMS.6: DPMSForceLevel +XRequest.DPMS.7: DPMSInfo +! XINERAMA, not an X Project Team specification +XRequest.XINERAMA.0: XINERAMAQueryVersion +XRequest.XINERAMA.1: XINERAMAGetState +XRequest.XINERAMA.2: XINERAMAGetScreenCount +XRequest.XINERAMA.3: XINERAMAGetScreenSize +XRequest.XINERAMA.4: XINERAMAIsActive +XRequest.XINERAMA.5: XINERAMAQueryScreens +! XF86Rush extension, not a standard spec +Xrequest.XFree86-Rush.0: XF86RushQueryVersion +Xrequest.XFree86-Rush.1: XF86RushLockPixmap +Xrequest.XFree86-Rush.2: XF86RushUnlockPixmap +Xrequest.XFree86-Rush.3: XF86RushUnlockAllPixmaps +Xrequest.XFree86-Rush.4: XF86RushGetCopyMode +Xrequest.XFree86-Rush.5: XF86RushSetCopyMode +Xrequest.XFree86-Rush.6: XF86RushGetPixelStride +Xrequest.XFree86-Rush.7: XF86RushSetPixelStride +Xrequest.XFree86-Rush.8: XF86RushOverlayPixmap +Xrequest.XFree86-Rush.9: XF86RushStatusRegOffset +Xrequest.XFree86-Rush.10: XF86RushAT3DEnableRegs +Xrequest.XFree86-Rush.11: XF86RushAT3DDisableRegs +! XVideo +Xrequest.XVideo.0: XvQueryExtension +Xrequest.XVideo.1: XvQueryAdaptors +Xrequest.XVideo.2: XvQueryEncodings +Xrequest.XVideo.3: XvGrabPort +Xrequest.XVideo.4: XvUngrabPort +Xrequest.XVideo.5: XvPutVideo +Xrequest.XVideo.6: XvPutStill +Xrequest.XVideo.7: XvGetVideo +Xrequest.XVideo.8: XvGetStill +Xrequest.XVideo.9: XvStopVideo +Xrequest.XVideo.10: XvSelectVideoNotify +Xrequest.XVideo.11: XvSelectPortNotify +Xrequest.XVideo.12: XvQueryBestSize +Xrequest.XVideo.13: XvSetPortAttribute +Xrequest.XVideo.14: XvGetPortAttribute +Xrequest.XVideo.15: XvQueryPortAttributes +Xrequest.XVideo.16: XvListImageFormats +Xrequest.XVideo.17: XvQueryImageAttributes +Xrequest.XVideo.18: XvPutImage +Xrequest.XVideo.19: XvShmPutImage +XProtoError.XVideo.0: XvBadPort +XProtoError.XVideo.1: XvBadEncoding +XProtoError.XVideo.2: XvBadControl +! XFree86-Bigfont +Xrequest.XFree86-Bigfont.0: XF86BigfontQueryVersion +Xrequest.XFree86-Bigfont.1: XF86BigfontQueryFont +! Adobe-DPS-Extension, not a standard +XRequest.Adobe-DPS-Extension.1: PSInit +XRequest.Adobe-DPS-Extension.2: PSCreateContext +XRequest.Adobe-DPS-Extension.3: PSCreateSpace +XRequest.Adobe-DPS-Extension.4: PSGiveInput +XRequest.Adobe-DPS-Extension.5: PSGetStatus +XRequest.Adobe-DPS-Extension.6: PSDestroySpace +XRequest.Adobe-DPS-Extension.7: PSReset +XRequest.Adobe-DPS-Extension.8: PSNotifyContext +XRequest.Adobe-DPS-Extension.9: PSCreateContextFromID +XRequest.Adobe-DPS-Extension.10: PSXIDFromContext +XRequest.Adobe-DPS-Extension.11: PSContextFromXID +XRequest.Adobe-DPS-Extension.12: PSSetStatusMask +XRequest.Adobe-DPS-Extension.13: PSCreateSecureContext +XRequest.Adobe-DPS-Extension.14: PSNotifyWhenReady +XProtoError.Adobe-DPS-Extension.0: PSErrorBadContext (invalid Context parameter) +XlibMessage.Adobe-DPS-Extension.0: Context id in failed request: 0x%lx +XProtoError.Adobe-DPS-Extension.1: PSErrorBadSpace (invalid Space parameter) +XlibMessage.Adobe-DPS-Extension.1: Space id in failed request: 0x%lx +XProtoError.Adobe-DPS-Extension.2: PSErrorAbort (interpreter aborted) +XlibMessage.Adobe-DPS-Extension.2: Value in failed request: 0x%lx +! RANDR +XRequest.RANDR.0: RRQueryVersion +XRequest.RANDR.1: RROldGetScreenInfo +XRequest.RANDR.2: RRSetScreenConfig +XRequest.RANDR.3: RROldScreenChangeSelectInput +XRequest.RANDR.4: RRSelectInput +XRequest.RANDR.5: RRGetScreenInfo +XRequest.RANDR.6: RRGetScreenSizeRange +XRequest.RANDR.7: RRSetScreenSize +XRequest.RANDR.8: RRGetScreenResources +XRequest.RANDR.9: RRGetOutputInfo +XRequest.RANDR.10: RRListOutputProperties +XRequest.RANDR.11: RRQueryOutputProperty +XRequest.RANDR.12: RRConfigureOutputProperty +XRequest.RANDR.13: RRChangeOutputProperty +XRequest.RANDR.14: RRDeleteOutputProperty +XRequest.RANDR.15: RRGetOutputProperty +XRequest.RANDR.16: RRCreateMode +XRequest.RANDR.17: RRDestroyMode +XRequest.RANDR.18: RRAddOutputMode +XRequest.RANDR.19: RRDeleteOutputMode +XRequest.RANDR.20: RRGetCrtcInfo +XRequest.RANDR.21: RRSetCrtcConfig +XRequest.RANDR.22: RRGetCrtcGammaSize +XRequest.RANDR.23: RRGetCrtcGamma +XRequest.RANDR.24: RRSetCrtcGamma +XRequest.RANDR.25: RRGetScreenResourcesCurrent +XRequest.RANDR.26: RRSetCrtcTransform +XRequest.RANDR.27: RRGetCrtcTransform +XRequest.RANDR.28: RRGetPanning +XRequest.RANDR.29: RRSetPanning +XRequest.RANDR.30: RRSetOutputPrimary +XRequest.RANDR.31: RRGetOutputPrimary +XRequest.RANDR.32: RRGetProviders +XRequest.RANDR.33: RRGetProviderInfo +XRequest.RANDR.34: RRSetProviderOffloadSink +XRequest.RANDR.35: RRSetProviderOutputSource +XRequest.RANDR.36: RRListProviderProperties +XRequest.RANDR.37: RRQueryProviderProperty +XRequest.RANDR.38: RRConfigureProviderProperty +XRequest.RANDR.39: RRChangeProviderProperty +XRequest.RANDR.40: RRDeleteProviderProperty +XRequest.RANDR.41: RRGetProviderProperty +XProtoError.RANDR.0: BadRROutput (invalid Output parameter) +XlibMessage.RANDR.0: Output id in failed request: 0x%lx +XProtoError.RANDR.1: BadRRCrtc (invalid Crtc parameter) +XlibMessage.RANDR.1: Crtc id in failed request: 0x%lx +XProtoError.RANDR.2: BadRRMode (invalid Mode parameter) +XlibMessage.RANDR.2: Mode id in failed request: 0x%lx +XProtoError.RANDR.3: BadRRProvider (invalid Provider parameter) +XlibMessage.RANDR.3: Provider id in failed request: 0x%lx +! RENDER +XRequest.RENDER.0: RenderQueryVersion +XRequest.RENDER.1: RenderQueryPictFormats +XRequest.RENDER.2: RenderQueryPictIndexValues +XRequest.RENDER.3: RenderQueryDithers +XRequest.RENDER.4: RenderCreatePicture +XRequest.RENDER.5: RenderChangePicture +XRequest.RENDER.6: RenderSetPictureClipRectangles +XRequest.RENDER.7: RenderFreePicture +XRequest.RENDER.8: RenderComposite +XRequest.RENDER.9: RenderScale +XRequest.RENDER.10: RenderTrapezoids +XRequest.RENDER.11: RenderTriangles +XRequest.RENDER.12: RenderTriStrip +XRequest.RENDER.13: RenderTriFan +XRequest.RENDER.14: RenderColorTrapezoids +XRequest.RENDER.15: RenderColorTriangles +XRequest.RENDER.16: RenderTransform +XRequest.RENDER.17: RenderCreateGlyphSet +XRequest.RENDER.18: RenderReferenceGlyphSet +XRequest.RENDER.19: RenderFreeGlyphSet +XRequest.RENDER.20: RenderAddGlyphs +XRequest.RENDER.21: RenderAddGlyphsFromPicture +XRequest.RENDER.22: RenderFreeGlyphs +XRequest.RENDER.23: RenderCompositeGlyphs8 +XRequest.RENDER.24: RenderCompositeGlyphs16 +XRequest.RENDER.25: RenderCompositeGlyphs32 +XRequest.RENDER.26: RenderFillRectangles +XRequest.RENDER.27: RenderCreateCursor +XRequest.RENDER.28: RenderSetPictureTransform +XRequest.RENDER.29: RenderQueryFilters +XRequest.RENDER.30: RenderSetPictureFilter +XRequest.RENDER.31: RenderCreateAnimCursor +XRequest.RENDER.32: RenderAddTraps +XRequest.RENDER.33: RenderCreateSolidFill +XRequest.RENDER.34: RenderCreateLinearGradient +XRequest.RENDER.35: RenderCreateRadialGradient +XRequest.RENDER.36: RenderCreateConicalGradient +XProtoError.RENDER.0: RenderBadFormat (invalid PictFormat parameter) +XlibMessage.RENDER.0: PictFormat id in failed request: 0x%lx +XProtoError.RENDER.1: RenderBadPicture (invalid Picture parameter) +XlibMessage.RENDER.1: Picture id in failed request: 0x%lx +XProtoError.RENDER.2: RenderBadPictOp (invalid PictOp parameter) +XlibMessage.RENDER.2: PictOp in failed request: 0x%lx +XProtoError.RENDER.3: RenderBadGlyphSet (invalid GlyphSet parameter) +XlibMessage.RENDER.3: GlyphSet id in failed request: 0x%lx +XProtoError.RENDER.4: RenderBadGlyph (invalid Glyph parameter) +XlibMessage.RENDER.4: Glyph in failed request: 0x%lx +! XFixes +XRequest.XFIXES.0: XFixesQueryVersion +XRequest.XFIXES.1: XFixesChangeSaveSet +XRequest.XFIXES.2: XFixesSelectSelectionInput +XRequest.XFIXES.3: XFixesSelectCursorInput +XRequest.XFIXES.4: XFixesGetCursorImage +XRequest.XFIXES.5: XFixesCreateRegion +XRequest.XFIXES.6: XFixesCreateRegionFromBitmap +XRequest.XFIXES.7: XFixesCreateRegionFromWindow +XRequest.XFIXES.8: XFixesCreateRegionFromGC +XRequest.XFIXES.9: XFixesCreateRegionFromPicture +XRequest.XFIXES.10: XFixesDestroyRegion +XRequest.XFIXES.11: XFixesSetRegion +XRequest.XFIXES.12: XFixesCopyRegion +XRequest.XFIXES.13: XFixesUnionRegion +XRequest.XFIXES.14: XFixesIntersectRegion +XRequest.XFIXES.15: XFixesSubtractRegion +XRequest.XFIXES.16: XFixesInvertRegion +XRequest.XFIXES.17: XFixesTranslateRegion +XRequest.XFIXES.18: XFixesRegionExtents +XRequest.XFIXES.19: XFixesFetchRegion +XRequest.XFIXES.20: XFixesSetGCClipRegion +XRequest.XFIXES.21: XFixesSetWindowShapeRegion +XRequest.XFIXES.22: XFixesSetPictureClipRegion +XRequest.XFIXES.23: XFixesSetCursorName +XRequest.XFIXES.24: XFixesGetCursorName +XRequest.XFIXES.25: XFixesGetCursorImageAndName +XRequest.XFIXES.26: XFixesChangeCursor +XRequest.XFIXES.27: XFixesChangeCursorByName +XRequest.XFIXES.28: XFixesExpandRegion +XRequest.XFIXES.29: XFixesHideCursor +XRequest.XFIXES.30: XFixesShowCursor +XProtoError.XFIXES.0: BadRegion (invalid Region parameter) +XlibMessage.XFIXES.0: Region id in failed request: 0x%lx +! DAMAGE extension +XRequest.DAMAGE.0: XDamageQueryVersion +XRequest.DAMAGE.1: XDamageCreate +XRequest.DAMAGE.2: XDamageDestroy +XRequest.DAMAGE.3: XDamageSubtract +XRequest.DAMAGE.4: XDamageAdd +XProtoError.DAMAGE.0: BadDamage (invalid Damage parameter) +XlibMessage.DAMAGE.0: Damage id in failed request: 0x%lx +! DRI2 extension +XRequest.DRI2.0: DRI2QueryVersion +XRequest.DRI2.1: DRI2Connect +XRequest.DRI2.2: DRI2Authenticate +XRequest.DRI2.3: DRI2CreateDrawable +XRequest.DRI2.4: DRI2DestroyDrawable +XRequest.DRI2.5: DRI2GetBuffers +XRequest.DRI2.6: DRI2CopyRegion +XRequest.DRI2.7: DRI2GetBuffersWithFormat +XRequest.DRI2.8: DRI2SwapBuffers +XRequest.DRI2.9: DRI2GetMSC +XRequest.DRI2.10: DRI2WaitMSC +XRequest.DRI2.11: DRI2WaitSBC +XRequest.DRI2.12: DRI2SwapInterval diff --git a/squashfs-root/usr/share/X11/Xcms.txt b/squashfs-root/usr/share/X11/Xcms.txt new file mode 100644 index 0000000..1c5b1ad --- /dev/null +++ b/squashfs-root/usr/share/X11/Xcms.txt @@ -0,0 +1,44 @@ +/* + * (c) Copyright 1990 1991 Tektronix Inc. + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Tektronix not be used + * in advertising or publicity pertaining to distribution of the software + * without specific, written prior permission. + * + * Tektronix disclaims all warranties with regard to this software, including + * all implied warranties of merchantability and fitness, in no event shall + * Tektronix be liable for any special, indirect or consequential damages or + * any damages whatsoever resulting from loss of use, data or profits, + * whether in an action of contract, negligence or other tortious action, + * arising out of or in connection with the use or performance of this + * software. + * + * + * NAME + * Xcms.txt + * + * DESCRIPTION + * Sample Color Name Database + * + */ + + +This device-independent color name database is provided just as an example. +There are no claims that these color specifications are or should be bound +to the corresponding color name. + +As you can see, the start of the database is indicated by "XCMS_COLORDB_START". +Anything before this is assumed to be comments. The "0.1" indicates the +version number of the format/syntax used in this file. The color name is +delimited from the color specification by one or more tabs. + +XCMS_COLORDB_START 0.1 +cms red CIEXYZ:0.3811/0.2073/0.0213 +cms green CIEXYZ:0.3203/0.6805/0.1430 +cms blue CIEXYZ:0.2483/0.1122/1.2417 +XCMS_COLORDB_END diff --git a/squashfs-root/usr/share/X11/locale/C/Compose b/squashfs-root/usr/share/X11/locale/C/Compose new file mode 100644 index 0000000..61f380a --- /dev/null +++ b/squashfs-root/usr/share/X11/locale/C/Compose @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/X11/locale/C/XI18N_OBJS b/squashfs-root/usr/share/X11/locale/C/XI18N_OBJS new file mode 100644 index 0000000..3a9a1bb --- /dev/null +++ b/squashfs-root/usr/share/X11/locale/C/XI18N_OBJS @@ -0,0 +1,8 @@ +# CATEGORY(XLC|XIM|OM) SHARED_LIBRARY_NAME FUNCTION_NAME +# +# XI18N objects table for euro locales +# +XLC common/xlibi18n _XlcGenericLoader # XLC_open +XIM common/ximcp _XimOpenIM _XimRegisterIMInstantiateCallback _XimUnRegisterIMInstantiateCallback # XIM_open XIM_register XIM_unregister +XOM common/xomGeneric _XomGenericOpenOM # XOM_open + diff --git a/squashfs-root/usr/share/X11/locale/C/XLC_LOCALE b/squashfs-root/usr/share/X11/locale/C/XLC_LOCALE new file mode 100644 index 0000000..27b56a5 --- /dev/null +++ b/squashfs-root/usr/share/X11/locale/C/XLC_LOCALE @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# XLocale Database Sample for C. +# + +# +# XLC_FONTSET category +# +XLC_FONTSET +# fs0 class (7 bit ASCII) +fs0 { + charset { + name ISO8859-1:GL + } + font { + primary ISO8859-1:GL + vertical_rotate all + } +} +END XLC_FONTSET + +# +# XLC_XLOCALE category +# +XLC_XLOCALE + +encoding_name STRING +mb_cur_max 1 +state_depend_encoding False + +wc_encoding_mask \x30000000 +wc_shift_bits 7 + + + + + +use_stdc_env True +force_convert_to_mb True + +# cs0 class +cs0 { + side GL:Default + length 1 + wc_encoding \x00000000 + ct_encoding ISO8859-1:GL +} + +# cs1 class +cs1 { + side GR:Default + length 1 + + wc_encoding \x30000000 + + + + ct_encoding ISO8859-1:GR +} + +END XLC_XLOCALE diff --git a/squashfs-root/usr/share/X11/locale/locale.dir b/squashfs-root/usr/share/X11/locale/locale.dir new file mode 100644 index 0000000..3e7c1f7 --- /dev/null +++ b/squashfs-root/usr/share/X11/locale/locale.dir @@ -0,0 +1 @@ +C/XLC_LOCALE: C diff --git a/squashfs-root/usr/share/X11/xkb/compat/README b/squashfs-root/usr/share/X11/xkb/compat/README new file mode 100644 index 0000000..3c5747b --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/README @@ -0,0 +1,33 @@ +The core protocol interpretation of keyboard modifiers does not include direct +support for multiple keyboard groups, so XKB reports the effective keyboard +group to XKB-aware clients using some of the reserved bits in the state field +of some core protocol events. This modified state field would not be interpreted +correctly by XKB-unaware clients, so XKB provides a group compatibility mapping +which remaps the keyboard group into a core modifier mask that has similar +effects, when possible. + +XKB maintains three compatibility state components that are used to make +XKB-unaware clients(*) work as well as possible: +- The compatibility state which corresponds to the effective modifier and + effective group state. +- The compatibility lookup state which is the core-protocol equivalent of the + lookup state. +- The compatibility grab state which is the nearest core-protocol equivalent + of the grab state. + +Compatibility states are essentially the corresponding XKB states, but with +the keyboard group possibly encoded as one or more modifiers. + +Modifiers that correspond to each keyboard group are described in this +group compatibility map. + + +---- +(*) The implementation of XKB invisibly extends the X library to use the +keyboard extension if it is present. That means, clients that use library or +toolkit routines to interpret keyboard events automatically use all of XKB's +features; clients that directly interpret the state field of core-protocol +events or the keymap directly may be affected by some of the XKB differences. +Thus most clients can take all advantages without modification but it also +means that XKB state can be reported to clients that have not explicitly +requested the keyboard extension. diff --git a/squashfs-root/usr/share/X11/xkb/compat/accessx b/squashfs-root/usr/share/X11/xkb/compat/accessx new file mode 100644 index 0000000..6dd6ca9 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/accessx @@ -0,0 +1,52 @@ +default partial xkb_compatibility "basic" { + interpret AccessX_Enable { + action= LockControls(controls=AccessXKeys); + }; +}; + +partial xkb_compatibility "full" { + + interpret AccessX_Enable { + action= LockControls(controls=AccessXKeys); + }; + + interpret AccessX_Feedback_Enable { + action= LockControls(controls=AccessXFeedback); + }; + + interpret RepeatKeys_Enable { + action= LockControls(controls=RepeatKeys); + }; + + interpret SlowKeys_Enable { + action= LockControls(controls=SlowKeys); + }; + + interpret BounceKeys_Enable { + action= LockControls(controls=BounceKeys); + }; + + interpret StickyKeys_Enable { + action= LockControls(controls=StickyKeys); + }; + + interpret MouseKeys_Enable { + action= LockControls(controls=MouseKeys); + }; + + interpret MouseKeys_Accel_Enable { + action= LockControls(controls=MouseKeysAccel); + }; + + interpret Overlay1_Enable { + action= LockControls(controls=Overlay1); + }; + + interpret Overlay2_Enable { + action= LockControls(controls=Overlay2); + }; + + interpret AudibleBell_Enable { + action= LockControls(controls=AudibleBell); + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/basic b/squashfs-root/usr/share/X11/xkb/compat/basic new file mode 100644 index 0000000..745cbba --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/basic @@ -0,0 +1,49 @@ +// Minimal set of symbol interpretations to provide +// reasonable default behavior (Num lock, Shift lock, +// Caps lock, and Mode switch) and set up the +// automatic updating of common keyboard LEDs. + +default xkb_compatibility "basic" { + + virtual_modifiers NumLock,AltGr; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= True; + + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + + interpret Any+Lock { + action= LockMods(modifiers=Lock); + }; + + interpret Num_Lock+Any { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + + interpret Mode_switch { + useModMapMods= level1; + virtualModifier= AltGr; + action= SetGroup(group=+1); + }; + + interpret Any + Any { + action= SetMods(modifiers=modMapMods); + }; + + group 2 = AltGr; + group 3 = AltGr; + group 4 = AltGr; + + include "ledcaps" + include "lednum" + indicator "Shift Lock" { + !allowExplicit; + whichModState= Locked; + modifiers= Shift; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/caps b/squashfs-root/usr/share/X11/xkb/compat/caps new file mode 100644 index 0000000..4793051 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/caps @@ -0,0 +1,11 @@ +partial xkb_compatibility "caps_lock" { + // Keysym Caps_Lock locks the Lock modifier. + // With this definition, the keysym Caps_Lock can be used without binding + // the whole key to a real modifier. This is essential when you don't + // want to use Caps_Lock on the first level. + // This should not have any compatibility issues when used together with + // other layouts which don't utilize this capability. + interpret Caps_Lock { + action = LockMods(modifiers = Lock); + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/complete b/squashfs-root/usr/share/X11/xkb/compat/complete new file mode 100644 index 0000000..8f77538 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/complete @@ -0,0 +1,10 @@ +default xkb_compatibility "complete" { + include "basic" + augment "iso9995" + augment "mousekeys" + augment "accessx(full)" + augment "misc" + augment "xfree86" + augment "level5" + augment "caps(caps_lock)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/iso9995 b/squashfs-root/usr/share/X11/xkb/compat/iso9995 new file mode 100644 index 0000000..0f3025b --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/iso9995 @@ -0,0 +1,77 @@ +// Fairly complete set of symbol interpretations +// to provide reasonable default behavior. + +default partial xkb_compatibility "default" { + + virtual_modifiers LevelThree,AltGr; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= True; + + interpret ISO_Level2_Latch+Shift { + useModMapMods= level1; + action= LatchMods(modifiers=Shift); + }; + + interpret ISO_Level3_Shift+Any { + useModMapMods= level1; + virtualModifier= LevelThree; + action= SetMods(modifiers=LevelThree); + }; + + interpret ISO_Level3_Shift { + action= SetMods(modifiers=LevelThree); + }; + + interpret ISO_Level3_Latch+Any { + useModMapMods= level1; + virtualModifier= LevelThree; + action= LatchMods(modifiers=LevelThree); + }; + + interpret ISO_Level3_Latch { + action= LatchMods(modifiers=LevelThree); + }; + + interpret ISO_Level3_Lock+Any { + useModMapMods= level1; + virtualModifier= LevelThree; + action= LockMods(modifiers=LevelThree); + }; + + interpret ISO_Level3_Lock { + action= LockMods(modifiers=LevelThree); + }; + + interpret ISO_Group_Latch { + useModMapMods= level1; + virtualModifier= AltGr; + action= LatchGroup(group=2); + }; + + interpret ISO_Next_Group { + useModMapMods= level1; + virtualModifier= AltGr; + action= LockGroup(group=+1); + }; + + interpret ISO_Prev_Group { + useModMapMods= level1; + virtualModifier= AltGr; + action= LockGroup(group=-1); + }; + interpret ISO_First_Group { + action= LockGroup(group=1); + }; + + interpret ISO_Last_Group { + action= LockGroup(group=2); + }; + + indicator "Group 2" { + !allowExplicit; + groups= All-Group1; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/japan b/squashfs-root/usr/share/X11/xkb/compat/japan new file mode 100644 index 0000000..322bbdb --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/japan @@ -0,0 +1,45 @@ +// Japanese keyboards need the Eisu and Kana Shift +// and Lock keys, which are typically bound to the +// second shift level of some other modifier key. +// These interpretations disable the default +// interpretation (which would have these keys set +// to the same modifier as the level one symbol). + +default partial xkb_compatibility "japan" { + + interpret.repeat= False; + + interpret Eisu_Shift+Lock { + action= NoAction(); + }; + + interpret Eisu_toggle+Lock { + action= NoAction(); + }; + + interpret Kana_Shift+Lock { + action= NoAction(); + }; + + interpret Kana_Lock+Lock { + action= NoAction(); + }; +}; + +// Some Japanese keyboards have an explict +// Kana Lock key and matching LED. +partial xkb_compatibility "kana_lock" { + + virtual_modifiers Kana_Lock; + + interpret Kana_Lock+AnyOfOrNone(all) { + virtualModifier= Kana_Lock; + useModMapMods=level1; + action= LockGroup(group=+1); + }; + + indicator "Kana" { + !allowExplicit; + groups= All-Group1; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/ledcaps b/squashfs-root/usr/share/X11/xkb/compat/ledcaps new file mode 100644 index 0000000..f1460ba --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/ledcaps @@ -0,0 +1,24 @@ +// Use the Caps Lock LED to show either +// Caps Lock, Group, or Shift Lock state. + +default partial xkb_compatibility "caps_lock" { + indicator "Caps Lock" { + !allowExplicit; + whichModState= Locked; + modifiers= Lock; + }; +}; + +partial xkb_compatibility "group_lock" { + indicator "Caps Lock" { + modifiers= None; + groups=All-group1; + }; +}; + +partial xkb_compatibility "shift_lock" { + indicator "Caps Lock" { + whichModState= Locked; + modifiers= Shift; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/lednum b/squashfs-root/usr/share/X11/xkb/compat/lednum new file mode 100644 index 0000000..bfdcd74 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/lednum @@ -0,0 +1,24 @@ +// Use the Num Lock LED to show either +// Num Lock, Group, or Shift Lock state. + +default partial xkb_compatibility "num_lock" { + indicator "Num Lock" { + !allowExplicit; + whichModState= Locked; + modifiers= NumLock; + }; +}; + +partial xkb_compatibility "group_lock" { + indicator "Num Lock" { + modifiers= None; + groups=All-group1; + }; +}; + +partial xkb_compatibility "shift_lock" { + indicator "Num Lock" { + whichModState= Locked; + modifiers= Shift; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/ledscroll b/squashfs-root/usr/share/X11/xkb/compat/ledscroll new file mode 100644 index 0000000..a241698 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/ledscroll @@ -0,0 +1,24 @@ +// Use the Scroll Lock LED to show either +// Scroll Lock, Group, or Shift Lock state. + +default partial xkb_compatibility "scroll_lock" { + indicator "Scroll Lock" { + allowExplicit; + whichModState= Locked; + modifiers= ScrollLock; + }; +}; + +partial xkb_compatibility "group_lock" { + indicator "Scroll Lock" { + modifiers= None; + groups=All-group1; + }; +}; + +partial xkb_compatibility "shift_lock" { + indicator "Scroll Lock" { + whichModState= Locked; + modifiers= Shift; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/level5 b/squashfs-root/usr/share/X11/xkb/compat/level5 new file mode 100644 index 0000000..54f749d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/level5 @@ -0,0 +1,56 @@ +// Fairly complete set of symbol interpretations +// to provide reasonable default behavior. + +default partial xkb_compatibility "default" { + + virtual_modifiers LevelFive; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= True; + + interpret ISO_Level5_Shift+Any { + useModMapMods= level1; + virtualModifier= LevelFive; + action= SetMods(modifiers=LevelFive); + }; + + interpret ISO_Level5_Shift { + action= SetMods(modifiers=LevelFive); + }; + + interpret ISO_Level5_Latch+Any { + useModMapMods= level1; + virtualModifier= LevelFive; + action= LatchMods(modifiers=LevelFive); + }; + + interpret ISO_Level5_Latch { + action= LatchMods(modifiers=LevelFive); + }; + + interpret ISO_Level5_Lock+Any { + useModMapMods= level1; + virtualModifier= LevelFive; + action= LockMods(modifiers=LevelFive); + }; + + interpret ISO_Level5_Lock { + action= LockMods(modifiers=LevelFive); + }; +}; + +partial xkb_compatibility "level5_lock" { + // This defines a Level5-Lock using the NumLock real modifier + // in order to create arbitrary level-behaviour, which would + // not be possible with the virtual modifier. + // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK + // See also: symbols/level5(lock) + + virtual_modifiers NumLock; + + interpret ISO_Level5_Lock { + action = LockMods(modifiers = NumLock); + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/misc b/squashfs-root/usr/share/X11/xkb/compat/misc new file mode 100644 index 0000000..964f471 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/misc @@ -0,0 +1,122 @@ +default partial xkb_compatibility "misc" { + + virtual_modifiers Alt,Meta,Super,Hyper,ScrollLock; + + // Interpretations for some other useful keys. + + interpret Terminate_Server { + action = Terminate(); + }; + + setMods.clearLocks= True; + + // Sets the "Alt" virtual modifier. + + interpret Alt_L+Any { + //useModMapMods= level1; + virtualModifier= Alt; + action = SetMods(modifiers=modMapMods); + }; + + interpret Alt_L { + action = SetMods(modifiers=Alt); + }; + + interpret Alt_R+Any { + //useModMapMods= level1; + virtualModifier= Alt; + action = SetMods(modifiers=modMapMods); + }; + + interpret Alt_R { + action = SetMods(modifiers=Alt); + }; + + // Sets the "Meta" virtual modifier. + + interpret Meta_L+Any { + //useModMapMods= level1; + virtualModifier= Meta; + action = SetMods(modifiers=modMapMods); + }; + + interpret Meta_L { + action = SetMods(modifiers=Meta); + }; + + interpret Meta_R+Any { + //useModMapMods= level1; + virtualModifier= Meta; + action = SetMods(modifiers=modMapMods); + }; + + interpret Meta_R { + action = SetMods(modifiers=Meta); + }; + + // Sets the "Super" virtual modifier. + + interpret Super_L+Any { + //useModMapMods= level1; + virtualModifier= Super; + action = SetMods(modifiers=modMapMods); + }; + + interpret Super_L { + action = SetMods(modifiers=Super); + }; + + interpret Super_R+Any { + //useModMapMods= level1; + virtualModifier= Super; + action = SetMods(modifiers=modMapMods); + }; + + interpret Super_R { + action = SetMods(modifiers=Super); + }; + + // Sets the "Hyper" virtual modifier. + + interpret Hyper_L+Any { + //useModMapMods= level1; + virtualModifier= Hyper; + action = SetMods(modifiers=modMapMods); + }; + + interpret Hyper_L { + action = SetMods(modifiers=Hyper); + }; + + interpret Hyper_R+Any { + //useModMapMods= level1; + virtualModifier= Hyper; + action = SetMods(modifiers=modMapMods); + }; + + interpret Hyper_R { + action = SetMods(modifiers=Hyper); + }; + + // Sets the "ScrollLock" virtual modifier and + // makes it actually lock when pressed. Sets + // up a map for the scroll lock indicator. + interpret Scroll_Lock+Any { + virtualModifier= ScrollLock; + action = LockMods(modifiers=modMapMods); + }; + + include "ledscroll" + + include "misc(assign_shift_left_action)" +}; + +partial xkb_compatibility "assign_shift_left_action" { + // Because of the irrevertable modifier mapping in symbols/pc, + // is getting bound to the Lock modifier when using + // symbols/shift(both_capslock), creating unwanted behaviour. + // This is a quirk, to circumvent the problem. + interpret Shift_L { + action = SetMods(modifiers = Shift); + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/mousekeys b/squashfs-root/usr/share/X11/xkb/compat/mousekeys new file mode 100644 index 0000000..6b96fbc --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/mousekeys @@ -0,0 +1,201 @@ +// Interpretations for arrow keys and a bunch of +// other common keysyms which make it possible to +// bind "mouse" keys using xmodmap and activate or +// deactivate them from the keyboard. + +default partial xkb_compatibility "mousekeys" { + + // Keypad actions. + + interpret.repeat= True; + + interpret KP_1 { + action = MovePtr(x=-1,y= +1); + }; + interpret KP_End { + action = MovePtr(x=-1,y= +1); + }; + + interpret KP_2 { + action = MovePtr(x=+0,y= +1); + }; + interpret KP_Down { + action = MovePtr(x=+0,y= +1); + }; + + interpret KP_3 { + action = MovePtr(x=+1,y=+1); + }; + interpret KP_Next { + action = MovePtr(x=+1,y=+1); + }; + + interpret KP_4 { + action = MovePtr(x=-1,y=+0); + }; + interpret KP_Left { + action = MovePtr(x=-1,y=+0); + }; + + interpret KP_6 { + action = MovePtr(x=+1,y=+0); + }; + interpret KP_Right { + action = MovePtr(x=+1,y=+0); + }; + + interpret KP_7 { + action = MovePtr(x=-1,y=-1); + }; + interpret KP_Home { + action = MovePtr(x=-1,y=-1); + }; + + interpret KP_8 { + action = MovePtr(x=+0,y=-1); + }; + interpret KP_Up { + action = MovePtr(x=+0,y=-1); + }; + + interpret KP_9 { + action = MovePtr(x=+1,y=-1); + }; + interpret KP_Prior { + action = MovePtr(x=+1,y=-1); + }; + + interpret KP_5 { + action = PointerButton(button=default); + }; + interpret KP_Begin { + action = PointerButton(button=default); + }; + + interpret KP_F2 { + action = SetPtrDflt(affect=defaultButton,button=1); + }; + interpret KP_Divide { + action = SetPtrDflt(affect=defaultButton,button=1); + }; + + interpret KP_F3 { + action = SetPtrDflt(affect=defaultButton,button=2); + }; + interpret KP_Multiply { + action = SetPtrDflt(affect=defaultButton,button=2); + }; + + interpret KP_F4 { + action = SetPtrDflt(affect=defaultButton,button=3); + }; + interpret KP_Subtract { + action = SetPtrDflt(affect=defaultButton,button=3); + }; + + interpret KP_Separator { + action = PointerButton(button=default,count=2); + }; + interpret KP_Add { + action = PointerButton(button=default,count=2); + }; + + interpret KP_0 { + action = LockPointerButton(button=default,affect=lock); + }; + interpret KP_Insert { + action = LockPointerButton(button=default,affect=lock); + }; + + interpret KP_Decimal { + action = LockPointerButton(button=default,affect=unlock); + }; + interpret KP_Delete { + action = LockPointerButton(button=default,affect=unlock); + }; + + // Additional mappings for Solaris keypad compatibility. + + interpret F25 { // aka KP_Divide + action = SetPtrDflt(affect=defaultButton,button=1); + }; + interpret F26 { // aka KP_Multiply + action = SetPtrDflt(affect=defaultButton,button=2); + }; + interpret F27 { // aka KP_Home + action = MovePtr(x=-1,y=-1); + }; + interpret F29 { // aka KP_Prior + action = MovePtr(x=+1,y=-1); + }; + interpret F31 { // aka KP_Begin + action = PointerButton(button=default); + }; + interpret F33 { // aka KP_End + action = MovePtr(x=-1,y= +1); + }; + interpret F35 { // aka KP_Next + action = MovePtr(x=+1,y=+1); + }; + + interpret.repeat= False; + + // New keysym actions. + + interpret Pointer_Button_Dflt { + action= PointerButton(button=default); + }; + interpret Pointer_Button1 { + action= PointerButton(button=1); + }; + interpret Pointer_Button2 { + action= PointerButton(button=2); + }; + interpret Pointer_Button3 { + action= PointerButton(button=3); + }; + interpret Pointer_DblClick_Dflt { + action= PointerButton(button=default,count=2); + }; + interpret Pointer_DblClick1 { + action= PointerButton(button=1,count=2); + }; + interpret Pointer_DblClick2 { + action= PointerButton(button=2,count=2); + }; + interpret Pointer_DblClick3 { + action= PointerButton(button=3,count=2); + }; + interpret Pointer_Drag_Dflt { + action= LockPointerButton(button=default); + }; + interpret Pointer_Drag1 { + action= LockPointerButton(button=1); + }; + interpret Pointer_Drag2 { + action= LockPointerButton(button=2); + }; + interpret Pointer_Drag3 { + action= LockPointerButton(button=3); + }; + + interpret Pointer_EnableKeys { + action= LockControls(controls=MouseKeys); + }; + interpret Pointer_Accelerate { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Pointer_DfltBtnNext { + action= SetPtrDflt(affect=defaultButton,button= +1); + }; + interpret Pointer_DfltBtnPrev { + action= SetPtrDflt(affect=defaultButton,button= -1); + }; + + // Allow an indicator for MouseKeys. + indicator "Mouse Keys" { + //!allowExplicit; + indicatorDrivesKeyboard; + controls= MouseKeys; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/olpc b/squashfs-root/usr/share/X11/xkb/compat/olpc new file mode 100644 index 0000000..747b444 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/olpc @@ -0,0 +1,51 @@ +// +// Map the OLPC game keys to virtual modifiers. +// +// Created by Bernardo Innocenti +// + +default xkb_compatibility "olpc" { + include "complete" + + virtual_modifiers Square,Cross,Triangle,Circle; + + interpret KP_Home+Any { + //useModMapMods= level1; + virtualModifier= Square; + action = SetMods(modifiers=modMapMods); + }; + + interpret KP_Home { + action = SetMods(modifiers=Square); + }; + + interpret KP_Next+Any { + //useModMapMods= level1; + virtualModifier= Cross; + action = SetMods(modifiers=modMapMods); + }; + + interpret KP_Next { + action = SetMods(modifiers=Cross); + }; + + interpret KP_End+Any { + //useModMapMods= level1; + virtualModifier= Circle; + action = SetMods(modifiers=modMapMods); + }; + + interpret KP_End { + action = SetMods(modifiers=Circle); + }; + + interpret KP_Prior+Any { + //useModMapMods= level1; + virtualModifier= Triangle; + action = SetMods(modifiers=modMapMods); + }; + + interpret KP_Prior { + action = SetMods(modifiers=Triangle); + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/pc b/squashfs-root/usr/share/X11/xkb/compat/pc new file mode 100644 index 0000000..f69b54d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/pc @@ -0,0 +1,17 @@ +default partial xkb_compatibility "pc" { + + // Sets the "Alt" virtual modifier. + + virtual_modifiers Alt; + + setMods.clearLocks= True; + interpret Alt_L+Any { + virtualModifier= Alt; + action = SetMods(modifiers=modMapMods); + }; + + interpret Alt_R+Any { + virtualModifier= Alt; + action = SetMods(modifiers=modMapMods); + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/pc98 b/squashfs-root/usr/share/X11/xkb/compat/pc98 new file mode 100644 index 0000000..0abd623 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/pc98 @@ -0,0 +1,56 @@ +// Minimal set of symbol interpretations to provide +// reasonable default behavior (Num lock, Shift lock, +// and Mode switch) and set up the automatic updating +// of common keyboard LEDs. + +default xkb_compatibility "basic" { + + virtual_modifiers NumLock,AltGr; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= True; + + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + +// interpret Any+Lock { +// action= LockMods(modifiers=Lock); +// }; + + interpret Num_Lock+Any { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + + interpret Mode_switch { + useModMapMods= level1; + virtualModifier= AltGr; + action= SetGroup(group=2,clearLocks); + }; + + interpret Any + Any { + action= SetMods(modifiers=modMapMods); + }; + + group 2 = AltGr; + group 3 = AltGr; + group 4 = AltGr; + + indicator.allowExplicit= False; + indicator "Caps Lock" { + whichModState= Locked; + modifiers= Lock; + }; + indicator "Num Lock" { + whichModState= Locked; + modifiers= NumLock; + }; + indicator "Shift Lock" { + whichModState= Locked; + modifiers= Shift; + }; + indicator.allowExplicit= True; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/xfree86 b/squashfs-root/usr/share/X11/xkb/compat/xfree86 new file mode 100644 index 0000000..cc43819 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/xfree86 @@ -0,0 +1,66 @@ +// XFree86 special keysyms. + +default partial xkb_compatibility "basic" { + + interpret.repeat= True; + + interpret XF86_Switch_VT_1 { + action = SwitchScreen(Screen=1, !SameServer); + }; + interpret XF86_Switch_VT_2 { + action = SwitchScreen(Screen=2, !SameServer); + }; + interpret XF86_Switch_VT_3 { + action = SwitchScreen(Screen=3, !SameServer); + }; + interpret XF86_Switch_VT_4 { + action = SwitchScreen(Screen=4, !SameServer); + }; + interpret XF86_Switch_VT_5 { + action = SwitchScreen(Screen=5, !SameServer); + }; + interpret XF86_Switch_VT_6 { + action = SwitchScreen(Screen=6, !SameServer); + }; + interpret XF86_Switch_VT_7 { + action = SwitchScreen(Screen=7, !SameServer); + }; + interpret XF86_Switch_VT_8 { + action = SwitchScreen(Screen=8, !SameServer); + }; + interpret XF86_Switch_VT_9 { + action = SwitchScreen(Screen=9, !SameServer); + }; + interpret XF86_Switch_VT_10 { + action = SwitchScreen(Screen=10, !SameServer); + }; + interpret XF86_Switch_VT_11 { + action = SwitchScreen(Screen=11, !SameServer); + }; + interpret XF86_Switch_VT_12 { + action = SwitchScreen(Screen=12, !SameServer); + }; + + interpret XF86LogGrabInfo { + action = Private(type=0x86, data="PrGrbs"); + }; + interpret XF86LogWindowTree { + action = Private(type=0x86, data="PrWins"); + }; + + interpret XF86_Next_VMode { + action = Private(type=0x86, data="+VMode"); + }; + interpret XF86_Prev_VMode { + action = Private(type=0x86, data="-VMode"); + }; +}; + +partial xkb_compatibility "grab_break" { + interpret XF86_Ungrab { + action = Private(type=0x86, data="Ungrab"); + }; + interpret XF86_ClearGrab { + action = Private(type=0x86, data="ClsGrb"); + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compat/xtest b/squashfs-root/usr/share/X11/xkb/compat/xtest new file mode 100644 index 0000000..f2ca643 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compat/xtest @@ -0,0 +1,56 @@ +default xkb_compatibility "xtest" { + + // Minimal set of symbol interpretations to provide + // reasonable behavior for testing. + // The X Test Suite assumes that it can set any modifier + // by simulating a KeyPress and clear it by simulating a + // KeyRelease. Because of the way that XKB implements + // locking/latching modifiers, this approach fails in + // some cases (typically the Lock or NumLock modifiers). + // These symbol interpretations make all modifier keys + // just set the corresponding modifier so that xtest + // will see the behavior it expects. + + virtual_modifiers NumLock,AltGr; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= False; + + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= SetMods(modifiers=Shift); + }; + + interpret Num_Lock+Any { + virtualModifier= NumLock; + action= SetMods(modifiers=NumLock); + }; + + interpret Mode_switch { + useModMapMods= level1; + virtualModifier= AltGr; + action= SetGroup(group=2); + }; + + interpret Any + Any { + action= SetMods(modifiers=modMapMods); + }; + + group 2 = AltGr; + group 3 = AltGr; + group 4 = AltGr; + + indicator.allowExplicit= False; + indicator "Caps Lock" { + modifiers= Lock; + }; + indicator "Num Lock" { + modifiers= NumLock; + }; + indicator "Shift Lock" { + whichModState= Locked; + modifiers= Shift; + }; + indicator.allowExplicit= True; +}; diff --git a/squashfs-root/usr/share/X11/xkb/compiled/README.compiled b/squashfs-root/usr/share/X11/xkb/compiled/README.compiled new file mode 100644 index 0000000..71caa2f --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/compiled/README.compiled @@ -0,0 +1,13 @@ + +The X server uses this directory to store the compiled version of the +current keymap and/or any scratch keymaps used by clients. The X server +or some other tool might destroy or replace the files in this directory, +so it is not a safe place to store compiled keymaps for long periods of +time. The default keymap for any server is usually stored in: + X-default.xkm +where is the display number of the server in question, which makes +it possible for several servers *on the same host* to share the same +directory. + +Unless the X server is modified, sharing this directory between servers on +different hosts could cause problems. diff --git a/squashfs-root/usr/share/X11/xkb/geometry/README b/squashfs-root/usr/share/X11/xkb/geometry/README new file mode 100644 index 0000000..5f4dcc7 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/README @@ -0,0 +1,6 @@ +The geometry component of a keyboard mapping specifies primarily the geometry of +the keyboard. It contains the geometry symbolic name and the keyboard geometry +description. The geometry component might also contain aliases for some keys or +symbolic names for some indicators and might affect the set of indicators that +are physically present. Key aliases defined in the geometry component of a +keyboard mapping override those defined in the keycodes component. diff --git a/squashfs-root/usr/share/X11/xkb/geometry/amiga b/squashfs-root/usr/share/X11/xkb/geometry/amiga new file mode 100644 index 0000000..9c5f65e --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/amiga @@ -0,0 +1,264 @@ +default xkb_geometry "usa1" { + + description= "Amiga (usa1)"; + width= 490; + height= 175; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "FCTS" { { [ 23,18] }, { [2,1], [ 21,17] } }; + shape "TLDE" { { [ 28,18] }, { [2,1], [ 21,17] } }; + shape "TABK" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "CTRL" { { [ 23,18] }, { [2,1], [ 21,17] } }; + shape "CAPS" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "RTRN" { + approx = { [ 16, 0], [42,37] }, + { [16, 0], [42, 0], [42,37], + [ 0,37], [ 0,19], [16,19] }, + { [18, 1], [40, 1], [40,36], + [ 2,36], [ 2,20], [18,20] } }; + shape "LFSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; + shape "MODK" { { [ 23,18] }, { [2,1], [ 21,17] } }; + shape "SPCE" { { [172,18] }, { [2,1], [170,17] } }; + shape "DELE" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; + + section.left= 22; + row.left= 1; + key.shape= "FCTS"; + key.gap= 1; + section "Function" { + top= 28; + row { + top= 1; + keys { { , shape="NORM" }, + { , 9 }, , , , , + { , 9 }, , , , + }; + }; + }; // End of "Function" section + + key.shape= "NORM"; + section "Alpha" { + top= 56; + row { + top= 1; + keys { { , shape="TLDE" }, + , , , , , , + , , , , , , + , { , "BKSP" } + }; + }; + row { + top= 20; + keys { { , "TABK" }, + , , , , , + , , , , , + , , { , "RTRN", -15 } + }; + }; + row { + top= 39; + keys { { , "CTRL" }, { , "CAPS" }, + , , , , , + , , , , , + + }; + }; + row { + top= 58; + keys { { , "LFSH" }, + , , , , , + , , , , , + { , "RTSH" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + keys { { , 10 }, , + { , "SPCE" }, + , + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 56; + left= 326; + row { + top= 1; + key.shape = "DELE"; + keys { , }; + }; + row { + top= 39; + left = 20; + keys { }; + }; + row { + top= 58; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 56; + left= 392; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , }; + }; + row { + top= 39; + keys { , , , }; + }; + row { + top= 58; + keys { , , , { , "KPEN" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + +}; + +xkb_geometry "de" { + + description= "Amiga (de)"; + width= 490; + height= 175; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "FCTS" { { [ 23,18] }, { [2,1], [ 21,17] } }; + shape "TLDE" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "TABK" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "CTRL" { { [ 23,18] }, { [2,1], [ 21,17] } }; + shape "CAPS" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "RTRN" { + { [ 0, 0], [28,0], [28,37], [5,37], [5,18], [ 0,18] }, + { [ 2, 1], [26,1], [26,36], [7,36], [7,17], [ 2,17] } }; + shape "LFSH" { { [ 32,18] }, { [2,1], [ 29,17] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; + shape "MODK" { { [ 23,18] }, { [2,1], [ 21,17] } }; + shape "SPCE" { { [172,18] }, { [2,1], [170,17] } }; + shape "DELE" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; + + section.left= 22; + row.left= 1; + key.shape= "FCTS"; + key.gap= 1; + section "Function" { + top= 28; + row { + top= 1; + keys { { , shape="NORM" }, + { , 9 }, , , , , + { , 9 }, , , , + }; + }; + }; // End of "Function" section + + key.shape= "NORM"; + section "Alpha" { + top= 56; + row { + top= 1; + keys { { , shape="TLDE" }, + , , , , , , + , , , , , , + , { , "BKSP" } + }; + }; + row { + top= 20; + keys { { , "TABK" }, + , , , , , + , , , , , + , , { , "RTRN" } + }; + }; + row { + top= 39; + keys { { , "CTRL" }, { , "CAPS" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH" }, + , , , , , , + , , , , , + { , "RTSH" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + keys { { , 14 }, , + { , "SPCE" }, + , + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 56; + left= 326; + row { + top= 1; + key.shape = "DELE"; + keys { , }; + }; + row { + top= 39; + left = 20; + keys { }; + }; + row { + top= 58; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 56; + left= 392; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , }; + }; + row { + top= 39; + keys { , , , }; + }; + row { + top= 58; + keys { , , , { , "KPEN" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/ataritt b/squashfs-root/usr/share/X11/xkb/geometry/ataritt new file mode 100644 index 0000000..06a681d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/ataritt @@ -0,0 +1,251 @@ +default xkb_geometry "us" { + + description= "Atari TT (us)"; + width= 480; + height= 173; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "BKSP" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "RTRN" { approx = { [0,19], [32,37] }, + { [ 14, 0], [32, 0], [32,37], [0,37], [0,19], [14,19] }, + { [ 16, 1], [30, 1], [30,36], [2,36], [2,20], [16,20] } }; + shape "CTRL" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "SPCE" { { [172,18] }, { [2,1], [170,17] } }; + shape "FCTS" { { [ 28,10] }, { [2,1], [ 26,9] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; + + section.left= 21; + row.left= 1; + key.shape = "NORM"; + key.gap= 1; + section "Function" { + top= 36; + key.shape= "FCTS"; + row { + top= 1; + keys { , , , , + , , , , + , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 63; + row { + top= 1; + keys { , , , , , + , , , , , + , , , , + { , "BKSP" } + }; + }; + row { + top= 20; + keys { { , "TABK" }, + , , , , , + , , , , , + , , { , "RTRN", -13 }, + }; + }; + row { + top= 39; + keys { { , "CTRL" }, + , , , , , + , , , , , + , { , 34 } + }; + }; + row { + top= 58; + keys { { , "LFSH" }, + , , , , , + , , , , , + { , "RTSH" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + keys { { , 24 }, + { , "SPCE" }, + + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 63; + left= 319; + row { + top= 1; + key.shape = "BKSP"; + keys { , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 39; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 63; + left= 381; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , }; + }; + row { + top= 39; + keys { , , , }; + }; + row { + top= 58; + keys { , , , { , "KPEN" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + +}; + +xkb_geometry "de" { + + description= "Atari TT (de)"; + width= 480; + height= 173; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "BKSP" { { [ 27,18] }, { [2,1], [ 25,17] } }; + shape "TABK" { { [ 27,18] }, { [2,1], [ 25,17] } }; + shape "RTRN" { approx = { [0,19], [32,37] }, + { [ 14, 0], [32, 0], [32,37], [0,37], [0,19], [14,19] }, + { [ 16, 1], [30, 1], [30,36], [2,36], [2,20], [16,20] } }; + shape "CTRL" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "LFSH" { { [ 23,18] }, { [2,1], [ 21,17] } }; + shape "RTSH" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "SPCE" { { [170,18] }, { [2,1], [168,17] } }; + shape "FCTS" { { [ 28,11] }, { [2,1], [ 26,10] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; + + section.left= 21; + row.left= 1; + key.shape = "NORM"; + key.gap= 1; + section "Function" { + top= 36; + key.shape= "FCTS"; + row { + top= 1; + keys { , , , , + , , , , + , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 63; + row { + top= 1; + keys { , , , , , + , , , , , + , , , , + { , "BKSP" } + }; + }; + row { + top= 20; + keys { { , "TABK" }, + , , , , , + , , , , , + , , { , "RTRN", -13 }, + }; + }; + row { + top= 39; + keys { { , "CTRL" }, + , , , , , + , , , , , + , { , 34 } + }; + }; + row { + top= 58; + keys { { , "LFSH" }, , + , , , , + , , , , , , + { , "RTSH" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + keys { { , 24 }, { , "SPCE" }, + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 63; + left= 319; + row { + top= 1; + key.shape = "BKSP"; + keys { , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 39; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 63; + left= 381; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , }; + }; + row { + top= 39; + keys { , , , }; + }; + row { + top= 58; + keys { , , , { , "KPEN" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/chicony b/squashfs-root/usr/share/X11/xkb/geometry/chicony new file mode 100644 index 0000000..75bce8d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/chicony @@ -0,0 +1,189 @@ +// -*- indent-tabs-mode: nil -*- + +// Created by Alexander Pohoyda +// Geometry specification for Chicony KB-9820 keyboard. + +// 86 keys +default xkb_geometry "us" { + description = "Chicony KB-9820 infra-red keyboard"; + width = 350; + height = 180; + //baseColor = "grey60"; + labelColor = "white"; + + shape "EDGE" { cornerRadius = 25, + { [0, 8], [142.5, 0], [202.5, 0], [347, 8], + [347, 60], [327, 100], [322, 160], + [202.5, 165], [142.5, 165], + [25, 160], [20, 100], [0, 60] } }; + shape "KEYS" { cornerRadius = 2, { [271, 109] } }; + shape "MOUS" { cornerRadius = 12, { [24, 24] } }; + shape "MOUS2" { cornerRadius = 9, { [18, 18] } }; + shape "BTNS" { cornerRadius = 5, { [10, 10] } }; + + solid "Edges" { + top = 0; + left = 0; + shape = "EDGE"; + color = "grey60"; + }; + + solid "KeyPanel" { + shape = "KEYS"; + left = 38; + top = 22; + color = "black"; + }; + + solid "Mouse" { + shape = "MOUS"; + left = 315; + top = 30; + color = "grey30"; + }; + + outline "Mouse2" { + shape = "MOUS2"; + left = 318; + top = 33; + color = "black"; + }; + + solid "Button1" { + shape = "BTNS"; + left = 10; + top = 32; + color = "grey30"; + }; + + solid "Button2" { + shape = "BTNS"; + left = 20; + top = 42; + color = "grey30"; + }; + + outline "Buttons" { + shape = "MOUS"; + left = 8; + top = 30; + color = "black"; + }; + + shape.cornerRadius = 1; + shape "ESC" { { [17, 12] }, { [1.5, 0], [15.5, 10] } }; + shape "SMALL" { { [15, 12] }, { [1.5, 0], [13.5, 10] } }; + shape "THIN" { { [14, 18] }, { [2, 0], [12, 15] } }; + shape "NARR" { { [16, 18] }, { [2, 0], [14, 15] } }; + shape "NORM" { { [17, 18] }, { [2, 0], [15, 15] } }; + shape "WIDER" { { [18, 18] }, { [2, 0], [16, 15] } }; + shape "CAPS" { { [22, 18] }, { [2, 0], [20, 15] } }; + shape "RTSH" { { [23, 18] }, { [2, 0], [21, 15] } }; + shape "WIDEST" { { [30, 18] }, { [2, 0], [28, 15] } }; + shape "SPCE" { { [68, 18] }, { [2, 0], [66, 15] } }; + + section "Function" { + key.shape = "SMALL"; + key.gap = 0.79; + key.color = "grey60"; + left = 38; + top = 22; + row { + top = 1; + keys { { , shape="ESC", 1 }, + { , 1.5 }, , , , + , , , , + , , , , + , , , + }; + }; + }; // End of "Function" section + + section "Control" { + key.shape = "NORM"; + key.gap = 1; + key.color = "grey60"; + left = 38; + top = 111; + row { + top = 1; + keys { , , , , + { , shape="SPCE" }, + , + { , shape="THIN" }, + { , shape="THIN" }, + { , shape="THIN" }, + { , shape="THIN" } }; + }; + }; // End of "Control" section + + section "Editing" { + key.shape = "NORM"; + key.gap = 1; + key.color = "grey60"; + left = 291; + top = 34; + row.vertical = True; + row { + top = 1; + keys { , , , }; + }; + }; // End of "Editing" section + + section "Navigation" { + key.gap = 1; + key.shape = "NARR"; + key.color = "grey60"; + left = 257; + top = 92; + row { + left = 16; + top = 1; + keys { }; + }; + row { + top = 20; + keys { , , }; + }; + }; // End of "Navigation" section + + section "Alpha" { + key.gap = 1; + key.shape = "NORM"; + key.color = "grey60"; + left = 38; + top = 35; + row { + top = 1; + keys { { , shape="NARR" }, + , , , , + , , , , , + , , , { , shape="WIDER" } + }; + }; + row { + top = 20; + keys { , + , , , , , + , , , , , + , , + }; + }; + row { + top = 39; + keys { { , shape="CAPS" }, + , , , , , + , , , , , + , { , shape="WIDEST" } + }; + }; + row { + top = 58; + keys { { , shape="WIDEST" }, + , , , , , + , , , , , + { , shape="RTSH" } + }; + }; + }; // End of "Alpha" section +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/dell b/squashfs-root/usr/share/X11/xkb/geometry/dell new file mode 100644 index 0000000..501fdca --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/dell @@ -0,0 +1,644 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +default xkb_geometry "dell101" { + + description= "Dell 101"; + width= 470; + height= 210; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "CAPS" { { [ 33,18] }, { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; + shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; + shape "SPCE" { { [133,18] }, { [2,1], [131,16] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; + + shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 52; + left= 377; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 67; + indicator.shape= "LED"; + indicator "Num Lock" { left= 382; }; + indicator "Caps Lock" { left= 407; }; + indicator "Scroll Lock" { left= 433; }; + text.top= 55; + text.color= "black"; + text "NumLockLabel" { left= 378; text="Num\nLock"; }; + text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 52; + row { + top= 1; + keys { { , color="grey20" }, + { , 20 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 91; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , { , "RTRN", color="grey20" } + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , 21 }, + { , "SPCE", color="white" }, + , { , 21 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 91; + left= 312; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 91; + left= 376; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "default" geometry + + +xkb_geometry "dell65" { +}; + +xkb_geometry "dell65x" { + + description= "Dell 101"; + width= 470; + height= 210; + color="grey10"; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "CAPS" { { [ 33,18] }, { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; + shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; + shape "SPCE" { { [133,18] }, { [2,1], [131,16] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; + + shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 52; + left= 377; + color= "grey10"; + }; + + shape "BACKGROUND" { cornerRadius=5, { [ 470, 210 ] } }; + solid "Background" { + shape= "BACKGROUND"; + top= 0; + left= 0; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 67; + indicator.shape= "LED"; + indicator "Num Lock" { left= 382; }; + indicator "Caps Lock" { left= 407; }; + indicator "Scroll Lock" { left= 433; }; + text.top= 55; + text.color= "black"; + text "NumLockLabel" { left= 378; text="Num\nLock"; }; + text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 52; + row { + top= 1; + keys { { , color="grey20" }, + { , 20 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 91; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , { , "RTRN", color="grey20" } + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , 21 }, + { , "SPCE", color="white" }, + , { , 21 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 91; + left= 312; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 91; + left= 376; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; + + +// +// Dell Precision M65 laptop +// + +xkb_geometry "dellm65" { + + description= "Dell Precision M65 laptop"; + width= 308; + height= 152; + baseColor = "grey20"; + labelColor = "white"; + + shape "BACKGROUND" { cornerRadius = 3, { [ 308, 152 ] } }; + shape "BACKGROUND2" { cornerRadius = 2, { [ 7, 22 ], + [ 171, 22 ], + [ 171, 10 ], + [ 301, 10 ], + [ 301, 148 ], + [ 244, 148 ], + [ 244, 132 ], + [ 7, 132] } }; + solid "Background" { + shape = "BACKGROUND"; + top = 0; + left = 0; + color = "grey20"; + }; + solid "Background2" { + shape = "BACKGROUND2"; + top = 0; + left = 0; + color = "black"; + }; + + shape "LEDS" { cornerRadius = 4, { [ 26, 8 ] } }; + shape "LED" { cornerRadius = 0, { [ 4, 4 ] } }; + solid "LedPanel" { + shape = "LEDS"; + top = 8; + left = 69; + color = "grey20"; + }; + + indicator.onColor= "green"; + indicator.offColor= "gray20"; + indicator.top= 10; + indicator.shape= "LED"; + indicator "Num Lock" { left= 72; }; + indicator "Caps Lock" { left= 80; }; + indicator "Scroll Lock" { left= 88; }; + + shape "MEDIA" { cornerRadius = 5, { [ 2, 2], [ 12, 12 ] } }; + shape "POWER" { cornerRadius = 7, { [ 14, 14 ] } }; + + section "Media" { + top = 5; + left = 102; + width = 60; + height = 14; + key.color="grey30"; + key.shape = "MEDIA"; + row { + top = 0; + keys { + , , , { , shape = "POWER", gap = 3 } + }; + }; + }; + + + shape "FKEY" { cornerRadius = 1, { [ 18, 12 ] }, { [ 1, 1 ], [ 17, 10 ] } }; + + section "Function" { + top = 12; + left = 8; + width = 290; + height = 24; + key.color = "grey80"; + key.shape = "FKEY"; + key.gap = 0; + row { + top = 0; + keys { { , 165 }, , , , + { , 1 }, , }; + }; + row { + top = 12; + keys { , { , 1 }, , , , + { , 1 }, , , , + { , 1 }, , , , + { , 1 }, , }; + }; + }; + + shape "AKEY" { cornerRadius = 1, { [ 19, 19 ] }, { [ 2, 1 ], [ 17, 15 ] } }; + shape "BKSP" { cornerRadius = 1, { [ 44, 19 ] }, { [ 2, 1 ], [ 42, 15 ] } }; + shape "TABK" { cornerRadius = 1, { [ 31, 19 ] }, { [ 2, 1 ], [ 29, 15 ] } }; + shape "BKSL" { cornerRadius = 1, { [ 31, 19 ] }, { [ 2, 1 ], [ 29, 15 ] } }; + shape "CAPS" { cornerRadius = 1, { [ 34, 19 ] }, { [ 2, 1 ], [ 32, 15 ] } }; + shape "RTRN" { cornerRadius = 1, { [ 47, 19 ] }, { [ 2, 1 ], [ 45, 15 ] } }; + shape "LFSH" { cornerRadius = 1, { [ 44, 19 ] }, { [ 2, 1 ], [ 42, 15 ] } }; + shape "RTSH" { cornerRadius = 1, { [ 56, 19 ] }, { [ 2, 1 ], [ 54, 15 ] } }; + shape "LCTL" { cornerRadius = 1, { [ 31, 19 ] }, { [ 2, 1 ], [ 29, 15 ] } }; + shape "LALT" { cornerRadius = 1, { [ 25, 19 ] }, { [ 2, 1 ], [ 23, 15 ] } }; + shape "RCTL" { cornerRadius = 1, { [ 25, 19 ] }, { [ 2, 1 ], [ 23, 15 ] } }; + shape "SPCE" { cornerRadius = 1, { [ 96, 19 ] }, { [ 2, 1 ], [ 94, 15 ] } }; + + + section "Alpha" { + top = 36; + left = 8; + width = 290; + height = 21; + key.color = "grey80"; + key.shape = "AKEY"; + key.gap = 0; + row { + top = 1; + keys { , , , , , + , , , , , + , , , { , 1, "BKSP" } }; + }; + row { + top = 20; + keys { { , "TABK" }, + { , 1 }, , , , , + , , , , , + , , { , 1, "BKSL" } }; + }; + row { + top = 39; + keys { { , "CAPS" }, + { , 1 }, , , , , + , , , , , + , { , 1, "RTRN" } }; + }; + row { + top = 58; + keys { { , "LFSH" }, + { , 1 }, , , , , + , , , , , + { , 1, "RTSH" } }; + }; + row { + top = 77; + keys { { , "LCTL" }, { , 20 }, { , "LALT" }, + { , "SPCE" }, , { , "RCTL" } }; + }; + }; + + shape "SKEY" { cornerRadius = 1, { [ 18, 17 ] }, { [ 2, 1 ], [ 16, 13 ] } }; + section "Arrows" { + top = 113; + left = 243; + width = 54; + height = 36; + + key.color = "grey80"; + key.shape = "SKEY"; + row { + top = 0; + left = 20; + + keys { }; + }; + + row { + top = 17; + left = 2; + + keys { , , }; + }; + }; + + shape "STIK" { cornerRadius = 4, { [ 7, 7 ] } }; + + solid "STIK" { + priority = 255; + color = "blue"; + shape = "STIK"; + top = 90; + left = 135; + }; +}; + +xkb_geometry "latitude" { + description="Dell Latitude"; + width=304.2; height=219.1; + + baseColor="grey"; labelColor="white"; + + alias =; + alias =; + + shape "EXTERNAL" {corner=3, + {[0,0], [302,0], [302,154], [174,154], [174,198], [166,216], [107,216], [100,198], [100,154], [0,154]}}; + solid "external" {shape="EXTERNAL"; top=1.1; left=1.1; color="grey10"; priority=10;}; + + shape "INTERNAL" {corner=3, + {[0,13], [162.2,13], [162.2,0], [286,0], [286,138], [230,138], [230,124], [163,124], [163,138], [96,138], [96,124], [0,124]}}; + solid "internal" {shape="INTERNAL"; top=7; left=8.5; color="black"; priority=20;}; + + shape "TOUCHPAD" {corner=2, {[68,40]}}; + solid "touchpad" {shape="TOUCHPAD"; top=153; left=104; color="grey20"; priority=20;}; + + shape "TOUCHPADBUTTONS" {corner=1, + {[0,0], [33.5,0], [33.5,16], [6,16]}, + {[34.5,0], [68,0], [61, 16], [34.5,16]}}; + solid "touchleft" {shape="TOUCHPADBUTTONS"; top=198; left=104; color="grey20"; priority=20;}; + + shape "NIPPLE" {corner=3, {[7.5,7.5]}}; + solid "nipple" {shape="NIPPLE"; top=87; left=134; color="blue"; priority=200;}; + shape "NIPPLEBUTTONS" {corner=2, {[32.5,13]}, {[33.5,0],[66,13]}}; + solid "nipplebuttons" {shape="NIPPLEBUTTONS"; top=131; left=105; color="grey20"; priority=20;}; + + shape "FILLINGS" {corner=1.5, {[19,15]}, {[38,0],[55,15]}}; + solid "fillings" {shape="FILLINGS"; top=112; left=238; color="grey"; priority=200;}; + + shape "FUNC" {corner=1.5, {[16.3,12]}, {[2,0.5], [14,10]}}; + shape "ESC" {corner=1.5, {[18,12]}, {[2,0.5], [16,10]}}; + shape "BKSP" {corner=1.5, {[36.5,18]}, {[3,0.5], [33.5,14]}}; + + section "Function" {key.color="grey"; priority=100; top=9; left=10; width=290; height=28; + row {top=0; left=161.1; keys {{,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",1.1}, + {,"FUNC",1.1}, {,"FUNC",2.5}, {,"FUNC",1.1}, {,"FUNC",1.1}};}; + row {top=12.5; left=0; keys {{,"ESC",0}, + {,"FUNC",2.7}, {,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",1.1}, + {,"FUNC",2.5}, {,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",1.1}, + {,"FUNC",2.5}, {,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",1.1}, + {,"FUNC",2.5}, {, "FUNC",1.1}, {,"FUNC",1.1}};}; + }; // End of "Function" section + + shape "NORM" {corner=1.5, {[18,18]}, {[3,0.5], [14.8,14]}}; + shape "TABK" {corner=1.5, {[28,18]}, {[3,0.5], [25,14]}}; + shape "CAPS" {corner=1.5, {[32,18]}, {[3,0.5], [22,14]}}; + shape "LFSH" {corner=1.5, {[23,18]}, {[3,0.5], [20,14]}}; + shape "RTSH" {corner=1.5, {[50,18]}, {[3,1], [47,14]}}; + shape "RTRN" {corner=1.5, {[0,0],[26.5,0],[26.5,37],[4,37],[4,18],[0,18]}, + {[3,0.5], [23.5,0.5], [23.5,33], [7,33], [7,14], [3,14]}}; + shape "SPCE" {corner=1.5,{[95,18]}, {[3,0.5],[92,14]}}; + shape "LCTL" {corner=1.5, {[27,18]}, {[3,0.5],[24,14]}}; + shape "LALT" {corner=1.5, {[22,18]}, {[3,0.5],[19,14]}}; + shape "WIN" {corner=1.5, {[18,18]}, {[3,0.5],[15,14]}}; + + section "Alpha" {key.color="grey"; priority=100; top=36; left=10; width=290; height=18; + row {top=0; left=0; keys {{, "NORM", 0}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, + {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, + {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "BKSP", 1}};}; + row {top=19; left=0; keys {{, "TABK", 0}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, + {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, + {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "RTRN", 1}};}; + row {top=38; left=0; keys {{, "CAPS", 0}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, + {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, + {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}};}; + // TODO There's a weird <> key here, check it out: + row {top=57; left=0; keys {{, "LFSH", 0}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, + {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, + {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "RTSH", 1}};}; + row {top=76; left=0; keys {{, "LCTL", 0}, {, "WIN", 1},{, "WIN", 1}, {, "LALT", 1}, + {, "SPCE", 1}, {, "WIN", 1},{, "LALT", 1}};}; + }; // End of "Alpha" section + + shape "ARROW" {corner=1.5, {[17,15]}, {[2,0.5],[15,13]}}; + section "Arrows" {key.color="grey"; priority=110; top=112; left=240; width=43; height=31; + row {top=0; left=18; keys {{, "ARROW", 0}};}; + row {top=16; left=0; keys {{, "ARROW", 0}, {, "ARROW", 1}, {, "ARROW", 1}};}; + }; // End of "Arrows" section + + shape "LEDS" {corner=3, {[25,7]}}; + solid "leds" {shape="LEDS"; top=5.7; left=69; color="grey"; priority=10;}; + shape "LED" {corner=0, {[0,1.5], [3,4.5]}, {[0.5,1.5], [1,0] , [2,0], [2.5,1.5]}}; + indicator.onColor="green"; + indicator.offColor="grey"; + indicator.top=7; + indicator.shape="LED"; + indicator.priority=200; + indicator "Num Lock" {left=72;}; + indicator "Caps Lock" {left=80;}; + indicator "Scroll Lock" {left=88;}; + + text "LATITUDE" {left=10; top=7; text="L A T I T U D E | D620";}; + + shape "ROUND" {corner=5, {[10,10]}}; + shape "POWER" {corner=7, {[15,15]}}; + section "Topbuttons" {key.color="grey"; priority=110; top=2; left=100; + row {top=2; left=0; keys {{, "ROUND", 0}, {, "ROUND", 3}, {, "ROUND", 3}};}; + row {top=0; left=45; keys {{, "POWER", 0}};}; + }; // End of "TopButtons" section +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/digital_vndr/lk b/squashfs-root/usr/share/X11/xkb/geometry/digital_vndr/lk new file mode 100644 index 0000000..cf7c573 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/digital_vndr/lk @@ -0,0 +1,728 @@ +// +//Copyright (c) 1996 Digital Equipment Corporation +// +//Permission is hereby granted, free of charge, to any person obtaining +//a copy of this software and associated documentation files (the +//"Software"), to deal in the Software without restriction, including +//without limitation the rights to use, copy, modify, merge, publish, +//distribute, sublicense, and sell copies of the Software, and to +//permit persons to whom the Software is furnished to do so, subject to +//the following conditions: +// +//The above copyright notice and this permission notice shall be included +//in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, +//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +//THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of the Digital Equipment +//Corporation shall not be used in advertising or otherwise to promote +//the sale, use or other dealings in this Software without prior written +//authorization from Digital Equipment Corporation. +// +// HISTORY +// Log: lk,v +// Revision 1.2 1996/06/18 09:12:47 erik +// use flags correctly, assorted cleanups and consortium fixes +// +// Revision 1.1.6.2 1995/08/18 21:15:16 William_Walker +// Upgrade XKB to Protocol Rev. 0.64 +// [1995/08/18 20:41:46 William_Walker] +// +// Revision 1.1.2.5 1995/08/11 19:35:47 William_Walker +// Sync up with Erik's pool. +// [1995/08/11 18:35:58 William_Walker] +// +// Revision 1.1.2.4 1995/06/27 12:17:28 William_Walker +// Rename to ISO9995 compliant . +// [1995/06/26 20:23:07 William_Walker] +// +// Revision 1.1.2.3 1995/06/09 20:54:36 William_Walker +// Add VT105 layout support and ISO group support +// [1995/06/09 20:40:38 William_Walker] +// +// Revision 1.1.2.2 1995/06/05 19:21:16 William_Walker +// New file. I love keymaps. +// [1995/06/05 18:05:43 William_Walker] +// +// EndLog +// +// @(#)RCSfile: lk,v Revision: 1.2 (DEC) Date: 1996/01/24 12:16:00 +// +xkb_geometry "lk201" { + width = 530; + height = 170; + shape.cornerRadius = 1; + + shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; + shape "RTRN" { + approx = { [0,0],[23,19] }, + { [0,0], [23,0], [23,39], [5,39], [5,19], [0,19] }, + { [3,2], [20,2], [20,36], [8,36], [8,16], [3,16] } + }; + shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; + shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; + shape "MED" { { [28,19] }, { [3,2], [25,16] } }; + shape "CAPS" { { [28,19] }, { [3,2], [18,16] } }; + shape "SPCE" { { [171,19] },{ [3,2], [168,16]} }; + shape "LEDS" { [ 30,15] }; + shape "LED" { [ 5, 2] }; + + section.left= 27; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + section "Function" { top = 20; + row { top = 1; + keys { , , , , , + { , 19 }, , , , , + { , 19 }, , , , + { , 98 }, , , + }; + }; + }; + + section "Editing" { top = 20; left = 350; + row { top = 1; + keys { , { , "LONG" } }; + }; + row { top = 41; + keys { , , }; + }; + row { top = 61; + keys { , , }; + }; + row { top = 81; left = 20; + keys { }; + }; + row { top = 101; + keys { , , }; + }; + }; + + section "Keypad" { top = 60; left = 426; + row { top = 1; + keys { , , , }; + }; + row { top = 21; + keys { , , , }; + }; + row { top = 41; + keys { , , , }; + }; + row { top = 61; + keys { , , , { , "TALL" } }; + }; + row { top = 81; + keys { { , "LONG" }, }; + }; + }; + + section "Alpha" { top = 60; + row { top = 1; left = 15; + keys { , + , , , , , , + , , , , , , + { , "MED" } + }; + }; + row { top = 21; left = 15; + keys { { , "MED" }, + , , , , , , + , , , , , , + { , "RTRN" } + }; + + }; + row { top = 41; + keys { , + { , "CAPS" }, + , , , , , , + , , , , , + }; + }; + row { top = 61; + keys { { , "LONG" }, + , , , , , , + , , , , , + { , "LONG" } + }; + }; + row { top = 81; left = 26; + keys { { , "LONG" }, + { , "SPCE" } + }; + }; + }; + + section.left = 341; + section.top = 3; + + section "Indicators" { + indicator.onColor = "#00ff00"; + indicator.offColor= "#001000"; + indicator.top = 10; + indicator.shape= "LED"; + indicator "Scroll Lock" { left = 9; }; + indicator "Caps Lock" { left = 27; }; + indicator "Compose" { left = 45; }; + indicator "Wait" { left = 63; }; + text.top = 4; + text.color = "black"; + text "HoldScreenLabel" {left = 5; text="Hold\n"; }; + text "CapsLockLabel" {left = 23; text="Lock\n"; }; + text "ComposeLabel" {left = 37; text="Compose\n"; }; + text "WaitLabel" {left = 60; text="Wait\n"; }; + }; +}; + +xkb_geometry "lk401" { + + width = 480; + height = 180; + shape.cornerRadius = 1; + + shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; + shape "RTRN" { + approx = { [0,0],[23,19] }, + { [0,0], [23,0], [23,39], [5,39], [5,19], [0,19] }, + { [3,2], [20,2], [20,36], [8,36], [8,16], [3,16] } + }; + shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; + shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; + shape "MED" { { [28,19] }, { [3,2], [25,16] } }; + shape "CAPS" { { [28,19] }, { [3,2], [18,16] } }; + shape "SPCE" { { [131,19] },{ [3,2], [128,16]} }; + shape "LEDS" { [ 36,15] }; + shape "LED" { [ 5, 2] }; + + section.left= 17; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + text "Logo" {left = 20; top = 10; text="digital\n"; }; + + section "Function" { top = 20; + row { top = 1; + keys { , , , , , + { , 15 }, , , , , + { , 15 }, , , , + { , 75 }, , , + }; + }; + }; + + section "Editing" { top = 20; left = 320; + row { top = 1; + keys { , { , "LONG" } }; + }; + row { top = 41; + keys { , , }; + }; + row { top = 61; + keys { , , }; + }; + row { top = 81; left= 20; + keys { }; + }; + row { top = 101; + keys { , , }; + }; + }; + + section "Keypad" { top = 60; left = 385; + row { top = 1; + keys { , , , }; + }; + row { + top = 21; + keys { , , , }; + }; + row { top = 41; + keys { , , , }; + }; + row { top = 61; + keys { , , , { , "TALL" } }; + }; + row { top = 81; + keys { { , "LONG" }, }; + }; + }; + + section "Alpha" { top = 60; + row { top = 1; left = 15; + keys { , + , , , , , , + , , , , , , + { , "MED" } + }; + }; + row { top = 21; left = 15; + keys { { , "MED" }, + , , , , , , + , , , , , , + { , "RTRN" } + }; + + }; + row { top = 41; + keys { , + { , "CAPS" }, + , , , , , , + , , , , , + }; + }; + row { top = 61; + keys { { , "LONG" }, + , , , , , , + , , , , , + { , "LONG" } + }; + }; + row { top = 81; left = 29; + keys { { , "MED" }, + { , "MED" }, + { , "SPCE" }, + { , "MED" }, + { , "MED" } + }; + }; + }; + + section.left = 69; + section.top = 3; + section "Indicators" { + solid "led_panel" { top = 0; left = 0; + cornerRadius = 1; + shape = "LEDS"; + color = "grey"; + }; + indicator.onColor = "#00ff00"; + indicator.offColor= "#001000"; + indicator.shape = "LED"; + indicator.top = 1; + indicator "Scroll Lock" { left = 3; }; + indicator "Caps Lock" { left = 22; }; + }; + section "IndicatorLabels" { + text.top = 4; + text.color = "black"; + text "ScrollLockLabel" {left = 3; text="Scroll\nLock"; }; + text "CapsLockLabel" {left = 22; text="Caps\nLock"; }; + }; +}; + +xkb_geometry "lk450" { + + width = 480; + height = 180; + shape.cornerRadius = 1; + + shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; + shape "RTRN" { + approx = { [0,0],[23,19] }, + { [0,0], [23,0], [23,39], [5,39], [5,19], [0,19] }, + { [3,2], [20,2], [20,36], [8,36], [8,16], [3,16] } + }; + shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; + shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; + shape "MED" { { [28,19] }, { [3,2], [25,16] } }; + shape "CAPS" { { [28,19] }, { [3,2], [18,16] } }; + shape "SPCE" { { [131,19] },{ [3,2], [128,16]} }; + shape "LEDS" { [ 36,15] }; + shape "LED" { [ 5, 2] }; + + section.left= 17; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + text "Logo" {left = 20; top = 10; text="digital\n"; }; + + section "Function" { top = 20; + row { top = 1; + keys { , , , , , + { , 15 }, , , , , + { , 15 }, , , , + { , 75 }, , , + }; + }; + }; + + section "Editing" { top = 20; left = 320; + row { top = 1; + keys { , { , "LONG" } }; + }; + row { top = 41; + keys { , , }; + }; + row { top = 61; + keys { , , }; + }; + row { top = 81; left= 20; + keys { }; + }; + row { top = 101; + keys { , , }; + }; + }; + + section "Keypad" { top = 60; left = 385; + row { top = 1; + keys { , , , }; + }; + row { + top = 21; + keys { , , , }; + }; + row { top = 41; + keys { , , , }; + }; + row { top = 61; + keys { , , , { , "TALL" } }; + }; + row { top = 81; + keys { { , "LONG" }, }; + }; + }; + + section "Alpha" { top = 60; + row { top = 1; left = 15; + keys { , + , , , , , , + , , , , , , + { , "MED" } + }; + }; + row { top = 21; left = 15; + keys { { , "MED" }, + , , , , , , + , , , , , , + { , "RTRN" } + }; + + }; + row { top = 41; + keys { , + { , "CAPS" }, + , , , , , , + , , , , , + }; + }; + row { top = 61; + keys { { , "LONG" }, + , , , , , , + , , , , , + { , "LONG" } + }; + }; + row { top = 81; left = 29; + keys { { , "MED" }, + { , "MED" }, + { , "SPCE" }, + { , "MED" }, + { , "MED" } + }; + }; + }; + + section.left = 69; + section.top = 3; + section "Indicators" { + solid "led_panel" { top = 0; left = 0; + cornerRadius = 1; + shape = "LEDS"; + color = "grey"; + }; + indicator.onColor = "#00ff00"; + indicator.offColor= "#001000"; + indicator.shape = "LED"; + indicator.top = 1; + indicator "Scroll Lock" { left = 3; }; + indicator "Caps Lock" { left = 22; }; + }; + section "IndicatorLabels" { + text.top = 4; + text.color = "black"; + text "ScrollLockLabel" {left = 3; text="Scroll\nLock"; }; + text "CapsLockLabel" {left = 22; text="Caps\nLock"; }; + }; +}; + +xkb_geometry "lk401bj" +{ + width = 480; + height = 180; + shape.cornerRadius = 1; + + shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; + shape "RTRN" { + approx = { [0,0],[23,19] }, + { [0,0], [23,0], [23,39], [5,39], [5,19], [0,19] }, + { [3,2], [20,2], [20,36], [8,36], [8,16], [3,16] } + }; + shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; + shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; + shape "MED" { { [28,19] }, { [3,2], [25,16] } }; + shape "CAPS" { { [28,19] }, { [3,2], [18,16] } }; + shape "SPCE" { { [131,19] },{ [3,2], [128,16]} }; + shape "LEDS" { [ 30,15] }; + shape "LED" { [ 5, 2] }; + + section.left= 17; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + text "Logo" {left = 20; top = 10; text="digital\n"; }; + + section "Function" { top = 20; + row { top = 1; + keys { , , , , , + { , 15 }, , , , , + { , 15 }, , , , + { , 75 }, , , + }; + }; + }; + + section "Editing" { top = 20; left = 320; + row { top = 1; + keys { , { , "LONG" } }; + }; + row { top = 41; + keys { , , }; + }; + row { top = 61; + keys { , , }; + }; + row { top = 81; left = 20; + keys { }; + }; + row { top = 101; + keys { , , }; + }; + }; + + section "Keypad" { top = 60; left = 385; + row { top = 1; + keys { , , , }; + }; + row { top = 21; + keys { , , , }; + }; + row { top = 41; + keys { , , , }; + }; + row { top = 61; + keys { , , , { , "TALL" } }; + }; + row { top = 81; + keys { { , "LONG" }, }; + }; + }; + + section "Alpha" { top = 60; + row { top = 1; left = 15; + keys { , + , , , , , , + , , , , , , + { , "MED" } + }; + }; + row { top = 21; left = 15; + keys { { , "MED" }, + , , , , , , + , , , , , , + { , "RTRN" } + }; + }; + row { top = 41; + keys { , + { , "CAPS" }, + , , , , , , + , , , , , + }; + }; + row { top = 61; + keys { { , "LONG" }, + , , , , , , + , , , , , + { , "LONG" } + }; + }; + row { top = 81; left = 29; + keys { { , "MED" }, + { , "MED" }, + { , "SPCE" }, + { , "MED" }, + { , "MED" } + }; + }; + }; + + section.left = 69; + section.top = 3; + + section "Indicators" { + solid "led_panel" { top = 0; left = 0; + cornerRadius = 1; + shape = "LEDS"; + color = "grey"; + }; + indicator.onColor = "#00ff00"; + indicator.offColor= "#001000"; + indicator.top = 1; + indicator.shape= "LED"; + indicator "Scroll Lock" { left = 3; }; + indicator "Caps Lock" { left = 22; }; + text.top = 4; + text.color = "black"; + text "ScrollLockLabel" {left = 3; text="Scroll\nLock"; }; + text "CapsLockLabel" {left = 19; text="Caps\nLock"; }; + }; +}; + +xkb_geometry "lk401jj" { + + width = 460; + height = 180; + shape.cornerRadius = 1; + + shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; + shape "RTRN" { + approx = { [0,0],[28,23] }, + { [0,0], [28,0], [28,39], [5,39], [5,19], [0,19] }, + { [3,2], [25,2], [25,36], [8,36], [8,16], [3,16] } + }; + shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; + shape "LONG1" { { [32,19] }, { [3,2], [29,16] } }; + shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; + shape "MED" { { [28,19] }, { [3,2], [25,16] } }; + shape "MED1" { { [23,19] }, { [3,2], [20,16] } }; + shape "CTRL" { { [43,19] }, { [3,2], [38,16] } }; + shape "SPCE" { { [55,19] },{ [3,2], [53,16]} }; + shape "LEDS" { [ 56,15] }; + shape "LED" { [ 5, 2] }; + + section.left = 5; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + text "Logo" {left = 7; top = 10; text="digital\n"; }; + + section "Function" { top = 40; + row { top = 1; + keys { , , , , , + { , 18 }, , , , , + { , 18 }, , , , + { , 73 }, , , + }; + }; + }; + + section "Editing" { top = 40; left = 313; + row { top = 1; + keys { , { , "LONG" } }; + }; + row { top = 31; + keys { , , }; + }; + row { top = 51; + keys { , , }; + }; + row { top = 71; left= 20; + keys { }; + }; + row { top = 91; + keys { , , }; + }; + }; + + section "Keypad" { top = 70; left = 377; + row { top = 1; + keys { , , , }; + }; + row { top = 21; + keys { , , , }; + }; + row { top = 41; + keys { , , , }; + }; + row { top = 61; + keys { , , , { , "TALL" } }; + }; + row { top = 81; + keys { { , "LONG" }, }; + }; + }; + + section "Alpha" { top = 70; + row { top = 1; left = 7; + keys { { , "MED1" }, + , , , , , , + , , , , , , + , { , "MED1" } + }; + }; + row { top = 21; left = 7; + keys { { , "LONG1" }, + , , , , , , + , , , , , , + { , "RTRN" } + }; + }; + row { top = 41; + keys { { , "CTRL" }, + , , , , , , + , , , , , + }; + }; + row { top = 61; + keys { , { , "LONG1" }, + , , , , , + , , , , , + , { , "MED" } + }; + }; + row { top = 81; left = 7; + keys { { , "LONG" }, + { , "LONG" }, + { , "LONG" }, + { , "SPCE" }, + { , "LONG" }, + { , "LONG" }, + , + }; + }; + }; + + section.left = 315; + section.top = 20; + + section "Indicators" { + solid "led_panel" { top = 0; left = 0; + cornerRadius = 1; + shape = "LEDS"; + color = "grey"; + }; + indicator.onColor = "#00ff00"; + indicator.offColor= "#001000"; + indicator.top = 11; + indicator.shape= "LED"; + indicator "Scroll Lock" { left = 6; }; + indicator "Caps Lock" { left = 26; }; + text.top = 4; + text.color = "black"; + text "ScrollLockLabel" {left = 3; text="Scroll\nLock"; }; + text "CapsLockLabel" {left = 22; text="Caps\nLock"; }; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/digital_vndr/pc b/squashfs-root/usr/share/X11/xkb/geometry/digital_vndr/pc new file mode 100644 index 0000000..aaceeba --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/digital_vndr/pc @@ -0,0 +1,349 @@ +// +//Copyright (c) 1996 Digital Equipment Corporation +// +//Permission is hereby granted, free of charge, to any person obtaining +//a copy of this software and associated documentation files (the +//"Software"), to deal in the Software without restriction, including +//without limitation the rights to use, copy, modify, merge, publish, +//distribute, sublicense, and sell copies of the Software, and to +//permit persons to whom the Software is furnished to do so, subject to +//the following conditions: +// +//The above copyright notice and this permission notice shall be included +//in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, +//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +//THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of the Digital Equipment +//Corporation shall not be used in advertising or otherwise to promote +//the sale, use or other dealings in this Software without prior written +//authorization from Digital Equipment Corporation. +// +// HISTORY +// Log: pc,v +// Revision 1.2 1996/06/18 09:12:50 erik +// use flags correctly, assorted cleanups and consortium fixes +// +// Revision 1.1.6.2 1995/08/18 21:15:18 William_Walker +// Upgrade XKB to Protocol Rev. 0.64 +// [1995/08/18 20:41:49 William_Walker] +// +// Revision 1.1.2.4 1995/08/11 19:35:48 William_Walker +// Sync up with Erik's pool. +// [1995/08/11 18:36:03 William_Walker] +// +// Revision 1.1.2.3 1995/06/27 12:17:29 William_Walker +// Rename to ISO9995 compliant . +// [1995/06/26 20:23:10 William_Walker] +// +// Revision 1.1.2.2 1995/06/05 19:21:19 William_Walker +// New file. I love keymaps. +// [1995/06/05 18:05:51 William_Walker] +// +// EndLog +// +// @(#)RCSfile: pc,v Revision: 1.2 (DEC) Date: 1996/02/02 14:40:25 +// +partial xkb_geometry "common" { + width = 480; + height = 200; + + shape.cornerRadius = 1; + shape "NORM" { primary = { [18,19] }, { [3,2], [15,16] } }; + shape "KP0" { primary = { [37,19] }, { [3,2], [34,16] } }; + shape "KPAD" { primary = { [18,39] }, { [3,2], [15,36] } }; + shape "LEDS" { [78,22] }; + shape "LED" { [5,2] }; + + text.color = "black"; + section.left = 17; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + section "Function" { top = 40; + row { top = 1; + keys { , + { , 20 }, , , , + { , 10 }, , , , + { , 10 }, , , + }; + }; + }; + + section "Editing" { top = 40; left = 308; + row { top = 1; + keys { , , }; + }; + row { top = 41; + keys { , , }; + }; + row { top = 61; + keys { , , }; + }; + row { top = 101; left = 20; + keys { }; + }; + row { top = 121; + keys { , , }; + }; + }; + + section "Keypad" { top = 80; left = 374; + row { top = 1; + keys { , , , }; + }; + row { top = 21; + keys { , , , { , "KPAD" } }; + }; + row { top = 41; + keys { , , }; + }; + row { top = 61; + keys { , , , { , "KPAD" } }; + }; + row { top = 81; + keys { { , "KP0" }, }; + }; + }; +}; + +partial xkb_geometry "leds_on_keys" { + section.top = 40; + section.left = 17; + section "LedPanel" { + indicator.onColor = "#00ff00"; + indicator.offColor = "#001000"; + indicator.shape = "LED"; + indicator "Scroll Lock" { left = 317; top = 5; }; + indicator "Num Lock" { left = 364; top = 45; }; + indicator "Caps Lock" { left = 10; top = 85; }; + }; + + section.left = 375; + section.top = 40; + section "LogoPanel" { + solid "logo_panel" { top = 0; left = 0; + shape = "LEDS"; + color = "grey"; + }; + text "Logo" {left = 28; top = 10; text="digital\n"; }; + }; +}; + +partial xkb_geometry "leds_alone" { + section.left = 375; + section.top = 40; + section "Indicators" { + solid "led_panel" { top = 0; left = 0; + shape = "LEDS"; + color = "grey"; + }; + indicator.top = 16; + indicator.onColor = "#00ff00"; + indicator.offColor = "#001000"; + indicator.shape = "LED"; + indicator "Num Lock" { left = 3; }; + indicator "Caps Lock" { left = 26; }; + indicator "Scroll Lock" { left = 50; }; + text "Logo" {left = 2; top = 3; text="digital\n"; }; + }; + section "IndicatorLabels" { + text.top = 11; + text "NumLockLabel" {left = 10; text="Num\nLock"; }; + text "CapsLockLabel" {left = 33; text="Caps\nLock"; }; + text "ScrollLockLabel" {left = 58; text="Scroll\nLock"; }; + }; +}; + +xkb_geometry "pc101" { + include "digital_vndr/pc(common)" + + shape.cornerRadius = 1; + shape "BKSP" { primary = { [36,19] }, { [3,2], [33,16] } }; + shape "TABK" { primary = { [27,19] }, { [3,2], [24,16] } }; + shape "RTRN" { primary = { [41,19] }, { [3,2], [38,16] } }; + shape "CAPS" { primary = { [32,19] }, { [3,2], [29,16] } }; + shape "LFSH" { primary = { [41,19] }, { [3,2], [38,16] } }; + shape "RTSH" { primary = { [51,19] }, { [3,2], [49,16] } }; + shape "MODK" { primary = { [27,19] }, { [3,2], [24,16] } }; + shape "BKSL" { primary = { [27,19] }, { [3,2], [24,16] } }; + shape "SPCE" { primary = { [132,19] },{ [3,2], [129,16]} }; + + section.left = 17; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + section "Alpha" { top = 80; + row { top = 1; + keys { , + , , , , , , + , , , , , , + { , "BKSP" } + }; + }; + row { top = 21; + keys { { , "TABK" }, + , , , , , , + , , , , , , + { , "BKSL" } + }; + + }; + row { top = 41; + keys { { , "CAPS" }, + , , , , , , + , , , , , + { , "RTRN" } + }; + }; + row { top = 61; + keys { { , "LFSH" }, + , , , , , , + , , , , + { , "RTSH" } + }; + }; + row { top = 81; + key.shape = "MODK"; + keys { , + { , 20 }, + { , "SPCE" }, + , + { , 21 } + }; + }; + }; +}; + +xkb_geometry "pc102" { + include "digital_vndr/pc(common)" + + shape.cornerRadius = 1; + shape "BKSP" { primary = { [36,19] }, { [3,2], [33,16] } }; + shape "TABK" { primary = { [27,19] }, { [3,2], [24,16] } }; + shape "RTRN" { + approx = { [0,0],[28,19] }, + { [0,0], [27,0], [27,39], [5,39], [5,19], [0,19] }, + { [3,2], [24,2], [24,36], [8,36], [8,16], [3,16] } + }; + shape "CAPS" { primary = { [32,19] }, { [3,2], [29,16] } }; + shape "LFSH" { primary = { [22,19] }, { [3,2], [19,16] } }; + shape "RTSH" { primary = { [51,19] }, { [3,2], [49,16] } }; + shape "MODK" { primary = { [27,19] }, { [3,2], [24,16] } }; + shape "BKSL" { primary = { [27,19] }, { [3,2], [24,16] } }; + shape "SPCE" { primary = { [132,19] },{ [3,2], [129,16]} }; + + section.left = 17; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + section "Alpha" { top = 80; + row { top = 1; + keys { , + , , , , , , + , , , , , , + { , "BKSP" } + }; + }; + row { top = 21; + keys { { , "TABK" }, + , , , , , , + , , , , , , + { , "RTRN" } + }; + + }; + row { top = 41; + keys { { , "CAPS" }, + , , , , , , + , , , , , + }; + }; + row { top = 61; + keys { { , "LFSH" }, + , , , , , , + , , , , , + { , "RTSH" } + }; + }; + row { top = 81; + key.shape = "MODK"; + keys { , + { , 20 }, + { , "SPCE" }, + , + { , 21 } + }; + }; + }; +}; + +xkb_geometry "pcxaj" { + include "digital_vndr/pc(common)" + + shape.cornerRadius = 1; + shape "BKSP" { primary = { [36,19] }, { [3,2], [33,16] } }; + shape "TABK" { primary = { [27,19] }, { [3,2], [24,16] } }; + shape "RTRN" { primary = { [22,19] }, { [3,2], [19,16] } }; + shape "CAPS" { primary = { [32,19] }, { [3,2], [29,16] } }; + shape "LFSH" { primary = { [41,19] }, { [3,2], [38,16] } }; + shape "RTSH" { primary = { [32,19] }, { [3,2], [29,16] } }; + shape "MODK" { primary = { [27,19] }, { [3,2], [24,16] } }; + shape "BKSL" { primary = { [27,19] }, { [3,2], [24,16] } }; + shape "SPCE" { primary = { [114,19]}, { [3,2], [111,16]} }; + + section.left = 17; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + section "Alpha" { top = 80; + row { top = 1; + keys { , + , , , , , , + , , , , , , + { , "BKSP" } + }; + }; + row { top = 21; + keys { { , "TABK" }, + , , , , , , + , , , , , , + { , "BKSL" } + }; + }; + row { top = 41; + keys { { , "CAPS" }, + , , , , , , + , , , , , , + { , "RTRN" } + }; + }; + row { top = 61; + keys { { , "LFSH" }, + , , , , , , + , , , , , + { , "RTSH" } + }; + }; + row { top = 81; + key.shape = "MODK"; + keys { , , + { , "NORM" }, + { , "SPCE" }, + { , "NORM" }, + { , "NORM" }, + , + }; + }; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/digital_vndr/unix b/squashfs-root/usr/share/X11/xkb/geometry/digital_vndr/unix new file mode 100644 index 0000000..f3f180c --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/digital_vndr/unix @@ -0,0 +1,227 @@ +// +//Copyright (c) 1996 Digital Equipment Corporation +// +//Permission is hereby granted, free of charge, to any person obtaining +//a copy of this software and associated documentation files (the +//"Software"), to deal in the Software without restriction, including +//without limitation the rights to use, copy, modify, merge, publish, +//distribute, sublicense, and sell copies of the Software, and to +//permit persons to whom the Software is furnished to do so, subject to +//the following conditions: +// +//The above copyright notice and this permission notice shall be included +//in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, +//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +//THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of the Digital Equipment +//Corporation shall not be used in advertising or otherwise to promote +//the sale, use or other dealings in this Software without prior written +//authorization from Digital Equipment Corporation. +// +// HISTORY +// Log: unix,v +// Revision 1.2 1996/06/18 09:12:53 erik +// use flags correctly, assorted cleanups and consortium fixes +// +// Revision 1.1.2.3 1995/06/27 12:17:30 William_Walker +// Rename to ISO9995 compliant . +// [1995/06/26 20:23:12 William_Walker] +// +// Revision 1.1.2.2 1995/06/05 19:21:23 William_Walker +// New file. I love keymaps. +// [1995/06/05 18:05:56 William_Walker] +// +// EndLog +// +// @(#)RCSfile: unix,v Revision: 1.2 (DEC) Date: 1996/01/24 12:16: +// +xkb_geometry "unix" { + + width = 340; + height = 160; + shape.cornerRadius = 1; + + shape "NORM" { primary = { [18,19] }, { [3,2], [15,16] } }; + shape "AE00" { primary = { [28,19] }, { [3,2], [25,16] } }; + shape "BKSP" { primary = { [46,19] }, { [3,2], [43,16] } }; + shape "TABK" { primary = { [37,19] }, { [3,2], [34,16] } }; + shape "CTRL" { primary = { [46,19] }, { [3,2], [43,16] } }; + shape "RTRN" { primary = { [46,19] }, { [3,2], [43,16] } }; + shape "SHFT" { primary = { [56,19] }, { [3,2], [53,16] } }; + shape "MODK" { primary = { [37,19] }, { [3,2], [34,16] } }; + shape "SPCE" { primary = { [132,19] },{ [3,2], [129,16]} }; + + section.left= 17; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + text.color = "black"; + text "Logo" {left = 20; top = 10; text="digital\n"; }; + + section "Function" { top = 30; + row { top = 1; + keys { , , , , , + { , 20 }, , , , , + { , 20 }, , , + }; + }; + }; + + section "Alpha" { top = 50; + row { top = 1; + keys { { , "AE00" }, + , , , , , , + , , , , , , + { , "BKSP" } + }; + }; + row { top = 21; + keys { { , "TABK" }, + , , , , , , + , , , , , , + , + }; + + }; + row { top = 41; left = -4; + keys { { , "CTRL" }, + , , , , , , + , , , , , + { , "RTRN" } + }; + }; + row { top = 61; left = -4; + keys { { , "SHFT" }, + , , , , , , + , , , , + { , "SHFT" } + }; + }; + solid "ExtendKey" { top = 81; left= 1; + shape= "NORM"; + color= "grey20"; + }; + text.top = 89; + text.color = "black"; + text "ExtendLabel" {left = 6; text="Ext\nend"; }; + row { top = 81; left = 19; + key.shape = "MODK"; + keys { { , "NORM" }, , + { , "SPCE" }, + , + }; + }; + }; +}; + +xkb_geometry "lk421jj" { + + width = 315; + height = 170; + shape.cornerRadius = 1; + + shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; + shape "RTRN" { + approx = { [0,0],[28,23] }, + { [0,0], [28,0], [28,39], [5,39], [5,19], [0,19] }, + { [3,2], [25,2], [25,36], [8,36], [8,16], [3,16] } + }; + shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; + shape "LONG1" { { [32,19] }, { [3,2], [29,16] } }; + shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; + shape "MED" { { [23,19] }, { [3,2], [20,16] } }; + shape "CTRL" { { [43,19] }, { [3,2], [38,16] } }; + shape "SPCE" { { [55,19] },{ [3,2], [53,16]} }; + shape "LEDS" { [ 56,15] }; + shape "LED" { [ 5, 2] }; + + section.left = 5; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + text "Logo" {left = 7; top = 10; text="digital\n"; }; + + section "Function" { top = 45; + row { top = 1; left = 7; + keys { , , , , , + { , 18 }, , , , + }; + }; + }; + + section "Editing" { top = 45; left= 230; + row { top = 1; + keys { , , , }; + }; + }; + + section "Alpha" { top = 65; + row { top = 1; left = 7; + keys { { , "MED" }, + , , , , , , + , , , , , , + , { , "MED" } + }; + }; + row { top = 21; left = 7; + keys { { , "LONG1" }, + , , , , , , + , , , , , , + { , "RTRN" } + }; + }; + row { top = 41; + keys { { , "CTRL" }, + , , , , , , + , , , , , + }; + }; + row { top = 61; + keys { , { , "LONG1" }, + , , , , , + , , , , , + , { , "LONG1" } + }; + }; + row { top = 81; left = 7; + keys { , , + { , "LONG" }, + { , "LONG" }, + { , "SPCE" }, + { , "LONG" }, + { , "LONG" }, + , + }; + }; + }; + + section.left = 233; + section.top = 20; + + section "Indicators" { + solid "led_panel" { top = 0; left = 0; + cornerRadius = 1; + shape = "LEDS"; + color = "grey"; + }; + indicator.onColor = "#00ff00"; + indicator.offColor= "#001000"; + indicator.top = 11; + indicator.shape= "LED"; + indicator "Scroll Lock" { left = 6; }; + indicator "Caps Lock" { left = 26; }; + text.top = 3; + text.color = "black"; + text "ScrollLockLabel" {left = 3; text="Scroll\nLock"; }; + text "CapsLockLabel" {left = 22; text="Caps\nLock"; }; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/everex b/squashfs-root/usr/share/X11/xkb/geometry/everex new file mode 100644 index 0000000..c175b17 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/everex @@ -0,0 +1,170 @@ +default xkb_geometry "STEPnote" { + + description= "Everex STEPnote"; + width= 281; + height= 150; + + shape.cornerRadius= 1; + + shape "NORM" { + { [17,17] }, + { [ 2, 1], [ 15, 15 ] } + }; + shape "NARR" { + { [ 15, 17 ] }, + { [ 2, 1 ], [ 13, 15 ] } + }; + shape "FKEY" { + { [ 15.1, 15.5 ] }, + { [ 1, 1 ], [ 14.1, 14.5 ] } + }; + shape "ESC" { + { [ 16.4, 15.5 ] }, + { [ 1, 1 ], [ 14.1, 14.5 ] } + }; + shape "WIDE" { // backspace, tab and Fn + { [ 25, 17 ] }, + { [ 2, 1 ], [ 23, 15 ] } + }; + shape "RTRN" { + { [ 27.5, 17 ] }, + { [ 2, 1 ], [ 25.5, 15 ] } + }; + shape "CAPS" { + { [ 30, 17 ] }, + { [ 2, 1 ], [ 28, 15 ] } + }; + shape "LFSH" { + { [ 38.5, 17 ] }, + { [ 2, 1 ], [ 36.5, 15 ] } + }; + shape "RTSH" { + { [ 21, 17 ] }, + { [ 2, 1 ], [ 19, 15 ] } + }; + shape "SPCE" { + { [ 88.8, 17 ] }, + { [ 2, 1 ], [ 86.8, 15 ] } + }; + shape "WELL" { + { [ 269, 105 ] } + }; + shape "LED" { + cornerRadius= 1.5, + { [ 3, 10 ] } + }; + + section.left= 6; + row.left= 1; + key.shape= "NORM"; + key.gap= 0.5; + + key.color= "grey20"; + labelColor= "white"; + baseColor= "grey20"; + + indicator.top= 20; + indicator.shape= "LED"; + indicator.onColor= "green"; + indicator.offColor= "green30"; + + indicator "Power" { left= 40; }; + indicator "Battery" { left=101; }; + indicator "Suspend" { left=112; }; + indicator "HardDrive" { left=123; }; + indicator "Floppy" { left=134; }; + indicator "KeyPad" { left=145; }; + indicator "Num Lock" { left=156; }; + indicator "Caps Lock" { left=167; }; + indicator "Scroll Lock" { left=178; }; + + solid "KeyWell" { + top= 35; + left= 6; + shape= "WELL"; + color= "grey10"; + }; + section "Whole" { + top= 35; + row { + top= 0.5; + key.color= "grey30"; + key.shape= "FKEY"; + keys { + { , "ESC" }, + , , , , , , + , , , , , , + , , , + }; + }; + row { + top= 16.5; + keys { + { , "NARR" }, + , , , , , , + , , , , , , + { , shape="WIDE", color="grey30" }, + { , shape="NARR", color="grey30" } + }; + }; + row { + top= 34; + keys { + { , shape="WIDE", color="grey30" }, + , , , , , , + , , , , , , + { , "NARR" }, + { , shape="NARR", color="grey30" } + }; + }; + row { + top= 51.5; + keys { + { , shape="CAPS", color="grey30" }, + , , , , , + , , , , , + , + { , shape="RTRN", color="grey30" }, + { , shape="NARR", color="grey30" } + }; + }; + row { + top= 69; + keys { + { , shape="LFSH", color="grey30" }, + , , , , , + , , , , , + { , shape="RTSH", color="grey30" }, + { , shape="NARR", color="grey30" }, + { , shape="NARR", color="grey30" } + }; + }; + row { + top= 86.5; + key.color= "grey30"; + keys { + { , "WIDE" }, + , , + { , shape="SPCE", 18, color="grey20" }, + , , , + { , "NARR" }, { , "NARR" }, + { , "NARR" } + }; + }; + solid "FakeKey" { + top= 86.5; + left= 62.1; + shape= "NORM"; + color= "grey20"; + }; + overlay "KPAD" { + =, =, =, =, + =, =, =, =, + =, =, =, =, + =, =, = + }; + }; // End of "Whole" section + + alias = ; + alias = ; +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/fujitsu b/squashfs-root/usr/share/X11/xkb/geometry/fujitsu new file mode 100644 index 0000000..5f5ff58 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/fujitsu @@ -0,0 +1,314 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +default xkb_geometry "138" { + + // This is an approximate layout for a (US/ASCII) Fujitsu keyboard. + + description= "Fujitsu English keyboard"; + + width= 480; + height= 215; + + shape "EDGE" { cornerRadius= 2, { [ 480, 215 ] } }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "TABK" { { [ 27,18] }, { [2,1], [ 25,17] } }; + shape "RTRN" { + approx = { [ 0, 0], [28,37] }, + { [ 0, 0], [28, 0], [28,37], + [ 5,37], [ 5,19], [ 0,19] }, + { [ 1, 1], [26, 1], [26,36], + [ 7,36], [ 7,18], [ 1,18] } + }; + shape "LFSH" { { [ 41,18] }, { [2,1], [ 39,17] } }; + shape "RTSH" { { [ 33,18] }, { [2,1], [ 31,17] } }; + shape "LCTL" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "SPCE" { { [151,18] }, { [2,1], [149,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; + shape "EXEC" { { [ 57,18] }, { [2,1], [ 55,17] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 15; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + + section "Alpha" { + top= 28; + row { + top= 1; + keys { + , { , 6 }, + { , 30 }, , , , + { , 6 }, , , , + { , 6 }, , , , + { , 68 }, , , + }; + }; + row { + top= 20; + keys { + , { , 6 }, + { , 30 }, , , , + { , 6 }, , , , + { , 6 }, , , , + { , 6 }, , , + { , 6 }, , , + }; + }; + row { + top= 39; + left= 316; + keys { + , , + }; + }; + row { + top= 54; + keys { + , { , 6 }, + , , , , , + , , , , , + , , , , + { , 68 }, , , + + }; + }; + row { + top= 58; + left= 316; + keys { + , , + }; + }; + row { + top= 73; + keys { , + { , 6, "TABK" }, + , , , , , + , , , , , + , , { , "RTRN" }, + { , 68 }, , , + }; + }; + row { + top= 92; + keys { , + { , 6, "LCTL" }, + , , , , , + , , , , , + , , + { , 49 }, + { , 25 }, , , + }; + }; + row { + top= 102; + left= 316; + keys { , { , 19 } + }; + }; + row { + top= 111; + keys { , + { , 6 , "LFSH" }, + , , , , , + , , , , , + , { , "RTSH" }, + { , 25 }, + { , 25 }, , , { , "KPEN" } + }; + }; + row { + top= 130; + keys { , { , 6 }, + , , + { , "SPCE" }, + , , , , + { , 68, "KP0" }, + }; + }; + row { + top= 149; + left= 316; + keys { + { , "EXEC" } + }; + }; + }; // End of "Alpha" section +}; + +xkb_geometry "140" { + + // This is an approximate layout for a Fujitsu Japanese keyboard. + + description= "Fujitsu Japanese keyboard"; + + width= 480; + height= 215; + + shape "EDGE" { cornerRadius= 2, { [ 480, 215 ] } }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "TABK" { { [ 27,18] }, { [2,1], [ 25,17] } }; + shape "RTRN" { + approx = { [ 0, 0], [28,37] }, + { [ 0, 0], [28, 0], [28,37], + [ 5,37], [ 5,19], [ 0,19] }, + { [ 1, 1], [26, 1], [26,36], + [ 7,36], [ 7,18], [ 1,18] } + }; + shape "LFSH" { { [ 41,18] }, { [2,1], [ 39,17] } }; + shape "RTSH" { { [ 33,18] }, { [2,1], [ 31,17] } }; + shape "LCTL" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "SPCE" { { [113,18] }, { [2,1], [111,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; + shape "HNKN" { { [ 23,18] }, { [2,1], [ 21,17] } }; + shape "EXEC" { { [ 57,18] }, { [2,1], [ 55,17] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 15; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + + section "Alpha" { + top= 28; + row { + top= 1; + keys { + , { , 6 }, + { , 30 }, , , , + { , 6 }, , , , + { , 6 }, , , , + { , 68 }, , , + }; + }; + row { + top= 20; + keys { + , { , 6 }, + { , 30 }, , , , + { , 6 }, , , , + { , 6 }, , , , + { , 6 }, , , + { , 6 }, , , + }; + }; + row { + top= 39; + left= 316; + keys { + , , + }; + }; + row { + top= 54; + keys { + , { , 6 }, + , , , , , + , , , , , + , , , , + { , 68 }, , , + + }; + }; + row { + top= 58; + left= 316; + keys { + , , + }; + }; + row { + top= 73; + keys { , + { , 6, "TABK" }, + , , , , , + , , , , , + , , { , "RTRN" }, + { , 68 }, , , + }; + }; + row { + top= 92; + keys { , + { , 6, "LCTL" }, + , , , , , + , , , , , + , , + { , 49 }, + { , 25 }, , , + }; + }; + row { + top= 102; + left= 316; + keys { , { , 19 } + }; + }; + row { + top= 111; + keys { , + { , 6 , "LFSH" }, + , , , , , + , , , , , + , { , "RTSH" }, + { , 25 }, + { , 25 }, , , { , "KPEN" } + }; + }; + row { + top= 130; + keys { , { , 6 }, + , , , + { , "SPCE" }, + , , , , , + { , 68, "KP0" }, + }; + }; + row { + top= 149; + left= 134; + keys { + { , "HNKN" }, { , "HNKN" }, + { , 132, "EXEC" } + }; + }; + }; // End of "Alpha" section +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/hhk b/squashfs-root/usr/share/X11/xkb/geometry/hhk new file mode 100644 index 0000000..793f7c0 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/hhk @@ -0,0 +1,266 @@ +// +// XKB geometry for the Happy Hacking (Lite). +// Different variants correspond to different switch +// settings on the HHK. +// +// Copyright (c) Doug Palmer , 2002 +// +//Permission is hereby granted, free of charge, to any person obtaining a copy +//of this software and associated documentation files (the "Software"), to deal +//in the Software without restriction, including without limitation the rights +//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +//copies of the Software, and to permit persons to whom the Software is +//furnished to do so, subject to the following conditions: +// +//The above copyright notice and this permission notice shall be included in +//all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +//THE SOFTWARE. + +// SW = 100 Default layout with windows keys +default xkb_geometry "win1" { + include "hhk(basic)" + + key.gap = 1; + section "Space" { + top = 86; + left = 30; + row { + top = 1; + keys { + , + { , "DIAM" }, + { , "SPCE" }, + { , "DIAM" }, + + }; + }; + }; +}; + +// SW = 101 Layout with windows and alt keys swapped +xkb_geometry "win2" { + include "hhk(basic)" + + key.gap = 1; + section "Space" { + top = 86; + left = 30; + row { + top = 1; + keys { + , + { , "DIAM" }, + { , "SPCE" }, + { , "DIAM" }, + + }; + }; + }; +}; + +// SW = 110 Default layout with windows keys, and left diamond = Fn key +xkb_geometry "win3" { + include "hhk(basic)" + + key.gap = 1; + section "Space" { + top = 86; + left = 30; + row { + top = 1; + keys { + , + { , "DIAM" }, + { , "SPCE" }, + { , "DIAM" }, + + }; + }; + }; +}; + +// SW = 101 Layout with windows and alt keys swapped and left-Alt = Fn key +xkb_geometry "win4" { + include "hhk(basic)" + + key.gap = 1; + section "Space" { + top = 86; + left = 30; + row { + top = 1; + keys { + , + { , "DIAM" }, + { , "SPCE" }, + { , "DIAM" }, + + }; + }; + }; +}; + +// SW = 000 Layout with Muhenkan and Henkan keys +xkb_geometry "jp1" { + include "hhk(basic)" + + key.gap = 1; + section "Space" { + top = 86; + left = 30; + row { + top = 1; + keys { + , + { , "DIAM" }, + { , "SPCE" }, + { , "DIAM" }, + + }; + }; + }; +}; + +// SW = 001 Layout with Muhenkan and Henkan keys swapped with Alt +xkb_geometry "jp2" { + include "hhk(basic)" + + key.gap = 1; + section "Space" { + top = 86; + left = 30; + row { + top = 1; + keys { + , + { , "DIAM" }, + { , "SPCE" }, + { , "DIAM" }, + + }; + }; + }; +}; + +// SW = 010 Layout with Henkan key and left-diamond as Fn +xkb_geometry "jp3" { + include "hhk(basic)" + + key.gap = 1; + section "Space" { + top = 86; + left = 30; + row { + top = 1; + keys { + , + { , "DIAM" }, + { , "SPCE" }, + { , "DIAM" }, + + }; + }; + }; +}; + +// SW = 001 Layout with Henkan key swapped with Alt and left-Alt as Fn +xkb_geometry "jp4" { + include "hhk(basic)" + + key.gap = 1; + section "Space" { + top = 86; + left = 30; + row { + top = 1; + keys { + , + { , "DIAM" }, + { , "SPCE" }, + { , "DIAM" }, + + }; + }; + }; +}; + +// Basic layout for non-switchable keys +partial hidden xkb_geometry "basic" { + + description = "Happy Hacking"; + width = 290; + height = 106; + + shape.cornerRadius = 1; + shape "NORM" { { [18, 18] }, { [2, 1], [14, 14] } }; + shape "BKSP" { { [28, 18] }, { [2, 1], [24, 14] } }; + shape "TABK" { { [28, 18] }, { [2, 1], [24, 14] } }; + shape "CTRL" { { [32, 18] }, { [2, 1], [28, 14] } }; + shape "RTRN" { { [42, 18] }, { [2, 1], [38, 14] } }; + shape "LFSH" { { [42, 18] }, { [2, 1], [38, 14] } }; + shape "RTSH" { { [32, 18] }, { [2, 1], [28, 14] } }; + shape "DIAM" { { [28, 18] }, { [2, 1], [24, 14] } }; + shape "SPCE" { { [114, 18] }, { [2, 1], [110, 14] } }; + + text.color = "black"; + text "PFULabel" { left = 16; top = 2; fontsize = 20; text = "PFU"; }; + text "HHKLabel" { left = 254; top = 90; text = "Happy Hacking\nKeyboard"; }; + + section.left = 1; + row.left = 1; + key.shape = "NORM"; + key.gap = 1; + + section "Alphanumeric" { + top = 10; + row { + top = 1; + keys { + , + , , , , , + , , , , , + , , + , + }; + }; + row { + top = 20; + keys { + { , "TABK" }, + , , , , , + , , , , , + , , + { , "BKSP" } + }; + }; + row { + top = 39; + keys { + { , "CTRL" }, + , , , , , + , , , , , + , + { , "RTRN" } + }; + }; + row { + top = 58; + keys { + { , "LFSH" }, + , , , , , + , , , , , + { , "RTSH" }, + { , color = "grey20" } + }; + }; + }; + + alias = ; +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/hp b/squashfs-root/usr/share/X11/xkb/geometry/hp new file mode 100644 index 0000000..caab94f --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/hp @@ -0,0 +1,696 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// + +default xkb_geometry "pc101" { + + description= "HP PC101"; + width= 470; + height= 210; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "BKSP" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,17] } }; + shape "CAPS" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "SPCE" { { [132,18] }, { [2,1], [130,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,36] } }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 52; + row { + top= 1; + keys { { , color="grey20" }, + { , 18 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 91; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , { , "RTRN", color="grey20" } + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , 20 }, + { , "SPCE", color="white" }, + , { , 20 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 91; + left= 310; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 91; + left= 375; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "default" geometry + +xkb_geometry "hil" { + + description= "HP hil"; + width= 455; + height= 170; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "BKSP" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "TABK" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "BKSL" { { [ 24,18] }, { [2,1], [ 22,17] } }; + shape "RTRN" { { [ 38,18] }, { [2,1], [ 36,17] } }; + shape "LFSH" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "RTSH" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "SPCE" { { [151,18] }, { [2,1], [150,17] } }; + shape "KP0" { { [ 38,18] }, { [2,1], [ 36,17] } }; + shape "KPTB" { { [ 18,38] }, { [2,1], [ 16,37] } }; + shape "TLDE" { { [ 24,18] }, { [2,1], [ 22,17] } }; + shape "FKT1" { { [ 17,14] }, { [2,1], [ 15,13] } }; + shape "FKT2" { { [ 23,14] }, { [2,1], [ 21,13] } }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 14; + row { + top= 1; + keys { { , "FKT1" }, { , "FKT1" } , + { , "FKT2", 10 }, { , "FKT2" }, + { , "FKT2" }, { , "FKT2" }, + { , "FKT1" }, { , "FKT1" }, + { , "FKT2" }, { , "FKT2" }, + { , "FKT2" }, { , "FKT2" }, + { , "FKT1", 10 }, { , "FKT1" }, + { , "FKT1", 19 }, { , "FKT1" }, + { , "FKT1" }, { , "FKT1" } + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 52; + row { + top= 1; + keys { { , "TLDE" }, , , , , + , , , , , + , , , + { , "BKSP" }, , + }; + }; + row { + top= 20; + keys { { , "TABK" }, + , , , , , + , , , , , + , , { , "BKSL" }, + , + }; + }; + row { + top= 39; + keys { , , + , , , , , + , , , , , + , { , "RTRN" }, + , + }; + }; + row { + top= 58; + keys { , { , "LFSH" }, + , , , , , + , , , , , + { , "RTSH" }, , + , + }; + }; + row { + top= 77; + keys { , { , 30 }, + { , "SPCE" }, + , { , 30 }, , + }; + }; + }; // End of "Alpha" section + + section "Keypad" { + top= 52; + left= 360; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , }; + }; + row { + top= 39; + keys { , , , }; + }; + row { + top= 58; + keys { , , , { , "KPTB" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + +}; + + +// Created by Alexander Pohoyda +// Geometry specification for HP Omnibook keyboards. +// Compatible Models: 6100, 6000. + +xkb_geometry "omnibook" { + width = 282; + height = 128; + baseColor = "grey80"; + labelColor = "white"; + + shape "FN0" { cornerRadius = 1, { [15.5, 12] }, { [1, 0], [14.5, 11] } }; + shape "NORM" { cornerRadius = 1, { [18, 16] }, { [2, 0], [16, 14] } }; + shape "BKSP" { cornerRadius = 1, { [31, 16] }, { [2, 0], [29, 14] } }; + shape "TABK" { cornerRadius = 1, { [27, 16] }, { [2, 0], [25, 14] } }; + shape "CAPS" { cornerRadius = 1, { [32, 16] }, { [2, 0], [30, 14] } }; + shape "RTSH" { cornerRadius = 1, { [45, 16] }, { [2, 0], [43, 14] } }; + shape "MODK" { cornerRadius = 1, { [28, 16] }, { [2, 0], [26, 14] } }; + shape "SPCE" { cornerRadius = 1, { [90, 16] }, { [2, 0], [88, 14] } }; + shape "ARRS" { cornerRadius = 1, { [17, 12] }, { [2, 0], [15, 11] } }; + + shape "LED" { cornerRadius = 1, { [2, 4] } }; + + shape "KEYS" { cornerRadius = 1, + { [0, 13], + [197, 13], [197, 0], + [280, 0], [280, 125], + [224, 125], [224, 112], + [0, 112] } + }; + + solid "KeyPanel" { + shape = "KEYS"; + left = 1; + top = 1; + color = "black"; + }; + + shape "NULL1" { cornerRadius = 1, { [54, 16] } }; + + solid "NullPanel1" { + shape = "NULL1"; + left = 226; + top = 96; + color = "grey80"; + }; + + shape "NULL2" { cornerRadius = 1, { [19, 14] } }; + + solid "NullPanel2" { + shape = "NULL2"; + left = 243; + top = 97; + color = "black"; + }; + + indicator.onColor = "green"; + indicator.offColor = "grey10"; + indicator.top = 4; + indicator.shape = "LED"; + indicator "Caps Lock" { left = 45; }; + indicator "Num Lock" { left = 60; }; + indicator "Scroll Lock" { left = 75; }; + indicator "HDDActivity" { onColor = "red"; left = 90; }; + + key.color = "grey60"; + + section "Function" { + key.gap = 0.99; + left = 1; + top = 1; + key.shape = "FN0"; + row { + left = 197; + top = 1; + keys { , , , , }; + }; + row { + top = 14; + keys { , + , , , , + , , , , + , , , , + , , , + }; + }; + }; // End of "Function" section + + section "Control" { + left = 1; + top = 34; + key.gap = 1; + row { + top = 62; + key.shape = "NORM"; + keys { , , , , + { , "SPCE" }, , , + }; + }; + }; // End of "Control" section + + section "Navigation" { + key.shape = "ARRS"; + left = 225; + top = 97; + key.gap = 1.4; + row { + left= 18; + top = 1; + keys { }; + }; + row { + top = 16; + keys { , , }; + }; + }; // End of "Navigation" section + + shape "STIK" { cornerRadius = 4, { [7, 7] } }; + + solid "STIK" { + priority = 255; + color = "red"; + shape = "STIK"; + top = 73; + left = 126; + }; +}; + +// 86 keys +xkb_geometry "omnibook_intl" { + include "hp(omnibook)" + description = "HP Omnibook 6000/6100, Intl"; + + shape "RTRN" { cornerRadius = 1, + { [22, 0], [22, 33], [5, 33], [5, 16], [0, 16], [0, 0] }, + { [20, 0], [20, 31], [7, 31], [7, 14], [2, 14], [2, 0] } }; + shape "LFSH" { cornerRadius = 1, { [23, 16] }, { [2, 0], [21, 14] } }; + + section "Alpha" { + key.gap = 1; + key.color = "grey60"; + key.shape = "NORM"; + left = 1; + top = 27; + row { + top = 1; + keys { , , , , , + , , , , , + , , , { , "BKSP" } + }; + }; + row { + top = 18; + keys { { , "TABK" }, + , , , , , + , , , , , + , , { , "RTRN" } + }; + }; + row { + top = 35; + keys { { , "CAPS" }, + , , , , , + , , , , , + , + }; + }; + row { + top = 52; + keys { { , "LFSH" }, , + , , , , , + , , , , , + { , "RTSH" } + }; + }; + }; // End of "Alpha" section +}; + +xkb_geometry "mini110" { + + description= "HP Mini 110"; + width= 262; + height= 106; + + shape.cornerRadius = 0; + shape "FN0" { { [ 14, 10 ] } , { [ 14, 10 ] } }; + shape "NORM" { { [ 16.7, 16 ] } , { [ 16.7, 16 ] } }; + shape "TLDE" { { [ 12, 16 ] } , { [ 12, 16 ] } }; + shape "ONE" { { [ 14, 16 ] } , { [ 14, 16 ] } }; + shape "BKSP" { { [ 31.3, 16 ] } , { [ 31.3, 16 ] } }; + shape "BKSL" { { [ 23.9, 16 ] } , { [ 23.9, 16 ] } }; + shape "CAPS" { { [ 22, 16 ] } , { [ 22, 16 ] } }; + shape "RTRN" { { [ 36.3, 16 ] } , { [ 36.3, 16 ] } }; + shape "LFSH" { { [ 31, 16 ] } , { [ 31, 16 ] } }; + shape "RTSH" { { [ 45, 16 ] } , { [ 45, 16 ] } }; + shape "CTLS" { { [ 16.5, 19 ] } , { [ 16.5, 19 ] } }; + shape "SPCE" { { [ 78.4, 19 ] } , { [ 78.4, 19 ] } }; + shape "ARRW" { { [ 16.7, 9 ] } , { [ 16.7, 9 ] } }; + + key.gap=1; + + section "Function" { + top=4; + left=3; + key.shape="FN0"; + row { + keys { + , , , , , , + , , , , , , + , , , , + }; + }; + }; + + section "Alphanum" { + top=15; + left=3; + key.shape="NORM"; + row { + top= 0; + keys { { , "TLDE" } , { , "ONE" }, , , , + , , , , , + , , , + { , "BKSP" } + }; + }; + row { + top= 17; + keys { , , , , , , + , , , , , + , , { , "BKSL" } + }; + }; + row { + top= 34; + keys { { , "CAPS" } , + , , , , , + , , , , , + , { , "RTRN" } + }; + }; + row { + top= 51; + keys { { , "LFSH" }, + , , , , , + , , , , , + { , "RTSH" } + }; + }; + + }; + + section "Control" { + top=83; + left=3; + key.shape="CTLS"; + row { + keys { + , , , , { , "SPCE" }, , , + }; + }; + }; + + section "Arrows" { + top=83; + left=204.9; + key.shape="ARRW"; + row { + left= 17.7; + keys { + + }; + }; + row { + top = 10; + keys { + , , + }; + }; + }; + +}; + +xkb_geometry "dv5" { + + height=118.4; + width=310.6; + + description = "HP Pavilion dv5"; + + shape.cornerRadius = 1; + + shape "ESC" { { [20.0, 12.5] }, { [2.2, 1], [17.8, 10.5] } }; + shape "FN0" { { [15.9, 12.5] }, { [2.2, 1], [13.7, 10.5] } }; + shape "DELE" { { [19.4, 12.5] }, { [2.2, 1], [17.2, 10.5] } }; + + shape "NORM" { { [17.9, 18.3] }, { [2.2, 1], [15.7, 16.3] } }; + + shape "BKSP" { { [36.1, 18.3] }, { [2.4, 1], [33.7, 16.3] } }; + + shape "TABK" { { [26.8, 18.3] }, { [2.4, 1], [24.4, 16.3] } }; + shape "BKSL" { { [27.1, 18.3] }, { [2.4, 1], [24.7, 16.3] } }; + + shape "CAPS" { { [31.6, 18.3] }, { [2.4, 1], [29.2, 16.3] } }; + shape "RTRN" { { [41.2, 18.3] }, { [2.4, 1], [39.3, 16.3] } }; + + shape "LFSH" { { [41.5, 18.3] }, { [2.4, 1], [38.8, 16.3] } }; + shape "RTSH" { { [31.5, 18.3] }, { [2.4, 1], [29.1, 16.3] } }; + + shape "LCTL" { { [22.4, 18.3] }, { [2.2, 1], [20.2, 16.3] } }; + shape "RCTL" { { [22.6, 18.3] }, { [2.2, 1], [20.4, 16.3] } }; + shape "CTLS" { { [17.9, 18.3] }, { [2.2, 1], [15.7, 16.3] } }; + shape "SPCE" { { [94.3, 18.3] }, { [2.5, 1], [91.8, 16.3] } }; + + shape "ARRW" { { [17.9, 18.3] }, { [2.2, 1], [15.7, 16.3] } }; + + shape "EDIT" { { [16.6, 18.3] }, { [2.2, 1], [14.4, 16.3] } }; + + key.gap = 1.2; + + section "Function" { + top=4.2; + left=3; + row { + key.shape = "FN0"; + keys { + {, "ESC"}, + {2.9, }, , , , + {2.9, }, , , , + {2.9, }, , , , + {2.9, }, , , {, "DELE"} + }; + }; + }; + + section "Alpha" { + top = 17.9; + key.shape = "NORM"; + left = 3; + + row { + top = 0; + keys { , , , , , + , , , , , + , , , { , "BKSP" } + }; + }; + row { + top = 19.5; + keys { { , "TABK" }, + , , , , , + , , , , , + , , { , "BKSL" } + }; + }; + row { + top = 39; + keys { { , "CAPS" }, + , , , , , + , , , , , + , { , "RTRN" } + }; + }; + row { + top = 58.5; + keys { { , "LFSH" }, + , , , , , + , , , , , + { , "RTSH" } + }; + }; + }; // End of "Alpha" section + + section "Controls" { + top = 95.9; + key.shape = "CTLS"; + left = 3; + row { + top = 0; + keys { {, "LCTL"}, , , , {, "SPCE"}, + , , {, "RCTL"} + }; + }; + }; + + section "Editing" { + top = 16.5; + left = 289.9; + key.shape = "EDIT"; + key.gap = 1.4; + row { + top = 0; + vertical = true; + keys { + , , , + }; + }; + }; + + section "Arrows" { + top = 76.4; + key.shape = "ARRW"; + left = 249.3; + row { + top = 0; + left = 19.1; + keys { + + }; + }; + row { + top = 19.5; + left = 0; + keys { + , , + }; + }; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/keytronic b/squashfs-root/usr/share/X11/xkb/geometry/keytronic new file mode 100644 index 0000000..fb17dd8 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/keytronic @@ -0,0 +1,252 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +default xkb_geometry "FlexPro" { + + // This is an approximate layout for a Key Tronic FlexPro + // keyboard. I just took a similar layout (101 key PC keyboard) + // and adjusted the sizes of a few keys by eye. I didn't actually + // *measure* a real keyboard. + + description= "Key Tronic FlexPro keyboard"; + + width= 515; + height= 200; + + shape "EDGE" { cornerRadius= 2, { [ 515, 200 ] } }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [ 32,18] }, { [2,1], [30,17] } }; + shape "TABK" { { [ 32,18] }, { [2,1], [30,17] } }; + shape "BKSL" { { [ 23,18] }, { [2,1], [21,17] } }; + shape "RTRN" { + approx = { [16, 0], [38,37] }, + { [16, 0], [38, 0], [38,37], + [ 0,37], [ 0,19], [16,19] }, + { [18, 1], [36, 1], [36,36], + [ 2,36], [ 2,20], [18,20] } }; + shape "CAPS" { { [36,18] }, { [2,1], [34,17] } }; + shape "SHFT" { { [46,18] }, { [2,1], [44,17] } }; + shape "LCTL" { { [32,18] }, { [2,1], [30,17] } }; + shape "RCTL" { { [38,18] }, { [2,1], [36,17] } }; + shape "LALT" { { [28,18] }, { [2,1], [26,17] } }; + shape "RALT" { { [33,18] }, { [2,1], [31,17] } }; + shape "LSPC" { { [66,22] }, { [0,0], [66,22] } }; + shape "RSPC" { { [76,22] }, { [0,0], [76,22] } }; + shape "KP0" { { [37,18] }, { [2,1], [35,17] } }; + shape "KPEN" { { [18,37] }, { [2,1], [16,36] } }; + shape "LOGO" { cornerRadius= 3, { [80,35] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 9; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + + section "Function" { + top= 56; + row { + top = 1; + key.color= "grey20"; + keys { , }; + }; + row { + top = 20; + key.color= "grey20"; + keys { , }; + }; + row { + top = 39; + keys { , }; + }; + row { + top = 58; + key.color= "grey20"; + keys { , }; + }; + row { + top = 77; + key.color= "grey20"; + keys { , }; + }; + row { + top = 96; + keys { , }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 56; + left= 53; + row { + top= 1; + keys { + { , color="grey20" }, { , "BKSL", color="grey20" }, + , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { + { , color="grey20" }, { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , + { , "RTRN", -14, color="grey20" } + }; + }; + row { + top= 39; + keys { + { , color="grey20" }, { , "CAPS", color="grey20" }, + , , , , , + , , , , , + }; + }; + row { + top= 58; + keys { + { , color="grey20" }, + { , "SHFT", color="grey20" }, + , , , , , + , , , , , + { , "SHFT", color="grey20" } + }; + }; + row { + top= 77; + key.color= "grey20"; + keys { + , + { , shape="LCTL" }, + { , shape="LALT" }, + { , shape="LSPC", 4, color="white" }, + { , shape="RSPC",color="white" }, + { , shape="RALT", 4 }, + { , shape="RCTL" } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 12; + left= 365; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 45; + keys { , , }; + }; + row { + top= 64; + keys { , , }; + }; + row { + top= 102; + left= 20; + keys { }; + }; + row { + top= 121; + keys { , , }; + }; + }; // End of "Editing" section + + shape "LEDS" { cornerRadius= 3, { [ 76, 20 ] } }; + shape "LED" { cornerRadius= 0, { [ 7, 4 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 11; + left= 430; + color= "grey10"; + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 13; + indicator.shape= "LED"; + indicator "Num Lock" { left= 440; }; + indicator "Caps Lock" { left= 467; }; + indicator "Scroll Lock" { left= 489; }; + text.top= 22; + text.color= "black"; + text "NumLockLabel" { left= 438; text="Num\nLock"; }; + text "CapsLockLabel" { left= 465; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 487; text="Scroll\nLock"; }; + + logo "FlexProLogoImage" { + top= 12; + left= 45; + name= "KeyTronic"; + shape= "LOGO"; + }; + text "KeyTronicLogoText" { + top= 15; + left= 50; + width= 55; + text= "FlexPro"; + font= "times"; + slant= "o"; + weight= "bold"; + fontWidth= "narrow"; + fontSize= 36; + }; + + section "Keypad" { + top= 56; + left= 430; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , color= "grey20" } }; + }; + row { + top= 39; + keys { , , , { , color= "grey20" } }; + }; + row { + top= 58; + keys { , , , { , "KPEN", color= "grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/kinesis b/squashfs-root/usr/share/X11/xkb/geometry/kinesis new file mode 100644 index 0000000..d73b1e1 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/kinesis @@ -0,0 +1,189 @@ +default xkb_geometry "model100" { + + // This is an approximate layout for a Kinesis Ergonomic keyboard + // Generated completely by eye. I didn't actually *measure* a real + // keyboard. + + description= "Kinesis Ergonomic"; + width= 421; + height= 185; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; + shape "WIDE" { { [ 21,18] }, { [2,1], [19,17] } }; + shape "TALL" { { [ 18,37] }, { [2,1], [16,36] } }; + shape "FKEY" { cornerRadius=0, { [ 10,13] } }; + shape "LED" { cornerRadius= 1.5, { [ 3, 3] } }; + shape "LOGO" { { [ 40, 10 ] } }; + shape "EDGE" { cornerRadius=5, { [ 421, 185 ] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section "LeftFunction" { + left= 15; + top= 11; + key.shape= "FKEY"; + key.gap= 3; + row { + left= 1; + top= 1; + keys { + , , , , , + , , , + }; + }; + }; // End of "LeftFunction" section + + section "RightFunction" { + left= 290; + top= 11; + key.shape= "FKEY"; + key.gap= 3; + row { + left= 1; + top= 0.2; + keys { + , , , , , + , , , + }; + }; + }; // End of "RightFunction" section + + row.vertical= True; + row.top= 1; + key.gap= 0.5; + + logo "KinesisLogoImage" { + top= 25; + left= 240; + name= "Kinesis"; + shape= "LOGO"; + }; + + indicator.shape= "LED"; + indicator.top= 30; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator "Caps Lock" { left= 23; }; + + section "LeftAlpha" { + top= 34; + left= 15; + row { + left= 2; + key.shape= "WIDE"; + keys { , , , }; + }; + row { + top= 4; + left= 24; + keys { , , { , color="grey20" }, , }; + }; + row { + left= 43; + keys { , , { , color="grey20" }, , }; + }; + row { + left= 62; + keys { , , { , color="grey20" }, , }; + }; + row { + left= 81; + keys { , , { , color="grey20" }, , }; + }; + row { + left= 100; + keys { , , , }; + }; + }; // End of "LeftAlpha" section + + indicator "NumLock" { left= 318; }; + indicator "Overlay" { left= 387; }; + section "RightAlpha" { + top= 34; + left= 290; + row { + left= 2; + keys { , , , }; + }; + row { + left= 21; + keys { , , { , color="grey20" }, , }; + }; + row { + left= 40; + keys { , , { , color="grey20" }, , }; + }; + row { + left= 59; + keys { , , { , color="grey20" }, , }; + }; + row { + top= 4; + left= 78; + keys { , , { , color="grey20" }, , }; + }; + row { + left= 97; + key.shape= "WIDE"; + keys { , , , }; + }; + overlay "KPAD" { + =, =, =, =, + =, =, =, =, + =, =, =, =, + =, =, =, =, + =, = + }; + }; // End of "RightAlpha" section + + section "LeftEdit" { + top= 109; + left= 123; + angle= 20; + row.top= -18; + row { + top= 1; + left= 1; + keys { { , "TALL" } }; + }; + row { + left= 20; + keys { , { , "TALL" } }; + }; + row { + left= 39; + keys { , , }; + }; + }; // End of "LeftEdit" section + + section "RightEdit" { + top= 109; + left= 302; + angle= -20; + row.top= -18; + row { + left= -57; + keys { , , }; + }; + row { + left= -38; + keys { , { , "TALL" } }; + }; + row { + top= 1; + left= -19; + keys { { , "TALL" } }; + }; + overlay "KPAD" { + = + }; + }; // End of "RightEdit" section + + alias = ; + alias = ; +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/macintosh b/squashfs-root/usr/share/X11/xkb/geometry/macintosh new file mode 100644 index 0000000..d7971ff --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/macintosh @@ -0,0 +1,1443 @@ +// +// Some modifications () : +// - Added a key +// - Fixed the shape of the key +// - Moved to the 'AC' row +// - Added a special Macintosh sysctl key +// - Minor changes (Function keys shape, LED position...) + +// Minor changes +// - Mail address above is no longer valid +// - Changed {L,R}MTA to {L,R}WIN, which are defined +// 2005/10 -- Simon Vallet + +default xkb_geometry "macintosh" { + + description= "Apple Extended Keyboard II"; + width = 475; + height = 194; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "TLDE" { { [ 23,18] }, { [2,1], [ 21,17] } }; + shape "BKSP" { { [ 33,18] }, { [2,1], [ 31,17] } }; + shape "TAB" { { [ 33,18] }, { [2,1], [ 31,17] } }; + shape "RTRN" { + { [0,0],[23,0],[23,37],[4,37],[4,18],[0,18] }, + { [2,1],[21,1],[21,36],[6,36],[6,17],[2,17] } }; + shape "CAPS" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "LCTL" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "LALT" { { [ 22,18] }, { [2,1], [ 20,17] } }; + shape "LMTA" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "LFSH" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "RCTL" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "RALT" { { [ 22,18] }, { [2,1], [ 20,17] } }; + shape "RMTA" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "RTSH" { { [ 47,18] }, { [2,1], [ 45,17] } }; + shape "SPCE" { { [123,18] }, { [2,1], [121,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; + // Macintosh keyboards have a special sysctl key at the top right + shape "AAPL" { + { [ 0,0], [ 18,0], [ 18,18], [ 0,18] }, + { [ 1,1], [ 17,1], [ 17,17], [ 1,17] }, + { [ 8,5], [ 8,12], [ 2,9] } }; + + shape "LEDS" { cornerRadius = 0, { [ 55,19] } }; + shape "LED" { cornerRadius = 0, { [ 8, 2] } }; + + solid "LedPanel" { + shape= "LEDS"; + top = 48; + left = 378; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top = 50; + indicator.shape= "LED"; + indicator "NumLock" { left = 381; }; + indicator "CapsLock" { left = 398; }; + indicator "ScrollLock" { left = 415; }; + text.top= 55; + text.color= "black"; + text "NumLockLabel" { left = 381; text = "Num\nLock"; }; + text "CapsLockLabel" { left = 398; text = "Caps\nLock"; }; + text "ScrollLockLabel" { left = 415; text = "Scroll\nLock"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + + section "Function" { + top = 48; + row { + top= 1; + keys { , + { , 20 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 10 }, , , + // This is the sysctl key on macintosh keyboards + // keycode is 222 with a 4.21 kernel, which is + { , "AAPL", 67 } + }; + }; + }; // End of "Function" section + + section "Alpha" { + top = 87; + row { + top= 1; + keys { { , "TLDE" }, , , , + , , , , , , + , , , { , "BKSP" } + }; + }; + row { + top= 20; + keys { { , "TAB" }, , , , + , , , , , , + , , , { , "RTRN" } + }; + }; + row { + top= 39; + keys { { , "CAPS" }, , , , + , , , , , , + , , + }; + }; + row { + top= 58; + keys { { , "LFSH" }, , , , + , , , , , , + , , { , "RTSH" } + }; + }; + row { + top= 77; + keys { { , "LCTL" }, { , "LALT" }, + { , "LMTA" }, + { , "SPCE" }, + { , "RMTA" }, + { , "RALT" }, { , "RCTL" } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top = 87; + left = 314; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top = 87; + left = 380; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , }; + }; + row { + top= 39; + keys { , , , }; + }; + row { + top= 58; + keys { , , , { , "KPEN" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + +}; // End of "default" geometry + + +// This section describes the geometry of the "Apple Pro" keyboard +// included with NewWorld desktop machines +// +// It adds four new keysyms, labeled SDDN, SDUP, SDNO, EJCT. +// +// 2005/10 -- Simon Vallet + +xkb_geometry "applepro" { + + description= "Apple Pro Keyboard"; + width = 455; + height = 150; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18, 18] }, { [2, 1], [ 16, 15] } }; + shape "FUNC" { { [ 18, 21] }, { [2, 1], [ 16, 16] } }; + shape "BKSP" { { [ 38, 18] }, { [2, 1], [ 36, 15] } }; + shape "TAB" { { [ 29, 18] }, { [2, 1], [ 26, 15] } }; + shape "LFSH" { { [ 28, 18] }, { [2, 1], [ 26, 15] } }; + shape "RTSH" { { [ 47, 18] }, { [2, 1], [ 45, 15] } }; + + shape "RTRN" { + { [0,0],[27,0],[27,37],[4,37],[4,18],[0,18] }, + { [2,1],[25,1],[25,34],[6,34],[6,15],[2,15] } }; + + shape "CAPS" { { [ 32, 18] }, { [2, 1], [ 26, 15] } }; + shape "LCTL" { { [ 28, 20] }, { [2, 1], [ 26, 17] } }; + shape "RCTL" { { [ 28, 20] }, { [2, 1], [ 26, 17] } }; + shape "LALT" { { [ 23, 20] }, { [2, 1], [ 21, 17] } }; + shape "RALT" { { [ 23, 20] }, { [2, 1], [ 21, 17] } }; + shape "LMTA" { { [ 28, 20] }, { [2, 1], [ 26, 17] } }; + shape "RMTA" { { [ 28, 20] }, { [2, 1], [ 26, 17] } }; + shape "SPCE" { { [121, 20] }, { [3, 1], [118, 17] } }; + shape "BOTM" { { [ 18, 20] }, { [2, 1], [ 16, 17] } }; + + shape "KP0" { { [ 37, 20] }, { [2, 1], [ 35, 17] } }; + shape "KPEN" { { [ 18, 39] }, { [2, 1], [ 16, 36] } }; + + section.left = 7; + row.left = 1; + key.gap = 1; + key.shape = "NORM"; + + section "Function" { + key.shape = "FUNC"; + top = 26; + row { + top= 1; + keys { , + { , 14 }, , , , + { , 14 }, , , , + { , 14 }, , , , + { , 11 }, , , + { , 11 }, , , + }; + }; + }; // End of "Function" section + + + section "Alpha" { + top = 48; + row { + top= 1; + keys { , , , , + , , , , , , + , , , { , "BKSP" } + }; + }; + row { + top= 20; + keys { { , "TAB" }, , , , + , , , , , , + , , , { , "RTRN" } + }; + }; + row { + top= 39; + keys { { , "CAPS" }, , , , + , , , , , , + , , + }; + }; + row { + top= 58; + keys { { , "LFSH" }, , , , + , , , , , , + , , { , "RTSH" } + }; + }; + row { + top= 77; + keys { { , "LCTL" }, { , "LALT" }, + { , "LMTA" }, + { , "SPCE" }, + { , "RMTA" }, + { , "RALT" }, { , "RCTL" } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top = 48; + left = 303; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + key.shape = "BOTM"; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top = 48; + left = 370; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , }; + }; + row { + top= 39; + keys { , , , }; + }; + row { + top= 58; + keys { , , , { , "KPEN" } }; + }; + row { + top= 77; + keys { { , "KP0" }, { , "BOTM" } }; + }; + }; // End of "Keypad" section + +}; // End of "applepro" geometry + +xkb_geometry "macbook78" { + + description= "Apple laptop 78-key (US)"; + width= 273; + height= 110; + + shape.cornerRadius= 0; + shape "ESC" { { [ 21,9] }, cornerRadius=1, { [0,1], [ 19,8] } }; + shape "FUNC" { { [ 18,9] }, cornerRadius=1, { [2,1], [ 16,8] } }; + shape "EJCT" { { [ 20,9] }, cornerRadius=1, { [2,1], [ 20,8] } }; + shape "DEGR" { { [ 16,18] }, cornerRadius=1, { [0,2], [ 14,16] } }; + shape "NORM" { { [ 18,18] }, cornerRadius=1, { [2,2], [ 16,16] } }; + shape "BKSP" { { [ 25,18] }, cornerRadius=1, { [2,2], [ 25,16] } }; + shape "TABK" { { [ 24,18] }, cornerRadius=1, { [0,2], [ 22,16] } }; + shape "BKSL" { { [ 17,18] }, cornerRadius=1, { [2,2], [17,16] } }; + shape "RTRN" { { [ 31,18] }, cornerRadius=1, { [2,2], [31,16] } }; + shape "CAPS" { { [ 29,18] }, cornerRadius=1, { [0,2], [ 27,16] } }; + shape "LFSH" { { [ 40,18] }, cornerRadius=1, { [0,2], [ 38,16] } }; + shape "RTSH" { { [ 39,18] }, cornerRadius=1, { [2,2], [ 39,16] } }; + shape "APPL" { { [ 23,18] }, cornerRadius=1, { [2,2], [ 21,16] } }; + shape "SPCE" { { [ 94,18] }, cornerRadius=1, { [2,2], [ 92,16] } }; + shape "ARRO" { { [ 17,9] }, cornerRadius=1, { [2,1], [ 15,8] } }; + + shape "LED" { cornerRadius= 1, { [ 2, 2 ] } }; + + indicator.onColor= "green"; + indicator.offColor= "gray"; + indicator.shape= "LED"; + indicator "Num Lock" { top=4; left= 119; }; + indicator "Caps Lock" { top=53; left= 4; }; + + section.left=0; + row.left= 1; + key.shape= "FUNC"; + key.gap= 1; + section "Function" { + top= 0; + row { + top= 1; + keys { {, "ESC" }, + , , , , + , , , , + , , , , + {, "EJCT" } + }; + }; + }; // End of "Function" section + + key.shape= "NORM"; + section "Alpha" { + top= 10; + row { + top= 1; + keys { {, "DEGR"}, + , , , , + , , , , + , , , , + { , "BKSP" } + }; + }; + row { + top= 20; + keys { { , "TABK"}, + , , , , , + , , , , , + , , + { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "CAPS" }, + , , , , , + , , , , , + , + { , "RTRN" } + }; + }; + row { + top= 58; + keys { { , "LFSH"}, + , , , , , + , , , , , + { , "RTSH" } + }; + }; + row { + top= 77; + keys { {, "DEGR"}, + , , + {, "APPL"}, + {, "SPCE" }, + {, "APPL"}, + + }; + }; + + }; // End of "Alpha" section + + key.shape= "ARRO"; + section "Editing" { + top = 86; + left = 217; + row { + top= 1; + left= 19; + keys { }; + }; + row { + top= 10; + keys { , , }; + }; + }; // End of "Editing" section + + alias = ; + alias = ; + +}; + +xkb_geometry "macbook79" { + + description= "Apple laptop 79-key (Intl)"; + width= 273; + height= 110; + + shape.cornerRadius= 0; + shape "ESC" { { [ 21,9] }, cornerRadius=1, { [0,1], [ 19,8] } }; + shape "FUNC" { { [ 18,9] }, cornerRadius=1, { [2,1], [ 16,8] } }; + shape "EJCT" { { [ 20,9] }, cornerRadius=1, { [2,1], [ 20,8] } }; + shape "DEGR" { { [ 16,18] }, cornerRadius=1, { [0,2], [ 14,16] } }; + shape "NORM" { { [ 18,18] }, cornerRadius=1, { [2,2], [ 16,16] } }; + shape "BKSP" { { [ 25,18] }, cornerRadius=1, { [2,2], [ 25,16] } }; + shape "TABK" { { [ 24,18] }, cornerRadius=1, { [0,2], [ 22,16] } }; + shape "RTRN" { { [ 0,0], [17,0], [17,37], [5,37], [5, 18], [0,18], [0,0] }, + cornerRadius=1, + { [ 2,2], [15,2], [15,35], [7,35], [7, 16], [2,16] } + }; + shape "CAPS" { { [ 29,18] }, cornerRadius=1, { [0,2], [ 27,16] } }; + shape "LFSH" { { [ 21,18] }, cornerRadius=1, { [0,2], [ 19,16] } }; + shape "RTSH" { { [ 39,18] }, cornerRadius=1, { [2,2], [ 39,16] } }; + shape "APPL" { { [ 23,18] }, cornerRadius=1, { [2,2], [ 21,16] } }; + shape "SPCE" { { [ 94,18] }, cornerRadius=1, { [2,2], [ 92,16] } }; + shape "ARRO" { { [ 17,9] }, cornerRadius=1, { [2,1], [ 15,8] } }; + + shape "LED" { cornerRadius= 1, { [ 2, 2 ] } }; + + indicator.onColor= "green"; + indicator.offColor= "gray"; + indicator.shape= "LED"; + indicator "Num Lock" { top=4; left= 119; }; + indicator "Caps Lock" { top=53; left= 4; }; + + section.left=0; + row.left= 1; + key.shape= "FUNC"; + key.gap= 1; + section "Function" { + top= 0; + row { + top= 1; + keys { {, "ESC" }, + , , , , + , , , , + , , , , + {, "EJCT" } + }; + }; + }; // End of "Function" section + + key.shape= "NORM"; + section "Alpha" { + top= 10; + row { + top= 1; + keys { {, "DEGR"}, + , , , , + , , , , + , , , , + { , "BKSP" } + }; + }; + row { + top= 20; + keys { { , "TABK"}, + , , , , , + , , , , , + , , { , "RTRN" } + }; + }; + row { + top= 39; + keys { { , "CAPS" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH"}, + , , , , , , + , , , , , + { , "RTSH" } + }; + }; + row { + top= 77; + keys { {, "DEGR"}, + , , + {, "APPL"}, + {, "SPCE" }, + {, "APPL"}, + + }; + }; + }; // End of "Alpha" section + + key.shape= "ARRO"; + section "Editing" { + top = 86; + left = 217; + row { + top= 1; + left= 19; + keys { }; + }; + row { + top= 10; + keys { , , }; + }; + }; // End of "Editing" section + + alias = ; + alias = ; + +}; + + +// Aluminium Keyboard, ANSI model (United States, 109 keys) +xkb_geometry "applealu_ansi" { + + width= 430; + height= 113.5; + + baseColor= "white"; + labelColor= "black"; + xfont= "-*-helvetica-medium-r-normal--*-80-*-*-*-*-iso8859-1"; + description= "Aluminium Keyboard (ANSI)"; + + shape "NORM" { + corner= 1, + { [ 15.5, 15 ] } + }; + shape "FUNC" { + corner= 1, + { [ 16.1, 9 ] } + }; + shape "FUNS" { + corner= 1, + { [ 15.5, 9 ] } + }; + shape "BKSP" { + corner= 1, + { [ 24.5, 15 ] } + }; + shape "TAB" { + corner= 1, + { [ 24.5, 15 ] } + }; + shape "RTRN" { + corner= 1, + { [ 29.5, 15 ] } + }; + shape "CAPS" { + corner= 1, + { [ 29.5, 15 ] } + }; + shape "LCTL" { + corner= 1, + { [ 25, 18 ] } + }; + shape "LALT" { + corner= 1, + { [ 20, 18 ] } + }; + shape "LMTA" { + corner= 1, + { [ 25, 18 ] } + }; + shape "LFSH" { + corner= 1, + { [ 39, 15 ] } + }; + shape "RCTL" { + corner= 1, + { [ 25, 18 ] } + }; + shape "RALT" { + corner= 1, + { [ 20, 18 ] } + }; + shape "RMTA" { + corner= 1, + { [ 25, 18 ] } + }; + shape "RTSH" { + corner= 1, + { [ 39, 15 ] } + }; + shape "SPCE" { + corner= 1, + { [ 110.5, 18 ] } + }; + shape "KP0" { + corner= 1, + { [ 34.5, 18 ] } + }; + shape "KPEN" { + corner= 1, + { [ 15.5, 36.5 ] } + }; + shape "KPDT" { + corner= 1, + { [ 15.5, 18 ] } + }; + shape "LED" { + corner= 0.5, + { [ 1.5, 1.5 ] } + }; + + section "Function" { + key.color= "white"; + priority= 7; + top= 4.5; + left= 4.7; + width= 420.5; + height= 10; + row { + top= 0; + left= 0; + keys { + { , "FUNC", 0 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.5 }, + { , "FUNS", 11.5 }, { , "FUNS", 3.5 }, + { , "FUNS", 3.5 }, { , "FUNS", 11.5 }, + { , "FUNS", 3.5 }, { , "FUNS", 3.5 }, + { , "FUNS", 3.5 } + }; + }; + }; // End of "Function" section + + section "Alpha" { + key.color= "white"; + priority= 8; + top= 17; + left= 5; + width= 271.5; + height= 92; + row { + top= 0; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "BKSP", 3.5 } + }; + }; + row { + top= 18.5; + left= 0; + keys { + { , "TAB", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 } + + }; + }; + row { + top= 37; + left= 0; + keys { + { , "CAPS", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "RTRN", 3.5 } + }; + }; + row { + top= 55.5; + left= 0; + keys { + { , "LFSH", 0 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "RTSH", 3.5 } + }; + }; + row { + top= 74; + left= 0; + keys { + { , "LCTL", 0 }, { , "LALT", 3.5 }, + { , "LMTA", 3.5 }, { , "SPCE", 3.5 }, + { , "RMTA", 3.5 }, { , "RALT", 3.5 }, + { , "RCTL", 3.5 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + key.color= "white"; + priority= 9; + top= 17; + left= 287.7; + width= 53.5; + height= 92; + row { + top= 0; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 } + }; + }; + row { + top= 18.5; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 } + }; + }; + row { + top= 58.5; + left= 19; + keys { + { , "NORM", 0 } + }; + }; + row { + top= 77; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 } + }; + }; + }; // End of "Editing" section + + section "Keypad" { + key.color= "white"; + priority= 10; + top= 17; + left= 352.7; + width= 72.5; + height= 92; + row { + top= 0; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 } + }; + }; + row { + top= 18.5; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 } + }; + }; + row { + top= 37; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 } + }; + }; + row { + top= 55.5; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "KPEN", 3.5 } + }; + }; + row { + top= 74; + left= 0; + keys { + { , "KP0", 0 }, { , "KPDT", 3.5 } + }; + }; + }; // End of "Keypad" section + + indicator "Caps Lock" { + top= 56; + left= 6.7; + priority= 2; + onColor= "green"; + offColor= "gray"; + shape= "LED"; + }; + +}; + +// Aluminium Keyboard, ISO model (International, 110 keys) +xkb_geometry "applealu_iso" { + + width= 430; + height= 113.5; + + baseColor= "white"; + labelColor= "black"; + xfont= "-*-helvetica-medium-r-normal--*-80-*-*-*-*-iso8859-1"; + description= "Aluminium Keyboard (ISO)"; + + shape "NORM" { + corner= 1, + { [ 15.5, 15 ] } + }; + shape "FUNC" { + corner= 1, + { [ 16.1, 9 ] } + }; + shape "FUNS" { + corner= 1, + { [ 15.5, 9 ] } + }; + shape "BKSP" { + corner= 1, + { [ 24.5, 15 ] } + }; + shape "TAB" { + corner= 1, + { [ 24.5, 15 ] } + }; + shape "RTRN" { + corner= 1, + { [ 0, 0 ], [ 15.5 , 0 ], [ 15.5 , 33.5 ], [ 5, 33.5 ], + [ 5, 15 ], [ 0, 15 ] } + }; + shape "CAPS" { + corner= 1, + { [ 29.5, 15 ] } + }; + shape "LCTL" { + corner= 1, + { [ 25, 18 ] } + }; + shape "LALT" { + corner= 1, + { [ 20, 18 ] } + }; + shape "LMTA" { + corner= 1, + { [ 25, 18 ] } + }; + shape "LFSH" { + corner= 1, + { [ 20, 15 ] } + }; + shape "RCTL" { + corner= 1, + { [ 25, 18 ] } + }; + shape "RALT" { + corner= 1, + { [ 20, 18 ] } + }; + shape "RMTA" { + corner= 1, + { [ 25, 18 ] } + }; + shape "RTSH" { + corner= 1, + { [ 39, 15 ] } + }; + shape "SPCE" { + corner= 1, + { [ 110.5, 18 ] } + }; + shape "KP0" { + corner= 1, + { [ 34.5, 18 ] } + }; + shape "KPEN" { + corner= 1, + { [ 15.5, 36.5 ] } + }; + shape "KPDT" { + corner= 1, + { [ 15.5, 18 ] } + }; + shape "LED" { + corner= 0.5, + { [ 1.5, 1.5 ] } + }; + + section "Function" { + key.color= "white"; + priority= 7; + top= 4.5; + left= 4.7; + width= 420.5; + height= 10; + row { + top= 0; + left= 0; + keys { + { , "FUNC", 0 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.5 }, + { , "FUNS", 11.5 }, { , "FUNS", 3.5 }, + { , "FUNS", 3.5 }, { , "FUNS", 11.5 }, + { , "FUNS", 3.5 }, { , "FUNS", 3.5 }, + { , "FUNS", 3.5 } + }; + }; + }; // End of "Function" section + + section "Alpha" { + key.color= "white"; + priority= 8; + top= 17; + left= 5; + width= 271.5; + height= 92; + row { + top= 0; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "BKSP", 3.5 } + }; + }; + row { + top= 18.5; + left= 0; + keys { + { , "TAB", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "RTRN", 3.5 } + }; + }; + row { + top= 37; + left= 0; + keys { + { , "CAPS", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 } + }; + }; + row { + top= 55.5; + left= 0; + keys { + { , "LFSH", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "RTSH", 3.5 } + }; + }; + row { + top= 74; + left= 0; + keys { + { , "LCTL", 0 }, { , "LALT", 3.5 }, + { , "LMTA", 3.5 }, { , "SPCE", 3.5 }, + { , "RMTA", 3.5 }, { , "RALT", 3.5 }, + { , "RCTL", 3.5 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + key.color= "white"; + priority= 9; + top= 17; + left= 287.7; + width= 53.5; + height= 92; + row { + top= 0; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 } + }; + }; + row { + top= 18.5; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 } + }; + }; + row { + top= 58.5; + left= 19; + keys { + { , "NORM", 0 } + }; + }; + row { + top= 77; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 } + }; + }; + }; // End of "Editing" section + + section "Keypad" { + key.color= "white"; + priority= 10; + top= 17; + left= 352.7; + width= 72.5; + height= 92; + row { + top= 0; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 } + }; + }; + row { + top= 18.5; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 } + }; + }; + row { + top= 37; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 } + }; + }; + row { + top= 55.5; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "KPEN", 3.5 } + }; + }; + row { + top= 74; + left= 0; + keys { + { , "KP0", 0 }, { , "KPDT", 3.5 } + }; + }; + }; // End of "Keypad" section + + indicator "Caps Lock" { + top= 56; + left= 6.7; + priority= 2; + onColor= "green"; + offColor= "gray"; + shape= "LED"; + }; + +}; + +// Aluminium Keyboard, JIS model (Japanese, 112 keys) +xkb_geometry "applealu_jis" { + + width= 430; + height= 113.5; + + baseColor= "white"; + labelColor= "black"; + xfont= "-*-helvetica-medium-r-normal--*-80-*-*-*-*-iso8859-1"; + description= "Aluminium Keyboard (JIS)"; + + shape "NORM" { + corner= 1, + { [ 15.5, 15 ] } + }; + shape "FUNC" { + corner= 1, + { [ 16.1, 9 ] } + }; + shape "FUNS" { + corner= 1, + { [ 15.5, 9 ] } + }; + shape "KEY1" { + corner= 1, + { [ 24.5, 15 ] } + }; + shape "BKSP" { + corner= 1, + { [ 15.5, 15 ] } + }; + shape "TAB" { + corner= 1, + { [ 15.5, 15 ] } + }; + shape "RTRN" { + corner= 1, + { [ 0, 0 ], [ 24.5 , 0 ], [ 24.5 , 33.5 ], [ 4.5, 33.5 ], + [ 4.5, 15 ], [ 0, 15 ] } + }; + shape "CAPS" { + corner= 1, + { [ 35, 18 ] } + }; + shape "LCTL" { + corner= 1, + { [ 20, 15 ] } + }; + shape "LALT" { + corner= 1, + { [ 27, 18 ] } + }; + shape "LMTA" { + corner= 1, + { [ 27, 18 ] } + }; + shape "LFSH" { + corner= 1, + { [ 29.5, 15 ] } + }; + shape "EISU" { + corner= 1, + { [ 20, 18 ] } + }; + shape "RCTL" { + corner= 1, + { [ 27, 18 ] } + }; + shape "RALT" { + corner= 1, + { [ 27, 18 ] } + }; + shape "RMTA" { + corner= 1, + { [ 27, 18 ] } + }; + shape "RTSH" { + corner= 1, + { [ 29.5, 15 ] } + }; + shape "KANA" { + corner= 1, + { [ 20, 18 ] } + }; + shape "SPCE" { + corner= 1, + { [ 64, 18 ] } + }; + shape "KPDT" { + corner= 1, + { [ 15.5, 18 ] } + }; + shape "KPEN" { + corner= 1, + { [ 15.5, 36.5 ] } + }; + shape "LED" { + corner= 0.5, + { [ 1.5, 1.5 ] } + }; + + section "Function" { + key.color= "white"; + priority= 7; + top= 4.5; + left= 4.7; + width= 420.5; + height= 10; + row { + top= 0; + left= 0; + keys { + { , "FUNC", 0 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, + { , "FUNC", 3.5 }, { , "FUNC", 3.5 }, + { , "FUNS", 11.5 }, { , "FUNS", 3.5 }, + { , "FUNS", 3.5 }, { , "FUNS", 11.5 }, + { , "FUNS", 3.5 }, { , "FUNS", 3.5 }, + { , "FUNS", 3.5 } + }; + }; + }; // End of "Function" section + + section "Alpha" { + key.color= "white"; + priority= 8; + top= 17; + left= 5; + width= 271.5; + height= 92; + row { + top= 0; + left= 0; + keys { + { , "KEY1", 0 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "BKSP", 3.5 } + }; + }; + row { + top= 18.5; + left= 0; + keys { + { , "TAB", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "RTRN", 3.5 } + }; + }; + row { + top= 37; + left= 0; + keys { + { , "LCTL", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 } + }; + }; + row { + top= 55.5; + left= 0; + keys { + { , "LFSH", 0 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "RTSH", 3.5 } + }; + }; + row { + top= 74; + left= 0; + keys { + { , "LALT", 0 }, { , "LMTA", 3.5 }, + { , "EISU", 3.5 }, { , "SPCE", 3.5 }, + { , "KANA", 3.5 }, { , "RMTA", 3.5 }, + { , "RALT", 3.5 }, { , "CAPS", 3.5 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + key.color= "white"; + priority= 9; + top= 17; + left= 287.7; + width= 53.5; + height= 92; + row { + top= 0; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 } + }; + }; + row { + top= 18.5; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 } + }; + }; + row { + top= 58.5; + left= 19; + keys { + { , "NORM", 0 } + }; + }; + row { + top= 77; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 } + }; + }; + }; // End of "Editing" section + + section "Keypad" { + key.color= "white"; + priority= 10; + top= 17; + left= 352.7; + width= 72.5; + height= 92; + row { + top= 0; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 } + }; + }; + row { + top= 18.5; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 } + }; + }; + row { + top= 37; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "NORM", 3.5 } + }; + }; + row { + top= 55.5; + left= 0; + keys { + { , "NORM", 0 }, { , "NORM", 3.5 }, + { , "NORM", 3.5 }, { , "KPEN", 3.5 } + }; + }; + row { + top= 74; + left= 0; + keys { + { , "KPDT", 0 }, { , "KPDT", 3.5 }, + { , "KPDT", 3.5 } + }; + }; + }; // End of "Keypad" section + + indicator "Caps Lock" { + top= 93; + left= 273.2; + priority= 2; + onColor= "green"; + offColor= "gray"; + shape= "LED"; + }; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/microsoft b/squashfs-root/usr/share/X11/xkb/geometry/microsoft new file mode 100644 index 0000000..4fd277c --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/microsoft @@ -0,0 +1,532 @@ +default xkb_geometry "natural" { + + // Approximate layout for a Microsoft Natural + description= "Microsoft Natural"; + width= 550; + height= 190; + + shape.cornerRadius= 1; + shape "LDEF" { { [ 18,18] }, { [2,1], [15,15] } }; + shape "TABK" { { [ 26,18] }, { [2,1], [23,15] } }; + shape "CAPS" { { [ 30,18] }, { [2,1], [23,15] } }; + shape "LFSH" { { [ 41,18] }, { [2,1], [38,15] } }; + shape "KEY6" { { [ 22,18] }, { [2,1], [15,15] } }; + shape "KEYT" { { [ 33,18] }, { [2,1], [15,15] } }; + shape "KEYG" { { [ 29,18] }, { [2,1], [15,15] } }; + shape "LCTL" { + approx= { [ 32, 22 ] }, + { [ 0, 0], [ 32, 0 ], [ 32, 23 ], [ 0, 22 ] }, + { [ 2, 1], [ 29, 1 ], [ 29, 17 ], [ 2, 15 ] } + }; + shape "LWIN" { + approx= { [ 32, 23 ] }, + { [ 0, 0], [ 32, 0 ], [ 32, 24 ], [ 0, 23 ] }, + { [ 2, 1], [ 29, 1 ], [ 29, 18 ], [ 2, 17 ] } + }; + shape "LALT" { + approx= { [ 32, 24 ] }, + { [ 0, 0], [ 32, 0 ], [ 32, 25 ], [ 0, 24 ] }, + { [ 2, 1], [ 29, 1 ], [ 29, 20 ], [ 2, 19 ] } + }; + shape "RDEF" { { [ 18,18] }, { [3,1], [15,15] } }; + shape "KEY7" { { [ 28, 18 ] }, { [ 14, 1], [26, 15] } }; + shape "KEYH" { { [ 24, 18 ] }, { [ 10, 1], [22, 15] } }; + shape "KEYN" { { [ 32, 18 ] }, { [ 18, 1], [30, 15] } }; + shape "BKSP" { { [ 41, 18 ] }, { [ 3, 1], [39, 15] } }; + shape "BKSL" { { [ 24, 18 ] }, { [ 3, 1], [22, 15] } }; + shape "RTRN" { { [ 37, 18 ] }, { [ 3, 1], [35, 15] } }; + shape "RTSH" { { [ 43, 18 ] }, { [ 3, 1], [41, 15] } }; + shape "RALT" { + approx= { [ 27, 24 ] }, + { [ 0, 0], [ 27, 0 ], [ 27, 24 ], [ 0, 25 ] }, + { [ 3, 1], [ 25, 1 ], [ 25, 19 ], [ 3, 20 ] } + }; + shape "RWIN" { + approx= { [ 27, 23 ] }, + { [ 0, 0], [ 27, 0 ], [ 27, 23 ], [ 0, 24 ] }, + { [ 3, 1], [ 25, 1 ], [ 25, 18 ], [ 3, 19 ] } + }; + shape "MENU" { + approx= { [ 27, 21 ] }, + { [ 0, 0], [ 27, 0 ], [ 27, 21 ], [ 0, 23 ] }, + { [ 3, 1], [ 25, 1 ], [ 25, 16 ], [ 3, 17 ] } + }; + shape "RCTL" { + approx= { [ 27, 19 ] }, + { [ 0, 0], [ 27, 0 ], [ 27, 19 ], [ 0, 21 ] }, + { [ 3, 1], [ 25, 1 ], [ 25, 14 ], [ 3, 15 ] } + }; + shape "KPAD" { { [ 18, 37 ] }, { [ 3, 1 ], [ 16, 34 ] } }; + shape "KP0" { { [ 37, 18 ] }, { [ 3, 1 ], [ 35, 15 ] } }; + shape "SPCE" { + { [ 4, 3], [42,10], [44, 0], [88, 0], [90,10], [130, 3], + [134,26], [99,30], [67,33], [33,30], [ 0,26] }, + { [ 6, 4.5], [43,11], [45, 1], [87, 1], [89,11], [128, 4.5], + [131,23], [99,28], [67,32], [33,28], [ 3,23] } + }; + + shape "EDGE" { + cornerRadius= 2, + { [ 25, 0 ], [ 177, 17 ], [ 329, 0 ], [ 542, 0 ], + [ 542, 150 ], [ 354, 150 ], [ 177, 185 ], [ 0, 150 ] } + }; + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + row.left= 1; + key.shape= "LDEF"; + key.gap= 1; + section "LeftFunction" { + top= 10; + left= 40; + angle= 10; + row { + top= 1; + keys { , { , 12 }, , , , }; + }; + }; // End of "LeftFunction" section + + section "LeftAlpha" { + top= 47; + left= 30; + angle= 10; + row { + top= 1; + keys { , , , , , + , { , "KEY6" } + }; + }; + row { + top= 20; + keys { { , "TABK" }, + , , , , { , "KEYT" } + }; + }; + row { + top= 39; + keys { { , "CAPS" }, + , , , , { , "KEYG" } + }; + }; + row { + top= 58; + keys { { , "LFSH" }, + , , , , + }; + }; + row { + top= 77; + keys { { , "LCTL" }, { , "LWIN" }, { , "LALT" } }; + }; + }; // End of "LeftAlpha" section + + key.shape= "RDEF"; + section "RightFunction" { + top= 32; + left= 195; + angle= -10; + row { + top= 1; + left= 1; + keys { , , , , , , }; + }; + }; // End of "RightFunction" section + + section "RightAlpha" { + top= 71; + left= 190; + angle= -10; + row.left= 1; + row { + top= 1; + keys { { , "KEY7" }, + , , , , , + { , "BKSP" } + }; + }; + row { + top= 20; + keys { + , , , , , , , + { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "KEYH" }, + , , , , , + { , "RTRN" } + }; + }; + row { + top= 58; + keys { { , "KEYN" }, + , , , , + { , "RTSH" } + }; + }; + row { + top= 77; + left= 40; + keys { { , "RALT" }, { , "RWIN" }, + { , "MENU" }, { , "RCTL" } + }; + }; + }; // End of "RightAlpha" section + + section "SpaceBar" { + top= 139; + left= 111; + key.shape= "SPCE"; + row { keys { }; }; + }; + + section "Editing" { + top= 15; + left= 385; + row { + top= 1; + keys { , , }; + }; + row { + top= 33; + keys { , , }; + }; + row { + top= 53; + keys { , , }; + }; + row { + top= 91; + left= 20; + keys { }; + }; + row { + top= 109; + keys { , , }; + }; + }; // End of "Editing" section + + shape "LED" { + cornerRadius= 0, + { [ 3, 1 ] } + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.left= 177; + indicator.shape= "LED"; + indicator "Num Lock" { top= 90; }; + indicator "Caps Lock" { top= 107; }; + indicator "Scroll Lock" { top= 127; }; + + section "Keypad" { + top= 47; + left= 456; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; +}; + +// Approximate layout for a Microsoft Natural(R) Keyboard Elite +// +// Modified by Pavel Kurashov Mon Oct 8 22:08:20 NOVST 2007 +// +// * Function, editing and navigation keys are reduced in height +// * Navigation keys are repositioned in two columns +// * Leds are enlarged for better look +// * "BKSP" is aligned with "BKSL" and "RTRN" +// * Outline edges are slightly modified +// +xkb_geometry "elite" { + + // Approximate layout for a Microsoft Natural(R) Keyboard Elite + description= "Microsoft Natural(r) Keyboard Elite"; + width= 495; + height= 190; + + shape.cornerRadius= 1; + shape "LDEF" { { [ 18,18] }, { [2,1], [15,15] } }; + shape "FKEY" { { [ 18,13] }, { [2,1], [15,10] } }; + shape "TABK" { { [ 26,18] }, { [2,1], [23,15] } }; + shape "CAPS" { { [ 30,18] }, { [2,1], [23,15] } }; + shape "LFSH" { { [ 41,18] }, { [2,1], [38,15] } }; + shape "KEY6" { { [ 22,18] }, { [2,1], [15,15] } }; + shape "KEYT" { { [ 33,18] }, { [2,1], [15,15] } }; + shape "KEYG" { { [ 29,18] }, { [2,1], [15,15] } }; + shape "LCTL" { + approx= { [ 32, 22 ] }, + { [ 0, 0], [ 32, 0 ], [ 32, 23 ], [ 0, 22 ] }, + { [ 2, 1], [ 29, 1 ], [ 29, 17 ], [ 2, 15 ] } + }; + shape "LWIN" { + approx= { [ 32, 23 ] }, + { [ 0, 0], [ 32, 0 ], [ 32, 24 ], [ 0, 23 ] }, + { [ 2, 1], [ 29, 1 ], [ 29, 18 ], [ 2, 17 ] } + }; + shape "LALT" { + approx= { [ 32, 24 ] }, + { [ 0, 0], [ 32, 0 ], [ 32, 25 ], [ 0, 24 ] }, + { [ 2, 1], [ 29, 1 ], [ 29, 20 ], [ 2, 19 ] } + }; + shape "RDEF" { { [ 18,18 ] }, { [ 2, 1], [15, 15] } }; + shape "KEY7" { { [ 28, 18 ] }, { [ 14, 1], [26, 15] } }; + shape "KEYH" { { [ 24, 18 ] }, { [ 10, 1], [22, 15] } }; + shape "KEYN" { { [ 32, 18 ] }, { [ 18, 1], [30, 15] } }; + shape "BKSP" { { [ 32, 18 ] }, { [ 2, 1], [30, 15] } }; + shape "BKSL" { { [ 24, 18 ] }, { [ 2, 1], [22, 15] } }; + shape "RTRN" { { [ 37, 18 ] }, { [ 2, 1], [35, 15] } }; + shape "RTSH" { { [ 43, 18 ] }, { [ 2, 1], [41, 15] } }; + shape "RALT" { + approx= { [ 27, 24 ] }, + { [ 0, 0], [ 27, 0 ], [ 27, 24 ], [ 0, 25 ] }, + { [ 3, 1], [ 25, 1 ], [ 25, 19 ], [ 3, 20 ] } + }; + shape "RWIN" { + approx= { [ 27, 23 ] }, + { [ 0, 0], [ 27, 0 ], [ 27, 23 ], [ 0, 24 ] }, + { [ 3, 1], [ 25, 1 ], [ 25, 18 ], [ 3, 19 ] } + }; + shape "MENU" { + approx= { [ 27, 21 ] }, + { [ 0, 0], [ 27, 0 ], [ 27, 21 ], [ 0, 23 ] }, + { [ 3, 1], [ 25, 1 ], [ 25, 16 ], [ 3, 17 ] } + }; + shape "RCTL" { + approx= { [ 27, 19 ] }, + { [ 0, 0], [ 27, 0 ], [ 27, 19 ], [ 0, 21 ] }, + { [ 3, 1], [ 25, 1 ], [ 25, 14 ], [ 3, 15 ] } + }; + shape "KPAD" { { [ 18, 37 ] }, { [ 3, 1 ], [ 16, 34 ] } }; + shape "KP0" { { [ 37, 18 ] }, { [ 3, 1 ], [ 35, 15 ] } }; + shape "SPCE" { + { [ 4, 3], [42,10], [44, 0], [88, 0], [90,10], [130, 3], + [134,26], [99,30], [67,33], [33,30], [ 0,26] }, + { [ 6, 4.5], [43,11], [45, 1], [87, 1], [89,11], [128, 4.5], + [131,23], [99,28], [67,32], [33,28], [ 3,23] } + }; + + shape "EDGE" { + cornerRadius= 3, + { [ 32, 15 ], [140, 33],[ 220, 33 ], [ 329, 15 ], [ 493, 15 ], + [ 493, 150 ], [ 354, 150 ], [200, 180], [ 153, 180 ], [ 7, 150 ] } + }; + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + row.left= 1; + key.shape= "FKEY"; + key.gap= 1; + section "LeftFunction" { + top= 26; + left= 40; + angle= 10; + row { + top= 1; + keys { , { , 12 }, , , , }; + }; + }; // End of "LeftFunction" section + + key.shape= "LDEF"; + section "LeftAlpha" { + top= 47; + left= 30; + angle= 10; + row { + top= 1; + keys { , , , , , + , { , "KEY6" } + }; + }; + row { + top= 20; + keys { { , "TABK" }, + , , , , { , "KEYT" } + }; + }; + row { + top= 39; + keys { { , "CAPS" }, + , , , , { , "KEYG" } + }; + }; + row { + top= 58; + keys { { , "LFSH" }, + , , , , + }; + }; + row { + top= 77; + keys { { , "LCTL" }, { , "LWIN" }, { , "LALT" } }; + }; + }; // End of "LeftAlpha" section + + key.shape= "FKEY"; + section "RightFunction" { + top= 48; + left= 195; + angle= -10; + row { + top= 1; + left= 1; + keys { , , , , , , }; + }; + }; // End of "RightFunction" section + + key.shape= "RDEF"; + section "RightAlpha" { + top= 71; + left= 190; + angle= -10; + row.left= 1; + row { + top= 1; + keys { { , "KEY7" }, + , , , , , + { , "BKSP" } + }; + }; + row { + top= 20; + keys { + , , , , , , , + { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "KEYH" }, + , , , , , + { , "RTRN" } + }; + }; + row { + top= 58; + keys { { , "KEYN" }, + , , , , + { , "RTSH" } + }; + }; + row { + top= 77; + left= 40; + keys { { , "RALT" }, { , "RWIN" }, + { , "MENU" }, { , "RCTL" } + }; + }; + }; // End of "RightAlpha" section + + section "SpaceBar" { + top= 139; + left= 111; + key.shape= "SPCE"; + row { keys { }; }; + }; + + section "Editing" { + key.shape="FKEY"; + top= 23; + left= 348; + row { + top= 0; + keys { , , }; + }; + row { + top= 22; + left=20; + keys { , }; + }; + row { + top= 36; + left=20; + keys { , }; + }; + row { + top= 50; + left=20; + keys { , }; + }; + row { + top= 75; + left= 29; + keys { }; + }; + row { + top= 89; + left=20; + keys { , }; + }; + row { + top= 103; + left=29; + keys { }; + }; + }; // End of "Editing" section + + shape "LED" { + cornerRadius= 1, + { [ 7, 2 ] } + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.left= 177; + indicator.shape= "LED"; + indicator "Num Lock" { top= 90; }; + indicator "Caps Lock" { top= 107; }; + indicator "Scroll Lock" { top= 127; }; + + section "Keypad" { + top= 44; + left= 412; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/nec b/squashfs-root/usr/share/X11/xkb/geometry/nec new file mode 100644 index 0000000..f4af666 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/nec @@ -0,0 +1,157 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// + +default xkb_geometry "pc98" { + + description= "Generic PC98"; + width= 405; + height= 172; + + shape.cornerRadius= 1; + shape "NORM" { { [ 17,18] }, { [2,1], [ 15,17] } }; + shape "RTRN" { { [ 20,37] }, { [2,1], [ 18,35] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; + shape "RTSH" { { [ 31,18] }, { [2,1], [ 29,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "SPCE" { { [115,18] }, { [2,1], [113,17] } }; + shape "FUNC" { { [ 21,18] }, { [2,1], [ 19,17] } }; + shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,36] } }; + shape "TABK" { { [ 30,18] }, { [2,1], [ 28,17] } }; + shape "ARRW" { { [ 35,18] }, { [2,1], [ 33,17] } }; + + section.left= 8; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 29; + row { + top= 1; + key.shape="FUNC"; + keys { { , "NORM" }, { , "NORM", 5 }, + { , 6 }, , , , , + { , 6 }, , , , , + { , 6 }, , , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 54; + row { + top= 1; + keys { { , shape="BKSP"}, + , , , , + , , , , , + , , , , + { , "BKSP" } + }; + }; + row { + top= 20; + keys { { , "TABK" }, + , , , , , + , , , , , + , , { , "RTRN", 6 } + }; + }; + row { + top= 39; + keys { , , + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH" }, + , , , , , + , , , , , , + { , "RTSH" } + }; + }; + row { + top= 77; + keys { { , 35 } , , { , "FUNC" }, + { , "SPCE" }, { , "FUNC" } + + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 54; + left= 281; + row { + top= 1; + keys { , }; + }; + row { + top= 20; + keys { , }; + }; + row { + top= 39; + keys { { , "ARRW" } }; + }; + row { + top= 58; + keys { , }; + }; + row { + top= 77; + keys { { , "ARRW" } }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 54; + left= 320; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , }; + }; + row { + top= 39; + keys { , , , }; + }; + row { + top= 58; + keys { , , , }; + }; + row { + top= 77; + keys { , , , }; + }; + }; // End of "Keypad" section + +}; // End of "pc98" geometry diff --git a/squashfs-root/usr/share/X11/xkb/geometry/nokia b/squashfs-root/usr/share/X11/xkb/geometry/nokia new file mode 100644 index 0000000..5132840 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/nokia @@ -0,0 +1,53 @@ +// Zoomed 3x because of text size + +default xkb_geometry "nokiarx51" { + + description= "Nokia RX-51"; + width= 273; // 13x6mm + 2x1.5mm border + 2x5mm border + height= 54; // 3x5mm + 2x1.5mm border + + shape.cornerRadius= 1.5; + shape "NORM" { { [18,15] } }; + shape "SPCE" { { [36,15] } }; + shape "FRAME" { cornerRadius= 2.5, { [243,54] } }; + + solid "FRAME" { + shape= "FRAME"; + color= "white"; + top= 0; + left= 15; + }; + + section.left= 15; + row.left= 4.5; + key.shape= "NORM"; + key.gap= 0; + section "Keys" { + top= 0; + row { + top= 4.5; + keys { { , "NORM", color="grey20" }, + , , , , , + , , , , , , + { , "NORM", color="grey20" } + }; + }; + row { + top= 19.5; + keys { { , "NORM", color="grey20" }, + , , , , , + , , , , , , + { , "NORM", color="grey20" } + }; + }; + row { + top= 34.5; + keys { { , "NORM", color="grey20" }, + , , , , , , , + { , "SPCE", color="white" }, + , , + }; + }; + }; // End of "Keys" section + +}; // End of "rx51" geometry diff --git a/squashfs-root/usr/share/X11/xkb/geometry/northgate b/squashfs-root/usr/share/X11/xkb/geometry/northgate new file mode 100644 index 0000000..364bf54 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/northgate @@ -0,0 +1,168 @@ +default xkb_geometry "omnikey101" { + + description= "North Gate Omnikey 101"; + width= 470; + height= 175; + + shape.cornerRadius= 1; + shape "NORM" { { [18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [34,18] }, { [2,1], [32,17] } }; + shape "TABK" { { [27,18] }, { [2,1], [25,17] } }; + shape "RTRN" { + approx = { [15, 0], [40,37] }, + { [15, 0], [40, 0], [40,37], + [ 0,37], [ 0,19], [15,19] }, + { [17, 1], [38, 1], [38,36], + [ 2,36], [ 2,20], [17,20] } + }; + shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } }; + shape "LFSH" { { [ 41,18] }, { [2,1], [39,17] } }; + shape "RTSH" { { [ 30,18] }, { [2,1], [28,17] } }; + shape "MODK" { { [ 26,18] }, { [2,1], [24,17] } }; + shape "SPCE" { { [129,18] }, { [2,1], [127,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; + + shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 32; + left= 375; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 46.5; + indicator.shape= "LED"; + indicator "Num Lock" { left= 384; }; + indicator "Caps Lock" { left= 409; }; + indicator "Scroll Lock" { left= 434; }; + text.top= 34; + text.color= "black"; + text "NumLockLabel" { left= 380.5; text="Num\nLock"; }; + text "CapsLockLabel" { left= 405; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 430; text="Scroll\nLock"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 32; + row { + top= 1; + keys { { , color="grey20" }, + { , 18}, , , , + { , 9 }, , , , + { , 9 }, , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 65; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , + { , "RTRN", -14, color="grey20" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" }, + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , + { , 23 }, + { , "SPCE", color="white" }, + , + { , 23 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 32; + left= 308; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 33; + keys { , , }; + }; + row { + top= 53; + keys { , , }; + }; + row { + top= 91; + left= 20; + keys { }; + }; + row { + top= 110; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 65; + left= 374; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "default" geometry diff --git a/squashfs-root/usr/share/X11/xkb/geometry/pc b/squashfs-root/usr/share/X11/xkb/geometry/pc new file mode 100644 index 0000000..c4869a7 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/pc @@ -0,0 +1,1567 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// + +default xkb_geometry "pc101" { + + description= "Generic 101"; + width= 470; + height= 180; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; + shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; + shape "SPCE" { { [133,18] }, { [2,1], [131,16] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; + + shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 22; + left= 377; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 37; + indicator.shape= "LED"; + indicator "Num Lock" { left= 382; }; + indicator "Caps Lock" { left= 407; }; + indicator "Scroll Lock" { left= 433; }; + text.top= 25; + text.color= "black"; + text "NumLockLabel" { left= 378; text="Num\nLock"; }; + text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 22; + row { + top= 1; + keys { { , color="grey20" }, + { , 20 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , { , "RTRN", color="grey20" } + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , 21 }, + { , "SPCE", color="white" }, + , { , 21 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 312; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 376; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "default" geometry + +xkb_geometry "pc102" { + + description= "Generic 102"; + width= 470; + height= 180; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "RTRN" { + { [0,0], [28,0], [28,37], [5,37], [5,18], [0,18] }, + { [2,1], [26,1], [26,35], [7,35], [7,16], [2,16] } }; + shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; + shape "LFSH" { { [ 25,18] }, { [2,1], [ 23,16] } }; + shape "RTSH" { { [ 50,18] }, { [2,1], [ 48,16] } }; + shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; + shape "SPCE" { { [134,18] }, { [2,1], [132,16] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; + + shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 22; + left= 377; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 37; + indicator.shape= "LED"; + indicator "Num Lock" { left= 382; }; + indicator "Caps Lock" { left= 407; }; + indicator "Scroll Lock" { left= 433; }; + text.top= 25; + text.color= "black"; + text "NumLockLabel" { left= 378; text="Num\nLock"; }; + text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 22; + row { + top= 1; + keys { { , "TABK", color="grey20" }, + { , 10 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , "RTRN", color="grey20" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , 20 }, + { , "SPCE", color="white" }, + , { , 21 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 312; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 376; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "pc102" geometry + +xkb_geometry "pc104" { + + description= "Generic 104"; + width= 470; + height= 180; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; + shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; + shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } }; + shape "SPCE" { { [113,18] }, { [2,1], [111,16] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; + + shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 22; + left= 377; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 37; + indicator.shape= "LED"; + indicator "Num Lock" { left= 382; }; + indicator "Caps Lock" { left= 407; }; + indicator "Scroll Lock" { left= 433; }; + text.top= 25; + text.color= "black"; + text "NumLockLabel" { left= 378; text="Num\nLock"; }; + text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 22; + row { + top= 1; + keys { { , color="grey20" }, + { , 20 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , { , "RTRN", color="grey20" } + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "SMOD"; + key.color= "grey20"; + keys { { , "MODK" }, , , + { , "SPCE", color="white" }, + , , , + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 312; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 376; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "pc104" geometry + +xkb_geometry "pc105" { + + description= "Generic 105"; + width= 470; + height= 180; + + shape.cornerRadius= 1; + + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "RTRN" { + { [0,0], [28,0], [28,37], [5,37], [5,18], [0,18] } , + { [2,1], [26,1], [26,35], [7,35], [7,16], [2,16] } , + approx = { [5,0], [28,37] } }; + shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; + shape "LFSH" { { [ 25,18] }, { [2,1], [ 23,16] } }; + shape "RTSH" { { [ 50,18] }, { [2,1], [ 48,16] } }; + shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; + shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } }; + shape "SPCE" { { [113,18] }, { [2,1], [111,16] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; + + shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 22; + left= 377; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 37; + indicator.shape= "LED"; + indicator "Num Lock" { left= 382; }; + indicator "Caps Lock" { left= 407; }; + indicator "Scroll Lock" { left= 433; }; + text.top= 25; + text.color= "black"; + text "NumLockLabel" { left= 378; text="Num\nLock"; }; + text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 22; + row { + top= 1; + keys { { , color="grey20" }, + { , 20 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , "RTRN", color="grey20" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "SMOD"; + key.color= "grey20"; + keys { { , "MODK" }, , , + { , "SPCE", color="white" }, + , , , + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 312; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 376; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "pc105" geometry + + +// Added for Japanese 106 keyboard by . +xkb_geometry "jp106" { + + description= "Japanese 106"; + width= 470; + height= 180; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "BKSL" { { [ 27,18] }, { [2,1], [ 25,17] } }; + shape "RTRN" { + { [0,0],[ 27,0],[27,37],[4,37],[4,18],[0,18] } , + { [2,1],[ 25,1],[25,36],[5,36],[5,17],[2,17] } }; + shape "CAPS" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; + shape "RTSH" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "SPCE" { { [ 46,18] }, { [2,1], [ 44,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,36] } }; + + shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 25; + left= 375; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 40; + indicator.shape= "LED"; + indicator "Num Lock" { left= 379; }; + indicator "Caps Lock" { left= 404; }; + indicator "Scroll Lock" { left= 429; }; + text.top= 28; + text.color= "black"; + text "NumLockLabel" { left= 378; text="Num\nLock"; }; + text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 25; + row { + top= 1; + keys { { , color="grey20" }, + { , 18 }, , , , + { , 11 ,color="grey20"}, {,color="grey20"}, + { , color="grey20"}, {,color="grey20"}, + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { {,color="grey20"}, , , + , , , , , + , , , , , + , { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , 1 ,"RTRN",color="grey20" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + , { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , 20 },, + { , "SPCE", color="white" }, + ,,, { , 17 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 310; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 375; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "jp106" geometry + +// Added for Brazilian ABNT2 by Ricardo Y. Igarashi . +xkb_geometry "abnt2" { + include "pc(pc105)" + + description= "Brazilian ABNT2"; + + shape "RTRN" { + { [0,0],[ 28,0],[28,37],[4,37],[4,18],[0,18] } , + { [2,1],[ 26,1],[26,36],[5,36],[5,18],[2,18] } }; + shape "RTSH" { { [ 31,18] }, { [2,1], [ 29,16] } }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Alpha" { + top= 61; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , "RTRN", color="grey20" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , , + , , , , , , + { , "RTSH", color="grey20" } + }; + }; + }; // End of "Alpha" section + + section "Keypad" { + top= 61; + left= 376; + row { + top= 20; + keys { , , , { , color="grey20" } }; + }; + row { + top= 39; + keys { , , , { , color="grey20" } }; + }; + }; // End of "Keypad" section + +}; // End of "abnt2" geometry + + +// Created by Alexander Pohoyda + +xkb_geometry "pc86" { + description = "Noname keyboard with 86 keys, DE"; + width = 287; + height = 143; + baseColor = "grey20"; + + shape "EDGE" { cornerRadius = 2, { [287, 143] } }; + shape "LED" { cornerRadius = 2, { [3, 3] } }; + shape "LEDS" { cornerRadius = 0, { [75, 5] } }; + shape "KEYS" { cornerRadius = 0, { [271, 109] } }; + + outline "Edges" { + top = 0; + left = 0; + shape = "EDGE"; + color = "black"; + }; + + solid "KeyPanel" { + shape = "KEYS"; + left = 8; + top = 22; + color = "grey70"; + }; + + solid "LedPanel" { + shape = "LEDS"; + left = 212; + top = 10; + color = "black"; + }; + + indicator.onColor = "green"; + indicator.offColor = "green30"; + indicator.top = 11; + indicator.shape = "LED"; + indicator "Num Lock" { left = 212 + 7; }; + indicator "Caps Lock" { left = 212 + 23; }; + indicator "Scroll Lock" { left = 212 + 39; }; + text.fontSize = 6; + text.top = 10; + text.color = "white"; + text "NumLockLabel" { left = 212 + 7 + 5; text = "Num\nLock"; }; + text "CapsLockLabel" { left = 212 + 23 + 5; text = "Caps\nLock"; }; + text "ScrollLockLabel" { left = 212 + 39 + 5; text = "Scroll\nLock"; }; + + shape.cornerRadius = 1; + shape "SMALL" { { [15, 12] }, { [1.5, 0], [13.5, 10] } }; + shape "NARR" { { [13, 18] }, { [1.5, 0], [11.5, 14] } }; + shape "NORM" { { [18, 18] }, { [3, 0], [15, 14] } }; + shape "NORM_1" { { [22, 18] }, { [4, 0], [22, 18] }, + { [7, 0], [19, 14] } }; + shape "WIDER" { { [23, 18] }, { [3, 0], [20, 14] } }; + shape "WIDEST" { { [27, 18] }, { [3, 0], [24, 14] } }; + shape "SPCE" { { [75, 18] }, { [3, 0], [72, 14] } }; + + section "Function" { + key.shape = "SMALL"; + key.gap = 0.99; + key.color = "grey30"; + left = 8; + top = 22; + row { + top = 1; + keys { , + , , , , + , , , , + , , , , + , , , + }; + }; + }; // End of "Function" section + + section "Control" { + key.shape = "NORM"; + key.gap = 1; + key.color = "grey30"; + left = 8; + top = 111; + row { + top = 1; + keys { , , , + { , shape="SPCE", 39 }, , + , + }; + }; + }; // End of "Control" section + + section "Editing" { + key.shape = "NARR"; + key.gap = 1; + key.color = "grey30"; + left = 265; + top = 34; + row.vertical = True; + row { + top = 1; + keys { , , , }; + }; + }; // End of "Editing" section + + section "Navigation" { + key.gap = 1; + key.shape = "NARR"; + key.color = "grey30"; + left = 236; + top = 92; + row { + left = 14; + top = 1; + keys { }; + }; + row { + top = 20; + keys { , , }; + }; + }; // End of "Navigation" section + + section "Alpha" { + key.gap = 1; + key.shape = "NORM"; + key.color = "grey10"; + left = 8; + top = 35; + row { + top = 1; + keys { { , shape="NORM_1" }, , , , + , , , , , + , , , + { , shape="WIDER", color="grey30" } + }; + }; + row { + top = 20; + keys { { , shape="NARR", color="grey30" }, + , , , , , + , , , , , + , , { , shape="NARR" } + }; + }; + row { + top = 39; + keys { { , color="grey30" }, + , , , , , + , , , , , + , { , shape="WIDEST", color="grey30" } + }; + }; + row { + top = 58; + keys { { , shape="WIDEST", color="grey30" }, + , , , , , + , , , , , + { , shape="WIDER", color="grey30" } + }; + }; + row { + left = 57; + top = 77; + keys { , }; + }; + }; // End of "Alpha" section + + alias = ; + alias = ; +}; // End of "pc86" geometry + +xkb_geometry "kr106" { + + description= "Korean 106"; + width= 470; + height= 180; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; + shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; + shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } }; + shape "SPCE" { { [ 75,18] }, { [2,1], [ 73,16] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; + + shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 22; + left= 377; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 37; + indicator.shape= "LED"; + indicator "Num Lock" { left= 382; }; + indicator "Caps Lock" { left= 407; }; + indicator "Scroll Lock" { left= 433; }; + text.top= 25; + text.color= "black"; + text "NumLockLabel" { left= 378; text="Num\nLock"; }; + text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 22; + row { + top= 1; + keys { { , color="grey20" }, + { , 20 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , { , "RTRN", color="grey20" } + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "SMOD"; + key.color= "grey20"; + keys { { , "MODK" }, , , + { , "NORM", color="white" }, + { , "SPCE", color="white" }, + { , "NORM", color="white" }, + , , , + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 312; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 376; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "kr106" geometry + +// Based on the pc(pc105) layout. The keypad, sysreq/ScrLk/Break, and multimedia +// keys are not shown because they are shared with other keys via the key. +// This should not be a problem if the normal symbols are used, as the keys will +// show through normally, they just won't show from xkbprint. For the record, +// + = AudioRaise, +// + = AudioLower, +// + = AudioMute, +// + = Sysreq, +// + = ScrollLock, +// + = , +// +7 = KP_7, +// +8 = KP_8, +// +9 = KP_9, +// +0 = KP_MUL, +// +U = KP_4, +// +I = KP_5, +// +O = KP_6, +// +P = KP_SUB, +// +J = KP_1, +// +K = KP_2, +// +L = KP_3, +// +; = KP_ADD, +// +M = KP_INS, +// +. = KP_DEL, +// +/ = KP_DIV. +// The other FN combinations aren't passed to X, but are handled by BIOS. +// and all keys with level mappings are marked in grey20. +// +// David Cameron Staples 2006-05-12 + +xkb_geometry "latitude" { + + description= "Dell Latitude"; + width= 330; + height= 210; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18 ,18] }, { [2,1 ], [ 16,16] } }; + shape "FUNC" { { [ 16.2,12] }, { [2,0.5], [ 14,10] } }; + shape "ESC" { { [ 18 ,12] }, { [2,0.5], [ 16,10] } }; + shape "BKSP" { { [ 38 ,18] }, { [2,1 ], [ 36,16] } }; + shape "TABK" { { [ 28 ,18] }, { [2,1 ], [ 26,16] } }; + shape "BKSL" { { [ 28 ,18] }, { [2,1 ], [ 26,16] } }; + shape "RTRN" { { [ 42 ,18] }, { [2,1 ], [ 40,16] } }; + shape "CAPS" { { [ 33 ,18] }, { [2,1 ], [ 26,16] } }; + shape "LFSH" { { [ 42 ,18] }, { [2,1 ], [ 40,16] } }; + shape "RTSH" { { [ 52 ,18] }, { [2,1 ], [ 50,16] } }; + shape "SPCE" { { [ 95 ,18] }, { [2,1 ], [ 93,16] } }; + shape "LCTL" { { [ 28 ,14] }, { [2,1 ], [ 26,12] } }; + shape "LALT" { { [ 22 ,14] }, { [2,1 ], [ 20,12] } }; + shape "WIN" { { [ 18 ,14] }, { [2,1 ], [ 16,12] } }; + + shape "LED" { cornerRadius= 0.5, { [ 1, 3 ] } }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 37; + indicator.shape= "LED"; + indicator "Num Lock" { left= 138; }; + indicator "Caps Lock" { left= 150; }; + indicator "Scroll Lock" { left= 162; }; + text.top= 33; + text.color= "black"; + text "NumLockLabel" { left= 140; text="Num\nLock"; }; + text "CapsLockLabel" { left= 152; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 164; text="Scroll\nLock"; }; + + text "LATITUDE" { left= 19; text="L A T I T U D E"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 32; + key.shape= "FUNC"; + key.color= "grey20"; + row { + top= 1; + left= 163.8; + keys { { , color="white" }, , , , + { , 3, color="white" }, + { , color="white"}, + }; + }; + row { + top= 14; + keys { { , "ESC" }, + { , 3 }, + { , color="white" }, , + { , color="white" }, + { , 3 }, + { , color="white" }, , , + { , 3, color="white" }, , + { , color="white" }, + { , color="white" }, + { , 3, color="white" }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 60; + row { + top= 1; + keys { , , , , , + , , + { , color="grey20" }, + { , color="grey20" }, + { , color="grey20" }, + { , color="grey20" }, , , + { , "BKSP" } + }; + }; + row { + top= 20; + keys { { , "TABK" }, + , , , , , + , + { , color="grey20" }, + { , color="grey20" }, + { , color="grey20" }, + { , color="grey20" }, + , , { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "CAPS" }, + , , , , , + , + { , color="grey20" }, + { , color="grey20" }, + { , color="grey20" }, + { , color="grey20" }, + , { , "RTRN" } + }; + }; + row { + top= 58; + keys { { , "LFSH" }, + , , , , , + , + { , color="grey20" }, , + { , color="grey20" }, + { , color="grey20" }, + { , "RTSH" } + }; + }; + row { + top= 77; + key.shape= "WIN"; + keys { { , "LCTL" }, + { , color="grey20" }, + , + { , "LALT" }, + { , "SPCE" }, + , + { , "LALT" } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 136; + left= 250; + key.shape= "FUNC"; + key.color= "grey20"; + row { + top= 1; + left= 18.2; + keys { }; + }; + row { + top= 14; + keys { , , }; + }; + }; // End of "Editing" section + + alias = ; + alias = ; + +}; // End of "latitude" geometry + +xkb_geometry "pc104alt" { + + description= "Generic 104 with L-shaped Enter and small Backspace with Backslash left to it"; + width= 470; + height= 210; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "BKSP" { { [ 19,18] }, { [2,1], [ 17,16] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; +// shape "RTRN" { { [ 0,19 ], [ 0,37 ], [ 42,37 ], [ 42,0 ], [ 14,0 ], [ 14,19 ] }, +// { [ 2,20 ], [ 2,35 ], [ 40,35 ], [ 40,1 ], [ 16,1 ], [ 16,20 ] }, +// approx = { [ 17,21 ], [ 39,34 ] } +// }; + shape "RTRN" { { [ -14,19 ], [ -14,37 ], [ 28,37 ], [ 28,0 ], [ 0,0 ], [ 0,19 ] }, + { [ -12,20 ], [ -12,35 ], [ 26,35 ], [ 26,1 ], [ 2,1 ], [ 2,20 ] }, + approx = { [ 3,21 ], [ 25,34 ] } + }; + shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; + shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; + shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } }; + shape "SPCE" { { [113,18] }, { [2,1], [111,16] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; + + shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 52; + left= 377; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 67; + indicator.shape= "LED"; + indicator "Num Lock" { left= 382; }; + indicator "Caps Lock" { left= 407; }; + indicator "Scroll Lock" { left= 433; }; + text.top= 55; + text.color= "black"; + text "NumLockLabel" { left= 378; text="Num\nLock"; }; + text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 52; + row { + top= 1; + keys { { , color="grey20" }, + { , 20 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 91; + row { + top= 1; + keys { , , , , , + , , , , , + , , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , +// , , { , -13, "RTRN", color="grey20" } + , , { , "RTRN", color="grey20" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "SMOD"; + key.color= "grey20"; + keys { { , "MODK" }, , , + { , "SPCE", color="white" }, + , , , + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 91; + left= 312; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 91; + left= 376; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "pc104alt" geometry diff --git a/squashfs-root/usr/share/X11/xkb/geometry/sanwa b/squashfs-root/usr/share/X11/xkb/geometry/sanwa new file mode 100644 index 0000000..350dbd1 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/sanwa @@ -0,0 +1,150 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +default xkb_geometry "sanwaskbkg3" { + + description= "Sanwa Supply SKB-KG3"; + // SKB-KG3BK (black) + // http://www.sanwa.co.jp/product/syohin.asp?code=SKB-KG3BK + // http://www.sanwa.co.jp/zooma/keybord/SKB-KG3BK/ + // SKB-KG3W (white) + // http://www.sanwa.co.jp/product/syohin.asp?code=SKB-KG3W + // http://www.sanwa.co.jp/zooma/keybord/SKB-KG3SW/ + // SKB-KG3SV (silver) + // http://www.sanwa.co.jp/product/syohin.asp?code=SKB-KG3SV + // http://www.sanwa.co.jp/zooma/keybord/SKB-KG3SV/ + + width= 304; + height= 127; + + shape.cornerRadius= 1; + shape "TOP" { { [15.25,13] }, { [2,2], [13.25,11] } }; + shape "NORM" { { [17,16] }, { [2,2], [15,14] } }; + shape "TBBK" { { [24.5,16] }, { [2,2], [22.5,14] } }; + shape "RTRN" { { [0,0], [36,0], [36,34], [8.5,34], [8.5,16], [0,16] }, + { [2,2], [34,2], [34,32], [10.5,32], [10.5,14], [2,14] } }; + shape "CAPS" { { [33,16] }, { [28,16] }, { [2,2], [26,14] } }; + shape "LFSH" { { [41,16] }, { [2,2], [39,14] } }; + shape "CTSH" { { [19.5,16] }, { [2,2], [17.5,14] } }; + shape "SPCE" { { [57.5,16] }, { [2,2], [55.5,14] } }; + + shape "LED" { cornerRadius= 0, { [5,1] } }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 3; + indicator.shape= "LED"; + indicator "Num Lock" { left= 247; }; + indicator "Caps Lock" { left= 266; }; + indicator "Scroll Lock" { left= 285; }; + text.color= "black"; + text.top= 1; + text "Vendor1" { left= 10; text="SANWA"; }; + text.top= 4.5; + text "Vendor2" { left= 10; text="SUPPLY"; }; + text "NumLockLabel" { left= 241; text="Num Lock"; }; + text "CapsLockLabel" { left= 260; text="Caps Lock"; }; + text "ScrollLockLabel" { left= 279; text="Scroll Lock"; }; + + section.left= 3; + row.left= 1; + key.shape= "NORM"; + key.gap= 2; + section "Function" { + key.shape= "TOP"; + top= 10; + row { + top= 1; + keys { , , , , , , , + , , , , , , , + {, color="grey20"}, , {, color="grey20"} + }; + }; + overlay "SCLK" { + = + }; + overlay "FN" { + = + }; + }; // End of "Function" section + + section "Alpha" { + top= 24; + row { + top= 2; + keys { , , , , , , , + {, color="grey20"}, {, color="grey20"}, + {, color="grey20"}, {, color="grey20"}, + , , , { , "TBBK" } + }; + }; + row { + top= 20; + keys { { , "TBBK" }, , , , , , + , {, color="grey20"}, {, color="grey20"}, + {, color="grey20"}, {, color="grey20"}, , + , { , "RTRN" } + }; + }; + row { + top= 38; + keys { { , "CAPS" }, , , , , , + , {, color="grey20"}, {, color="grey20"}, + {, color="grey20"}, {, color="grey20"}, , + + }; + }; + row { + top= 56; + keys { { , "LFSH" }, , , , , , + , {, color="grey20"}, , + {, color="grey20"}, {, color="grey20"}, , + {, color="grey20"}, {, key.shape= "CTSH" } + }; + }; + row { + top= 74; + keys { { , key.shape= "CTSH" }, {, color="grey20"}, + , , , {, "SPCE" }, , , + , , {, color="grey20"}, + {, color="grey20"}, + {, key.shape= "CTSH", color="grey20"} + }; + }; + overlay "SCLK" { + =, =, =, =, + =, =, =, =, + =, =, =, =, + =, =, = + }; + overlay "FN" { + =, =, =, = + }; + }; // End of "Alpha" section + + alias = ; + alias = ; + +}; // End of "default" geometry diff --git a/squashfs-root/usr/share/X11/xkb/geometry/sgi_vndr/O2 b/squashfs-root/usr/share/X11/xkb/geometry/sgi_vndr/O2 new file mode 100644 index 0000000..8bd1779 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/sgi_vndr/O2 @@ -0,0 +1,614 @@ +// +// Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc. +// +// Permission to use, copy, modify, and distribute this +// software and its documentation for any purpose and without +// fee is hereby granted, provided that the above copyright +// notice appear in all copies and that both that copyright +// notice and this permission notice appear in supporting +// documentation, and that the name of Silicon Graphics not be +// used in advertising or publicity pertaining to distribution +// of the software without specific prior written permission. +// Silicon Graphics makes no representation about the suitability +// of this software for any purpose. It is provided "as is" +// without any express or implied warranty. +// +// SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +// SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON +// GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL +// DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH +// THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +default xkb_geometry "pc101" { + + // This is an approximate layout for a 101-key (US/ASCII) SGI + // keyboard. I just took a similar layout (101 key PC keyboard) + // and adjusted the sizes of a few keys by eye. I didn't actually + // *measure* a real keyboard. + + description= "101-key keyboard for Silicon Graphics O2"; + + width= 448; + height= 162; + + shape "EDGE" { + cornerRadius= 2, + { [ 15, 0 ], [ 433, 0 ], [ 433, 10 ], [ 448, 10 ], + [ 448, 162 ], [ 0, 162 ], [ 0, 10 ], [ 15, 10 ] } + }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "BKSL" { { [ 27,18] }, { [2,1], [25,17] } }; + shape "RTRN" { { [ 40,18] }, { [2,1], [37,17] } }; + shape "CAPS" { { [ 34,18] }, { [2,1], [29,17] } }; + shape "RTSH" { { [ 49,18] }, { [2,1], [47,17] } }; + shape "LFSH" { { [ 44,18] }, { [2,1], [42,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; + shape "LOGO" { { [ 12,12] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 6; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 25; + row { + top= 1; + keys { { , color="grey20" }, + { , 19}, , , , + { , 11}, , , , + { , 11}, , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 58; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color= "grey20" }, + , , , , , + , , , , , + , , + { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , { , "RTRN", color="grey20" } + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , 20 }, + { , "SPCE",color="white" }, + , { , 20 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 25; + left= 299; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 33; + keys { , , }; + }; + row { + top= 53; + keys { , , }; + }; + row { + top= 91; + left= 20; + keys { }; + }; + row { + top= 110; + keys { , , }; + }; + }; // End of "Editing" section + + shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 3, 1.5] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 25; + left= 364; + color= "grey10"; + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 40.5; + indicator.shape= "LED"; + indicator "Num Lock" { left= 372; }; + indicator "Caps Lock" { left= 397; }; + indicator "Scro llLock" { left= 422; }; + + text.font= "helvetica"; + text.weight= "bold"; + text.slant= "r"; + text.fontWidth= "normal"; + text.fontSize= 12; + text.top= 39.5; + text.color= "black"; + text "NumLockLabel" { left= 376.5; text="1"; }; + text "CapsLockLabel" { left= 401.5; text="A"; }; + text "ScrollLockLabel" { left= 426.5; text="S"; }; + + logo "SGILogoImage" { + top= 26.5; + left= 396; + name= "SGI"; + shape= "LOGO"; + }; + text.font= "helvetica"; + text.weight= "bold"; + text.slant= "o"; + text.fontWidth= "narrow"; + text.fontSize= 18; + text "SiliconLogoText" { + top= 27; + left= 375; + width= 20; + text= "Silicon"; + }; + text "GraphicsLogoText" { + top= 27; + left= 409; + width= 20; + text= "Graphics"; + }; + + section "Keypad" { + top= 58; + left= 363; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + alias = ; + alias = ; +}; + +xkb_geometry "pc102" { + + // This is an approximate layout for 102-key SGI international + // keyboards. I just took a similar layout (101 key PC keyboard) + // and adjusted the sizes of a few keys by eye. I didn't actually + // *measure* a real keyboard. + + description= "Silicon Graphics 102-key Keyboard"; + width= 470; + height= 193; + + shape.cornerRadius= 1; + shape "EDGE" { cornerRadius=2, { [ 470, 193 ] } }; + shape "NORM" { { [18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [35,18] }, { [2,1], [33,17] } }; + shape "TABK" { { [27,18] }, { [2,1], [25,17] } }; + shape "RTRN" { + approx = { [ 0, 0], [26,37] }, + { [ 0, 0], [26, 0], [26,37], + [ 5,37], [ 5,18], [ 0,18] }, + { [ 1, 1], [24, 1], [24,36], + [ 7,36], [ 7,17], [ 1,17] } + }; + shape "CAPS" { { [ 32,18] }, { [2,1], [25,17] } }; + shape "RTSH" { { [ 50,18] }, { [2,1], [48,17] } }; + shape "LFSH" { { [ 22,18] }, { [2,1], [20,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; + shape "LOGO" { { [ 16,16] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 50; + row { + top= 1; + keys { { , color="grey20" }, + { , 18}, , , , + { , 10}, , , , + { , 10}, , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 83; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color= "grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color= "grey20" }, + , , , , , + , , , , , + , , + { , "RTRN", color= "grey20" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color= "grey20" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH", color= "grey20" }, , + , , , , , + , , , , , + { , "RTSH", color= "grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , + { , 19 }, + { , "SPCE", color="white" }, + , + { , 19 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 50; + left= 308; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 33; + keys { , , }; + }; + row { + top= 53; + keys { , , }; + }; + row { + top= 91; + left= 20; + keys { }; + }; + row { + top= 110; + keys { , , }; + }; + }; // End of "Editing" section + + shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 50; + left= 375; + color= "grey10"; + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 64.5; + indicator.shape= "LED"; + indicator "Num Lock" { left= 384; }; + indicator "Caps Lock" { left= 409; }; + indicator "Scroll Lock" { left= 434; }; + text.top= 52; + text.color= "black"; + text "NumLockLabel" { left= 380.5; text="Num\nLock"; }; + text "CapsLockLabel" { left= 405; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 430; text="Scroll\nLock"; }; + + logo "SGILogoImage" { + top= 17; + left= 22; + name= "SGI"; + shape= "LOGO"; + }; + text "SGILogoText" { + top= 21; + left= 40; + width= 50; + text= "SiliconGraphics"; + font= "helvetica"; + slant= "o"; + weight= "bold"; + setWidth= "narrow"; + fontSize= 24; + }; + + section "Keypad" { + top= 83; + left= 374; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + alias = ; + alias = ; +}; + +xkb_geometry "jp106" { + description= "Silicon Graphics 106-key Japanese keyboard"; + width= 442; + height= 167; + + shape "EDGE" { cornerRadius= 2, { [ 442, 167 ] } }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "BKSL" { { [ 27,18] }, { [2,1], [ 25,17] } }; + shape "RTRN" { + { [0,0],[ 27,0],[27,37],[4,37],[4,18],[0,18] } , + { [2,1],[ 25,1],[25,36],[5,36],[5,17],[2,17] } }; + shape "CAPS" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; + shape "RTSH" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "SPCE" { { [ 46,18] }, { [2,1], [ 44,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,36] } }; + shape "LOGO" { { [ 16,16] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + logo "SGILogoImage" { + top= 5; + left= 6; + name= "SGI"; + shape= "LOGO"; + }; + + text "SGILogoText" { + top= 9; + left= 25; + width= 50; + text= "SiliconGraphics"; + font= "helvetica"; + slant= "o"; + weight= "bold"; + fontWidth= "narrow"; + fontSize= 24; + }; + + shape "LEDS" { cornerRadius= 0.1, { [ 76 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 25; + left= 362; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 40; + indicator.shape= "LED"; + indicator "Num Lock" { left= 366; }; + indicator "Caps Lock" { left= 391; }; + indicator "Scroll Lock" { left= 416; }; + text.top= 28; + text.color= "black"; + text "NumLockLabel" { left= 366; text="Num\nLock"; }; + text "CapsLockLabel" { left= 391; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 416; text="Scroll\nLock"; }; + + section.left= 5; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 25; + row { + top= 1; + keys { { , color="grey20" }, + { , 18 }, , , , + { , 11 ,color="grey20"}, {,color="grey20"}, + { , color="grey20"}, {,color="grey20"}, + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { {,color="grey20"}, , , + , , , , , + , , , , , + , { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , 1 ,"RTRN",color="grey20" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + , { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , 20 },, + { , "SPCE", color="white" }, + ,,, { , 17 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 296; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 361; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "jp106" geometry diff --git a/squashfs-root/usr/share/X11/xkb/geometry/sgi_vndr/indigo b/squashfs-root/usr/share/X11/xkb/geometry/sgi_vndr/indigo new file mode 100644 index 0000000..2c17466 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/sgi_vndr/indigo @@ -0,0 +1,410 @@ +// +// Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc. +// +// Permission to use, copy, modify, and distribute this +// software and its documentation for any purpose and without +// fee is hereby granted, provided that the above copyright +// notice appear in all copies and that both that copyright +// notice and this permission notice appear in supporting +// documentation, and that the name of Silicon Graphics not be +// used in advertising or publicity pertaining to distribution +// of the software without specific prior written permission. +// Silicon Graphics makes no representation about the suitability +// of this software for any purpose. It is provided "as is" +// without any express or implied warranty. +// +// SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +// SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON +// GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL +// DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH +// THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +default xkb_geometry "pc101" { + + // This is an approximate layout for a 101-key (US/ASCII) SGI + // keyboard. I just took a similar layout (101 key PC keyboard) + // and adjusted the sizes of a few keys by eye. I didn't actually + // *measure* a real keyboard. + + description= "Silicon Graphics 101-key keyboard"; + + width= 472; + height= 193; + + shape "EDGE" { cornerRadius= 2, { [ 472, 193 ] } }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "BKSL" { { [ 27,18] }, { [2,1], [25,17] } }; + shape "RTRN" { { [ 40,18] }, { [2,1], [37,17] } }; + shape "CAPS" { { [ 34,18] }, { [2,1], [29,17] } }; + shape "RTSH" { { [ 49,18] }, { [2,1], [47,17] } }; + shape "LFSH" { { [ 44,18] }, { [2,1], [42,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; + shape "LOGO" { { [ 16,16] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 50; + row { + top= 1; + keys { { , color="grey20" }, + { , 19}, , , , + { , 11}, , , , + { , 11}, , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 83; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color= "grey20" }, + , , , , , + , , , , , + , , + { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , { , "RTRN", color="grey20" } + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , 20 }, + { , "SPCE",color="white" }, + , { , 20 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 50; + left= 312; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 33; + keys { , , }; + }; + row { + top= 53; + keys { , , }; + }; + row { + top= 91; + left= 20; + keys { }; + }; + row { + top= 110; + keys { , , }; + }; + }; // End of "Editing" section + + shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 50; + left= 377; + color= "grey10"; + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 64.5; + indicator.shape= "LED"; + indicator "Num Lock" { left= 386; }; + indicator "Caps Lock" { left= 411; }; + indicator "Scroll Lock" { left= 436; }; + text.top= 52; + text.color= "black"; + text "NumLockLabel" { left= 382.5; text="Num\nLock"; }; + text "CapsLockLabel" { left= 407; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 432; text="Scroll\nLock"; }; + + logo "SGILogoImage" { + top= 17; + left= 22; + name= "SGI"; + shape= "LOGO"; + }; + text "SGILogoText" { + top= 21; + left= 40; + width= 50; + text= "SiliconGraphics"; + font= "helvetica"; + slant= "o"; + weight= "bold"; + fontWidth= "narrow"; + fontSize= 24; + }; + + section "Keypad" { + top= 83; + left= 376; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + alias = ; + alias = ; +}; +xkb_geometry "pc102" { + + // This is an approximate layout for 102-key SGI international + // keyboards. I just took a similar layout (101 key PC keyboard) + // and adjusted the sizes of a few keys by eye. I didn't actually + // *measure* a real keyboard. + + description= "Silicon Graphics 102-key Keyboard"; + width= 470; + height= 193; + + shape.cornerRadius= 1; + shape "EDGE" { cornerRadius=2, { [ 470, 193 ] } }; + shape "NORM" { { [18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [35,18] }, { [2,1], [33,17] } }; + shape "TABK" { { [27,18] }, { [2,1], [25,17] } }; + shape "RTRN" { + approx = { [ 0, 0], [26,37] }, + { [ 0, 0], [26, 0], [26,37], + [ 5,37], [ 5,18], [ 0,18] }, + { [ 1, 1], [24, 1], [24,36], + [ 7,36], [ 7,17], [ 1,17] } + }; + shape "CAPS" { { [ 32,18] }, { [2,1], [25,17] } }; + shape "RTSH" { { [ 50,18] }, { [2,1], [48,17] } }; + shape "LFSH" { { [ 22,18] }, { [2,1], [20,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; + shape "LOGO" { { [ 16,16] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 50; + row { + top= 1; + keys { { , color="grey20" }, + { , 18}, , , , + { , 10}, , , , + { , 10}, , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 83; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color= "grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color= "grey20" }, + , , , , , + , , , , , + , , + { , "RTRN", color= "grey20" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color= "grey20" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH", color= "grey20" }, , + , , , , , + , , , , , + { , "RTSH", color= "grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , + { , 19 }, + { , "SPCE", color="white" }, + , + { , 19 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 50; + left= 308; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 33; + keys { , , }; + }; + row { + top= 53; + keys { , , }; + }; + row { + top= 91; + left= 20; + keys { }; + }; + row { + top= 110; + keys { , , }; + }; + }; // End of "Editing" section + + shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 50; + left= 375; + color= "grey10"; + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 64.5; + indicator.shape= "LED"; + indicator "Num Lock" { left= 384; }; + indicator "Caps Lock" { left= 409; }; + indicator "Scroll Lock" { left= 434; }; + text.top= 52; + text.color= "black"; + text "NumLockLabel" { left= 380.5; text="Num\nLock"; }; + text "CapsLockLabel" { left= 405; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 430; text="Scroll\nLock"; }; + + logo "SGILogoImage" { + top= 17; + left= 22; + name= "SGI"; + shape= "LOGO"; + }; + text "SGILogoText" { + top= 21; + left= 40; + width= 50; + text= "SiliconGraphics"; + font= "helvetica"; + slant= "o"; + weight= "bold"; + setWidth= "narrow"; + fontSize= 24; + }; + + section "Keypad" { + top= 83; + left= 374; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + alias = ; + alias = ; +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/sgi_vndr/indy b/squashfs-root/usr/share/X11/xkb/geometry/sgi_vndr/indy new file mode 100644 index 0000000..9b7a40d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/sgi_vndr/indy @@ -0,0 +1,598 @@ +// +// Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc. +// +// Permission to use, copy, modify, and distribute this +// software and its documentation for any purpose and without +// fee is hereby granted, provided that the above copyright +// notice appear in all copies and that both that copyright +// notice and this permission notice appear in supporting +// documentation, and that the name of Silicon Graphics not be +// used in advertising or publicity pertaining to distribution +// of the software without specific prior written permission. +// Silicon Graphics makes no representation about the suitability +// of this software for any purpose. It is provided "as is" +// without any express or implied warranty. +// +// SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +// SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON +// GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL +// DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH +// THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +default xkb_geometry "pc101" { + + // This is an approximate layout for a 101-key (US/ASCII) SGI + // keyboard. I just took a similar layout (101 key PC keyboard) + // and adjusted the sizes of a few keys by eye. I didn't actually + // *measure* a real keyboard. + + description= "Silicon Graphics 101-key keyboard"; + + width= 472; + height= 193; + + shape "EDGE" { cornerRadius= 2, { [ 472, 193 ] } }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "BKSL" { { [ 27,18] }, { [2,1], [25,17] } }; + shape "RTRN" { { [ 40,18] }, { [2,1], [37,17] } }; + shape "CAPS" { { [ 34,18] }, { [2,1], [29,17] } }; + shape "RTSH" { { [ 49,18] }, { [2,1], [47,17] } }; + shape "LFSH" { { [ 44,18] }, { [2,1], [42,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; + shape "LOGO" { { [ 16,16] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 50; + row { + top= 1; + keys { { , color="grey20" }, + { , 19}, , , , + { , 11}, , , , + { , 11}, , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 83; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color= "grey20" }, + , , , , , + , , , , , + , , + { , "BKSL" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , { , "RTRN", color="grey20" } + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , 20 }, + { , "SPCE",color="white" }, + , { , 20 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 50; + left= 312; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 33; + keys { , , }; + }; + row { + top= 53; + keys { , , }; + }; + row { + top= 91; + left= 20; + keys { }; + }; + row { + top= 110; + keys { , , }; + }; + }; // End of "Editing" section + + shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 50; + left= 377; + color= "grey10"; + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 64.5; + indicator.shape= "LED"; + indicator "Num Lock" { left= 386; }; + indicator "Caps Lock" { left= 411; }; + indicator "Scroll Lock" { left= 436; }; + text.top= 52; + text.color= "black"; + text "NumLockLabel" { left= 382.5; text="Num\nLock"; }; + text "CapsLockLabel" { left= 407; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 432; text="Scroll\nLock"; }; + + logo "SGILogoImage" { + top= 17; + left= 22; + name= "SGI"; + shape= "LOGO"; + }; + text "SGILogoText" { + top= 21; + left= 40; + width= 50; + text= "SiliconGraphics"; + font= "helvetica"; + slant= "o"; + weight= "bold"; + fontWidth= "narrow"; + fontSize= 24; + }; + + section "Keypad" { + top= 83; + left= 376; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + alias = ; + alias = ; +}; + +xkb_geometry "pc102" { + + // This is an approximate layout for 102-key SGI international + // keyboards. I just took a similar layout (101 key PC keyboard) + // and adjusted the sizes of a few keys by eye. I didn't actually + // *measure* a real keyboard. + + description= "Silicon Graphics 102-key Keyboard"; + width= 470; + height= 193; + + shape.cornerRadius= 1; + shape "EDGE" { cornerRadius=2, { [ 470, 193 ] } }; + shape "NORM" { { [18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [35,18] }, { [2,1], [33,17] } }; + shape "TABK" { { [27,18] }, { [2,1], [25,17] } }; + shape "RTRN" { + approx = { [ 0, 0], [26,37] }, + { [ 0, 0], [26, 0], [26,37], + [ 5,37], [ 5,18], [ 0,18] }, + { [ 1, 1], [24, 1], [24,36], + [ 7,36], [ 7,17], [ 1,17] } + }; + shape "CAPS" { { [ 32,18] }, { [2,1], [25,17] } }; + shape "RTSH" { { [ 50,18] }, { [2,1], [48,17] } }; + shape "LFSH" { { [ 22,18] }, { [2,1], [20,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; + shape "LOGO" { { [ 16,16] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 19; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 50; + row { + top= 1; + keys { { , color="grey20" }, + { , 18}, , , , + { , 10}, , , , + { , 10}, , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 83; + row { + top= 1; + keys { , , , , , + , , , , , + , , , + { , "BKSP", color= "grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color= "grey20" }, + , , , , , + , , , , , + , , + { , "RTRN", color= "grey20" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color= "grey20" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH", color= "grey20" }, , + , , , , , + , , , , , + { , "RTSH", color= "grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , + { , 19 }, + { , "SPCE", color="white" }, + , + { , 19 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 50; + left= 308; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 33; + keys { , , }; + }; + row { + top= 53; + keys { , , }; + }; + row { + top= 91; + left= 20; + keys { }; + }; + row { + top= 110; + keys { , , }; + }; + }; // End of "Editing" section + + shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 50; + left= 375; + color= "grey10"; + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 64.5; + indicator.shape= "LED"; + indicator "Num Lock" { left= 384; }; + indicator "Caps Lock" { left= 409; }; + indicator "Scroll Lock" { left= 434; }; + text.top= 52; + text.color= "black"; + text "NumLockLabel" { left= 380.5; text="Num\nLock"; }; + text "CapsLockLabel" { left= 405; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 430; text="Scroll\nLock"; }; + + logo "SGILogoImage" { + top= 17; + left= 22; + name= "SGI"; + shape= "LOGO"; + }; + text "SGILogoText" { + top= 21; + left= 40; + width= 50; + text= "SiliconGraphics"; + font= "helvetica"; + slant= "o"; + weight= "bold"; + setWidth= "narrow"; + fontSize= 24; + }; + + section "Keypad" { + top= 83; + left= 374; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + alias = ; + alias = ; +}; + +xkb_geometry "jp106" { + description= "Silicon Graphics 106-key Japanese keyboard"; + width= 442; + height= 167; + + shape "EDGE" { cornerRadius= 2, { [ 442, 167 ] } }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "BKSL" { { [ 27,18] }, { [2,1], [ 25,17] } }; + shape "RTRN" { + { [0,0],[ 27,0],[27,37],[4,37],[4,18],[0,18] } , + { [2,1],[ 25,1],[25,36],[5,36],[5,17],[2,17] } }; + shape "CAPS" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; + shape "RTSH" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "SPCE" { { [ 46,18] }, { [2,1], [ 44,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,36] } }; + shape "LOGO" { { [ 16,16] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + logo "SGILogoImage" { + top= 5; + left= 6; + name= "SGI"; + shape= "LOGO"; + }; + + text "SGILogoText" { + top= 9; + left= 25; + width= 50; + text= "SiliconGraphics"; + font= "helvetica"; + slant= "o"; + weight= "bold"; + fontWidth= "narrow"; + fontSize= 24; + }; + + shape "LEDS" { cornerRadius= 0.1, { [ 76 ,20 ] } }; + shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 25; + left= 362; + color= "grey10"; + }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 40; + indicator.shape= "LED"; + indicator "Num Lock" { left= 366; }; + indicator "Caps Lock" { left= 391; }; + indicator "Scroll Lock" { left= 416; }; + text.top= 28; + text.color= "black"; + text "NumLockLabel" { left= 366; text="Num\nLock"; }; + text "CapsLockLabel" { left= 391; text="Caps\nLock"; }; + text "ScrollLockLabel" { left= 416; text="Scroll\nLock"; }; + + section.left= 5; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 25; + row { + top= 1; + keys { { , color="grey20" }, + { , 18 }, , , , + { , 11 ,color="grey20"}, {,color="grey20"}, + { , color="grey20"}, {,color="grey20"}, + { , 11 }, , , , + { , 8 }, , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { {,color="grey20"}, , , + , , , , , + , , , , , + , { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , 1 ,"RTRN",color="grey20" } + }; + }; + row { + top= 39; + keys { { , "CAPS", color="grey20" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "LFSH", color="grey20" }, + , , , , , + , , , , , + , { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , 20 },, + { , "SPCE", color="white" }, + ,,, { , 17 } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 296; + key.color= "grey20"; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 361; + row { + top= 1; + key.color= "grey20"; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color="grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + alias = ; + alias = ; + +}; // End of "jp106" geometry diff --git a/squashfs-root/usr/share/X11/xkb/geometry/sony b/squashfs-root/usr/share/X11/xkb/geometry/sony new file mode 100644 index 0000000..7071494 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/sony @@ -0,0 +1,179 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +default xkb_geometry "nwp5461" { + + description= "Sony NEWS NWS-5000 Keyboard"; + width= 425; + height= 190; + + shape.cornerRadius= 1; + shape "NORM" { { [18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [28,18] }, { [2,1], [26,17] } }; + shape "TABK" { { [28,18] }, { [2,1], [26,17] } }; + shape "BKSL" { { [28,18] }, { [2,1], [26,17] } }; + shape "RTRN" { + approx = { [15, 0], [33,37] }, + { [15, 0], [33, 0], [33,37], + [ 0,37], [ 0,19], [15,19] }, + { [17, 1], [31, 1], [31,36], + [ 2,36], [ 2,20], [17,20] } + }; + shape "SHFT" { { [42,18] }, { [2,1], [40,17] } }; + shape "MODK" { { [33,18] }, { [2,1], [31,17] } }; + shape "SPCE" { { [85,18] }, { [2,1], [83,17] } }; + shape "KPEN" { { [18,38] }, { [2,1], [16,37] } }; + shape "STOP" { { [28,18] }, { [2,1], [26,17] } }; + shape "CUT" { { [55,18] }, { [2,1], [53,17] } }; + shape "EXEC" { { [32,18] }, { [2,1], [30,17] } }; + shape "UNK" { { [18,18] }, { [2,1], [16,17] } }; + shape "CAPS" { { [18,18] }, { [2,1], [16,17] } }; + shape "FKEY" { { [23,18] }, { [2,1], [21,17] } }; + + section.left= 13; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 55; + row { + top= 1; + left= 37; + key.shape="FKEY"; + keys { , , , , , + { , 5 }, , , , , + { , 5 }, + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 80; + row { + top= 1; + keys { { , color="grey20" } , + , , , , + , , , , + , , , , + , { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { { , "TABK", color="grey20" }, + , , , , , + , , , , , + , , { , color="grey20" }, + { , "RTRN", -14, color="grey20" } + }; + }; + row { + top= 39; + keys { { , "MODK", color="grey20" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { { , "SHFT", color="grey20" }, + , , , , , + , , , , , , + { , "SHFT", color="grey20" } + }; + }; + row { + top= 77; + key.shape= "MODK"; + key.color= "grey20"; + keys { , { , "CAPS" }, + { , "STOP", color="white" }, + { , "SPCE", color="white" }, + { , "CUT", color="white" }, + { , "UNK" }, { , "UNK" }, + { , "EXEC" } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 80; + left= 312; + key.color= "grey20"; + row { + top= 1; + keys { }; + }; + row { + top= 20; + keys { }; + }; + row { + top= 39; + keys { }; + }; + row { + top= 58; + keys { }; + }; + row { + top= 77; + keys { }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 334; + row { + top= 1; + key.color= "grey20"; + keys { { , 19 }, , }; + }; + row { + top= 20; + keys { , , , { , color="grey20" } }; + }; + row { + top= 39; + keys { , , , { , color="grey20" } }; + }; + row { + top= 58; + keys { , , , { , "KPEN", color="grey20" } }; + }; + row { + top= 77; + keys { , { , color="grey20" }, }; + }; + row { + top= 96; + key.color= "grey20"; + keys { , , , }; + }; + }; // End of "Keypad" section + +}; // End of "default" geometry diff --git a/squashfs-root/usr/share/X11/xkb/geometry/steelseries b/squashfs-root/usr/share/X11/xkb/geometry/steelseries new file mode 100644 index 0000000..df3788c --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/steelseries @@ -0,0 +1,223 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// + + + +// modified from /usr/share/X11/xkb/geometry/pc(pc104) +// +// The Apex 300 (Apex RAW) has 21 additional keys and +// is replaced by a hardware key. These +// additions to the basic PC104 layout are shown in red. +// +// Currently the kernel doesn't initialize these keys; a userspace +// tool is needed (apexctl: https://github.com/tuxmark5/ApexCtl). +// With this tool or a proper driver, the extra keys (except FN) +// can be assigned keycodes via udev-hwdb. +// +// FIXME: Keycodes shown here should be changed to match +// kernel defaults when a driver is developed. +// +// The additional keys are in 4 groups: +// 1) L1-L2 left of Escape (column) , +// 2) M1-M12 above F1-F12 (row) - +// 3) MX1-MX5 left of alpha keys (column) - +// 4) LeftUp, RightUp with regular arrows , +// +// Known key functions: +// + = kbd backlight step dimmer (NoSymbol) +// + = kbd backlight step brighter (NoSymbol) +// + = (AudioPrev) +// + = (AudioPlay, AudioPause) +// + = (AudioNext) +// + = (AudioMute) +// + = (VolumeUp) +// + = (VolumeDown) +// +// And yes, the spacebar really is that ridiculous. +// +// 2017.April +// +default xkb_geometry "apex300" { + + description= "SteelSeries Apex 300 (Apex RAW)"; + width= 450; + height= 150; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; + shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; + shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } }; + shape "SPCE" { { [113,37] }, { [2,1], [111,35] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; + shape "MKEY" { { [ 18,8] }, { [2,1], [ 16,7] } }; + shape "ESCA" { { [ 18,28] }, { [2,1], [ 16,27] } }; + shape "LKEY" { { [ 18,14] }, { [2,1], [ 16,13] } }; + shape "LEDS" { cornerRadius= 0, { [ 54, 6 ] } }; + shape "LED" { cornerRadius= 0, { [ 4, 1 ] } }; + + + solid "LedPanel" { + shape= "LEDS"; + top= 2; + left= 315; + color= "grey10"; + }; + + + indicator.onColor= "red"; + indicator.offColor= "red"; + indicator.top= 7; + indicator.shape= "LED"; + indicator "Num Lock" { left= 321; }; + indicator "Caps Lock" { left= 340; }; + indicator "Scroll Lock" { left= 359; }; + text.top= 2; + text.color= "black"; + text "NumLockLabel" { left= 322; text="N"; }; + text "CapsLockLabel" { left= 341; text="C"; }; + text "ScrollLockLabel" { left= 360; text="S"; }; + text "SteelSeriesLogo" { top= 10; left= 400; text="SteelSeries"; }; + text "FNLogoKeyLabel" { top= 130; left= 248; text="FN"; }; + + key.shape= "NORM"; + key.gap= 1; + key.color= "grey10"; + + + section "Lkeys" { + key.shape= "LKEY"; + key.color= "red"; + row { top= 1; keys { }; }; + row { top= 15; keys { }; }; + }; // end of "Lkeys" section + + + section "MXkeys" { + key.shape= "NORM"; + key.color= "red"; + row { top= 35; keys { }; }; // 40 59 78 97 116 + row { top= 54; keys { }; }; // 35 54 73 92 111 + row { top= 73; keys { }; }; + row { top= 92; keys { }; }; + row { top=111; keys { }; }; + }; // end of "MXkeys" section + + + section "Escape" { + left= 23; + key.shape= "ESCA"; + key.color= "grey30"; + row { top= 1; keys { }; }; + }; // end of "Escape" section + + + section "Mkeys" { + left= 61; + key.color= "red"; + key.shape= "MKEY"; + row { top= 1; + keys { , , , , + { , 11 }, , , , + { , 11 }, , , }; }; + }; // end of "Mkeys" section + + + section "Function" { + left= 61; + key.color= "grey30"; + row { top= 10; + keys { , , , , + { , 11 }, , , , + { , 11 }, , , , + { , 5 }, , }; }; + }; // end of "Function" section + + + section "Alpha" { + top= 35; + left= 23; + key.color= "grey10"; + row { keys { , , , , , + , , , , , + , , , + { , "BKSP", color="grey30" } }; }; + row { top= 19; + keys { { , "TABK", color="grey30" }, + , , , , , + , , , , , + , , { , "BKSL" } }; }; + row { top= 38; + keys { { , "CAPS", color="grey30" }, + , , , , , + , , , , , + , { , "RTRN", color="grey30" } }; }; + row { top= 57; + keys { { , "LFSH", color="grey30" }, + , , , , , + , , , , , + { , "RTSH", color="grey30" } }; }; + row { top= 76; + key.shape= "SMOD"; + key.color= "grey30"; + keys { { , "MODK" }, , , { , "SPCE" }, + , { , color="red" }, , }; }; + }; // end of "Alpha" section + + + section "Editing" { + top= 35; + left= 313; + key.color= "grey30"; + row { keys { , , }; }; + row { top= 19; keys { , , }; }; + row { top= 57; keys { { , color="red" }, , { , color="red" } }; }; + row { top= 76; keys { , , }; }; + }; // end of "Editing" section + + + section "Keypad" { + top= 35; + left= 373; + key.color= "grey10"; + row { keys { , , , }; }; + row { top= 19; keys { , , , { , "KPAD" } }; }; + row { top= 38; keys { , , }; }; + row { top= 57; keys { , , , { , "KPAD" } }; }; + row { top= 76; keys { { , "KP0" }, }; }; + }; // end of "Keypad" section + + alias = ; + alias = ; + +}; // end of "apex300" geometry diff --git a/squashfs-root/usr/share/X11/xkb/geometry/sun b/squashfs-root/usr/share/X11/xkb/geometry/sun new file mode 100644 index 0000000..fc6d5a6 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/sun @@ -0,0 +1,756 @@ +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// + +xkb_geometry "t6" { + + // This is an approximate layout for a (US/ASCII) Sun Type6 + // keyboard. I just took a similar layout (101 key PC keyboard) + // and adjusted the sizes. + + width= 515; + height= 170; + + shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } }; + shape "BKSL" { { [ 27,18] }, { [2,1], [25,17] } }; + shape "RTRN" { { [ 42,18] }, { [2,1], [40,17] } }; + shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [40,17] } }; + shape "RTSH" { { [ 51,18] }, { [2,1], [49,17] } }; + shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "SPCE" { { [136,18] }, { [2,1], [134,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; + shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "RMTA" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "LMTA" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "LOGO" { { [ 16,16] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 14; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 24; + row { + top= 1; + keys { { , "HELP" }, { , 9 }, + { , 19 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 9 }, , , + { , 9 }, , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { , , + { , 9}, , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { , , { , 9, shape="TABK" }, + , , , , , + , , , , , + , , + { , "BKSL" } + }; + }; + row { + top= 39; + keys { , , { , 9, shape="CAPS" }, + , , , , , + , , , , , + , + { , "RTRN" } + }; + }; + row { + top= 58; + keys { , , { , 9 , shape="LFSH" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + keys { , , { , 9, shape="LCTL" }, + , { , "LMTA" }, + { , "SPCE" }, + { , "RMTA" }, , + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 352; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 420; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } }; + shape "LED" { cornerRadius= 2, { [ 3, 6 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 1; + left= 218; + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 10; + indicator.shape= "LED"; + indicator "CapsLock" { left= 243; }; + indicator "Compose" { left= 281; }; + indicator "ScrollLock" { left= 262; }; + indicator "NumLock" { left= 224; }; + text.top= 1; + text.color= "black"; + text "CapsLockLabel" { left= 243; text="Caps\nLock"; }; + text "ComposeLabel" { left= 281; text="Compose"; }; + text "ScrollLockLabel" { left= 262; text="Scroll\nLock"; }; + text "NumLockLabel" { left= 224; text="Num\nLock"; }; + +}; + +xkb_geometry "t6tuv" { + + // This is an approximate layout for a (US/ASCII) Sun Type6 + // keyboard. I just took a similar layout (101 key PC keyboard) + // and adjusted the sizes. + + width= 515; + height= 170; + + shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } }; + shape "RTRN" { + approx = { [ 0, 0], [28,37] }, + { [ 0, 0], [28, 0], [28,37], + [ 5,37], [ 5,18], [ 0,18] }, + { [ 1, 1], [26, 1], [26,36], + [ 7,36], [ 7,17], [ 1,17] } + }; + shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } }; + shape "LFSH" { { [ 24,18] }, { [2,1], [22,17] } }; + shape "RTSH" { { [ 51,18] }, { [2,1], [49,17] } }; + shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "SPCE" { { [137,18] }, { [2,1], [135,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; + shape "RMTA" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "LMTA" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "LOGO" { { [ 16,16] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 14; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 24; + row { + top= 1; + keys { { , "HELP" }, { , 9 }, + { , 19 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 9 }, , , + { , 9 }, , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { , , + { , 9}, , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { , , { , 9, shape="TABK" }, + , , , , , + , , , , , + , , + { , "RTRN" } + }; + }; + row { + top= 39; + keys { , , { , 9, shape="CAPS" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { , , { , 9 , shape="LFSH" }, , + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + keys { , , { , 9, shape="LCTL" }, + , { , "LMTA" }, + { , "SPCE" }, + { , "RMTA" }, , + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 352; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 420; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } }; + shape "LED" { cornerRadius= 2, { [ 3, 6 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 1; + left= 218; + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 10; + indicator.shape= "LED"; + indicator "CapsLock" { left= 243; }; + indicator "Compose" { left= 281; }; + indicator "ScrollLock" { left= 262; }; + indicator "NumLock" { left= 224; }; + text.top= 1; + text.color= "black"; + text "CapsLockLabel" { left= 243; text="Caps\nLock"; }; + text "ComposeLabel" { left= 281; text="Compose"; }; + text "ScrollLockLabel" { left= 262; text="Scroll\nLock"; }; + text "NumLockLabel" { left= 224; text="Num\nLock"; }; + +}; + +xkb_geometry "t6jp" { + + // This is an approximate layout for a (US/ASCII) Sun Type6 + // keyboard. I just took a similar layout (101 key PC keyboard) + // and adjusted the sizes. + + width= 515; + height= 170; + + shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } }; + shape "KANJ" { { [ 27,18] }, { [2,1], [25,17] } }; + shape "EXEC" { { [ 27,18] }, { [2,1], [25,17] } }; + shape "RTRN" { + approx = { [ 0, 0], [28,37] }, + { [ 0, 0], [28, 0], [28,37], + [ 5,37], [ 5,18], [ 0,18] }, + { [ 1, 1], [26, 1], [26,36], + [ 7,36], [ 7,17], [ 1,17] } + }; + shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [40,17] } }; + shape "RTSH" { { [ 33,18] }, { [2,1], [31,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "SPCE" { { [ 96,18] }, { [2,1], [94,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; + shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "LOGO" { { [ 16,16] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 14; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 24; + row { + top= 1; + keys { { , "HELP" }, { , 9 }, + { , 19 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 9 }, , , + { , 9 }, , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { , , + { , 9}, , , , , + , , , , , + , , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 20; + keys { , , { , 9, shape="TABK" }, + , , , , , + , , , , , + , , + { , "RTRN" } + }; + }; + row { + top= 39; + keys { , , { , 9, shape="CAPS" }, + , , , , , + , , , , , + , + }; + }; + row { + top= 58; + keys { , , { , 9 , shape="LFSH" }, + , , , , , + , , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + keys { , , { , 9 }, + , , { , "EXEC" }, + { , "SPCE" }, { , "KANJ" }, , + , , + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 352; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 420; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } }; + shape "LED" { cornerRadius= 2, { [ 3, 6 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 1; + left= 218; + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 10; + indicator.shape= "LED"; + indicator "CapsLock" { left= 243; }; + indicator "Compose" { left= 281; }; + indicator "ScrollLock" { left= 262; }; + indicator "NumLock" { left= 224; }; + text.top= 1; + text.color= "black"; + text "CapsLockLabel" { left= 243; text="Caps\nLock"; }; + text "ComposeLabel" { left= 281; text="Compose"; }; + text "ScrollLockLabel" { left= 262; text="Scroll\nLock"; }; + text "NumLockLabel" { left= 224; text="Num\nLock"; }; + +}; + +xkb_geometry "t6unix" { + + // This is an approximate layout for a (US/ASCII) Sun Type6 + // keyboard. I just took a similar layout (101 key PC keyboard) + // and adjusted the sizes. + + width= 515; + height= 170; + + shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } }; + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; + shape "BKSP" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } }; + shape "RTRN" { { [ 42,18] }, { [2,1], [40,17] } }; + shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [40,17] } }; + shape "RTSH" { { [ 51,18] }, { [2,1], [49,17] } }; + shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } }; + shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "SPCE" { { [136,18] }, { [2,1], [134,17] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; + shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } }; + shape "RMTA" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "LMTA" { { [ 28,18] }, { [2,1], [26,17] } }; + shape "LOGO" { { [ 16,16] } }; + + outline "Edges" { + top= 0; + left= 0; + shape= "EDGE"; + }; + + section.left= 14; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + section "Function" { + top= 24; + row { + top= 1; + keys { { , "HELP" }, { , 9 }, + { , 19 }, , , , + { , 11 }, , , , + { , 11 }, , , , + { , 9 }, , , + { , 9 }, , , + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 61; + row { + top= 1; + keys { , , + { , 9}, , , , , + , , , , , + , , , + , + }; + }; + row { + top= 20; + keys { , , { , 9, shape="TABK" }, + , , , , , + , , , , , + , , + { , "BKSP", color="grey20" } + }; + }; + row { + top= 39; + keys { , , { , 9, shape="CAPS" }, + , , , , , + , , , , , + , + { , "RTRN" } + }; + }; + row { + top= 58; + keys { , , { , 9 , shape="LFSH" }, + , , , , , + , , , , , + { , "RTSH", color="grey20" } + }; + }; + row { + top= 77; + keys { , , { , 9, shape="LCTL" }, + , {, "LMTA"}, + { , "SPCE" }, + {, "RMTA"}, , + }; + }; + }; // End of "Alpha" section + + section "Editing" { + top= 61; + left= 352; + row { + top= 1; + keys { , , }; + }; + row { + top= 20; + keys { , , }; + }; + row { + top= 58; + left= 20; + keys { }; + }; + row { + top= 77; + keys { , , }; + }; + }; // End of "Editing" section + + section "Keypad" { + top= 61; + left= 420; + row { + top= 1; + keys { , , , }; + }; + row { + top= 20; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 39; + keys { , , }; + }; + row { + top= 58; + keys { , , , { , "KPAD", color= "grey20" } }; + }; + row { + top= 77; + keys { { , "KP0" }, }; + }; + }; // End of "Keypad" section + + shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } }; + shape "LED" { cornerRadius= 2, { [ 3, 6 ] } }; + solid "LedPanel" { + shape= "LEDS"; + top= 1; + left= 218; + }; + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 10; + indicator.shape= "LED"; + indicator "CapsLock" { left= 243; }; + indicator "Compose" { left= 281; }; + indicator "ScrollLock" { left= 262; }; + indicator "NumLock" { left= 224; }; + text.top= 1; + text.color= "black"; + text "CapsLockLabel" { left= 243; text="Caps\nLock"; }; + text "ComposeLabel" { left= 281; text="Compose"; }; + text "ScrollLockLabel" { left= 262; text="Scroll\nLock"; }; + text "NumLockLabel" { left= 224; text="Num\nLock"; }; +}; + + +default xkb_geometry "type6" { + include "sun(t6)" + description= "Sun Type6 keyboard (US, Korea, Taiwan)"; +}; + +xkb_geometry "type6jp" { + include "sun(t6jp)" + description= "Sun Type6 Japanese keyboard"; +}; + +xkb_geometry "type6tuv" { + include "sun(t6tuv)" + description= "Sun Type6 TUV keyboard"; +}; + +xkb_geometry "type6unix" { + include "sun(t6unix)" + description= "Sun Type6 Unix keyboard"; +}; + +xkb_geometry "type7" { + include "sun(t6)" + description= "Sun Type7 keyboard (US, Korea, Taiwan)"; +}; + +xkb_geometry "type7jp" { + include "sun(t6jp)" + description= "Sun Type7 Japanese keyboard"; +}; + +xkb_geometry "type7tuv" { + include "sun(t6tuv)" + description= "Sun Type7 TUV keyboard"; +}; + +xkb_geometry "type7unix" { + include "sun(t6unix)" + description= "Sun Type7 Unix keyboard"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/teck b/squashfs-root/usr/share/X11/xkb/geometry/teck new file mode 100644 index 0000000..889978d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/teck @@ -0,0 +1,627 @@ +default xkb_geometry "teck227" { + description="Truly Ergonomic Computer Keyboard Model 227 with wide Alt. (Standard US layout)"; + + width=296; + height=155; + + shape.cornerRadius=1; + + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "DBL" { { [36, 18] }, { [2,1], [ 34,16] } }; + shape "RSUP" { + { [ 2, 0], [ 12, 1] , [ 22, 0], [24, 18], [ 12, 19 ], [0, 18] }, + { [ 4, 1], [ 12, 2] , [ 20, 1], [22, 16], [ 12, 17 ], [2, 16] } + }; + shape "DEL" { + { [ 2, 0], [ 14, 1] , [ 26, 0], [28, 18], [ 14, 19 ], [0, 18] }, + { [ 4, 1], [ 14, 2] , [ 24, 1], [26, 16], [ 14, 17 ], [2, 16] } + }; + shape "AE11" { + { [ 2, 0], [ 16, 1] , [ 30, 0], [32, 18], [ 16, 19 ], [0, 18] }, + { [ 4, 1], [ 16, 2] , [ 28, 1], [30, 16], [ 16, 17 ], [2, 16] } + }; + shape "BKSP" { + { [ 2, 0], [ 18, 1] , [ 34, 0], [36, 18], [ 18, 19 ], [0, 18] }, + { [ 4, 1], [ 18, 2] , [ 32, 1], [34, 16], [ 18, 17 ], [2, 16] } + }; + shape "RTRN" { + { [ 2, 0], [ 20, 1] , [ 38, 0], [40, 18], [ 20, 19 ], [0, 18] }, + { [ 4, 1], [ 20, 2] , [ 36, 1], [38, 16], [ 20, 17 ], [2, 16] } + }; + + section "Function" { + left=17; + top=3; + row { + keys { , + { , 3 }, , , , + { , 3 }, , , , + { , 3 }, , , , + { , 3 } + }; + }; + overlay "FN" { + =, + =, + =, + =, + =, + =, + =, + =, + =, + =, + =, + =, + =, + = + }; + }; + + section "Special Keys" { + top=22; + left=122; + row { + keys { + , , + }; + }; + overlay "MISC" { + =, + = + }; + }; + + section "LeftNumbers" { + top=32; + left=12; + angle=6; + row { + keys { + , , , , , , + }; + }; + }; + + section "CenterNumbers" { + top=45; + left=136; + row { + keys { + { , "RSUP" } + }; + }; + }; + + section "RightNumbers" { + top=45; + left=159; + angle=-6; + row { + keys { + , , , , , , + }; + }; + overlay "KPAD" { + =, + =, + = + }; + }; + + section "LeftAlphaQWER" { + top=51; + left=10; + angle=6; + row { + keys { + , , , , , , + }; + }; + }; + + section "CenterAlphaQWER" { + top=64; + left=134; + row { + keys { + { , "DEL" } + }; + }; + }; + + section "RightAlphaQWER" { + top=64; + left=161; + angle=-6; + row { + keys { + , , , , , , + }; + }; + overlay "KPAD" { + =, + =, + =, + =, + = + }; + }; + + section "LeftAlphaASDF" { + top=52; + left=10; + angle=6; + row { + top=18; + keys { + { , "DBL" }, , , , , + }; + }; + }; + + section "CenterAlphaASDF" { + top=83; + left=132; + row { + keys { + { , "AE11" } + }; + }; + }; + + section "RightAlphaASDF" { + top=65; + left=161; + angle=-6; + row { + top=18; + keys { + , , , , , { , "DBL" } + }; + }; + overlay "KPAD" { + =, + =, + =, + = + }; + }; + + section "LeftAlphaZXCV" { + top=89; + left=6; + angle=6; + row { + keys { + { , "DBL" }, + , , , , + }; + }; + }; + + section "CenterAlphaZXCV" { + top=102; + left=130; + row { + keys { + { , "BKSP" } + }; + }; + }; + + section "RightAlphaZXCV" { + top=102; + left=165; + angle=-6; + row { + keys { + , , , , , + { , "DBL" } + }; + }; + overlay "KPAD" { + =, + =, + = + }; + }; + + section "LeftSpecial" { + top=108; + left=4; + angle=6; + row { + keys { + { , "DBL" }, + { , "DBL", 54 } + }; + }; + }; + + section "CenterSpecial" { + top=121; + left=128; + row { + keys { + { , "RTRN" } + }; + }; + }; + + section "RightSpecial" { + top=121; + left=167; + angle=-6; + row { + keys { + { , "DBL" }, + { , "DBL", 54 } + }; + }; + }; + + section "pgup, pgdown, home and end" { + top=112; + left=40; + angle=6; + row { + left=18; + keys { + + }; + }; + row { + top=9; + keys { + , { , 18 } + }; + }; + row { + top=18; + left=18; + keys { + + }; + }; + }; + + section "Arrows" { + top=117; + left=203; + angle=-6; + row { + left=18; + keys { + + }; + }; + row { + top=9; + keys { + , { , 18 } + }; + }; + row { + top=18; + left=18; + keys { + + }; + }; + }; +}; + +xkb_geometry "teck229" { + description="Truly Ergonomic Computer Keyboard Model 229 with standard sized Alt and an additional Menu and Super key. (Standard US layout)"; + + width=296; + height=155; + + shape.cornerRadius=1; + + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "DBL" { { [36, 18] }, { [2,1], [ 34,16] } }; + shape "RSUP" { + { [ 2, 0], [ 12, 1] , [ 22, 0], [24, 18], [ 12, 19 ], [0, 18] }, + { [ 4, 1], [ 12, 2] , [ 20, 1], [22, 16], [ 12, 17 ], [2, 16] } + }; + shape "DEL" { + { [ 2, 0], [ 14, 1] , [ 26, 0], [28, 18], [ 14, 19 ], [0, 18] }, + { [ 4, 1], [ 14, 2] , [ 24, 1], [26, 16], [ 14, 17 ], [2, 16] } + }; + shape "AE11" { + { [ 2, 0], [ 16, 1] , [ 30, 0], [32, 18], [ 16, 19 ], [0, 18] }, + { [ 4, 1], [ 16, 2] , [ 28, 1], [30, 16], [ 16, 17 ], [2, 16] } + }; + shape "BKSP" { + { [ 2, 0], [ 18, 1] , [ 34, 0], [36, 18], [ 18, 19 ], [0, 18] }, + { [ 4, 1], [ 18, 2] , [ 32, 1], [34, 16], [ 18, 17 ], [2, 16] } + }; + shape "RTRN" { + { [ 2, 0], [ 20, 1] , [ 38, 0], [40, 18], [ 20, 19 ], [0, 18] }, + { [ 4, 1], [ 20, 2] , [ 36, 1], [38, 16], [ 20, 17 ], [2, 16] } + }; + + section "Function" { + left=17; + top=3; + row { + keys { , + { , 3 }, , , , + { , 3 }, , , , + { , 3 }, , , , + { , 3 } + }; + }; + overlay "FN" { + =, + =, + =, + =, + =, + =, + =, + =, + =, + =, + =, + =, + =, + = + }; + }; + + section "Special Keys" { + top=22; + left=122; + row { + keys { + , , + }; + }; + overlay "MISC" { + =, + = + }; + }; + + section "LeftNumbers" { + top=32; + left=12; + angle=6; + row { + keys { + , , , , , , + }; + }; + }; + + section "CenterNumbers" { + top=45; + left=136; + row { + keys { + { , "RSUP" } + }; + }; + }; + + section "RightNumbers" { + top=45; + left=159; + angle=-6; + row { + keys { + , , , , , , + }; + }; + overlay "KPAD" { + =, + =, + = + }; + }; + + section "LeftAlphaQWER" { + top=51; + left=10; + angle=6; + row { + keys { + , , , , , , + }; + }; + }; + + section "CenterAlphaQWER" { + top=64; + left=134; + row { + keys { + { , "DEL" } + }; + }; + }; + + section "RightAlphaQWER" { + top=64; + left=161; + angle=-6; + row { + keys { + , , , , , , + }; + }; + overlay "KPAD" { + =, + =, + =, + =, + = + }; + }; + + section "LeftAlphaASDF" { + top=52; + left=10; + angle=6; + row { + top=18; + keys { + { , "DBL" }, , , , , + }; + }; + }; + + section "CenterAlphaASDF" { + top=83; + left=132; + row { + keys { + { , "AE11" } + }; + }; + }; + + section "RightAlphaASDF" { + top=65; + left=161; + angle=-6; + row { + top=18; + keys { + , , , , , { , "DBL" } + }; + }; + overlay "KPAD" { + =, + =, + =, + = + }; + }; + + section "LeftAlphaZXCV" { + top=89; + left=6; + angle=6; + row { + keys { + { , "DBL" }, + , , , , + }; + }; + }; + + section "CenterAlphaZXCV" { + top=102; + left=130; + row { + keys { + { , "BKSP" } + }; + }; + }; + + section "RightAlphaZXCV" { + top=102; + left=165; + angle=-6; + row { + keys { + , , , , , + { , "DBL" } + }; + }; + overlay "KPAD" { + =, + =, + = + }; + }; + + section "LeftSpecial" { + top=108; + left=4; + angle=6; + row { + keys { + , , + { , "DBL", 54 } + }; + }; + }; + + section "CenterSpecial" { + top=121; + left=128; + row { + keys { + { , "RTRN" } + }; + }; + }; + + section "RightSpecial" { + top=121; + left=167; + angle=-6; + row { + keys { + { , "DBL" }, + { , 54 }, + }; + }; + }; + + section "pgup, pgdown, home and end" { + top=112; + left=40; + angle=6; + row { + left=18; + keys { + + }; + }; + row { + top=9; + keys { + , { , 18 } + }; + }; + row { + top=18; + left=18; + keys { + + }; + }; + }; + + section "Arrows" { + top=117; + left=203; + angle=-6; + row { + left=18; + keys { + + }; + }; + row { + top=9; + keys { + , { , 18 } + }; + }; + row { + top=18; + left=18; + keys { + + }; + }; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/thinkpad b/squashfs-root/usr/share/X11/xkb/geometry/thinkpad new file mode 100644 index 0000000..48e8cdc --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/thinkpad @@ -0,0 +1,470 @@ +// -*- indent-tabs-mode: nil -*- + +// Created by Alexander Pohoyda +// Geometry specification for IBM ThinkPad keyboard. +// Compatible Models: THINKPAD 560Z 2640-90U, THINKPAD 560Z 2640-91U, +// THINKPAD 560Z 2640-B0U, THINKPAD 560Z 2640-B1U, THINKPAD 560Z 2640-RR3, +// THINKPAD 600 2645-31U, THINKPAD 600 2645-35U, THINKPAD 600 2645-41U, +// THINKPAD 600 2645-42U, THINKPAD 600 2645-45U, THINKPAD 600 2645-48U, +// THINKPAD 600 2645-51U, THINKPAD 600 2645-85U, THINKPAD 600 2645-A1U, +// THINKPAD 600 2645-RR1, THINKPAD 600 2645-RR2, THINKPAD 600E 2645-3AU, +// THINKPAD 600E 2645-4AU, THINKPAD 600E 2645-4BU, THINKPAD 600E 2645-55U, +// THINKPAD 600E 2645-5AU, THINKPAD 600E 2645-5BU, THINKPAD 600E 2645-5JU, +// THINKPAD 600E 2645-8AO, THINKPAD 600E 2645-8AU, THINKPAD 600E 2645-8BU, +// THINKPAD 600E 2645-AAU, THINKPAD 600E 2645-RRB, THINKPAD 600E 2645-RRD, +// THINKPAD 600E 2645-RRF, THINKPAD 600E 2645-RRS, THINKPAD A22E 2645-45U + +xkb_geometry "common" { + width = 290; + height = 150; + baseColor = "grey80"; + labelColor = "white"; + + shape "FN0" { cornerRadius = 1, { [17, 12] }, { [2, 0], [15, 10] } }; + shape "NORM" { cornerRadius = 1, { [18, 18] }, { [2.5, 0], [15.5, 14] } }; + shape "BKSP" { cornerRadius = 1, { [37, 18] }, { [2.5, 0], [34.5, 14] } }; + shape "TABK" { cornerRadius = 1, { [27, 18] }, { [2.5, 0], [24.5, 14] } }; + shape "CAPS" { cornerRadius = 1, { [31, 18] }, { [1, 0], [30, 16] }, + { [1, 0], [26, 16] }, + { [2.5, 0], [24.5, 14] } }; + shape "RTSH" { cornerRadius = 1, { [50, 18] }, { [2.5, 0], [46.5, 14] } }; + shape "MODK" { cornerRadius = 1, { [27.5, 18] }, { [2.5, 0], [25, 14] } }; + shape "SPCE" { cornerRadius = 1, { [100, 18] }, { [2.5, 0], [97.5, 14] } }; + shape "ARRS" { cornerRadius = 1, { [16, 13] }, { [1.5, 0], [14.5, 11] } }; + + shape "LED" { cornerRadius = 2, { [3, 3] } }; + + shape "KEYS" { cornerRadius = 2, + { [0, 0], [19, 0], [19, 13], [172, 13], + [172, 0], [286, 0], [286, 138], [216, 138], + [216, 124], [0, 124] } }; + + solid "KeyPanel" { + shape = "KEYS"; + left = 2; + top = 5; + color = "black"; + }; + + shape "NULL1" { cornerRadius = 1, + { [0, 0], [50, 0], [50, 18], [34, 18], [34, 4], + [16, 4], [16, 18], [0, 18] } }; + + solid "NullPanel1" { + shape = "NULL1"; + left = 237; + top = 110; + color = "grey80"; + }; + + shape "NULL2" { cornerRadius = 1, { [17, 13] } }; + + solid "NullPanel2" { + shape = "NULL2"; + left = 219; + top = 129; + color = "grey80"; + }; + + shape "NULL3" { cornerRadius = 1, + { [0, 26], + [72, 26], [72, 13], [76, 13], [76, 26], + [149, 26], [149, 13], [153, 13], [153, 26], + [226, 26], [226, 0], [230, 0], [230, 26], + [284, 26], [285, 27], + [0, 27] } }; + + solid "NullPanel3" { + shape = "NULL3"; + left = 3; + top = 6; + color = "grey80"; + }; + + indicator.onColor = "green"; + indicator.offColor = "grey10"; + indicator.top = 4; + indicator.shape = "LED"; + indicator "HDDActivity" { onColor = "red"; left = 100; }; + indicator "Num Lock" { left = 108; }; + indicator "Caps Lock" { left = 114; }; + indicator "Scroll Lock" { left = 120; }; + indicator "Power" { left = 128; }; + + key.gap = 1; + key.color = "grey60"; + + section "Function" { + left = 2; + top = 5; + key.shape = "FN0"; + row { + top = 1; + keys { , { , 155 }, , }; + }; + row { + top = 14; + keys { , , , , + { , 6 }, , , , + { , 6 }, , , + }; + }; + }; // End of "Function" section + + section "Control" { + left= 2; + top = 109; + key.shape = "MODK"; + row { + top = 1; + keys { { , "NORM" }, , , + { , "SPCE" }, , + }; + }; + }; // End of "Control" section + + section "Editing" { + top = 5; + left = 233; + key.shape = "FN0"; + row { + top = 1; + keys { , , }; + }; + row { + top = 14; + keys { , , }; + }; + }; // End of "Editing" section + + section "Navigation" { + top = 114; + left = 236; + key.shape = "ARRS"; + row { + top = 1; + left = 17; + keys { }; + }; + row { + top = 15; + keys { , , }; + }; + }; // End of "Navigation" section + + shape "STIK" { cornerRadius = 4, { [7, 7] } }; + + solid "STIK" { + priority = 255; + color = "red"; + shape = "STIK"; + top = 85; + left = 126; + }; +}; + +// 85 keys +// US/English (FRU 02K4785). +xkb_geometry "us" { + include "thinkpad(common)" + description = "IBM ThinkPad 560Z/600/600E/A22E, US"; + + shape "RTRN" { cornerRadius = 1, { [43, 18] }, { [2.5, 0], [40.5, 14] } }; + shape "LFSH" { cornerRadius = 1, { [43, 18] }, { [2.5, 0], [40.5, 14] } }; + shape "BKSL" { cornerRadius = 1, { [28, 18] }, { [2.5, 0], [25.5, 14] } }; + + section "Alpha" { + left = 2; + top = 33; + key.gap = 1; + key.color = "grey60"; + key.shape = "NORM"; + row { + top = 1; + keys { , , , , , + , , , , , + , , , { , "BKSP" } + }; + }; + row { + top = 20; + keys { { , "TABK" }, + , , , , , + , , , , , + , , { , "BKSL" } + }; + }; + row { + top = 39; + keys { { , "CAPS" }, + , , , , , + , , , , , + , { , "RTRN" } + }; + }; + row { + top = 58; + keys { { , "LFSH" }, + , , , , , + , , , , , + { , "RTSH" } + }; + }; + }; // End of "Alpha" section +}; + +// 86 keys +// Tested on: DE/German, UK/English (FRU 02K4787). +xkb_geometry "intl" { + include "thinkpad(common)" + description = "IBM ThinkPad 560Z/600/600E/A22E, Intl"; + + shape "RTRN" { cornerRadius = 1, { [28, 0], [28, 37], [4, 37], [4, 18], + [0, 18], [0, 0] }, + { [25.5, 0], [25.5, 33], [6.5, 33], + [6.5, 14], [2.5, 14], [2.5, 0] } }; + shape "LFSH" { cornerRadius = 1, { [24, 18] }, { [2.5, 0], [21.5, 14] } }; + + section "Alpha" { + left = 2; + top = 33; + key.gap = 1; + key.color = "grey60"; + key.shape = "NORM"; + row { + top = 1; + keys { , , , , , + , , , , , + , , , { , "BKSP" } + }; + }; + row { + top = 20; + keys { { , "TABK" }, + , , , , , + , , , , , + , , { , "RTRN" } + }; + }; + row { + top = 39; + keys { { , "CAPS" }, + , , , , , + , , , , , + , + }; + }; + row { + top = 58; + keys { { , "LFSH" }, , + , , , , , + , , , , , + { , "RTSH" } + }; + }; + }; // End of "Alpha" section +}; + +xkb_geometry "60" { + width = 290; + height = 140; + baseColor = "grey80"; + labelColor = "white"; + + shape "NORM" { cornerRadius = 1, { [18, 18] }, { [2, 0], [16, 16] } }; + + shape "ESC" { cornerRadius = 1, { [17, 13] }, { [1.5, 0], [15.5, 12] } }; + shape "FN0" { cornerRadius = 1, { [17, 11] }, { [1.5, 0], [15.5, 10] } }; + + shape "BKSP" { cornerRadius = 1, { [37, 18] }, { [2, 0], [35, 16] } }; + + shape "TABK" { cornerRadius = 1, { [27.5, 18] }, { [2, 0], [25.5, 16] } }; + shape "BKSL" { cornerRadius = 1, { [27.5, 18] }, { [2, 0], [25.5, 16] } }; + + shape "CAPS" { cornerRadius = 1, { [30.5, 18] }, { [2, 0], [28.5, 16] } }; + shape "RTRN" { cornerRadius = 1, { [43.5, 18] }, { [2, 0], [41.5, 16] } }; + + shape "LFSH" { cornerRadius = 1, { [40, 18] }, { [2, 0], [38, 16] } }; + shape "RTSH" { cornerRadius = 1, { [53, 18] }, { [2, 0], [51, 16] } }; + + shape "LCTL" { cornerRadius = 1, { [21, 18] }, { [2, 0], [19, 16] } }; + shape "LWIN" { cornerRadius = 1, { [15, 18] }, { [1.5, 0], [13.5, 16] } }; + + shape "SPCE" { cornerRadius = 1, { [97, 18] }, { [2, 0], [95, 16] } }; + + shape "ARR1" { cornerRadius = 1, { [17, 13] }, { [1.5, 0], [15.5, 12] } }; + shape "ARR2" { cornerRadius = 1, { [17, 11] }, { [1.5, 0], [15.5, 10] } }; + + shape "VOL" { cornerRadius = 2.5, { [5, 5] } }; + shape "TVTG" { cornerRadius = 0.5, { [0, 1], [17, 1], [17, 4], [0, 4] } }; + + shape "KEYS" { cornerRadius = 2, + { [0, 0], [19, 0], [19, 16], [172, 16], + [172, 4], [286, 4], [286, 133], [231, 133], + [231, 126], [0, 126] } }; + + solid "KeyPanel" { + shape = "KEYS"; + left = 2; + top = 3; + color = "black"; + }; + + shape "NULL0" { cornerRadius = 0.5, + { [0, 26], + [72, 26], [72, 14], [76, 14], [76, 26], + [149, 26], [149, 14], [153, 14], [153, 26], + [226, 26], [226, 2], [230, 2], [230, 26], + [284, 26], [284, 27], + [0, 27] } }; + + solid "NullPanel0" { + shape = "NULL0"; + left = 3; + top = 6; + color = "grey80"; + }; + + shape "NULL1" { cornerRadius = 0.5, { [0, 12], [17, 12], [17, 13], [0, 13] } }; + + solid "NullPanel1" { + shape = "NULL1"; + left = 3; + top = 6; + color = "grey80"; + }; + + shape "MEDIA" { cornerRadius = 0.5, { [0, 0], [55, 0], [55, 10], [0, 10] } }; + + solid "MediaPanel" { + shape = "MEDIA"; + left = 25.5; + top = 6; + color = "black"; + }; + + section "Volume" { + left = 22; + top = 8.5; + key.shape = "VOL"; + key.gap = 6; + key.color = "grey20"; + + row { + keys { , , , {, "TVTG", color = "blue"} }; + }; + }; + + key.gap = 1; + key.color = "grey60"; + + section "Function" { + left = 2; + top = 3; + key.shape = "FN0"; + row { + key.shape = "ESC"; + top = 1; + keys { }; + }; + row { + top = 5; + keys { { , 173 }, , }; + }; + row { + top = 17; + keys { , , , , + { , 6 }, , , , + { , 6 }, , , + }; + }; + }; // End of "Function" section + + section "Control" { + left = 2; + top = 109; + key.shape = "NORM"; + row { + top = 1; + keys { , { , "LCTL" }, { , "LWIN" }, , + { , "SPCE" }, , , + }; + }; + }; // End of "Control" section + + section "Editing" { + top = 7; + left = 233; + key.shape = "FN0"; + row { + top = 1; + keys { , , }; + }; + row { + top = 13; + keys { , , }; + }; + }; // End of "Editing" section + + section "Navigation" { + top = 109; + left = 233; + row { + key.shape = "ARR1"; + top = 1; + keys { , , }; + }; + row { + key.shape = "ARR2"; + top = 15; + keys { , , }; + }; + }; // End of "Navigation" section + + shape "STIK" { cornerRadius = 3.5, { [7, 7] } }; + + solid "STIK" { + priority = 255; + color = "red"; + shape = "STIK"; + top = 85.5; + left = 125.5; + }; + + section "Alpha" { + left = 2; + top = 33; + key.shape = "NORM"; + row { + top = 1; + keys { , , , , , + , , , , , + , , , { , "BKSP" } + }; + }; + row { + top = 20; + keys { { , "TABK" }, + , , , , , + , , , , , + , , { , "BKSL" } + }; + }; + row { + top = 39; + keys { { , "CAPS" }, + , , , , , + , , , , , + , { , "RTRN", color = "blue" } + }; + }; + row { + top = 58; + keys { { , "LFSH" }, + , , , , , + , , , , , + { , "RTSH" } + }; + }; + }; // End of "Alpha" section +}; diff --git a/squashfs-root/usr/share/X11/xkb/geometry/typematrix b/squashfs-root/usr/share/X11/xkb/geometry/typematrix new file mode 100644 index 0000000..46f72cb --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/typematrix @@ -0,0 +1,733 @@ +// -*- indent-tabs-mode: nil -*- + +// Created by Frédéric Boiteux +// and Gildas Cotomale + +// Note : the special/multimedia keys (Calc, WWW, Desktop…) have a keycode +// , found in definition file /usr/share/X11/xkb/keycodes/evdev. +// Fn = ; +// Calc = ; +// WWW = ; +// CycleWindows = ; +// Mail = ; +// PlayPause = ; +// Desktop = ; + + +xkb_geometry "tm2020" { + description = "TypeMatrix EZ-Reach 2020"; + + // Keyboard total size : + width = 308; + height = 152; + // Background / foreground colours + baseColor = "white"; + labelColor = "black"; + + // Key shapes: base key = 16 mm each side + shape "NORM" { cornerRadius=1, { [16, 16] }, { [1, 1], [15, 15] }}; + shape "ALPL" { cornerRadius=1, { [24.25, 16] }, { [1, 1], [23, 15] }}; + shape "DHAL" { cornerRadius=1, { [24.25, 32.5] }, { [1, 1], [23, 31.5] }}; + shape "FUNC" { cornerRadius=1, { [16, 12] }, { [2.5, 0], [13.5, 10] }}; + shape "FUNL" { cornerRadius=1, { [24.25, 12] }, { [2.5, 0], [21.5, 10] }}; + shape "SPCE" { cornerRadius=1, { [57, 26] }, { [2.5, 1], [54.5, 24] }}; + shape "DBLA" { cornerRadius=1, { [32.5, 16] }, { [1, 1], [31, 15] }}; + shape "LED" { cornerRadius=2, { [4, 4] }}; + shape "DECO" { cornerRadius=1, { [3, 18] }}; + + section "Function" { + left = 4; + top = 24; + key.gap = 0.5; + key.color = "grey10"; + key.shape = "FUNC"; + row { + keys { { , "FUNL" }, + , , , , }; + key.color = "grey20"; + keys { { , "FUNL" } }; + }; + row { + left = 150; + key.color = "red"; + keys { { , "FUNL" } }; + key.color = "grey10"; + keys { , , , , , , + { , "FUNL" } }; + }; + }; + + section "Alpha" { + left = 4; + top = 36.5; + key.gap = 0.5; + key.color = "grey10"; + key.shape = "NORM"; + row { + top = 0; + keys { { , "ALPL" }, + , , , , , + { , "DHAL" } }; + }; + row { + top = 16.5; + keys { { , "ALPL" }, + , , , , }; + }; + row { + top = 33; + keys { { , "DHAL" }, + , , , , , + { , "DHAL" } }; + }; + row { + top = 49.5; + left = 24.5; + keys { , , , , }; + }; + row { + top = 0; + left = 150; + keys { { , "DHAL" }, + , , }; + key.color = "grey20"; + keys { , , , { , "ALPL" } }; + }; + row { + top = 16.5; + left = 174.5; + keys { , , }; + key.color = "grey20"; + keys { , , , { , "ALPL" } }; + }; + row { + top = 33; + left = 150; + keys { { , "DHAL" }, + , , }; + key.color = "grey20"; + keys { , , , { , "DHAL" } }; + }; + row { + top = 49.5; + left = 174.5; + keys { , , }; + key.color = "grey20"; + keys { , , }; + }; + }; + + section "Control" { + left = 4; + top = 102.5; + key.gap = 0.5; + key.color = "grey10"; + key.shape = "ALPL"; + row { + top = 0; + keys { , , }; + keys { { , "SPCE"} }; + }; + row { + top = 16.5; + keys { , , }; + }; + row { + top = 0; + left = 150; + key.shape = "NORM"; + keys { { , "SPCE"}, }; + key.color = "grey20"; + keys { , , , { , "DHAL" } }; + }; + row { + top = 16.5; + left = 207.5; + key.shape = "NORM"; + key.color = "grey20"; + keys { { , "DBLA" }, , }; + }; + }; + + // Leds + indicator.top = 12; + indicator.onColor = "green"; + indicator.offColor = "grey10"; + indicator.shape = "LED"; + indicator "Num Lock" { left = 252; }; + indicator "Caps Lock" { left = 266; }; + indicator "Misc" { left = 280; }; + text.top= 5; + text.color= "black"; + text "NumLockLabel" { left= 252; text="1"; }; + text "CapsLockLabel" { left= 266; text="A"; }; + text "MiscLabel" { left= 280; text="D"; }; + + text "Logo" { left = 29; top = 10; text="TypeMatrix™"; }; + + // Other decorations: drawings + solid "rainure1" { shape = "DECO"; top = 1; left = 110; color = "grey10";}; + solid "rainure2" { shape = "DECO"; top = 1; left = 115; color = "grey10";}; + solid "rainure3" { shape = "DECO"; top = 1; left = 120; color = "grey10";}; + solid "rainure4" { shape = "DECO"; top = 1; left = 125; color = "grey10";}; + solid "rainure5" { shape = "DECO"; top = 1; left = 130; color = "grey10";}; + solid "rainure6" { shape = "DECO"; top = 1; left = 135; color = "grey10";}; + solid "rainure7" { shape = "DECO"; top = 1; left = 140; color = "grey10";}; + solid "rainure8" { shape = "DECO"; top = 1; left = 145; color = "grey10";}; + solid "rainure9" { shape = "DECO"; top = 1; left = 150; color = "grey10";}; + solid "rainure10" { shape = "DECO"; top = 1; left = 155; color = "grey10";}; + solid "rainure11" { shape = "DECO"; top = 1; left = 160; color = "grey10";}; + solid "rainure12" { shape = "DECO"; top = 1; left = 165; color = "grey10";}; + solid "rainure13" { shape = "DECO"; top = 1; left = 170; color = "grey10";}; +}; // geometry tm2020 + + +xkb_geometry "tm2030_shape" { + // Keyboard total size + width = 320; + height = 130; + // Background / foreground colours + baseColor = "white"; + labelColor = "black"; + + // Key shapes: base key = 20 mm each side + shape "NORM" { cornerRadius=1, { [18, 18] }, { [1.5, 1.5], [16.5, 14] } }; + shape "FUNC" { cornerRadius=1, { [18, 12] }, { [2.5, 0], [15.5, 10] } }; + shape "LFSH" { cornerRadius=1, { [18, 36.5] }, { [2.5, 0], [15.5, 30] } }; + shape "ALT1" { cornerRadius=1, { [27.5, 18] }, { [2.5, 0], [23.5, 14] } }; + shape "BKSP" { cornerRadius=1, { [18, 30.5] }, { [1.5, 1.5], [16.5, 29] } }; + shape "SPCE" { cornerRadius=1, { [92, 25] }, { [1.5, 1.5], [90.5, 22] } }; + shape "LED" { cornerRadius=2, { [4, 4] } }; + shape "PAN1" { cornerRadius=1, { [27, 126.5] } }; + shape "PAN2" { cornerRadius=1, { [92, 13] } }; + + // Other decorations: panels + solid "panneau1" { + shape = "PAN1"; + left = 0; + top = 0; + color = "grey40"; + }; + solid "panneau2" { + shape = "PAN2"; + left = 101.5; + top = 113.5; + color = "grey40"; + }; + + // Leds: they must be put after panels, otherwise the panels overwrite them + indicator.left = 6; + indicator.onColor = "green"; + indicator.offColor = "grey10"; + indicator.shape = "LED"; + + indicator "Num Lock" { top = 11 ; }; + indicator "Caps Lock" { top = 27.5; }; + indicator "Scroll Lock" { top = 44 ; }; + + text.left = 12; + text.color = "black"; + text "NumLockLabel" { top = 11; text="num"; }; + text "CapsLockLabel" { top = 27.5; text="caps"; }; + text "SrollLockLabel" { top = 44; text="scroll"; }; +}; // geometry tm2030_shape + + +xkb_geometry "tm2030_MiscDiod_dvk" { + text "ModeLabel" { left = 12; top = 58; color = "black"; text="Dvorak"; }; +}; + +xkb_geometry "tm2030_MiscDiod_102" { + text "ModeLabel" { left = 12; top = 58; color = "black"; text="102"; }; +}; + +xkb_geometry "tm2030_MiscDiod_106" { + text "ModeLabel" { left = 12; top = 58; color = "black"; text="106"; }; +}; + +xkb_geometry "tm2030_MiscDiod_off" { + indicator "Misc" { left = 6; top = 60.5; shape = "LED"; + offColor = "grey10"; onColor = "grey10"; }; +}; + +xkb_geometry "tm2030_MiscDiod_on" { + indicator "Misc" { left = 6; top = 60.5; shape = "LED"; + offColor = "green"; onColor = "green"; }; +}; + + +xkb_geometry "tm2030USB_func" { + section "Function" { + left = 27; + top = 1.5; + key.gap = 0.5; + key.color = "grey30"; + key.shape = "FUNC"; + row { + keys { , , , , , }; + }; + row { + left = 129.5; + keys { , , , , , , + , }; + }; + }; +}; // geometry tm2030USB_func + + +xkb_geometry "tm2030USB_alpha" { + section "Alpha" { + left = 27; + top = 14; + key.gap = 0.5; + key.color = "grey10"; + key.shape = "NORM"; + row { + top = 0; + keys { , , , , , }; + }; + row { + top = 18.5; + keys { , , , , , }; + }; + row { + top = 37; + keys { { , "LFSH" }, , , , , }; + }; + row { + top = 55.5; + left = 18.5; + keys { , , , , }; + }; + + row { + top = 0; + left = 129.5; + keys { , , , , , , , }; + }; + row { + top = 18.5; + left = 129.5; + keys { , , , , , , , }; + }; + row { + top = 37; + left = 129.5; + keys { , , , , , , { , "LFSH" }, }; + }; + row { + top = 55.5; + left = 129.5; + keys { , , , , , }; + }; + row { + top = 55.5; + left = 259; + keys { }; + }; + row { + top = 74; + left = 74; + keys { { , "SPCE" } }; + }; + }; +}; // geometry tm2030USB_alpha + + +xkb_geometry "tm2030USB_ctrl" { + section "Control" { + left = 27; + top = 0; + key.gap = 0.5; + key.color = "grey30"; + key.shape = "NORM"; + row { + top = 88; + keys { , , , }; + }; + row { + top = 106.5; + keys { , { , "ALT1" }, { , "ALT1" } }; + }; + row { + top = 88; + left = 166.5; + keys { , , , , { , "LFSH"}, }; + }; + row { + top = 106.5; + left = 166.5; + keys { , , , }; + }; + row { + top = 106.5; + left = 259; + keys { }; + }; + row { + top = 1; + left = 111.5; + vertical = true; + keys { , { , "BKSP" }, { , "LFSH" } }; + }; + }; +}; // geometry tm2030USB_ctrl + + +xkb_geometry "tm2030PS2" { + include "typematrix(tm2030_shape)" + include "typematrix(tm2030_MiscDiod_dvk)" + include "typematrix(tm2030_MiscDiod_off)" + + description = "TypeMatrix EZ-Reach 2030 PS2"; + + section "Function" { + left = 27; + top = 1.5; + key.gap = 0.5; + key.color = "grey10"; + key.shape = "FUNC"; + row { + key.color = "grey30"; + keys { }; + }; + row { + left = 18.5; + keys { , , , }; + }; + row { + left = 92.5; + key.color = "grey30"; + keys { }; + }; + row { + left = 129.5; + key.color = "grey30"; + keys { , , }; + }; + row { + left = 185; + keys { , , , }; + }; + row { + left = 259; + key.color = "grey30"; + keys { }; + }; + }; + + section "Alpha" { + left = 27; + top = 14; + key.gap = 0.5; + key.color = "grey10"; + key.shape = "NORM"; + row { + top = 0; + keys { , , , , , }; + }; + row { + top = 18.5; + keys { , , , , , }; + }; + row { + top = 37; + keys { { , "LFSH" }, , , , , }; + }; + row { + top = 55.5; + left = 18.5; + keys { , , , , }; + }; + + row { + top = 0; + left = 129.5; + keys { , , , , , , , }; + }; + row { + top = 18.5; + left = 129.5; + keys { , , }; + }; + row { + top = 18.5; + left = 185; + key.color = "grey30"; + keys { , , , }; + }; + row { + top = 18.5; + left = 259; + keys { }; + }; + row { + top = 37; + left = 129.5; + keys { , , }; + }; + row { + top = 37; + left = 185; + key.color = "grey30"; + keys { , , , { , "LFSH" }, + {, key.color="red"} }; + }; + row { + top = 55.5; + left = 129.5; + keys { , , }; + }; + row { + top = 55.5; + left = 185; + key.color = "grey30"; + keys { , , }; + }; + row { + top = 55.5; + left = 259; + keys { }; + }; + row { + top = 74; + left = 74; + keys { { , "SPCE" } }; + }; + }; + + section "Control" { + left = 27; + top = 0; + key.gap = 0.5; + key.color = "grey10"; + key.shape = "NORM"; + row { + top = 88; + keys { , , , }; + }; + row { + top = 106.5; + keys { , { , "ALT1" }, { , "ALT1" } }; + }; + row { + top = 88; + left = 166.5; + keys { }; + }; + row { + top = 88; + left = 185; + key.color = "grey30"; + keys { , , , { , "LFSH"} }; + }; + row { + top = 88; + left = 259; + keys { }; + }; + row { + top = 106.5; + left = 166.5; + keys { }; + }; + row { + top = 106.5; + left = 185; + key.color = "grey30"; + keys { , , }; + }; + row { + top = 106.5; + left = 259; + keys { }; + }; + row { + top = 1; + left = 111.5; + key.color = "grey10"; + vertical = true; + keys { , { , "BKSP" }, { , "LFSH" } }; + }; + }; +}; // geometry tm2030PS2 + + +xkb_geometry "tm2030USB" { + include "typematrix(tm2030_shape)" + include "typematrix(tm2030_MiscDiod_102)" + include "typematrix(tm2030_MiscDiod_off)" + + description = "TypeMatrix EZ-Reach 2030 USB"; + + include "typematrix(tm2030USB_func)" + include "typematrix(tm2030USB_alpha)" + include "typematrix(tm2030USB_ctrl)" +}; // geometry tm2030USB + + +// European 102/105 keys mode. +// Same as the standard keyboard, except for one key: Play becomes LSGT. +xkb_geometry "tm2030USB-102" { + include "typematrix(tm2030_shape)" + include "typematrix(tm2030_MiscDiod_102)" + include "typematrix(tm2030_MiscDiod_on)" + + description = "TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)"; + + include "typematrix(tm2030USB_func)" + include "typematrix(tm2030USB_alpha)" + + section "Control" { + left = 27; + top = 0; + key.gap = 0.5; + key.color = "grey30"; + key.shape = "NORM"; + row { + top = 88; + keys { , , , }; + }; + row { + top = 106.5; + keys { , { , "ALT1" }, { , "ALT1" } }; + }; + row { + top = 88; + left = 166.5; + keys { , , , , { , "LFSH"}, }; + }; + row { + top = 106.5; + left = 166.5; + keys { , , , }; + }; + row { + top = 106.5; + left = 259; + keys { }; + }; + row { + top = 1; + left = 111.5; + vertical = true; + keys { , { , "BKSP" }, { , "LFSH" } }; + }; + }; +}; // geometry tm2030USB-102 + + +// Japan / Korean 106 keys mode. +// Same as the standard keyboard, except for the following keys: +// – is replaced by +// – WWW key becomes +// — Calc key becomes +// — key becomes +// — and Mail key becomes + +// About control keys: +// NFER/MEHU and XFER/KANJ: TMx keeps LWIN (and RWIN if it happens to exist). +// HKTG/HIRA: TMx keeps MENU/COMP, but locates this key in alpha section (see above). + +xkb_geometry "tm2030USB-106" { + include "typematrix(tm2030_shape)" + include "typematrix(tm2030_MiscDiod_106)" + include "typematrix(tm2030_MiscDiod_on)" + + description = "TypeMatrix EZ-Reach 2030 USB (106:JP mode)"; + + include "typematrix(tm2030USB_func)" + + section "Alpha" { + left = 27; + top = 14; + key.gap = 0.5; + key.color = "grey10"; + key.shape = "NORM"; + row { + top = 0; + keys { , , , , , }; + }; + row { + top = 18.5; + keys { , , , , , }; + }; + row { + top = 37; + keys { { , "LFSH" }, , , , , }; + }; + row { + top = 55.5; + left = 18.5; + keys { , , , , }; + }; + + row { + top = 0; + left = 129.5; + keys { , , , , , , , }; + }; + row { + top = 18.5; + left = 129.5; + keys { , , , , , , , }; + }; + row { + top = 37; + left = 129.5; + keys { , , , , , , { , "LFSH" }, }; + }; + row { + top = 55.5; + left = 129.5; + keys { , , , , , }; + }; + row { + top = 55.5; + left = 259; + keys { }; + }; + row { + top = 74; + left = 74; + keys { { , "SPCE" } }; + }; + }; + + section "Control" { + left = 27; + top = 0; + key.gap = 0.5; + key.color = "grey30"; + key.shape = "NORM"; + row { + top = 88; + keys { , , , }; + }; + row { + top = 106.5; + keys { , { , "ALT1" }, { , "ALT1" } }; + }; + row { + top = 88; + left = 166.5; + keys { , , , , { , "LFSH"}, }; + }; + row { + top = 106.5; + left = 166.5; + keys { , , , }; + }; + row { + top = 106.5; + left = 259; + keys { }; + }; + row { + top = 1; + left = 111.5; + vertical = true; + keys { , { , "BKSP" }, { , "LFSH" } }; + }; + }; +}; // geometry tm2030USB-106 diff --git a/squashfs-root/usr/share/X11/xkb/geometry/winbook b/squashfs-root/usr/share/X11/xkb/geometry/winbook new file mode 100644 index 0000000..842eefb --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/geometry/winbook @@ -0,0 +1,143 @@ +default xkb_geometry "XP5" { + + description= "WinBook XP5"; + width= 281; + height= 180; + + shape.cornerRadius= 1; + + shape "NORM" { + { [17,17] }, + { [ 2, 1], [ 15, 15 ] } + }; + shape "FKEY" { + { [ 15, 10 ] }, + { [ 1, 0 ], [ 14, 9.5 ] } + }; + shape "ONE" { + { [ 28, 17 ] }, + { [ 11, 0 ], [ 28, 17 ] }, + { [ 13, 1 ], [ 26, 15 ] } + }; + shape "WIDE" { // backspace, caps lock, ctrl alt ? + { [ 24.5, 17 ] }, + { [ 2, 1 ], [ 22.5, 15 ] } + }; + shape "WIDR" { // backslash, left shift + { [ 35, 17 ] }, + { [ 2, 1 ], [ 33, 15 ] } + }; + shape "RTRN" { + { [ 45, 17 ] }, + { [ 2, 1 ], [ 43, 15 ] } + }; + shape "SPCE" { + { [ 90, 17 ] }, + { [ 2, 1 ], [ 88, 15 ] } + }; + shape "STIK" { + cornerRadius= 4, + { [ 8, 8 ] } + }; + shape "BTN" { + { [ 31, 6 ] } + }; + + section.left= 2; + row.left= 1; + key.shape= "NORM"; + key.gap= 0.5; + + key.color= "grey10"; + labelColor= "white"; + baseColor= "grey20"; + + section "Whole" { + top= 10; + row { + top= 11; + key.shape= "FKEY"; + keys { + , + , , , , , , + , , , , , , + , , , + }; + }; + row { + top= 22; + keys { + { , "ONE" }, + , , , , , + , , , , , , + { , shape="WIDE" }, + + }; + }; + row { + top= 40; + keys { + , , , , , , , + , , , , , , + { , "WIDR" } + }; + }; + row { + top= 58; + keys { { , shape="WIDE" }, + , , , , , + , , , , , + , + { , shape="RTRN" } + }; + }; + row { + top= 76; + keys { + { , shape="WIDR" }, + , , , , , + , , , , , + , , + }; + }; + row { + top= 94; + keys { + { , "WIDE" }, , { , "WIDE" }, + , { , shape="SPCE" }, , , + , , + }; + }; + overlay "KPAD" { + =, =, =, =, + =, =, =, =, + =, =, =, =, + =, =, = + }; + }; // End of "Whole" section + + solid "STIK" { + color= "red"; + shape= "STIK"; + top= 81; + left= 112; + }; + + solid "BTN1" { + color= "red"; + shape= "BTN"; + top= 137; + left= 93; + }; + + solid "BTN2" { + color= "red"; + shape= "BTN"; + top= 137; + left= 127; + }; + + alias = ; + alias = ; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/README b/squashfs-root/usr/share/X11/xkb/keycodes/README new file mode 100644 index 0000000..6363f3d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/README @@ -0,0 +1,6 @@ +The keycodes component of a keyboard mapping specifies the range and +interpretation of the raw keycodes reported by the device. It sets the keycodes +symbolic name, the minimum and maximum legal codes for the keyboard, and the +symbolic name for each key. The keycodes component might also contain aliases +for some keys, symbolic names for some indicators and a description of which +indicators are physically present. diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/aliases b/squashfs-root/usr/share/X11/xkb/keycodes/aliases new file mode 100644 index 0000000..f398772 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/aliases @@ -0,0 +1,99 @@ + +// keycode aliases for phonetic keyboard maps + +default +xkb_keycodes "qwerty" { + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; + +xkb_keycodes "azerty" { + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; + +xkb_keycodes "qwertz" { + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/amiga b/squashfs-root/usr/share/X11/xkb/keycodes/amiga new file mode 100644 index 0000000..877d94f --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/amiga @@ -0,0 +1,225 @@ +default xkb_keycodes "usa1" { + + minimum= 8; + maximum= 255; + + = 77; + = 88; + = 89; + = 90; + = 91; + = 92; + = 93; + = 94; + = 95; + = 96; + = 97; + + = 8; + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 73; + + = 74; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 76; + + = 107; + = 106; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + + = 104; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 105; + + = 108; + = 110; + = 72; + = 111; + = 109; + + = 78; + = 103; + = 84; + = 87; + = 85; + = 86; + + = 98; + = 99; + = 100; + = 101; + + = 69; + = 70; + = 71; + = 82; + + = 53; + = 54; + = 55; + = 102; + + = 37; + = 38; + = 39; + + = 23; + = 68; + = 75; +}; + +xkb_keycodes "de" { + + minimum= 8; + maximum= 255; + + = 77; + = 88; + = 89; + = 90; + = 91; + = 92; + = 93; + = 94; + = 95; + = 96; + = 97; + + = 8; + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 73; + + = 74; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 76; + + = 107; + = 106; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + = 51; + + = 104; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 105; + + = 108; + = 110; + = 72; + = 111; + = 109; + + = 78; + = 103; + = 84; + = 87; + = 85; + = 86; + + = 98; + = 99; + = 100; + = 101; + + = 69; + = 70; + = 71; + = 82; + + = 53; + = 54; + = 55; + = 102; + + = 37; + = 38; + = 39; + + = 23; + = 68; + = 75; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/ataritt b/squashfs-root/usr/share/X11/xkb/keycodes/ataritt new file mode 100644 index 0000000..c7df8dd --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/ataritt @@ -0,0 +1,117 @@ +default xkb_keycodes "us" { + + minimum= 8; + maximum= 255; + + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 49; + = 22; + + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + = 91; + + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 51; + + = 50; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + + = 64; + = 65; + = 66; + + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + + = 106; + = 105; + = 90; + = 79; + = 80; + = 83; + = 88; + = 85; + + = 107; + = 108; + = 109; + = 110; + + = 111; + = 112; + = 113; + = 82; + + = 114; + = 115; + = 116; + = 86; + + = 117; + = 118; + = 119; + + = 120; + = 121; + = 122; +}; + +xkb_keycodes "de" { + include "ataritt(us)" + + = 104; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/digital_vndr/lk b/squashfs-root/usr/share/X11/xkb/keycodes/digital_vndr/lk new file mode 100644 index 0000000..30b49d3 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/digital_vndr/lk @@ -0,0 +1,270 @@ +// +//Copyright (c) 1996 Digital Equipment Corporation +// +//Permission is hereby granted, free of charge, to any person obtaining +//a copy of this software and associated documentation files (the +//"Software"), to deal in the Software without restriction, including +//without limitation the rights to use, copy, modify, merge, publish, +//distribute, sublicense, and sell copies of the Software, and to +//permit persons to whom the Software is furnished to do so, subject to +//the following conditions: +// +//The above copyright notice and this permission notice shall be included +//in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, +//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +//THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of the Digital Equipment +//Corporation shall not be used in advertising or otherwise to promote +//the sale, use or other dealings in this Software without prior written +//authorization from Digital Equipment Corporation. +// +// HISTORY +// Log +// Revision 1.2 1996/06/18 09:13:22 erik +// use flags correctly, assorted cleanups and consortium fixes +// +// Revision 1.1.6.2 1995/08/07 17:40:34 William_Walker +// Upgrade XKB to protocol 0.62 (dual submit from decx11) +// [1995/08/06 14:06:25 William_Walker] +// +// Revision 1.1.2.4 1995/08/05 15:25:55 William_Walker +// Upgrade to XKB protocol 0.62 +// [1995/08/05 14:39:58 William_Walker] +// +// Revision 1.1.2.3 1995/06/27 12:17:31 William_Walker +// Rename to ISO9995 compliant . +// [1995/06/26 20:24:04 William_Walker] +// +// Revision 1.1.2.2 1995/06/05 19:21:28 William_Walker +// New file. I love keymaps. +// [1995/06/05 18:07:29 William_Walker] +// +// EndLog +// +// @(#)RCSfile: lk Revision: /main/3 (DEC) Date: 1996/01/24 12:13:31 +// +xkb_keycodes "lk_common" { + // "Function" keys + = 86; + = 87; + = 88; + = 89; + = 90; + = 100; + = 101; + = 102; + = 103; + = 104; + = 113; + = 114; + + = 170; + = 167; + = 169; + = 168; + + // "Keypad" keys + = 157; + = 158; + = 159; + = 153; + = 154; + = 155; + = 150; + = 151; + = 152; + = 149; + = 146; + = 148; + + // "Alphanumeric" keys + = 191; + = 192; + = 197; + = 203; + = 208; + = 214; + = 219; + = 224; + = 229; + = 234; + = 239; + = 249; + = 245; + = 188; + + = 190; + = 193; + = 198; + = 204; + = 209; + = 215; + = 220; + = 225; + = 230; + = 235; + = 240; + = 250; + = 246; + = 189; + + = 175; + = 176; + = 194; + = 199; + = 205; + = 210; + = 216; + = 221; + = 226; + = 231; + = 236; + = 242; + = 251; + + = 174; + = 195; + = 200; + = 206; + = 211; + = 217; + = 222; + = 227; + = 232; + = 237; + = 243; + = 171; + + = 212; + + = 255; // Support R5 Lock Down Modifiers + + alias = ; +}; + +xkb_keycodes "lkx01" { + include "digital_vndr/lk(lk_common)" + = 201; + = 115; + = 116; + = 128; + = 129; + = 130; + = 131; + = 124; + = 125; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 161; + = 162; + = 163; + = 164; + = 160; + = 156; + = 247; + = 177; +}; + +xkb_keycodes "lk201" { + include "digital_vndr/lk(lkx01)" + indicator 4 = "Scroll Lock"; + indicator 3 = "Caps Lock"; + indicator 2 = "Compose"; + indicator 1 = "Wait"; +}; + +xkb_keycodes "lk421" { + include "digital_vndr/lk(lkx01)" + = 172; + = 178; + = 173; +}; + +xkb_keycodes "lk401" { + include "digital_vndr/lk(lk421)" + indicator 4 = "Scroll Lock"; + indicator 3 = "Caps Lock"; +}; + +xkb_keycodes "lk44x" { + include "digital_vndr/lk(lk_common)" + = 85; + = 115; + = 116; + = 124; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 161; + = 162; + = 163; + = 164; + = 156; + = 172; + = 178; + = 173; +}; + +xkb_keycodes "lk443" { + include "digital_vndr/lk(lk44x)" + = 247; + indicator 3 = "Caps Lock"; + indicator 4 = "Scroll Lock"; + indicator 5 = "Num Lock"; +}; + +xkb_keycodes "lk444" { + include "digital_vndr/lk(lk44x)" + = 201; + = 247; + indicator 3 = "Caps Lock"; + indicator 4 = "Scroll Lock"; + indicator 5 = "Num Lock"; +}; + +// LK201-LT = lk201 +// LK421-AJ = lk421 +AB11 +// LK421-JJ = lk421aj+MUHE+KANJ+HIRA +// LK401-AJ = lk401 +// LK401-BJ = lk401 +MUHE+KANJ+HIRA +// LK401-JJ = lk401bj+AB11 +// LK401-LT = lk401 +// LK441-LT = lk443 + +xkb_keycodes "lk421aj" { + include "digital_vndr/lk(lk421)" + = 252; +}; + +xkb_keycodes "lk421jj" { + include "digital_vndr/lk(lk421aj)" + = 94; + = 95; + = 97; +}; + +xkb_keycodes "lk401bj" { + include "digital_vndr/lk(lk401)" + = 94; + = 95; + = 97; +}; + +xkb_keycodes "lk401jj" { + include "digital_vndr/lk(lk401bj)" + = 252; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/digital_vndr/pc b/squashfs-root/usr/share/X11/xkb/keycodes/digital_vndr/pc new file mode 100644 index 0000000..33ef848 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/digital_vndr/pc @@ -0,0 +1,277 @@ +// +//Copyright (c) 1996 Digital Equipment Corporation +// +//Permission is hereby granted, free of charge, to any person obtaining +//a copy of this software and associated documentation files (the +//"Software"), to deal in the Software without restriction, including +//without limitation the rights to use, copy, modify, merge, publish, +//distribute, sublicense, and sell copies of the Software, and to +//permit persons to whom the Software is furnished to do so, subject to +//the following conditions: +// +//The above copyright notice and this permission notice shall be included +//in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, +//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +//THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of the Digital Equipment +//Corporation shall not be used in advertising or otherwise to promote +//the sale, use or other dealings in this Software without prior written +//authorization from Digital Equipment Corporation. +// +// HISTORY +// Log +// Revision 1.2 1996/06/18 09:13:25 erik +// use flags correctly, assorted cleanups and consortium fixes +// +// Revision 1.1.6.3 1995/10/25 21:00:14 William_Walker +// Add pc104-key support +// [1995/10/23 15:46:21 William_Walker] +// +// Revision 1.1.6.2 1995/08/07 17:40:37 William_Walker +// Upgrade XKB to protocol 0.62 (dual submit from decx11) +// [1995/08/06 14:06:28 William_Walker] +// +// Revision 1.1.2.4 1995/08/05 15:25:56 William_Walker +// Upgrade to XKB protocol 0.62 +// [1995/08/05 14:40:02 William_Walker] +// +// Revision 1.1.2.3 1995/06/27 12:17:32 William_Walker +// Rename to ISO9995 compliant . +// [1995/06/26 20:24:07 William_Walker] +// +// Revision 1.1.2.2 1995/06/05 19:21:31 William_Walker +// New file. I love keymaps. +// [1995/06/05 18:07:34 William_Walker] +// +// EndLog +// +// @(#)RCSfile: pc Revision: /main/3 (DEC) Date: 1996/01/24 12:13:36 +// +xkb_keycodes "pc_common" { + // "Function" keys + = 9; + = 15; + = 23; + = 31; + = 39; + = 47; + = 55; + = 63; + = 71; + = 79; + = 86; + = 94; + + // "Editing" keys + + = 99; + = 97; + = 96; + = 106; + + // "Keypad" keys + = 108; + = 117; + = 125; + + = 107; + = 115; + = 116; + + = 105; + = 114; + = 122; + = 121; + + = 112; + = 113; + + // "Alphanumeric" keys + = 22; + = 30; + = 38; + = 37; + = 46; + = 54; + = 61; + = 62; + = 70; + = 69; + = 78; + = 85; + = 102; + + = 13; + = 21; + = 29; + = 36; + = 45; + = 44; + = 53; + = 60; + = 67; + = 68; + = 77; + = 84; + = 91; + + = 20; + = 28; + = 27; + = 35; + = 43; + = 52; + = 51; + = 59; + = 66; + = 75; + = 76; + = 82; + = 90; + + = 18; + = 26; + = 34; + = 33; + = 42; + = 50; + = 49; + = 58; + = 65; + = 73; + = 74; + = 89; + + = 17; + = 25; + = 41; + = 57; + + = 255; // Support R5 Lock Down Modifiers + +}; + +xkb_keycodes "pc10x" { + include "digital_vndr/pc(pc_common)" + = 8; + = 14; + = 87; + = 95; + = 98; + = 103; + = 110; + = 111; + = 100; + = 101; + = 109; + = 118; + = 119; + = 126; + = 132; + = 124; + = 88; + + alias = ; + + indicator 3 = "Caps Lock"; + indicator 4 = "Scroll Lock"; +}; + +xkb_keycodes "pc101" { + include "digital_vndr/pc(pc10x)" + = 92; + indicator 5 = "Num Lock"; +}; + + +xkb_keycodes "pc102" { + include "digital_vndr/pc(pc10x)" + = 19; + = 83; + indicator 5 = "Num Lock"; +}; + +xkb_keycodes "pc104" { + include "digital_vndr/pc(pc101)" + = 139; + = 140; + = 141; +}; + +xkb_keycodes "lk411_common" { + include "digital_vndr/pc(pc_common)" + = 8; + = 14; + = 24; + = 10; + = 16; + = 87; + = 95; + = 98; + = 11; + = 12; + = 110; + = 103; + = 100; + = 101; + = 111; + = 109; + = 118; + = 119; + = 126; + = 132; + = 19; + = 124; + = 40; + = 88; + + alias = ; + + indicator 3 = "Caps Lock"; + indicator 4 = "Scroll Lock"; +}; + +xkb_keycodes "lk411" { + include "digital_vndr/pc(lk411_common)" + = 92; +}; + +xkb_keycodes "lk450" { + include "digital_vndr/pc(lk411)" + indicator 2 = "Compose"; + indicator 1 = "Wait"; +}; + +// Japanese variants +// +// PCXAJ-AA = pc+BKSL+AC12+AB11+MUHE+KANJ+HIRA+indicator +// LK411-AJ = lk411+MUHE+KANJ+HIRA +// LK411-JJ = lk411+BKSL+AZ01+MUHE+KANJ+HIRA +// LK411-LT = lk411 + +xkb_keycodes "pcxajaa" { + include "digital_vndr/pc(pc10x)" + = 93; + = 83; + = 81; + = 133; + = 134; + = 135; + indicator 5 = "Group 2"; +}; + +xkb_keycodes "lk411jj" { + include "digital_vndr/pc(lk411_common)" + = 81; + = 83; + = 133; + = 134; + = 135; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/empty b/squashfs-root/usr/share/X11/xkb/keycodes/empty new file mode 100644 index 0000000..eedc943 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/empty @@ -0,0 +1,4 @@ +default xkb_keycodes "empty" { + minimum= 8; + maximum= 255; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/evdev b/squashfs-root/usr/share/X11/xkb/keycodes/evdev new file mode 100644 index 0000000..624ac68 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/evdev @@ -0,0 +1,314 @@ +// translation from evdev scancodes to something resembling xfree86 keycodes. + +default xkb_keycodes "evdev" { + minimum = 8; + maximum = 255; + + # Added for pc105 compatibility + = 94; + + = 49; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 51; + alias = ; + = 36; + + = 66; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + + = 50; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + + = 64; + = 37; + = 65; + = 105; + = 108; + // Microsoft keyboard extra keys + = 133; + = 134; + = 135; + alias = ; + + = 9; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 95; + = 96; + + = 107; + // = 107; + = 78; + = 127; + // = 419; + + = 118; + = 110; + = 112; + = 119; + = 115; + = 117; + + = 111; + = 113; + = 116; + = 114; + + = 77; + = 106; + = 63; + = 82; + + = 79; + = 80; + = 81; + = 86; + + = 83; + = 84; + = 85; + + = 87; + = 88; + = 89; + = 104; + + = 90; + = 91; + = 125; + + = 191; + = 192; + = 193; + = 194; + = 195; + = 196; + = 197; + = 198; + = 199; + = 200; + = 201; + = 202; + + // Keys that are generated on Japanese keyboards + + // = 93; // Hankaku/Zenkakau toggle - not actually used + alias = ; + = 101; // Hiragana/Katakana toggle + = 97; // backslash/underscore + = 100; // Henkan + = 102; // Muhenkan + = 132; // Yen + = 98; // Katakana + = 99; // Hiragana + = 103; // KPJPComma + // = 97; // Romaji + + // Keys that are generated on Korean keyboards + + = 130; // Hangul Latin toggle + = 131; // Hangul to Hanja conversion + + // Solaris compatibility + + alias = ; + alias = ; + = 121; + = 122; + = 123; + = 124; + = 136; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + + // Extended keys that may be generated on "Internet" keyboards. + // evdev has standardize names for these. + + = 109; // #define KEY_LINEFEED 101 + = 120; // #define KEY_MACRO 112 + = 126; // #define KEY_KPPLUSMINUS 118 + = 128; // #define KEY_SCALE 120 + = 129; // #define KEY_KPCOMMA 121 + = 147; // #define KEY_MENU 139 + = 148; // #define KEY_CALC 140 + = 149; // #define KEY_SETUP 141 + = 150; // #define KEY_SLEEP 142 + = 151; // #define KEY_WAKEUP 143 + = 152; // #define KEY_FILE 144 + = 153; // #define KEY_SENDFILE 145 + = 154; // #define KEY_DELETEFILE 146 + = 155; // #define KEY_XFER 147 + = 156; // #define KEY_PROG1 148 + = 157; // #define KEY_PROG2 149 + = 158; // #define KEY_WWW 150 + = 159; // #define KEY_MSDOS 151 + = 160; // #define KEY_COFFEE 152 + = 161; // #define KEY_DIRECTION 153 + = 162; // #define KEY_CYCLEWINDOWS 154 + = 163; // #define KEY_MAIL 155 + = 164; // #define KEY_BOOKMARKS 156 + = 165; // #define KEY_COMPUTER 157 + = 166; // #define KEY_BACK 158 + = 167; // #define KEY_FORWARD 159 + = 168; // #define KEY_CLOSECD 160 + = 169; // #define KEY_EJECTCD 161 + = 170; // #define KEY_EJECTCLOSECD 162 + = 171; // #define KEY_NEXTSONG 163 + = 172; // #define KEY_PLAYPAUSE 164 + = 173; // #define KEY_PREVIOUSSONG 165 + = 174; // #define KEY_STOPCD 166 + = 175; // #define KEY_RECORD 167 + = 176; // #define KEY_REWIND 168 + = 177; // #define KEY_PHONE 169 + = 178; // #define KEY_ISO 170 + = 179; // #define KEY_CONFIG 171 + = 180; // #define KEY_HOMEPAGE 172 + = 181; // #define KEY_REFRESH 173 + = 182; // #define KEY_EXIT 174 + = 183; // #define KEY_MOVE 175 + = 184; // #define KEY_EDIT 176 + = 185; // #define KEY_SCROLLUP 177 + = 186; // #define KEY_SCROLLDOWN 178 + = 187; // #define KEY_KPLEFTPAREN 179 + = 188; // #define KEY_KPRIGHTPAREN 180 + = 189; // #define KEY_NEW 181 + = 190; // #define KEY_REDO 182 + = 208; // #define KEY_PLAYCD 200 + = 209; // #define KEY_PAUSECD 201 + = 210; // #define KEY_PROG3 202 + = 211; // #define KEY_PROG4 203 conflicts with AB11 + = 212; // #define KEY_DASHBOARD 204 + = 213; // #define KEY_SUSPEND 205 + = 214; // #define KEY_CLOSE 206 + = 215; // #define KEY_PLAY 207 + = 216; // #define KEY_FASTFORWARD 208 + = 217; // #define KEY_BASSBOOST 209 + = 218; // #define KEY_PRINT 210 + = 219; // #define KEY_HP 211 + = 220; // #define KEY_CAMERA 212 + = 221; // #define KEY_SOUND 213 + = 222; // #define KEY_QUESTION 214 + = 223; // #define KEY_EMAIL 215 + = 224; // #define KEY_CHAT 216 + = 225; // #define KEY_SEARCH 217 + = 226; // #define KEY_CONNECT 218 + = 227; // #define KEY_FINANCE 219 + = 228; // #define KEY_SPORT 220 + = 229; // #define KEY_SHOP 221 + = 230; // #define KEY_ALTERASE 222 + = 231; // #define KEY_CANCEL 223 + = 232; // #define KEY_BRIGHTNESSDOWN 224 + = 233; // #define KEY_BRIGHTNESSUP 225 + = 234; // #define KEY_MEDIA 226 + = 235; // #define KEY_SWITCHVIDEOMODE 227 + = 236; // #define KEY_KBDILLUMTOGGLE 228 + = 237; // #define KEY_KBDILLUMDOWN 229 + = 238; // #define KEY_KBDILLUMUP 230 + = 239; // #define KEY_SEND 231 + = 240; // #define KEY_REPLY 232 + = 241; // #define KEY_FORWARDMAIL 233 + = 242; // #define KEY_SAVE 234 + = 243; // #define KEY_DOCUMENTS 235 + = 244; // #define KEY_BATTERY 236 + = 245; // #define KEY_BLUETOOTH 237 + = 246; // #define KEY_WLAN 238 + = 247; // #define KEY_UWB 239 + = 248; // #define KEY_UNKNOWN 240 + = 249; // #define KEY_VIDEO_NEXT 241 + = 250; // #define KEY_VIDEO_PREV 242 + = 251; // #define KEY_BRIGHTNESS_CYCLE 243 + = 252; // #define KEY_BRIGHTNESS_ZERO 244 + = 253; // #define KEY_DISPLAY_OFF 245 + + // Fake keycodes for virtual keys + = 92; + = 203; + = 204; + = 205; + = 206; + = 207; + + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + indicator 4 = "Compose"; + indicator 5 = "Kana"; + indicator 6 = "Sleep"; + indicator 7 = "Suspend"; + indicator 8 = "Mute"; + indicator 9 = "Misc"; + indicator 10 = "Mail"; + indicator 11 = "Charging"; + + alias = ; + + // For Brazilian ABNT2 + alias = ; +}; + +// PC98 +xkb_keycodes "pc98" { + include "evdev(evdev)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/fujitsu b/squashfs-root/usr/share/X11/xkb/keycodes/fujitsu new file mode 100644 index 0000000..ca259f8 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/fujitsu @@ -0,0 +1,186 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +default xkb_keycodes "138" { + + minimum= 8; + maximum= 255; + + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + = 51; + + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + + = 84; + = 85; + = 86; + = 87; + = 88; + = 89; + = 90; + = 91; + = 92; + = 93; + = 94; + = 95; + = 96; + = 97; + + = 107; + = 108; + = 109; + = 110; + = 111; + = 112; + = 113; + = 114; + = 115; + = 116; + = 117; + = 52; + = 118; + + = 127; + = 27; + = 128; + = 125; + = 129; + = 10; + = 130; + = 23; + = 75; + = 119; + = 56; + + = 13; + = 14; + = 16; + = 18; + = 20; + = 22; + = 24; + = 25; + = 26; + = 15; + = 17; + = 19; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + = 147; + = 148; + = 153; + = 154; + = 155; + = 156; + = 149; + = 150; + = 151; + = 152; + + = 34; + = 59; + = 81; + = 105; + = 126; + + = 9; + = 30; + = 21; + = 29; + + = 82; + = 83; + = 12; + = 35; + = 32; + = 36; + = 28; + = 74; + = 60; + = 33; + = 103; + = 57; + = 80; + = 11; + + = 55; + = 54; + = 133; + = 79; + + = 76; + = 77; + = 78; + = 53; + + = 99; + = 100; + = 101; + = 58; + + = 120; + = 121; + = 122; + = 98; + + = 102; + = 31; + + = 123; + = 124; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/hp b/squashfs-root/usr/share/X11/xkb/keycodes/hp new file mode 100644 index 0000000..81983a0 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/hp @@ -0,0 +1,270 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +default xkb_keycodes "hp-101" { + + = 23; + = 31; + = 39; + = 47; + = 46; + = 55; + = 63; + = 70; + = 71; + = 79; + = 78; + = 87; + = 94; + = 111; + + = 22; + = 30; + = 38; + = 45; + = 54; + = 53; + = 62; + = 69; + = 76; + = 77; + = 86; + = 93; + = 100; + = 101; + + = 29; + = 37; + = 36; + = 44; + = 52; + = 61; + = 60; + = 68; + = 75; + = 84; + = 85; + = 91; + = 99; + + = 27; + = 35; + = 43; + = 42; + = 51; + = 59; + = 58; + = 67; + = 74; + = 82; + = 83; + = 98; + + = 26; + = 34; + = 50; + = 66; + = 97; + + = 17; + = 16; + = 24; + = 32; + = 40; + = 48; + = 56; + = 64; + = 72; + = 80; + = 88; + = 95; + = 103; + + = 96; + = 104; + = 107; + + = 112; + = 119; + = 120; + = 109; + = 110; + = 118; + + = 108; + = 106; + = 105; + = 115; + + = 127; + = 128; + = 135; + = 141; + + = 117; + = 126; + = 134; + = 133; + + = 116; + = 124; + = 125; + + = 114; + = 123; + = 131; + = 130; + + = 121; + = 122; + + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; +}; + +xkb_keycodes "hil" { + + = 71; + = 70; + = 69; + = 68; + = 67; + = 66; + = 65; + = 64; + = 96; + = 97; + = 98; + = 99; + = 100; + = 101; + + = 63; + = 62; + = 61; + = 60; + = 59; + = 58; + = 57; + = 56; + = 104; + = 105; + = 106; + = 107; + = 108; + = 109; + + = 55; + = 53; + = 52; + = 51; + = 50; + = 49; + = 48; + = 112; + = 113; + = 114; + = 115; + = 116; + = 117; + + = 13; + = 36; + = 35; + = 34; + = 33; + = 32; + = 128; + = 120; + = 121; + = 122; + = 123; + = 12; + + = 14; + = 11; + = 129; + = 10; + = 87; + + = 39; + = 15; + = 86; + = 84; + = 83; + = 82; + = 81; + = 80; + = 88; + = 89; + = 90; + = 91; + = 92; + = 45; + = 41; + = 43; + = 47; + = 94; + = 95; + + = 102; + = 103; + = 110; + = 111; + + = 118; + = 119; + = 127; + = 125; + + = 134; + = 132; + = 133; + = 135; + + = 25; + = 29; + = 27; + = 31; + + = 21; + = 17; + = 19; + = 23; + + = 16; + = 18; + = 20; + = 22; + + = 24; + = 26; + = 28; + = 46; + + = 30; + = 44; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/ibm b/squashfs-root/usr/share/X11/xkb/keycodes/ibm new file mode 100644 index 0000000..9ebf058 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/ibm @@ -0,0 +1,150 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +xkb_keycodes "rs6k-101" { + + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 23; + + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + = 37; + + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 51; + + = 52; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + = 63; + = 65; + + = 66; + = 68; + = 69; + = 70; + = 72; + + = 118; + = 120; + = 121; + = 122; + = 123; + = 124; + = 125; + = 126; + = 127; + = 128; + = 129; + = 130; + = 131; + + = 132; + = 133; + = 134; + + = 83; + = 88; + = 93; + = 84; + = 89; + = 94; + + = 91; + = 87; + = 92; + = 97; + + = 98; + = 103; + = 108; + = 113; + + = 99; + = 104; + = 109; + = 114; + + = 100; + = 105; + = 110; + + = 101; + = 106; + = 111; + = 116; + + = 107; + = 112; + + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; +}; +xkb_keycodes "rs6k-102" { + include "ibm(rs6k-101)" + = 53; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/jolla b/squashfs-root/usr/share/X11/xkb/keycodes/jolla new file mode 100644 index 0000000..1a4d6ac --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/jolla @@ -0,0 +1,10 @@ +default +xkb_keycodes "jolla" { + + // These keycodes are beyond the X11 255 limit value so it would + // only be valid for the use with SW which supports extended keycodes, + // like xkbcommon. + + = 264; // Jolla phone has the wired headset button sending this keycode + +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/macintosh b/squashfs-root/usr/share/X11/xkb/keycodes/macintosh new file mode 100644 index 0000000..4c76e5e --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/macintosh @@ -0,0 +1,208 @@ +// +//Copyright (c) 1996 X Consortium +// +//Permission is hereby granted, free of charge, to any person obtaining +//a copy of this software and associated documentation files (the +//"Software"), to deal in the Software without restriction, including +//without limitation the rights to use, copy, modify, merge, publish, +//distribute, sublicense, and/or sell copies of the Software, and to +//permit persons to whom the Software is furnished to do so, subject to +//the following conditions: +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of the X Consortium shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from the X Consortium. +// +// +default xkb_keycodes "macintosh" { + include "xfree86" + + = 182; + = 183; + = 184; + = 157; + +}; + +xkb_keycodes "old" { + + minimum= 8; + maximum= 255; + + = 61; + = 58; + = 26; + = 27; + = 28; + = 29; + = 31; + = 30; + = 34; + = 36; + = 33; + = 37; + = 35; + = 32; + = 59; + + = 56; + = 20; + = 21; + = 22; + = 23; + = 25; + = 24; + = 40; + = 42; + = 39; + = 43; + = 41; + = 38; + = 50; + + = 65; + = 8; + = 9; + = 10; + = 11; + = 13; + = 12; + = 46; + = 48; + = 45; + = 49; + = 47; + = 44; + + = 18; + = 14; + = 15; + = 16; + = 17; + = 19; + = 53; + = 54; + = 51; + = 55; + = 52; + + = 57; + + = 62; // Left Control + = 63; // Left Option + = 64; // Left Shift + = 66; // Left Command +// = 131; // Right Shift +// = 132; // Right Command +// = 133; // Right Control +// = 134; // Right Option + + = 130; + = 128; + = 107; + = 126; + = 104; + = 105; + = 106; + = 108; + = 109; + = 117; + = 111; + = 119; + + = 113; + = 115; + = 121; + + = 122; + = 123; + = 124; + = 125; + = 127; + = 129; + + = 70; + = 67; + = 69; + = 68; + + = 79; + = 89; + = 83; + = 75; + + = 97; + = 99; + = 100; + = 86; + + = 94; + = 95; + = 96; + = 77; + + = 91; + = 92; + = 93; + = 84; + + = 90; + = 73; + + indicator 3 = "Scroll Lock"; + indicator 2 = "Num Lock"; + indicator 1 = "Caps Lock"; + + alias = ; +}; + +xkb_keycodes "hhk" { + include "macintosh" + + = 51; + + = 49; + = 131; + = 129; + = 208; + + = 111; + = 78; + = 110; +}; + +// Aluminium Keyboards +xkb_keycodes "alukbd" { + include "xfree86" + + // Fkeys missing in xfree86 keycodes + = 129; + = 130; + + // Eject key that matches the geometry definition + alias = ; + + // Japanese keypad separator (KPSP in base, JPCM in evdev) + alias = ; +}; + +// Aluminium Keyboards JIS +// As of HID Usage Table v1.11, it seems there are no usages +// for keys EISU or KANA. JIS Aluminium Keyboards overcome +// this by outputting usages of keys Hanja and Hangul +xkb_keycodes "jisevdev" { + alias = ; // Switch to kana mode + alias = ; // Switch to alphanumeric mode +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/olpc b/squashfs-root/usr/share/X11/xkb/keycodes/olpc new file mode 100644 index 0000000..d8f1ff8 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/olpc @@ -0,0 +1,24 @@ + +// OLPC's mechanical keyboard moves several keys to the AA row. make +// them easier to write symbol files naturally. + +// see http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard +// and http://wiki.laptop.org/go/OLPC_Spanish_Non-membrane_Keyboard + +default +xkb_keycodes "olpc" { + + alias = ; // many OLPC keyboards don't put tilde there + alias = ; // on model olpc, physical position of BKSL + +}; + +default +xkb_keycodes "olpcm" { + + alias = ; // many OLPC keyboards don't put tilde there + alias = ; // on model olpcm, new physical position of BKSL + alias = ; // on model olpcm, new physical position of =+ + alias = ; // on model olpcm, new physical position of '" + +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/sgi_vndr/indigo b/squashfs-root/usr/share/X11/xkb/keycodes/sgi_vndr/indigo new file mode 100644 index 0000000..1ce551d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/sgi_vndr/indigo @@ -0,0 +1,139 @@ +default xkb_keycodes "pc101" { + minimum= 8; + maximum= 255; + + = 62; + = 15; + = 21; + = 22; + = 29; + = 30; + = 37; + = 38; + = 45; + = 46; + = 53; + = 54; + = 61; + = 68; + + = 16; + = 17; + = 23; + = 24; + = 31; + = 32; + = 39; + = 40; + = 47; + = 48; + = 55; + = 56; + = 63; + = 58; + + = 11; + = 18; + = 19; + = 25; + = 26; + = 33; + = 34; + = 41; + = 42; + = 49; + = 50; + = 57; + + = 13; + = 27; + = 28; + = 35; + = 36; + = 43; + = 44; + = 51; + = 52; + = 59; + = 60; + = 12; + = 64; + + = 91; + = 10; + = 90; + = 93; + = 92; + + = 14; + = 94; + = 95; + = 96; + = 97; + = 98; + = 99; + = 100; + = 101; + = 102; + = 103; + = 104; + = 105; + + = 106; + = 107; + = 108; + + = 109; + = 110; + = 111; + = 69; + = 112; + = 113; + + = 88; + = 80; + = 81; + = 87; + + = 114; + = 115; + = 116; + = 83; + + = 74; + = 75; + = 82; + = 117; + + = 70; + = 76; + = 77; + + = 65; + = 71; + = 72; + = 89; + + = 66; + = 73; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + virtual indicator 1 = "L1"; + virtual indicator 2 = "L2"; + virtual indicator 3 = "L3"; + virtual indicator 4 = "L4"; + indicator 5 = "Caps Lock"; + indicator 6 = "Num Lock"; + indicator 7 = "Scroll Lock"; +}; +xkb_keycodes "pc102" { + include "sgi_vndr/indigo(pc101)" + = 118; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/sgi_vndr/indy b/squashfs-root/usr/share/X11/xkb/keycodes/sgi_vndr/indy new file mode 100644 index 0000000..55cb189 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/sgi_vndr/indy @@ -0,0 +1,202 @@ +default xkb_keycodes "universal" { + minimum= 8; + maximum= 255; + include "sgi_vndr/indy(pc105)" + alternate = 91; + alternate = 100; + alternate = 101; +}; +xkb_keycodes "pc101" { + minimum= 8; + maximum= 255; + + = 22; + = 30; + = 38; + = 46; + = 45; + = 54; + = 62; + = 69; + = 70; + = 78; + = 77; + = 86; + = 93; + = 110; + + = 21; + = 29; + = 37; + = 44; + = 53; + = 52; + = 61; + = 68; + = 75; + = 76; + = 85; + = 92; + = 99; + = 98; + + = 28; + = 36; + = 35; + = 43; + = 51; + = 60; + = 59; + = 67; + = 74; + = 83; + = 84; + = 90; + + = 26; + = 34; + = 42; + = 41; + = 50; + = 58; + = 57; + = 66; + = 73; + = 81; + = 82; + = 97; + = 100; + + = 33; + = 25; + = 49; + = 96; + = 65; + + = 16; + = 15; + = 23; + = 31; + = 39; + = 47; + = 55; + = 63; + = 71; + = 79; + = 87; + = 94; + = 102; + + = 95; + = 103; + = 106; + + = 111; + = 118; + = 119; + = 108; + = 109; + = 117; + + = 107; + = 105; + = 104; + = 114; + + = 126; + = 127; + = 134; + = 140; + + = 116; + = 125; + = 133; + = 132; + + = 115; + = 123; + = 124; + + = 113; + = 122; + = 130; + = 129; + + = 120; + = 121; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + virtual indicator 1 = "L1"; + virtual indicator 2 = "L2"; + virtual indicator 3 = "L3"; + virtual indicator 4 = "L4"; + indicator 5 = "Caps Lock"; + indicator 6 = "Num Lock"; + indicator 7 = "Scroll Lock"; + +}; +xkb_keycodes "pc102" { + = 91; + = 27; + augment "sgi_vndr/indy(pc101)" + maximum= 255; + minimum= 8; +}; +xkb_keycodes "pc104" { + include "sgi_vndr/indy(pc101)" + minimum= 8; + maximum= 255; + + // These key names are here to support so-called "Windows95" + // keyboards like the Microsoft Natural keyboard. + = 147; + = 148; + = 149; +}; +xkb_keycodes "pc105" { + = 27; + augment "sgi_vndr/indy(pc104)" + minimum= 8; + maximum= 255; +}; +xkb_keycodes "jp106" { + = 22; + = 89; + = 91; + = 141; + = 142; + = 143; + alias = ; + alias = ; + alias = ; + augment "sgi_vndr/indy(pc101)" + minimum= 8; + maximum= 255; +}; +// can be combined with any other "indy" keycode +// description to add virtual keys which can be +// used to implement an overlay-based numeric +// keypad. +partial hidden xkb_keycodes "overlayKeypad" { + = 17; + = 18; + = 19; + = 146; + = 145; + = 144; + = 136; + = 137; + = 138; + = 135; + = 139; +}; +partial hidden xkb_keycodes "shiftLock" { + indicator 5 = "Shift Lock"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/sgi_vndr/iris b/squashfs-root/usr/share/X11/xkb/keycodes/sgi_vndr/iris new file mode 100644 index 0000000..0473347 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/sgi_vndr/iris @@ -0,0 +1,10 @@ +default xkb_keycodes "iris" { + include "sgi_vndr/indigo(pc101)" + indicator 1 = "L1"; + indicator 2 = "L2"; + indicator 3 = "L3"; + indicator 4 = "L4"; + indicator 5 = "Caps Lock"; + indicator 6 = "Num Lock"; + indicator 7 = "Scroll Lock"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/sony b/squashfs-root/usr/share/X11/xkb/keycodes/sony new file mode 100644 index 0000000..5c03471 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/sony @@ -0,0 +1,141 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +xkb_keycodes "nwp5461" { + + = 18; + = 19; + = 20; + = 21; + = 22; + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + + = 33; + = 34; + = 35; + = 36; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + + = 47; + = 48; + = 49; + = 50; + = 51; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + + = 74; + = 75; + = 76; + = 77; + = 78; + = 81; + + = 8; + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 111; + = 112; + + = 113; + = 114; + = 115; + = 116; + = 117; + + = 109; + = 95; + = 98; + = 99; + = 100; + + = 107; + = 108; + = 89; + + = 82; + = 83; + = 84; + = 85; + + = 86; + = 87; + = 88; + = 93; + + = 90; + = 91; + = 92; + = 97; + + = 94; + = 96; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/sun b/squashfs-root/usr/share/X11/xkb/keycodes/sun new file mode 100644 index 0000000..5a9d210 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/sun @@ -0,0 +1,246 @@ +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// + +xkb_keycodes "type6" { + + minimum= 8; + maximum= 132; + + = 36; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + + = 60; + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 20; + alias = ; + + = 83; + = 84; + = 85; + = 86; + = 87; + = 88; + = 89; + = 90; + = 91; + = 92; + = 93; + = 94; + = 95; + = 96; + + = 106; + = 107; + = 108; + = 109; + = 110; + = 111; + = 112; + = 113; + = 114; + = 115; + = 116; + = 117; + + = 26; + = 126; + = 127; + = 128; + = 129; + + = 12; + = 13; + = 15; + = 17; + = 19; + = 21; + = 23; + = 24; + = 25; + = 14; + = 16; + = 18; + = 8; + = 10; + = 32; + = 33; + = 56; + = 58; + = 79; + = 80; + = 102; + = 104; + + = 29; + = 30; + = 28; + + = 105; + = 53; + = 54; + = 78; + + = 75; + = 76; + = 77; + = 132; + + = 98; + = 99; + = 100; + + = 119; + = 120; + = 121; + = 97; + + = 101; + = 57; + + = 27; + = 31; + = 34; + = 35; + + = 51; + = 59; + = 81; + = 103; + = 130; + = 125; + + = 52; + = 9; + = 11; + = 55; + indicator 4 = "Caps Lock"; + indicator 3 = "Compose"; + indicator 2 = "Scroll Lock"; + indicator 1 = "Num Lock"; +}; + + +xkb_keycodes "type6tuv" { + include "sun(type6)" + = 131; +}; + +xkb_keycodes "type6_jp" { + include "sun(type6)" + = 122; + = 123; + = 124; + = 118; +}; + +xkb_keycodes "type6_euro" { + include "sun(type6)" + = 131; +}; + +xkb_keycodes "type6unix" { + include "sun(type6)" +}; + +// Even though this is labeled as _usb, I verified these keycodes as accurate +// on my type5 serial and type6 serial keyboards as well on linux-2.6 boxes. +// I'm not sure where the "type6" keycodes above are coming from... +default xkb_keycodes "type6_usb" { + include "xfree86" + +// = 232; +// = 133; +// = 134; +// = 135; +// = 140; +// = 248; +// = 191; +// = 192; +// = 122; +// = 188; + + // = 245; + + // The blank has keycode 239 on my type6 serial kb, but 134 on + // my type6 usb keyboard (same as ) +// = 239; + + // AltGr + PrScr actually sends a different keycode +// = 92; + +// = 160; +// = 174; +// = 176; +// = 222; + + = 155; + = 160; + = 235; + + indicator 4 = "Compose"; +}; + +xkb_keycodes "type6tuv_usb" { + include "sun(type6_usb)" +// = 94; +// = 51; +}; + +xkb_keycodes "type6_jp_usb" { + include "sun(type6_usb)" + alias = ; // 123 + alias = ; // 131 + alias = ; // 129 + alias = ; // 208 + indicator 5 = "Kana"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/xfree86 b/squashfs-root/usr/share/X11/xkb/keycodes/xfree86 new file mode 100644 index 0000000..47dc893 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/xfree86 @@ -0,0 +1,410 @@ +// "standard" XFree86 codes +// It seems that the "default" must be the first entry in the file. + +default xkb_keycodes "xfree86" { + include "xfree86(basic)" + = 51; + alias = ; + = 94; +}; + +xkb_keycodes "basic" { + + minimum= 8; + maximum= 255; + + = 49; + alias = ; // Some geometries use AE00 + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + + = 66; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + + = 50; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + + = 64; + = 37; + = 65; + = 109; + = 113; + // Microsoft keyboard extra keys + = 115; + = 116; + = 117; + + = 9; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 95; + = 96; + + = 111; + = 92; + = 78; + = 110; + = 114; + + = 106; + = 97; + = 99; + = 107; + = 103; + = 105; + + = 98; + = 100; + = 104; + = 102; + + = 77; + = 112; + = 63; + = 82; + + = 79; + = 80; + = 81; + = 86; + + = 83; + = 84; + = 85; + + = 87; + = 88; + = 89; + = 108; + + = 90; + = 91; + = 126; + + = 118; + = 119; + = 120; + = 121; + = 122; + = 123; + + // Keys that are generated on Japanese keyboards + + alias = ; // Hankaku_Zenkaku toggle + = 208; // Hiragana_Katakana toggle + = 211; // backslash/underscore + = 129; // Henkan + = 131; // Muhenkan + = 133; // Yen + = 210; // Alphanumeric mode on macintosh + = 209; // Kana mode on macintosh + + // Keys that are generated on Korean keyboards + + alias = ; // Hangul Latin toggle + alias = ; // Hangul to Hanja conversion + + // Extended keys that may be generated on "Internet" keyboards. + // These are not standardised, hence the meaningless names. + // The entries commented out are never generated because the raw codes + // in those positions are already used for well-defined keys. + + = 130; + = 132; + alias = ; + = 134; + = 135; + = 136; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + = 147; + = 148; + = 149; + = 150; + = 151; + = 152; + = 153; + = 154; + = 155; + // = 156; + // = 157; + = 158; + = 159; + = 160; + = 161; + = 162; + = 163; + = 164; + = 165; + = 166; + = 167; + = 168; + = 169; + // = 170; + = 171; + = 172; + = 173; + = 174; + = 175; + = 176; + = 177; + = 178; + = 179; + = 180; + // = 181; + // = 182; + // = 183; + // = 184; + = 185; + = 186; + = 187; + = 188; + // = 189; + // = 190; + // = 191; + // = 192; + // = 193; + = 194; + = 195; + = 196; + = 197; + // = 198; + // = 199; + // = 200; + // = 201; + = 202; + // = 203; + // = 204; + // = 205; + // = 206; + // = 207; + // = 208; + // = 209; + // = 210; + // = 211; + = 212; + = 213; + = 214; + = 215; + = 216; + = 217; + = 218; + // = 219; + // = 220; + // = 221; + = 222; + = 223; + = 224; + = 225; + = 226; + = 227; + = 228; + = 229; + = 230; + = 231; + = 232; + = 233; + = 234; + = 235; + = 236; + = 237; + = 238; + = 239; + = 240; + = 241; + = 242; + = 243; + = 244; + = 245; + = 246; + = 247; + = 248; + = 249; + = 250; + = 251; + = 252; + alias = ; + = 253; + alias = ; + = 254; + = 255; + + // MacBooks generate 0x65 for the lower brightness key + = 101; + + // Required for apple/logitech_g15 keyboard + = 93; + + // Codes generated for scancodes 0x59-0x5f, 0x62-0x76 + = 157; // + = 170; // + = 181; // + alias = ; + = 182; // + = 183; // + = 184; // + = 189; // + = 190; // + = 191; // + = 192; // + = 193; // + = 198; // + = 199; // + = 200; // + = 201; // + = 203; // + = 204; // + = 205; // + = 206; // + = 207; // + alias = ; // + alias = ; // + alias = ; // + alias = ; // + = 219; // + = 220; // + = 221; // + + // Solaris compatibility + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + // Other codes never generated. The XFree86 ddx never generates + // these codes. + // Thus we can use them as fake keys + = 8; + = 124; // + = 125; // + = 156; // + = 127; // + = 128; // + + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + + alias = ; + + // For Brazilian ABNT2 + alias = ; +}; + +// What keyboard is this? + +xkb_keycodes "102" { + include "xfree86(xfree86)" + + // There will be warnings from xkbcomp because of multiple definitions. + + = 122; + = 123; + + = 121; + = 118; + + = 131; + = 135; + = 119; + = 129; + = 130; + = 134; + + = 128; + = 132; + = 120; + = 133; + + = 125; + + = 124; +}; + + +// IBM ThinkPad Z60m/Z60t/Z61m/Z61t +xkb_keycodes "thinkpadz60" { + include "xfree86(xfree86)" + = 227; +}; diff --git a/squashfs-root/usr/share/X11/xkb/keycodes/xfree98 b/squashfs-root/usr/share/X11/xkb/keycodes/xfree98 new file mode 100644 index 0000000..734573a --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/keycodes/xfree98 @@ -0,0 +1,152 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +// +default xkb_keycodes "pc98" { + + minimum= 8; + maximum= 255; + + = 8; + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + + = 124; + = 121; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + + = 120; + = 49; + = 50; + = 51; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + + = 122; + = 123; + = 89; + = 60; + = 61; + + = 104; + = 105; + = 106; + = 107; + = 108; + = 109; + = 110; + = 111; + = 112; + = 113; + = 114; + = 115; + = 90; + = 91; + = 92; + = 93; + = 94; + + + = 64; + = 65; + = 63; + = 62; + = 66; + = 67; + = 68; + = 69; + + = 70; + = 71; + + = 72; + = 73; + + = 74; + = 75; + = 76; + = 77; + + = 78; + = 79; + = 80; + = 81; + + = 82; + = 83; + = 84; + = 85; + + = 86; + = 87; + = 88; + + indicator 1 = "Caps Lock"; + indicator 2 = "Kana"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/rules/README b/squashfs-root/usr/share/X11/xkb/rules/README new file mode 100644 index 0000000..bcf19ce --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/rules/README @@ -0,0 +1,2 @@ +This directory lists sets of rules which can be used to obtain an exact XKB +configuration. diff --git a/squashfs-root/usr/share/X11/xkb/rules/base b/squashfs-root/usr/share/X11/xkb/rules/base new file mode 100644 index 0000000..11e1b56 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/rules/base @@ -0,0 +1,1268 @@ +// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part +// +// Rules for resolving XKB components for use with XFree86 +// Copyright 1996 by Joseph Moss +// +// 2002 Modifier: Ivan Pascal The XFree86 Project +// + +// If you want non-latin layouts implicitly include the en_US layout +// uncomment lines below +//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \ +// in ir iku jp kan kh kr la lao lk mk mm mn mv mal olck \ +// ori pk ru scc sy syr tel th tj tam ua uz + +// PC models +! $pcmodels = pc101 pc102 pc104 pc105 + +// Jolla devices and keyboards +! $jollamodels = jollasbj + +// Microsoft models (using MS geometry) +! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose + +// Nokia devices and keyboards +! $nokiamodels = nokiasu8w nokiarx44 nokiarx51 + +// PC geometries - they have special geometry but symbols are mostly pc105 +! $pcgeometries = latitude + +// TypeMatrix geometries +! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106 + +// Layouts that provide further specializations for the OLPC +! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us + +! $macbooks = macbook78 macbook79 +! $maclaptop = ibook powerbook macbook78 macbook79 +! $applealu = applealu_ansi applealu_iso applealu_jis +! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79 + +! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us + +! $azerty = be fr +! $qwertz = al cz de hr hu ro si sk + + +// all layouts with 3rd and 4th groups +! $threelevellayouts = al az \ + be br bt \ + ca ch cs cz \ + de dk \ + ee es \ + fi fo fr \ + gb gr \ + hu \ + ie ir is it \ + latam \ + lk lt \ + mn mt \ + nl no \ + pl pt \ + ro \ + se sk \ + tr \ + us \ + vn \ + za + +! $thinkpads = thinkpad thinkpad60 thinkpadz60 + +! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \ + sun_type6_jp_usb sun_type6_unix_usb sun_type7_jp_usb \ + sun_type7_usb sun_type7_euro_usb sun_type7_unix_usb + +! $sun_jp = sun_type6_jp sun_type6_jp_usb sun_type7_jp_usb + +// Sun Type_6_7 keyboards with custom layouts +! $sun_custom = ara be br ca ch cz de dk \ + ee es fi fr gb gr it jp \ + kr lt lv nl no pl pt ro \ + ru se sk tr tw ua us + +! $sun_var = sun_type6 sun_type6_suncompat sun_type6_de sun_type6_fr \ + sun_type7 sun_type7_suncompat suncompat + +! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat + +! $htcdreamlayouts = us it de + +! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \ + airkey \ + apple armada azonaRF2300 \ + benqx brother \ + btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \ + cherryblue cherrybluea cherryblueb \ + cherrycyboard cherrycmexpert \ + chicony chicony0108 chicony0420 chicony9885 \ + compalfl90 \ + compaqeak8 compaqik7 compaqik13 compaqik18 \ + creativedw7000 \ + cymotionlinux \ + dell dellm65 inspiron dellusbmm \ + emachines ennyah_dkb1008 evdev \ + genius geniuscomfy2 \ + gyration honeywell_euroboard \ + hp250x hp5xx hp500fa hpdv5 \ + hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \ + ibm_spacesaver ipaq inspiron intel \ + logiaccess logicda logicink \ + logiex110 logiclx300 \ + logiinkse logiinkseusb logiitc logiik \ + logitech_base itouch logiultrax \ + logitech_g15 \ + logidinovo logidinovoedge \ + microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \ + microsoftoffice microsoftmult \ + mx1998 mx2500 mx2750 \ + oretec \ + pc105 \ + presario propeller \ + qtronix \ + rapidaccess rapidaccess2 thinkpad60 \ + samsung4500 samsung4510 \ + silvercrest \ + sk1300 sk2500 sk6200 sk7100 \ + sven sven303 symplon \ + toshiba_s3000 trust trustda \ + unitekkb1925 yahoo \ + teck227 teck229 \ + apex300 + +! $inetmediakbds = acer_ferrari4k acer_laptop btc5090 btc9019u cherryblueb \ + cherrybluea herrycyboard chicony042 compaqik13 compaqik18 \ + armada presario dellm65 inspiron dellusbmm diamond \ + ennyah_dkb1008 genius geniuscomfy2 hpi6 hpxe3gc hpxe3gf \ + hpxt1000 hpzt11xx hpdv5 hpxe4xxx hp5xx thinkpad60 ogitech_base \ + logidinovo logidinovoedge logitech_g15 mx1998 mx2500 mx2750 \ + microsoft4000 microsoft7000 microsoftprooem microsoftmult \ + propeller samsung4500 samsung4510 sk1300 sk2500 sk7100 \ + toshiba_s3000 trust trustda cymotionlinux silvercrest \ + emachines benqx unitekkb1925 creativedw7000 compalfl90 \ + pc105 a4techKB21 a4techKBS8 a4_rfkb23 asus_laptop btc6301urf \ + dexxa dtk2000 fscaa1667g geniuskb19e geniuscomfy latitude \ + microsoftpro precision_m scorpius sp_inet targa_v811 thinkpad \ + tm2030USB-102 tm2030USB-106 trust_slimline + +! $dvoraklayouts = br ca de ee es fr gb no pl se us + +! model = keycodes + amiga = amiga(de) + ataritt = ataritt(de) + empty = empty + $sun_jp = sun(type6_jp_usb) + $sun = sun(type6_usb) + pc98 = xfree98(pc98) + $applealu = macintosh(alukbd) + macintosh_hhk = macintosh(hhk) + macintosh_old = macintosh(old) + $macs = macintosh + thinkpadz60 = xfree86(thinkpadz60) + * = xfree86 + +! layout[1] = keycodes + $azerty = +aliases(azerty) + $qwertz = +aliases(qwertz) + * = +aliases(qwerty) + +! layout = keycodes + $azerty = +aliases(azerty) + $qwertz = +aliases(qwertz) + * = +aliases(qwerty) + +! option = keycodes + +! model layout = geometry + thinkpad us = thinkpad(us) + +! model = geometry + microsoftelite = microsoft(elite) + $msmodels = microsoft(natural) + dell101 = dell(dell101) + dellm65 = dell(dellm65) + latitude = dell(latitude) + flexpro = keytronic(FlexPro) + hp6000 = hp(omnibook) + hpmini110 = hp(mini110) + hpdv5 = hp(dv5) + omnikey101 = northgate(omnikey101) + sanwaskbkg3 = sanwa(sanwaskbkg3) + $pcmodels = pc(%m) + $pcgeometries = pc(%m) + everex = everex(STEPnote) + thinkpad = thinkpad(intl) + thinkpad60 = thinkpad(60) + thinkpadz60 = thinkpad(60) + apex300 = steelseries(apex300) + $tmgeometries = typematrix(%m) + winbook = winbook(XP5) + pc98 = nec(pc98) + $applealu = macintosh(%m) + $macbooks = macintosh(%m) + $macs = macintosh(macintosh) + hhk = hhk(basic) + kinesis = kinesis(model100) + $nokiamodels = nokia(%m) + sun_type6_jp = sun(type6jp) + sun_type6_usb = sun(type6) + sun_type6_euro_usb = sun(type6tuv) + sun_type6_jp_usb = sun(type6jp) + sun_type6_unix_usb = sun(type6unix) + sun_type7_jp_usb = sun(type6jp) + sun_type7_usb = sun(type7) + sun_type7_euro_usb = sun(type7tuv) + sun_type7_unix_usb = sun(type7unix) + * = pc(pc104) + +! model layout variant = symbols + * ben basic = pc+in(ben) + * ben probhat = pc+in(ben_probhat) + * dev basic = pc+in(deva) + * dvorak $dvoraklayouts = pc+%v(dvorak) + * dvorak basic = pc+us(dvorak) + * dvorak pl_basic = pc+pl(dvorak) + * dvorak pl = pc+pl(dvorak_quotes) + * dvorak pl_altquotes = pc+pl(dvorak_altquotes) + * dzdwi basic = pc+bt(basic) + * fi basic = pc+fi(classic) + * ge azerty_tskapo = pc+fr(geo) + * guj basic = pc+in(guj) + * gur basic = pc+in(guru) + * ie laptop = pc+ie(basic) + * ie CloGaelachLaptop = pc+ie(CloGaelach) + * in urd = pc+in(urd-phonetic) + * iu basic = pc+ca(ike) + * lo basic = pc+la(basic) + * kan basic = pc+in(kan) + * mal basic = pc+in(mal) + * mal mlplusnum = pc+in(mal) + * ogham basic = pc+ie(ogam) + * ogham laptop = pc+ie(ogam) + * ogham is434 = pc+ie(ogam_is434) + * ogham is434laptop = pc+ie(ogam_is434) + * ori basic = pc+in(ori) + * ro de = pc+ro(winkeys) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) + * ro std_comma = pc+ro(std) + * ro comma = pc+ro(basic) + * ru os = pc+ru(os_legacy) + * pk urd = pc+pk(urd-phonetic) + * sapmi basic = pc+no(smi) + * sapmi nodeadkeys = pc+no(smi_nodeadkeys) + * sapmi sefi = pc+fi(smi) + * sin phonetic-static = pc+in(sin_phonetic) + * syr basic = pc+sy(syc) + * syr phonetic = pc+sy(syc_phonetic) + * tam INSCRIPT = pc+in(tam) + * tam UNI = pc+in(tam_unicode) + * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) + * tam TAB = pc+in(tam_TAB) + * tam TSCII = pc+in(tam_TSCII) + * tel basic = pc+in(tel) + * yu basic = pc+srp(latin) + * yu unicode = pc+srp(latinunicode) + * yu yz = pc+srp(latinyz) + * yu unicodeyz = pc+srp(latinunicodeyz) + classmate us intl = pc+us(classmate-intl) + classmate us alt-intl = pc+us(classmate-alt-intl) + classmate us altgr-intl = pc+us(classmate-altgr-intl) + nokiarx51 cz qwerty = nokia_vndr/rx-51(cz_qwerty) + * $sun_custom $sun_var = pc+sun_vndr/%l%(v) + +! model layout = symbols + * ar = pc+ara + * ben = pc+in(ben) + * bs = pc+ba + * cs = pc+rs + * cz_qwerty = pc+cz(qwerty) + * dev = pc+in(deva) + * dvorak = pc+us(dvorak) + * dzdwi = pc+bt + * el = pc+gr + * en_US = pc+latin + * guj = pc+in(guj) + * gur = pc+in(guru) + * iu = pc+ca(ike) + * lo = pc+la + * kan = pc+in(kan) + * mi = pc+mao + * ogham = pc+ie(ogam) + * ori = pc+ie(ori) + * sapmi = pc+no(smi) + * sr = pc+srp + * syr = pc+sy(syc) + * tel = pc+in(tel) + * tml = pc+in(tam) + * yu = pc+srp + * fr-latin9 = pc+fr(latin9) + * us_intl = pc+us(alt-intl) + * ben(basic) = pc+in(ben) + * ben(probhat) = pc+in(ben_probhat) + * dev(basic) = pc+in(deva) + * dvorak($dvoraklayouts) = pc+%v(dvorak) + * dvorak(basic) = pc+us(dvorak) + * dvorak(pl_basic) = pc+pl(dvorak) + * dvorak(pl) = pc+pl(dvorak_quotes) + * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) + * dzdwi(basic) = pc+bt(basic) + * fi(basic) = pc+fi(classic) + * ge(azerty_tskapo) = pc+fr(geo) + * guj(basic) = pc+in(guj) + * gur(basic) = pc+in(guru) + * ie(laptop) = pc+ie(basic) + * ie(CloGaelachLaptop) = pc+ie(CloGaelach) + * in(urd) = pc+in(urd-phonetic) + * iu(basic) = pc+ca(ike) + * lo(basic) = pc+la(basic) + * kan(basic) = pc+in(kan) + * mal(basic) = pc+in(mal) + * mal(mlplusnum) = pc+in(mal) + * ogham(basic) = pc+ie(ogam) + * ogham(laptop) = pc+ie(ogam) + * ogham(is434) = pc+ie(ogam_is434) + * ogham(is434laptop) = pc+ie(ogam_is434) + * ori(basic) = pc+in(ori) + * ro(de) = pc+ro(winkeys) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) + * ro(std_comma) = pc+ro(std) + * ro(comma) = pc+ro(basic) + * ru(os) = pc+ru(os_legacy) + * pk(urd) = pc+pk(urd-phonetic) + * sapmi(basic) = pc+no(smi) + * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) + * sapmi(sefi) = pc+fi(smi) + * sin(phonetic-static) = pc+in(sin_phonetic) + * syr(basic) = pc+sy(syc) + * syr(phonetic) = pc+sy(syc_phonetic) + * tam(INSCRIPT) = pc+in(tam) + * tam(UNI) = pc+in(tam_unicode) + * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) + * tam(TAB) = pc+in(tam_TAB) + * tam(TSCII) = pc+in(tam_TSCII) + * tel(basic) = pc+in(tel) + * yu(basic) = pc+srp(latin) + * yu(unicode) = pc+srp(latinunicode) + * yu(yz) = pc+srp(latinyz) + * yu(unicodeyz) = pc+srp(latinunicodeyz) + ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2 + ataritt * = xfree68_vndr/ataritt(us)+%l%(v) + amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2 + amiga * = xfree68_vndr/amiga(usa1)+%l%(v) + classmate us = pc+%l(classmate) + empty * = empty(basic) + * empty = empty(basic) + jollasbj $nonlatin = jolla_vndr/sbj(common)+us+%l%(v):2 + jollasbj * = jolla_vndr/sbj(common)+%l%(v) + $sun $sun_custom = pc+sun_vndr/%l%(v) + pc98 nec_vndr/jp = nec_vndr/jp(pc98) + macintosh_old us = macintosh_vndr/us(oldmac) + macintosh_old en_US = macintosh_vndr/us(oldmac) + macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v) + macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2 + macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v) + applealu_jis jp = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2 + applealu_jis * = macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2 + $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v) + $applealu * = macintosh_vndr/apple(alukbd)+%l%(v) + $macs en_US = pc+macintosh_vndr/us(extended) + $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v) + nokiarx44 * = nokia_vndr/rx-44(%l) + nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) + nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v) + nokiasu8w * = nokia_vndr/su-8w(%l) + olpc $olpclayouts = olpc+%l%(m) + olpc * = olpc+%l%(v) + olpcm $olpclayouts = olpc+%l%(m) + olpcm * = olpc+%l%(v) + $thinkpads br = pc+br(thinkpad) + sl-c3x00 * = pc+sharp_vndr/sl-c3x00(basic) + ws003sh * = pc+sharp_vndr/ws003sh(basic) + ws007sh * = pc+sharp_vndr/ws007sh(basic) + ws011sh * = pc+sharp_vndr/ws011sh(basic) + ws020sh * = pc+sharp_vndr/ws020sh(basic) + htcdream $htcdreamlayouts = %l(htcdream) + * $nonlatin = pc+us+%l%(v):2 + * * = pc+%l%(v) + +! model layout[1] = symbols + * ar = pc+ara%(v[1]) + * ben = pc+in(ben) + * bs = pc+ba%(v[1]) + * cs = pc+rs%(v[1]) + * cz_qwerty = pc+cz(qwerty) + * dev = pc+in(deva) + * dvorak = pc+us(dvorak) + * dzdwi = pc+bt%(v[1]) + * el = pc+gr%(v[1]) + * en_US = pc+latin%(v[1]) + * guj = pc+in(guj) + * gur = pc+in(guru) + * iu = pc+ca(ike) + * lo = pc+la%(v[1]) + * kan = pc+in(kan) + * mi = pc+mao%(v[1]) + * ogham = pc+ie(ogam) + * ori = pc+ie(ori) + * sapmi = pc+no(smi) + * sr = pc+srp%(v[1]) + * syr = pc+sy(syc) + * tel = pc+in(tel) + * tml = pc+in(tam) + * yu = pc+srp%(v[1]) + * fr-latin9 = pc+fr(latin9) + * us_intl = pc+us(alt-intl) + * ben(basic) = pc+in(ben) + * ben(probhat) = pc+in(ben_probhat) + * dev(basic) = pc+in(deva) + * dvorak($dvoraklayouts) = pc+%v(dvorak) + * dvorak(basic) = pc+us(dvorak) + * dvorak(pl_basic) = pc+pl(dvorak) + * dvorak(pl) = pc+pl(dvorak_quotes) + * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) + * dzdwi(basic) = pc+bt(basic) + * fi(basic) = pc+fi(classic) + * ge(azerty_tskapo) = pc+fr(geo) + * guj(basic) = pc+in(guj) + * gur(basic) = pc+in(guru) + * ie(laptop) = pc+ie(basic) + * ie(CloGaelachLaptop) = pc+ie(CloGaelach) + * in(urd) = pc+in(urd-phonetic) + * iu(basic) = pc+ca(ike) + * lo(basic) = pc+la(basic) + * kan(basic) = pc+in(kan) + * mal(basic) = pc+in(mal) + * mal(mlplusnum) = pc+in(mal) + * ogham(basic) = pc+ie(ogam) + * ogham(laptop) = pc+ie(ogam) + * ogham(is434) = pc+ie(ogam_is434) + * ogham(is434laptop) = pc+ie(ogam_is434) + * ori(basic) = pc+in(ori) + * ro(de) = pc+ro(winkeys) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) + * ro(std_comma) = pc+ro(std) + * ro(comma) = pc+ro(basic) + * ru(os) = pc+ru(os_legacy) + * pk(urd) = pc+pk(urd-phonetic) + * sapmi(basic) = pc+no(smi) + * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) + * sapmi(sefi) = pc+fi(smi) + * sin(phonetic-static) = pc+in(sin_phonetic) + * syr(basic) = pc+sy(syc) + * syr(phonetic) = pc+sy(syc_phonetic) + * tam(INSCRIPT) = pc+in(tam) + * tam(UNI) = pc+in(tam_unicode) + * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) + * tam(TAB) = pc+in(tam_TAB) + * tam(TSCII) = pc+in(tam_TSCII) + * tel(basic) = pc+in(tel) + * yu(basic) = pc+srp(latin) + * yu(unicode) = pc+srp(latinunicode) + * yu(yz) = pc+srp(latinyz) + * yu(unicodeyz) = pc+srp(latinunicodeyz) + ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1]) + amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1]) + jollasbj * = jolla_vndr/sbj(common)+%l[1]%(v[1]) + $sun $sun_custom = pc+sun_vndr/%l[1]%(v[1]) + macintosh_old us = macintosh_vndr/us(oldmac) + macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) + macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1]) + applealu_jis us = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac) + $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1]) + $applealu * = macintosh_vndr/apple(alukbd)+%l[1]%(v[1]) + $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1]) + nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) + nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1]) + $thinkpads br = pc+%l[1](thinkpad) + * * = pc+%l[1]%(v[1]) + +! model layout[1] variant[1] = symbols + * ben basic = pc+in(ben) + * ben probhat = pc+in(ben_probhat) + * dev basic = pc+in(deva) + * dvorak $dvoraklayouts = pc+%v(dvorak) + * dvorak basic = pc+us(dvorak) + * dvorak pl_basic = pc+pl(dvorak) + * dvorak pl = pc+pl(dvorak_quotes) + * dvorak pl_altquotes = pc+pl(dvorak_altquotes) + * dzdwi basic = pc+bt(basic) + * fi basic = pc+fi(classic) + * ge azerty_tskapo = pc+fr(geo) + * guj basic = pc+in(guj) + * gur basic = pc+in(guru) + * ie laptop = pc+ie(basic) + * ie CloGaelachLaptop = pc+ie(CloGaelach) + * in urd = pc+in(urd-phonetic) + * iu basic = pc+ca(ike) + * lo basic = pc+la(basic) + * kan basic = pc+in(kan) + * mal basic = pc+in(mal) + * mal mlplusnum = pc+in(mal) + * ogham basic = pc+ie(ogam) + * ogham laptop = pc+ie(ogam) + * ogham is434 = pc+ie(ogam_is434) + * ogham is434laptop = pc+ie(ogam_is434) + * ori basic = pc+in(ori) + * ro de = pc+ro(winkeys) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) + * ro std_comma = pc+ro(std) + * ro comma = pc+ro(basic) + * ru os = pc+ru(os_legacy) + * pk urd = pc+pk(urd-phonetic) + * sapmi basic = pc+no(smi) + * sapmi nodeadkeys = pc+no(smi_nodeadkeys) + * sapmi sefi = pc+fi(smi) + * sin phonetic-static = pc+in(sin_phonetic) + * syr basic = pc+sy(syc) + * syr phonetic = pc+sy(syc_phonetic) + * tam INSCRIPT = pc+in(tam) + * tam UNI = pc+in(tam_unicode) + * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) + * tam TAB = pc+in(tam_TAB) + * tam TSCII = pc+in(tam_TSCII) + * tel basic = pc+in(tel) + * yu basic = pc+srp(latin) + * yu unicode = pc+srp(latinunicode) + * yu yz = pc+srp(latinyz) + * yu unicodeyz = pc+srp(latinunicodeyz) + +! model layout[2] = symbols + * ar = +ara%(v[2]):2 + * ben = +in(ben):2 + * bs = +ba%(v[2]):2 + * cs = +rs%(v[2]):2 + * cz_qwerty = +cz(qwerty):2 + * dev = +in(deva):2 + * dvorak = +us(dvorak):2 + * dzdwi = +bt%(v[2]):2 + * el = +gr%(v[2]):2 + * en_US = +latin%(v[2]):2 + * guj = +in(guj):2 + * gur = +in(guru):2 + * iu = +ca(ike):2 + * lo = +la%(v[2]):2 + * kan = +in(kan):2 + * mi = +mao%(v[2]):2 + * ogham = +ie(ogam):2 + * ori = +ie(ori):2 + * sapmi = +no(smi):2 + * sr = +srp%(v[2]):2 + * syr = +sy(syc):2 + * tel = +in(tel):2 + * tml = +in(tam):2 + * yu = +srp%(v[2]):2 + * fr-latin9 = +fr(latin9):2 + * us_intl = +us(alt-intl):2 + * ben(basic) = +in(ben):2 + * ben(probhat) = +in(ben_probhat):2 + * dev(basic) = +in(deva):2 + * dvorak($dvoraklayouts) = +%v(dvorak):2 + * dvorak(basic) = +us(dvorak):2 + * dvorak(pl_basic) = +pl(dvorak):2 + * dvorak(pl) = +pl(dvorak_quotes):2 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2 + * dzdwi(basic) = +bt(basic):2 + * fi(basic) = +fi(classic):2 + * ge(azerty_tskapo) = +fr(geo):2 + * guj(basic) = +in(guj):2 + * gur(basic) = +in(guru):2 + * ie(laptop) = +ie(basic):2 + * ie(CloGaelachLaptop) = +ie(CloGaelach):2 + * in(urd) = +in(urd-phonetic):2 + * iu(basic) = +ca(ike):2 + * lo(basic) = +la(basic):2 + * kan(basic) = +in(kan):2 + * mal(basic) = +in(mal):2 + * mal(mlplusnum) = +in(mal):2 + * ogham(basic) = +ie(ogam):2 + * ogham(laptop) = +ie(ogam):2 + * ogham(is434) = +ie(ogam_is434):2 + * ogham(is434laptop) = +ie(ogam_is434):2 + * ori(basic) = +in(ori):2 + * ro(de) = +ro(winkeys):2 + * ro(us) = +ro(std):2 + * ro(academic) = +ro(std):2 + * ro(std_comma) = +ro(std):2 + * ro(comma) = +ro(basic):2 + * ru(os) = +ru(os_legacy):2 + * pk(urd) = +pk(urd-phonetic):2 + * sapmi(basic) = +no(smi):2 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2 + * sapmi(sefi) = +fi(smi):2 + * sin(phonetic-static) = +in(sin_phonetic):2 + * syr(basic) = +sy(syc):2 + * syr(phonetic) = +sy(syc_phonetic):2 + * tam(INSCRIPT) = +in(tam):2 + * tam(UNI) = +in(tam_unicode):2 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2 + * tam(TAB) = +in(tam_TAB):2 + * tam(TSCII) = +in(tam_TSCII):2 + * tel(basic) = +in(tel):2 + * yu(basic) = +srp(latin):2 + * yu(unicode) = +srp(latinunicode):2 + * yu(yz) = +srp(latinyz):2 + * yu(unicodeyz) = +srp(latinunicodeyz):2 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2 + nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2 + $sun $sun_custom = +sun_vndr/%l[2]%(v[2]):2 + * * = +%l[2]%(v[2]):2 + +! model layout[3] = symbols + * ar = +ara%(v[3]):3 + * ben = +in(ben):3 + * bs = +ba%(v[3]):3 + * cs = +rs%(v[3]):3 + * cz_qwerty = +cz(qwerty):3 + * dev = +in(deva):3 + * dvorak = +us(dvorak):3 + * dzdwi = +bt%(v[3]):3 + * el = +gr%(v[3]):3 + * en_US = +latin%(v[3]):3 + * guj = +in(guj):3 + * gur = +in(guru):3 + * iu = +ca(ike):3 + * lo = +la%(v[3]):3 + * kan = +in(kan):3 + * mi = +mao%(v[3]):3 + * ogham = +ie(ogam):3 + * ori = +ie(ori):3 + * sapmi = +no(smi):3 + * sr = +srp%(v[3]):3 + * syr = +sy(syc):3 + * tel = +in(tel):3 + * tml = +in(tam):3 + * yu = +srp%(v[3]):3 + * fr-latin9 = +fr(latin9):3 + * us_intl = +us(alt-intl):3 + * ben(basic) = +in(ben):3 + * ben(probhat) = +in(ben_probhat):3 + * dev(basic) = +in(deva):3 + * dvorak($dvoraklayouts) = +%v(dvorak):3 + * dvorak(basic) = +us(dvorak):3 + * dvorak(pl_basic) = +pl(dvorak):3 + * dvorak(pl) = +pl(dvorak_quotes):3 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3 + * dzdwi(basic) = +bt(basic):3 + * fi(basic) = +fi(classic):3 + * ge(azerty_tskapo) = +fr(geo):3 + * guj(basic) = +in(guj):3 + * gur(basic) = +in(guru):3 + * ie(laptop) = +ie(basic):3 + * ie(CloGaelachLaptop) = +ie(CloGaelach):3 + * in(urd) = +in(urd-phonetic):3 + * iu(basic) = +ca(ike):3 + * lo(basic) = +la(basic):3 + * kan(basic) = +in(kan):3 + * mal(basic) = +in(mal):3 + * mal(mlplusnum) = +in(mal):3 + * ogham(basic) = +ie(ogam):3 + * ogham(laptop) = +ie(ogam):3 + * ogham(is434) = +ie(ogam_is434):3 + * ogham(is434laptop) = +ie(ogam_is434):3 + * ori(basic) = +in(ori):3 + * ro(de) = +ro(winkeys):3 + * ro(us) = +ro(std):3 + * ro(academic) = +ro(std):3 + * ro(std_comma) = +ro(std):3 + * ro(comma) = +ro(basic):3 + * ru(os) = +ru(os_legacy):3 + * pk(urd) = +pk(urd-phonetic):3 + * sapmi(basic) = +no(smi):3 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3 + * sapmi(sefi) = +fi(smi):3 + * sin(phonetic-static) = +in(sin_phonetic):3 + * syr(basic) = +sy(syc):3 + * syr(phonetic) = +sy(syc_phonetic):3 + * tam(INSCRIPT) = +in(tam):3 + * tam(UNI) = +in(tam_unicode):3 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3 + * tam(TAB) = +in(tam_TAB):3 + * tam(TSCII) = +in(tam_TSCII):3 + * tel(basic) = +in(tel):3 + * yu(basic) = +srp(latin):3 + * yu(unicode) = +srp(latinunicode):3 + * yu(yz) = +srp(latinyz):3 + * yu(unicodeyz) = +srp(latinunicodeyz):3 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3 + nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3 + $sun $sun_custom = +sun_vndr/%l[3]%(v[3]):3 + * * = +%l[3]%(v[3]):3 + +! model layout[4] = symbols + * ar = +ara%(v[4]):4 + * ben = +in(ben):4 + * bs = +ba%(v[4]):4 + * cs = +rs%(v[4]):4 + * cz_qwerty = +cz(qwerty):4 + * dev = +in(deva):4 + * dvorak = +us(dvorak):4 + * dzdwi = +bt%(v[4]):4 + * el = +gr%(v[4]):4 + * en_US = +latin%(v[4]):4 + * guj = +in(guj):4 + * gur = +in(guru):4 + * iu = +ca(ike):4 + * lo = +la%(v[4]):4 + * kan = +in(kan):4 + * mi = +mao%(v[4]):4 + * ogham = +ie(ogam):4 + * ori = +ie(ori):4 + * sapmi = +no(smi):4 + * sr = +srp%(v[4]):4 + * syr = +sy(syc):4 + * tel = +in(tel):4 + * tml = +in(tam):4 + * yu = +srp%(v[4]):4 + * fr-latin9 = +fr(latin9):4 + * us_intl = +us(alt-intl):4 + * ben(basic) = +in(ben):4 + * ben(probhat) = +in(ben_probhat):4 + * dev(basic) = +in(deva):4 + * dvorak($dvoraklayouts) = +%v(dvorak):4 + * dvorak(basic) = +us(dvorak):4 + * dvorak(pl_basic) = +pl(dvorak):4 + * dvorak(pl) = +pl(dvorak_quotes):4 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4 + * dzdwi(basic) = +bt(basic):4 + * fi(basic) = +fi(classic):4 + * ge(azerty_tskapo) = +fr(geo):4 + * guj(basic) = +in(guj):4 + * gur(basic) = +in(guru):4 + * ie(laptop) = +ie(basic):4 + * ie(CloGaelachLaptop) = +ie(CloGaelach):4 + * in(urd) = +in(urd-phonetic):4 + * iu(basic) = +ca(ike):4 + * lo(basic) = +la(basic):4 + * kan(basic) = +in(kan):4 + * mal(basic) = +in(mal):4 + * mal(mlplusnum) = +in(mal):4 + * ogham(basic) = +ie(ogam):4 + * ogham(laptop) = +ie(ogam):4 + * ogham(is434) = +ie(ogam_is434):4 + * ogham(is434laptop) = +ie(ogam_is434):4 + * ori(basic) = +in(ori):4 + * ro(de) = +ro(winkeys):4 + * ro(us) = +ro(std):4 + * ro(academic) = +ro(std):4 + * ro(std_comma) = +ro(std):4 + * ro(comma) = +ro(basic):4 + * ru(os) = +ru(os_legacy):4 + * pk(urd) = +pk(urd-phonetic):4 + * sapmi(basic) = +no(smi):4 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4 + * sapmi(sefi) = +fi(smi):4 + * sin(phonetic-static) = +in(sin_phonetic):4 + * syr(basic) = +sy(syc):4 + * syr(phonetic) = +sy(syc_phonetic):4 + * tam(INSCRIPT) = +in(tam):4 + * tam(UNI) = +in(tam_unicode):4 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4 + * tam(TAB) = +in(tam_TAB):4 + * tam(TSCII) = +in(tam_TSCII):4 + * tel(basic) = +in(tel):4 + * yu(basic) = +srp(latin):4 + * yu(unicode) = +srp(latinunicode):4 + * yu(yz) = +srp(latinyz):4 + * yu(unicodeyz) = +srp(latinunicodeyz):4 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4 + nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4 + $sun $sun_custom = +sun_vndr/%l[4]%(v[4]):4 + * * = +%l[4]%(v[4]):4 + +! model layout[2] variant[2] = symbols + * ben basic = +in(ben):2 + * ben probhat = +in(ben_probhat):2 + * dev basic = +in(deva):2 + * dvorak $dvoraklayouts = +%v(dvorak):2 + * dvorak basic = +us(dvorak):2 + * dvorak pl_basic = +pl(dvorak):2 + * dvorak pl = +pl(dvorak_quotes):2 + * dvorak pl_altquotes = +pl(dvorak_altquotes):2 + * dzdwi basic = +bt(basic):2 + * fi basic = +fi(classic):2 + * ge azerty_tskapo = +fr(geo):2 + * guj basic = +in(guj):2 + * gur basic = +in(guru):2 + * ie laptop = +ie(basic):2 + * ie CloGaelachLaptop = +ie(CloGaelach):2 + * in urd = +in(urd-phonetic):2 + * iu basic = +ca(ike):2 + * lo basic = +la(basic):2 + * kan basic = +in(kan):2 + * mal basic = +in(mal):2 + * mal mlplusnum = +in(mal):2 + * ogham basic = +ie(ogam):2 + * ogham laptop = +ie(ogam):2 + * ogham is434 = +ie(ogam_is434):2 + * ogham is434laptop = +ie(ogam_is434):2 + * ori basic = +in(ori):2 + * ro de = +ro(winkeys):2 + * ro us = +ro(std):2 + * ro academic = +ro(std):2 + * ro std_comma = +ro(std):2 + * ro comma = +ro(basic):2 + * ru os = +ru(os_legacy):2 + * pk urd = +pk(urd-phonetic):2 + * sapmi basic = +no(smi):2 + * sapmi nodeadkeys = +no(smi_nodeadkeys):2 + * sapmi sefi = +fi(smi):2 + * sin phonetic-static = +in(sin_phonetic):2 + * syr basic = +sy(syc):2 + * syr phonetic = +sy(syc_phonetic):2 + * tam INSCRIPT = +in(tam):2 + * tam UNI = +in(tam_unicode):2 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):2 + * tam TAB = +in(tam_TAB):2 + * tam TSCII = +in(tam_TSCII):2 + * tel basic = +in(tel):2 + * yu basic = +srp(latin):2 + * yu unicode = +srp(latinunicode):2 + * yu yz = +srp(latinyz):2 + * yu unicodeyz = +srp(latinunicodeyz):2 + +! model layout[3] variant[3] = symbols + * ben basic = +in(ben):3 + * ben probhat = +in(ben_probhat):3 + * dev basic = +in(deva):3 + * dvorak $dvoraklayouts = +%v(dvorak):3 + * dvorak basic = +us(dvorak):3 + * dvorak pl_basic = +pl(dvorak):3 + * dvorak pl = +pl(dvorak_quotes):3 + * dvorak pl_altquotes = +pl(dvorak_altquotes):3 + * dzdwi basic = +bt(basic):3 + * fi basic = +fi(classic):3 + * ge azerty_tskapo = +fr(geo):3 + * guj basic = +in(guj):3 + * gur basic = +in(guru):3 + * ie laptop = +ie(basic):3 + * ie CloGaelachLaptop = +ie(CloGaelach):3 + * in urd = +in(urd-phonetic):3 + * iu basic = +ca(ike):3 + * lo basic = +la(basic):3 + * kan basic = +in(kan):3 + * mal basic = +in(mal):3 + * mal mlplusnum = +in(mal):3 + * ogham basic = +ie(ogam):3 + * ogham laptop = +ie(ogam):3 + * ogham is434 = +ie(ogam_is434):3 + * ogham is434laptop = +ie(ogam_is434):3 + * ori basic = +in(ori):3 + * ro de = +ro(winkeys):3 + * ro us = +ro(std):3 + * ro academic = +ro(std):3 + * ro std_comma = +ro(std):3 + * ro comma = +ro(basic):3 + * ru os = +ru(os_legacy):3 + * pk urd = +pk(urd-phonetic):3 + * sapmi basic = +no(smi):3 + * sapmi nodeadkeys = +no(smi_nodeadkeys):3 + * sapmi sefi = +fi(smi):3 + * sin phonetic-static = +in(sin_phonetic):3 + * syr basic = +sy(syc):3 + * syr phonetic = +sy(syc_phonetic):3 + * tam INSCRIPT = +in(tam):3 + * tam UNI = +in(tam_unicode):3 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):3 + * tam TAB = +in(tam_TAB):3 + * tam TSCII = +in(tam_TSCII):3 + * tel basic = +in(tel):3 + * yu basic = +srp(latin):3 + * yu unicode = +srp(latinunicode):3 + * yu yz = +srp(latinyz):3 + * yu unicodeyz = +srp(latinunicodeyz):3 + +! model layout[4] variant[4] = symbols + * ben basic = +in(ben):4 + * ben probhat = +in(ben_probhat):4 + * dev basic = +in(deva):4 + * dvorak $dvoraklayouts = +%v(dvorak):4 + * dvorak basic = +us(dvorak):4 + * dvorak pl_basic = +pl(dvorak):4 + * dvorak pl = +pl(dvorak_quotes):4 + * dvorak pl_altquotes = +pl(dvorak_altquotes):4 + * dzdwi basic = +bt(basic):4 + * fi basic = +fi(classic):4 + * ge azerty_tskapo = +fr(geo):4 + * guj basic = +in(guj):4 + * gur basic = +in(guru):4 + * ie laptop = +ie(basic):4 + * ie CloGaelachLaptop = +ie(CloGaelach):4 + * in urd = +in(urd-phonetic):4 + * iu basic = +ca(ike):4 + * lo basic = +la(basic):4 + * kan basic = +in(kan):4 + * mal basic = +in(mal):4 + * mal mlplusnum = +in(mal):4 + * ogham basic = +ie(ogam):4 + * ogham laptop = +ie(ogam):4 + * ogham is434 = +ie(ogam_is434):4 + * ogham is434laptop = +ie(ogam_is434):4 + * ori basic = +in(ori):4 + * ro de = +ro(winkeys):4 + * ro us = +ro(std):4 + * ro academic = +ro(std):4 + * ro std_comma = +ro(std):4 + * ro comma = +ro(basic):4 + * ru os = +ru(os_legacy):4 + * pk urd = +pk(urd-phonetic):4 + * sapmi basic = +no(smi):4 + * sapmi nodeadkeys = +no(smi_nodeadkeys):4 + * sapmi sefi = +fi(smi):4 + * sin phonetic-static = +in(sin_phonetic):4 + * syr basic = +sy(syc):4 + * syr phonetic = +sy(syc_phonetic):4 + * tam INSCRIPT = +in(tam):4 + * tam UNI = +in(tam_unicode):4 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):4 + * tam TAB = +in(tam_TAB):4 + * tam TSCII = +in(tam_TSCII):4 + * tel basic = +in(tel):4 + * yu basic = +srp(latin):4 + * yu unicode = +srp(latinunicode):4 + * yu yz = +srp(latinyz):4 + * yu unicodeyz = +srp(latinunicodeyz):4 + +! model = symbols + a4techKB21 = +inet(media_nav_common) + a4techKBS8 = +inet(media_nav_acpi_common) + a4_rfkb23 = +inet(media_nav_acpi_common) + asus_laptop = +inet(media_common) + acer_tm_800 = +inet(acer_laptop) + benqx730 = +inet(benqx) + benqx800 = +inet(benqx) + btc5126t = +inet(nav_acpi_common) + btc9116u = +inet(btc9019u) + btc6301urf = +inet(media_nav_acpi_common) + chromebook = +inet(chromebook) + dellsk8125 = +inet(dell) + dellsk8135 = +inet(dell) + cherrybunlim = +inet(nav_common) + dexxa = +inet(media_nav_common) + dtk2000 = +inet(media_nav_acpi_common) + fscaa1667g = +inet(media_nav_common) + geniuskb19e = +inet(media_nav_acpi_common) + geniuscomfy = +inet(media_nav_acpi_common) + geniuskkb2050hs = +inet(dellusbmm) + hpnx9020 = +inet(hpi6) + latitude = +inet(media_common) + logicd = +inet(logitech_base) + logicd_it = +inet(logitech_base) + logicd_nav = +inet(logitech_base) + logicd_opt = +inet(logitech_base) + logiultrax = +inet(logitech_base) + logiclx300 = +inet(logiex110) + logii350 = +inet(logiex110) + logimel = +inet(logiex110) + logicdit = +inet(logicd) + logicdo = +inet(logicd) + logicdp = +inet(logicd) + logicdpa = +inet(logicda) + logiciink = +inet(logicink) + ltcd = +inet(logicda) + microsoftccurve2k = +inet(microsoftprooem) + microsoftpro = +inet(media_nav_acpi_common) + precision_m = +inet(media_nav_common) + scorpius = +inet(media_nav_acpi_common) + sp_inet = +inet(media_nav_acpi_common) + targa_v811 = +inet(media_nav_acpi_common) + thinkpad = +inet(media_nav_common) + thinkpadz60 = +inet(thinkpad60) + tm2030USB-102 = +inet(media_nav_acpi_common) + tm2030USB-106 = +inet(media_nav_acpi_common) + trust_slimline = +inet(media_nav_acpi_common) + vsonku306 = +inet(microsoftprooem) + $inetkbds = +inet(%m) + $maclaptop = +inet(apple)+level3(enter_switch) + $applealu = +inet(apple) + $macs = +inet(apple) + sun_type7_jp_usb = +sun_vndr/solaris(defaults_type7jp) + $sun = +sun_vndr/solaris(defaults) + +! model layout = symbols + $inetmediakbds jp = +jp(henkan) + +! layout variant = compat + de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + jp $sun_compat = complete+japan(kana_lock) + +! layout[1] variant[1] = compat + de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + jp $sun_compat = complete+japan(kana_lock) + +! layout[2] variant[2] = compat + de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de adnw = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de koy = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de bone = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de bone_eszett_home = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de neo_qwertz = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de neo_qwerty = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + jp $sun_compat = +complete+japan(kana_lock):2 + +! layout[3] variant[3] = compat + de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de adnw = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de koy = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de bone = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de bone_eszett_home = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de neo_qwertz = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de neo_qwerty = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + jp $sun_compat = +complete+japan(kana_lock):3 + +! layout[4] variant[4] = compat + de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de adnw = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de koy = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de bone = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de bone_eszett_home = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de neo_qwertz = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de neo_qwerty = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + jp $sun_compat = +complete+japan(kana_lock):4 + +! model layout = compat + pc98 nec_vndr/jp = pc98(basic) + * jp = complete+japan + olpc * = olpc + olpcm * = olpc + * * = complete + +! model layout[1] = compat + * * = complete + +! model = types + $macs = complete+numpad(mac) + $applealu = complete+numpad(mac) + $nokiamodels = complete+nokia + * = complete + +! layout option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle) + * misc:typo = +typo(base) + +! layout[1] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1 + * misc:typo = +typo(base):1 + +! layout[2] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2 + * misc:typo = +typo(base):2 + +! layout[3] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3 + * misc:typo = +typo(base):3 + +! layout[4] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4 + * misc:typo = +typo(base):4 + +! option = symbols + grp:shift_toggle = +group(shifts_toggle) + altwin:menu = +altwin(menu) + altwin:meta_alt = +altwin(meta_alt) + altwin:alt_win = +altwin(alt_win) + altwin:ctrl_win = +altwin(ctrl_win) + altwin:ctrl_alt_win = +altwin(ctrl_alt_win) + altwin:meta_win = +altwin(meta_win) + altwin:left_meta_win = +altwin(left_meta_win) + altwin:hyper_win = +altwin(hyper_win) + altwin:alt_super_win = +altwin(alt_super_win) + altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin) + altwin:swap_alt_win = +altwin(swap_alt_win) + altwin:prtsc_rwin = +altwin(prtsc_rwin) + grab:debug = +srvr_ctrl(grab_debug) + grp:switch = +group(switch) + grp:lswitch = +group(lswitch) + grp:win_switch = +group(win_switch) + grp:lwin_switch = +group(lwin_switch) + grp:rwin_switch = +group(rwin_switch) + grp:menu_switch = +group(menu_switch) + grp:toggle = +group(toggle) + grp:shifts_toggle = +group(shifts_toggle) + grp:ctrls_toggle = +group(ctrls_toggle) + grp:alts_toggle = +group(alts_toggle) + grp:caps_toggle = +capslock(grouplock) + grp:caps_switch = +capslock(groupshift) + grp:shift_caps_toggle = +group(shift_caps_toggle) + grp:shift_caps_switch = +group(shift_caps_switch) + grp:win_space_toggle = +group(win_space_toggle) + grp:win_menu_switch = +group(win_menu_switch) + grp:alt_caps_toggle = +group(alt_caps_toggle) + grp:alt_space_toggle = +group(alt_space_toggle) + grp:menu_toggle = +group(menu_toggle) + grp:lwin_toggle = +group(lwin_toggle) + grp:rwin_toggle = +group(rwin_toggle) + grp:lshift_toggle = +group(lshift_toggle) + grp:rshift_toggle = +group(rshift_toggle) + grp:rctrl_switch = +group(rctrl_switch) + grp:lctrl_toggle = +group(lctrl_toggle) + grp:rctrl_toggle = +group(rctrl_toggle) + grp:lalt_toggle = +group(lalt_toggle) + grp:sclk_toggle = +group(sclk_toggle) + grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch) + grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu) + grp:lctrl_lalt_toggle = +group(lctrl_lalt_toggle) + grp:rctrl_ralt_toggle = +group(rctrl_ralt_toggle) + grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) + grp:ctrl_alt_toggle_bidir = +group(ctrl_alt_toggle_bidir) + grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle) + grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle) + grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) + grp:ctrl_shift_toggle_bidir = +group(ctrl_shift_toggle_bidir) + grp:lalt_lshift_toggle = +group(lalt_lshift_toggle) + grp:ralt_rshift_toggle = +group(ralt_rshift_toggle) + grp:alt_shift_toggle = +group(alt_shift_toggle) + grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir) + grp:lctrl_lwin_toggle = +group(lctrl_lwin_toggle) + lv3:switch = +level3(switch) + lv3:ralt_switch = +level3(ralt_switch) + lv3:ralt_switch_multikey = +level3(ralt_switch_multikey) + lv3:ralt_alt = +level3(ralt_alt) + lv3:lalt_switch = +level3(lalt_switch) + lv3:alt_switch = +level3(alt_switch) + lv3:menu_switch = +level3(menu_switch) + lv3:win_switch = +level3(win_switch) + lv3:lwin_switch = +level3(lwin_switch) + lv3:rwin_switch = +level3(rwin_switch) + lv3:enter_switch = +level3(enter_switch) + caps:capslock = +capslock(capslock) + caps:numlock = +capslock(numlock) + caps:shiftlock = +capslock(shiftlock) + caps:swapescape = +capslock(swapescape) + caps:escape = +capslock(escape) + caps:backspace = +capslock(backspace) + caps:super = +capslock(super) + caps:hyper = +capslock(hyper) + caps:menu = +capslock(menu) + caps:none = +capslock(none) + caps:ctrl_modifier = +capslock(ctrl_modifier) + ctrl:nocaps = +ctrl(nocaps) + ctrl:lctrl_meta = +ctrl(lctrl_meta) + ctrl:swapcaps = +ctrl(swapcaps) + ctrl:ac_ctrl = +ctrl(ac_ctrl) + ctrl:aa_ctrl = +ctrl(aa_ctrl) + ctrl:rctrl_ralt = +ctrl(rctrl_ralt) + ctrl:menu_rctrl = +ctrl(menu_rctrl) + ctrl:ralt_rctrl = +ctrl(ralt_rctrl) + ctrl:swap_lalt_lctl = +ctrl(swap_lalt_lctl) + ctrl:swap_lwin_lctl = +ctrl(swap_lwin_lctl) + ctrl:swap_rwin_rctl = +ctrl(swap_rwin_rctl) + ctrl:swap_lalt_lctl_lwin = +ctrl(swap_lalt_lctl_lwin) + compose:ralt = +compose(ralt) + compose:lwin = +compose(lwin) + compose:lwin-altgr = +compose(lwin-altgr) + compose:rwin = +compose(rwin) + compose:rwin-altgr = +compose(rwin-altgr) + compose:menu = +compose(menu) + compose:menu-altgr = +compose(menu-altgr) + compose:lctrl = +compose(lctrl) + compose:lctrl-altgr = +compose(lctrl-altgr) + compose:rctrl = +compose(rctrl) + compose:rctrl-altgr = +compose(rctrl-altgr) + compose:caps = +compose(caps) + compose:caps-altgr = +compose(caps-altgr) + compose:102 = +compose(102) + compose:102-altgr = +compose(102-altgr) + compose:paus = +compose(paus) + compose:prsc = +compose(prsc) + compose:sclk = +compose(sclk) + srvrkeys:none = +srvr_ctrl(no_srvr_keys) + eurosign:e = +eurosign(e) + eurosign:2 = +eurosign(2) + eurosign:4 = +eurosign(4) + eurosign:5 = +eurosign(5) + rupeesign:4 = +rupeesign(4) + keypad:oss = +keypad(oss) + keypad:legacy = +keypad(legacy) + keypad:legacy_wang = +keypad(legacy_wang) + keypad:oss_wang = +keypad(oss_wang) + keypad:future = +keypad(future) + keypad:future_wang = +keypad(future_wang) + keypad:hex = +keypad(ops)+keypad(hex) + keypad:atm = +keypad(ops)+keypad(hex)+keypad(atm) + nbsp:none = +nbsp(none) + nbsp:level2 = +nbsp(level2) + nbsp:level3 = +nbsp(level3) + nbsp:level3s = +nbsp(level3s) + nbsp:level3n = +nbsp(level3n) + nbsp:level4 = +nbsp(level4) + nbsp:level4n = +nbsp(level4n) + nbsp:level4nl = +nbsp(level4nl) + japan:nicola_f_bs = +jp(nicola_f_bs) + japan:hztg_escape = +jp(hztg_escape) + korean:ralt_rctrl = +kr(ralt_hangul)+kr(rctrl_hanja) + korean:rctrl_ralt = +kr(rctrl_hangul)+kr(ralt_hanja) + kpdl:dot = +kpdl(dot) + kpdl:comma = +kpdl(comma) + kpdl:dotoss = +kpdl(dotoss) + kpdl:dotoss_latin9 = +kpdl(dotoss_latin9) + kpdl:commaoss = +kpdl(commaoss) + kpdl:momayyezoss = +kpdl(momayyezoss) + kpdl:kposs = +kpdl(kposs) + kpdl:semi = +kpdl(semi) + shift:breaks_caps = +shift(breaks_caps) + esperanto:qwerty = +epo(qwerty) + esperanto:dvorak = +epo(dvorak) + esperanto:colemak = +epo(colemak) + terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp) + keypad:pointerkeys = +keypad(pointerkeys) + apple:alupckeys = +macintosh_vndr/apple(alupckeys) + shift:both_capslock = +shift(both_capslock) + shift:lshift_both_capslock = +shift(lshift_both_capslock) + shift:rshift_both_capslock = +shift(rshift_both_capslock) + shift:both_capslock_cancel = +shift(both_capslock_cancel) + shift:lshift_both_capslock_cancel = +shift(lshift_both_capslock_cancel) + shift:rshift_both_capslock_cancel = +shift(rshift_both_capslock_cancel) + shift:both_shiftlock = +shift(both_shiftlock) + shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock) + shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock) + solaris:sun_compat = +sun_vndr/solaris(sun_compat) + lv3:caps_switch = +level3(caps_switch) + lv3:bksl_switch = +level3(bksl_switch) + lv3:lsgt_switch = +level3(lsgt_switch) + lv3:caps_switch_latch = +level3(caps_switch_latch) + lv3:bksl_switch_latch = +level3(bksl_switch_latch) + lv3:lsgt_switch_latch = +level3(lsgt_switch_latch) + lv5:lsgt_switch_lock = +level5(lsgt_switch_lock) + lv5:ralt_switch_lock = +level5(ralt_switch_lock) + lv5:lwin_switch_lock = +level5(lwin_switch_lock) + lv5:rwin_switch_lock = +level5(rwin_switch_lock) + lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel) + lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel) + lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel) + lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel) + parens:swap_brackets = +parens(swap_brackets) + + +! option = compat + grp_led:num = +lednum(group_lock) + grp_led:caps = +ledcaps(group_lock) + grp_led:scroll = +ledscroll(group_lock) + japan:kana_lock = +japan(kana_lock) + caps:shiftlock = +ledcaps(shift_lock) + grab:break_actions = +xfree86(grab_break) + + +! option = types + caps:internal = +caps(internal) + caps:internal_nocancel = +caps(internal_nocancel) + caps:shift = +caps(shift) + caps:shift_nocancel = +caps(shift_nocancel) + numpad:pc = +numpad(pc) + numpad:mac = +numpad(mac) + numpad:microsoft = +numpad(microsoft) + numpad:shift3 = +numpad(shift3) diff --git a/squashfs-root/usr/share/X11/xkb/rules/base.extras.xml b/squashfs-root/usr/share/X11/xkb/rules/base.extras.xml new file mode 100644 index 0000000..2977e54 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/rules/base.extras.xml @@ -0,0 +1,1131 @@ + + + + + + + + apl + apl + APL + + eng + + + + + + dyalog + dlg + Dyalog APL complete + + + + + sax + sax + APL Keyboard Symbols: sax + + + + + unified + ufd + APL Keyboard Symbols: Unified Layout + + + + + apl2 + apl2 + APL Keyboard Symbols: IBM APL2 + + + + + aplplusII + aplII + APL Keyboard Symbols: Manugistics APL*PLUS II + + + + + aplx + aplx + APL Keyboard Symbols: APLX Unified APL Layout + + + + + + + ca + fr + French (Canada) + + fra + + + + + + kut + kut + Kutenai + + + + + shs + shs + Secwepemctsin + + + + + sun_type6 + Multilingual (Canada, Sun Type 6/7) + + + + + + + de + de + German + + ger + + + + + + us + German (US, with German letters) + + eng + + + + + + hu + German (with Hungarian letters and no dead keys) + + ger + hun + + + + + + pl + Polish (Germany, no dead keys) + + ger + pol + + + + + + sun_type6 + German (Sun Type 6/7) + + + + + adnw + German (Aus der Neo-Welt) + + + + + koy + German (KOY) + + + + + bone + German (Bone) + + + + + bone_eszett_home + German (Bone, eszett home row) + + + + + neo_qwertz + German (Neo qwertz) + + + + + neo_qwerty + German (Neo qwerty) + + + + + ru-recom + + ru + Russian (Germany, recommended) + + rus + + + + + + ru-translit + + ru + Russian (Germany, transliteration) + + rus + + + + + + lld + German Ladin + de_lld + + ger + lld + + + + + + + + hu + Hungarian + + + + + oldhun + Old Hungarian + oldhun + + + + + + + ir + fa + Persian + + per + + + + + + ave + Avestan + + ave + + + + + + + + lt + lt + Lithuanian + + lit + + + + + + us_dvorak + Lithuanian (US Dvorak with Lithuanian letters) + + + + + sun_type6 + Lithuanian (Sun Type 6/7) + + + + + + + lv + lv + Latvian + + lav + + + + + + dvorak + Latvian (US Dvorak) + + + + + ykeydvorak + Latvian (US Dvorak, Y variant) + + + + + minuskeydvorak + Latvian (US Dvorak, minus variant) + + + + + dvorakprogr + Latvian (programmer US Dvorak) + + + + + ykeydvorakprogr + Latvian (programmer US Dvorak, Y variant) + + + + + minuskeydvorakprogr + Latvian (programmer US Dvorak, minus variant) + + + + + colemak + Latvian (US Colemak) + + + + + apostrophecolemak + Latvian (US Colemak, apostrophe variant) + + + + + sun_type6 + Latvian (Sun Type 6/7) + + + + + + + us + en + English (US) + + eng + + + + + + intl-unicode + English (US, international AltGr Unicode combining) + + + + + alt-intl-unicode + English (US, international AltGr Unicode combining, alternative) + + + + + ats + Atsina + + + + + + crd + Coeur d'Alene Salish + + crd + + + + + + cz_sk_de + Czech Slovak and German (US) + + eng + cze + slo + ger + + + + + + ibm238l + English (US, IBM Arabic 238_L) + + + + + sun_type6 + English (US, Sun Type 6/7) + + + + + norman + English (Norman) + + + + + carpalx + English (Carpalx) + + + + + carpalx-intl + English (Carpalx, intl., with dead keys) + + + + + carpalx-altgr-intl + English (Carpalx, intl., with AltGr dead keys) + + + + + carpalx-full + English (Carpalx, full optimization) + + + + + carpalx-full-intl + English (Carpalx, full optimization, intl., with dead keys) + + + + + carpalx-full-altgr-intl + English (Carpalx, full optimization, intl., with AltGr dead keys) + + + + + + + pl + pl + Polish + + pol + + + + + + intl + Polish (intl., with dead keys) + + + + + colemak + Polish (Colemak) + + + + + sun_type6 + Polish (Sun Type 6/7) + + + + + + + ro + ro + Romanian + + rum + + + + + + crh_dobruja + crh + Crimean Tatar (Dobruja Q) + + crh + + + + + + ergonomic + Romanian (ergonomic Touchtype) + + + + + sun_type6 + Romanian (Sun Type 6/7) + + + + + + + rs + sr + Serbian + + srp + + + + + + combiningkeys + Serbian (combining accents instead of dead keys) + + + + + + + ru + ru + Russian + + + + + chu + Church Slavonic + + chu + + + + + + ruu + ru + Russian (with Ukrainian-Belorussian layout) + + rus + ukr + bel + + + + + + rulemak + Russian (Rulemak, phonetic Colemak) + + + + + sun_type6 + Russian (Sun Type 6/7) + + + + + prxn + ru + Russian (Polyglot and Reactionary) + + rus + rus-petr1708 + ukr + bel + srp + mkd + bul + chu + rum-Cyrl + kaz + kir + uzb + bak + aze + tat + uig + kdr + tyv + kjh + crh + tgk + abk + sah + mon + kal + sjd + chv + oss + krl + ale + wbl + kur + niv + dng + kom + udm + sel + ulc + ude + oac + oaa + gld + eve + evn + kca + itl + yrk + neg + + + RU + RS + BA + ME + MK + BG + MD + UA + BY + KZ + MN + KG + TJ + UZ + TM + AZ + + + + + + + + am + hy + Armenian + + hye + + + + + + olpc-phonetic + Armenian (OLPC phonetic) + + + + + + + il + he + Hebrew + + heb + + + + + + biblicalSIL + Hebrew (Biblical, SIL phonetic) + + heb + + + + + + + + ara + ar + Arabic + + + + + sun_type6 + Arabic (Sun Type 6/7) + + + + + + + be + be + Belgian + + + + + sun_type6 + Belgian (Sun Type 6/7) + + + + + + + br + pt + Portuguese (Brazil) + + + + + sun_type6 + Portuguese (Brazil, Sun Type 6/7) + + + + + + + cz + cs + Czech + + + + + sun_type6 + Czech (Sun Type 6/7) + + + + + + + dk + da + Danish + + + + + sun_type6 + Danish (Sun Type 6/7) + + + + + + + nl + nl + Dutch + + + + + sun_type6 + Dutch (Sun Type 6/7) + + + + + + + ee + et + Estonian + + + + + sun_type6 + Estonian (Sun Type 6/7) + + + + + + + fi + fi + Finnish + + + + + das + Finnish (DAS) + + + + + sun_type6 + Finnish (Sun Type 6/7) + + + + + fidvorak + Finnish Dvorak + + + + + + + fr + fr + French + + + + + sun_type6 + French (Sun Type 6/7) + + + + + + + gr + gr + Greek + + + + + sun_type6 + Greek (Sun Type 6/7) + + + + + + + it + it + Italian + + + + + sun_type6 + Italian (Sun Type 6/7) + + + + + fur + Friulian (Italy) + + fur + + + + + + lld + Italian Ladin + it_lld + + it + lld + + + + + + + + jp + ja + Japanese + + + + + sun_type6 + Japanese (Sun Type 6) + + + + + sun_type7 + Japanese (Sun Type 7 - pc compatible) + + + + + sun_type7_suncompat + Japanese (Sun Type 7 - sun compatible) + + + + + + + no + no + Norwegian + + + + + sun_type6 + Norwegian (Sun Type 6/7) + + + + + + + pt + pt + Portuguese + + + + + sun_type6 + Portuguese (Sun Type 6/7) + + + + + + + sk + sk + Slovak + + + + + sun_type6 + Slovak (Sun Type 6/7) + + + + + + + es + es + Spanish + + + + + sun_type6 + Spanish (Sun Type 6/7) + + + + + + + se + sv + Swedish + + + + + dvorak_a5 + Swedish (Dvorak A5) + + + + + sun_type6 + Swedish (Sun Type 6/7) + + + + + ovd + Elfdalian (Swedish, with combining ogonek) + + ovd + + + + + + + + ch + de + German (Switzerland) + + + + + sun_type6_de + German (Switzerland, Sun Type 6/7) + + + + + sun_type6_fr + French (Switzerland, Sun Type 6/7) + + + + + + + tr + tr + Turkish + + + + + sun_type6 + Turkish (Sun Type 6/7) + + + + + + + ua + uk + Ukrainian + + + + + sun_type6 + Ukrainian (Sun Type 6/7) + + + + + + + gb + en + English (UK) + + + + + sun_type6 + English (UK, Sun Type 6/7) + + + + + + + kr + ko + Korean + + + + + sun_type6 + Korean (Sun Type 6/7) + + + + + + + eu + + eu + EurKEY (US based layout with european letters) + + cat + dan + eng + est + fao + fin + ger + gre + gsw + ita + lav + lit + nld + nor + por + spa + swe + + + + + + cm + cm + English (Cameroon) + + + + + mmuock + Mmuock + + + + + + + + + + parens + Parentheses position + + + + + \ No newline at end of file diff --git a/squashfs-root/usr/share/X11/xkb/rules/base.lst b/squashfs-root/usr/share/X11/xkb/rules/base.lst new file mode 100644 index 0000000..6daf7cc --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/rules/base.lst @@ -0,0 +1,922 @@ +! model + pc101 Generic 101-key PC + pc102 Generic 101-key PC (intl.) + pc104 Generic 104-key PC + pc105 Generic 105-key PC (intl.) + dell101 Dell 101-key PC + latitude Dell Latitude laptop + dellm65 Dell Precision M65 laptop + everex Everex STEPnote + flexpro Keytronic FlexPro + microsoft Microsoft Natural + omnikey101 Northgate OmniKey 101 + winbook Winbook Model XP5 + pc98 PC-98 + a4techKB21 A4Tech KB-21 + a4techKBS8 A4Tech KBS-8 + a4_rfkb23 A4Tech Wireless Desktop RFKB-23 + airkey Acer AirKey V + azonaRF2300 Azona RF2300 wireless Internet + scorpius Advance Scorpius KI + brother Brother Internet + btc5113rf BTC 5113RF Multimedia + btc5126t BTC 5126T + btc6301urf BTC 6301URF + btc9000 BTC 9000 + btc9000a BTC 9000A + btc9001ah BTC 9001AH + btc5090 BTC 5090 + btc9019u BTC 9019U + btc9116u BTC 9116U Mini Wireless Internet and Gaming + cherryblue Cherry Blue Line CyBo@rd + cherryblueb Cherry CyMotion Master XPress + cherrybluea Cherry Blue Line CyBo@rd (alt.) + cherrycyboard Cherry CyBo@rd USB-Hub + cherrycmexpert Cherry CyMotion Expert + cherrybunlim Cherry B.UNLIMITED + chicony Chicony Internet + chicony0108 Chicony KU-0108 + chicony0420 Chicony KU-0420 + chicony9885 Chicony KB-9885 + compaqeak8 Compaq Easy Access + compaqik7 Compaq Internet (7 keys) + compaqik13 Compaq Internet (13 keys) + compaqik18 Compaq Internet (18 keys) + cymotionlinux Cherry CyMotion Master Linux + armada Compaq Armada laptop + presario Compaq Presario laptop + ipaq Compaq iPaq + dell Dell + dellsk8125 Dell SK-8125 + dellsk8135 Dell SK-8135 + dellusbmm Dell USB Multimedia + inspiron Dell Inspiron 6000/8000 laptop + precision_m Dell Precision M laptop + dexxa Dexxa Wireless Desktop + diamond Diamond 9801/9802 + dtk2000 DTK2000 + ennyah_dkb1008 Ennyah DKB-1008 + fscaa1667g Fujitsu-Siemens Amilo laptop + genius Genius Comfy KB-16M/Multimedia KWD-910 + geniuscomfy Genius Comfy KB-12e + geniuscomfy2 Genius Comfy KB-21e-Scroll + geniuskb19e Genius KB-19e NB + geniuskkb2050hs Genius KKB-2050HS + gyration Gyration + htcdream HTC Dream + kinesis Kinesis + logitech_base Logitech + logitech_g15 Logitech G15 extra keys via G15daemon + hpi6 Hewlett-Packard Internet + hp250x Hewlett-Packard NEC SK-2500 Multimedia + hpxe3gc Hewlett-Packard Omnibook XE3 GC + hpxe3gf Hewlett-Packard Omnibook XE3 GF + hpxt1000 Hewlett-Packard Omnibook XT1000 + hpdv5 Hewlett-Packard Pavilion dv5 + hpzt11xx Hewlett-Packard Pavilion ZT1100 + hp500fa Hewlett-Packard Omnibook 500 FA + hp5xx Hewlett-Packard Omnibook 500 + hpnx9020 Hewlett-Packard nx9020 + hp6000 Hewlett-Packard Omnibook 6000/6100 + honeywell_euroboard Honeywell Euroboard + hpmini110 Hewlett-Packard Mini 110 laptop + rapidaccess IBM Rapid Access + rapidaccess2 IBM Rapid Access II + thinkpad IBM ThinkPad 560Z/600/600E/A22E + thinkpad60 IBM ThinkPad R60/T60/R61/T61 + thinkpadz60 IBM ThinkPad Z60m/Z60t/Z61m/Z61t + ibm_spacesaver IBM Space Saver + logiaccess Logitech Access + logiclx300 Logitech Cordless Desktop LX-300 + logii350 Logitech Internet 350 + logimel Logitech Internet 350 + logicd Logitech Cordless Desktop + logicd_it Logitech Cordless Desktop iTouch + logicd_nav Logitech Cordless Desktop Navigator + logicd_opt Logitech Cordless Desktop Optical + logicda Logitech Cordless Desktop (alt.) + logicdpa2 Logitech Cordless Desktop Pro (2nd alt.) + logicfn Logitech Cordless Freedom/Desktop Navigator + logicdn Logitech Cordless Desktop Navigator + logiitc Logitech iTouch Cordless Y-RB6 + logiik Logitech Internet + itouch Logitech iTouch + logicink Logitech Internet Navigator + logiex110 Logitech Cordless Desktop EX110 + logiinkse Logitech iTouch Internet Navigator SE + logiinkseusb Logitech iTouch Internet Navigator SE USB + logiultrax Logitech Ultra-X + logiultraxc Logitech Ultra-X Cordless Media Desktop + logidinovo Logitech diNovo + logidinovoedge Logitech diNovo Edge + mx1998 Memorex MX1998 + mx2500 Memorex MX2500 EZ-Access + mx2750 Memorex MX2750 + microsoft4000 Microsoft Natural Ergonomic 4000 + microsoft7000 Microsoft Natural Wireless Ergonomic 7000 + microsoftinet Microsoft Internet + microsoftpro Microsoft Natural Pro/Internet Pro + microsoftprousb Microsoft Natural Pro USB/Internet Pro + microsoftprooem Microsoft Natural Pro OEM + vsonku306 ViewSonic KU-306 Internet + microsoftprose Microsoft Internet Pro (Swedish) + microsoftoffice Microsoft Office Keyboard + microsoftmult Microsoft Wireless Multimedia 1.0A + microsoftelite Microsoft Natural Elite + microsoftccurve2k Microsoft Comfort Curve 2000 + oretec Ortek Multimedia/Internet MCK-800 + propeller Propeller Voyager KTEZ-1000 + qtronix QTronix Scorpius 98N+ + samsung4500 Samsung SDM 4500P + samsung4510 Samsung SDM 4510P + sanwaskbkg3 Sanwa Supply SKB-KG3 + sk1300 NEC SK-1300 + sk2500 NEC SK-2500 + sk6200 NEC SK-6200 + sk7100 NEC SK-7100 + sp_inet Super Power Multimedia + sven SVEN Ergonomic 2500 + sven303 SVEN Slim 303 + symplon Symplon PaceBook tablet + toshiba_s3000 Toshiba Satellite S3000 + trust Trust Wireless Classic + trustda Trust Direct Access + trust_slimline Trust Slimline + tm2020 TypeMatrix EZ-Reach 2020 + tm2030PS2 TypeMatrix EZ-Reach 2030 PS2 + tm2030USB TypeMatrix EZ-Reach 2030 USB + tm2030USB-102 TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) + tm2030USB-106 TypeMatrix EZ-Reach 2030 USB (106:JP mode) + yahoo Yahoo! Internet + macbook78 MacBook/MacBook Pro + macbook79 MacBook/MacBook Pro (intl.) + macintosh Macintosh + macintosh_old Macintosh Old + macintosh_hhk Happy Hacking for Mac + acer_c300 Acer C300 + acer_ferrari4k Acer Ferrari 4000 + acer_laptop Acer laptop + asus_laptop Asus laptop + apple Apple + apple_laptop Apple laptop + applealu_ansi Apple Aluminium (ANSI) + applealu_iso Apple Aluminium (ISO) + applealu_jis Apple Aluminium (JIS) + silvercrest Silvercrest Multimedia Wireless + emachines eMachines m6800 laptop + benqx BenQ X-Touch + benqx730 BenQ X-Touch 730 + benqx800 BenQ X-Touch 800 + hhk Happy Hacking + classmate Classmate PC + olpc OLPC + sun_type7_usb Sun Type 7 USB + sun_type7_euro_usb Sun Type 7 USB (European) + sun_type7_unix_usb Sun Type 7 USB (Unix) + sun_type7_jp_usb Sun Type 7 USB (Japanese)/Japanese 106-key + sun_type6_usb Sun Type 6/7 USB + sun_type6_euro_usb Sun Type 6/7 USB (European) + sun_type6_unix_usb Sun Type 6 USB (Unix) + sun_type6_jp_usb Sun Type 6 USB (Japanese) + sun_type6_jp Sun Type 6 (Japanese) + targa_v811 Targa Visionary 811 + unitekkb1925 Unitek KB-1925 + compalfl90 FL90 + creativedw7000 Creative Desktop Wireless 7000 + htcdream Htc Dream phone + teck227 Truly Ergonomic 227 + teck229 Truly Ergonomic 229 + apex300 SteelSeries Apex 300 (Apex RAW) + +! layout + us English (US) + af Afghani + ara Arabic + al Albanian + am Armenian + at German (Austria) + au English (Australian) + az Azerbaijani + by Belarusian + be Belgian + bd Bangla + in Indian + ba Bosnian + br Portuguese (Brazil) + bg Bulgarian + dz Berber (Algeria, Latin) + ma Arabic (Morocco) + cm English (Cameroon) + mm Burmese + ca French (Canada) + cd French (Democratic Republic of the Congo) + cn Chinese + hr Croatian + cz Czech + dk Danish + nl Dutch + bt Dzongkha + ee Estonian + ir Persian + iq Iraqi + fo Faroese + fi Finnish + fr French + gh English (Ghana) + gn French (Guinea) + ge Georgian + de German + gr Greek + hu Hungarian + is Icelandic + il Hebrew + it Italian + jp Japanese + kg Kyrgyz + kh Khmer (Cambodia) + kz Kazakh + la Lao + latam Spanish (Latin American) + lt Lithuanian + lv Latvian + mao Maori + me Montenegrin + mk Macedonian + mt Maltese + mn Mongolian + no Norwegian + pl Polish + pt Portuguese + ro Romanian + ru Russian + rs Serbian + si Slovenian + sk Slovak + es Spanish + se Swedish + ch German (Switzerland) + sy Arabic (Syria) + tj Tajik + lk Sinhala (phonetic) + th Thai + tr Turkish + tw Taiwanese + ua Ukrainian + gb English (UK) + uz Uzbek + vn Vietnamese + kr Korean + nec_vndr/jp Japanese (PC-98) + ie Irish + pk Urdu (Pakistan) + mv Dhivehi + za English (South Africa) + epo Esperanto + np Nepali + ng English (Nigeria) + et Amharic + sn Wolof + brai Braille + tm Turkmen + ml Bambara + tz Swahili (Tanzania) + tg French (Togo) + ke Swahili (Kenya) + bw Tswana + ph Filipino + md Moldavian + id Indonesian (Jawi) + my Malay (Jawi, Arabic Keyboard) + +! variant + chr us: Cherokee + euro us: English (US, euro on 5) + intl us: English (US, intl., with dead keys) + alt-intl us: English (US, alt. intl.) + colemak us: English (Colemak) + dvorak us: English (Dvorak) + dvorak-intl us: English (Dvorak, intl., with dead keys) + dvorak-alt-intl us: English (Dvorak, alt. intl.) + dvorak-l us: English (Dvorak, left-handed) + dvorak-r us: English (Dvorak, right-handed) + dvorak-classic us: English (classic Dvorak) + dvp us: English (programmer Dvorak) + rus us: Russian (US, phonetic) + mac us: English (Macintosh) + altgr-intl us: English (intl., with AltGr dead keys) + olpc2 us: English (the divide/multiply keys toggle the layout) + hbs us: Serbo-Croatian (US) + workman us: English (Workman) + workman-intl us: English (Workman, intl., with dead keys) + ps af: Pashto + uz af: Uzbek (Afghanistan) + olpc-ps af: Pashto (Afghanistan, OLPC) + fa-olpc af: Persian (Afghanistan, Dari OLPC) + uz-olpc af: Uzbek (Afghanistan, OLPC) + azerty ara: Arabic (AZERTY) + azerty_digits ara: Arabic (AZERTY/digits) + digits ara: Arabic (digits) + qwerty ara: Arabic (QWERTY) + qwerty_digits ara: Arabic (qwerty/digits) + buckwalter ara: Arabic (Buckwalter) + mac ara: Arabic (Macintosh) + plisi al: Albanian (Plisi) + phonetic am: Armenian (phonetic) + phonetic-alt am: Armenian (alt. phonetic) + eastern am: Armenian (eastern) + western am: Armenian (western) + eastern-alt am: Armenian (alt. eastern) + nodeadkeys at: German (Austria, no dead keys) + sundeadkeys at: German (Austria, with Sun dead keys) + mac at: German (Austria, Macintosh) + cyrillic az: Azerbaijani (Cyrillic) + legacy by: Belarusian (legacy) + latin by: Belarusian (Latin) + oss be: Belgian (alt.) + oss_latin9 be: Belgian (alt., Latin-9 only) + oss_sundeadkeys be: Belgian (alt., with Sun dead keys) + iso-alternate be: Belgian (alt. ISO) + nodeadkeys be: Belgian (no dead keys) + sundeadkeys be: Belgian (with Sun dead keys) + wang be: Belgian (Wang 724 AZERTY) + probhat bd: Bangla (Probhat) + ben in: Bangla (India) + ben_probhat in: Bangla (India, Probhat) + ben_baishakhi in: Bangla (India, Baishakhi) + ben_bornona in: Bangla (India, Bornona) + ben_gitanjali in: Bangla (India, Uni Gitanjali) + ben_inscript in: Bangla (India, Baishakhi Inscript) + eeyek in: Manipuri (Eeyek) + guj in: Gujarati + guru in: Punjabi (Gurmukhi) + jhelum in: Punjabi (Gurmukhi Jhelum) + kan in: Kannada + kan-kagapa in: Kannada (KaGaPa phonetic) + mal in: Malayalam + mal_lalitha in: Malayalam (Lalitha) + mal_enhanced in: Malayalam (enhanced Inscript, with rupee) + ori in: Oriya + olck in: Ol Chiki + tam_unicode in: Tamil (Unicode) + tam_keyboard_with_numerals in: Tamil (keyboard with numerals) + tam_TAB in: Tamil (TAB typewriter) + tam_TSCII in: Tamil (TSCII typewriter) + tam in: Tamil + tel in: Telugu + tel-kagapa in: Telugu (KaGaPa phonetic) + tel-sarala in: Telugu (Sarala) + urd-phonetic in: Urdu (phonetic) + urd-phonetic3 in: Urdu (alt. phonetic) + urd-winkeys in: Urdu (Win keys) + bolnagri in: Hindi (Bolnagri) + hin-wx in: Hindi (Wx) + hin-kagapa in: Hindi (KaGaPa phonetic) + san-kagapa in: Sanskrit (KaGaPa phonetic) + mar-kagapa in: Marathi (KaGaPa phonetic) + eng in: English (India, with rupee) + alternatequotes ba: Bosnian (with guillemets) + unicode ba: Bosnian (with Bosnian digraphs) + unicodeus ba: Bosnian (US, with Bosnian digraphs) + us ba: Bosnian (US, with Bosnian letters) + nodeadkeys br: Portuguese (Brazil, no dead keys) + dvorak br: Portuguese (Brazil, Dvorak) + nativo br: Portuguese (Brazil, Nativo) + nativo-us br: Portuguese (Brazil, Nativo for US keyboards) + nativo-epo br: Esperanto (Brazil, Nativo) + thinkpad br: Portuguese (Brazil, IBM/Lenovo ThinkPad) + phonetic bg: Bulgarian (traditional phonetic) + bas_phonetic bg: Bulgarian (new phonetic) + ber dz: Berber (Algeria, Tifinagh) + ar dz: Arabic (Algeria) + french ma: French (Morocco) + tifinagh ma: Berber (Morocco, Tifinagh) + tifinagh-alt ma: Berber (Morocco, Tifinagh alt.) + tifinagh-alt-phonetic ma: Berber (Morocco, Tifinagh alt. phonetic) + tifinagh-extended ma: Berber (Morocco, Tifinagh extended) + tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic) + tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic) + french cm: French (Cameroon) + qwerty cm: Cameroon Multilingual (QWERTY) + azerty cm: Cameroon Multilingual (AZERTY) + dvorak cm: Cameroon Multilingual (Dvorak) + mmuock cm: Mmuock + fr-dvorak ca: French (Canada, Dvorak) + fr-legacy ca: French (Canada, legacy) + multix ca: Canadian Multilingual + multi ca: Canadian Multilingual (1st part) + multi-2gr ca: Canadian Multilingual (2nd part) + ike ca: Inuktitut + eng ca: English (Canada) + tib cn: Tibetan + tib_asciinum cn: Tibetan (with ASCII numerals) + ug cn: Uyghur + alternatequotes hr: Croatian (with guillemets) + unicode hr: Croatian (with Croatian digraphs) + unicodeus hr: Croatian (US, with Croatian digraphs) + us hr: Croatian (US, with Croatian letters) + bksl cz: Czech (with <\|> key) + qwerty cz: Czech (QWERTY) + qwerty_bksl cz: Czech (QWERTY, extended backslash) + ucw cz: Czech (UCW, only accented letters) + dvorak-ucw cz: Czech (US, Dvorak, UCW support) + rus cz: Russian (Czech, phonetic) + nodeadkeys dk: Danish (no dead keys) + winkeys dk: Danish (Win keys) + mac dk: Danish (Macintosh) + mac_nodeadkeys dk: Danish (Macintosh, no dead keys) + dvorak dk: Danish (Dvorak) + sundeadkeys nl: Dutch (with Sun dead keys) + mac nl: Dutch (Macintosh) + std nl: Dutch (standard) + nodeadkeys ee: Estonian (no dead keys) + dvorak ee: Estonian (Dvorak) + us ee: Estonian (US, with Estonian letters) + pes_keypad ir: Persian (with Persian keypad) + ku ir: Kurdish (Iran, Latin Q) + ku_f ir: Kurdish (Iran, F) + ku_alt ir: Kurdish (Iran, Latin Alt-Q) + ku_ara ir: Kurdish (Iran, Arabic-Latin) + ku iq: Kurdish (Iraq, Latin Q) + ku_f iq: Kurdish (Iraq, F) + ku_alt iq: Kurdish (Iraq, Latin Alt-Q) + ku_ara iq: Kurdish (Iraq, Arabic-Latin) + nodeadkeys fo: Faroese (no dead keys) + classic fi: Finnish (classic) + nodeadkeys fi: Finnish (classic, no dead keys) + winkeys fi: Finnish (Winkeys) + smi fi: Northern Saami (Finland) + mac fi: Finnish (Macintosh) + nodeadkeys fr: French (no dead keys) + sundeadkeys fr: French (with Sun dead keys) + oss fr: French (alt.) + oss_latin9 fr: French (alt., Latin-9 only) + oss_nodeadkeys fr: French (alt., no dead keys) + oss_sundeadkeys fr: French (alt., with Sun dead keys) + latin9 fr: French (legacy, alt.) + latin9_nodeadkeys fr: French (legacy, alt., no dead keys) + latin9_sundeadkeys fr: French (legacy, alt., with Sun dead keys) + bepo fr: French (Bepo, ergonomic, Dvorak way) + bepo_latin9 fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only) + dvorak fr: French (Dvorak) + mac fr: French (Macintosh) + azerty fr: French (AZERTY) + bre fr: French (Breton) + oci fr: Occitan + geo fr: Georgian (France, AZERTY Tskapo) + generic gh: English (Ghana, multilingual) + akan gh: Akan + ewe gh: Ewe + fula gh: Fula + ga gh: Ga + hausa gh: Hausa (Ghana) + avn gh: Avatime + gillbt gh: English (Ghana, GILLBT) + ergonomic ge: Georgian (ergonomic) + mess ge: Georgian (MESS) + ru ge: Russian (Georgia) + os ge: Ossetian (Georgia) + deadacute de: German (dead acute) + deadgraveacute de: German (dead grave acute) + nodeadkeys de: German (no dead keys) + T3 de: German (T3) + ro de: Romanian (Germany) + ro_nodeadkeys de: Romanian (Germany, no dead keys) + dvorak de: German (Dvorak) + sundeadkeys de: German (with Sun dead keys) + neo de: German (Neo 2) + mac de: German (Macintosh) + mac_nodeadkeys de: German (Macintosh, no dead keys) + dsb de: Lower Sorbian + dsb_qwertz de: Lower Sorbian (QWERTZ) + qwerty de: German (QWERTY) + tr de: Turkish (Germany) + ru de: Russian (Germany, phonetic) + deadtilde de: German (dead tilde) + simple gr: Greek (simple) + extended gr: Greek (extended) + nodeadkeys gr: Greek (no dead keys) + polytonic gr: Greek (polytonic) + standard hu: Hungarian (standard) + nodeadkeys hu: Hungarian (no dead keys) + qwerty hu: Hungarian (QWERTY) + 101_qwertz_comma_dead hu: Hungarian (101/QWERTZ/comma/dead keys) + 101_qwertz_comma_nodead hu: Hungarian (101/QWERTZ/comma/no dead keys) + 101_qwertz_dot_dead hu: Hungarian (101/QWERTZ/dot/dead keys) + 101_qwertz_dot_nodead hu: Hungarian (101/QWERTZ/dot/no dead keys) + 101_qwerty_comma_dead hu: Hungarian (101/QWERTY/comma/dead keys) + 101_qwerty_comma_nodead hu: Hungarian (101/QWERTY/comma/no dead keys) + 101_qwerty_dot_dead hu: Hungarian (101/QWERTY/dot/dead keys) + 101_qwerty_dot_nodead hu: Hungarian (101/QWERTY/dot/no dead keys) + 102_qwertz_comma_dead hu: Hungarian (102/QWERTZ/comma/dead keys) + 102_qwertz_comma_nodead hu: Hungarian (102/QWERTZ/comma/no dead keys) + 102_qwertz_dot_dead hu: Hungarian (102/QWERTZ/dot/dead keys) + 102_qwertz_dot_nodead hu: Hungarian (102/QWERTZ/dot/no dead keys) + 102_qwerty_comma_dead hu: Hungarian (102/QWERTY/comma/dead keys) + 102_qwerty_comma_nodead hu: Hungarian (102/QWERTY/comma/no dead keys) + 102_qwerty_dot_dead hu: Hungarian (102/QWERTY/dot/dead keys) + 102_qwerty_dot_nodead hu: Hungarian (102/QWERTY/dot/no dead keys) + Sundeadkeys is: Icelandic (with Sun dead keys) + nodeadkeys is: Icelandic (no dead keys) + mac_legacy is: Icelandic (Macintosh, legacy) + mac is: Icelandic (Macintosh) + dvorak is: Icelandic (Dvorak) + lyx il: Hebrew (lyx) + phonetic il: Hebrew (phonetic) + biblical il: Hebrew (Biblical, Tiro) + nodeadkeys it: Italian (no dead keys) + winkeys it: Italian (Winkeys) + mac it: Italian (Macintosh) + us it: Italian (US, with Italian letters) + geo it: Georgian (Italy) + ibm it: Italian (IBM 142) + kana jp: Japanese (Kana) + kana86 jp: Japanese (Kana 86) + OADG109A jp: Japanese (OADG 109A) + mac jp: Japanese (Macintosh) + dvorak jp: Japanese (Dvorak) + phonetic kg: Kyrgyz (phonetic) + ruskaz kz: Russian (Kazakhstan, with Kazakh) + kazrus kz: Kazakh (with Russian) + ext kz: Kazakh (extended) + stea la: Lao (STEA proposed standard layout) + nodeadkeys latam: Spanish (Latin American, no dead keys) + deadtilde latam: Spanish (Latin American, dead tilde) + sundeadkeys latam: Spanish (Latin American, with Sun dead keys) + dvorak latam: Spanish (Latin American, Dvorak) + std lt: Lithuanian (standard) + us lt: Lithuanian (US, with Lithuanian letters) + ibm lt: Lithuanian (IBM LST 1205-92) + lekp lt: Lithuanian (LEKP) + lekpa lt: Lithuanian (LEKPa) + apostrophe lv: Latvian (apostrophe) + tilde lv: Latvian (tilde) + fkey lv: Latvian (F) + modern lv: Latvian (modern) + ergonomic lv: Latvian (ergonomic, ŪGJRMV) + adapted lv: Latvian (adapted) + cyrillic me: Montenegrin (Cyrillic) + cyrillicyz me: Montenegrin (Cyrillic, ZE and ZHE swapped) + latinunicode me: Montenegrin (Latin, Unicode) + latinyz me: Montenegrin (Latin, QWERTY) + latinunicodeyz me: Montenegrin (Latin, Unicode, QWERTY) + cyrillicalternatequotes me: Montenegrin (Cyrillic with guillemets) + latinalternatequotes me: Montenegrin (Latin with guillemets) + nodeadkeys mk: Macedonian (no dead keys) + us mt: Maltese (with US layout) + nodeadkeys no: Norwegian (no dead keys) + winkeys no: Norwegian (Win keys) + dvorak no: Norwegian (Dvorak) + smi no: Northern Saami (Norway) + smi_nodeadkeys no: Northern Saami (Norway, no dead keys) + mac no: Norwegian (Macintosh) + mac_nodeadkeys no: Norwegian (Macintosh, no dead keys) + colemak no: Norwegian (Colemak) + legacy pl: Polish (legacy) + qwertz pl: Polish (QWERTZ) + dvorak pl: Polish (Dvorak) + dvorak_quotes pl: Polish (Dvorak, with Polish quotes on quotemark key) + dvorak_altquotes pl: Polish (Dvorak, with Polish quotes on key 1) + csb pl: Kashubian + szl pl: Silesian + ru_phonetic_dvorak pl: Russian (Poland, phonetic Dvorak) + dvp pl: Polish (programmer Dvorak) + nodeadkeys pt: Portuguese (no dead keys) + sundeadkeys pt: Portuguese (with Sun dead keys) + mac pt: Portuguese (Macintosh) + mac_nodeadkeys pt: Portuguese (Macintosh, no dead keys) + mac_sundeadkeys pt: Portuguese (Macintosh, with Sun dead keys) + nativo pt: Portuguese (Nativo) + nativo-us pt: Portuguese (Nativo for US keyboards) + nativo-epo pt: Esperanto (Portugal, Nativo) + cedilla ro: Romanian (cedilla) + std ro: Romanian (standard) + std_cedilla ro: Romanian (standard cedilla) + winkeys ro: Romanian (Win keys) + phonetic ru: Russian (phonetic) + phonetic_winkeys ru: Russian (phonetic, with Win keys) + typewriter ru: Russian (typewriter) + legacy ru: Russian (legacy) + typewriter-legacy ru: Russian (typewriter, legacy) + tt ru: Tatar + os_legacy ru: Ossetian (legacy) + os_winkeys ru: Ossetian (Win keys) + cv ru: Chuvash + cv_latin ru: Chuvash (Latin) + udm ru: Udmurt + kom ru: Komi + sah ru: Yakut + xal ru: Kalmyk + dos ru: Russian (DOS) + mac ru: Russian (Macintosh) + srp ru: Serbian (Russia) + bak ru: Bashkirian + chm ru: Mari + phonetic_azerty ru: Russian (phonetic, AZERTY) + phonetic_dvorak ru: Russian (phonetic, Dvorak) + phonetic_fr ru: Russian (phonetic, French) + yz rs: Serbian (Cyrillic, ZE and ZHE swapped) + latin rs: Serbian (Latin) + latinunicode rs: Serbian (Latin, Unicode) + latinyz rs: Serbian (Latin, QWERTY) + latinunicodeyz rs: Serbian (Latin, Unicode, QWERTY) + alternatequotes rs: Serbian (Cyrillic with guillemets) + latinalternatequotes rs: Serbian (Latin with guillemets) + rue rs: Pannonian Rusyn + alternatequotes si: Slovenian (with guillemets) + us si: Slovenian (US, with Slovenian letters) + bksl sk: Slovak (extended backslash) + qwerty sk: Slovak (QWERTY) + qwerty_bksl sk: Slovak (QWERTY, extended backslash) + nodeadkeys es: Spanish (no dead keys) + winkeys es: Spanish (Win keys) + deadtilde es: Spanish (dead tilde) + sundeadkeys es: Spanish (with Sun dead keys) + dvorak es: Spanish (Dvorak) + ast es: Asturian (Spain, with bottom-dot H and bottom-dot L) + cat es: Catalan (Spain, with middle-dot L) + mac es: Spanish (Macintosh) + nodeadkeys se: Swedish (no dead keys) + dvorak se: Swedish (Dvorak) + rus se: Russian (Sweden, phonetic) + rus_nodeadkeys se: Russian (Sweden, phonetic, no dead keys) + smi se: Northern Saami (Sweden) + mac se: Swedish (Macintosh) + svdvorak se: Swedish (Svdvorak) + us_dvorak se: Swedish (based on US Intl. Dvorak) + swl se: Swedish Sign Language + legacy ch: German (Switzerland, legacy) + de_nodeadkeys ch: German (Switzerland, no dead keys) + de_sundeadkeys ch: German (Switzerland, with Sun dead keys) + fr ch: French (Switzerland) + fr_nodeadkeys ch: French (Switzerland, no dead keys) + fr_sundeadkeys ch: French (Switzerland, with Sun dead keys) + fr_mac ch: French (Switzerland, Macintosh) + de_mac ch: German (Switzerland, Macintosh) + syc sy: Syriac + syc_phonetic sy: Syriac (phonetic) + ku sy: Kurdish (Syria, Latin Q) + ku_f sy: Kurdish (Syria, F) + ku_alt sy: Kurdish (Syria, Latin Alt-Q) + legacy tj: Tajik (legacy) + tam_unicode lk: Tamil (Sri Lanka, Unicode) + tam_TAB lk: Tamil (Sri Lanka, TAB Typewriter) + us lk: Sinhala (US, with Sinhala letters) + tis th: Thai (TIS-820.2538) + pat th: Thai (Pattachote) + f tr: Turkish (F) + alt tr: Turkish (Alt-Q) + sundeadkeys tr: Turkish (with Sun dead keys) + ku tr: Kurdish (Turkey, Latin Q) + ku_f tr: Kurdish (Turkey, F) + ku_alt tr: Kurdish (Turkey, Latin Alt-Q) + intl tr: Turkish (intl., with dead keys) + crh tr: Crimean Tatar (Turkish Q) + crh_f tr: Crimean Tatar (Turkish F) + crh_alt tr: Crimean Tatar (Turkish Alt-Q) + indigenous tw: Taiwanese (indigenous) + saisiyat tw: Saisiyat (Taiwan) + phonetic ua: Ukrainian (phonetic) + typewriter ua: Ukrainian (typewriter) + winkeys ua: Ukrainian (Win keys) + legacy ua: Ukrainian (legacy) + rstu ua: Ukrainian (standard RSTU) + rstu_ru ua: Russian (Ukraine, standard RSTU) + homophonic ua: Ukrainian (homophonic) + extd gb: English (UK, extended, with Win keys) + intl gb: English (UK, intl., with dead keys) + dvorak gb: English (UK, Dvorak) + dvorakukp gb: English (UK, Dvorak, with UK punctuation) + mac gb: English (UK, Macintosh) + mac_intl gb: English (UK, intl., Macintosh) + colemak gb: English (UK, Colemak) + latin uz: Uzbek (Latin) + kr104 kr: Korean (101/104 key compatible) + CloGaelach ie: CloGaelach + UnicodeExpert ie: Irish (UnicodeExpert) + ogam ie: Ogham + ogam_is434 ie: Ogham (IS434) + urd-crulp pk: Urdu (Pakistan, CRULP) + urd-nla pk: Urdu (Pakistan, NLA) + ara pk: Arabic (Pakistan) + snd pk: Sindhi + legacy epo: Esperanto (displaced semicolon and quote, obsolete) + igbo ng: Igbo + yoruba ng: Yoruba + hausa ng: Hausa (Nigeria) + left_hand brai: Braille (left-handed) + right_hand brai: Braille (right-handed) + alt tm: Turkmen (Alt-Q) + fr-oss ml: French (Mali, alt.) + us-mac ml: English (Mali, US, Macintosh) + us-intl ml: English (Mali, US, intl.) + kik ke: Kikuyu + qwerty-bay ph: Filipino (QWERTY, Baybayin) + capewell-dvorak ph: Filipino (Capewell-Dvorak, Latin) + capewell-dvorak-bay ph: Filipino (Capewell-Dvorak, Baybayin) + capewell-qwerf2k6 ph: Filipino (Capewell-QWERF 2006, Latin) + capewell-qwerf2k6-bay ph: Filipino (Capewell-QWERF 2006, Baybayin) + colemak ph: Filipino (Colemak, Latin) + colemak-bay ph: Filipino (Colemak, Baybayin) + dvorak ph: Filipino (Dvorak, Latin) + dvorak-bay ph: Filipino (Dvorak, Baybayin) + gag md: Moldavian (Gagauz) + phonetic my: Malay (Jawi, phonetic) + +! option + grp Switching to another layout + grp:switch Right Alt (while pressed) + grp:lswitch Left Alt (while pressed) + grp:lwin_switch Left Win (while pressed) + grp:rwin_switch Left Win (while pressed) + grp:win_switch Any Win (while pressed) + grp:menu_switch Menu (while pressed), Shift+Menu for Menu + grp:caps_switch Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action + grp:rctrl_switch Right Ctrl (while pressed) + grp:toggle Right Alt + grp:lalt_toggle Left Alt + grp:caps_toggle Caps Lock + grp:shift_caps_toggle Shift+Caps Lock + grp:shift_caps_switch Caps Lock to first layout; Shift+Caps Lock to last layout + grp:win_menu_switch Left Win to first layout; Right Win/Menu to last layout + grp:lctrl_rctrl_switch Left Ctrl to first layout; Right Ctrl to last layout + grp:alt_caps_toggle Alt+Caps Lock + grp:shifts_toggle Both Shift together + grp:alts_toggle Both Alt together + grp:ctrls_toggle Both Ctrl together + grp:ctrl_shift_toggle Ctrl+Shift + grp:lctrl_lshift_toggle Left Ctrl+Left Shift + grp:rctrl_rshift_toggle Right Ctrl+Right Shift + grp:ctrl_alt_toggle Alt+Ctrl + grp:alt_shift_toggle Alt+Shift + grp:lalt_lshift_toggle Left Alt+Left Shift + grp:alt_space_toggle Alt+Space + grp:menu_toggle Menu + grp:lwin_toggle Left Win + grp:win_space_toggle Win+Space + grp:rwin_toggle Right Win + grp:lshift_toggle Left Shift + grp:rshift_toggle Right Shift + grp:lctrl_toggle Left Ctrl + grp:rctrl_toggle Right Ctrl + grp:sclk_toggle Scroll Lock + grp:lctrl_lwin_rctrl_menu Left Ctrl+Left Win to first layout; Right Ctrl+Menu to second layout + grp:lctrl_lwin_toggle Left Ctrl+Left Win + lv3 Key to choose the 3rd level + lv3:switch Right Ctrl + lv3:menu_switch Menu + lv3:win_switch Any Win + lv3:lwin_switch Left Win + lv3:rwin_switch Right Win + lv3:alt_switch Any Alt + lv3:lalt_switch Left Alt + lv3:ralt_switch Right Alt + lv3:ralt_switch_multikey Right Alt; Shift+Right Alt as Compose + lv3:ralt_alt Right Alt never chooses 3rd level + lv3:enter_switch Enter on keypad + lv3:caps_switch Caps Lock + lv3:bksl_switch Backslash + lv3:lsgt_switch <Less/Greater> + lv3:caps_switch_latch Caps Lock; acts as onetime lock when pressed together with another 3rd-level chooser + lv3:bksl_switch_latch Backslash; acts as onetime lock when pressed together with another 3rd level chooser + lv3:lsgt_switch_latch <Less/Greater>; acts as onetime lock when pressed together with another 3rd level chooser + ctrl Ctrl position + ctrl:nocaps Caps Lock as Ctrl + ctrl:lctrl_meta Left Ctrl as Meta + ctrl:swapcaps Swap Ctrl and Caps Lock + ctrl:ac_ctrl At left of 'A' + ctrl:aa_ctrl At bottom left + ctrl:rctrl_ralt Right Ctrl as Right Alt + ctrl:menu_rctrl Menu as Right Ctrl + ctrl:swap_lalt_lctl Swap Left Alt with Left Ctrl + ctrl:swap_lwin_lctl Swap Left Win with Left Ctrl + ctrl:swap_rwin_rctl Swap Right Win with Right Ctrl + ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Left Alt + grp_led Use keyboard LED to show alternative layout + grp_led:num Num Lock + grp_led:caps Caps Lock + grp_led:scroll Scroll Lock + keypad Layout of numeric keypad + keypad:legacy Legacy + keypad:oss Unicode additions (arrows and math operators) + keypad:future Unicode additions (arrows and math operators; math operators on default level) + keypad:legacy_wang Legacy Wang 724 + keypad:oss_wang Wang 724 keypad with Unicode additions (arrows and math operators) + keypad:future_wang Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level) + keypad:hex Hexadecimal + keypad:atm ATM/phone-style + kpdl Numeric keypad Delete behavior + kpdl:dot Legacy key with dot + kpdl:comma Legacy key with comma + kpdl:dotoss Four-level key with dot + kpdl:dotoss_latin9 Four-level key with dot, Latin-9 only + kpdl:commaoss Four-level key with comma + kpdl:momayyezoss Four-level key with momayyez + kpdl:kposs Four-level key with abstract separators + kpdl:semi Semicolon on third level + caps Caps Lock behavior + caps:internal Caps Lock uses internal capitalization; Shift "pauses" Caps Lock + caps:internal_nocancel Caps Lock uses internal capitalization; Shift does not affect Caps Lock + caps:shift Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock + caps:shift_nocancel Caps Lock acts as Shift with locking; Shift does not affect Caps Lock + caps:capslock Caps Lock toggles normal capitalization of alphabetic characters + caps:shiftlock Caps Lock toggles ShiftLock (affects all keys) + caps:swapescape Swap ESC and Caps Lock + caps:escape Make Caps Lock an additional Esc + caps:backspace Make Caps Lock an additional Backspace + caps:super Make Caps Lock an additional Super + caps:hyper Make Caps Lock an additional Hyper + caps:menu Make Caps Lock an additional Menu key + caps:numlock Make Caps Lock an additional Num Lock + caps:ctrl_modifier Caps Lock is also a Ctrl + caps:none Caps Lock is disabled + altwin Alt/Win key behavior + altwin:menu Add the standard behavior to Menu key + altwin:meta_alt Alt and Meta are on Alt + altwin:alt_win Alt is mapped to Win and the usual Alt + altwin:ctrl_win Ctrl is mapped to Win and the usual Ctrl keys + altwin:ctrl_alt_win Ctrl is mapped to Alt; Alt is mapped to Win + altwin:meta_win Meta is mapped to Win + altwin:left_meta_win Meta is mapped to Left Win + altwin:hyper_win Hyper is mapped to Win + altwin:alt_super_win Alt is mapped to Right Win, Super to Menu + altwin:swap_lalt_lwin Left Alt is swapped with Left Win + altwin:swap_alt_win Alt is swapped with Win + altwin:prtsc_rwin Win is mapped to PrtSc and the usual Win + Compose key Position of Compose key + compose:ralt Right Alt + compose:lwin Left Win + compose:lwin-altgr 3rd level of Left Win + compose:rwin Right Win + compose:rwin-altgr 3rd level of Right Win + compose:menu Menu + compose:menu-altgr 3rd level of Menu + compose:lctrl Left Ctrl + compose:lctrl-altgr 3rd level of Left Ctrl + compose:rctrl Right Ctrl + compose:rctrl-altgr 3rd level of Right Ctrl + compose:caps Caps Lock + compose:caps-altgr 3rd level of Caps Lock + compose:102 <Less/Greater> + compose:102-altgr 3rd level of <Less/Greater> + compose:paus Pause + compose:prsc PrtSc + compose:sclk Scroll Lock + compat Miscellaneous compatibility options + numpad:pc Default numeric keypad keys + numpad:mac Numeric keypad always enters digits (as in macOS) + numpad:microsoft Num Lock on: digits; Shift for arrow keys. Num Lock off: arrow keys (as in Windows) + numpad:shift3 Shift does not cancel Num Lock, chooses 3rd level instead + srvrkeys:none Special keys (Ctrl+Alt+<key>) handled in a server + apple:alupckeys Apple Aluminium: emulate PC keys (PrtSc, Scroll Lock, Pause, Num Lock) + shift:breaks_caps Shift cancels Caps Lock + misc:typo Enable extra typographic characters + shift:both_capslock Both Shift together enable Caps Lock + shift:both_capslock_cancel Both Shift together enable Caps Lock; one Shift key disables it + shift:both_shiftlock Both Shift together enable Shift Lock + keypad:pointerkeys Shift + Num Lock enables PointerKeys + grab:break_actions Allow breaking grabs with keyboard actions (warning: security risk) + grab:debug Allow grab and window tree logging + currencysign Adding currency signs to certain keys + eurosign:e Euro on E + eurosign:2 Euro on 2 + eurosign:4 Euro on 4 + eurosign:5 Euro on 5 + rupeesign:4 Rupee on 4 + lv5 Key to choose 5th level + lv5:lsgt_switch_lock <Less/Greater> chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser + lv5:ralt_switch_lock Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser + lv5:lwin_switch_lock Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser + lv5:rwin_switch_lock Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser + nbsp Using space key to input non-breaking space + nbsp:none Usual space at any level + nbsp:level2 Non-breaking space at the 2nd level + nbsp:level3 Non-breaking space at the 3rd level + nbsp:level3s Non-breaking space at the 3rd level, nothing at the 4th level + nbsp:level3n Non-breaking space at the 3rd level, thin non-breaking space at the 4th level + nbsp:level4 Non-breaking space at the 4th level + nbsp:level4n Non-breaking space at the 4th level, thin non-breaking space at the 6th level + nbsp:level4nl Non-breaking space at the 4th level, thin non-breaking space at the 6th level (via Ctrl+Shift) + nbsp:zwnj2 Zero-width non-joiner at the 2nd level + nbsp:zwnj2zwj3 Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level + nbsp:zwnj2zwj3nb4 Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level + nbsp:zwnj2nb3 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level + nbsp:zwnj2nb3s Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, nothing at the 4th level + nbsp:zwnj2nb3zwj4 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, zero-width joiner at the 4th level + nbsp:zwnj2nb3nnb4 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, thin non-breaking space at the 4th level + nbsp:zwnj3zwj4 Zero-width non-joiner at the 3rd level, zero-width joiner at the 4th level + japan Japanese keyboard options + japan:kana_lock Kana Lock key is locking + japan:nicola_f_bs NICOLA-F style Backspace + japan:hztg_escape Make Zenkaku Hankaku an additional Esc + korean Korean Hangul/Hanja keys + korean:hw_keys Hardware Hangul/Hanja keys + korean:ralt_rctrl Right Alt as Hangul, right Ctrl as Hanja + korean:rctrl_ralt Right Ctrl as Hangul, right Alt as Hanja + esperanto Adding Esperanto supersigned letters + esperanto:qwerty To the corresponding key in a QWERTY layout + esperanto:dvorak To the corresponding key in a Dvorak layout + esperanto:colemak To the corresponding key in a Colemak layout + solaris Maintain key compatibility with old Solaris keycodes + solaris:sun_compat Sun Key compatibility + terminate Key sequence to kill the X server + terminate:ctrl_alt_bksp Ctrl+Alt+Backspace diff --git a/squashfs-root/usr/share/X11/xkb/rules/base.xml b/squashfs-root/usr/share/X11/xkb/rules/base.xml new file mode 100644 index 0000000..c7ad6a6 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/rules/base.xml @@ -0,0 +1,7230 @@ + + + + + + + pc101 + Generic 101-key PC + Generic + + + + + pc102 + Generic 101-key PC (intl.) + Generic + + + + + pc104 + Generic 104-key PC + Generic + + + + + pc105 + Generic 105-key PC (intl.) + Generic + + + + + dell101 + Dell 101-key PC + Dell + + + + + latitude + Dell Latitude laptop + Dell + + + + + dellm65 + Dell Precision M65 laptop + Dell + + + + + everex + Everex STEPnote + Everex + + + + + flexpro + Keytronic FlexPro + Keytronic + + + + + microsoft + Microsoft Natural + Microsoft + + + + + omnikey101 + Northgate OmniKey 101 + Northgate + + + + + winbook + Winbook Model XP5 + Generic + + + + + pc98 + PC-98 + Generic + + + + + a4techKB21 + A4Tech KB-21 + A4Tech + + + + + a4techKBS8 + A4Tech KBS-8 + A4Tech + + + + + a4_rfkb23 + A4Tech Wireless Desktop RFKB-23 + A4Tech + + + + + airkey + Acer AirKey V + Acer + + + + + azonaRF2300 + Azona RF2300 wireless Internet + Azona + + + + + scorpius + Advance Scorpius KI + Scorpius + + + + + brother + Brother Internet + Brother + + + + + btc5113rf + BTC 5113RF Multimedia + BTC + + + + + btc5126t + BTC 5126T + BTC + + + + + btc6301urf + BTC 6301URF + BTC + + + + + btc9000 + BTC 9000 + BTC + + + + + btc9000a + BTC 9000A + BTC + + + + + btc9001ah + BTC 9001AH + BTC + + + + + btc5090 + BTC 5090 + BTC + + + + + btc9019u + BTC 9019U + BTC + + + + + btc9116u + BTC 9116U Mini Wireless Internet and Gaming + + + + + cherryblue + Cherry Blue Line CyBo@rd + + + + + cherryblueb + Cherry CyMotion Master XPress + Cherry + + + + + cherrybluea + Cherry Blue Line CyBo@rd (alt.) + Cherry + + + + + cherrycyboard + Cherry CyBo@rd USB-Hub + Cherry + + + + + cherrycmexpert + Cherry CyMotion Expert + Cherry + + + + + cherrybunlim + Cherry B.UNLIMITED + Cherry + + + + + chicony + Chicony Internet + Chicony + + + + + chicony0108 + Chicony KU-0108 + Chicony + + + + + chicony0420 + Chicony KU-0420 + Chicony + + + + + chicony9885 + Chicony KB-9885 + Chicony + + + + + compaqeak8 + Compaq Easy Access + Compaq + + + + + compaqik7 + Compaq Internet (7 keys) + Compaq + + + + + compaqik13 + Compaq Internet (13 keys) + Compaq + + + + + compaqik18 + Compaq Internet (18 keys) + Compaq + + + + + cymotionlinux + Cherry CyMotion Master Linux + Cherry + + + + + armada + Compaq Armada laptop + Compaq + + + + + presario + Compaq Presario laptop + Compaq + + + + + ipaq + Compaq iPaq + Compaq + + + + + dell + Dell + Dell + + + + + dellsk8125 + Dell SK-8125 + Dell + + + + + dellsk8135 + Dell SK-8135 + Dell + + + + + dellusbmm + Dell USB Multimedia + Dell + + + + + inspiron + Dell Inspiron 6000/8000 laptop + Dell + + + + + precision_m + Dell Precision M laptop + Dell + + + + + dexxa + Dexxa Wireless Desktop + Dexxa + + + + + diamond + Diamond 9801/9802 + Diamond + + + + + dtk2000 + DTK2000 + + + + + ennyah_dkb1008 + Ennyah DKB-1008 + Ennyah + + + + + fscaa1667g + Fujitsu-Siemens Amilo laptop + Fujitsu-Siemens + + + + + genius + Genius Comfy KB-16M/Multimedia KWD-910 + Genius + + + + + geniuscomfy + Genius Comfy KB-12e + Genius + + + + + geniuscomfy2 + Genius Comfy KB-21e-Scroll + Genius + + + + + geniuskb19e + Genius KB-19e NB + Genius + + + + + geniuskkb2050hs + Genius KKB-2050HS + Genius + + + + + gyration + Gyration + Gyration + + + + + htcdream + HTC Dream + HTC + + + + + kinesis + Kinesis + Kinesis + + + + + logitech_base + Logitech + Logitech + + + + + logitech_g15 + Logitech G15 extra keys via G15daemon + Logitech + + + + + hpi6 + Hewlett-Packard Internet + Hewlett-Packard + + + + + hp250x + Hewlett-Packard NEC SK-2500 Multimedia + Hewlett-Packard + + + + + hpxe3gc + Hewlett-Packard Omnibook XE3 GC + Hewlett-Packard + + + + + hpxe3gf + Hewlett-Packard Omnibook XE3 GF + Hewlett-Packard + + + + + hpxt1000 + Hewlett-Packard Omnibook XT1000 + Hewlett-Packard + + + + + hpdv5 + Hewlett-Packard Pavilion dv5 + Hewlett-Packard + + + + + hpzt11xx + Hewlett-Packard Pavilion ZT1100 + Hewlett-Packard + + + + + hp500fa + Hewlett-Packard Omnibook 500 FA + Hewlett-Packard + + + + + hp5xx + Hewlett-Packard Omnibook 500 + Hewlett-Packard + + + + + hpnx9020 + Hewlett-Packard nx9020 + Hewlett-Packard + + + + + hp6000 + Hewlett-Packard Omnibook 6000/6100 + Hewlett-Packard + + + + + honeywell_euroboard + Honeywell Euroboard + Hewlett-Packard + + + + + hpmini110 + Hewlett-Packard Mini 110 laptop + Hewlett-Packard + + + + + rapidaccess + IBM Rapid Access + Lenovo (previously IBM) + + + + + rapidaccess2 + IBM Rapid Access II + Lenovo (previously IBM) + + + + + thinkpad + IBM ThinkPad 560Z/600/600E/A22E + Lenovo (previously IBM) + + + + + thinkpad60 + IBM ThinkPad R60/T60/R61/T61 + Lenovo (previously IBM) + + + + + thinkpadz60 + IBM ThinkPad Z60m/Z60t/Z61m/Z61t + Lenovo (previously IBM) + + + + + ibm_spacesaver + IBM Space Saver + Lenovo (previously IBM) + + + + + logiaccess + Logitech Access + Logitech + + + + + logiclx300 + Logitech Cordless Desktop LX-300 + Logitech + + + + + logii350 + Logitech Internet 350 + Logitech + 046d:c313 + + + + + logimel + Logitech Internet 350 + Logitech + + + + + logicd + Logitech Cordless Desktop + Logitech + + + + + logicd_it + Logitech Cordless Desktop iTouch + Logitech + + + + + logicd_nav + Logitech Cordless Desktop Navigator + Logitech + + + + + logicd_opt + Logitech Cordless Desktop Optical + Logitech + + + + + logicda + Logitech Cordless Desktop (alt.) + Logitech + + + + + logicdpa2 + Logitech Cordless Desktop Pro (2nd alt.) + Logitech + + + + + logicfn + Logitech Cordless Freedom/Desktop Navigator + Logitech + + + + + logicdn + Logitech Cordless Desktop Navigator + Logitech + + + + + logiitc + Logitech iTouch Cordless Y-RB6 + Logitech + + + + + logiik + Logitech Internet + Logitech + + + + + itouch + Logitech iTouch + Logitech + + + + + logicink + Logitech Internet Navigator + Logitech + + + + + logiex110 + Logitech Cordless Desktop EX110 + Logitech + + + + + logiinkse + Logitech iTouch Internet Navigator SE + Logitech + + + + + logiinkseusb + Logitech iTouch Internet Navigator SE USB + Logitech + + + + + logiultrax + Logitech Ultra-X + Logitech + + + + + logiultraxc + Logitech Ultra-X Cordless Media Desktop + Logitech + + + + + logidinovo + Logitech diNovo + Logitech + + + + + logidinovoedge + Logitech diNovo Edge + Logitech + + + + + mx1998 + Memorex MX1998 + Memorex + + + + + mx2500 + Memorex MX2500 EZ-Access + Memorex + + + + + mx2750 + Memorex MX2750 + Memorex + + + + + microsoft4000 + Microsoft Natural Ergonomic 4000 + Microsoft + + + + + microsoft7000 + Microsoft Natural Wireless Ergonomic 7000 + Microsoft + + + + + microsoftinet + Microsoft Internet + Microsoft + + + + + microsoftpro + Microsoft Natural Pro/Internet Pro + Microsoft + + + + + microsoftprousb + Microsoft Natural Pro USB/Internet Pro + Microsoft + + + + + microsoftprooem + Microsoft Natural Pro OEM + Microsoft + + + + + vsonku306 + ViewSonic KU-306 Internet + ViewSonic + + + + + microsoftprose + Microsoft Internet Pro (Swedish) + Microsoft + + + + + microsoftoffice + Microsoft Office Keyboard + Microsoft + + + + + microsoftmult + Microsoft Wireless Multimedia 1.0A + Microsoft + + + + + microsoftelite + Microsoft Natural Elite + Microsoft + + + + + microsoftccurve2k + Microsoft Comfort Curve 2000 + Microsoft + + + + + oretec + Ortek Multimedia/Internet MCK-800 + Ortek + + + + + propeller + Propeller Voyager KTEZ-1000 + KeyTronic + + + + + qtronix + QTronix Scorpius 98N+ + QTronix + + + + + samsung4500 + Samsung SDM 4500P + Samsung + + + + + samsung4510 + Samsung SDM 4510P + Samsung + + + + + sanwaskbkg3 + Sanwa Supply SKB-KG3 + Sanwa Supply Inc. + + + + + sk1300 + NEC SK-1300 + NEC + + + + + sk2500 + NEC SK-2500 + NEC + + + + + sk6200 + NEC SK-6200 + NEC + + + + + sk7100 + NEC SK-7100 + NEC + + + + + sp_inet + Super Power Multimedia + Generic + + + + + sven + SVEN Ergonomic 2500 + SVEN + + + + + sven303 + SVEN Slim 303 + SVEN + + + + + symplon + Symplon PaceBook tablet + Symplon + + + + + toshiba_s3000 + Toshiba Satellite S3000 + Toshiba + + + + + trust + Trust Wireless Classic + Trust + + + + + trustda + Trust Direct Access + Trust + + + + + trust_slimline + Trust Slimline + Trust + + + + + tm2020 + TypeMatrix EZ-Reach 2020 + TypeMatrix + + + + + tm2030PS2 + TypeMatrix EZ-Reach 2030 PS2 + TypeMatrix + + + + + tm2030USB + TypeMatrix EZ-Reach 2030 USB + TypeMatrix + + + + + tm2030USB-102 + TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) + TypeMatrix + + + + + tm2030USB-106 + TypeMatrix EZ-Reach 2030 USB (106:JP mode) + TypeMatrix + + + + + yahoo + Yahoo! Internet + Yahoo! + + + + + macbook78 + MacBook/MacBook Pro + Apple + + + + + macbook79 + MacBook/MacBook Pro (intl.) + Apple + + + + + macintosh + Macintosh + Apple + + + + + macintosh_old + Macintosh Old + Apple + + + + + macintosh_hhk + Happy Hacking for Mac + Fujitsu + + + + + acer_c300 + Acer C300 + Acer + + + + + acer_ferrari4k + Acer Ferrari 4000 + Acer + + + + + acer_laptop + Acer laptop + Acer + + + + + asus_laptop + Asus laptop + Asus + + + + + apple + Apple + Apple + + + + + apple_laptop + Apple laptop + Apple + + + + + applealu_ansi + Apple Aluminium (ANSI) + Apple + + + + + applealu_iso + Apple Aluminium (ISO) + Apple + + + + + applealu_jis + Apple Aluminium (JIS) + Apple + + + + + silvercrest + Silvercrest Multimedia Wireless + Silvercrest + + + + + emachines + eMachines m6800 laptop + eMachines + + + + + benqx + BenQ X-Touch + BenQ + + + + + benqx730 + BenQ X-Touch 730 + BenQ + + + + + benqx800 + BenQ X-Touch 800 + BenQ + + + + + hhk + Happy Hacking + Fujitsu + + + + + classmate + Classmate PC + Intel + + + + + olpc + OLPC + OLPC + + + + + sun_type7_usb + Sun Type 7 USB + Sun Microsystems + + + + + sun_type7_euro_usb + Sun Type 7 USB (European) + Sun Microsystems + + + + + sun_type7_unix_usb + Sun Type 7 USB (Unix) + Sun Microsystems + + + + + sun_type7_jp_usb + Sun Type 7 USB (Japanese)/Japanese 106-key + Sun Microsystems + + + + + sun_type6_usb + Sun Type 6/7 USB + Sun Microsystems + + + + + sun_type6_euro_usb + Sun Type 6/7 USB (European) + Sun Microsystems + + + + + sun_type6_unix_usb + Sun Type 6 USB (Unix) + Sun Microsystems + + + + + sun_type6_jp_usb + Sun Type 6 USB (Japanese) + Sun Microsystems + + + + + sun_type6_jp + Sun Type 6 (Japanese) + Sun Microsystems + + + + + targa_v811 + Targa Visionary 811 + Targa + + + + + unitekkb1925 + Unitek KB-1925 + Unitek Group + + + + + compalfl90 + FL90 + Compal Electronics + + + + + creativedw7000 + Creative Desktop Wireless 7000 + Creative + + + + + htcdream + Htc Dream phone + htc + + + + + teck227 + Truly Ergonomic 227 + Truly Ergonomic + + + + + teck229 + Truly Ergonomic 229 + Truly Ergonomic + + + + + apex300 + SteelSeries Apex 300 (Apex RAW) + SteelSeries + + + + + + + us + + en + English (US) + + eng + + + + + + chr + + chr + Cherokee + + chr + + + + + + euro + English (US, euro on 5) + + + + + intl + English (US, intl., with dead keys) + + + + + alt-intl + English (US, alt. intl.) + + + + + colemak + English (Colemak) + + + + + dvorak + English (Dvorak) + + + + + dvorak-intl + English (Dvorak, intl., with dead keys) + + + + + dvorak-alt-intl + English (Dvorak, alt. intl.) + + + + + dvorak-l + English (Dvorak, left-handed) + + + + + dvorak-r + English (Dvorak, right-handed) + + + + + dvorak-classic + English (classic Dvorak) + + + + + dvp + English (programmer Dvorak) + + + + + rus + + ru + Russian (US, phonetic) + + rus + + + + + + mac + English (Macintosh) + + + + + altgr-intl + English (intl., with AltGr dead keys) + + eng + fra + ger + + + + + + olpc2 + English (the divide/multiply keys toggle the layout) + + + + + hbs + Serbo-Croatian (US) + + eng + bos + hbs + hrv + srp + + + + + + workman + English (Workman) + + + + + workman-intl + English (Workman, intl., with dead keys) + + + + + + + af + + fa + Afghani + + + + + ps + + ps + Pashto + + pus + + + + + + uz + + uz + Uzbek (Afghanistan) + + uzb + + + + + + olpc-ps + + ps + Pashto (Afghanistan, OLPC) + + pus + + + + + + fa-olpc + + fa + Persian (Afghanistan, Dari OLPC) + + + + + uz-olpc + + uz + Uzbek (Afghanistan, OLPC) + + uzb + + + + + + + + ara + + ar + Arabic + + AE + BH + DZ + EG + EH + JO + KW + LB + LY + MA + MR + OM + PS + QA + SA + SD + SY + TN + YE + + + ara + + + + + + azerty + Arabic (AZERTY) + + + + + azerty_digits + Arabic (AZERTY/digits) + + + + + digits + Arabic (digits) + + + + + qwerty + Arabic (QWERTY) + + + + + qwerty_digits + Arabic (qwerty/digits) + + + + + buckwalter + Arabic (Buckwalter) + + + + + mac + Arabic (Macintosh) + + + + + + + al + + sq + Albanian + + alb + + + + + + plisi + Albanian (Plisi) + + + + + + + am + + hy + Armenian + + hye + + + + + + phonetic + Armenian (phonetic) + + + + + phonetic-alt + Armenian (alt. phonetic) + + + + + eastern + Armenian (eastern) + + + + + western + Armenian (western) + + + + + eastern-alt + Armenian (alt. eastern) + + + + + + + at + + de + German (Austria) + + ger + + + + + + nodeadkeys + German (Austria, no dead keys) + + + + + sundeadkeys + German (Austria, with Sun dead keys) + + + + + mac + German (Austria, Macintosh) + + + + + + + au + + en + English (Australian) + + eng + + + + + + az + + az + Azerbaijani + + aze + + + + + + cyrillic + Azerbaijani (Cyrillic) + + + + + + + by + + by + Belarusian + + bel + + + + + + legacy + Belarusian (legacy) + + + + + latin + Belarusian (Latin) + + + + + + + be + + be + Belgian + + ger + nld + fra + + + + + + oss + Belgian (alt.) + + + + + oss_latin9 + Belgian (alt., Latin-9 only) + + + + + oss_sundeadkeys + Belgian (alt., with Sun dead keys) + + + + + iso-alternate + Belgian (alt. ISO) + + + + + nodeadkeys + Belgian (no dead keys) + + + + + sundeadkeys + Belgian (with Sun dead keys) + + + + + wang + Belgian (Wang 724 AZERTY) + + + + + + + bd + + bn + Bangla + + ben + + sat + + + + + + probhat + Bangla (Probhat) + + + + + + + in + + in + Indian + + + + + ben + + bn + Bangla (India) + + ben + + sat + + + + + + ben_probhat + + bn + Bangla (India, Probhat) + + ben + + sat + + + + + + ben_baishakhi + Bangla (India, Baishakhi) + + ben + + sat + + + + + + ben_bornona + Bangla (India, Bornona) + + ben + + sat + + + + + + ben_gitanjali + Bangla (India, Uni Gitanjali) + + ben + + sat + + + + + + ben_inscript + Bangla (India, Baishakhi Inscript) + + ben + + sat + + + + + + eeyek + Manipuri (Eeyek) + + mni + + + + + + guj + + gu + Gujarati + + guj + + + + + + guru + + pa + Punjabi (Gurmukhi) + + pan + + + + + + jhelum + + pa + Punjabi (Gurmukhi Jhelum) + + pan + + + + + + kan + + kn + Kannada + + kan + + + + + + kan-kagapa + + kn + Kannada (KaGaPa phonetic) + + kan + + + + + + mal + + ml + Malayalam + + mal + + + + + + mal_lalitha + + ml + Malayalam (Lalitha) + + mal + + + + + + mal_enhanced + + ml + Malayalam (enhanced Inscript, with rupee) + + mal + + + + + + ori + + or + Oriya + + ori + + sat + + + + + + olck + + sat + Ol Chiki + + + sat + + + + + + tam_unicode + + ta + Tamil (Unicode) + + tam + + + + + + tam_keyboard_with_numerals + + ta + Tamil (keyboard with numerals) + + tam + + + + + + tam_TAB + + ta + Tamil (TAB typewriter) + + tam + + + + + + tam_TSCII + + ta + Tamil (TSCII typewriter) + + tam + + + + + + tam + + ta + Tamil + + tam + + + + + + tel + + te + Telugu + + tel + + + + + + tel-kagapa + + te + Telugu (KaGaPa phonetic) + + tel + + + + + + tel-sarala + + te + Telugu (Sarala) + + tel + + + + + + urd-phonetic + + ur + Urdu (phonetic) + + urd + + + + + + urd-phonetic3 + + ur + Urdu (alt. phonetic) + + urd + + + + + + urd-winkeys + + ur + Urdu (Win keys) + + urd + + + + + + bolnagri + + hi + Hindi (Bolnagri) + + hin + + + + + + hin-wx + + hi + Hindi (Wx) + + hin + + + + + + hin-kagapa + + hi + Hindi (KaGaPa phonetic) + + hin + + + + + + san-kagapa + + sa + Sanskrit (KaGaPa phonetic) + + san + + + + + + mar-kagapa + + mr + Marathi (KaGaPa phonetic) + + mar + + + + + + eng + + en + English (India, with rupee) + + eng + + + + + + + + ba + + bs + Bosnian + + bos + + + + + + alternatequotes + Bosnian (with guillemets) + + + + + unicode + Bosnian (with Bosnian digraphs) + + + + + unicodeus + Bosnian (US, with Bosnian digraphs) + + + + + us + Bosnian (US, with Bosnian letters) + + + + + + + br + + pt + Portuguese (Brazil) + + por + + + + + + nodeadkeys + Portuguese (Brazil, no dead keys) + + + + + dvorak + Portuguese (Brazil, Dvorak) + + + + + nativo + Portuguese (Brazil, Nativo) + + + + + nativo-us + Portuguese (Brazil, Nativo for US keyboards) + + + + + nativo-epo + Esperanto (Brazil, Nativo) + + epo + + + + + + thinkpad + Portuguese (Brazil, IBM/Lenovo ThinkPad) + + + + + + + bg + + bg + Bulgarian + + bul + + + + + + phonetic + Bulgarian (traditional phonetic) + + + + + bas_phonetic + Bulgarian (new phonetic) + + + + + + + dz + la + Berber (Algeria, Latin) + + + + + ber + ber + Berber (Algeria, Tifinagh) + + ber + + + + + + ar + ar + Arabic (Algeria) + + ara + + + + + + + + ma + + ar + Arabic (Morocco) + + + + + french + + fr + French (Morocco) + + fra + + + + + + tifinagh + + ber + Berber (Morocco, Tifinagh) + + ber + + + + + + tifinagh-alt + + ber + Berber (Morocco, Tifinagh alt.) + + ber + + + + + + tifinagh-alt-phonetic + + ber + Berber (Morocco, Tifinagh alt. phonetic) + + ber + + + + + + tifinagh-extended + + ber + Berber (Morocco, Tifinagh extended) + + ber + + + + + + tifinagh-phonetic + + ber + Berber (Morocco, Tifinagh phonetic) + + ber + + + + + + tifinagh-extended-phonetic + + ber + Berber (Morocco, Tifinagh extended phonetic) + + ber + + + + + + + + cm + + cm + English (Cameroon) + + eng + + + + + + french + French (Cameroon) + + fra + + + + + + qwerty + Cameroon Multilingual (QWERTY) + + eng + bas + nmg + fub + ewo + xmd + mfh + bkm + ozm + lns + sox + pny + wes + lem + nyj + mfk + mcp + ass + xed + dua + anv + bum + btb + bfd + azo + ken + yam + yat + yas + + + + + + azerty + Cameroon Multilingual (AZERTY) + + fra + bas + nmg + fub + ewo + xmd + mfh + bkm + ozm + lns + sox + pny + wes + lem + nyj + mfk + mcp + ass + xed + dua + anv + bum + btb + bfd + azo + ken + yam + yat + yas + + + + + + dvorak + Cameroon Multilingual (Dvorak) + + + + + mmuock + Mmuock + + + + + + + mm + + my + Burmese + + mya + + + + + + + ca + + fr + French (Canada) + + fra + + + + + + fr-dvorak + + fr + French (Canada, Dvorak) + + + + + fr-legacy + + fr + French (Canada, legacy) + + + + + multix + Canadian Multilingual + + + + + multi + Canadian Multilingual (1st part) + + + + + multi-2gr + Canadian Multilingual (2nd part) + + + + + ike + + ike + Inuktitut + + iku + + + + + + eng + + en + English (Canada) + + eng + + + + + + + + cd + + fr + French (Democratic Republic of the Congo) + + fra + + + + + + + cn + + zh + Chinese + + chi + + + + + + tib + Tibetan + + tib + + + + + + tib_asciinum + Tibetan (with ASCII numerals) + + tib + + + + + + ug + ug + Uyghur + + uig + + + + + + + + hr + + hr + Croatian + + hrv + + + + + + alternatequotes + Croatian (with guillemets) + + + + + unicode + Croatian (with Croatian digraphs) + + + + + unicodeus + Croatian (US, with Croatian digraphs) + + + + + us + Croatian (US, with Croatian letters) + + + + + + + cz + + cs + Czech + + cze + + + + + + bksl + Czech (with <\|> key) + + + + + qwerty + Czech (QWERTY) + + + + + qwerty_bksl + Czech (QWERTY, extended backslash) + + + + + ucw + Czech (UCW, only accented letters) + + + + + dvorak-ucw + Czech (US, Dvorak, UCW support) + + + + + rus + + ru + Russian (Czech, phonetic) + + rus + + + + + + + + dk + + da + Danish + + dan + + + + + + nodeadkeys + Danish (no dead keys) + + + + + winkeys + Danish (Win keys) + + + + + mac + Danish (Macintosh) + + + + + mac_nodeadkeys + Danish (Macintosh, no dead keys) + + + + + dvorak + Danish (Dvorak) + + + + + + + nl + + nl + Dutch + + nld + + + + + + sundeadkeys + Dutch (with Sun dead keys) + + + + + mac + Dutch (Macintosh) + + + + + std + Dutch (standard) + + + + + + + bt + + dz + Dzongkha + + dzo + + + + + + ee + + et + Estonian + + est + + + + + + nodeadkeys + Estonian (no dead keys) + + + + + dvorak + Estonian (Dvorak) + + + + + us + Estonian (US, with Estonian letters) + + + + + + + ir + + fa + Persian + + per + + + + + + pes_keypad + Persian (with Persian keypad) + + + + + ku + + ku + Kurdish (Iran, Latin Q) + + kur + + + + + + ku_f + + ku + Kurdish (Iran, F) + + kur + + + + + + ku_alt + + ku + Kurdish (Iran, Latin Alt-Q) + + kur + + + + + + ku_ara + + ku + Kurdish (Iran, Arabic-Latin) + + kur + + + + + + + + iq + + ar + Iraqi + + ara + kur + + + + + + ku + + ku + Kurdish (Iraq, Latin Q) + + kur + + + + + + ku_f + + ku + Kurdish (Iraq, F) + + kur + + + + + + ku_alt + + ku + Kurdish (Iraq, Latin Alt-Q) + + kur + + + + + + ku_ara + + ku + Kurdish (Iraq, Arabic-Latin) + + kur + + + + + + + + fo + + fo + Faroese + + fao + + + + + + nodeadkeys + Faroese (no dead keys) + + + + + + + fi + + fi + Finnish + + fin + + + + + + classic + Finnish (classic) + + + + + nodeadkeys + Finnish (classic, no dead keys) + + + + + winkeys + Finnish (Winkeys) + + + + + smi + Northern Saami (Finland) + + sme + + + + + + mac + Finnish (Macintosh) + + + + + + + fr + + fr + French + + fra + + + + + + nodeadkeys + French (no dead keys) + + + + + sundeadkeys + French (with Sun dead keys) + + + + + oss + French (alt.) + + + + + oss_latin9 + French (alt., Latin-9 only) + + + + + oss_nodeadkeys + French (alt., no dead keys) + + + + + oss_sundeadkeys + French (alt., with Sun dead keys) + + + + + latin9 + French (legacy, alt.) + + + + + latin9_nodeadkeys + French (legacy, alt., no dead keys) + + + + + latin9_sundeadkeys + French (legacy, alt., with Sun dead keys) + + + + + bepo + French (Bepo, ergonomic, Dvorak way) + + + + + bepo_latin9 + French (Bepo, ergonomic, Dvorak way, Latin-9 only) + + + + + dvorak + French (Dvorak) + + + + + mac + French (Macintosh) + + + + + azerty + French (AZERTY) + + + + + bre + French (Breton) + + + + + oci + Occitan + + oci + + + + + + geo + Georgian (France, AZERTY Tskapo) + + geo + + + + + + + + gh + + en + English (Ghana) + + eng + + + + + + generic + English (Ghana, multilingual) + + + + + akan + + ak + Akan + + aka + + + + + + ewe + + ee + Ewe + + ewe + + + + + + fula + + ff + Fula + + ful + + + + + + ga + + gaa + Ga + + gaa + + + + + + hausa + + ha + Hausa (Ghana) + + hau + + + + + + avn + + avn + Avatime + + avn + + + + + + gillbt + English (Ghana, GILLBT) + + + + + + + gn + + fr + French (Guinea) + + fra + + + + + + + ge + + ka + Georgian + + geo + + + + + + ergonomic + Georgian (ergonomic) + + + + + mess + Georgian (MESS) + + + + + ru + + ru + Russian (Georgia) + + rus + + + + + + os + Ossetian (Georgia) + + oss + + + + + + + + de + + de + German + + ger + + + + + + deadacute + German (dead acute) + + + + + deadgraveacute + German (dead grave acute) + + + + + nodeadkeys + German (no dead keys) + + + + + T3 + German (T3) + + + + + ro + Romanian (Germany) + + rum + + + + + + ro_nodeadkeys + Romanian (Germany, no dead keys) + + rum + + + + + + dvorak + German (Dvorak) + + + + + sundeadkeys + German (with Sun dead keys) + + + + + neo + German (Neo 2) + + + + + mac + German (Macintosh) + + + + + mac_nodeadkeys + German (Macintosh, no dead keys) + + + + + dsb + Lower Sorbian + + dsb + + + + + + dsb_qwertz + Lower Sorbian (QWERTZ) + + dsb + + + + + + qwerty + German (QWERTY) + + + + + tr + Turkish (Germany) + + tr + + + + + + ru + + ru + Russian (Germany, phonetic) + + rus + + + + + + deadtilde + German (dead tilde) + + + + + + + gr + + gr + Greek + + gre + + + + + + simple + Greek (simple) + + + + + extended + Greek (extended) + + + + + nodeadkeys + Greek (no dead keys) + + + + + polytonic + Greek (polytonic) + + + + + + + hu + + hu + Hungarian + + hun + + + + + + standard + Hungarian (standard) + + + + + nodeadkeys + Hungarian (no dead keys) + + + + + qwerty + Hungarian (QWERTY) + + + + + 101_qwertz_comma_dead + Hungarian (101/QWERTZ/comma/dead keys) + + + + + 101_qwertz_comma_nodead + Hungarian (101/QWERTZ/comma/no dead keys) + + + + + 101_qwertz_dot_dead + Hungarian (101/QWERTZ/dot/dead keys) + + + + + 101_qwertz_dot_nodead + Hungarian (101/QWERTZ/dot/no dead keys) + + + + + 101_qwerty_comma_dead + Hungarian (101/QWERTY/comma/dead keys) + + + + + 101_qwerty_comma_nodead + Hungarian (101/QWERTY/comma/no dead keys) + + + + + 101_qwerty_dot_dead + Hungarian (101/QWERTY/dot/dead keys) + + + + + 101_qwerty_dot_nodead + Hungarian (101/QWERTY/dot/no dead keys) + + + + + 102_qwertz_comma_dead + Hungarian (102/QWERTZ/comma/dead keys) + + + + + 102_qwertz_comma_nodead + Hungarian (102/QWERTZ/comma/no dead keys) + + + + + 102_qwertz_dot_dead + Hungarian (102/QWERTZ/dot/dead keys) + + + + + 102_qwertz_dot_nodead + Hungarian (102/QWERTZ/dot/no dead keys) + + + + + 102_qwerty_comma_dead + Hungarian (102/QWERTY/comma/dead keys) + + + + + 102_qwerty_comma_nodead + Hungarian (102/QWERTY/comma/no dead keys) + + + + + 102_qwerty_dot_dead + Hungarian (102/QWERTY/dot/dead keys) + + + + + 102_qwerty_dot_nodead + Hungarian (102/QWERTY/dot/no dead keys) + + + + + + + is + + is + Icelandic + + ice + + + + + + Sundeadkeys + Icelandic (with Sun dead keys) + + + + + nodeadkeys + Icelandic (no dead keys) + + + + + mac_legacy + Icelandic (Macintosh, legacy) + + + + + mac + Icelandic (Macintosh) + + + + + dvorak + Icelandic (Dvorak) + + + + + + + il + + he + Hebrew + + heb + + + + + + lyx + Hebrew (lyx) + + + + + phonetic + Hebrew (phonetic) + + + + + biblical + Hebrew (Biblical, Tiro) + + + + + + + it + + it + Italian + + ita + + + + + + nodeadkeys + Italian (no dead keys) + + + + + winkeys + Italian (Winkeys) + + + + + mac + Italian (Macintosh) + + + + + us + Italian (US, with Italian letters) + + + + + geo + Georgian (Italy) + + geo + + + + + + ibm + Italian (IBM 142) + + + + + + + jp + + ja + Japanese + + jpn + + + + + + kana + Japanese (Kana) + + + + + kana86 + Japanese (Kana 86) + + + + + OADG109A + Japanese (OADG 109A) + + + + + mac + Japanese (Macintosh) + + + + + dvorak + Japanese (Dvorak) + + + + + + + kg + + ki + Kyrgyz + + kir + + + + + + phonetic + Kyrgyz (phonetic) + + + + + + + kh + + km + Khmer (Cambodia) + + khm + + + + + + + kz + + kk + Kazakh + + kaz + + + + + + ruskaz + + ru + Russian (Kazakhstan, with Kazakh) + + kaz + rus + + + + + + kazrus + Kazakh (with Russian) + + kaz + rus + + + + + + ext + Kazakh (extended) + + kaz + + + + + + + + la + + lo + Lao + + lao + + + + + + stea + Lao (STEA proposed standard layout) + + lao + + + + + + + + latam + + es + Spanish (Latin American) + + AR + BO + CL + CO + CR + CU + DO + EC + GT + HN + HT + MX + NI + PA + PE + PR + PY + SV + US + UY + VE + + + spa + + + + + + nodeadkeys + Spanish (Latin American, no dead keys) + + + + + deadtilde + Spanish (Latin American, dead tilde) + + + + + sundeadkeys + Spanish (Latin American, with Sun dead keys) + + + + + dvorak + Spanish (Latin American, Dvorak) + + + + + + + lt + + lt + Lithuanian + + lit + + + + + + std + Lithuanian (standard) + + + + + us + Lithuanian (US, with Lithuanian letters) + + + + + ibm + Lithuanian (IBM LST 1205-92) + + + + + lekp + Lithuanian (LEKP) + + + + + lekpa + Lithuanian (LEKPa) + + + + + + + lv + + lv + Latvian + + lav + + + + + + apostrophe + Latvian (apostrophe) + + + + + tilde + Latvian (tilde) + + + + + fkey + Latvian (F) + + + + + modern + Latvian (modern) + + + + + ergonomic + Latvian (ergonomic, ŪGJRMV) + + + + + adapted + Latvian (adapted) + + + + + + + mao + + mi + Maori + + mao + + + + + + + me + + sr + Montenegrin + + srp + + + + + + cyrillic + Montenegrin (Cyrillic) + + + + + cyrillicyz + Montenegrin (Cyrillic, ZE and ZHE swapped) + + + + + latinunicode + Montenegrin (Latin, Unicode) + + + + + latinyz + Montenegrin (Latin, QWERTY) + + + + + latinunicodeyz + Montenegrin (Latin, Unicode, QWERTY) + + + + + cyrillicalternatequotes + Montenegrin (Cyrillic with guillemets) + + + + + latinalternatequotes + Montenegrin (Latin with guillemets) + + + + + + + mk + + mk + Macedonian + + mkd + + + + + + nodeadkeys + Macedonian (no dead keys) + + + + + + + mt + + mt + Maltese + + mlt + + + + + + us + Maltese (with US layout) + + + + + + + mn + + mn + Mongolian + + mon + + + + + + + no + + no + Norwegian + + nor + nob + nno + + + + + + nodeadkeys + Norwegian (no dead keys) + + + + + winkeys + Norwegian (Win keys) + + + + + dvorak + Norwegian (Dvorak) + + + + + smi + Northern Saami (Norway) + + sme + + + + + + smi_nodeadkeys + Northern Saami (Norway, no dead keys) + + sme + + + + + + mac + Norwegian (Macintosh) + + + + + mac_nodeadkeys + Norwegian (Macintosh, no dead keys) + + + + + colemak + Norwegian (Colemak) + + + + + + + pl + + pl + Polish + + pol + + + + + + legacy + Polish (legacy) + + + + + qwertz + Polish (QWERTZ) + + + + + dvorak + Polish (Dvorak) + + + + + dvorak_quotes + Polish (Dvorak, with Polish quotes on quotemark key) + + + + + dvorak_altquotes + Polish (Dvorak, with Polish quotes on key 1) + + + + + csb + Kashubian + + csb + + + + + + szl + Silesian + + szl + + + + + + ru_phonetic_dvorak + + ru + Russian (Poland, phonetic Dvorak) + + rus + + + + + + dvp + Polish (programmer Dvorak) + + + + + + + pt + + pt + Portuguese + + por + + + + + + nodeadkeys + Portuguese (no dead keys) + + + + + sundeadkeys + Portuguese (with Sun dead keys) + + + + + mac + Portuguese (Macintosh) + + + + + mac_nodeadkeys + Portuguese (Macintosh, no dead keys) + + + + + mac_sundeadkeys + Portuguese (Macintosh, with Sun dead keys) + + + + + nativo + Portuguese (Nativo) + + + + + nativo-us + Portuguese (Nativo for US keyboards) + + + + + nativo-epo + Esperanto (Portugal, Nativo) + + epo + + + + + + + + ro + + ro + Romanian + + rum + + + + + + cedilla + Romanian (cedilla) + + + + + std + Romanian (standard) + + + + + std_cedilla + Romanian (standard cedilla) + + + + + winkeys + Romanian (Win keys) + + + + + + + ru + + ru + Russian + + rus + + + + + + phonetic + Russian (phonetic) + + + + + phonetic_winkeys + Russian (phonetic, with Win keys) + + + + + typewriter + Russian (typewriter) + + + + + legacy + Russian (legacy) + + + + + typewriter-legacy + Russian (typewriter, legacy) + + + + + tt + Tatar + + tat + + + + + + os_legacy + Ossetian (legacy) + + oss + + + + + + os_winkeys + Ossetian (Win keys) + + oss + + + + + + cv + Chuvash + + chv + + + + + + cv_latin + Chuvash (Latin) + + chv + + + + + + udm + Udmurt + + udm + + + + + + kom + Komi + + kom + + + + + + sah + Yakut + + sah + + + + + + xal + Kalmyk + + xal + + + + + + dos + Russian (DOS) + + + + + mac + Russian (Macintosh) + + + + + srp + Serbian (Russia) + + rus + srp + + + + + + bak + Bashkirian + + bak + + + + + + chm + Mari + + chm + + + + + + phonetic_azerty + Russian (phonetic, AZERTY) + + + + + phonetic_dvorak + Russian (phonetic, Dvorak) + + + + + phonetic_fr + Russian (phonetic, French) + + + + + + + rs + + sr + Serbian + + srp + + + + + + yz + Serbian (Cyrillic, ZE and ZHE swapped) + + + + + latin + Serbian (Latin) + + + + + latinunicode + Serbian (Latin, Unicode) + + + + + latinyz + Serbian (Latin, QWERTY) + + + + + latinunicodeyz + Serbian (Latin, Unicode, QWERTY) + + + + + alternatequotes + Serbian (Cyrillic with guillemets) + + + + + latinalternatequotes + Serbian (Latin with guillemets) + + + + + rue + Pannonian Rusyn + + rue + + + + + + + + si + + sl + Slovenian + + slv + + + + + + alternatequotes + Slovenian (with guillemets) + + + + + us + Slovenian (US, with Slovenian letters) + + + + + + + sk + + sk + Slovak + + slo + + + + + + bksl + Slovak (extended backslash) + + + + + qwerty + Slovak (QWERTY) + + + + + qwerty_bksl + Slovak (QWERTY, extended backslash) + + + + + + + es + + es + Spanish + + spa + + + + + + nodeadkeys + Spanish (no dead keys) + + + + + winkeys + Spanish (Win keys) + + + + + deadtilde + Spanish (dead tilde) + + + + + sundeadkeys + Spanish (with Sun dead keys) + + + + + dvorak + Spanish (Dvorak) + + + + + ast + ast + Asturian (Spain, with bottom-dot H and bottom-dot L) + + ast + + + + + + cat + ca + Catalan (Spain, with middle-dot L) + + cat + + + + + + mac + Spanish (Macintosh) + + + + + + + se + + sv + Swedish + + swe + + + + + + nodeadkeys + Swedish (no dead keys) + + + + + dvorak + Swedish (Dvorak) + + + + + rus + + ru + Russian (Sweden, phonetic) + + rus + + + + + + rus_nodeadkeys + + ru + Russian (Sweden, phonetic, no dead keys) + + rus + + + + + + smi + Northern Saami (Sweden) + + sme + + + + + + mac + Swedish (Macintosh) + + + + + svdvorak + Swedish (Svdvorak) + + + + + us_dvorak + Swedish (based on US Intl. Dvorak) + + + + + swl + Swedish Sign Language + + swl + + + + + + + + ch + + de + German (Switzerland) + + ger + gsw + + + + + + legacy + German (Switzerland, legacy) + + + + + de_nodeadkeys + + de + German (Switzerland, no dead keys) + + + + + de_sundeadkeys + + de + German (Switzerland, with Sun dead keys) + + + + + fr + + fr + French (Switzerland) + + fra + + + + + + fr_nodeadkeys + + fr + French (Switzerland, no dead keys) + + fra + + + + + + fr_sundeadkeys + + fr + French (Switzerland, with Sun dead keys) + + fra + + + + + + fr_mac + + fr + French (Switzerland, Macintosh) + + fra + + + + + + de_mac + + de + German (Switzerland, Macintosh) + + + + + + + sy + + ar + Arabic (Syria) + + syr + + + + + + syc + + syc + Syriac + + + + + syc_phonetic + + syc + Syriac (phonetic) + + + + + ku + + ku + Kurdish (Syria, Latin Q) + + kur + + + + + + ku_f + + ku + Kurdish (Syria, F) + + kur + + + + + + ku_alt + + ku + Kurdish (Syria, Latin Alt-Q) + + kur + + + + + + + + tj + + tg + Tajik + + tgk + + + + + + legacy + Tajik (legacy) + + + + + + + lk + + si + Sinhala (phonetic) + + sin + + + + + + tam_unicode + + ta + Tamil (Sri Lanka, Unicode) + + tam + + + + + + tam_TAB + Tamil (Sri Lanka, TAB Typewriter) + + tam + + + + + + us + us + Sinhala (US, with Sinhala letters) + + + + + + + th + + th + Thai + + tha + + + + + + tis + Thai (TIS-820.2538) + + + + + pat + Thai (Pattachote) + + + + + + + tr + + tr + Turkish + + tur + + + + + + f + Turkish (F) + + + + + alt + Turkish (Alt-Q) + + + + + sundeadkeys + Turkish (with Sun dead keys) + + + + + ku + + ku + Kurdish (Turkey, Latin Q) + + kur + + + + + + ku_f + + ku + Kurdish (Turkey, F) + + kur + + + + + + ku_alt + + ku + Kurdish (Turkey, Latin Alt-Q) + + kur + + + + + + intl + Turkish (intl., with dead keys) + + + + + crh + + crh + Crimean Tatar (Turkish Q) + + crh + + + + + + crh_f + + crh + Crimean Tatar (Turkish F) + + crh + + + + + + crh_alt + + crh + Crimean Tatar (Turkish Alt-Q) + + crh + + + + + + + + tw + + zh + Taiwanese + + fox + + + + + + indigenous + Taiwanese (indigenous) + + ami + tay + bnn + ckv + pwn + pyu + dru + ais + ssf + tao + tsu + trv + xnb + sxr + uun + fos + + + + + + saisiyat + + xsy + Saisiyat (Taiwan) + + xsy + + + + + + + + ua + + uk + Ukrainian + + ukr + + + + + + phonetic + Ukrainian (phonetic) + + + + + typewriter + Ukrainian (typewriter) + + + + + winkeys + Ukrainian (Win keys) + + + + + legacy + Ukrainian (legacy) + + + + + rstu + Ukrainian (standard RSTU) + + + + + rstu_ru + Russian (Ukraine, standard RSTU) + + + + + homophonic + Ukrainian (homophonic) + + + + + + + gb + + en + English (UK) + + eng + + + + + + extd + English (UK, extended, with Win keys) + + + + + intl + English (UK, intl., with dead keys) + + + + + dvorak + English (UK, Dvorak) + + + + + dvorakukp + English (UK, Dvorak, with UK punctuation) + + + + + mac + English (UK, Macintosh) + + + + + mac_intl + English (UK, intl., Macintosh) + + + + + colemak + English (UK, Colemak) + + + + + + + uz + + uz + Uzbek + + uzb + + + + + + latin + Uzbek (Latin) + + + + + + + vn + + vi + Vietnamese + + vie + + + + + + + kr + + ko + Korean + + kor + + + + + + kr104 + Korean (101/104 key compatible) + + + + + + + nec_vndr/jp + + ja + Japanese (PC-98) + + JP + + + jpn + + + + + + + ie + + ie + Irish + + eng + + + + + + CloGaelach + CloGaelach + + gle + + + + + + UnicodeExpert + Irish (UnicodeExpert) + + + + + ogam + Ogham + + sga + + + + + + ogam_is434 + Ogham (IS434) + + sga + + + + + + + + pk + + ur + Urdu (Pakistan) + + urd + + + + + + urd-crulp + Urdu (Pakistan, CRULP) + + + + + urd-nla + Urdu (Pakistan, NLA) + + + + + ara + ar + Arabic (Pakistan) + + ara + + + + + + snd + + sd + Sindhi + + snd + + + + + + + + mv + + dv + Dhivehi + + div + + + + + + + za + + en + English (South Africa) + + eng + + + + + + epo + + eo + Esperanto + + epo + + + + + + legacy + Esperanto (displaced semicolon and quote, obsolete) + + + + + + + np + + ne + Nepali + + nep + + sat + + + + + + ng + + en + English (Nigeria) + + eng + + + + + + igbo + + ig + Igbo + + ibo + + + + + + yoruba + + yo + Yoruba + + yor + + + + + + hausa + + ha + Hausa (Nigeria) + + hau + + + + + + + + et + + am + Amharic + + amh + + + + + + + sn + + wo + Wolof + + wol + + + + + + + brai + + brl + Braille + + + + + left_hand + Braille (left-handed) + + + + + right_hand + Braille (right-handed) + + + + + + + tm + + tk + Turkmen + + tuk + + + + + + alt + Turkmen (Alt-Q) + + + + + + + ml + + bm + Bambara + + bam + + + + + + fr-oss + + fr + French (Mali, alt.) + + fra + + + + + + us-mac + + en + English (Mali, US, Macintosh) + + eng + + + + + + us-intl + + en + English (Mali, US, intl.) + + eng + + + + + + + + tz + + sw + Swahili (Tanzania) + + swa + + + + + + tg + fr-tg + French (Togo) + + fra + ajg + blo + kpo + ewe + fon + fue + gej + ife + kbp + las + dop + mfg + nmz + bud + gng + kdh + soy + + + + + + ke + + sw + Swahili (Kenya) + + swa + + + + + + kik + + ki + Kikuyu + + kik + + + + + + + + bw + + tn + Tswana + + tsn + + + + + + ph + + ph + Filipino + + eng + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + qwerty-bay + Filipino (QWERTY, Baybayin) + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + capewell-dvorak + Filipino (Capewell-Dvorak, Latin) + + + + + capewell-dvorak-bay + Filipino (Capewell-Dvorak, Baybayin) + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + capewell-qwerf2k6 + Filipino (Capewell-QWERF 2006, Latin) + + + + + capewell-qwerf2k6-bay + Filipino (Capewell-QWERF 2006, Baybayin) + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + colemak + Filipino (Colemak, Latin) + + + + + colemak-bay + Filipino (Colemak, Baybayin) + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + dvorak + Filipino (Dvorak, Latin) + + + + + dvorak-bay + Filipino (Dvorak, Baybayin) + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + + + md + md + Moldavian + + rum + + + + + + gag + gag + Moldavian (Gagauz) + + gag + + + + + + + + id + id + Indonesian (Jawi) + + ind + msa + min + ace + bjn + tsg + mfa + + + + + + + my + ms + Malay (Jawi, Arabic Keyboard) + + ind + msa + min + ace + bjn + tsg + mfa + + + + + + phonetic + Malay (Jawi, phonetic) + + + + + + + + + + grp + Switching to another layout + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lv3 + Key to choose the 3rd level + + + + + + + + + + + + + + + + + + + + + + + ctrl + Ctrl position + + + + + + + + + + + + + + + + grp_led + Use keyboard LED to show alternative layout + + + + + + + + + keypad + Layout of numeric keypad + + + + + + + + + + + + + + + kpdl + Numeric keypad Delete behavior + + + + + + + + + + + + + + caps + Caps Lock behavior + + + + + + + + + + + + + + + + + + + + + altwin + Alt/Win key behavior + + + + + + + + + + + + + + + + + + Compose key + Position of Compose key + + + + + + + + + + + + + + + + + + + + + + + compat + Miscellaneous compatibility options + + + + + + + + + + + + + + + + + + + + currencysign + Adding currency signs to certain keys + + + + + + + + + + lv5 + Key to choose 5th level + + + + + + + + + + + nbsp + Using space key to input non-breaking space + + + + + + + + + + + + + + + + + + + + + japan + Japanese keyboard options + + + + + + + + korean + Korean Hangul/Hanja keys + + + + + + + + esperanto + Adding Esperanto supersigned letters + + + + + + + + solaris + Maintain key compatibility with old Solaris keycodes + + + + + + terminate + Key sequence to kill the X server + + + + + \ No newline at end of file diff --git a/squashfs-root/usr/share/X11/xkb/rules/evdev b/squashfs-root/usr/share/X11/xkb/rules/evdev new file mode 100644 index 0000000..872e1de --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/rules/evdev @@ -0,0 +1,1156 @@ +// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part +// +// Rules for resolving XKB components for use with XFree86 +// Copyright 1996 by Joseph Moss +// +// 2002 Modifier: Ivan Pascal The XFree86 Project +// + +// If you want non-latin layouts implicitly include the en_US layout +// uncomment lines below +//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \ +// in ir iku jp kan kh kr la lao lk mk mm mn mv mal olck \ +// ori pk ru scc sy syr tel th tj tam ua uz + +// PC models +! $pcmodels = pc101 pc102 pc104 pc105 + +// Jolla devices and keyboards +! $jollamodels = jollasbj + +// Microsoft models (using MS geometry) +! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose + +// Nokia devices and keyboards +! $nokiamodels = nokiasu8w nokiarx44 nokiarx51 + +// PC geometries - they have special geometry but symbols are mostly pc105 +! $pcgeometries = latitude + +// TypeMatrix geometries +! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106 + +// Layouts that provide further specializations for the OLPC +! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us + +! $macbooks = macbook78 macbook79 +! $maclaptop = ibook powerbook macbook78 macbook79 +! $applealu = applealu_ansi applealu_iso applealu_jis +! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79 + +! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us + +! $azerty = be fr +! $qwertz = al cz de hr hu ro si sk + + +// all layouts with 3rd and 4th groups +! $threelevellayouts = al az \ + be br bt \ + ca ch cs cz \ + de dk \ + ee es \ + fi fo fr \ + gb gr \ + hu \ + ie ir is it \ + latam \ + lk lt \ + mn mt \ + nl no \ + pl pt \ + ro \ + se sk \ + tr \ + us \ + vn \ + za + +! $thinkpads = thinkpad thinkpad60 thinkpadz60 + +! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \ + sun_type6_jp_usb sun_type6_unix_usb sun_type7_jp_usb \ + sun_type7_usb sun_type7_euro_usb sun_type7_unix_usb + +! $sun_jp = sun_type6_jp sun_type6_jp_usb sun_type7_jp_usb + +// Sun Type_6_7 keyboards with custom layouts +! $sun_custom = ara be br ca ch cz de dk \ + ee es fi fr gb gr it jp \ + kr lt lv nl no pl pt ro \ + ru se sk tr tw ua us + +! $sun_var = sun_type6 sun_type6_suncompat sun_type6_de sun_type6_fr \ + sun_type7 sun_type7_suncompat suncompat + +! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat + +! $htcdreamlayouts = us it de + +! $evdevkbds = ibm_spacesaver + +! $dvoraklayouts = br ca de ee es fr gb no pl se us + +! model = keycodes + pc98 = evdev(pc98) + applealu_jis = evdev+macintosh(jisevdev) + $jollamodels = evdev+jolla(jolla) + olpc = evdev+olpc(olpc) + olpcm = evdev+olpc(olpcm) + * = evdev + +! layout[1] = keycodes + $azerty = +aliases(azerty) + $qwertz = +aliases(qwertz) + * = +aliases(qwerty) + +! layout = keycodes + $azerty = +aliases(azerty) + $qwertz = +aliases(qwertz) + * = +aliases(qwerty) + +! option = keycodes + +! model layout = geometry + thinkpad us = thinkpad(us) + +! model = geometry + microsoftelite = microsoft(elite) + $msmodels = microsoft(natural) + dell101 = dell(dell101) + dellm65 = dell(dellm65) + latitude = dell(latitude) + flexpro = keytronic(FlexPro) + hp6000 = hp(omnibook) + hpmini110 = hp(mini110) + hpdv5 = hp(dv5) + omnikey101 = northgate(omnikey101) + sanwaskbkg3 = sanwa(sanwaskbkg3) + $pcmodels = pc(%m) + $pcgeometries = pc(%m) + everex = everex(STEPnote) + thinkpad = thinkpad(intl) + thinkpad60 = thinkpad(60) + thinkpadz60 = thinkpad(60) + apex300 = steelseries(apex300) + $tmgeometries = typematrix(%m) + winbook = winbook(XP5) + pc98 = nec(pc98) + $applealu = macintosh(%m) + $macbooks = macintosh(%m) + $macs = macintosh(macintosh) + hhk = hhk(basic) + kinesis = kinesis(model100) + $nokiamodels = nokia(%m) + sun_type6_jp = sun(type6jp) + sun_type6_usb = sun(type6) + sun_type6_euro_usb = sun(type6tuv) + sun_type6_jp_usb = sun(type6jp) + sun_type6_unix_usb = sun(type6unix) + sun_type7_jp_usb = sun(type6jp) + sun_type7_usb = sun(type7) + sun_type7_euro_usb = sun(type7tuv) + sun_type7_unix_usb = sun(type7unix) + * = pc(pc104) + +! model layout variant = symbols + * ben basic = pc+in(ben) + * ben probhat = pc+in(ben_probhat) + * dev basic = pc+in(deva) + * dvorak $dvoraklayouts = pc+%v(dvorak) + * dvorak basic = pc+us(dvorak) + * dvorak pl_basic = pc+pl(dvorak) + * dvorak pl = pc+pl(dvorak_quotes) + * dvorak pl_altquotes = pc+pl(dvorak_altquotes) + * dzdwi basic = pc+bt(basic) + * fi basic = pc+fi(classic) + * ge azerty_tskapo = pc+fr(geo) + * guj basic = pc+in(guj) + * gur basic = pc+in(guru) + * ie laptop = pc+ie(basic) + * ie CloGaelachLaptop = pc+ie(CloGaelach) + * in urd = pc+in(urd-phonetic) + * iu basic = pc+ca(ike) + * lo basic = pc+la(basic) + * kan basic = pc+in(kan) + * mal basic = pc+in(mal) + * mal mlplusnum = pc+in(mal) + * ogham basic = pc+ie(ogam) + * ogham laptop = pc+ie(ogam) + * ogham is434 = pc+ie(ogam_is434) + * ogham is434laptop = pc+ie(ogam_is434) + * ori basic = pc+in(ori) + * ro de = pc+ro(winkeys) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) + * ro std_comma = pc+ro(std) + * ro comma = pc+ro(basic) + * ru os = pc+ru(os_legacy) + * pk urd = pc+pk(urd-phonetic) + * sapmi basic = pc+no(smi) + * sapmi nodeadkeys = pc+no(smi_nodeadkeys) + * sapmi sefi = pc+fi(smi) + * sin phonetic-static = pc+in(sin_phonetic) + * syr basic = pc+sy(syc) + * syr phonetic = pc+sy(syc_phonetic) + * tam INSCRIPT = pc+in(tam) + * tam UNI = pc+in(tam_unicode) + * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) + * tam TAB = pc+in(tam_TAB) + * tam TSCII = pc+in(tam_TSCII) + * tel basic = pc+in(tel) + * yu basic = pc+srp(latin) + * yu unicode = pc+srp(latinunicode) + * yu yz = pc+srp(latinyz) + * yu unicodeyz = pc+srp(latinunicodeyz) + classmate us intl = pc+us(classmate-intl) + classmate us alt-intl = pc+us(classmate-alt-intl) + classmate us altgr-intl = pc+us(classmate-altgr-intl) + nokiarx51 cz qwerty = nokia_vndr/rx-51(cz_qwerty) + * $sun_custom $sun_var = pc+sun_vndr/%l%(v) + +! model layout = symbols + * ar = pc+ara + * ben = pc+in(ben) + * bs = pc+ba + * cs = pc+rs + * cz_qwerty = pc+cz(qwerty) + * dev = pc+in(deva) + * dvorak = pc+us(dvorak) + * dzdwi = pc+bt + * el = pc+gr + * en_US = pc+latin + * guj = pc+in(guj) + * gur = pc+in(guru) + * iu = pc+ca(ike) + * lo = pc+la + * kan = pc+in(kan) + * mi = pc+mao + * ogham = pc+ie(ogam) + * ori = pc+ie(ori) + * sapmi = pc+no(smi) + * sr = pc+srp + * syr = pc+sy(syc) + * tel = pc+in(tel) + * tml = pc+in(tam) + * yu = pc+srp + * fr-latin9 = pc+fr(latin9) + * us_intl = pc+us(alt-intl) + * ben(basic) = pc+in(ben) + * ben(probhat) = pc+in(ben_probhat) + * dev(basic) = pc+in(deva) + * dvorak($dvoraklayouts) = pc+%v(dvorak) + * dvorak(basic) = pc+us(dvorak) + * dvorak(pl_basic) = pc+pl(dvorak) + * dvorak(pl) = pc+pl(dvorak_quotes) + * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) + * dzdwi(basic) = pc+bt(basic) + * fi(basic) = pc+fi(classic) + * ge(azerty_tskapo) = pc+fr(geo) + * guj(basic) = pc+in(guj) + * gur(basic) = pc+in(guru) + * ie(laptop) = pc+ie(basic) + * ie(CloGaelachLaptop) = pc+ie(CloGaelach) + * in(urd) = pc+in(urd-phonetic) + * iu(basic) = pc+ca(ike) + * lo(basic) = pc+la(basic) + * kan(basic) = pc+in(kan) + * mal(basic) = pc+in(mal) + * mal(mlplusnum) = pc+in(mal) + * ogham(basic) = pc+ie(ogam) + * ogham(laptop) = pc+ie(ogam) + * ogham(is434) = pc+ie(ogam_is434) + * ogham(is434laptop) = pc+ie(ogam_is434) + * ori(basic) = pc+in(ori) + * ro(de) = pc+ro(winkeys) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) + * ro(std_comma) = pc+ro(std) + * ro(comma) = pc+ro(basic) + * ru(os) = pc+ru(os_legacy) + * pk(urd) = pc+pk(urd-phonetic) + * sapmi(basic) = pc+no(smi) + * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) + * sapmi(sefi) = pc+fi(smi) + * sin(phonetic-static) = pc+in(sin_phonetic) + * syr(basic) = pc+sy(syc) + * syr(phonetic) = pc+sy(syc_phonetic) + * tam(INSCRIPT) = pc+in(tam) + * tam(UNI) = pc+in(tam_unicode) + * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) + * tam(TAB) = pc+in(tam_TAB) + * tam(TSCII) = pc+in(tam_TSCII) + * tel(basic) = pc+in(tel) + * yu(basic) = pc+srp(latin) + * yu(unicode) = pc+srp(latinunicode) + * yu(yz) = pc+srp(latinyz) + * yu(unicodeyz) = pc+srp(latinunicodeyz) + ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2 + ataritt * = xfree68_vndr/ataritt(us)+%l%(v) + amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2 + amiga * = xfree68_vndr/amiga(usa1)+%l%(v) + classmate us = pc+%l(classmate) + empty * = empty(basic) + * empty = empty(basic) + jollasbj $nonlatin = jolla_vndr/sbj(common)+us+%l%(v):2 + jollasbj * = jolla_vndr/sbj(common)+%l%(v) + $sun $sun_custom = pc+sun_vndr/%l%(v) + pc98 nec_vndr/jp = nec_vndr/jp(pc98) + macintosh_old us = macintosh_vndr/us(oldmac) + macintosh_old en_US = macintosh_vndr/us(oldmac) + macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v) + macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2 + macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v) + applealu_jis jp = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2 + applealu_jis * = macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2 + $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v) + $applealu * = macintosh_vndr/apple(alukbd)+%l%(v) + $macs en_US = pc+macintosh_vndr/us(extended) + $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v) + nokiarx44 * = nokia_vndr/rx-44(%l) + nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) + nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v) + nokiasu8w * = nokia_vndr/su-8w(%l) + olpc $olpclayouts = olpc+%l%(m) + olpc * = olpc+%l%(v) + olpcm $olpclayouts = olpc+%l%(m) + olpcm * = olpc+%l%(v) + $thinkpads br = pc+br(thinkpad) + sl-c3x00 * = pc+sharp_vndr/sl-c3x00(basic) + ws003sh * = pc+sharp_vndr/ws003sh(basic) + ws007sh * = pc+sharp_vndr/ws007sh(basic) + ws011sh * = pc+sharp_vndr/ws011sh(basic) + ws020sh * = pc+sharp_vndr/ws020sh(basic) + htcdream $htcdreamlayouts = %l(htcdream) + * $nonlatin = pc+us+%l%(v):2 + * * = pc+%l%(v) + +! model layout[1] = symbols + * ar = pc+ara%(v[1]) + * ben = pc+in(ben) + * bs = pc+ba%(v[1]) + * cs = pc+rs%(v[1]) + * cz_qwerty = pc+cz(qwerty) + * dev = pc+in(deva) + * dvorak = pc+us(dvorak) + * dzdwi = pc+bt%(v[1]) + * el = pc+gr%(v[1]) + * en_US = pc+latin%(v[1]) + * guj = pc+in(guj) + * gur = pc+in(guru) + * iu = pc+ca(ike) + * lo = pc+la%(v[1]) + * kan = pc+in(kan) + * mi = pc+mao%(v[1]) + * ogham = pc+ie(ogam) + * ori = pc+ie(ori) + * sapmi = pc+no(smi) + * sr = pc+srp%(v[1]) + * syr = pc+sy(syc) + * tel = pc+in(tel) + * tml = pc+in(tam) + * yu = pc+srp%(v[1]) + * fr-latin9 = pc+fr(latin9) + * us_intl = pc+us(alt-intl) + * ben(basic) = pc+in(ben) + * ben(probhat) = pc+in(ben_probhat) + * dev(basic) = pc+in(deva) + * dvorak($dvoraklayouts) = pc+%v(dvorak) + * dvorak(basic) = pc+us(dvorak) + * dvorak(pl_basic) = pc+pl(dvorak) + * dvorak(pl) = pc+pl(dvorak_quotes) + * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) + * dzdwi(basic) = pc+bt(basic) + * fi(basic) = pc+fi(classic) + * ge(azerty_tskapo) = pc+fr(geo) + * guj(basic) = pc+in(guj) + * gur(basic) = pc+in(guru) + * ie(laptop) = pc+ie(basic) + * ie(CloGaelachLaptop) = pc+ie(CloGaelach) + * in(urd) = pc+in(urd-phonetic) + * iu(basic) = pc+ca(ike) + * lo(basic) = pc+la(basic) + * kan(basic) = pc+in(kan) + * mal(basic) = pc+in(mal) + * mal(mlplusnum) = pc+in(mal) + * ogham(basic) = pc+ie(ogam) + * ogham(laptop) = pc+ie(ogam) + * ogham(is434) = pc+ie(ogam_is434) + * ogham(is434laptop) = pc+ie(ogam_is434) + * ori(basic) = pc+in(ori) + * ro(de) = pc+ro(winkeys) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) + * ro(std_comma) = pc+ro(std) + * ro(comma) = pc+ro(basic) + * ru(os) = pc+ru(os_legacy) + * pk(urd) = pc+pk(urd-phonetic) + * sapmi(basic) = pc+no(smi) + * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) + * sapmi(sefi) = pc+fi(smi) + * sin(phonetic-static) = pc+in(sin_phonetic) + * syr(basic) = pc+sy(syc) + * syr(phonetic) = pc+sy(syc_phonetic) + * tam(INSCRIPT) = pc+in(tam) + * tam(UNI) = pc+in(tam_unicode) + * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) + * tam(TAB) = pc+in(tam_TAB) + * tam(TSCII) = pc+in(tam_TSCII) + * tel(basic) = pc+in(tel) + * yu(basic) = pc+srp(latin) + * yu(unicode) = pc+srp(latinunicode) + * yu(yz) = pc+srp(latinyz) + * yu(unicodeyz) = pc+srp(latinunicodeyz) + ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1]) + amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1]) + jollasbj * = jolla_vndr/sbj(common)+%l[1]%(v[1]) + $sun $sun_custom = pc+sun_vndr/%l[1]%(v[1]) + macintosh_old us = macintosh_vndr/us(oldmac) + macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) + macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1]) + applealu_jis us = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac) + $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1]) + $applealu * = macintosh_vndr/apple(alukbd)+%l[1]%(v[1]) + $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1]) + nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) + nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1]) + $thinkpads br = pc+%l[1](thinkpad) + * * = pc+%l[1]%(v[1]) + +! model layout[1] variant[1] = symbols + * ben basic = pc+in(ben) + * ben probhat = pc+in(ben_probhat) + * dev basic = pc+in(deva) + * dvorak $dvoraklayouts = pc+%v(dvorak) + * dvorak basic = pc+us(dvorak) + * dvorak pl_basic = pc+pl(dvorak) + * dvorak pl = pc+pl(dvorak_quotes) + * dvorak pl_altquotes = pc+pl(dvorak_altquotes) + * dzdwi basic = pc+bt(basic) + * fi basic = pc+fi(classic) + * ge azerty_tskapo = pc+fr(geo) + * guj basic = pc+in(guj) + * gur basic = pc+in(guru) + * ie laptop = pc+ie(basic) + * ie CloGaelachLaptop = pc+ie(CloGaelach) + * in urd = pc+in(urd-phonetic) + * iu basic = pc+ca(ike) + * lo basic = pc+la(basic) + * kan basic = pc+in(kan) + * mal basic = pc+in(mal) + * mal mlplusnum = pc+in(mal) + * ogham basic = pc+ie(ogam) + * ogham laptop = pc+ie(ogam) + * ogham is434 = pc+ie(ogam_is434) + * ogham is434laptop = pc+ie(ogam_is434) + * ori basic = pc+in(ori) + * ro de = pc+ro(winkeys) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) + * ro std_comma = pc+ro(std) + * ro comma = pc+ro(basic) + * ru os = pc+ru(os_legacy) + * pk urd = pc+pk(urd-phonetic) + * sapmi basic = pc+no(smi) + * sapmi nodeadkeys = pc+no(smi_nodeadkeys) + * sapmi sefi = pc+fi(smi) + * sin phonetic-static = pc+in(sin_phonetic) + * syr basic = pc+sy(syc) + * syr phonetic = pc+sy(syc_phonetic) + * tam INSCRIPT = pc+in(tam) + * tam UNI = pc+in(tam_unicode) + * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) + * tam TAB = pc+in(tam_TAB) + * tam TSCII = pc+in(tam_TSCII) + * tel basic = pc+in(tel) + * yu basic = pc+srp(latin) + * yu unicode = pc+srp(latinunicode) + * yu yz = pc+srp(latinyz) + * yu unicodeyz = pc+srp(latinunicodeyz) + +! model layout[2] = symbols + * ar = +ara%(v[2]):2 + * ben = +in(ben):2 + * bs = +ba%(v[2]):2 + * cs = +rs%(v[2]):2 + * cz_qwerty = +cz(qwerty):2 + * dev = +in(deva):2 + * dvorak = +us(dvorak):2 + * dzdwi = +bt%(v[2]):2 + * el = +gr%(v[2]):2 + * en_US = +latin%(v[2]):2 + * guj = +in(guj):2 + * gur = +in(guru):2 + * iu = +ca(ike):2 + * lo = +la%(v[2]):2 + * kan = +in(kan):2 + * mi = +mao%(v[2]):2 + * ogham = +ie(ogam):2 + * ori = +ie(ori):2 + * sapmi = +no(smi):2 + * sr = +srp%(v[2]):2 + * syr = +sy(syc):2 + * tel = +in(tel):2 + * tml = +in(tam):2 + * yu = +srp%(v[2]):2 + * fr-latin9 = +fr(latin9):2 + * us_intl = +us(alt-intl):2 + * ben(basic) = +in(ben):2 + * ben(probhat) = +in(ben_probhat):2 + * dev(basic) = +in(deva):2 + * dvorak($dvoraklayouts) = +%v(dvorak):2 + * dvorak(basic) = +us(dvorak):2 + * dvorak(pl_basic) = +pl(dvorak):2 + * dvorak(pl) = +pl(dvorak_quotes):2 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2 + * dzdwi(basic) = +bt(basic):2 + * fi(basic) = +fi(classic):2 + * ge(azerty_tskapo) = +fr(geo):2 + * guj(basic) = +in(guj):2 + * gur(basic) = +in(guru):2 + * ie(laptop) = +ie(basic):2 + * ie(CloGaelachLaptop) = +ie(CloGaelach):2 + * in(urd) = +in(urd-phonetic):2 + * iu(basic) = +ca(ike):2 + * lo(basic) = +la(basic):2 + * kan(basic) = +in(kan):2 + * mal(basic) = +in(mal):2 + * mal(mlplusnum) = +in(mal):2 + * ogham(basic) = +ie(ogam):2 + * ogham(laptop) = +ie(ogam):2 + * ogham(is434) = +ie(ogam_is434):2 + * ogham(is434laptop) = +ie(ogam_is434):2 + * ori(basic) = +in(ori):2 + * ro(de) = +ro(winkeys):2 + * ro(us) = +ro(std):2 + * ro(academic) = +ro(std):2 + * ro(std_comma) = +ro(std):2 + * ro(comma) = +ro(basic):2 + * ru(os) = +ru(os_legacy):2 + * pk(urd) = +pk(urd-phonetic):2 + * sapmi(basic) = +no(smi):2 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2 + * sapmi(sefi) = +fi(smi):2 + * sin(phonetic-static) = +in(sin_phonetic):2 + * syr(basic) = +sy(syc):2 + * syr(phonetic) = +sy(syc_phonetic):2 + * tam(INSCRIPT) = +in(tam):2 + * tam(UNI) = +in(tam_unicode):2 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2 + * tam(TAB) = +in(tam_TAB):2 + * tam(TSCII) = +in(tam_TSCII):2 + * tel(basic) = +in(tel):2 + * yu(basic) = +srp(latin):2 + * yu(unicode) = +srp(latinunicode):2 + * yu(yz) = +srp(latinyz):2 + * yu(unicodeyz) = +srp(latinunicodeyz):2 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2 + nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2 + $sun $sun_custom = +sun_vndr/%l[2]%(v[2]):2 + * * = +%l[2]%(v[2]):2 + +! model layout[3] = symbols + * ar = +ara%(v[3]):3 + * ben = +in(ben):3 + * bs = +ba%(v[3]):3 + * cs = +rs%(v[3]):3 + * cz_qwerty = +cz(qwerty):3 + * dev = +in(deva):3 + * dvorak = +us(dvorak):3 + * dzdwi = +bt%(v[3]):3 + * el = +gr%(v[3]):3 + * en_US = +latin%(v[3]):3 + * guj = +in(guj):3 + * gur = +in(guru):3 + * iu = +ca(ike):3 + * lo = +la%(v[3]):3 + * kan = +in(kan):3 + * mi = +mao%(v[3]):3 + * ogham = +ie(ogam):3 + * ori = +ie(ori):3 + * sapmi = +no(smi):3 + * sr = +srp%(v[3]):3 + * syr = +sy(syc):3 + * tel = +in(tel):3 + * tml = +in(tam):3 + * yu = +srp%(v[3]):3 + * fr-latin9 = +fr(latin9):3 + * us_intl = +us(alt-intl):3 + * ben(basic) = +in(ben):3 + * ben(probhat) = +in(ben_probhat):3 + * dev(basic) = +in(deva):3 + * dvorak($dvoraklayouts) = +%v(dvorak):3 + * dvorak(basic) = +us(dvorak):3 + * dvorak(pl_basic) = +pl(dvorak):3 + * dvorak(pl) = +pl(dvorak_quotes):3 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3 + * dzdwi(basic) = +bt(basic):3 + * fi(basic) = +fi(classic):3 + * ge(azerty_tskapo) = +fr(geo):3 + * guj(basic) = +in(guj):3 + * gur(basic) = +in(guru):3 + * ie(laptop) = +ie(basic):3 + * ie(CloGaelachLaptop) = +ie(CloGaelach):3 + * in(urd) = +in(urd-phonetic):3 + * iu(basic) = +ca(ike):3 + * lo(basic) = +la(basic):3 + * kan(basic) = +in(kan):3 + * mal(basic) = +in(mal):3 + * mal(mlplusnum) = +in(mal):3 + * ogham(basic) = +ie(ogam):3 + * ogham(laptop) = +ie(ogam):3 + * ogham(is434) = +ie(ogam_is434):3 + * ogham(is434laptop) = +ie(ogam_is434):3 + * ori(basic) = +in(ori):3 + * ro(de) = +ro(winkeys):3 + * ro(us) = +ro(std):3 + * ro(academic) = +ro(std):3 + * ro(std_comma) = +ro(std):3 + * ro(comma) = +ro(basic):3 + * ru(os) = +ru(os_legacy):3 + * pk(urd) = +pk(urd-phonetic):3 + * sapmi(basic) = +no(smi):3 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3 + * sapmi(sefi) = +fi(smi):3 + * sin(phonetic-static) = +in(sin_phonetic):3 + * syr(basic) = +sy(syc):3 + * syr(phonetic) = +sy(syc_phonetic):3 + * tam(INSCRIPT) = +in(tam):3 + * tam(UNI) = +in(tam_unicode):3 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3 + * tam(TAB) = +in(tam_TAB):3 + * tam(TSCII) = +in(tam_TSCII):3 + * tel(basic) = +in(tel):3 + * yu(basic) = +srp(latin):3 + * yu(unicode) = +srp(latinunicode):3 + * yu(yz) = +srp(latinyz):3 + * yu(unicodeyz) = +srp(latinunicodeyz):3 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3 + nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3 + $sun $sun_custom = +sun_vndr/%l[3]%(v[3]):3 + * * = +%l[3]%(v[3]):3 + +! model layout[4] = symbols + * ar = +ara%(v[4]):4 + * ben = +in(ben):4 + * bs = +ba%(v[4]):4 + * cs = +rs%(v[4]):4 + * cz_qwerty = +cz(qwerty):4 + * dev = +in(deva):4 + * dvorak = +us(dvorak):4 + * dzdwi = +bt%(v[4]):4 + * el = +gr%(v[4]):4 + * en_US = +latin%(v[4]):4 + * guj = +in(guj):4 + * gur = +in(guru):4 + * iu = +ca(ike):4 + * lo = +la%(v[4]):4 + * kan = +in(kan):4 + * mi = +mao%(v[4]):4 + * ogham = +ie(ogam):4 + * ori = +ie(ori):4 + * sapmi = +no(smi):4 + * sr = +srp%(v[4]):4 + * syr = +sy(syc):4 + * tel = +in(tel):4 + * tml = +in(tam):4 + * yu = +srp%(v[4]):4 + * fr-latin9 = +fr(latin9):4 + * us_intl = +us(alt-intl):4 + * ben(basic) = +in(ben):4 + * ben(probhat) = +in(ben_probhat):4 + * dev(basic) = +in(deva):4 + * dvorak($dvoraklayouts) = +%v(dvorak):4 + * dvorak(basic) = +us(dvorak):4 + * dvorak(pl_basic) = +pl(dvorak):4 + * dvorak(pl) = +pl(dvorak_quotes):4 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4 + * dzdwi(basic) = +bt(basic):4 + * fi(basic) = +fi(classic):4 + * ge(azerty_tskapo) = +fr(geo):4 + * guj(basic) = +in(guj):4 + * gur(basic) = +in(guru):4 + * ie(laptop) = +ie(basic):4 + * ie(CloGaelachLaptop) = +ie(CloGaelach):4 + * in(urd) = +in(urd-phonetic):4 + * iu(basic) = +ca(ike):4 + * lo(basic) = +la(basic):4 + * kan(basic) = +in(kan):4 + * mal(basic) = +in(mal):4 + * mal(mlplusnum) = +in(mal):4 + * ogham(basic) = +ie(ogam):4 + * ogham(laptop) = +ie(ogam):4 + * ogham(is434) = +ie(ogam_is434):4 + * ogham(is434laptop) = +ie(ogam_is434):4 + * ori(basic) = +in(ori):4 + * ro(de) = +ro(winkeys):4 + * ro(us) = +ro(std):4 + * ro(academic) = +ro(std):4 + * ro(std_comma) = +ro(std):4 + * ro(comma) = +ro(basic):4 + * ru(os) = +ru(os_legacy):4 + * pk(urd) = +pk(urd-phonetic):4 + * sapmi(basic) = +no(smi):4 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4 + * sapmi(sefi) = +fi(smi):4 + * sin(phonetic-static) = +in(sin_phonetic):4 + * syr(basic) = +sy(syc):4 + * syr(phonetic) = +sy(syc_phonetic):4 + * tam(INSCRIPT) = +in(tam):4 + * tam(UNI) = +in(tam_unicode):4 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4 + * tam(TAB) = +in(tam_TAB):4 + * tam(TSCII) = +in(tam_TSCII):4 + * tel(basic) = +in(tel):4 + * yu(basic) = +srp(latin):4 + * yu(unicode) = +srp(latinunicode):4 + * yu(yz) = +srp(latinyz):4 + * yu(unicodeyz) = +srp(latinunicodeyz):4 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4 + nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4 + $sun $sun_custom = +sun_vndr/%l[4]%(v[4]):4 + * * = +%l[4]%(v[4]):4 + +! model layout[2] variant[2] = symbols + * ben basic = +in(ben):2 + * ben probhat = +in(ben_probhat):2 + * dev basic = +in(deva):2 + * dvorak $dvoraklayouts = +%v(dvorak):2 + * dvorak basic = +us(dvorak):2 + * dvorak pl_basic = +pl(dvorak):2 + * dvorak pl = +pl(dvorak_quotes):2 + * dvorak pl_altquotes = +pl(dvorak_altquotes):2 + * dzdwi basic = +bt(basic):2 + * fi basic = +fi(classic):2 + * ge azerty_tskapo = +fr(geo):2 + * guj basic = +in(guj):2 + * gur basic = +in(guru):2 + * ie laptop = +ie(basic):2 + * ie CloGaelachLaptop = +ie(CloGaelach):2 + * in urd = +in(urd-phonetic):2 + * iu basic = +ca(ike):2 + * lo basic = +la(basic):2 + * kan basic = +in(kan):2 + * mal basic = +in(mal):2 + * mal mlplusnum = +in(mal):2 + * ogham basic = +ie(ogam):2 + * ogham laptop = +ie(ogam):2 + * ogham is434 = +ie(ogam_is434):2 + * ogham is434laptop = +ie(ogam_is434):2 + * ori basic = +in(ori):2 + * ro de = +ro(winkeys):2 + * ro us = +ro(std):2 + * ro academic = +ro(std):2 + * ro std_comma = +ro(std):2 + * ro comma = +ro(basic):2 + * ru os = +ru(os_legacy):2 + * pk urd = +pk(urd-phonetic):2 + * sapmi basic = +no(smi):2 + * sapmi nodeadkeys = +no(smi_nodeadkeys):2 + * sapmi sefi = +fi(smi):2 + * sin phonetic-static = +in(sin_phonetic):2 + * syr basic = +sy(syc):2 + * syr phonetic = +sy(syc_phonetic):2 + * tam INSCRIPT = +in(tam):2 + * tam UNI = +in(tam_unicode):2 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):2 + * tam TAB = +in(tam_TAB):2 + * tam TSCII = +in(tam_TSCII):2 + * tel basic = +in(tel):2 + * yu basic = +srp(latin):2 + * yu unicode = +srp(latinunicode):2 + * yu yz = +srp(latinyz):2 + * yu unicodeyz = +srp(latinunicodeyz):2 + +! model layout[3] variant[3] = symbols + * ben basic = +in(ben):3 + * ben probhat = +in(ben_probhat):3 + * dev basic = +in(deva):3 + * dvorak $dvoraklayouts = +%v(dvorak):3 + * dvorak basic = +us(dvorak):3 + * dvorak pl_basic = +pl(dvorak):3 + * dvorak pl = +pl(dvorak_quotes):3 + * dvorak pl_altquotes = +pl(dvorak_altquotes):3 + * dzdwi basic = +bt(basic):3 + * fi basic = +fi(classic):3 + * ge azerty_tskapo = +fr(geo):3 + * guj basic = +in(guj):3 + * gur basic = +in(guru):3 + * ie laptop = +ie(basic):3 + * ie CloGaelachLaptop = +ie(CloGaelach):3 + * in urd = +in(urd-phonetic):3 + * iu basic = +ca(ike):3 + * lo basic = +la(basic):3 + * kan basic = +in(kan):3 + * mal basic = +in(mal):3 + * mal mlplusnum = +in(mal):3 + * ogham basic = +ie(ogam):3 + * ogham laptop = +ie(ogam):3 + * ogham is434 = +ie(ogam_is434):3 + * ogham is434laptop = +ie(ogam_is434):3 + * ori basic = +in(ori):3 + * ro de = +ro(winkeys):3 + * ro us = +ro(std):3 + * ro academic = +ro(std):3 + * ro std_comma = +ro(std):3 + * ro comma = +ro(basic):3 + * ru os = +ru(os_legacy):3 + * pk urd = +pk(urd-phonetic):3 + * sapmi basic = +no(smi):3 + * sapmi nodeadkeys = +no(smi_nodeadkeys):3 + * sapmi sefi = +fi(smi):3 + * sin phonetic-static = +in(sin_phonetic):3 + * syr basic = +sy(syc):3 + * syr phonetic = +sy(syc_phonetic):3 + * tam INSCRIPT = +in(tam):3 + * tam UNI = +in(tam_unicode):3 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):3 + * tam TAB = +in(tam_TAB):3 + * tam TSCII = +in(tam_TSCII):3 + * tel basic = +in(tel):3 + * yu basic = +srp(latin):3 + * yu unicode = +srp(latinunicode):3 + * yu yz = +srp(latinyz):3 + * yu unicodeyz = +srp(latinunicodeyz):3 + +! model layout[4] variant[4] = symbols + * ben basic = +in(ben):4 + * ben probhat = +in(ben_probhat):4 + * dev basic = +in(deva):4 + * dvorak $dvoraklayouts = +%v(dvorak):4 + * dvorak basic = +us(dvorak):4 + * dvorak pl_basic = +pl(dvorak):4 + * dvorak pl = +pl(dvorak_quotes):4 + * dvorak pl_altquotes = +pl(dvorak_altquotes):4 + * dzdwi basic = +bt(basic):4 + * fi basic = +fi(classic):4 + * ge azerty_tskapo = +fr(geo):4 + * guj basic = +in(guj):4 + * gur basic = +in(guru):4 + * ie laptop = +ie(basic):4 + * ie CloGaelachLaptop = +ie(CloGaelach):4 + * in urd = +in(urd-phonetic):4 + * iu basic = +ca(ike):4 + * lo basic = +la(basic):4 + * kan basic = +in(kan):4 + * mal basic = +in(mal):4 + * mal mlplusnum = +in(mal):4 + * ogham basic = +ie(ogam):4 + * ogham laptop = +ie(ogam):4 + * ogham is434 = +ie(ogam_is434):4 + * ogham is434laptop = +ie(ogam_is434):4 + * ori basic = +in(ori):4 + * ro de = +ro(winkeys):4 + * ro us = +ro(std):4 + * ro academic = +ro(std):4 + * ro std_comma = +ro(std):4 + * ro comma = +ro(basic):4 + * ru os = +ru(os_legacy):4 + * pk urd = +pk(urd-phonetic):4 + * sapmi basic = +no(smi):4 + * sapmi nodeadkeys = +no(smi_nodeadkeys):4 + * sapmi sefi = +fi(smi):4 + * sin phonetic-static = +in(sin_phonetic):4 + * syr basic = +sy(syc):4 + * syr phonetic = +sy(syc_phonetic):4 + * tam INSCRIPT = +in(tam):4 + * tam UNI = +in(tam_unicode):4 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):4 + * tam TAB = +in(tam_TAB):4 + * tam TSCII = +in(tam_TSCII):4 + * tel basic = +in(tel):4 + * yu basic = +srp(latin):4 + * yu unicode = +srp(latinunicode):4 + * yu yz = +srp(latinyz):4 + * yu unicodeyz = +srp(latinunicodeyz):4 + +! model = symbols + $evdevkbds = +inet(evdev)+inet(%m) + chromebook = +inet(evdev)+inet(chromebook) + applealu_jis = +inet(evdev)+macintosh_vndr/jp(alujiskeys) + * = +inet(evdev) + +! model layout = symbols + +! layout variant = compat + de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + jp $sun_compat = complete+japan(kana_lock) + +! layout[1] variant[1] = compat + de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + jp $sun_compat = complete+japan(kana_lock) + +! layout[2] variant[2] = compat + de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de adnw = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de koy = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de bone = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de bone_eszett_home = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de neo_qwertz = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de neo_qwerty = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + jp $sun_compat = +complete+japan(kana_lock):2 + +! layout[3] variant[3] = compat + de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de adnw = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de koy = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de bone = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de bone_eszett_home = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de neo_qwertz = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de neo_qwerty = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + jp $sun_compat = +complete+japan(kana_lock):3 + +! layout[4] variant[4] = compat + de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de adnw = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de koy = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de bone = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de bone_eszett_home = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de neo_qwertz = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de neo_qwerty = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + jp $sun_compat = +complete+japan(kana_lock):4 + +! model layout = compat + pc98 nec_vndr/jp = pc98(basic) + * jp = complete+japan + olpc * = olpc + olpcm * = olpc + * * = complete + +! model layout[1] = compat + * * = complete + +! model = types + $macs = complete+numpad(mac) + $applealu = complete+numpad(mac) + $nokiamodels = complete+nokia + * = complete + +! layout option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle) + * misc:typo = +typo(base) + +! layout[1] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1 + * misc:typo = +typo(base):1 + +! layout[2] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2 + * misc:typo = +typo(base):2 + +! layout[3] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3 + * misc:typo = +typo(base):3 + +! layout[4] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4 + * misc:typo = +typo(base):4 + +! option = symbols + grp:shift_toggle = +group(shifts_toggle) + altwin:menu = +altwin(menu) + altwin:meta_alt = +altwin(meta_alt) + altwin:alt_win = +altwin(alt_win) + altwin:ctrl_win = +altwin(ctrl_win) + altwin:ctrl_alt_win = +altwin(ctrl_alt_win) + altwin:meta_win = +altwin(meta_win) + altwin:left_meta_win = +altwin(left_meta_win) + altwin:hyper_win = +altwin(hyper_win) + altwin:alt_super_win = +altwin(alt_super_win) + altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin) + altwin:swap_alt_win = +altwin(swap_alt_win) + altwin:prtsc_rwin = +altwin(prtsc_rwin) + grab:debug = +srvr_ctrl(grab_debug) + grp:switch = +group(switch) + grp:lswitch = +group(lswitch) + grp:win_switch = +group(win_switch) + grp:lwin_switch = +group(lwin_switch) + grp:rwin_switch = +group(rwin_switch) + grp:menu_switch = +group(menu_switch) + grp:toggle = +group(toggle) + grp:shifts_toggle = +group(shifts_toggle) + grp:ctrls_toggle = +group(ctrls_toggle) + grp:alts_toggle = +group(alts_toggle) + grp:caps_toggle = +capslock(grouplock) + grp:caps_switch = +capslock(groupshift) + grp:shift_caps_toggle = +group(shift_caps_toggle) + grp:shift_caps_switch = +group(shift_caps_switch) + grp:win_space_toggle = +group(win_space_toggle) + grp:win_menu_switch = +group(win_menu_switch) + grp:alt_caps_toggle = +group(alt_caps_toggle) + grp:alt_space_toggle = +group(alt_space_toggle) + grp:menu_toggle = +group(menu_toggle) + grp:lwin_toggle = +group(lwin_toggle) + grp:rwin_toggle = +group(rwin_toggle) + grp:lshift_toggle = +group(lshift_toggle) + grp:rshift_toggle = +group(rshift_toggle) + grp:rctrl_switch = +group(rctrl_switch) + grp:lctrl_toggle = +group(lctrl_toggle) + grp:rctrl_toggle = +group(rctrl_toggle) + grp:lalt_toggle = +group(lalt_toggle) + grp:sclk_toggle = +group(sclk_toggle) + grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch) + grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu) + grp:lctrl_lalt_toggle = +group(lctrl_lalt_toggle) + grp:rctrl_ralt_toggle = +group(rctrl_ralt_toggle) + grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) + grp:ctrl_alt_toggle_bidir = +group(ctrl_alt_toggle_bidir) + grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle) + grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle) + grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) + grp:ctrl_shift_toggle_bidir = +group(ctrl_shift_toggle_bidir) + grp:lalt_lshift_toggle = +group(lalt_lshift_toggle) + grp:ralt_rshift_toggle = +group(ralt_rshift_toggle) + grp:alt_shift_toggle = +group(alt_shift_toggle) + grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir) + grp:lctrl_lwin_toggle = +group(lctrl_lwin_toggle) + lv3:switch = +level3(switch) + lv3:ralt_switch = +level3(ralt_switch) + lv3:ralt_switch_multikey = +level3(ralt_switch_multikey) + lv3:ralt_alt = +level3(ralt_alt) + lv3:lalt_switch = +level3(lalt_switch) + lv3:alt_switch = +level3(alt_switch) + lv3:menu_switch = +level3(menu_switch) + lv3:win_switch = +level3(win_switch) + lv3:lwin_switch = +level3(lwin_switch) + lv3:rwin_switch = +level3(rwin_switch) + lv3:enter_switch = +level3(enter_switch) + caps:capslock = +capslock(capslock) + caps:numlock = +capslock(numlock) + caps:shiftlock = +capslock(shiftlock) + caps:swapescape = +capslock(swapescape) + caps:escape = +capslock(escape) + caps:backspace = +capslock(backspace) + caps:super = +capslock(super) + caps:hyper = +capslock(hyper) + caps:menu = +capslock(menu) + caps:none = +capslock(none) + caps:ctrl_modifier = +capslock(ctrl_modifier) + ctrl:nocaps = +ctrl(nocaps) + ctrl:lctrl_meta = +ctrl(lctrl_meta) + ctrl:swapcaps = +ctrl(swapcaps) + ctrl:ac_ctrl = +ctrl(ac_ctrl) + ctrl:aa_ctrl = +ctrl(aa_ctrl) + ctrl:rctrl_ralt = +ctrl(rctrl_ralt) + ctrl:menu_rctrl = +ctrl(menu_rctrl) + ctrl:ralt_rctrl = +ctrl(ralt_rctrl) + ctrl:swap_lalt_lctl = +ctrl(swap_lalt_lctl) + ctrl:swap_lwin_lctl = +ctrl(swap_lwin_lctl) + ctrl:swap_rwin_rctl = +ctrl(swap_rwin_rctl) + ctrl:swap_lalt_lctl_lwin = +ctrl(swap_lalt_lctl_lwin) + compose:ralt = +compose(ralt) + compose:lwin = +compose(lwin) + compose:lwin-altgr = +compose(lwin-altgr) + compose:rwin = +compose(rwin) + compose:rwin-altgr = +compose(rwin-altgr) + compose:menu = +compose(menu) + compose:menu-altgr = +compose(menu-altgr) + compose:lctrl = +compose(lctrl) + compose:lctrl-altgr = +compose(lctrl-altgr) + compose:rctrl = +compose(rctrl) + compose:rctrl-altgr = +compose(rctrl-altgr) + compose:caps = +compose(caps) + compose:caps-altgr = +compose(caps-altgr) + compose:102 = +compose(102) + compose:102-altgr = +compose(102-altgr) + compose:paus = +compose(paus) + compose:prsc = +compose(prsc) + compose:sclk = +compose(sclk) + srvrkeys:none = +srvr_ctrl(no_srvr_keys) + eurosign:e = +eurosign(e) + eurosign:2 = +eurosign(2) + eurosign:4 = +eurosign(4) + eurosign:5 = +eurosign(5) + rupeesign:4 = +rupeesign(4) + keypad:oss = +keypad(oss) + keypad:legacy = +keypad(legacy) + keypad:legacy_wang = +keypad(legacy_wang) + keypad:oss_wang = +keypad(oss_wang) + keypad:future = +keypad(future) + keypad:future_wang = +keypad(future_wang) + keypad:hex = +keypad(ops)+keypad(hex) + keypad:atm = +keypad(ops)+keypad(hex)+keypad(atm) + nbsp:none = +nbsp(none) + nbsp:level2 = +nbsp(level2) + nbsp:level3 = +nbsp(level3) + nbsp:level3s = +nbsp(level3s) + nbsp:level3n = +nbsp(level3n) + nbsp:level4 = +nbsp(level4) + nbsp:level4n = +nbsp(level4n) + nbsp:level4nl = +nbsp(level4nl) + japan:nicola_f_bs = +jp(nicola_f_bs) + japan:hztg_escape = +jp(hztg_escape) + korean:ralt_rctrl = +kr(ralt_hangul)+kr(rctrl_hanja) + korean:rctrl_ralt = +kr(rctrl_hangul)+kr(ralt_hanja) + kpdl:dot = +kpdl(dot) + kpdl:comma = +kpdl(comma) + kpdl:dotoss = +kpdl(dotoss) + kpdl:dotoss_latin9 = +kpdl(dotoss_latin9) + kpdl:commaoss = +kpdl(commaoss) + kpdl:momayyezoss = +kpdl(momayyezoss) + kpdl:kposs = +kpdl(kposs) + kpdl:semi = +kpdl(semi) + shift:breaks_caps = +shift(breaks_caps) + esperanto:qwerty = +epo(qwerty) + esperanto:dvorak = +epo(dvorak) + esperanto:colemak = +epo(colemak) + terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp) + keypad:pointerkeys = +keypad(pointerkeys) + apple:alupckeys = +macintosh_vndr/apple(alupckeys) + shift:both_capslock = +shift(both_capslock) + shift:lshift_both_capslock = +shift(lshift_both_capslock) + shift:rshift_both_capslock = +shift(rshift_both_capslock) + shift:both_capslock_cancel = +shift(both_capslock_cancel) + shift:lshift_both_capslock_cancel = +shift(lshift_both_capslock_cancel) + shift:rshift_both_capslock_cancel = +shift(rshift_both_capslock_cancel) + shift:both_shiftlock = +shift(both_shiftlock) + shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock) + shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock) + solaris:sun_compat = +sun_vndr/solaris(sun_compat) + lv3:caps_switch = +level3(caps_switch) + lv3:bksl_switch = +level3(bksl_switch) + lv3:lsgt_switch = +level3(lsgt_switch) + lv3:caps_switch_latch = +level3(caps_switch_latch) + lv3:bksl_switch_latch = +level3(bksl_switch_latch) + lv3:lsgt_switch_latch = +level3(lsgt_switch_latch) + lv5:lsgt_switch_lock = +level5(lsgt_switch_lock) + lv5:ralt_switch_lock = +level5(ralt_switch_lock) + lv5:lwin_switch_lock = +level5(lwin_switch_lock) + lv5:rwin_switch_lock = +level5(rwin_switch_lock) + lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel) + lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel) + lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel) + lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel) + parens:swap_brackets = +parens(swap_brackets) + + +! option = compat + grp_led:num = +lednum(group_lock) + grp_led:caps = +ledcaps(group_lock) + grp_led:scroll = +ledscroll(group_lock) + japan:kana_lock = +japan(kana_lock) + caps:shiftlock = +ledcaps(shift_lock) + grab:break_actions = +xfree86(grab_break) + + +! option = types + caps:internal = +caps(internal) + caps:internal_nocancel = +caps(internal_nocancel) + caps:shift = +caps(shift) + caps:shift_nocancel = +caps(shift_nocancel) + numpad:pc = +numpad(pc) + numpad:mac = +numpad(mac) + numpad:microsoft = +numpad(microsoft) + numpad:shift3 = +numpad(shift3) diff --git a/squashfs-root/usr/share/X11/xkb/rules/evdev.extras.xml b/squashfs-root/usr/share/X11/xkb/rules/evdev.extras.xml new file mode 100644 index 0000000..2977e54 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/rules/evdev.extras.xml @@ -0,0 +1,1131 @@ + + + + + + + + apl + apl + APL + + eng + + + + + + dyalog + dlg + Dyalog APL complete + + + + + sax + sax + APL Keyboard Symbols: sax + + + + + unified + ufd + APL Keyboard Symbols: Unified Layout + + + + + apl2 + apl2 + APL Keyboard Symbols: IBM APL2 + + + + + aplplusII + aplII + APL Keyboard Symbols: Manugistics APL*PLUS II + + + + + aplx + aplx + APL Keyboard Symbols: APLX Unified APL Layout + + + + + + + ca + fr + French (Canada) + + fra + + + + + + kut + kut + Kutenai + + + + + shs + shs + Secwepemctsin + + + + + sun_type6 + Multilingual (Canada, Sun Type 6/7) + + + + + + + de + de + German + + ger + + + + + + us + German (US, with German letters) + + eng + + + + + + hu + German (with Hungarian letters and no dead keys) + + ger + hun + + + + + + pl + Polish (Germany, no dead keys) + + ger + pol + + + + + + sun_type6 + German (Sun Type 6/7) + + + + + adnw + German (Aus der Neo-Welt) + + + + + koy + German (KOY) + + + + + bone + German (Bone) + + + + + bone_eszett_home + German (Bone, eszett home row) + + + + + neo_qwertz + German (Neo qwertz) + + + + + neo_qwerty + German (Neo qwerty) + + + + + ru-recom + + ru + Russian (Germany, recommended) + + rus + + + + + + ru-translit + + ru + Russian (Germany, transliteration) + + rus + + + + + + lld + German Ladin + de_lld + + ger + lld + + + + + + + + hu + Hungarian + + + + + oldhun + Old Hungarian + oldhun + + + + + + + ir + fa + Persian + + per + + + + + + ave + Avestan + + ave + + + + + + + + lt + lt + Lithuanian + + lit + + + + + + us_dvorak + Lithuanian (US Dvorak with Lithuanian letters) + + + + + sun_type6 + Lithuanian (Sun Type 6/7) + + + + + + + lv + lv + Latvian + + lav + + + + + + dvorak + Latvian (US Dvorak) + + + + + ykeydvorak + Latvian (US Dvorak, Y variant) + + + + + minuskeydvorak + Latvian (US Dvorak, minus variant) + + + + + dvorakprogr + Latvian (programmer US Dvorak) + + + + + ykeydvorakprogr + Latvian (programmer US Dvorak, Y variant) + + + + + minuskeydvorakprogr + Latvian (programmer US Dvorak, minus variant) + + + + + colemak + Latvian (US Colemak) + + + + + apostrophecolemak + Latvian (US Colemak, apostrophe variant) + + + + + sun_type6 + Latvian (Sun Type 6/7) + + + + + + + us + en + English (US) + + eng + + + + + + intl-unicode + English (US, international AltGr Unicode combining) + + + + + alt-intl-unicode + English (US, international AltGr Unicode combining, alternative) + + + + + ats + Atsina + + + + + + crd + Coeur d'Alene Salish + + crd + + + + + + cz_sk_de + Czech Slovak and German (US) + + eng + cze + slo + ger + + + + + + ibm238l + English (US, IBM Arabic 238_L) + + + + + sun_type6 + English (US, Sun Type 6/7) + + + + + norman + English (Norman) + + + + + carpalx + English (Carpalx) + + + + + carpalx-intl + English (Carpalx, intl., with dead keys) + + + + + carpalx-altgr-intl + English (Carpalx, intl., with AltGr dead keys) + + + + + carpalx-full + English (Carpalx, full optimization) + + + + + carpalx-full-intl + English (Carpalx, full optimization, intl., with dead keys) + + + + + carpalx-full-altgr-intl + English (Carpalx, full optimization, intl., with AltGr dead keys) + + + + + + + pl + pl + Polish + + pol + + + + + + intl + Polish (intl., with dead keys) + + + + + colemak + Polish (Colemak) + + + + + sun_type6 + Polish (Sun Type 6/7) + + + + + + + ro + ro + Romanian + + rum + + + + + + crh_dobruja + crh + Crimean Tatar (Dobruja Q) + + crh + + + + + + ergonomic + Romanian (ergonomic Touchtype) + + + + + sun_type6 + Romanian (Sun Type 6/7) + + + + + + + rs + sr + Serbian + + srp + + + + + + combiningkeys + Serbian (combining accents instead of dead keys) + + + + + + + ru + ru + Russian + + + + + chu + Church Slavonic + + chu + + + + + + ruu + ru + Russian (with Ukrainian-Belorussian layout) + + rus + ukr + bel + + + + + + rulemak + Russian (Rulemak, phonetic Colemak) + + + + + sun_type6 + Russian (Sun Type 6/7) + + + + + prxn + ru + Russian (Polyglot and Reactionary) + + rus + rus-petr1708 + ukr + bel + srp + mkd + bul + chu + rum-Cyrl + kaz + kir + uzb + bak + aze + tat + uig + kdr + tyv + kjh + crh + tgk + abk + sah + mon + kal + sjd + chv + oss + krl + ale + wbl + kur + niv + dng + kom + udm + sel + ulc + ude + oac + oaa + gld + eve + evn + kca + itl + yrk + neg + + + RU + RS + BA + ME + MK + BG + MD + UA + BY + KZ + MN + KG + TJ + UZ + TM + AZ + + + + + + + + am + hy + Armenian + + hye + + + + + + olpc-phonetic + Armenian (OLPC phonetic) + + + + + + + il + he + Hebrew + + heb + + + + + + biblicalSIL + Hebrew (Biblical, SIL phonetic) + + heb + + + + + + + + ara + ar + Arabic + + + + + sun_type6 + Arabic (Sun Type 6/7) + + + + + + + be + be + Belgian + + + + + sun_type6 + Belgian (Sun Type 6/7) + + + + + + + br + pt + Portuguese (Brazil) + + + + + sun_type6 + Portuguese (Brazil, Sun Type 6/7) + + + + + + + cz + cs + Czech + + + + + sun_type6 + Czech (Sun Type 6/7) + + + + + + + dk + da + Danish + + + + + sun_type6 + Danish (Sun Type 6/7) + + + + + + + nl + nl + Dutch + + + + + sun_type6 + Dutch (Sun Type 6/7) + + + + + + + ee + et + Estonian + + + + + sun_type6 + Estonian (Sun Type 6/7) + + + + + + + fi + fi + Finnish + + + + + das + Finnish (DAS) + + + + + sun_type6 + Finnish (Sun Type 6/7) + + + + + fidvorak + Finnish Dvorak + + + + + + + fr + fr + French + + + + + sun_type6 + French (Sun Type 6/7) + + + + + + + gr + gr + Greek + + + + + sun_type6 + Greek (Sun Type 6/7) + + + + + + + it + it + Italian + + + + + sun_type6 + Italian (Sun Type 6/7) + + + + + fur + Friulian (Italy) + + fur + + + + + + lld + Italian Ladin + it_lld + + it + lld + + + + + + + + jp + ja + Japanese + + + + + sun_type6 + Japanese (Sun Type 6) + + + + + sun_type7 + Japanese (Sun Type 7 - pc compatible) + + + + + sun_type7_suncompat + Japanese (Sun Type 7 - sun compatible) + + + + + + + no + no + Norwegian + + + + + sun_type6 + Norwegian (Sun Type 6/7) + + + + + + + pt + pt + Portuguese + + + + + sun_type6 + Portuguese (Sun Type 6/7) + + + + + + + sk + sk + Slovak + + + + + sun_type6 + Slovak (Sun Type 6/7) + + + + + + + es + es + Spanish + + + + + sun_type6 + Spanish (Sun Type 6/7) + + + + + + + se + sv + Swedish + + + + + dvorak_a5 + Swedish (Dvorak A5) + + + + + sun_type6 + Swedish (Sun Type 6/7) + + + + + ovd + Elfdalian (Swedish, with combining ogonek) + + ovd + + + + + + + + ch + de + German (Switzerland) + + + + + sun_type6_de + German (Switzerland, Sun Type 6/7) + + + + + sun_type6_fr + French (Switzerland, Sun Type 6/7) + + + + + + + tr + tr + Turkish + + + + + sun_type6 + Turkish (Sun Type 6/7) + + + + + + + ua + uk + Ukrainian + + + + + sun_type6 + Ukrainian (Sun Type 6/7) + + + + + + + gb + en + English (UK) + + + + + sun_type6 + English (UK, Sun Type 6/7) + + + + + + + kr + ko + Korean + + + + + sun_type6 + Korean (Sun Type 6/7) + + + + + + + eu + + eu + EurKEY (US based layout with european letters) + + cat + dan + eng + est + fao + fin + ger + gre + gsw + ita + lav + lit + nld + nor + por + spa + swe + + + + + + cm + cm + English (Cameroon) + + + + + mmuock + Mmuock + + + + + + + + + + parens + Parentheses position + + + + + \ No newline at end of file diff --git a/squashfs-root/usr/share/X11/xkb/rules/evdev.lst b/squashfs-root/usr/share/X11/xkb/rules/evdev.lst new file mode 100644 index 0000000..6daf7cc --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/rules/evdev.lst @@ -0,0 +1,922 @@ +! model + pc101 Generic 101-key PC + pc102 Generic 101-key PC (intl.) + pc104 Generic 104-key PC + pc105 Generic 105-key PC (intl.) + dell101 Dell 101-key PC + latitude Dell Latitude laptop + dellm65 Dell Precision M65 laptop + everex Everex STEPnote + flexpro Keytronic FlexPro + microsoft Microsoft Natural + omnikey101 Northgate OmniKey 101 + winbook Winbook Model XP5 + pc98 PC-98 + a4techKB21 A4Tech KB-21 + a4techKBS8 A4Tech KBS-8 + a4_rfkb23 A4Tech Wireless Desktop RFKB-23 + airkey Acer AirKey V + azonaRF2300 Azona RF2300 wireless Internet + scorpius Advance Scorpius KI + brother Brother Internet + btc5113rf BTC 5113RF Multimedia + btc5126t BTC 5126T + btc6301urf BTC 6301URF + btc9000 BTC 9000 + btc9000a BTC 9000A + btc9001ah BTC 9001AH + btc5090 BTC 5090 + btc9019u BTC 9019U + btc9116u BTC 9116U Mini Wireless Internet and Gaming + cherryblue Cherry Blue Line CyBo@rd + cherryblueb Cherry CyMotion Master XPress + cherrybluea Cherry Blue Line CyBo@rd (alt.) + cherrycyboard Cherry CyBo@rd USB-Hub + cherrycmexpert Cherry CyMotion Expert + cherrybunlim Cherry B.UNLIMITED + chicony Chicony Internet + chicony0108 Chicony KU-0108 + chicony0420 Chicony KU-0420 + chicony9885 Chicony KB-9885 + compaqeak8 Compaq Easy Access + compaqik7 Compaq Internet (7 keys) + compaqik13 Compaq Internet (13 keys) + compaqik18 Compaq Internet (18 keys) + cymotionlinux Cherry CyMotion Master Linux + armada Compaq Armada laptop + presario Compaq Presario laptop + ipaq Compaq iPaq + dell Dell + dellsk8125 Dell SK-8125 + dellsk8135 Dell SK-8135 + dellusbmm Dell USB Multimedia + inspiron Dell Inspiron 6000/8000 laptop + precision_m Dell Precision M laptop + dexxa Dexxa Wireless Desktop + diamond Diamond 9801/9802 + dtk2000 DTK2000 + ennyah_dkb1008 Ennyah DKB-1008 + fscaa1667g Fujitsu-Siemens Amilo laptop + genius Genius Comfy KB-16M/Multimedia KWD-910 + geniuscomfy Genius Comfy KB-12e + geniuscomfy2 Genius Comfy KB-21e-Scroll + geniuskb19e Genius KB-19e NB + geniuskkb2050hs Genius KKB-2050HS + gyration Gyration + htcdream HTC Dream + kinesis Kinesis + logitech_base Logitech + logitech_g15 Logitech G15 extra keys via G15daemon + hpi6 Hewlett-Packard Internet + hp250x Hewlett-Packard NEC SK-2500 Multimedia + hpxe3gc Hewlett-Packard Omnibook XE3 GC + hpxe3gf Hewlett-Packard Omnibook XE3 GF + hpxt1000 Hewlett-Packard Omnibook XT1000 + hpdv5 Hewlett-Packard Pavilion dv5 + hpzt11xx Hewlett-Packard Pavilion ZT1100 + hp500fa Hewlett-Packard Omnibook 500 FA + hp5xx Hewlett-Packard Omnibook 500 + hpnx9020 Hewlett-Packard nx9020 + hp6000 Hewlett-Packard Omnibook 6000/6100 + honeywell_euroboard Honeywell Euroboard + hpmini110 Hewlett-Packard Mini 110 laptop + rapidaccess IBM Rapid Access + rapidaccess2 IBM Rapid Access II + thinkpad IBM ThinkPad 560Z/600/600E/A22E + thinkpad60 IBM ThinkPad R60/T60/R61/T61 + thinkpadz60 IBM ThinkPad Z60m/Z60t/Z61m/Z61t + ibm_spacesaver IBM Space Saver + logiaccess Logitech Access + logiclx300 Logitech Cordless Desktop LX-300 + logii350 Logitech Internet 350 + logimel Logitech Internet 350 + logicd Logitech Cordless Desktop + logicd_it Logitech Cordless Desktop iTouch + logicd_nav Logitech Cordless Desktop Navigator + logicd_opt Logitech Cordless Desktop Optical + logicda Logitech Cordless Desktop (alt.) + logicdpa2 Logitech Cordless Desktop Pro (2nd alt.) + logicfn Logitech Cordless Freedom/Desktop Navigator + logicdn Logitech Cordless Desktop Navigator + logiitc Logitech iTouch Cordless Y-RB6 + logiik Logitech Internet + itouch Logitech iTouch + logicink Logitech Internet Navigator + logiex110 Logitech Cordless Desktop EX110 + logiinkse Logitech iTouch Internet Navigator SE + logiinkseusb Logitech iTouch Internet Navigator SE USB + logiultrax Logitech Ultra-X + logiultraxc Logitech Ultra-X Cordless Media Desktop + logidinovo Logitech diNovo + logidinovoedge Logitech diNovo Edge + mx1998 Memorex MX1998 + mx2500 Memorex MX2500 EZ-Access + mx2750 Memorex MX2750 + microsoft4000 Microsoft Natural Ergonomic 4000 + microsoft7000 Microsoft Natural Wireless Ergonomic 7000 + microsoftinet Microsoft Internet + microsoftpro Microsoft Natural Pro/Internet Pro + microsoftprousb Microsoft Natural Pro USB/Internet Pro + microsoftprooem Microsoft Natural Pro OEM + vsonku306 ViewSonic KU-306 Internet + microsoftprose Microsoft Internet Pro (Swedish) + microsoftoffice Microsoft Office Keyboard + microsoftmult Microsoft Wireless Multimedia 1.0A + microsoftelite Microsoft Natural Elite + microsoftccurve2k Microsoft Comfort Curve 2000 + oretec Ortek Multimedia/Internet MCK-800 + propeller Propeller Voyager KTEZ-1000 + qtronix QTronix Scorpius 98N+ + samsung4500 Samsung SDM 4500P + samsung4510 Samsung SDM 4510P + sanwaskbkg3 Sanwa Supply SKB-KG3 + sk1300 NEC SK-1300 + sk2500 NEC SK-2500 + sk6200 NEC SK-6200 + sk7100 NEC SK-7100 + sp_inet Super Power Multimedia + sven SVEN Ergonomic 2500 + sven303 SVEN Slim 303 + symplon Symplon PaceBook tablet + toshiba_s3000 Toshiba Satellite S3000 + trust Trust Wireless Classic + trustda Trust Direct Access + trust_slimline Trust Slimline + tm2020 TypeMatrix EZ-Reach 2020 + tm2030PS2 TypeMatrix EZ-Reach 2030 PS2 + tm2030USB TypeMatrix EZ-Reach 2030 USB + tm2030USB-102 TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) + tm2030USB-106 TypeMatrix EZ-Reach 2030 USB (106:JP mode) + yahoo Yahoo! Internet + macbook78 MacBook/MacBook Pro + macbook79 MacBook/MacBook Pro (intl.) + macintosh Macintosh + macintosh_old Macintosh Old + macintosh_hhk Happy Hacking for Mac + acer_c300 Acer C300 + acer_ferrari4k Acer Ferrari 4000 + acer_laptop Acer laptop + asus_laptop Asus laptop + apple Apple + apple_laptop Apple laptop + applealu_ansi Apple Aluminium (ANSI) + applealu_iso Apple Aluminium (ISO) + applealu_jis Apple Aluminium (JIS) + silvercrest Silvercrest Multimedia Wireless + emachines eMachines m6800 laptop + benqx BenQ X-Touch + benqx730 BenQ X-Touch 730 + benqx800 BenQ X-Touch 800 + hhk Happy Hacking + classmate Classmate PC + olpc OLPC + sun_type7_usb Sun Type 7 USB + sun_type7_euro_usb Sun Type 7 USB (European) + sun_type7_unix_usb Sun Type 7 USB (Unix) + sun_type7_jp_usb Sun Type 7 USB (Japanese)/Japanese 106-key + sun_type6_usb Sun Type 6/7 USB + sun_type6_euro_usb Sun Type 6/7 USB (European) + sun_type6_unix_usb Sun Type 6 USB (Unix) + sun_type6_jp_usb Sun Type 6 USB (Japanese) + sun_type6_jp Sun Type 6 (Japanese) + targa_v811 Targa Visionary 811 + unitekkb1925 Unitek KB-1925 + compalfl90 FL90 + creativedw7000 Creative Desktop Wireless 7000 + htcdream Htc Dream phone + teck227 Truly Ergonomic 227 + teck229 Truly Ergonomic 229 + apex300 SteelSeries Apex 300 (Apex RAW) + +! layout + us English (US) + af Afghani + ara Arabic + al Albanian + am Armenian + at German (Austria) + au English (Australian) + az Azerbaijani + by Belarusian + be Belgian + bd Bangla + in Indian + ba Bosnian + br Portuguese (Brazil) + bg Bulgarian + dz Berber (Algeria, Latin) + ma Arabic (Morocco) + cm English (Cameroon) + mm Burmese + ca French (Canada) + cd French (Democratic Republic of the Congo) + cn Chinese + hr Croatian + cz Czech + dk Danish + nl Dutch + bt Dzongkha + ee Estonian + ir Persian + iq Iraqi + fo Faroese + fi Finnish + fr French + gh English (Ghana) + gn French (Guinea) + ge Georgian + de German + gr Greek + hu Hungarian + is Icelandic + il Hebrew + it Italian + jp Japanese + kg Kyrgyz + kh Khmer (Cambodia) + kz Kazakh + la Lao + latam Spanish (Latin American) + lt Lithuanian + lv Latvian + mao Maori + me Montenegrin + mk Macedonian + mt Maltese + mn Mongolian + no Norwegian + pl Polish + pt Portuguese + ro Romanian + ru Russian + rs Serbian + si Slovenian + sk Slovak + es Spanish + se Swedish + ch German (Switzerland) + sy Arabic (Syria) + tj Tajik + lk Sinhala (phonetic) + th Thai + tr Turkish + tw Taiwanese + ua Ukrainian + gb English (UK) + uz Uzbek + vn Vietnamese + kr Korean + nec_vndr/jp Japanese (PC-98) + ie Irish + pk Urdu (Pakistan) + mv Dhivehi + za English (South Africa) + epo Esperanto + np Nepali + ng English (Nigeria) + et Amharic + sn Wolof + brai Braille + tm Turkmen + ml Bambara + tz Swahili (Tanzania) + tg French (Togo) + ke Swahili (Kenya) + bw Tswana + ph Filipino + md Moldavian + id Indonesian (Jawi) + my Malay (Jawi, Arabic Keyboard) + +! variant + chr us: Cherokee + euro us: English (US, euro on 5) + intl us: English (US, intl., with dead keys) + alt-intl us: English (US, alt. intl.) + colemak us: English (Colemak) + dvorak us: English (Dvorak) + dvorak-intl us: English (Dvorak, intl., with dead keys) + dvorak-alt-intl us: English (Dvorak, alt. intl.) + dvorak-l us: English (Dvorak, left-handed) + dvorak-r us: English (Dvorak, right-handed) + dvorak-classic us: English (classic Dvorak) + dvp us: English (programmer Dvorak) + rus us: Russian (US, phonetic) + mac us: English (Macintosh) + altgr-intl us: English (intl., with AltGr dead keys) + olpc2 us: English (the divide/multiply keys toggle the layout) + hbs us: Serbo-Croatian (US) + workman us: English (Workman) + workman-intl us: English (Workman, intl., with dead keys) + ps af: Pashto + uz af: Uzbek (Afghanistan) + olpc-ps af: Pashto (Afghanistan, OLPC) + fa-olpc af: Persian (Afghanistan, Dari OLPC) + uz-olpc af: Uzbek (Afghanistan, OLPC) + azerty ara: Arabic (AZERTY) + azerty_digits ara: Arabic (AZERTY/digits) + digits ara: Arabic (digits) + qwerty ara: Arabic (QWERTY) + qwerty_digits ara: Arabic (qwerty/digits) + buckwalter ara: Arabic (Buckwalter) + mac ara: Arabic (Macintosh) + plisi al: Albanian (Plisi) + phonetic am: Armenian (phonetic) + phonetic-alt am: Armenian (alt. phonetic) + eastern am: Armenian (eastern) + western am: Armenian (western) + eastern-alt am: Armenian (alt. eastern) + nodeadkeys at: German (Austria, no dead keys) + sundeadkeys at: German (Austria, with Sun dead keys) + mac at: German (Austria, Macintosh) + cyrillic az: Azerbaijani (Cyrillic) + legacy by: Belarusian (legacy) + latin by: Belarusian (Latin) + oss be: Belgian (alt.) + oss_latin9 be: Belgian (alt., Latin-9 only) + oss_sundeadkeys be: Belgian (alt., with Sun dead keys) + iso-alternate be: Belgian (alt. ISO) + nodeadkeys be: Belgian (no dead keys) + sundeadkeys be: Belgian (with Sun dead keys) + wang be: Belgian (Wang 724 AZERTY) + probhat bd: Bangla (Probhat) + ben in: Bangla (India) + ben_probhat in: Bangla (India, Probhat) + ben_baishakhi in: Bangla (India, Baishakhi) + ben_bornona in: Bangla (India, Bornona) + ben_gitanjali in: Bangla (India, Uni Gitanjali) + ben_inscript in: Bangla (India, Baishakhi Inscript) + eeyek in: Manipuri (Eeyek) + guj in: Gujarati + guru in: Punjabi (Gurmukhi) + jhelum in: Punjabi (Gurmukhi Jhelum) + kan in: Kannada + kan-kagapa in: Kannada (KaGaPa phonetic) + mal in: Malayalam + mal_lalitha in: Malayalam (Lalitha) + mal_enhanced in: Malayalam (enhanced Inscript, with rupee) + ori in: Oriya + olck in: Ol Chiki + tam_unicode in: Tamil (Unicode) + tam_keyboard_with_numerals in: Tamil (keyboard with numerals) + tam_TAB in: Tamil (TAB typewriter) + tam_TSCII in: Tamil (TSCII typewriter) + tam in: Tamil + tel in: Telugu + tel-kagapa in: Telugu (KaGaPa phonetic) + tel-sarala in: Telugu (Sarala) + urd-phonetic in: Urdu (phonetic) + urd-phonetic3 in: Urdu (alt. phonetic) + urd-winkeys in: Urdu (Win keys) + bolnagri in: Hindi (Bolnagri) + hin-wx in: Hindi (Wx) + hin-kagapa in: Hindi (KaGaPa phonetic) + san-kagapa in: Sanskrit (KaGaPa phonetic) + mar-kagapa in: Marathi (KaGaPa phonetic) + eng in: English (India, with rupee) + alternatequotes ba: Bosnian (with guillemets) + unicode ba: Bosnian (with Bosnian digraphs) + unicodeus ba: Bosnian (US, with Bosnian digraphs) + us ba: Bosnian (US, with Bosnian letters) + nodeadkeys br: Portuguese (Brazil, no dead keys) + dvorak br: Portuguese (Brazil, Dvorak) + nativo br: Portuguese (Brazil, Nativo) + nativo-us br: Portuguese (Brazil, Nativo for US keyboards) + nativo-epo br: Esperanto (Brazil, Nativo) + thinkpad br: Portuguese (Brazil, IBM/Lenovo ThinkPad) + phonetic bg: Bulgarian (traditional phonetic) + bas_phonetic bg: Bulgarian (new phonetic) + ber dz: Berber (Algeria, Tifinagh) + ar dz: Arabic (Algeria) + french ma: French (Morocco) + tifinagh ma: Berber (Morocco, Tifinagh) + tifinagh-alt ma: Berber (Morocco, Tifinagh alt.) + tifinagh-alt-phonetic ma: Berber (Morocco, Tifinagh alt. phonetic) + tifinagh-extended ma: Berber (Morocco, Tifinagh extended) + tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic) + tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic) + french cm: French (Cameroon) + qwerty cm: Cameroon Multilingual (QWERTY) + azerty cm: Cameroon Multilingual (AZERTY) + dvorak cm: Cameroon Multilingual (Dvorak) + mmuock cm: Mmuock + fr-dvorak ca: French (Canada, Dvorak) + fr-legacy ca: French (Canada, legacy) + multix ca: Canadian Multilingual + multi ca: Canadian Multilingual (1st part) + multi-2gr ca: Canadian Multilingual (2nd part) + ike ca: Inuktitut + eng ca: English (Canada) + tib cn: Tibetan + tib_asciinum cn: Tibetan (with ASCII numerals) + ug cn: Uyghur + alternatequotes hr: Croatian (with guillemets) + unicode hr: Croatian (with Croatian digraphs) + unicodeus hr: Croatian (US, with Croatian digraphs) + us hr: Croatian (US, with Croatian letters) + bksl cz: Czech (with <\|> key) + qwerty cz: Czech (QWERTY) + qwerty_bksl cz: Czech (QWERTY, extended backslash) + ucw cz: Czech (UCW, only accented letters) + dvorak-ucw cz: Czech (US, Dvorak, UCW support) + rus cz: Russian (Czech, phonetic) + nodeadkeys dk: Danish (no dead keys) + winkeys dk: Danish (Win keys) + mac dk: Danish (Macintosh) + mac_nodeadkeys dk: Danish (Macintosh, no dead keys) + dvorak dk: Danish (Dvorak) + sundeadkeys nl: Dutch (with Sun dead keys) + mac nl: Dutch (Macintosh) + std nl: Dutch (standard) + nodeadkeys ee: Estonian (no dead keys) + dvorak ee: Estonian (Dvorak) + us ee: Estonian (US, with Estonian letters) + pes_keypad ir: Persian (with Persian keypad) + ku ir: Kurdish (Iran, Latin Q) + ku_f ir: Kurdish (Iran, F) + ku_alt ir: Kurdish (Iran, Latin Alt-Q) + ku_ara ir: Kurdish (Iran, Arabic-Latin) + ku iq: Kurdish (Iraq, Latin Q) + ku_f iq: Kurdish (Iraq, F) + ku_alt iq: Kurdish (Iraq, Latin Alt-Q) + ku_ara iq: Kurdish (Iraq, Arabic-Latin) + nodeadkeys fo: Faroese (no dead keys) + classic fi: Finnish (classic) + nodeadkeys fi: Finnish (classic, no dead keys) + winkeys fi: Finnish (Winkeys) + smi fi: Northern Saami (Finland) + mac fi: Finnish (Macintosh) + nodeadkeys fr: French (no dead keys) + sundeadkeys fr: French (with Sun dead keys) + oss fr: French (alt.) + oss_latin9 fr: French (alt., Latin-9 only) + oss_nodeadkeys fr: French (alt., no dead keys) + oss_sundeadkeys fr: French (alt., with Sun dead keys) + latin9 fr: French (legacy, alt.) + latin9_nodeadkeys fr: French (legacy, alt., no dead keys) + latin9_sundeadkeys fr: French (legacy, alt., with Sun dead keys) + bepo fr: French (Bepo, ergonomic, Dvorak way) + bepo_latin9 fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only) + dvorak fr: French (Dvorak) + mac fr: French (Macintosh) + azerty fr: French (AZERTY) + bre fr: French (Breton) + oci fr: Occitan + geo fr: Georgian (France, AZERTY Tskapo) + generic gh: English (Ghana, multilingual) + akan gh: Akan + ewe gh: Ewe + fula gh: Fula + ga gh: Ga + hausa gh: Hausa (Ghana) + avn gh: Avatime + gillbt gh: English (Ghana, GILLBT) + ergonomic ge: Georgian (ergonomic) + mess ge: Georgian (MESS) + ru ge: Russian (Georgia) + os ge: Ossetian (Georgia) + deadacute de: German (dead acute) + deadgraveacute de: German (dead grave acute) + nodeadkeys de: German (no dead keys) + T3 de: German (T3) + ro de: Romanian (Germany) + ro_nodeadkeys de: Romanian (Germany, no dead keys) + dvorak de: German (Dvorak) + sundeadkeys de: German (with Sun dead keys) + neo de: German (Neo 2) + mac de: German (Macintosh) + mac_nodeadkeys de: German (Macintosh, no dead keys) + dsb de: Lower Sorbian + dsb_qwertz de: Lower Sorbian (QWERTZ) + qwerty de: German (QWERTY) + tr de: Turkish (Germany) + ru de: Russian (Germany, phonetic) + deadtilde de: German (dead tilde) + simple gr: Greek (simple) + extended gr: Greek (extended) + nodeadkeys gr: Greek (no dead keys) + polytonic gr: Greek (polytonic) + standard hu: Hungarian (standard) + nodeadkeys hu: Hungarian (no dead keys) + qwerty hu: Hungarian (QWERTY) + 101_qwertz_comma_dead hu: Hungarian (101/QWERTZ/comma/dead keys) + 101_qwertz_comma_nodead hu: Hungarian (101/QWERTZ/comma/no dead keys) + 101_qwertz_dot_dead hu: Hungarian (101/QWERTZ/dot/dead keys) + 101_qwertz_dot_nodead hu: Hungarian (101/QWERTZ/dot/no dead keys) + 101_qwerty_comma_dead hu: Hungarian (101/QWERTY/comma/dead keys) + 101_qwerty_comma_nodead hu: Hungarian (101/QWERTY/comma/no dead keys) + 101_qwerty_dot_dead hu: Hungarian (101/QWERTY/dot/dead keys) + 101_qwerty_dot_nodead hu: Hungarian (101/QWERTY/dot/no dead keys) + 102_qwertz_comma_dead hu: Hungarian (102/QWERTZ/comma/dead keys) + 102_qwertz_comma_nodead hu: Hungarian (102/QWERTZ/comma/no dead keys) + 102_qwertz_dot_dead hu: Hungarian (102/QWERTZ/dot/dead keys) + 102_qwertz_dot_nodead hu: Hungarian (102/QWERTZ/dot/no dead keys) + 102_qwerty_comma_dead hu: Hungarian (102/QWERTY/comma/dead keys) + 102_qwerty_comma_nodead hu: Hungarian (102/QWERTY/comma/no dead keys) + 102_qwerty_dot_dead hu: Hungarian (102/QWERTY/dot/dead keys) + 102_qwerty_dot_nodead hu: Hungarian (102/QWERTY/dot/no dead keys) + Sundeadkeys is: Icelandic (with Sun dead keys) + nodeadkeys is: Icelandic (no dead keys) + mac_legacy is: Icelandic (Macintosh, legacy) + mac is: Icelandic (Macintosh) + dvorak is: Icelandic (Dvorak) + lyx il: Hebrew (lyx) + phonetic il: Hebrew (phonetic) + biblical il: Hebrew (Biblical, Tiro) + nodeadkeys it: Italian (no dead keys) + winkeys it: Italian (Winkeys) + mac it: Italian (Macintosh) + us it: Italian (US, with Italian letters) + geo it: Georgian (Italy) + ibm it: Italian (IBM 142) + kana jp: Japanese (Kana) + kana86 jp: Japanese (Kana 86) + OADG109A jp: Japanese (OADG 109A) + mac jp: Japanese (Macintosh) + dvorak jp: Japanese (Dvorak) + phonetic kg: Kyrgyz (phonetic) + ruskaz kz: Russian (Kazakhstan, with Kazakh) + kazrus kz: Kazakh (with Russian) + ext kz: Kazakh (extended) + stea la: Lao (STEA proposed standard layout) + nodeadkeys latam: Spanish (Latin American, no dead keys) + deadtilde latam: Spanish (Latin American, dead tilde) + sundeadkeys latam: Spanish (Latin American, with Sun dead keys) + dvorak latam: Spanish (Latin American, Dvorak) + std lt: Lithuanian (standard) + us lt: Lithuanian (US, with Lithuanian letters) + ibm lt: Lithuanian (IBM LST 1205-92) + lekp lt: Lithuanian (LEKP) + lekpa lt: Lithuanian (LEKPa) + apostrophe lv: Latvian (apostrophe) + tilde lv: Latvian (tilde) + fkey lv: Latvian (F) + modern lv: Latvian (modern) + ergonomic lv: Latvian (ergonomic, ŪGJRMV) + adapted lv: Latvian (adapted) + cyrillic me: Montenegrin (Cyrillic) + cyrillicyz me: Montenegrin (Cyrillic, ZE and ZHE swapped) + latinunicode me: Montenegrin (Latin, Unicode) + latinyz me: Montenegrin (Latin, QWERTY) + latinunicodeyz me: Montenegrin (Latin, Unicode, QWERTY) + cyrillicalternatequotes me: Montenegrin (Cyrillic with guillemets) + latinalternatequotes me: Montenegrin (Latin with guillemets) + nodeadkeys mk: Macedonian (no dead keys) + us mt: Maltese (with US layout) + nodeadkeys no: Norwegian (no dead keys) + winkeys no: Norwegian (Win keys) + dvorak no: Norwegian (Dvorak) + smi no: Northern Saami (Norway) + smi_nodeadkeys no: Northern Saami (Norway, no dead keys) + mac no: Norwegian (Macintosh) + mac_nodeadkeys no: Norwegian (Macintosh, no dead keys) + colemak no: Norwegian (Colemak) + legacy pl: Polish (legacy) + qwertz pl: Polish (QWERTZ) + dvorak pl: Polish (Dvorak) + dvorak_quotes pl: Polish (Dvorak, with Polish quotes on quotemark key) + dvorak_altquotes pl: Polish (Dvorak, with Polish quotes on key 1) + csb pl: Kashubian + szl pl: Silesian + ru_phonetic_dvorak pl: Russian (Poland, phonetic Dvorak) + dvp pl: Polish (programmer Dvorak) + nodeadkeys pt: Portuguese (no dead keys) + sundeadkeys pt: Portuguese (with Sun dead keys) + mac pt: Portuguese (Macintosh) + mac_nodeadkeys pt: Portuguese (Macintosh, no dead keys) + mac_sundeadkeys pt: Portuguese (Macintosh, with Sun dead keys) + nativo pt: Portuguese (Nativo) + nativo-us pt: Portuguese (Nativo for US keyboards) + nativo-epo pt: Esperanto (Portugal, Nativo) + cedilla ro: Romanian (cedilla) + std ro: Romanian (standard) + std_cedilla ro: Romanian (standard cedilla) + winkeys ro: Romanian (Win keys) + phonetic ru: Russian (phonetic) + phonetic_winkeys ru: Russian (phonetic, with Win keys) + typewriter ru: Russian (typewriter) + legacy ru: Russian (legacy) + typewriter-legacy ru: Russian (typewriter, legacy) + tt ru: Tatar + os_legacy ru: Ossetian (legacy) + os_winkeys ru: Ossetian (Win keys) + cv ru: Chuvash + cv_latin ru: Chuvash (Latin) + udm ru: Udmurt + kom ru: Komi + sah ru: Yakut + xal ru: Kalmyk + dos ru: Russian (DOS) + mac ru: Russian (Macintosh) + srp ru: Serbian (Russia) + bak ru: Bashkirian + chm ru: Mari + phonetic_azerty ru: Russian (phonetic, AZERTY) + phonetic_dvorak ru: Russian (phonetic, Dvorak) + phonetic_fr ru: Russian (phonetic, French) + yz rs: Serbian (Cyrillic, ZE and ZHE swapped) + latin rs: Serbian (Latin) + latinunicode rs: Serbian (Latin, Unicode) + latinyz rs: Serbian (Latin, QWERTY) + latinunicodeyz rs: Serbian (Latin, Unicode, QWERTY) + alternatequotes rs: Serbian (Cyrillic with guillemets) + latinalternatequotes rs: Serbian (Latin with guillemets) + rue rs: Pannonian Rusyn + alternatequotes si: Slovenian (with guillemets) + us si: Slovenian (US, with Slovenian letters) + bksl sk: Slovak (extended backslash) + qwerty sk: Slovak (QWERTY) + qwerty_bksl sk: Slovak (QWERTY, extended backslash) + nodeadkeys es: Spanish (no dead keys) + winkeys es: Spanish (Win keys) + deadtilde es: Spanish (dead tilde) + sundeadkeys es: Spanish (with Sun dead keys) + dvorak es: Spanish (Dvorak) + ast es: Asturian (Spain, with bottom-dot H and bottom-dot L) + cat es: Catalan (Spain, with middle-dot L) + mac es: Spanish (Macintosh) + nodeadkeys se: Swedish (no dead keys) + dvorak se: Swedish (Dvorak) + rus se: Russian (Sweden, phonetic) + rus_nodeadkeys se: Russian (Sweden, phonetic, no dead keys) + smi se: Northern Saami (Sweden) + mac se: Swedish (Macintosh) + svdvorak se: Swedish (Svdvorak) + us_dvorak se: Swedish (based on US Intl. Dvorak) + swl se: Swedish Sign Language + legacy ch: German (Switzerland, legacy) + de_nodeadkeys ch: German (Switzerland, no dead keys) + de_sundeadkeys ch: German (Switzerland, with Sun dead keys) + fr ch: French (Switzerland) + fr_nodeadkeys ch: French (Switzerland, no dead keys) + fr_sundeadkeys ch: French (Switzerland, with Sun dead keys) + fr_mac ch: French (Switzerland, Macintosh) + de_mac ch: German (Switzerland, Macintosh) + syc sy: Syriac + syc_phonetic sy: Syriac (phonetic) + ku sy: Kurdish (Syria, Latin Q) + ku_f sy: Kurdish (Syria, F) + ku_alt sy: Kurdish (Syria, Latin Alt-Q) + legacy tj: Tajik (legacy) + tam_unicode lk: Tamil (Sri Lanka, Unicode) + tam_TAB lk: Tamil (Sri Lanka, TAB Typewriter) + us lk: Sinhala (US, with Sinhala letters) + tis th: Thai (TIS-820.2538) + pat th: Thai (Pattachote) + f tr: Turkish (F) + alt tr: Turkish (Alt-Q) + sundeadkeys tr: Turkish (with Sun dead keys) + ku tr: Kurdish (Turkey, Latin Q) + ku_f tr: Kurdish (Turkey, F) + ku_alt tr: Kurdish (Turkey, Latin Alt-Q) + intl tr: Turkish (intl., with dead keys) + crh tr: Crimean Tatar (Turkish Q) + crh_f tr: Crimean Tatar (Turkish F) + crh_alt tr: Crimean Tatar (Turkish Alt-Q) + indigenous tw: Taiwanese (indigenous) + saisiyat tw: Saisiyat (Taiwan) + phonetic ua: Ukrainian (phonetic) + typewriter ua: Ukrainian (typewriter) + winkeys ua: Ukrainian (Win keys) + legacy ua: Ukrainian (legacy) + rstu ua: Ukrainian (standard RSTU) + rstu_ru ua: Russian (Ukraine, standard RSTU) + homophonic ua: Ukrainian (homophonic) + extd gb: English (UK, extended, with Win keys) + intl gb: English (UK, intl., with dead keys) + dvorak gb: English (UK, Dvorak) + dvorakukp gb: English (UK, Dvorak, with UK punctuation) + mac gb: English (UK, Macintosh) + mac_intl gb: English (UK, intl., Macintosh) + colemak gb: English (UK, Colemak) + latin uz: Uzbek (Latin) + kr104 kr: Korean (101/104 key compatible) + CloGaelach ie: CloGaelach + UnicodeExpert ie: Irish (UnicodeExpert) + ogam ie: Ogham + ogam_is434 ie: Ogham (IS434) + urd-crulp pk: Urdu (Pakistan, CRULP) + urd-nla pk: Urdu (Pakistan, NLA) + ara pk: Arabic (Pakistan) + snd pk: Sindhi + legacy epo: Esperanto (displaced semicolon and quote, obsolete) + igbo ng: Igbo + yoruba ng: Yoruba + hausa ng: Hausa (Nigeria) + left_hand brai: Braille (left-handed) + right_hand brai: Braille (right-handed) + alt tm: Turkmen (Alt-Q) + fr-oss ml: French (Mali, alt.) + us-mac ml: English (Mali, US, Macintosh) + us-intl ml: English (Mali, US, intl.) + kik ke: Kikuyu + qwerty-bay ph: Filipino (QWERTY, Baybayin) + capewell-dvorak ph: Filipino (Capewell-Dvorak, Latin) + capewell-dvorak-bay ph: Filipino (Capewell-Dvorak, Baybayin) + capewell-qwerf2k6 ph: Filipino (Capewell-QWERF 2006, Latin) + capewell-qwerf2k6-bay ph: Filipino (Capewell-QWERF 2006, Baybayin) + colemak ph: Filipino (Colemak, Latin) + colemak-bay ph: Filipino (Colemak, Baybayin) + dvorak ph: Filipino (Dvorak, Latin) + dvorak-bay ph: Filipino (Dvorak, Baybayin) + gag md: Moldavian (Gagauz) + phonetic my: Malay (Jawi, phonetic) + +! option + grp Switching to another layout + grp:switch Right Alt (while pressed) + grp:lswitch Left Alt (while pressed) + grp:lwin_switch Left Win (while pressed) + grp:rwin_switch Left Win (while pressed) + grp:win_switch Any Win (while pressed) + grp:menu_switch Menu (while pressed), Shift+Menu for Menu + grp:caps_switch Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action + grp:rctrl_switch Right Ctrl (while pressed) + grp:toggle Right Alt + grp:lalt_toggle Left Alt + grp:caps_toggle Caps Lock + grp:shift_caps_toggle Shift+Caps Lock + grp:shift_caps_switch Caps Lock to first layout; Shift+Caps Lock to last layout + grp:win_menu_switch Left Win to first layout; Right Win/Menu to last layout + grp:lctrl_rctrl_switch Left Ctrl to first layout; Right Ctrl to last layout + grp:alt_caps_toggle Alt+Caps Lock + grp:shifts_toggle Both Shift together + grp:alts_toggle Both Alt together + grp:ctrls_toggle Both Ctrl together + grp:ctrl_shift_toggle Ctrl+Shift + grp:lctrl_lshift_toggle Left Ctrl+Left Shift + grp:rctrl_rshift_toggle Right Ctrl+Right Shift + grp:ctrl_alt_toggle Alt+Ctrl + grp:alt_shift_toggle Alt+Shift + grp:lalt_lshift_toggle Left Alt+Left Shift + grp:alt_space_toggle Alt+Space + grp:menu_toggle Menu + grp:lwin_toggle Left Win + grp:win_space_toggle Win+Space + grp:rwin_toggle Right Win + grp:lshift_toggle Left Shift + grp:rshift_toggle Right Shift + grp:lctrl_toggle Left Ctrl + grp:rctrl_toggle Right Ctrl + grp:sclk_toggle Scroll Lock + grp:lctrl_lwin_rctrl_menu Left Ctrl+Left Win to first layout; Right Ctrl+Menu to second layout + grp:lctrl_lwin_toggle Left Ctrl+Left Win + lv3 Key to choose the 3rd level + lv3:switch Right Ctrl + lv3:menu_switch Menu + lv3:win_switch Any Win + lv3:lwin_switch Left Win + lv3:rwin_switch Right Win + lv3:alt_switch Any Alt + lv3:lalt_switch Left Alt + lv3:ralt_switch Right Alt + lv3:ralt_switch_multikey Right Alt; Shift+Right Alt as Compose + lv3:ralt_alt Right Alt never chooses 3rd level + lv3:enter_switch Enter on keypad + lv3:caps_switch Caps Lock + lv3:bksl_switch Backslash + lv3:lsgt_switch <Less/Greater> + lv3:caps_switch_latch Caps Lock; acts as onetime lock when pressed together with another 3rd-level chooser + lv3:bksl_switch_latch Backslash; acts as onetime lock when pressed together with another 3rd level chooser + lv3:lsgt_switch_latch <Less/Greater>; acts as onetime lock when pressed together with another 3rd level chooser + ctrl Ctrl position + ctrl:nocaps Caps Lock as Ctrl + ctrl:lctrl_meta Left Ctrl as Meta + ctrl:swapcaps Swap Ctrl and Caps Lock + ctrl:ac_ctrl At left of 'A' + ctrl:aa_ctrl At bottom left + ctrl:rctrl_ralt Right Ctrl as Right Alt + ctrl:menu_rctrl Menu as Right Ctrl + ctrl:swap_lalt_lctl Swap Left Alt with Left Ctrl + ctrl:swap_lwin_lctl Swap Left Win with Left Ctrl + ctrl:swap_rwin_rctl Swap Right Win with Right Ctrl + ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Left Alt + grp_led Use keyboard LED to show alternative layout + grp_led:num Num Lock + grp_led:caps Caps Lock + grp_led:scroll Scroll Lock + keypad Layout of numeric keypad + keypad:legacy Legacy + keypad:oss Unicode additions (arrows and math operators) + keypad:future Unicode additions (arrows and math operators; math operators on default level) + keypad:legacy_wang Legacy Wang 724 + keypad:oss_wang Wang 724 keypad with Unicode additions (arrows and math operators) + keypad:future_wang Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level) + keypad:hex Hexadecimal + keypad:atm ATM/phone-style + kpdl Numeric keypad Delete behavior + kpdl:dot Legacy key with dot + kpdl:comma Legacy key with comma + kpdl:dotoss Four-level key with dot + kpdl:dotoss_latin9 Four-level key with dot, Latin-9 only + kpdl:commaoss Four-level key with comma + kpdl:momayyezoss Four-level key with momayyez + kpdl:kposs Four-level key with abstract separators + kpdl:semi Semicolon on third level + caps Caps Lock behavior + caps:internal Caps Lock uses internal capitalization; Shift "pauses" Caps Lock + caps:internal_nocancel Caps Lock uses internal capitalization; Shift does not affect Caps Lock + caps:shift Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock + caps:shift_nocancel Caps Lock acts as Shift with locking; Shift does not affect Caps Lock + caps:capslock Caps Lock toggles normal capitalization of alphabetic characters + caps:shiftlock Caps Lock toggles ShiftLock (affects all keys) + caps:swapescape Swap ESC and Caps Lock + caps:escape Make Caps Lock an additional Esc + caps:backspace Make Caps Lock an additional Backspace + caps:super Make Caps Lock an additional Super + caps:hyper Make Caps Lock an additional Hyper + caps:menu Make Caps Lock an additional Menu key + caps:numlock Make Caps Lock an additional Num Lock + caps:ctrl_modifier Caps Lock is also a Ctrl + caps:none Caps Lock is disabled + altwin Alt/Win key behavior + altwin:menu Add the standard behavior to Menu key + altwin:meta_alt Alt and Meta are on Alt + altwin:alt_win Alt is mapped to Win and the usual Alt + altwin:ctrl_win Ctrl is mapped to Win and the usual Ctrl keys + altwin:ctrl_alt_win Ctrl is mapped to Alt; Alt is mapped to Win + altwin:meta_win Meta is mapped to Win + altwin:left_meta_win Meta is mapped to Left Win + altwin:hyper_win Hyper is mapped to Win + altwin:alt_super_win Alt is mapped to Right Win, Super to Menu + altwin:swap_lalt_lwin Left Alt is swapped with Left Win + altwin:swap_alt_win Alt is swapped with Win + altwin:prtsc_rwin Win is mapped to PrtSc and the usual Win + Compose key Position of Compose key + compose:ralt Right Alt + compose:lwin Left Win + compose:lwin-altgr 3rd level of Left Win + compose:rwin Right Win + compose:rwin-altgr 3rd level of Right Win + compose:menu Menu + compose:menu-altgr 3rd level of Menu + compose:lctrl Left Ctrl + compose:lctrl-altgr 3rd level of Left Ctrl + compose:rctrl Right Ctrl + compose:rctrl-altgr 3rd level of Right Ctrl + compose:caps Caps Lock + compose:caps-altgr 3rd level of Caps Lock + compose:102 <Less/Greater> + compose:102-altgr 3rd level of <Less/Greater> + compose:paus Pause + compose:prsc PrtSc + compose:sclk Scroll Lock + compat Miscellaneous compatibility options + numpad:pc Default numeric keypad keys + numpad:mac Numeric keypad always enters digits (as in macOS) + numpad:microsoft Num Lock on: digits; Shift for arrow keys. Num Lock off: arrow keys (as in Windows) + numpad:shift3 Shift does not cancel Num Lock, chooses 3rd level instead + srvrkeys:none Special keys (Ctrl+Alt+<key>) handled in a server + apple:alupckeys Apple Aluminium: emulate PC keys (PrtSc, Scroll Lock, Pause, Num Lock) + shift:breaks_caps Shift cancels Caps Lock + misc:typo Enable extra typographic characters + shift:both_capslock Both Shift together enable Caps Lock + shift:both_capslock_cancel Both Shift together enable Caps Lock; one Shift key disables it + shift:both_shiftlock Both Shift together enable Shift Lock + keypad:pointerkeys Shift + Num Lock enables PointerKeys + grab:break_actions Allow breaking grabs with keyboard actions (warning: security risk) + grab:debug Allow grab and window tree logging + currencysign Adding currency signs to certain keys + eurosign:e Euro on E + eurosign:2 Euro on 2 + eurosign:4 Euro on 4 + eurosign:5 Euro on 5 + rupeesign:4 Rupee on 4 + lv5 Key to choose 5th level + lv5:lsgt_switch_lock <Less/Greater> chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser + lv5:ralt_switch_lock Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser + lv5:lwin_switch_lock Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser + lv5:rwin_switch_lock Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser + nbsp Using space key to input non-breaking space + nbsp:none Usual space at any level + nbsp:level2 Non-breaking space at the 2nd level + nbsp:level3 Non-breaking space at the 3rd level + nbsp:level3s Non-breaking space at the 3rd level, nothing at the 4th level + nbsp:level3n Non-breaking space at the 3rd level, thin non-breaking space at the 4th level + nbsp:level4 Non-breaking space at the 4th level + nbsp:level4n Non-breaking space at the 4th level, thin non-breaking space at the 6th level + nbsp:level4nl Non-breaking space at the 4th level, thin non-breaking space at the 6th level (via Ctrl+Shift) + nbsp:zwnj2 Zero-width non-joiner at the 2nd level + nbsp:zwnj2zwj3 Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level + nbsp:zwnj2zwj3nb4 Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level + nbsp:zwnj2nb3 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level + nbsp:zwnj2nb3s Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, nothing at the 4th level + nbsp:zwnj2nb3zwj4 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, zero-width joiner at the 4th level + nbsp:zwnj2nb3nnb4 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, thin non-breaking space at the 4th level + nbsp:zwnj3zwj4 Zero-width non-joiner at the 3rd level, zero-width joiner at the 4th level + japan Japanese keyboard options + japan:kana_lock Kana Lock key is locking + japan:nicola_f_bs NICOLA-F style Backspace + japan:hztg_escape Make Zenkaku Hankaku an additional Esc + korean Korean Hangul/Hanja keys + korean:hw_keys Hardware Hangul/Hanja keys + korean:ralt_rctrl Right Alt as Hangul, right Ctrl as Hanja + korean:rctrl_ralt Right Ctrl as Hangul, right Alt as Hanja + esperanto Adding Esperanto supersigned letters + esperanto:qwerty To the corresponding key in a QWERTY layout + esperanto:dvorak To the corresponding key in a Dvorak layout + esperanto:colemak To the corresponding key in a Colemak layout + solaris Maintain key compatibility with old Solaris keycodes + solaris:sun_compat Sun Key compatibility + terminate Key sequence to kill the X server + terminate:ctrl_alt_bksp Ctrl+Alt+Backspace diff --git a/squashfs-root/usr/share/X11/xkb/rules/evdev.xml b/squashfs-root/usr/share/X11/xkb/rules/evdev.xml new file mode 100644 index 0000000..c7ad6a6 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/rules/evdev.xml @@ -0,0 +1,7230 @@ + + + + + + + pc101 + Generic 101-key PC + Generic + + + + + pc102 + Generic 101-key PC (intl.) + Generic + + + + + pc104 + Generic 104-key PC + Generic + + + + + pc105 + Generic 105-key PC (intl.) + Generic + + + + + dell101 + Dell 101-key PC + Dell + + + + + latitude + Dell Latitude laptop + Dell + + + + + dellm65 + Dell Precision M65 laptop + Dell + + + + + everex + Everex STEPnote + Everex + + + + + flexpro + Keytronic FlexPro + Keytronic + + + + + microsoft + Microsoft Natural + Microsoft + + + + + omnikey101 + Northgate OmniKey 101 + Northgate + + + + + winbook + Winbook Model XP5 + Generic + + + + + pc98 + PC-98 + Generic + + + + + a4techKB21 + A4Tech KB-21 + A4Tech + + + + + a4techKBS8 + A4Tech KBS-8 + A4Tech + + + + + a4_rfkb23 + A4Tech Wireless Desktop RFKB-23 + A4Tech + + + + + airkey + Acer AirKey V + Acer + + + + + azonaRF2300 + Azona RF2300 wireless Internet + Azona + + + + + scorpius + Advance Scorpius KI + Scorpius + + + + + brother + Brother Internet + Brother + + + + + btc5113rf + BTC 5113RF Multimedia + BTC + + + + + btc5126t + BTC 5126T + BTC + + + + + btc6301urf + BTC 6301URF + BTC + + + + + btc9000 + BTC 9000 + BTC + + + + + btc9000a + BTC 9000A + BTC + + + + + btc9001ah + BTC 9001AH + BTC + + + + + btc5090 + BTC 5090 + BTC + + + + + btc9019u + BTC 9019U + BTC + + + + + btc9116u + BTC 9116U Mini Wireless Internet and Gaming + + + + + cherryblue + Cherry Blue Line CyBo@rd + + + + + cherryblueb + Cherry CyMotion Master XPress + Cherry + + + + + cherrybluea + Cherry Blue Line CyBo@rd (alt.) + Cherry + + + + + cherrycyboard + Cherry CyBo@rd USB-Hub + Cherry + + + + + cherrycmexpert + Cherry CyMotion Expert + Cherry + + + + + cherrybunlim + Cherry B.UNLIMITED + Cherry + + + + + chicony + Chicony Internet + Chicony + + + + + chicony0108 + Chicony KU-0108 + Chicony + + + + + chicony0420 + Chicony KU-0420 + Chicony + + + + + chicony9885 + Chicony KB-9885 + Chicony + + + + + compaqeak8 + Compaq Easy Access + Compaq + + + + + compaqik7 + Compaq Internet (7 keys) + Compaq + + + + + compaqik13 + Compaq Internet (13 keys) + Compaq + + + + + compaqik18 + Compaq Internet (18 keys) + Compaq + + + + + cymotionlinux + Cherry CyMotion Master Linux + Cherry + + + + + armada + Compaq Armada laptop + Compaq + + + + + presario + Compaq Presario laptop + Compaq + + + + + ipaq + Compaq iPaq + Compaq + + + + + dell + Dell + Dell + + + + + dellsk8125 + Dell SK-8125 + Dell + + + + + dellsk8135 + Dell SK-8135 + Dell + + + + + dellusbmm + Dell USB Multimedia + Dell + + + + + inspiron + Dell Inspiron 6000/8000 laptop + Dell + + + + + precision_m + Dell Precision M laptop + Dell + + + + + dexxa + Dexxa Wireless Desktop + Dexxa + + + + + diamond + Diamond 9801/9802 + Diamond + + + + + dtk2000 + DTK2000 + + + + + ennyah_dkb1008 + Ennyah DKB-1008 + Ennyah + + + + + fscaa1667g + Fujitsu-Siemens Amilo laptop + Fujitsu-Siemens + + + + + genius + Genius Comfy KB-16M/Multimedia KWD-910 + Genius + + + + + geniuscomfy + Genius Comfy KB-12e + Genius + + + + + geniuscomfy2 + Genius Comfy KB-21e-Scroll + Genius + + + + + geniuskb19e + Genius KB-19e NB + Genius + + + + + geniuskkb2050hs + Genius KKB-2050HS + Genius + + + + + gyration + Gyration + Gyration + + + + + htcdream + HTC Dream + HTC + + + + + kinesis + Kinesis + Kinesis + + + + + logitech_base + Logitech + Logitech + + + + + logitech_g15 + Logitech G15 extra keys via G15daemon + Logitech + + + + + hpi6 + Hewlett-Packard Internet + Hewlett-Packard + + + + + hp250x + Hewlett-Packard NEC SK-2500 Multimedia + Hewlett-Packard + + + + + hpxe3gc + Hewlett-Packard Omnibook XE3 GC + Hewlett-Packard + + + + + hpxe3gf + Hewlett-Packard Omnibook XE3 GF + Hewlett-Packard + + + + + hpxt1000 + Hewlett-Packard Omnibook XT1000 + Hewlett-Packard + + + + + hpdv5 + Hewlett-Packard Pavilion dv5 + Hewlett-Packard + + + + + hpzt11xx + Hewlett-Packard Pavilion ZT1100 + Hewlett-Packard + + + + + hp500fa + Hewlett-Packard Omnibook 500 FA + Hewlett-Packard + + + + + hp5xx + Hewlett-Packard Omnibook 500 + Hewlett-Packard + + + + + hpnx9020 + Hewlett-Packard nx9020 + Hewlett-Packard + + + + + hp6000 + Hewlett-Packard Omnibook 6000/6100 + Hewlett-Packard + + + + + honeywell_euroboard + Honeywell Euroboard + Hewlett-Packard + + + + + hpmini110 + Hewlett-Packard Mini 110 laptop + Hewlett-Packard + + + + + rapidaccess + IBM Rapid Access + Lenovo (previously IBM) + + + + + rapidaccess2 + IBM Rapid Access II + Lenovo (previously IBM) + + + + + thinkpad + IBM ThinkPad 560Z/600/600E/A22E + Lenovo (previously IBM) + + + + + thinkpad60 + IBM ThinkPad R60/T60/R61/T61 + Lenovo (previously IBM) + + + + + thinkpadz60 + IBM ThinkPad Z60m/Z60t/Z61m/Z61t + Lenovo (previously IBM) + + + + + ibm_spacesaver + IBM Space Saver + Lenovo (previously IBM) + + + + + logiaccess + Logitech Access + Logitech + + + + + logiclx300 + Logitech Cordless Desktop LX-300 + Logitech + + + + + logii350 + Logitech Internet 350 + Logitech + 046d:c313 + + + + + logimel + Logitech Internet 350 + Logitech + + + + + logicd + Logitech Cordless Desktop + Logitech + + + + + logicd_it + Logitech Cordless Desktop iTouch + Logitech + + + + + logicd_nav + Logitech Cordless Desktop Navigator + Logitech + + + + + logicd_opt + Logitech Cordless Desktop Optical + Logitech + + + + + logicda + Logitech Cordless Desktop (alt.) + Logitech + + + + + logicdpa2 + Logitech Cordless Desktop Pro (2nd alt.) + Logitech + + + + + logicfn + Logitech Cordless Freedom/Desktop Navigator + Logitech + + + + + logicdn + Logitech Cordless Desktop Navigator + Logitech + + + + + logiitc + Logitech iTouch Cordless Y-RB6 + Logitech + + + + + logiik + Logitech Internet + Logitech + + + + + itouch + Logitech iTouch + Logitech + + + + + logicink + Logitech Internet Navigator + Logitech + + + + + logiex110 + Logitech Cordless Desktop EX110 + Logitech + + + + + logiinkse + Logitech iTouch Internet Navigator SE + Logitech + + + + + logiinkseusb + Logitech iTouch Internet Navigator SE USB + Logitech + + + + + logiultrax + Logitech Ultra-X + Logitech + + + + + logiultraxc + Logitech Ultra-X Cordless Media Desktop + Logitech + + + + + logidinovo + Logitech diNovo + Logitech + + + + + logidinovoedge + Logitech diNovo Edge + Logitech + + + + + mx1998 + Memorex MX1998 + Memorex + + + + + mx2500 + Memorex MX2500 EZ-Access + Memorex + + + + + mx2750 + Memorex MX2750 + Memorex + + + + + microsoft4000 + Microsoft Natural Ergonomic 4000 + Microsoft + + + + + microsoft7000 + Microsoft Natural Wireless Ergonomic 7000 + Microsoft + + + + + microsoftinet + Microsoft Internet + Microsoft + + + + + microsoftpro + Microsoft Natural Pro/Internet Pro + Microsoft + + + + + microsoftprousb + Microsoft Natural Pro USB/Internet Pro + Microsoft + + + + + microsoftprooem + Microsoft Natural Pro OEM + Microsoft + + + + + vsonku306 + ViewSonic KU-306 Internet + ViewSonic + + + + + microsoftprose + Microsoft Internet Pro (Swedish) + Microsoft + + + + + microsoftoffice + Microsoft Office Keyboard + Microsoft + + + + + microsoftmult + Microsoft Wireless Multimedia 1.0A + Microsoft + + + + + microsoftelite + Microsoft Natural Elite + Microsoft + + + + + microsoftccurve2k + Microsoft Comfort Curve 2000 + Microsoft + + + + + oretec + Ortek Multimedia/Internet MCK-800 + Ortek + + + + + propeller + Propeller Voyager KTEZ-1000 + KeyTronic + + + + + qtronix + QTronix Scorpius 98N+ + QTronix + + + + + samsung4500 + Samsung SDM 4500P + Samsung + + + + + samsung4510 + Samsung SDM 4510P + Samsung + + + + + sanwaskbkg3 + Sanwa Supply SKB-KG3 + Sanwa Supply Inc. + + + + + sk1300 + NEC SK-1300 + NEC + + + + + sk2500 + NEC SK-2500 + NEC + + + + + sk6200 + NEC SK-6200 + NEC + + + + + sk7100 + NEC SK-7100 + NEC + + + + + sp_inet + Super Power Multimedia + Generic + + + + + sven + SVEN Ergonomic 2500 + SVEN + + + + + sven303 + SVEN Slim 303 + SVEN + + + + + symplon + Symplon PaceBook tablet + Symplon + + + + + toshiba_s3000 + Toshiba Satellite S3000 + Toshiba + + + + + trust + Trust Wireless Classic + Trust + + + + + trustda + Trust Direct Access + Trust + + + + + trust_slimline + Trust Slimline + Trust + + + + + tm2020 + TypeMatrix EZ-Reach 2020 + TypeMatrix + + + + + tm2030PS2 + TypeMatrix EZ-Reach 2030 PS2 + TypeMatrix + + + + + tm2030USB + TypeMatrix EZ-Reach 2030 USB + TypeMatrix + + + + + tm2030USB-102 + TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) + TypeMatrix + + + + + tm2030USB-106 + TypeMatrix EZ-Reach 2030 USB (106:JP mode) + TypeMatrix + + + + + yahoo + Yahoo! Internet + Yahoo! + + + + + macbook78 + MacBook/MacBook Pro + Apple + + + + + macbook79 + MacBook/MacBook Pro (intl.) + Apple + + + + + macintosh + Macintosh + Apple + + + + + macintosh_old + Macintosh Old + Apple + + + + + macintosh_hhk + Happy Hacking for Mac + Fujitsu + + + + + acer_c300 + Acer C300 + Acer + + + + + acer_ferrari4k + Acer Ferrari 4000 + Acer + + + + + acer_laptop + Acer laptop + Acer + + + + + asus_laptop + Asus laptop + Asus + + + + + apple + Apple + Apple + + + + + apple_laptop + Apple laptop + Apple + + + + + applealu_ansi + Apple Aluminium (ANSI) + Apple + + + + + applealu_iso + Apple Aluminium (ISO) + Apple + + + + + applealu_jis + Apple Aluminium (JIS) + Apple + + + + + silvercrest + Silvercrest Multimedia Wireless + Silvercrest + + + + + emachines + eMachines m6800 laptop + eMachines + + + + + benqx + BenQ X-Touch + BenQ + + + + + benqx730 + BenQ X-Touch 730 + BenQ + + + + + benqx800 + BenQ X-Touch 800 + BenQ + + + + + hhk + Happy Hacking + Fujitsu + + + + + classmate + Classmate PC + Intel + + + + + olpc + OLPC + OLPC + + + + + sun_type7_usb + Sun Type 7 USB + Sun Microsystems + + + + + sun_type7_euro_usb + Sun Type 7 USB (European) + Sun Microsystems + + + + + sun_type7_unix_usb + Sun Type 7 USB (Unix) + Sun Microsystems + + + + + sun_type7_jp_usb + Sun Type 7 USB (Japanese)/Japanese 106-key + Sun Microsystems + + + + + sun_type6_usb + Sun Type 6/7 USB + Sun Microsystems + + + + + sun_type6_euro_usb + Sun Type 6/7 USB (European) + Sun Microsystems + + + + + sun_type6_unix_usb + Sun Type 6 USB (Unix) + Sun Microsystems + + + + + sun_type6_jp_usb + Sun Type 6 USB (Japanese) + Sun Microsystems + + + + + sun_type6_jp + Sun Type 6 (Japanese) + Sun Microsystems + + + + + targa_v811 + Targa Visionary 811 + Targa + + + + + unitekkb1925 + Unitek KB-1925 + Unitek Group + + + + + compalfl90 + FL90 + Compal Electronics + + + + + creativedw7000 + Creative Desktop Wireless 7000 + Creative + + + + + htcdream + Htc Dream phone + htc + + + + + teck227 + Truly Ergonomic 227 + Truly Ergonomic + + + + + teck229 + Truly Ergonomic 229 + Truly Ergonomic + + + + + apex300 + SteelSeries Apex 300 (Apex RAW) + SteelSeries + + + + + + + us + + en + English (US) + + eng + + + + + + chr + + chr + Cherokee + + chr + + + + + + euro + English (US, euro on 5) + + + + + intl + English (US, intl., with dead keys) + + + + + alt-intl + English (US, alt. intl.) + + + + + colemak + English (Colemak) + + + + + dvorak + English (Dvorak) + + + + + dvorak-intl + English (Dvorak, intl., with dead keys) + + + + + dvorak-alt-intl + English (Dvorak, alt. intl.) + + + + + dvorak-l + English (Dvorak, left-handed) + + + + + dvorak-r + English (Dvorak, right-handed) + + + + + dvorak-classic + English (classic Dvorak) + + + + + dvp + English (programmer Dvorak) + + + + + rus + + ru + Russian (US, phonetic) + + rus + + + + + + mac + English (Macintosh) + + + + + altgr-intl + English (intl., with AltGr dead keys) + + eng + fra + ger + + + + + + olpc2 + English (the divide/multiply keys toggle the layout) + + + + + hbs + Serbo-Croatian (US) + + eng + bos + hbs + hrv + srp + + + + + + workman + English (Workman) + + + + + workman-intl + English (Workman, intl., with dead keys) + + + + + + + af + + fa + Afghani + + + + + ps + + ps + Pashto + + pus + + + + + + uz + + uz + Uzbek (Afghanistan) + + uzb + + + + + + olpc-ps + + ps + Pashto (Afghanistan, OLPC) + + pus + + + + + + fa-olpc + + fa + Persian (Afghanistan, Dari OLPC) + + + + + uz-olpc + + uz + Uzbek (Afghanistan, OLPC) + + uzb + + + + + + + + ara + + ar + Arabic + + AE + BH + DZ + EG + EH + JO + KW + LB + LY + MA + MR + OM + PS + QA + SA + SD + SY + TN + YE + + + ara + + + + + + azerty + Arabic (AZERTY) + + + + + azerty_digits + Arabic (AZERTY/digits) + + + + + digits + Arabic (digits) + + + + + qwerty + Arabic (QWERTY) + + + + + qwerty_digits + Arabic (qwerty/digits) + + + + + buckwalter + Arabic (Buckwalter) + + + + + mac + Arabic (Macintosh) + + + + + + + al + + sq + Albanian + + alb + + + + + + plisi + Albanian (Plisi) + + + + + + + am + + hy + Armenian + + hye + + + + + + phonetic + Armenian (phonetic) + + + + + phonetic-alt + Armenian (alt. phonetic) + + + + + eastern + Armenian (eastern) + + + + + western + Armenian (western) + + + + + eastern-alt + Armenian (alt. eastern) + + + + + + + at + + de + German (Austria) + + ger + + + + + + nodeadkeys + German (Austria, no dead keys) + + + + + sundeadkeys + German (Austria, with Sun dead keys) + + + + + mac + German (Austria, Macintosh) + + + + + + + au + + en + English (Australian) + + eng + + + + + + az + + az + Azerbaijani + + aze + + + + + + cyrillic + Azerbaijani (Cyrillic) + + + + + + + by + + by + Belarusian + + bel + + + + + + legacy + Belarusian (legacy) + + + + + latin + Belarusian (Latin) + + + + + + + be + + be + Belgian + + ger + nld + fra + + + + + + oss + Belgian (alt.) + + + + + oss_latin9 + Belgian (alt., Latin-9 only) + + + + + oss_sundeadkeys + Belgian (alt., with Sun dead keys) + + + + + iso-alternate + Belgian (alt. ISO) + + + + + nodeadkeys + Belgian (no dead keys) + + + + + sundeadkeys + Belgian (with Sun dead keys) + + + + + wang + Belgian (Wang 724 AZERTY) + + + + + + + bd + + bn + Bangla + + ben + + sat + + + + + + probhat + Bangla (Probhat) + + + + + + + in + + in + Indian + + + + + ben + + bn + Bangla (India) + + ben + + sat + + + + + + ben_probhat + + bn + Bangla (India, Probhat) + + ben + + sat + + + + + + ben_baishakhi + Bangla (India, Baishakhi) + + ben + + sat + + + + + + ben_bornona + Bangla (India, Bornona) + + ben + + sat + + + + + + ben_gitanjali + Bangla (India, Uni Gitanjali) + + ben + + sat + + + + + + ben_inscript + Bangla (India, Baishakhi Inscript) + + ben + + sat + + + + + + eeyek + Manipuri (Eeyek) + + mni + + + + + + guj + + gu + Gujarati + + guj + + + + + + guru + + pa + Punjabi (Gurmukhi) + + pan + + + + + + jhelum + + pa + Punjabi (Gurmukhi Jhelum) + + pan + + + + + + kan + + kn + Kannada + + kan + + + + + + kan-kagapa + + kn + Kannada (KaGaPa phonetic) + + kan + + + + + + mal + + ml + Malayalam + + mal + + + + + + mal_lalitha + + ml + Malayalam (Lalitha) + + mal + + + + + + mal_enhanced + + ml + Malayalam (enhanced Inscript, with rupee) + + mal + + + + + + ori + + or + Oriya + + ori + + sat + + + + + + olck + + sat + Ol Chiki + + + sat + + + + + + tam_unicode + + ta + Tamil (Unicode) + + tam + + + + + + tam_keyboard_with_numerals + + ta + Tamil (keyboard with numerals) + + tam + + + + + + tam_TAB + + ta + Tamil (TAB typewriter) + + tam + + + + + + tam_TSCII + + ta + Tamil (TSCII typewriter) + + tam + + + + + + tam + + ta + Tamil + + tam + + + + + + tel + + te + Telugu + + tel + + + + + + tel-kagapa + + te + Telugu (KaGaPa phonetic) + + tel + + + + + + tel-sarala + + te + Telugu (Sarala) + + tel + + + + + + urd-phonetic + + ur + Urdu (phonetic) + + urd + + + + + + urd-phonetic3 + + ur + Urdu (alt. phonetic) + + urd + + + + + + urd-winkeys + + ur + Urdu (Win keys) + + urd + + + + + + bolnagri + + hi + Hindi (Bolnagri) + + hin + + + + + + hin-wx + + hi + Hindi (Wx) + + hin + + + + + + hin-kagapa + + hi + Hindi (KaGaPa phonetic) + + hin + + + + + + san-kagapa + + sa + Sanskrit (KaGaPa phonetic) + + san + + + + + + mar-kagapa + + mr + Marathi (KaGaPa phonetic) + + mar + + + + + + eng + + en + English (India, with rupee) + + eng + + + + + + + + ba + + bs + Bosnian + + bos + + + + + + alternatequotes + Bosnian (with guillemets) + + + + + unicode + Bosnian (with Bosnian digraphs) + + + + + unicodeus + Bosnian (US, with Bosnian digraphs) + + + + + us + Bosnian (US, with Bosnian letters) + + + + + + + br + + pt + Portuguese (Brazil) + + por + + + + + + nodeadkeys + Portuguese (Brazil, no dead keys) + + + + + dvorak + Portuguese (Brazil, Dvorak) + + + + + nativo + Portuguese (Brazil, Nativo) + + + + + nativo-us + Portuguese (Brazil, Nativo for US keyboards) + + + + + nativo-epo + Esperanto (Brazil, Nativo) + + epo + + + + + + thinkpad + Portuguese (Brazil, IBM/Lenovo ThinkPad) + + + + + + + bg + + bg + Bulgarian + + bul + + + + + + phonetic + Bulgarian (traditional phonetic) + + + + + bas_phonetic + Bulgarian (new phonetic) + + + + + + + dz + la + Berber (Algeria, Latin) + + + + + ber + ber + Berber (Algeria, Tifinagh) + + ber + + + + + + ar + ar + Arabic (Algeria) + + ara + + + + + + + + ma + + ar + Arabic (Morocco) + + + + + french + + fr + French (Morocco) + + fra + + + + + + tifinagh + + ber + Berber (Morocco, Tifinagh) + + ber + + + + + + tifinagh-alt + + ber + Berber (Morocco, Tifinagh alt.) + + ber + + + + + + tifinagh-alt-phonetic + + ber + Berber (Morocco, Tifinagh alt. phonetic) + + ber + + + + + + tifinagh-extended + + ber + Berber (Morocco, Tifinagh extended) + + ber + + + + + + tifinagh-phonetic + + ber + Berber (Morocco, Tifinagh phonetic) + + ber + + + + + + tifinagh-extended-phonetic + + ber + Berber (Morocco, Tifinagh extended phonetic) + + ber + + + + + + + + cm + + cm + English (Cameroon) + + eng + + + + + + french + French (Cameroon) + + fra + + + + + + qwerty + Cameroon Multilingual (QWERTY) + + eng + bas + nmg + fub + ewo + xmd + mfh + bkm + ozm + lns + sox + pny + wes + lem + nyj + mfk + mcp + ass + xed + dua + anv + bum + btb + bfd + azo + ken + yam + yat + yas + + + + + + azerty + Cameroon Multilingual (AZERTY) + + fra + bas + nmg + fub + ewo + xmd + mfh + bkm + ozm + lns + sox + pny + wes + lem + nyj + mfk + mcp + ass + xed + dua + anv + bum + btb + bfd + azo + ken + yam + yat + yas + + + + + + dvorak + Cameroon Multilingual (Dvorak) + + + + + mmuock + Mmuock + + + + + + + mm + + my + Burmese + + mya + + + + + + + ca + + fr + French (Canada) + + fra + + + + + + fr-dvorak + + fr + French (Canada, Dvorak) + + + + + fr-legacy + + fr + French (Canada, legacy) + + + + + multix + Canadian Multilingual + + + + + multi + Canadian Multilingual (1st part) + + + + + multi-2gr + Canadian Multilingual (2nd part) + + + + + ike + + ike + Inuktitut + + iku + + + + + + eng + + en + English (Canada) + + eng + + + + + + + + cd + + fr + French (Democratic Republic of the Congo) + + fra + + + + + + + cn + + zh + Chinese + + chi + + + + + + tib + Tibetan + + tib + + + + + + tib_asciinum + Tibetan (with ASCII numerals) + + tib + + + + + + ug + ug + Uyghur + + uig + + + + + + + + hr + + hr + Croatian + + hrv + + + + + + alternatequotes + Croatian (with guillemets) + + + + + unicode + Croatian (with Croatian digraphs) + + + + + unicodeus + Croatian (US, with Croatian digraphs) + + + + + us + Croatian (US, with Croatian letters) + + + + + + + cz + + cs + Czech + + cze + + + + + + bksl + Czech (with <\|> key) + + + + + qwerty + Czech (QWERTY) + + + + + qwerty_bksl + Czech (QWERTY, extended backslash) + + + + + ucw + Czech (UCW, only accented letters) + + + + + dvorak-ucw + Czech (US, Dvorak, UCW support) + + + + + rus + + ru + Russian (Czech, phonetic) + + rus + + + + + + + + dk + + da + Danish + + dan + + + + + + nodeadkeys + Danish (no dead keys) + + + + + winkeys + Danish (Win keys) + + + + + mac + Danish (Macintosh) + + + + + mac_nodeadkeys + Danish (Macintosh, no dead keys) + + + + + dvorak + Danish (Dvorak) + + + + + + + nl + + nl + Dutch + + nld + + + + + + sundeadkeys + Dutch (with Sun dead keys) + + + + + mac + Dutch (Macintosh) + + + + + std + Dutch (standard) + + + + + + + bt + + dz + Dzongkha + + dzo + + + + + + ee + + et + Estonian + + est + + + + + + nodeadkeys + Estonian (no dead keys) + + + + + dvorak + Estonian (Dvorak) + + + + + us + Estonian (US, with Estonian letters) + + + + + + + ir + + fa + Persian + + per + + + + + + pes_keypad + Persian (with Persian keypad) + + + + + ku + + ku + Kurdish (Iran, Latin Q) + + kur + + + + + + ku_f + + ku + Kurdish (Iran, F) + + kur + + + + + + ku_alt + + ku + Kurdish (Iran, Latin Alt-Q) + + kur + + + + + + ku_ara + + ku + Kurdish (Iran, Arabic-Latin) + + kur + + + + + + + + iq + + ar + Iraqi + + ara + kur + + + + + + ku + + ku + Kurdish (Iraq, Latin Q) + + kur + + + + + + ku_f + + ku + Kurdish (Iraq, F) + + kur + + + + + + ku_alt + + ku + Kurdish (Iraq, Latin Alt-Q) + + kur + + + + + + ku_ara + + ku + Kurdish (Iraq, Arabic-Latin) + + kur + + + + + + + + fo + + fo + Faroese + + fao + + + + + + nodeadkeys + Faroese (no dead keys) + + + + + + + fi + + fi + Finnish + + fin + + + + + + classic + Finnish (classic) + + + + + nodeadkeys + Finnish (classic, no dead keys) + + + + + winkeys + Finnish (Winkeys) + + + + + smi + Northern Saami (Finland) + + sme + + + + + + mac + Finnish (Macintosh) + + + + + + + fr + + fr + French + + fra + + + + + + nodeadkeys + French (no dead keys) + + + + + sundeadkeys + French (with Sun dead keys) + + + + + oss + French (alt.) + + + + + oss_latin9 + French (alt., Latin-9 only) + + + + + oss_nodeadkeys + French (alt., no dead keys) + + + + + oss_sundeadkeys + French (alt., with Sun dead keys) + + + + + latin9 + French (legacy, alt.) + + + + + latin9_nodeadkeys + French (legacy, alt., no dead keys) + + + + + latin9_sundeadkeys + French (legacy, alt., with Sun dead keys) + + + + + bepo + French (Bepo, ergonomic, Dvorak way) + + + + + bepo_latin9 + French (Bepo, ergonomic, Dvorak way, Latin-9 only) + + + + + dvorak + French (Dvorak) + + + + + mac + French (Macintosh) + + + + + azerty + French (AZERTY) + + + + + bre + French (Breton) + + + + + oci + Occitan + + oci + + + + + + geo + Georgian (France, AZERTY Tskapo) + + geo + + + + + + + + gh + + en + English (Ghana) + + eng + + + + + + generic + English (Ghana, multilingual) + + + + + akan + + ak + Akan + + aka + + + + + + ewe + + ee + Ewe + + ewe + + + + + + fula + + ff + Fula + + ful + + + + + + ga + + gaa + Ga + + gaa + + + + + + hausa + + ha + Hausa (Ghana) + + hau + + + + + + avn + + avn + Avatime + + avn + + + + + + gillbt + English (Ghana, GILLBT) + + + + + + + gn + + fr + French (Guinea) + + fra + + + + + + + ge + + ka + Georgian + + geo + + + + + + ergonomic + Georgian (ergonomic) + + + + + mess + Georgian (MESS) + + + + + ru + + ru + Russian (Georgia) + + rus + + + + + + os + Ossetian (Georgia) + + oss + + + + + + + + de + + de + German + + ger + + + + + + deadacute + German (dead acute) + + + + + deadgraveacute + German (dead grave acute) + + + + + nodeadkeys + German (no dead keys) + + + + + T3 + German (T3) + + + + + ro + Romanian (Germany) + + rum + + + + + + ro_nodeadkeys + Romanian (Germany, no dead keys) + + rum + + + + + + dvorak + German (Dvorak) + + + + + sundeadkeys + German (with Sun dead keys) + + + + + neo + German (Neo 2) + + + + + mac + German (Macintosh) + + + + + mac_nodeadkeys + German (Macintosh, no dead keys) + + + + + dsb + Lower Sorbian + + dsb + + + + + + dsb_qwertz + Lower Sorbian (QWERTZ) + + dsb + + + + + + qwerty + German (QWERTY) + + + + + tr + Turkish (Germany) + + tr + + + + + + ru + + ru + Russian (Germany, phonetic) + + rus + + + + + + deadtilde + German (dead tilde) + + + + + + + gr + + gr + Greek + + gre + + + + + + simple + Greek (simple) + + + + + extended + Greek (extended) + + + + + nodeadkeys + Greek (no dead keys) + + + + + polytonic + Greek (polytonic) + + + + + + + hu + + hu + Hungarian + + hun + + + + + + standard + Hungarian (standard) + + + + + nodeadkeys + Hungarian (no dead keys) + + + + + qwerty + Hungarian (QWERTY) + + + + + 101_qwertz_comma_dead + Hungarian (101/QWERTZ/comma/dead keys) + + + + + 101_qwertz_comma_nodead + Hungarian (101/QWERTZ/comma/no dead keys) + + + + + 101_qwertz_dot_dead + Hungarian (101/QWERTZ/dot/dead keys) + + + + + 101_qwertz_dot_nodead + Hungarian (101/QWERTZ/dot/no dead keys) + + + + + 101_qwerty_comma_dead + Hungarian (101/QWERTY/comma/dead keys) + + + + + 101_qwerty_comma_nodead + Hungarian (101/QWERTY/comma/no dead keys) + + + + + 101_qwerty_dot_dead + Hungarian (101/QWERTY/dot/dead keys) + + + + + 101_qwerty_dot_nodead + Hungarian (101/QWERTY/dot/no dead keys) + + + + + 102_qwertz_comma_dead + Hungarian (102/QWERTZ/comma/dead keys) + + + + + 102_qwertz_comma_nodead + Hungarian (102/QWERTZ/comma/no dead keys) + + + + + 102_qwertz_dot_dead + Hungarian (102/QWERTZ/dot/dead keys) + + + + + 102_qwertz_dot_nodead + Hungarian (102/QWERTZ/dot/no dead keys) + + + + + 102_qwerty_comma_dead + Hungarian (102/QWERTY/comma/dead keys) + + + + + 102_qwerty_comma_nodead + Hungarian (102/QWERTY/comma/no dead keys) + + + + + 102_qwerty_dot_dead + Hungarian (102/QWERTY/dot/dead keys) + + + + + 102_qwerty_dot_nodead + Hungarian (102/QWERTY/dot/no dead keys) + + + + + + + is + + is + Icelandic + + ice + + + + + + Sundeadkeys + Icelandic (with Sun dead keys) + + + + + nodeadkeys + Icelandic (no dead keys) + + + + + mac_legacy + Icelandic (Macintosh, legacy) + + + + + mac + Icelandic (Macintosh) + + + + + dvorak + Icelandic (Dvorak) + + + + + + + il + + he + Hebrew + + heb + + + + + + lyx + Hebrew (lyx) + + + + + phonetic + Hebrew (phonetic) + + + + + biblical + Hebrew (Biblical, Tiro) + + + + + + + it + + it + Italian + + ita + + + + + + nodeadkeys + Italian (no dead keys) + + + + + winkeys + Italian (Winkeys) + + + + + mac + Italian (Macintosh) + + + + + us + Italian (US, with Italian letters) + + + + + geo + Georgian (Italy) + + geo + + + + + + ibm + Italian (IBM 142) + + + + + + + jp + + ja + Japanese + + jpn + + + + + + kana + Japanese (Kana) + + + + + kana86 + Japanese (Kana 86) + + + + + OADG109A + Japanese (OADG 109A) + + + + + mac + Japanese (Macintosh) + + + + + dvorak + Japanese (Dvorak) + + + + + + + kg + + ki + Kyrgyz + + kir + + + + + + phonetic + Kyrgyz (phonetic) + + + + + + + kh + + km + Khmer (Cambodia) + + khm + + + + + + + kz + + kk + Kazakh + + kaz + + + + + + ruskaz + + ru + Russian (Kazakhstan, with Kazakh) + + kaz + rus + + + + + + kazrus + Kazakh (with Russian) + + kaz + rus + + + + + + ext + Kazakh (extended) + + kaz + + + + + + + + la + + lo + Lao + + lao + + + + + + stea + Lao (STEA proposed standard layout) + + lao + + + + + + + + latam + + es + Spanish (Latin American) + + AR + BO + CL + CO + CR + CU + DO + EC + GT + HN + HT + MX + NI + PA + PE + PR + PY + SV + US + UY + VE + + + spa + + + + + + nodeadkeys + Spanish (Latin American, no dead keys) + + + + + deadtilde + Spanish (Latin American, dead tilde) + + + + + sundeadkeys + Spanish (Latin American, with Sun dead keys) + + + + + dvorak + Spanish (Latin American, Dvorak) + + + + + + + lt + + lt + Lithuanian + + lit + + + + + + std + Lithuanian (standard) + + + + + us + Lithuanian (US, with Lithuanian letters) + + + + + ibm + Lithuanian (IBM LST 1205-92) + + + + + lekp + Lithuanian (LEKP) + + + + + lekpa + Lithuanian (LEKPa) + + + + + + + lv + + lv + Latvian + + lav + + + + + + apostrophe + Latvian (apostrophe) + + + + + tilde + Latvian (tilde) + + + + + fkey + Latvian (F) + + + + + modern + Latvian (modern) + + + + + ergonomic + Latvian (ergonomic, ŪGJRMV) + + + + + adapted + Latvian (adapted) + + + + + + + mao + + mi + Maori + + mao + + + + + + + me + + sr + Montenegrin + + srp + + + + + + cyrillic + Montenegrin (Cyrillic) + + + + + cyrillicyz + Montenegrin (Cyrillic, ZE and ZHE swapped) + + + + + latinunicode + Montenegrin (Latin, Unicode) + + + + + latinyz + Montenegrin (Latin, QWERTY) + + + + + latinunicodeyz + Montenegrin (Latin, Unicode, QWERTY) + + + + + cyrillicalternatequotes + Montenegrin (Cyrillic with guillemets) + + + + + latinalternatequotes + Montenegrin (Latin with guillemets) + + + + + + + mk + + mk + Macedonian + + mkd + + + + + + nodeadkeys + Macedonian (no dead keys) + + + + + + + mt + + mt + Maltese + + mlt + + + + + + us + Maltese (with US layout) + + + + + + + mn + + mn + Mongolian + + mon + + + + + + + no + + no + Norwegian + + nor + nob + nno + + + + + + nodeadkeys + Norwegian (no dead keys) + + + + + winkeys + Norwegian (Win keys) + + + + + dvorak + Norwegian (Dvorak) + + + + + smi + Northern Saami (Norway) + + sme + + + + + + smi_nodeadkeys + Northern Saami (Norway, no dead keys) + + sme + + + + + + mac + Norwegian (Macintosh) + + + + + mac_nodeadkeys + Norwegian (Macintosh, no dead keys) + + + + + colemak + Norwegian (Colemak) + + + + + + + pl + + pl + Polish + + pol + + + + + + legacy + Polish (legacy) + + + + + qwertz + Polish (QWERTZ) + + + + + dvorak + Polish (Dvorak) + + + + + dvorak_quotes + Polish (Dvorak, with Polish quotes on quotemark key) + + + + + dvorak_altquotes + Polish (Dvorak, with Polish quotes on key 1) + + + + + csb + Kashubian + + csb + + + + + + szl + Silesian + + szl + + + + + + ru_phonetic_dvorak + + ru + Russian (Poland, phonetic Dvorak) + + rus + + + + + + dvp + Polish (programmer Dvorak) + + + + + + + pt + + pt + Portuguese + + por + + + + + + nodeadkeys + Portuguese (no dead keys) + + + + + sundeadkeys + Portuguese (with Sun dead keys) + + + + + mac + Portuguese (Macintosh) + + + + + mac_nodeadkeys + Portuguese (Macintosh, no dead keys) + + + + + mac_sundeadkeys + Portuguese (Macintosh, with Sun dead keys) + + + + + nativo + Portuguese (Nativo) + + + + + nativo-us + Portuguese (Nativo for US keyboards) + + + + + nativo-epo + Esperanto (Portugal, Nativo) + + epo + + + + + + + + ro + + ro + Romanian + + rum + + + + + + cedilla + Romanian (cedilla) + + + + + std + Romanian (standard) + + + + + std_cedilla + Romanian (standard cedilla) + + + + + winkeys + Romanian (Win keys) + + + + + + + ru + + ru + Russian + + rus + + + + + + phonetic + Russian (phonetic) + + + + + phonetic_winkeys + Russian (phonetic, with Win keys) + + + + + typewriter + Russian (typewriter) + + + + + legacy + Russian (legacy) + + + + + typewriter-legacy + Russian (typewriter, legacy) + + + + + tt + Tatar + + tat + + + + + + os_legacy + Ossetian (legacy) + + oss + + + + + + os_winkeys + Ossetian (Win keys) + + oss + + + + + + cv + Chuvash + + chv + + + + + + cv_latin + Chuvash (Latin) + + chv + + + + + + udm + Udmurt + + udm + + + + + + kom + Komi + + kom + + + + + + sah + Yakut + + sah + + + + + + xal + Kalmyk + + xal + + + + + + dos + Russian (DOS) + + + + + mac + Russian (Macintosh) + + + + + srp + Serbian (Russia) + + rus + srp + + + + + + bak + Bashkirian + + bak + + + + + + chm + Mari + + chm + + + + + + phonetic_azerty + Russian (phonetic, AZERTY) + + + + + phonetic_dvorak + Russian (phonetic, Dvorak) + + + + + phonetic_fr + Russian (phonetic, French) + + + + + + + rs + + sr + Serbian + + srp + + + + + + yz + Serbian (Cyrillic, ZE and ZHE swapped) + + + + + latin + Serbian (Latin) + + + + + latinunicode + Serbian (Latin, Unicode) + + + + + latinyz + Serbian (Latin, QWERTY) + + + + + latinunicodeyz + Serbian (Latin, Unicode, QWERTY) + + + + + alternatequotes + Serbian (Cyrillic with guillemets) + + + + + latinalternatequotes + Serbian (Latin with guillemets) + + + + + rue + Pannonian Rusyn + + rue + + + + + + + + si + + sl + Slovenian + + slv + + + + + + alternatequotes + Slovenian (with guillemets) + + + + + us + Slovenian (US, with Slovenian letters) + + + + + + + sk + + sk + Slovak + + slo + + + + + + bksl + Slovak (extended backslash) + + + + + qwerty + Slovak (QWERTY) + + + + + qwerty_bksl + Slovak (QWERTY, extended backslash) + + + + + + + es + + es + Spanish + + spa + + + + + + nodeadkeys + Spanish (no dead keys) + + + + + winkeys + Spanish (Win keys) + + + + + deadtilde + Spanish (dead tilde) + + + + + sundeadkeys + Spanish (with Sun dead keys) + + + + + dvorak + Spanish (Dvorak) + + + + + ast + ast + Asturian (Spain, with bottom-dot H and bottom-dot L) + + ast + + + + + + cat + ca + Catalan (Spain, with middle-dot L) + + cat + + + + + + mac + Spanish (Macintosh) + + + + + + + se + + sv + Swedish + + swe + + + + + + nodeadkeys + Swedish (no dead keys) + + + + + dvorak + Swedish (Dvorak) + + + + + rus + + ru + Russian (Sweden, phonetic) + + rus + + + + + + rus_nodeadkeys + + ru + Russian (Sweden, phonetic, no dead keys) + + rus + + + + + + smi + Northern Saami (Sweden) + + sme + + + + + + mac + Swedish (Macintosh) + + + + + svdvorak + Swedish (Svdvorak) + + + + + us_dvorak + Swedish (based on US Intl. Dvorak) + + + + + swl + Swedish Sign Language + + swl + + + + + + + + ch + + de + German (Switzerland) + + ger + gsw + + + + + + legacy + German (Switzerland, legacy) + + + + + de_nodeadkeys + + de + German (Switzerland, no dead keys) + + + + + de_sundeadkeys + + de + German (Switzerland, with Sun dead keys) + + + + + fr + + fr + French (Switzerland) + + fra + + + + + + fr_nodeadkeys + + fr + French (Switzerland, no dead keys) + + fra + + + + + + fr_sundeadkeys + + fr + French (Switzerland, with Sun dead keys) + + fra + + + + + + fr_mac + + fr + French (Switzerland, Macintosh) + + fra + + + + + + de_mac + + de + German (Switzerland, Macintosh) + + + + + + + sy + + ar + Arabic (Syria) + + syr + + + + + + syc + + syc + Syriac + + + + + syc_phonetic + + syc + Syriac (phonetic) + + + + + ku + + ku + Kurdish (Syria, Latin Q) + + kur + + + + + + ku_f + + ku + Kurdish (Syria, F) + + kur + + + + + + ku_alt + + ku + Kurdish (Syria, Latin Alt-Q) + + kur + + + + + + + + tj + + tg + Tajik + + tgk + + + + + + legacy + Tajik (legacy) + + + + + + + lk + + si + Sinhala (phonetic) + + sin + + + + + + tam_unicode + + ta + Tamil (Sri Lanka, Unicode) + + tam + + + + + + tam_TAB + Tamil (Sri Lanka, TAB Typewriter) + + tam + + + + + + us + us + Sinhala (US, with Sinhala letters) + + + + + + + th + + th + Thai + + tha + + + + + + tis + Thai (TIS-820.2538) + + + + + pat + Thai (Pattachote) + + + + + + + tr + + tr + Turkish + + tur + + + + + + f + Turkish (F) + + + + + alt + Turkish (Alt-Q) + + + + + sundeadkeys + Turkish (with Sun dead keys) + + + + + ku + + ku + Kurdish (Turkey, Latin Q) + + kur + + + + + + ku_f + + ku + Kurdish (Turkey, F) + + kur + + + + + + ku_alt + + ku + Kurdish (Turkey, Latin Alt-Q) + + kur + + + + + + intl + Turkish (intl., with dead keys) + + + + + crh + + crh + Crimean Tatar (Turkish Q) + + crh + + + + + + crh_f + + crh + Crimean Tatar (Turkish F) + + crh + + + + + + crh_alt + + crh + Crimean Tatar (Turkish Alt-Q) + + crh + + + + + + + + tw + + zh + Taiwanese + + fox + + + + + + indigenous + Taiwanese (indigenous) + + ami + tay + bnn + ckv + pwn + pyu + dru + ais + ssf + tao + tsu + trv + xnb + sxr + uun + fos + + + + + + saisiyat + + xsy + Saisiyat (Taiwan) + + xsy + + + + + + + + ua + + uk + Ukrainian + + ukr + + + + + + phonetic + Ukrainian (phonetic) + + + + + typewriter + Ukrainian (typewriter) + + + + + winkeys + Ukrainian (Win keys) + + + + + legacy + Ukrainian (legacy) + + + + + rstu + Ukrainian (standard RSTU) + + + + + rstu_ru + Russian (Ukraine, standard RSTU) + + + + + homophonic + Ukrainian (homophonic) + + + + + + + gb + + en + English (UK) + + eng + + + + + + extd + English (UK, extended, with Win keys) + + + + + intl + English (UK, intl., with dead keys) + + + + + dvorak + English (UK, Dvorak) + + + + + dvorakukp + English (UK, Dvorak, with UK punctuation) + + + + + mac + English (UK, Macintosh) + + + + + mac_intl + English (UK, intl., Macintosh) + + + + + colemak + English (UK, Colemak) + + + + + + + uz + + uz + Uzbek + + uzb + + + + + + latin + Uzbek (Latin) + + + + + + + vn + + vi + Vietnamese + + vie + + + + + + + kr + + ko + Korean + + kor + + + + + + kr104 + Korean (101/104 key compatible) + + + + + + + nec_vndr/jp + + ja + Japanese (PC-98) + + JP + + + jpn + + + + + + + ie + + ie + Irish + + eng + + + + + + CloGaelach + CloGaelach + + gle + + + + + + UnicodeExpert + Irish (UnicodeExpert) + + + + + ogam + Ogham + + sga + + + + + + ogam_is434 + Ogham (IS434) + + sga + + + + + + + + pk + + ur + Urdu (Pakistan) + + urd + + + + + + urd-crulp + Urdu (Pakistan, CRULP) + + + + + urd-nla + Urdu (Pakistan, NLA) + + + + + ara + ar + Arabic (Pakistan) + + ara + + + + + + snd + + sd + Sindhi + + snd + + + + + + + + mv + + dv + Dhivehi + + div + + + + + + + za + + en + English (South Africa) + + eng + + + + + + epo + + eo + Esperanto + + epo + + + + + + legacy + Esperanto (displaced semicolon and quote, obsolete) + + + + + + + np + + ne + Nepali + + nep + + sat + + + + + + ng + + en + English (Nigeria) + + eng + + + + + + igbo + + ig + Igbo + + ibo + + + + + + yoruba + + yo + Yoruba + + yor + + + + + + hausa + + ha + Hausa (Nigeria) + + hau + + + + + + + + et + + am + Amharic + + amh + + + + + + + sn + + wo + Wolof + + wol + + + + + + + brai + + brl + Braille + + + + + left_hand + Braille (left-handed) + + + + + right_hand + Braille (right-handed) + + + + + + + tm + + tk + Turkmen + + tuk + + + + + + alt + Turkmen (Alt-Q) + + + + + + + ml + + bm + Bambara + + bam + + + + + + fr-oss + + fr + French (Mali, alt.) + + fra + + + + + + us-mac + + en + English (Mali, US, Macintosh) + + eng + + + + + + us-intl + + en + English (Mali, US, intl.) + + eng + + + + + + + + tz + + sw + Swahili (Tanzania) + + swa + + + + + + tg + fr-tg + French (Togo) + + fra + ajg + blo + kpo + ewe + fon + fue + gej + ife + kbp + las + dop + mfg + nmz + bud + gng + kdh + soy + + + + + + ke + + sw + Swahili (Kenya) + + swa + + + + + + kik + + ki + Kikuyu + + kik + + + + + + + + bw + + tn + Tswana + + tsn + + + + + + ph + + ph + Filipino + + eng + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + qwerty-bay + Filipino (QWERTY, Baybayin) + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + capewell-dvorak + Filipino (Capewell-Dvorak, Latin) + + + + + capewell-dvorak-bay + Filipino (Capewell-Dvorak, Baybayin) + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + capewell-qwerf2k6 + Filipino (Capewell-QWERF 2006, Latin) + + + + + capewell-qwerf2k6-bay + Filipino (Capewell-QWERF 2006, Baybayin) + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + colemak + Filipino (Colemak, Latin) + + + + + colemak-bay + Filipino (Colemak, Baybayin) + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + dvorak + Filipino (Dvorak, Latin) + + + + + dvorak-bay + Filipino (Dvorak, Baybayin) + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + + + + + + + + md + md + Moldavian + + rum + + + + + + gag + gag + Moldavian (Gagauz) + + gag + + + + + + + + id + id + Indonesian (Jawi) + + ind + msa + min + ace + bjn + tsg + mfa + + + + + + + my + ms + Malay (Jawi, Arabic Keyboard) + + ind + msa + min + ace + bjn + tsg + mfa + + + + + + phonetic + Malay (Jawi, phonetic) + + + + + + + + + + grp + Switching to another layout + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lv3 + Key to choose the 3rd level + + + + + + + + + + + + + + + + + + + + + + + ctrl + Ctrl position + + + + + + + + + + + + + + + + grp_led + Use keyboard LED to show alternative layout + + + + + + + + + keypad + Layout of numeric keypad + + + + + + + + + + + + + + + kpdl + Numeric keypad Delete behavior + + + + + + + + + + + + + + caps + Caps Lock behavior + + + + + + + + + + + + + + + + + + + + + altwin + Alt/Win key behavior + + + + + + + + + + + + + + + + + + Compose key + Position of Compose key + + + + + + + + + + + + + + + + + + + + + + + compat + Miscellaneous compatibility options + + + + + + + + + + + + + + + + + + + + currencysign + Adding currency signs to certain keys + + + + + + + + + + lv5 + Key to choose 5th level + + + + + + + + + + + nbsp + Using space key to input non-breaking space + + + + + + + + + + + + + + + + + + + + + japan + Japanese keyboard options + + + + + + + + korean + Korean Hangul/Hanja keys + + + + + + + + esperanto + Adding Esperanto supersigned letters + + + + + + + + solaris + Maintain key compatibility with old Solaris keycodes + + + + + + terminate + Key sequence to kill the X server + + + + + \ No newline at end of file diff --git a/squashfs-root/usr/share/X11/xkb/rules/xfree98 b/squashfs-root/usr/share/X11/xkb/rules/xfree98 new file mode 100644 index 0000000..88189a7 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/rules/xfree98 @@ -0,0 +1,28 @@ +// +// Rules for resolving XKB components for use with XFree86 +// Copyright 1996 by Joseph Moss +// + +! model = keycodes geometry + pc98 = xfree98(pc98) nec(pc98) + jp106 = xfree98(jp106) pc(jp106) + +! model layout = symbols + pc98 nec_vndr/jp = nec_vndr/jp(pc98) + jp106 jp = jp + +! model layout = compat types + * * = complete complete + +! option = symbols + grp:switch = +group(switch) + grp:toggle = +group(toggle) + grp:shift_toggle = +group(shifts_toggle) + grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) + grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) + ctrl:nocaps = +ctrl(nocaps) + ctrl:lctrl_meta = +ctrl(lctrl_meta) + ctrl:swapcaps = +ctrl(swapcaps) + ctrl:ctrl_ac = +ctrl(ctrl_ac) + ctrl:ctrl_aa = +ctrl(ctrl_aa) + diff --git a/squashfs-root/usr/share/X11/xkb/rules/xkb.dtd b/squashfs-root/usr/share/X11/xkb/rules/xkb.dtd new file mode 100644 index 0000000..0a37b11 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/rules/xkb.dtd @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/X11/xkb/symbols/af b/squashfs-root/usr/share/X11/xkb/symbols/af new file mode 100644 index 0000000..67f07c8 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/af @@ -0,0 +1,396 @@ +// +// Keymap for the Afghan dari keybord layout +// Based on the specification "Computer Locale Requirements for +// Afghanstan" [1] from the "United Nations Development Programme +// Afghanistan" and the "Afghan Transitional Islamic +// Administration Ministry of Communications". +// [1] http://www.evertype.com/standards/af/ +// For a MINI HOWTO see [2]. +// [2] http://www.afghanischerKulturverein.de/en/afghanComputer_en.php +// +// 2006-02-15 file created by M. Emal Alekozai + +default partial alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Afghani"; + + key { [ 0x100200d, 0x10000f7, dead_tilde ] }; + key { [ 0x10006f1, exclam, 0x1000060 ] }; + key { [ 0x10006f2, 0x100066c, 0x1000040 ] }; + key { [ 0x10006f3, 0x100066b, numbersign ] }; + key { [ 0x10006f4, 0x100e60b, 0x1000024] }; + key { [ 0x10006f5, 0x100066a, 0x1000025 ] }; + key { [ 0x10006f6, multiply, 0x100005e ] }; + key { [ 0x10006f7, Arabic_comma, 0x1000026 ] }; + key { [ 0x10006f8, asterisk, 0x1002022 ] }; + key { [ 0x10006f9, 0x1000029, 0x100200e ] }; + key { [ 0x10006f0, 0x1000028, 0x100200f ] }; + key { [ minus, Arabic_tatweel, 0x100005f ] }; + key { [ equal, plus ] }; + + key { [ Arabic_dad, Arabic_sukun, 0x10000b0 ] }; + key { [ Arabic_sad, Arabic_dammatan ] }; + key { [ Arabic_theh, Arabic_kasratan, 0x10020ac ] }; + key { [ Arabic_qaf, Arabic_fathatan, 0x100fd3e ] }; + key { [ Arabic_feh, Arabic_damma, 0x100fd3f ] }; + key { [ Arabic_ghain, Arabic_kasra, 0x100e656] }; + key { [ Arabic_ain, Arabic_fatha, 0x100e659] }; + key { [ Arabic_heh, Arabic_shadda, 0x1000655] }; + key { [ Arabic_khah, bracketright, 0x1000027] }; + key { [ Arabic_hah, bracketleft, 0x1000022] }; + key { [ Arabic_jeem, braceright, 0x1000681 ] }; + key { [ 0x1000686, braceleft, 0x1000685 ] }; + + key { [ Arabic_sheen, Arabic_hamzaonwaw, 0x100069a ] }; + key { [ Arabic_seen, Arabic_hamzaonyeh, 0x10006cd ] }; + key { [ 0x10006cc, Arabic_yeh, 0x1000649 ] }; + key { [ Arabic_beh, Arabic_hamzaunderalef, 0x10006d0 ] }; + key { [ Arabic_lam, Arabic_hamzaonalef, 0x10006b7 ] }; + key { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] }; + key { [ Arabic_teh, Arabic_tehmarbuta, 0x100067c ] }; + key { [ Arabic_noon, 0x10000bb, 0x10006bc ] }; + key { [ Arabic_meem, 0x10000ab, 0x10006ba ] }; + key { [ 0x10006a9, colon, 0x100003b ] }; + key { [ 0x10006af, Arabic_semicolon, 0x10006ab ] }; + + key { [ backslash, bar, 0x100003f ] }; + + key { [ Arabic_zah, Arabic_kaf, 0x10006d2] }; + key { [ Arabic_tah, 0x1000653 , 0x1000691 ] }; + key { [ Arabic_zain, 0x1000698, 0x1000696 ] }; + key { [ Arabic_ra, 0x1000670 , 0x1000693 ] }; + key { [ Arabic_thal, 0x100200c, 0x1000688 ] }; + key { [ Arabic_dal, 0x1000654, 0x1000689 ] }; + key { [ 0x100067e, Arabic_hamza, 0x1000679 ] }; + key { [ Arabic_waw, greater, 0x100002c ] }; + key { [ period, less, 0x10006c7 ] }; + key { [ slash, Arabic_question_mark, 0x10006c9 ] }; + + include "nbsp(zwnj2nb3)" + include "level3(ralt_switch)" +}; + +// Keymap for the Afghan pashto keybord layout +// Based on the specification "Computer Locale Requirements for +// Afghanstan" [1] from the "United Nations Development Programme +// Afghanistan"" and the "Afghan Transitional Islamic +// Administration Ministry of Communications". +// [1] http://www.evertype.com/standards/af/ +// For a MINI HOWTO see [2]. +// [2] http://www.afghanischerKulturverein.de/en/afghanComputer_en.php +// +// 2006-02-15 file created by M. Emal Alekozai + +partial alphanumeric_keys +xkb_symbols "ps" { + name[Group1]= "Pashto"; + + key { [ 0x100200d, 0x10000f7, dead_tilde ] }; + key { [ 0x10006f1, exclam, 0x1000060 ] }; + key { [ 0x10006f2, 0x100066c, 0x1000040 ] }; + key { [ 0x10006f3, 0x100066b, numbersign ] }; + key { [ 0x10006f4, 0x100e60b, 0x1000024] }; + key { [ 0x10006f5, 0x100066a, 0x1000025 ] }; + key { [ 0x10006f6, multiply, 0x100005e ] }; + key { [ 0x10006f7, 0x10000bb, 0x1000026 ] }; + key { [ 0x10006f8, 0x10000ab, 0x1002022 ] }; + key { [ 0x10006f9, 0x1000029, 0x100200e ] }; + key { [ 0x10006f0, 0x1000028, 0x100200f ] }; + key { [ minus, Arabic_tatweel, 0x100005f ] }; + key { [ equal, plus ] }; + + key { [ Arabic_dad, Arabic_sukun, 0x10000b0 ] }; + key { [ Arabic_sad, Arabic_dammatan, 0x1000653 ] }; + key { [ Arabic_theh, Arabic_kasratan, 0x10020ac ] }; + key { [ Arabic_qaf, Arabic_fathatan, 0x100fd3e ] }; + key { [ Arabic_feh, Arabic_damma, 0x100fd3f ] }; + key { [ Arabic_ghain, Arabic_kasra, 0x100e656] }; + key { [ Arabic_ain, Arabic_fatha, 0x100e659] }; + key { [ Arabic_heh, Arabic_shadda, 0x1000670] }; + key { [ Arabic_khah, 0x1000681, 0x1000027] }; + key { [ Arabic_hah, 0x1000685, 0x1000022] }; + key { [ Arabic_jeem, 0x100005d, 0x100007d ] }; + key { [ 0x1000686, 0x100005b, 0x100007b ] }; + + key { [ Arabic_sheen, 0x100069a ] }; + key { [ Arabic_seen, Arabic_hamzaonyeh, 0x10006d2 ] }; + key { [ 0x10006cc, Arabic_yeh, 0x1000649 ] }; + key { [ Arabic_beh, 0x100067e, 0x10006ba ] }; + key { [ Arabic_lam, Arabic_hamzaonalef, 0x10006b7 ] }; + key { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] }; + key { [ Arabic_teh, 0x100067c, 0x1000679 ] }; + key { [ Arabic_noon, 0x10006bc, 0x100003e ] }; + key { [ Arabic_meem, 0x1000629, 0x100003c ] }; + key { [ 0x10006a9, colon, 0x1000643 ] }; + key { [ 0x10006ab, Arabic_semicolon, 0x10006af ] }; + + key { [ backslash, 0x100002a, 0x100007c ] }; + + key { [ 0x10006cd, 0x1000638, 0x100003f] }; + key { [ 0x10006d0, 0x1000637, 0x100003b ] }; + key { [ Arabic_zain, 0x1000698, 0x1000655 ] }; + key { [ Arabic_ra, 0x1000621, 0x1000654 ] }; + key { [ Arabic_thal, 0x100200c, 0x1000625 ] }; + key { [ Arabic_dal, 0x1000689, 0x1000688 ] }; + key { [ 0x1000693, 0x1000624, 0x1000691 ] }; + key { [ Arabic_waw, 0x100060c, 0x100002c ] }; + key { [ 0x1000696, 0x100002e, 0x10006c7 ] }; + key { [ slash, Arabic_question_mark, 0x10006c9 ] }; + + include "nbsp(zwnj2nb3)" + include "level3(ralt_switch)" +}; + +// Keymap for the Afghan southern uzbek keybord layout +// Based on the specification "Computer Locale Requirements for +// Afghanstan" [1] from the "United Nations Development Programme +// Afghanistan"" and the "Afghan Transitional Islamic +// Administration Ministry of Communications". +// [1] http://www.evertype.com/standards/af/ +// For a MINI HOWTO see [2]. +// [2] http://www.afghanischerKulturverein.de/en/afghanComputer_en.php +// +// 2006-02-15 file created by M. Emal Alekozai + +partial alphanumeric_keys +xkb_symbols "uz" { + name[Group1]= "Uzbek (Afghanistan)"; + + key { [ 0x100200d, 0x10000f7, dead_tilde ] }; + key { [ 0x10006f1, exclam, 0x1000060 ] }; + key { [ 0x10006f2, 0x100066c, 0x1000040 ] }; + key { [ 0x10006f3, 0x100066b, numbersign ] }; + key { [ 0x10006f4, 0x100e60b, 0x1000024] }; + key { [ 0x10006f5, 0x100066a, 0x1000025 ] }; + key { [ 0x10006f6, multiply, 0x100005e ] }; + key { [ 0x10006f7, Arabic_comma, 0x1000026 ] }; + key { [ 0x10006f8, asterisk, 0x1002022 ] }; + key { [ 0x10006f9, 0x1000029, 0x100200e ] }; + key { [ 0x10006f0, 0x1000028, 0x100200f ] }; + key { [ minus, Arabic_tatweel, 0x100005f ] }; + key { [ equal, plus ] }; + + key { [ Arabic_dad, Arabic_sukun, 0x10000b0 ] }; + key { [ Arabic_sad, Arabic_dammatan, 0x1000653 ] }; + key { [ Arabic_theh, Arabic_kasratan, 0x10020ac ] }; + key { [ Arabic_qaf, Arabic_fathatan, 0x100fd3e ] }; + key { [ Arabic_feh, Arabic_damma, 0x100fd3f ] }; + key { [ Arabic_ghain, Arabic_kasra, 0x100e656] }; + key { [ Arabic_ain, Arabic_fatha, 0x100e659] }; + key { [ Arabic_heh, Arabic_shadda, 0x1000670] }; + key { [ Arabic_khah, bracketright, 0x1000027] }; + key { [ Arabic_hah, bracketleft, 0x1000022] }; + key { [ Arabic_jeem, braceright, 0x1000681 ] }; + key { [ 0x1000686, braceleft, 0x1000685 ] }; + + key { [ Arabic_sheen, Arabic_hamzaonwaw, 0x100069a ] }; + key { [ Arabic_seen, Arabic_hamzaonyeh, 0x10006cd ] }; + key { [ 0x10006cc, Arabic_yeh, 0x1000649 ] }; + key { [ Arabic_beh, 0x10006d0, 0x1000643 ] }; + key { [ Arabic_lam, Arabic_hamzaonalef, 0x10006b7 ] }; + key { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] }; + key { [ Arabic_teh, Arabic_tehmarbuta, 0x100067c ] }; + key { [ Arabic_noon, 0x10000bb, 0x10006bc ] }; + key { [ Arabic_meem, 0x10000ab, 0x10006ba ] }; + key { [ 0x10006a9, colon, 0x100003b ] }; + key { [ 0x10006af, Arabic_semicolon, 0x10006ab ] }; + + key { [ backslash, bar, 0x100003f ] }; + + key { [ Arabic_zah, 0x10006c9, 0x10006d2] }; + key { [ Arabic_tah, 0x10006c7, 0x1000691 ] }; + key { [ Arabic_zain, 0x1000698, 0x1000696 ] }; + key { [ Arabic_ra, 0x1000625, 0x1000693 ] }; + key { [ Arabic_thal, 0x100200c, 0x1000688 ] }; + key { [ Arabic_dal, 0x1000654, 0x1000689 ] }; + key { [ 0x100067e, Arabic_hamza, 0x1000679 ] }; + key { [ Arabic_waw, greater, 0x100002c ] }; + key { [ period, less ] }; + key { [ slash, Arabic_question_mark, 0x1000655 ] }; + + include "nbsp(zwnj2nb3)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "olpc-ps" { + + name[Group1]= "Pashto (Afghanistan, OLPC)"; + + key { [ 0x100200D, 0x1000654, grave ] }; // zero width joiner, Arabic hamza above + key { [ 0x10006F1, exclam, asciitilde ] }; // Arabic one + key { [ 0x10006F2, 0x100066C, at ] }; // Arabic two, Arabic thousands separator + key { [ 0x10006F3, 0x100066B, numbersign ] }; // Arabic three, Arabic decimal separator + key { [ 0x10006F4, 0x100060B, dollar ] }; // Arabic four, Afghani sign + key { [ 0x10006F5, 0x100066A, percent ] }; // Arabic five, Arabic percent sign + key { [ 0x10006F6, multiply, asciicircum ] }; // Arabic six + key { [ 0x10006F7, guillemotright, ampersand ] }; // Arabic seven + key { [ 0x10006F8, guillemotleft, 0x100066D ] }; // Arabic eight, Arabic five-pointed star + key { [ 0x10006F9, parenright, enfilledcircbullet ] }; // Arabic nine + key { [ 0x10006F0, parenleft, degree ] }; // Arabic zero + key { [ minus, 0x1000640, underscore ] }; // Arabic_tatweel + key { [ equal, plus, division ] }; + + key { [ 0x1000636, 0x1000652, EuroSign ] }; // Arabic dad, Arabic sukun + key { [ 0x1000635, 0x100064C, 0x1000671 ] }; // Arabic sad, Arabic dammatan, Arabic alef walsa + key { [ 0x100062B, 0x100064D, 0x1000649 ] }; // Arabic theh, Arabic kasratan, Arabic alef maksura initial form + key { [ 0x1000642, 0x100064B, 0x100200E ] }; // Arabic qaf, Arabic fathatan, left-to-right mark + key { [ 0x1000641, 0x100064F, 0x100200F ] }; // Arabic feh, Arabic damma, right-to-left mark + key { [ 0x100063A, 0x1000650, 0x100e653 ] }; // Arabic ghain, Arabic kasra, Arabic alef with madda above + key { [ 0x1000639, 0x100064E, 0x100e659 ] }; // Arabic ain, Arabic fatha, Arabic zwarakay + key { [ 0x1000647, 0x1000651, 0x1000670 ] }; // Arabic heh, Arabic shadda, Arabic superscript alef + key { [ 0x100062E, 0x1000681, apostrophe ] }; // Arabic khah, Arabic hah with hamza above, + key { [ 0x100062D, 0x1000685, quotedbl ] }; // Arabic hah, Arabic hah with three dots above + key { [ 0x100062C, bracketright, braceleft ] }; // Arabic jeem + key { [ 0x1000686, bracketleft, braceright ] }; // Arabic tcheh + + key { [ 0x1000634, 0x100069A ] }; // Arabic sheen, Arabic seen with dot below and dot above + key { [ 0x1000633, 0x10006CD ] }; // Arabic seen, Arabic yeh with tail + key { [ 0x10006CC, 0x100064A, 0x10006D2 ] }; // Farsi yeh, Arabic yeh, Arabic yeh barree + key { [ 0x1000628, 0x100067E, 0x10006BA ] }; // Arabic beh, Arabic peh, Arabic noon ghunna + key { [ 0x1000644, 0x1000623, 0x10006B7 ] }; // Arabic lam, Arabic hamza on alef, Arabic alef with hamza above + key { [ 0x1000627, 0x1000622, 0x1000625 ] }; // Arabic alef, Arabic madda on alef, Arabic alef with hamza below + key { [ 0x100062A, 0x100067C, 0x1000679 ] }; // Arabic teh, Arabic teh with ring, Arabic tteh + key { [ 0x1000646, 0x10006BC, greater ] }; // Arabic noon, Arabic noon with ring + key { [ 0x1000645, 0x1000629, less ] }; // Arabic meem, Arabic teh marbuta + key { [ 0x10006A9, colon, 0x1000643 ] }; // Arabic keheh, Arabic kaf + key { [ 0x10006AB, 0x100061B, 0x10006AF ] }; // Arabic kaf with ring, Arabic semicolon, Arabic gaf + + key { [ backslash, asterisk, bar ] }; + + key { [ 0x1000638, 0x1000626, question] }; // Arabic zah, Arabic yeh with hamza above + key { [ 0x10006D0, 0x1000637, semicolon ] }; // Arabic tah, Arabic E + key { [ 0x1000632, 0x1000698 ] }; // Arabic zain, Arabic jeh + key { [ 0x1000631, 0x1000621 ] }; // Arabic_ra (reh?), Arabic hamza + key { [ 0x1000630, 0x100200C ] }; // Arabic_thal, zero width non-joiner + key { [ 0x100062F, 0x1000689, 0x1000688 ] }; // Arabic_dal, Arabic dal with ring, Arabic ddal + key { [ 0x1000693, 0x1000624, 0x1000691 ] }; // Arabic reh with ring, Arabic waw with hamza above, Arabic rreh + key { [ 0x1000648, period, comma ] }; // Arabic_waw, Arabic comma + key { [ 0x1000696, 0x100002E, 0x10006C7 ] }; // Arabic reh with dot below and dot above, full stop, Arabic letter U + key { [ slash, 0x100061F, 0x10006C9 ] }; // Arabic question mark, Arabic kirghiz yu + + include "nbsp(zwnj2nb3)" + include "group(olpc)" +}; + +partial alphanumeric_keys +xkb_symbols "fa-olpc" { + + name[Group1]= "Persian (Afghanistan, Dari OLPC)"; + + key { [ 0x100200D, division, asciitilde ] }; // zero width joiner + key { [ 0x10006F1, exclam, grave ] }; // Arabic one + key { [ 0x10006F2, 0x100066C, at ] }; // Arabic two, Arabic thousands separator + key { [ 0x10006F3, 0x100066B, numbersign ] }; // Arabic three, Arabic decimal separator + key { [ 0x10006F4, 0x100060B, dollar ] }; // Arabic four, Afghani sign + key { [ 0x10006F5, 0x100066A, percent ] }; // Arabic five, Arabic percent sign + key { [ 0x10006F6, multiply, asciicircum ] }; // Arabic six + key { [ 0x10006F7, 0x100060C, ampersand ] }; // Arabic seven, Arabic comma + key { [ 0x10006F8, asterisk, enfilledcircbullet ] }; // Arabic eight, + key { [ 0x10006F9, parenright, 0x100200E ] }; // Arabic nine, left-to-right mark + key { [ 0x10006F0, parenleft, 0x100200F ] }; // Arabic zero, right-to-left mark + key { [ minus, 0x1000640, underscore ] }; // Arabic_tatweel + key { [ equal, plus ] }; + + key { [ 0x1000636, 0x1000652, degree ] }; // Arabic dad, Arabic sukun + key { [ 0x1000635, 0x100064C ] }; // Arabic sad, Arabic dammatan + key { [ 0x100062B, 0x100064D, EuroSign ] }; // Arabic theh, Arabic kasratan + key { [ 0x1000642, 0x100064B, 0x100FD3E ] }; // Arabic qaf, Arabic fathatan, ornate left paren + key { [ 0x1000641, 0x100064F, 0x100FD3F ] }; // Arabic feh, Arabic damma, ornate right paren + key { [ 0x100063A, 0x1000650, 0x1000656 ] }; // Arabic ghain, Arabic kasra, Arabic subscript alef + key { [ 0x1000639, 0x100064E, 0x100e659 ] }; // Arabic ain, Arabic fatha, Arabic zwarakay + key { [ 0x1000647, 0x1000651, 0x1000655 ] }; // Arabic heh, Arabic shadda, Arabic hamza below + key { [ 0x100062E, bracketright, apostrophe ] }; // Arabic khah + key { [ 0x100062D, bracketleft, quotedbl ] }; // Arabic hah + key { [ 0x100062C, braceright, 0x1000681 ] }; // Arabic jeem, Arabic hah with hamza above + key { [ 0x1000686, braceleft, 0x1000685 ] }; // Arabic tcheh, Arabic hah with three dots above + + key { [ 0x1000634, 0x1000624, 0x100069A ] }; // Arabic sheen, Arabic waw with hamza above, Arabic seen with dot below and dot above + key { [ 0x1000633, 0x1000626, 0x10006CD ] }; // Arabic seen, Arabic yeh with hamza above, Arabic yeh with tail + key { [ 0x10006CC, 0x100064A, 0x1000649 ] }; // Farsi yeh, Arabic yeh, Arabic alef maksura + key { [ 0x1000628, 0x1000625, 0x10006D0 ] }; // Arabic beh, Arabic alef with hamza below, Arabic e + key { [ 0x1000644, 0x1000623, 0x10006B7 ] }; // Arabic lam, Arabic hamza on alef, Arabic alef with hamza above + key { [ 0x1000627, 0x1000622, 0x1000671 ] }; // Arabic alef, Arabic madda on alef, Arabic alef wasla + key { [ 0x100062A, 0x1000629, 0x100067C ] }; // Arabic teh, Arabic teh marbuta, Arabic tteh + key { [ 0x1000646, guillemotright, 0x10006BC ] }; // Arabic noon, Arabic noon with ring + key { [ 0x1000645, guillemotleft, 0x10006BA ] }; // Arabic meem, Arabic noon ghunna + key { [ 0x10006A9, colon, semicolon ] }; // Arabic keheh, + key { [ 0x10006AF, 0x100061B, 0x10006AB ] }; // Arabic gaf, Arabic semicolon, Arabic kaf with ring + + key { [ backslash, bar, question ] }; + + key { [ 0x1000638, 0x1000643, 0x10006D2 ] }; // Arabic zah, Arabic kaf, Arabic yeh barree + key { [ 0x1000637, 0x1000653, 0x1000691 ] }; // Arabic tah, Arabic maddah above, Arabic rreh + key { [ 0x1000632, 0x1000698, 0x1000696 ] }; // Arabic zain, Arabic jeh, Arabic reh with dot below and dot above + key { [ 0x1000631, 0x1000670, 0x1000693 ] }; // Arabic_ra (reh?), Arabic superscript alef, Arabic reh with ring + key { [ 0x1000630, 0x100200C, 0x1000688 ] }; // Arabic_thal, zero width non-joiner, Arabic ddal + key { [ 0x100062F, 0x1000654, 0x1000689 ] }; // Arabic dal, Arabic hamza above, Arabic dal with ring + key { [ 0x100067E, 0x1000621, 0x1000679 ] }; // Arabic peh, Arabic hamza, Arabic tteh + key { [ 0x1000648, greater, comma ] }; // Arabic_waw + key { [ period, less, 0x10006C7 ] }; // Arabic u + key { [ slash, 0x100061F, 0x10006C9 ] }; // Arabic question mark, Arabic kirghiz yu + + include "nbsp(zwnj2nb3)" + include "group(olpc)" +}; + +partial alphanumeric_keys +xkb_symbols "uz-olpc" { + + name[Group1]= "Uzbek (Afghanistan, OLPC)"; + + key { [ 0x100200D, division, asciitilde ] }; // zero width joiner + key { [ 0x10006F1, exclam, grave ] }; // Arabic one + key { [ 0x10006F2, 0x100066C, at ] }; // Arabic two, Arabic thousands separator + key { [ 0x10006F3, 0x100066B, numbersign ] }; // Arabic three, Arabic decimal separator + key { [ 0x10006F4, 0x100060B, dollar ] }; // Arabic four, Afghani sign + key { [ 0x10006F5, 0x100066A, percent ] }; // Arabic five, Arabic percent sign + key { [ 0x10006F6, multiply, asciicircum ] }; // Arabic six + key { [ 0x10006F7, 0x100060C, ampersand ] }; // Arabic seven, Arabic comma + key { [ 0x10006F8, asterisk, enfilledcircbullet ] }; // Arabic eight, + key { [ 0x10006F9, parenright, 0x100200E ] }; // Arabic nine, left-to-right mark + key { [ 0x10006F0, parenleft, 0x100200F ] }; // Arabic zero, right-to-left mark + key { [ minus, 0x1000640, underscore ] }; // Arabic_tatweel + key { [ equal, plus ] }; + + key { [ 0x1000636, 0x1000652, degree ] }; // Arabic dad, Arabic sukun + key { [ 0x1000635, 0x100064C, 0x1000653 ] }; // Arabic sad, Arabic dammatan, Arabic maddah above + key { [ 0x100062B, 0x100064D, EuroSign ] }; // Arabic theh, Arabic kasratan + key { [ 0x1000642, 0x100064B, 0x100FD3E ] }; // Arabic qaf, Arabic fathatan, ornate left paren + key { [ 0x1000641, 0x100064F, 0x100FD3F ] }; // Arabic feh, Arabic damma, ornate right paren + key { [ 0x100063A, 0x1000650, 0x1000656 ] }; // Arabic ghain, Arabic kasra, Arabic subscript alef + key { [ 0x1000639, 0x100064E, 0x100e659 ] }; // Arabic ain, Arabic fatha, Arabic zwarakay + key { [ 0x1000647, 0x1000651, 0x1000670 ] }; // Arabic heh, Arabic shadda, Arabic superscript alef + key { [ 0x100062E, bracketright, apostrophe ] }; // Arabic khah + key { [ 0x100062D, bracketleft, quotedbl ] }; // Arabic hah + key { [ 0x100062C, braceright, 0x1000681 ] }; // Arabic jeem, Arabic hah with hamza above + key { [ 0x1000686, braceleft, 0x1000685 ] }; // Arabic tcheh, Arabic hah with three dots above + + key { [ 0x1000634, 0x1000624, 0x100069A ] }; // Arabic sheen, Arabic waw with hamza above, Arabic seen with dot below and dot above + key { [ 0x1000633, 0x1000626, 0x10006CD ] }; // Arabic seen, Arabic yeh with hamza above, Arabic yeh with tail + key { [ 0x10006CC, 0x100064A, 0x1000649 ] }; // Farsi yeh, Arabic yeh, Arabic alef maksura + key { [ 0x1000628, 0x10006D0, 0x1000643 ] }; // Arabic beh, Arabic e, Arabic kaf + key { [ 0x1000644, 0x1000623, 0x10006B7 ] }; // Arabic lam, Arabic hamza on alef, Arabic alef with hamza above + key { [ 0x1000627, 0x1000622, 0x1000671 ] }; // Arabic alef, Arabic madda on alef, Arabic alef wasla + key { [ 0x100062A, 0x1000629, 0x100067C ] }; // Arabic teh, Arabic teh marbuta, Arabic tteh + key { [ 0x1000646, guillemotright, 0x10006BC ] }; // Arabic noon, Arabic noon with ring + key { [ 0x1000645, guillemotleft, 0x10006BA ] }; // Arabic meem, Arabic noon ghunna + key { [ 0x10006A9, colon, semicolon ] }; // Arabic keheh, + key { [ 0x10006AF, 0x100061B, 0x10006AB ] }; // Arabic gaf, Arabic semicolon, Arabic kaf with ring + + key { [ backslash, bar, question ] }; + + key { [ 0x1000638, 0x10006C9, 0x10006D2 ] }; // Arabic zah, Arabic kirghiz yu, Arabic yeh barree + key { [ 0x1000637, 0x10006C7, 0x1000691 ] }; // Arabic tah, Arabic u, Arabic rreh + key { [ 0x1000632, 0x1000698, 0x1000696 ] }; // Arabic zain, Arabic jeh, Arabic reh with dot below and dot above + key { [ 0x1000631, 0x1000625, 0x1000693 ] }; // Arabic_ra (reh?), Arabic alef with hamza below, Arabic reh with ring + key { [ 0x1000630, 0x100200C, 0x1000688 ] }; // Arabic_thal, zero width non-joiner, Arabic ddal + key { [ 0x100062F, 0x1000654, 0x1000689 ] }; // Arabic dal, Arabic hamza above, Arabic dal with ring + key { [ 0x100067E, 0x1000621, 0x1000679 ] }; // Arabic peh, Arabic hamza, Arabic tteh + key { [ 0x1000648, greater, comma ] }; // Arabic_waw + key { [ period, less ] }; + key { [ slash, 0x100061F, 0x1000655 ] }; // Arabic question mark, Arabic hamza below + + include "nbsp(zwnj2nb3)" + include "group(olpc)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/al b/squashfs-root/usr/share/X11/xkb/symbols/al new file mode 100644 index 0000000..2c98b0f --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/al @@ -0,0 +1,110 @@ +// based on +// albanian keyboard layout +// done by Pablo Saratxaga +// + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin(type3)" + + name[Group1]="Albanian"; + + key { [ 1, exclam, asciitilde, dead_tilde ] }; + key { [ 2, quotedbl, dead_caron, oneeighth ] }; + key { [ 3, numbersign, dead_circumflex, sterling ] }; + key { [ 4, dollar, dead_breve, dollar ] }; + key { [ 5, percent, dead_abovering, threeeighths] }; + key { [ 6, asciicircum, dead_ogonek, fiveeighths ] }; + key { [ 7, ampersand, grave, dead_grave ] }; + key { [ 8, asterisk, dead_abovedot, trademark ] }; + key { [ 9, parenleft, dead_acute, plusminus ] }; + key { [ 0, parenright, dead_doubleacute, degree ] }; + key { [ minus, underscore, dead_diaeresis, questiondown] }; + + key { [ e, E, EuroSign, EuroSign ] }; + key { [ ccedilla, Ccedilla, division, dead_abovering ] }; + key { [ at, apostrophe, multiply, dead_macron ] }; + + key { [ s, S, dstroke, section ] }; + key { [ d, D, Dstroke, ETH ] }; + key { [ediaeresis, Ediaeresis, dollar, dead_doubleacute ] }; + key { [bracketleft, braceleft, ssharp, dead_caron ] }; + key { [ backslash, bar, notsign, notsign ] }; + + key { [bracketright, braceright, currency, dead_breve ] }; + key { [ comma, semicolon, less, multiply ] }; + key { [ period, colon, greater, division ] }; + key { [ slash, question, dead_belowdot, dead_abovedot ] }; + + include "level3(ralt_switch)" +}; + + +// Tastiera Plisi (plisi.org) +// by Getoar Mjeku +// + +partial alphanumeric_keys +xkb_symbols "plisi" { + + include "us" + + name[Group1]= "Albanian (Plisi)"; + + key { [ grave, asciitilde ] }; + key { [ 1, exclam, U2019 ] }; + key { [ 2, at, twosuperior ] }; + key { [ 3, numbersign, threesuperior ] }; + key { [ 4, dollar, EuroSign ] }; + key { [ 5, percent, exclamdown ] }; + key { [ 6, asciicircum, questiondown ] }; + key { [ 7, ampersand, braceleft ] }; + key { [ 8, asterisk, braceright ] }; + key { [ 9, parenleft, bracketleft ] }; + key { [ 0, parenright, bracketright ] }; + key { [ minus, underscore, U00AD ] }; + key { [ equal, plus, registered ] }; + + key { [ q, Q, dead_grave ] }; + key { [ w, W, dead_caron ] }; + key { [ e, E, dead_circumflex ] }; + key { [ r, R, dead_diaeresis ] }; + key { [ t, T, dead_macron ] }; + key { [ y, Y, dead_doubleacute ] }; + key { [ u, U, dead_breve ] }; + key { [ i, I, dead_tilde, U0131 ] }; + key { [ o, O, dead_abovering ] }; + key { [ p, P, dead_abovedot ] }; + key { [ ccedilla, Ccedilla, dead_acute ] }; + key { [ greater, less, U031C ] }; + + key { [ a, A, U2264 ] }; + key { [ s, S, U2265 ] }; + key { [ d, D, U2300 ] }; + key { [ f, F, U2032 ] }; + key { [ g, G, U2033 ] }; + key { [ h, H, section ] }; + key { [ j, J, dead_cedilla ] }; + key { [ k, K, dead_comma ] }; + key { [ l, L, dead_ogonek ] }; + key { [ ediaeresis, Ediaeresis, dead_belowdot ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ z, Z, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ c, C, copyright ] }; + key { [ v, V, U2039 ] }; + key { [ b, B, U203A ] }; + key { [ n, N, endash ] }; + key { [ m, M, emdash, U00B5 ] }; + key { [ comma, semicolon, U02BB ] }; + key { [ period, colon, U200C ] }; + key { [ slash, question, U2011 ] }; + + key { [ backslash, bar, U031B ] }; + + include "level3(ralt_switch)" + +}; + diff --git a/squashfs-root/usr/share/X11/xkb/symbols/altwin b/squashfs-root/usr/share/X11/xkb/symbols/altwin new file mode 100644 index 0000000..7240ab8 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/altwin @@ -0,0 +1,116 @@ +// Meta is mapped to second level of Alt. +partial modifier_keys +xkb_symbols "meta_alt" { + key { [ Alt_L, Meta_L ] }; + key { type[Group1] = "TWO_LEVEL", + symbols[Group1] = [ Alt_R, Meta_R ] }; + modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; +// modifier_map Mod4 {}; +}; + +// Alt is mapped to the Super and the usual Alt. +partial modifier_keys +xkb_symbols "alt_win" { + key { [ Alt_L ] }; + key { [ Alt_R ] }; + modifier_map Mod1 { , }; +}; + +// Ctrl is mapped to the Super and the usual Ctrl keys. +partial modifier_keys +xkb_symbols "ctrl_win" { + key { [ Control_L ] }; + key { [ Control_R ] }; + modifier_map Control { , }; +}; + +// Ctrl is mapped to the Alt, Alt to the Super, and Win to the Ctrl keys. +partial modifier_keys +xkb_symbols "ctrl_alt_win" { + key { [ Control_L, Control_L ] }; + key { type[Group1] = "TWO_LEVEL", + symbols[Group1] = [ Control_R, Control_R ] }; + key { [ Alt_L, Meta_L ] }; + key { [ Alt_R, Meta_R ] }; + key { [ Super_L ] }; + key { [ Super_R ] }; + modifier_map Control { , }; + modifier_map Mod1 { , }; + modifier_map Mod4 { , }; +}; + +// Meta is mapped to the Super. +partial modifier_keys +xkb_symbols "meta_win" { + key { [ Alt_L, Alt_L ] }; + key { type[Group1] = "TWO_LEVEL", + symbols[Group1] = [ Alt_R, Alt_R ] }; + key { [ Meta_L ] }; + key { [ Meta_R ] }; + modifier_map Mod1 { Alt_L, Alt_R }; + modifier_map Mod4 { , Meta_L, Meta_R }; +}; + +// Meta is mapped to the left Win key. +partial modifier_keys +xkb_symbols "left_meta_win" { + key { [ Alt_L, Alt_L ] }; + key { [ Meta_L ] }; + modifier_map Mod1 { Alt_L }; + modifier_map Mod4 { , Meta_L }; +}; + +// Hyper is mapped to the Super. +partial modifier_keys +xkb_symbols "hyper_win" { + key { [ Hyper_L ] }; + key { [ Hyper_R ] }; + modifier_map Mod4 { Hyper_L, Hyper_R }; +}; + +// Menu is mapped to the Menu key. +partial modifier_keys +xkb_symbols "menu" { + key { [ Menu ] }; +}; + +// Layout for Tux key caps with additional right Alt key +partial modifier_keys +xkb_symbols "alt_super_win" { + key { [ Alt_L, Meta_L ] }; + key { [ Alt_R, Meta_R ] }; + key { [ Super_L ]}; + key { [ Super_R ] }; + modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; + modifier_map Mod4 { Super_L, Super_R }; +}; + +// Swap the Alt and Super. +partial modifier_keys +xkb_symbols "swap_alt_win" { + include "altwin(swap_lalt_lwin)" + include "altwin(swap_ralt_rwin)" +}; + +// Swap the left Alt and Super. +partial modifier_keys +xkb_symbols "swap_lalt_lwin" { + key { type[Group1] = "ONE_LEVEL", + symbols[Group1] = [ Super_L ] }; + key { [ Alt_L, Meta_L ] }; +}; + +// Swap the right Alt and Super. +hidden partial modifier_keys +xkb_symbols "swap_ralt_rwin" { + key { type[Group1] = "ONE_LEVEL", + symbols[Group1] = [ Super_R ] }; + key { [ Alt_R, Meta_R ] }; +}; + +// Win is mapped to the PrtSc key (and the usual Win key). +partial modifier_keys +xkb_symbols "prtsc_rwin" { + replace key { [ Super_R, Super_R ] }; + modifier_map Mod4 { , }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/am b/squashfs-root/usr/share/X11/xkb/symbols/am new file mode 100644 index 0000000..eab58b0 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/am @@ -0,0 +1,243 @@ +// based on a keyboard map from an 'xkb/symbols/am' file + +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]= "Armenian"; + + key { [ 0x100055d, 0x100055c ] }; + key { [ question, 0x100058a ] }; + key { [ guillemotright, guillemotleft]}; + + key { [ 0x1000586, 0x1000556 ] }; + key { [ 0x1000571, 0x1000541 ] }; + key { [ 0x100058a, 0x1002014 ] }; + key { [ comma, dollar ] }; + key { [ 0x1000589, 0x1002026 ] }; + key { [ 0x100055e, percent ] }; + key { [ 0x1002024, 0x1000587 ] }; + key { [ 0x100055b, 0x10002bc ] }; + key { [ parenright, parenleft ] }; + key { [ 0x1000585, 0x1000555 ] }; + key { [ 0x1000567, 0x1000537 ] }; + key { [ 0x1000572, 0x1000542 ] }; + + key { [ 0x1000573, 0x1000543 ] }; + key { [ 0x1000583, 0x1000553 ] }; + key { [ 0x1000562, 0x1000532 ] }; + key { [ 0x100057d, 0x100054d ] }; + key { [ 0x1000574, 0x1000544 ] }; + key { [ 0x1000578, 0x1000548 ] }; + key { [ 0x1000582, 0x1000552 ] }; + key { [ 0x100056f, 0x100053f ] }; + key { [ 0x1000568, 0x1000538 ] }; + key { [ 0x1000569, 0x1000539 ] }; + key { [ 0x100056e, 0x100053e ] }; + key { [ 0x1000581, 0x1000551 ] }; + + key { [ 0x100057b, 0x100054b ] }; + key { [ 0x100057e, 0x100054e ] }; + key { [ 0x1000563, 0x1000533 ] }; + key { [ 0x1000565, 0x1000535 ] }; + key { [ 0x1000561, 0x1000531 ] }; + key { [ 0x1000576, 0x1000546 ] }; + key { [ 0x100056b, 0x100053b ] }; + key { [ 0x100057f, 0x100054f ] }; + key { [ 0x1000570, 0x1000540 ] }; + key { [ 0x100057a, 0x100054a ] }; + key { [ 0x1000580, 0x1000550 ] }; + + key { [ 0x100056a, 0x100053a ] }; + key { [ 0x1000564, 0x1000534 ] }; + key { [ 0x1000579, 0x1000549 ] }; + key { [ 0x1000575, 0x1000545 ] }; + key { [ 0x1000566, 0x1000536 ] }; + key { [ 0x100056c, 0x100053c ] }; + key { [ 0x1000584, 0x1000554 ] }; + key { [ 0x100056d, 0x100053d ] }; + key { [ 0x1000577, 0x1000547 ] }; + key { [ 0x100057c, 0x100054c ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + include "am(basic)" + include "group(olpc)" +}; + +xkb_symbols "phonetic" { + include "am(basic)" + name[Group1]= "Armenian (phonetic)"; + + key { [ 0x1000577, 0x1000547 ] }; + + key { [ 0x1000567, 0x1000537 ] }; + key { [ 0x1000569, 0x1000539 ] }; + key { [ 0x1000583, 0x1000553 ] }; + key { [ 0x1000571, 0x1000541 ] }; + key { [ 0x100057b, 0x100054b ] }; + key { [ 0x1000582, 0x1000552 ] }; + key { [ 0x1000587, 0x100058f ] }; + key { [ 0x100057c, 0x100054c ] }; + key { [ 0x1000579, 0x1000549 ] }; + key { [ 0x1000573, 0x1000543 ] }; + key { [ 0x100058a, 0x1002015 ] }; + key { [ 0x100056a, 0x100053a ] }; + + key { [ 0x1000584, 0x1000554 ] }; + key { [ 0x1000578, 0x1000548 ] }; + key { [ 0x1000565, 0x1000535 ] }; + key { [ 0x1000580, 0x1000550 ] }; + key { [ 0x100057f, 0x100054f ] }; + key { [ 0x1000568, 0x1000538 ] }; + key { [ 0x1000582, 0x1000552 ] }; + key { [ 0x100056b, 0x100053b ] }; + key { [ 0x1000585, 0x1000555 ] }; + key { [ 0x100057a, 0x100054a ] }; + key { [ 0x100056d, 0x100053d ] }; + key { [ 0x100056e, 0x100053e ] }; + + key { [ 0x1000561, 0x1000531 ] }; + key { [ 0x100057d, 0x100054d ] }; + key { [ 0x1000564, 0x1000534 ] }; + key { [ 0x1000586, 0x1000556 ] }; + key { [ 0x1000563, 0x1000533 ] }; + key { [ 0x1000570, 0x1000540 ] }; + key { [ 0x1000575, 0x1000545 ] }; + key { [ 0x100056f, 0x100053f ] }; + key { [ 0x100056c, 0x100053c ] }; + key { [ semicolon, 0x1000589 ] }; + key { [ 0x100055b, 0x1000022 ] }; + + key { [ 0x1000566, 0x1000536 ] }; + key { [ 0x1000572, 0x1000542 ] }; + key { [ 0x1000581, 0x1000551 ] }; + key { [ 0x100057e, 0x100054e ] }; + key { [ 0x1000562, 0x1000532 ] }; + key { [ 0x1000576, 0x1000546 ] }; + key { [ 0x1000574, 0x1000544 ] }; + key { [ 0x100002C, 0x10000AB ] }; + key { [ 0x1002024, 0x10000BB ] }; + key { [ 0x100002F, 0x100055e ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "phonetic-alt" { + include "am(phonetic)" + name[Group1]= "Armenian (alt. phonetic)"; + + key { [ 0x1000580, 0x1000550 ] }; + key { [ 0x100057c, 0x100054c ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "olpc-phonetic" { + include "am(phonetic-alt)" + name[Group1]= "Armenian (OLPC phonetic)"; + + include "group(olpc)" +}; + +partial alphanumeric_keys +xkb_symbols "eastern" { + + name[Group1]="Armenian (eastern)"; + + // This is the closer phonetic transliteration for Eastern Armenian + // than the Windows XP layout for Eastern Armenian, which seems + // to have contained a bug, with the reversal of 'g' for keh and 'c' for gim. + // Also, AE01 (the colon) has been replaced with the Armenian_full_stop, + // and capital AE07 (ken) with the Armenian ligature ew. + + key { [ Armenian_separation_mark, Armenian_exclam ] }; + key { [ Armenian_full_stop, KP_1 ] }; + key { [ Armenian_dza, Armenian_DZA ] }; + key { [ Armenian_hi, Armenian_HI ] }; + key { [ Armenian_accent, KP_3 ] }; + key { [ comma, KP_4 ] }; + key { [ minus, KP_9 ] }; + key { [ period, Armenian_ligature_ew ] }; + key { [ guillemotleft, parenleft ] }; + key { [ guillemotright, parenright ] }; + key { [ Armenian_o, Armenian_O ] }; + key { [ Armenian_ra, Armenian_RA ] }; + key { [ Armenian_zhe, Armenian_ZHE ] }; + + key { [ Armenian_khe, Armenian_KHE ] }; + key { [ Armenian_vyun, Armenian_VYUN ] }; + key { [ Armenian_e, Armenian_E ] }; + key { [ Armenian_re, Armenian_RE ] }; + key { [ Armenian_tyun, Armenian_TYUN ] }; + key { [ Armenian_yech, Armenian_YECH ] }; + key { [ Armenian_at, Armenian_AT ] }; + key { [ Armenian_ini, Armenian_INI ] }; + key { [ Armenian_vo, Armenian_VO ] }; + key { [ Armenian_pe, Armenian_PE ] }; + key { [ Armenian_cha, Armenian_CHA ] }; + key { [ Armenian_je, Armenian_JE ] }; + key { [ apostrophe, Armenian_question ] }; + + key { [ Armenian_ayb, Armenian_AYB ] }; + key { [ Armenian_se, Armenian_SE ] }; + key { [ Armenian_da, Armenian_DA ] }; + key { [ Armenian_fe, Armenian_FE ] }; + key { [ Armenian_gim, Armenian_GIM ] }; + key { [ Armenian_ho, Armenian_HO ] }; + key { [ Armenian_tche, Armenian_TCHE ] }; + key { [ Armenian_ken, Armenian_KEN ] }; + key { [ Armenian_lyun, Armenian_LYUN ] }; + key { [ Armenian_to, Armenian_TO ] }; + key { [ Armenian_pyur, Armenian_PYUR ] }; + + key { [ Armenian_za, Armenian_ZA ] }; + key { [ Armenian_tso, Armenian_TSO ] }; + key { [ Armenian_ke, Armenian_KE ] }; + key { [ Armenian_vev, Armenian_VEV ] }; + key { [ Armenian_ben, Armenian_BEN ] }; + key { [ Armenian_nu, Armenian_NU ] }; + key { [ Armenian_men, Armenian_MEN ] }; + key { [ Armenian_sha, Armenian_SHA ] }; + key { [ Armenian_ghat, Armenian_GHAT ] }; + key { [ Armenian_tsa, Armenian_TSA ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "western" { + include "am(eastern)" + name[Group1]="Armenian (western)"; + + // This is exactly the same layout for Western Armenian + // as in Windows XP, except: + // AE01 (the colon) has been replaced with the Armenian_full_stop and + // capital AE07 (ken) with the Armenian ligature ew + + key { [ Armenian_vev, Armenian_VEV ] }; + key { [ Armenian_da, Armenian_DA ] }; + key { [ Armenian_ben, Armenian_BEN ] }; + key { [ Armenian_tyun, Armenian_TYUN ] }; + key { [ Armenian_ken, Armenian_KEN ] }; + key { [ Armenian_ke, Armenian_KE ] }; + key { [ Armenian_gim, Armenian_GIM ] }; + key { [ Armenian_vyun, Armenian_VYUN ] }; + key { [ Armenian_pe, Armenian_PE ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "eastern-alt" { + include "am(eastern)" + name[Group1]="Armenian (alt. eastern)"; + + // This replicates the Windows XP keyboard layout for Eastern + // Armenian exactly (including the bug), except: + // AE01 (the colon) has been replaced with the Armenian_full_stop and + // capital AE07 (ken) with the Armenian ligature ew + + key { [ Armenian_ke, Armenian_KE ] }; + key { [ Armenian_gim, Armenian_GIM ] }; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/apl b/squashfs-root/usr/share/X11/xkb/symbols/apl new file mode 100644 index 0000000..5cb7440 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/apl @@ -0,0 +1,617 @@ +// EXTRAS: +// +// APL Keyboard Layouts + +// This file supports: +// - The Sharp APL for Unix (SAX) layout +// - The IBM APL2 layout +// - The Manugistics APL*PLUS II (Version 5.1, 1993) keyboard layout +// - The Dyalog APL layout - with additions for box drawing and commands + +// Unicode APL table: http://aplwiki.com/UnicodeAplTable +// ...and another: http://publibfp.boulder.ibm.com/epubs/pdf/h2110611.pdf (appendix A) +// Generic Unicode stuff: http://www.fileformat.info/info/unicode/category/index.htm + +// Tim Nelson (this file's creator) says: + +// This file does not deal with all the combining stuff -- I'm not an APL programmer, +// and am not quite sure what's needed here. However, it may be possible to get this +// working with dead keys and the like. Patches gratefully accepted. +// [Geoff Streeter: What has been done to is to support all of the APL overstrikes in the compose table] + +// Some of the shift-key assignments may differ from the APL tradition. If +// that's not considered acceptable, it should be possible to remap the +// shift keys. I have striven, however, to ensure that the use of shift keys +// in these maps is at least self-consistent. + +// I'm assuming that this will be used with another keyboard layout (ie. for +// your language), with a special shift key to use these maps. + +// 2017-02-27 changed ¤ to ⌺, added ⊆ +// 2012-09-26 changed "overbar" to macron which fixed some strangeness in xterm + +// 2011-12-22 Geoff Streeter: geoff@dyalog.com +// Added the Dyalog support. +// Corrected (what he thinks) are some errors. +// Resolving the confusion between APL's and Unicode's concept of Left and Right tacks. +// Unsure about some of the inheritance from APL2 into APLPLUS. Patches welcome. +// Complied with freedesktop.org requirement that the keycodes be in sorted order. Which +// leads to the bottom to top (roughly) definitions. + +// default layout seems to have to be the first one. Choosing the basic Dyalog layout is definitely +// better than using the "common" one. Choosing the complete Dyalog layout is not useful to non-Dyalog +// users. + +default partial alphanumeric_keys +xkb_symbols "basic" { + include "apl(dyalog_base)" // forward reference good APL keyboard without Dyalogs extras +}; + +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// │ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ │ ┃ ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ ┃ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ │ │ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ │ │ ┃ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial hidden alphanumeric_keys +xkb_symbols "common" { + name[Group1]= "APL"; + + key { [ U2282 ] }; // Z: ⊂ -- Subset Of + key { [ U2283 ] }; // X: ⊃ -- Superset Of + key { [ U2229 ] }; // C: ∩ -- Intersection + key { [ U222A ] }; // V: ∪ -- Union + key { [ U22A5 ] }; // B: ⊥ -- Up Tack + key { [ U22A4 ] }; // N: ⊤ -- Down Tack + key { [ U007C ] }; // M: | -- Vertical Line + + key { [ U237A ] }; // A: ⍺ -- APL Functional Symbol Alpha + key { [ U2308 ] }; // S: ⌈ -- Left Ceiling + key { [ U230A ] }; // D: ⌊ -- Left Floor + key { [ underscore ] }; // F: + key { [ U2207 ] }; // G: ∇ -- Nabla + key { [ U2206 ] }; // H: ∆ -- Increment + key { [ U2218 ] }; // J: ∘ -- Ring Operator + key { [ apostrophe ] }; // K: + key { [ U2395 ] }; // L: ⎕ -- APL Functional Symbol Quad + + key { [ question ] }; // Q: + key { [ U2375 ] }; // W: ⍵ -- APL Functional Symbol Omega + key { [ U220A ] }; // E: ∊ -- Small Element Of + key { [ U2374 ] }; // R: ⍴ -- APL Functional Symbol Rho + key { [ asciitilde ] }; // T: + key { [ U2191 ] }; // Y: ↑ -- Upwards Arrow + key { [ U2193 ] }; // U: ↓ -- Downwards Arrow + key { [ U2373 ] }; // I: ⍳ -- APL Functional Symbol Iota + key { [ U25CB ] }; // O: ○ -- White Circle + key { [ asterisk ] }; // P: * -- asterisk + key { [ U2190 ] }; // [: ← -- Leftwards Arrow + + key { [ diaeresis ] }; + key { [ macron ] }; // ¯ -- Macron + key { [ less ] }; + key { [ U2264 ] }; // ≤ -- Less-than Or Equal To + key { [ equal ] }; + key { [ U2265 ] }; // ≥ -- Greater-than Or Equal To + key { [ greater ] }; + key { [ U2260 ] }; // ≠ -- Not Equal To + key { [ U2228 ] }; // ∨ -- Logical Or + key { [ U2227 ] }; // ∧ -- Logical And +}; + +// Keys common to a number of keyboards that allow normal language usage alongside APL + +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ │ │ │ │ │ │ │ │ │ ⍱ │ ⍲ │ │ ⌹ ┃ ┃ +// │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ × │ ÷ ┃ ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ → ┃ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ │ │ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ │ │ ┃ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial alphanumeric_keys +xkb_symbols "unified" { + name[Group1]= "APL Keyboard Symbols: Unified Layout"; + + include "apl(common)" + + key { [ U2192 ] }; // ]: → -- Rightwards Arrow + key { [ NoSymbol, U2371 ] }; // 9: ⍱ -- APL Functional Symbol Down Caret Tilde + key { [ NoSymbol, U2372 ] }; // 0: ⍲ -- APL Functional Symbol Up Caret Tilde + key { [ U00D7 ] }; // -: × -- Multiplication Sign + key { [ U00F7, U2339 ] }; // =: ÷ ⌹ -- Division Sign / APL Functional Symbol Quad Divide + key { [ U22C4 ] }; // `: ⋄ -- Diamond Operator +}; + +// Layout: http://www.wickensonline.co.uk/apl-unicomp.html + +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ │ ¡ │ │ │ ¢ │ │ │ │ ⍂ │ ⍱ │ ⍲ │ ≡ │ ⌹ ┃ ┃ +// │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ × │ ÷ ┃ ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ ¿ │ ⌽ │ ⍷ │ │ ⍉ │ │ │ ⍸ │ ⍥ │ ⍣ │ │ ┃ ┃ +// ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ → ┃ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ ⊖ │ │ │ ⍫ │ ⍒ │ ⍋ │ ⍤ │ ⌻ │ ⍞ │ │ │ ⍀ ┃ ┃ +// ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ ⊢ │ ⊣ │ ⍝ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ │ │ │ ⍝ │ │ ⍎ │ ⍕ │ ⌶ │ ⍪ │ ⍙ │ ⌿ ┃ ┃ +// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ ⍞ │ ⍎ │ ⍕ ┃ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial alphanumeric_keys +xkb_symbols "sax" { + name[Group1]= "APL Keyboard Symbols: sax"; + + include "apl(unified)" + + key { [ NoSymbol, U235D ] }; // C: ⍝ -- APL Functional Symbol Up Shoe Jot + key { [ NoSymbol, U234E ] }; // B: ⍎ -- APL Functional Symbol Down Tack Jot (Unicode got the name wrong; it should have been "Up Tack") + key { [ NoSymbol, U2355 ] }; // N: ⍕ -- APL Functional Symbol Up Tack Jot (Unicode got the name wrong; it should have been "Down Tack") + key { [ NoSymbol, U2336 ] }; // M: ⌶ -- APL Functional Symbol I-Beam + key { [ U235E, U236A ] }; // ,: ⍞ ⍪ -- APL Functional Symbol Quote Quad / APL Functional Symbol Comma Bar + key { [ U234E, U2359 ] }; // .: ⍎ ⍙ -- [See B key] / APL Functional Symbol Delta Underbar + key { [ U2355, U233F ] }; // /: ⍕ ⌿ -- [See N key] / APL Functional Symbol Slash Bar + + key { [ NoSymbol, U2296 ] }; // A: ⊖ -- Circled Minus + key { [ NoSymbol, U236B ] }; // F: ⍫ -- APL Functional Symbol Del Tilde + key { [ NoSymbol, U2352 ] }; // G: ∇ ⍒ -- APL Functional Symbol Del Stile + key { [ NoSymbol, U234B ] }; // H: ∆ ⍋ -- APL Functional Symbol Delta Stile + key { [ NoSymbol, U2364 ] }; // J: ⍤ -- APL Functional Symbol Jot Diaeresis + key { [ NoSymbol, U233B ] }; // K: ⌻ + key { [ NoSymbol, U235E ] }; // L: ⍞ -- APL Functional Symbol Quote Quad + key { [ U22A2 ] }; // ;: ⊢ -- Right Tack + key { [ U22A3 ] }; // ': ⊣ -- Left Tack + + key { [ NoSymbol, U00BF ] }; // Q: ¿ -- Inverted Question Mark + key { [ NoSymbol, U233D ] }; // W: ⌽ -- APL Functional Symbol Circle Stile + key { [ NoSymbol, U2377 ] }; // E: ⍷ -- APL Functional Symbol Epsilon Underbar + key { [ NoSymbol, U2349 ] }; // T: ⍉ -- APL Functional Symbol Circle Backslash + key { [ NoSymbol, U2378 ] }; // I: ⍸ -- APL Functional Symbol Iota Underbar + key { [ NoSymbol, U2365 ] }; // O: ⍥ -- APL Functional Symbol Circle Diaeresis + key { [ NoSymbol, U235F ] }; // P: ⍟ -- APL Functional Symbol Circle Star + key { [ NoSymbol, U00A1 ] }; // 1: ¡ -- Inverted Exclamation Mark + key { [ NoSymbol, cent ] }; // 4: + key { [ NoSymbol, U2342 ] }; // 8: ⍂ -- APL Functional Symbol Quad Backslash + key { [ NoSymbol, U2261 ] }; // -: ≡ -- Identical To + + key { [ U235D, U2340 ] }; // \: ⍝ ⍀ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Backslash Bar +}; + +// Layout: http://www.wickensonline.co.uk/apl-unicomp.html + +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ⍂ │ ⌶ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃ +// │ ⌻ │ │ │ │ │ │ │ │ │ │ │ - │ ÷ ┃ ┃ +// │ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ + │ × ┃ ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ⍞ │ ⍙ ┃ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ → │ ⍸ ┃ ┃ +// ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ ⌷ ┃ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ ⍎ │ ⍕ │ ⍤ ┃ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ ( │ ) │ ⍷ ┃ ┃ +// ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ [ │ ] │ ≡ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ ⍝ │ ⍀ │ ⌿ ┃ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ ; │ : │ \ ┃ ┃ +// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ , │ . │ / ┃ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial alphanumeric_keys +xkb_symbols "apl2" { + name[Group1]= "APL Keyboard Symbols: IBM APL2"; + + include "apl(common)" + + // The first column is NoSymbol because it inherits. The second is NoSymbol because those keys don't do anything + // AFS - short for APL Functional Symbol + + key { [ comma, semicolon, U235D ] }; // ,: ⍝ -- AFS Up Shoe Jot + key { [ period, colon, U2340 ] }; // .: ⍀ -- AFS Backslash Bar + key { [ slash, backslash, U233F ] }; // /: ⌿ -- AFS Slash Bar + + key { [ bracketleft, parenleft, U234E ] }; // ;: ⍎ -- [See B key in SAX layout] + key { [ bracketright, parenright, U2355 ] }; // ': ⍕ -- [See N key in SAX layout] + + key { [ NoSymbol, U2192, U235E ] }; // [: (←) → ⍞ -- Rightwards Arrow / AFS Quote Quad + key { [ U2337, U2378, U2359 ] }; // ]: ⌷ ⍸ ⍙ -- AFS Squish Quad / AFS Iota Underbar / AFS Delta Underbar + + key { [ NoSymbol, NoSymbol, U2336 ] }; // 1: ⌶ -- AFS I-Beam + key { [ NoSymbol, NoSymbol, U236B ] }; // 2: ⍫ -- AFS Del Tilde + key { [ NoSymbol, NoSymbol, U2353 ] }; // 3: ⍒ -- AFS Del Stile + key { [ NoSymbol, NoSymbol, U234B ] }; // 4: ⍋ -- AFS Delta Stile + key { [ NoSymbol, NoSymbol, U233D ] }; // 5: ⌽ -- AFS Circle Stile + key { [ NoSymbol, NoSymbol, U2349 ] }; // 6: ⍉ -- AFS Circle Backslash + key { [ NoSymbol, NoSymbol, U2296 ] }; // 7: ⊖ -- Circled Minus + key { [ NoSymbol, NoSymbol, U235F ] }; // 8: ⍟ -- AFS Circle Star + key { [ NoSymbol, NoSymbol, U2371 ] }; // 9: ⍱ -- AFS Down Caret Tilde + key { [ NoSymbol, NoSymbol, U2372 ] }; // 0: ⍲ -- AFS Up Caret Tilde + key { [ plus, minus, exclam ] }; // -: + key { [ U00D7, U00F7, U2339 ] }; // =: × ÷ ⌹ -- Multiplication Sign / Division Sign / AFS Quad Divide + + key { [ U2261, U2377, U2364 ] }; // \: ≡ ⍷ ⍤ -- Identical To / AFS Epsilon Underbar / AFS Jot Diaeresis + + key { [ NoSymbol, U233B, U2342 ] }; // `: ⌻ ⍂ -- + + include "level3(ralt_switch)" +}; + +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ⍪ │ ≡ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃ +// │ ⋄ │ │ │ │ │ │ │ │ │ │ │ - │ ÷ ┃ ┃ +// │ $ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ + │ × ┃ ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ⍞ │ ⍬ ┃ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ → │ ⍸ ┃ ┃ +// ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ → ┃ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ ⍎ │ ⍕ │ ⍙ ┃ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ ( │ ) │ ⊣ ┃ ┃ +// ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ [ │ ] │ ⊢ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ ⍝ │ ⍀ │ ⌿ ┃ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ ; │ : │ \ ┃ ┃ +// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ , │ . │ / ┃ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial alphanumeric_keys +xkb_symbols "aplplusII" { + name[Group1]= "APL Keyboard Symbols: Manugistics APL*PLUS II"; + // AFS - short for APL Functional Symbol + + include "apl(apl2)" + + key { [ bracketleft, parenleft, U234E ] }; // ;: ⍎ -- [See B key in SAX layout] + key { [ bracketright, parenright, U2355 ] }; // ': ⍕ -- [See N key in SAX layout] + key { [ U2190, NoSymbol, U235E ] }; // [: ← ⍞ -- Leftwards Arrow / AFS Quote Quad + key { [ U2192, NoSymbol, U236C ] }; // ]: → ⍬ -- Rightwards Arrow / AFS Zilde + key { [ NoSymbol, NoSymbol, U2261 ] }; // 1: ≡ -- Identical To + key { [ U22A2, U22A3, U2359 ] }; // \: ⊢ ⊣ ⍙ -- Left Tack / Right Tack / AFS Delta Underbar + key { [ dollar, U22C4, U236A ] }; // `: ⋄ ⍪ -- Diamond Operator / AFS Comma Bar +}; + + +// MicroAPL layout: http://aplwiki.com/APLXKeyboardLayouts +// I didn't do the old-style MicroAPL layout; patches gratefully accepted + +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ⍞ │ ⌶ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃ +// │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ × │ ÷ ┃ ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ⍇ │ ⍈ ┃ ┃ +// ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ → ┃ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ ≡ │ ≢ │ ⊣ ┃ ┃ +// ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ ⍎ │ ⍕ │ ⊢ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ ⍪ │ ⍤ │ ┃ ┃ +// ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ ⍝ │ ⍀ │ ⌿ ┃ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial alphanumeric_keys +xkb_symbols "aplx" { + name[Group1]= "APL Keyboard Symbols: APLX Unified APL Layout"; + + include "apl(unified)" + + key { [ U235D, U236A ] }; // ,: ⍝ ⍪ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Comma Bar + key { [ U2340, U2364 ] }; // .: ⍀ ⍤ -- APL Functional Symbol Backslash Bar / APL Functional Symbol Jot Diaeresis + key { [ U233F ] }; // /: ⌿ -- APL Functional Symbol Slash Bar + + key { [ U234E, U2261 ] }; // ;: ⍎ ≡ -- [See B key in SAX layout] / Identical To + key { [ U2355, U2262 ] }; // ': ⍕ ≢ -- [See N key in SAX layout] / Not Identical To + + key { [ NoSymbol, U2347 ] }; // [: ⍇ -- Box With Left Arrow + key { [ NoSymbol, U2348 ] }; // ]: ⍈ -- Box With Right Arrow + + key { [ NoSymbol, U2336 ] }; // 1: ⌶ -- APL Functional Symbol I-Beam + key { [ NoSymbol, U236B ] }; // 2: ⍫ -- APL Functional Symbol Del Tilde + key { [ NoSymbol, U2353 ] }; // 3: ⍒ -- APL Functional Symbol Del Stile + key { [ NoSymbol, U234B ] }; // 4: ⍋ -- APL Functional Symbol Delta Stile + key { [ NoSymbol, U233D ] }; // 5: ⌽ -- APL Functional Symbol Circle Stile + key { [ NoSymbol, U2349 ] }; // 6: ⍉ -- APL Functional Symbol Circle Backslash + key { [ NoSymbol, U2296 ] }; // 7: ⊖ -- Circled Minus + key { [ NoSymbol, U235F ] }; // 8: ⍟ -- APL Functional Symbol Circle Star + key { [ NoSymbol, exclam ] }; // -: + + key { [ U22A2, U22A3 ] }; // \: ⊢ ⊣ -- Right Tack / Left Tack + + key { [ NoSymbol, U235E ] }; // `: ⍞ -- APL Functional Symbol Quote Quad +}; + +// APL language support for the Dyalog keyboard. +// Dyalog Ltd sell this keyboard with APL engravings. The current model is +// engraved on a Cherry G80. Base languages for US, UK and DK are availible. + +// Geoff Streeter, Dyalog Ltd. 2007-09-03 +// geoff@dyalog.com +// extended for APL special actions 2008-09-09 +// add variant 2010-11-26 +// made BKSL and LTGT keys the same to remove a compatibility issue with the UK physical keyboard +// add key (quad equals) 2013-03-12 +// add currency 2014-05-23 +// add parallel 2014-05-23 +// add circle jot 2014-05-23 +// add t diaeresis 2014-05-23 +// add del diaerisis 2014-05-23 +// add quad query 2014-05-23 +// add dagger 2014-05-23 +// correct spelling of key name LTGT→LSGT 2016-05-26 + +// The intention is that this keyboard layout overlays a base keyboard that provides +// the alphabet and similar. If this keyboard is placed as the 2nd layout then it can +// be reached with a latching shift to increase group by one. + +partial alphanumeric_keys +xkb_symbols "dyalog_base" { + +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ⌺ │ ⌶ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃ +// │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ × │ ÷ ┃ ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ ⍰ │ │ ⍷ │ ⌾ │ ⍨ │ │ │ ⍸ │ ⍥ │ ⍣ │ ⍞ │ ⍬ ┃ ┃ +// ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ → ┃ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ │ │ │ │ ⍢ │ │ ⍤ │ ⌸ │ ⌷ │ ≡ │ ≢ │ ⊣ ┃ ┃ +// ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ ⍎ │ ⍕ │ ⊢ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ ⊣ │ ⊆ │ │ │ │ ⍭ │ ⍡ │ ∥ │ ⍪ │ ⍙ │ ⍠ ┃ ┃ +// ┃ ┃ ⊢ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ ⍝ │ ⍀ │ ⌿ ┃ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + + + key { [ U2282, U2286 ] }; // subset of, enclose if simple + key { [ U2283 ] }; // superset of + key { [ U2229 ] }; // intersection + key { [ U222A ] }; // union + key { [ U22a5, U236d ] }; // up tack, stile tide + key { [ U22a4, U2361 ] }; // down tack, down tack diaeresis + key { [ bar, U2225 ] }; // vertical line, parallel to + key { [ U235d, U236a ] }; // up shoe jot, comma bar + key { [ U2340, U2359 ] }; // backslash bar, delta underbar + key { [ U233f, U2360 ] }; // slash bar, quad colon + key { [ U237a ] }; // alpha + key { [ U2308 ] }; // left ceiling + key { [ U230a ] }; // left floor + key { [ underscore ] }; // low line + key { [ U2207, U2362 ] }; // nabla, del diaerisis + key { [ U2206 ] }; // increment + key { [ U2218, U2364 ] }; // ring operator, jot diaeresis + key { [ apostrophe, U2338 ] }; // quote, key + key { [ U2395, U2337 ] }; // quad, squish quad + key { [ U234e, U2261 ] }; // up tack jot, identical to + key { [ U2355, U2262 ] }; // down tack jot, not identical to + key { [ question, U2370 ] }; // ?, quad question + key { [ U2375 ] }; // omega + key { [ U220a, U2377 ] }; // small element of, epsilon underbar + key { [ U2374, U233E ] }; // rho, circle jot + key { [ asciitilde, U2368 ] }; // tilde, tilde diaeresis + key { [ U2191 ] }; // upwards arrow + key { [ U2193 ] }; // downwards arrow + key { [ U2373, U2378 ] }; // iota, iota underbar + key { [ U25cb, U2365 ] }; // circle, circle diaeresis + key { [ asterisk, U2363 ] }; // asterisk, star diaeresis + key { [ U2190, U235e ] }; // left arrow, quote quad + key { [ U2192, U236c ] }; // right arrow, zilde + key { [ diaeresis, U2336 ] }; // i-beam + key { [ macron, U236B ] }; // deltilde + key { [ less, U2352 ] }; // downgrade + key { [ U2264, U234b ] }; // lesseq upgrade + key { [ equal, U233d ] }; // circlestile + key { [ U2265, U2349 ] }; // greatereq circleslope + key { [ greater, U2296 ] }; // circlebar + key { [ U2260, U235f ] }; // notequal, circlestar + key { [ U2228, U2371 ] }; // logical or, down caret tilde + key { [ U2227, U2372 ] }; // logical and, up caret tilde + key { [ multiply, exclam ] }; + key { [ division, U2339 ] }; // quad divide + key { [ U22a2, U22a3 ] }; // right tack, left tack + key { [ U22a2, U22a3 ] }; // right tack, left tack + key { [ U22c4, U233a ] }; // diamond, quad diamond +}; + +partial keypad_keys +xkb_symbols "dyalog_box" { + +// ┌───┬───┬───┬───┐ +// │ │ │ │ │ +// ├───┼───┼───┼───┤ +// │ ┌ │ ┬ │ ┐ │ │ +// ├───┼───┼───┤ │ +// │ ├ │ ┼ │ ┤ │ │ +// ├───┼───┼───┼───┤ +// │ └ │ ┴ │ ┘ │ │ +// ├───┴───┼───┤ │ +// │ ─ │ │ │ │ +// └───────┴───┴───┘ + + key { [ U2500 ] }; // box drawing light horizontal + key { [ U2514 ] }; // box drawing light up and right + key { [ U2534 ] }; // box drawing light up and horizontal + key { [ U2518 ] }; // box drawing light up and left + key { [ U251c ] }; // box drawing light vertical and right + key { [ U253c ] }; // box drawing light vertical and horizontal + key { [ U2524 ] }; // box drawing light vertical and left + key { [ U250c ] }; // box drawing light down and right + key { [ U252c ] }; // box drawing light down and horizontal + key { [ U2510 ] }; // box drawing light down and left + key { [ U2502 ] }; // box drawing light vertical + +}; + +xkb_symbols "dyalog_codes" { + +// Layout of private use area for this. In the style of the Unicode book +// +// APL special actions F800-F88F +// +// │F800 F810 F820 F830 F840 F850 F860 F870 F880 +// ├────┬────┬────┬────┬────┬────┬────┬────┬────┐ +// 0│QT │LL │BK │FX │Rc │BP │PA │ │ │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// 1│ER │HO │ZM │LN │LW │AB │ │ │ │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// 2│TB │CT │SC │MC │RW │HT │ │ │ │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// 3│BT │PT │RP │MR │Lw │TH │ │ │ │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// 4│EP │IN │NX │JP │Rw │RM │ │ │ │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// 5│UC │II │PV │D1 │Uc │CB │ │ │ │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// 6│DC │DI │RT │D2 │Dc │PR │ │ │TO │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// 7│RC │DP │RA │D3 │Ll │SR │ │ │MO │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// 8│LC │DB │ED │D4 │Rl │ │ │ │ │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// 9│US │RD │TC │D5 │Ul │TL │ │ │ │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// A│DS │TG │NB │U1 │Dl │UA │ │ │ │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// B│RS │DK │NS │U2 │Us │AO │ │ │ │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// C│LS │OP │ST │U3 │Ds │DO │ │ │ │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// D│UL │CP │EN │U4 │DD │GL │ │ │S1 │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// E│DL │MV │IF │U5 │DH │CH │ │ │S2 │ +// ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ +// F│RL │FD │HK │Lc │BH │PU │ │ │OS │ +// └────┴────┴────┴────┴────┴────┴────┴────┴────┘ +// +// APL Function Keys F700-F7FF +// +// │F700 ... ... F7F0 +// ├────┬────┬────┬────┬....┬────┬────┬────┬────┐ +// 0│F0 │F16 │F32 │F48 │ │F192│F208│F224│F240│ +// . +// . +// . +// F│F15 │F31 │F47 │F63 │ │F207│F223│F239│F255│ +// └────┴────┴────┴────┴....┴────┴────┴────┴────┘ +// +// whilst these locations are defined. Dyalog's "aplkeys/xterm" file copes with +// normal function keys from the base keyboard rather than this overlay + +// ┌─────┐ ┌───┐ +// │ │ │ZM │ +// │ QT │ │ZM │ +// └─────┘ └───┘ + +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ CB ┃ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ BP ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ BT ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ TB ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ TC ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ED ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ MO ┃ ┃ ┃ ┃ +// ┃ ┃ ┃ ┃ TO ┃ ┃ ┃ ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + + + key { [ Uf850, Uf855 ] }; // BP CB + key { [ Uf800 ] }; // QT + key { [ Uf821, Uf821 ] }; // ZM, ZM put this on both, the unshifted one sometimes gets lost + key { [ Uf828, Uf829 ] }; // ED, TC + key { [ Uf886, Uf887 ] }; // TO, MO + key { [ Uf802, Uf803 ] }; // TB, BT + +// ┌─────┐ +// │ │ +// │ BK │ +// ┌────┼─────┼────┐ +// │ BH │ │ RM │ +// │ PV │ FD │ NX │ +// └────┴─────┴────┘ + + key { [ Uf81f ] }; // FD + key { [ Uf825, Uf84f ] }; // PV, BH + key { [ Uf824, Uf854 ] }; // NX, RM + key { [ Uf820 ] }; // BK + + +// ┌───┬───┬───┐ +// │PT │LL │UL │ +// │CP │LS │US │ +// ├───┼───┼───┤ +// │CT │RL │DL │ +// │DK │RS │DS │ +// └───┴───┴───┘ + + key { [ Uf81b, Uf812 ] }; // DK, CT + key { [ Uf80b, Uf80f ] }; // RS, RL + key { [ Uf80c, Uf810 ] }; // LS, LL + key { [ Uf81d, Uf813 ] }; // CP, PT + key { [ Uf80a, Uf80e ] }; // DS, DL + key { [ Uf809, Uf80d ] }; // US, UL + +// ┌───┬───┬───┬───┐ +// │ │RD │TG │LN │ +// ├───┼───┼───┼───┤ +// │ │ │ │ │ +// ├───┼───┼───┤TL │ +// │ │ │ │ │ +// ├───┼───┼───┼───┤ +// │ │ │ │ │ +// ├───┴───┼───┤ │ +// │ │ │ │ +// └───────┴───┴───┘ + + + key { [ Uf859 ] }; // TL + key { [ Uf819 ] }; // RD + key { [ Uf81a ] }; // TG + key { [ Uf831 ] }; // LN +}; + +xkb_symbols "dyalog" { + include "apl(dyalog_base)" + include "apl(dyalog_box)" + include "apl(dyalog_codes)" + name[Group1] = "Dyalog APL complete"; +}; + diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ara b/squashfs-root/usr/share/X11/xkb/symbols/ara new file mode 100644 index 0000000..fe980ab --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ara @@ -0,0 +1,344 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Arabic"; + +// NOTES: +// +// There is also a combined shadda diacritic in the AltGr position of the +// simple diacritics fatha, fathatan, damma, dammatan, kasra and kasratan. (??) +// Should a third state be added to Group2? + + key { [ Arabic_thal, Arabic_shadda ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenright ] }; + key { [ 0, parenleft ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ Arabic_dad, Arabic_fatha ] }; + key { [ Arabic_sad, Arabic_fathatan ] }; + key { [ Arabic_theh, Arabic_damma ] }; + key { [ Arabic_qaf, Arabic_dammatan ] }; + key { [ Arabic_feh, 0x100fef9, 0x10006a4 ] }; + key { [ Arabic_ghain, Arabic_hamzaunderalef] }; + key { [ Arabic_ain, grave ] }; + key { [ Arabic_ha, division ] }; + key { [ Arabic_khah, multiply ] }; + key { [ Arabic_hah, Arabic_semicolon ] }; + key { [ Arabic_jeem, less, 0x1000686 ] }; + key { [ Arabic_dal, greater ] }; + + key { [ Arabic_sheen, Arabic_kasra ] }; + key { [ Arabic_seen, Arabic_kasratan ] }; + key { [ Arabic_yeh, bracketright ] }; + key { [ Arabic_beh, bracketleft, 0x100067e ] }; + key { [ Arabic_lam, 0x100fef7 ] }; + // ARABIC LETTER ALEF WASLA on AltGr + key { [ Arabic_alef, Arabic_hamzaonalef, 0x1000671 ] }; + key { [ Arabic_teh, Arabic_tatweel ] }; + key { [ Arabic_noon, Arabic_comma ] }; + key { [ Arabic_meem, slash ] }; + key { [ Arabic_kaf, colon, 0x10006af ] }; + key { [ Arabic_tah, quotedbl ] }; + + key { [ bar, brokenbar ] }; + key { [Arabic_hamzaonyeh, asciitilde, guillemotright ]}; + key { [ Arabic_hamza, Arabic_sukun, guillemotleft ]}; + key { [Arabic_hamzaonwaw, braceright ] }; + key { [ Arabic_ra, braceleft ] }; + key { [ 0x100fefb, 0x100fef5 ] }; + // ARABIC LETTER SUPERSCRIPT ALEF on AltGr + key { [Arabic_alefmaksura, Arabic_maddaonalef, 0x1000670 ] }; + key { [Arabic_tehmarbuta, apostrophe ] }; + key { [ Arabic_waw, comma ] }; + key { [ Arabic_zain, period ] }; + key { [ Arabic_zah, Arabic_question_mark ] }; +}; + +partial alphanumeric_keys +xkb_symbols "qwerty" { + include "ara(basic)" + name[Group1]= "Arabic (QWERTY)"; +}; + +partial alphanumeric_keys +xkb_symbols "azerty" { + include "ara(basic)" + name[Group1]= "Arabic (AZERTY)"; + + // The North African Arabic keyboard differs from the Middle East one + // by the numeric row; it follows French keyboard style. + // + // PROBLEM: some characters are inaccessible: ! @ # $ % ^ * + // Should they go elsewhere? Replacing " ' that are now doubled? + // Also, dead_circumflex and dead_diaeresis from French keyboard + // as well as ugrave are missing, which questions the utility of the + // other accentuated Latin letters. Maybe this is useful only with + // a French keyboard in Group1? Then, shouldn't Group1 be filled? + + key { [ ampersand, 1 ] }; + key { [ eacute, 2 ] }; + key { [ quotedbl, 3 ] }; + key { [ apostrophe, 4 ] }; + key { [ parenleft, 5 ] }; + key { [ minus, 6 ] }; + key { [ egrave, 7 ] }; + key { [ underscore, 8 ] }; + key { [ ccedilla, 9 ] }; + key { [ agrave, 0 ] }; + key { [ parenright, degree ] }; +}; + +partial hidden alphanumeric_keys +xkb_symbols "digits_KP" { + + // Use Arabic-script digits on the keypad. + + key { [ KP_Home, 0x1000667 ] }; + key { [ KP_Up, 0x1000668 ] }; + key { [ KP_Prior, 0x1000669 ] }; + + key { [ KP_Left, 0x1000664 ] }; + key { [ KP_Begin, 0x1000665 ] }; + key { [ KP_Right, 0x1000666 ] }; + + key { [ KP_End, 0x1000661 ] }; + key { [ KP_Down, 0x1000662 ] }; + key { [ KP_Next, 0x1000663 ] }; + + key { [ KP_Insert, 0x1000660 ] }; +}; + +partial alphanumeric_keys +xkb_symbols "digits" { + include "ara(basic)" + name[Group1]= "Arabic (digits)"; + + // Use Arabic-script digits on the numeric row. + + key { [ 0x1000661, exclam ] }; + key { [ 0x1000662, at ] }; + key { [ 0x1000663, numbersign ] }; + key { [ 0x1000664, dollar ] }; + key { [ 0x1000665, Arabic_percent ] }; + key { [ 0x1000666, asciicircum ] }; + key { [ 0x1000667, ampersand ] }; + key { [ 0x1000668, asterisk ] }; + key { [ 0x1000669, parenright ] }; + key { [ 0x1000660, parenleft ] }; + + include "ara(digits_KP)" +}; + +partial alphanumeric_keys +xkb_symbols "qwerty_digits" { + include "ara(digits)" + name[Group1]= "Arabic (qwerty/digits)"; +}; + +partial alphanumeric_keys +xkb_symbols "azerty_digits" { + include "ara(azerty)" + name[Group1]= "Arabic (AZERTY/digits)"; + + key { [ ampersand, 0x1000661 ] }; + key { [ eacute, 0x1000662 ] }; + key { [ quotedbl, 0x1000663 ] }; + key { [ apostrophe, 0x1000664 ] }; + key { [ parenleft, 0x1000665 ] }; + key { [ minus, 0x1000666 ] }; + key { [ egrave, 0x1000667 ] }; + key { [ underscore, 0x1000668 ] }; + key { [ ccedilla, 0x1000669 ] }; + key { [ agrave, 0x1000660 ] }; +}; + +// Arabic keyboard using Buckwalter transliteration +// http://www.qamus.org/transliteration.htm +// Martin Vidner + +partial alphanumeric_keys +xkb_symbols "buckwalter" { + name[Group1]= "Arabic (Buckwalter)"; + + // ARABIC LETTER SUPERSCRIPT ALEF + key { [ 0x1000670, Arabic_shadda ] }; + + // Arabic_0 .. Arabic_9 do not work in Kate, + // Unicode never seems to work worse. + key { [ 0x1000661, VoidSymbol ] }; + key { [ 0x1000662, VoidSymbol ] }; + key { [ 0x1000663, VoidSymbol ] }; + key { [ 0x1000664, Arabic_sheen ] }; + key { [ 0x1000665, Arabic_percent ] }; + key { [ 0x1000666, VoidSymbol ] }; + key { [ 0x1000667, Arabic_hamzaonwaw ] }; + key { [ 0x1000668, Arabic_thal ] }; + // ORNATE LEFT PARENTHESIS + key { [ 0x1000669, 0x100fd3e ] }; + // ORNATE RIGHT PARENTHESIS + key { [ 0x1000660, 0x100fd3f ] }; + key { [ minus, Arabic_tatweel ] }; + key { [ equal, plus ] }; + + key { [ Arabic_qaf, VoidSymbol ] }; + key { [ Arabic_waw, Arabic_hamzaonwaw ] }; + key { [ VoidSymbol, Arabic_ain ] }; + key { [ Arabic_ra, VoidSymbol ] }; + key { [ Arabic_teh, Arabic_tah ] }; + key { [ Arabic_yeh, Arabic_alefmaksura ] }; + key { [ Arabic_damma, VoidSymbol ] }; + key { [ Arabic_kasra, Arabic_hamzaunderalef ] }; + key { [ Arabic_sukun, Arabic_hamzaonalef ] }; + key { [ Arabic_tehmarbuta, VoidSymbol ] }; + // ARABIC LETTER ALEF WASLA + key { [ VoidSymbol, 0x1000671 ] }; + key { [ VoidSymbol, Arabic_hamzaonyeh ] }; + + key { [ Arabic_fatha, Arabic_alef ] }; + key { [ Arabic_seen, Arabic_sad ] }; + key { [ Arabic_dal, Arabic_dad ] }; + key { [ Arabic_feh, Arabic_fathatan ] }; + key { [ Arabic_ghain, VoidSymbol ] }; + key { [ Arabic_ha, Arabic_hah ] }; + key { [ Arabic_jeem, VoidSymbol ] }; + key { [ Arabic_kaf, Arabic_kasratan ] }; + key { [ Arabic_lam, VoidSymbol ] }; + key { [ Arabic_semicolon, VoidSymbol ] }; + key { [ Arabic_hamza, VoidSymbol ] }; + + key { [ VoidSymbol, Arabic_maddaonalef ] }; + + key { [ Arabic_zain, Arabic_zah ] }; + key { [ Arabic_khah, VoidSymbol ] }; + key { [ VoidSymbol, VoidSymbol ] }; + key { [ Arabic_theh, VoidSymbol ] }; + key { [ Arabic_beh, VoidSymbol ] }; + key { [ Arabic_noon, Arabic_dammatan ] }; + key { [ Arabic_meem, VoidSymbol ] }; + key { [ Arabic_comma, Arabic_hamzaunderalef ] }; + // ARABIC FULL STOP (Urdu) + key { [ 0x10006d4, Arabic_hamzaonalef ] }; + key { [ VoidSymbol, Arabic_question_mark ] }; +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + + include "ara(basic)" + + // As part of the OLPC design, some changes were made to the Arabic + // keyboard design. Major changes are: + // + // * Removed the lam-alef single character. People type as they + // pronounce, and lam-alef is just a visual formatting of the + // sequence and is not often used on the keyboard. It is + // similar to the Allah single character, which is also not on + // the keyboard. + // * Moved the following keys: + // o Thal from TLDE to AB05: due to space limitation on the + // keyboard, but also accessibility. + // o Shadda from TLDE to AD05. + // * Placed currency letters on number keys and moved the ^ and & + // characters to lower keys. (This change is worth revisiting + // before end of test period). + + key { [ grave, asciitilde ] }; + + key { [ 0x1000661, exclam ] }; + key { [ 0x1000662, at ] }; + key { [ 0x1000663, numbersign ] }; + key { [ 0x1000664, dollar ] }; + key { [ 0x1000665, Arabic_percent ] }; + key { [ 0x1000666, sterling ] }; + key { [ 0x1000667, EuroSign ] }; + key { [ 0x1000668, asterisk ] }; + key { [ 0x1000669, parenright ] }; + key { [ 0x1000660, parenleft ] }; + + key { [ Arabic_feh, Arabic_shadda ] }; + + key { [ Arabic_heh, division ] }; + key { [ Arabic_jeem, braceright ] }; + key { [ Arabic_dal, braceleft ] }; + + key { [ Arabic_sheen, greater ] }; + key { [ Arabic_seen, less ] }; + key { [ Arabic_lam, ampersand ] }; + key { [ Arabic_kaf ] }; + key { [ Arabic_tah ] }; + + key { [ backslash, bar ] }; + + // REH isolated form? + key { [ Arabic_hamzaonwaw, Arabic_kasra ] }; + key { [ Arabic_ra, Arabic_kasratan ] }; + key { [ Arabic_thal, asciicircum ] }; + + include "group(olpc)" +}; + +partial alphanumeric_keys +xkb_symbols "mac" { + + //This is a layout that is compatible with macbooks + + include "ara(digits)" + name[Group1]= "Arabic (Macintosh)"; + + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ Arabic_tatweel, VoidSymbol ] }; + key { [ Arabic_theh, Arabic_kasra ] }; + key { [ Arabic_qaf, Arabic_kasratan ] }; + key { [ Arabic_feh, Arabic_damma ] }; + key { [ Arabic_ghain, Arabic_dammatan ] }; + key { [ Arabic_ain, Arabic_sukun ] }; + key { [ Arabic_ha, Arabic_shadda ] }; + key { [ Arabic_khah, bracketright ] }; + key { [ Arabic_hah, bracketleft ] }; + key { [ Arabic_jeem, braceright ] }; + key { [Arabic_tehmarbuta, braceleft ] }; + + key { [ Arabic_sheen, guillemotright ] }; + key { [ Arabic_seen, guillemotleft ] }; + key { [ Arabic_yeh, Arabic_alefmaksura] }; + key { [ Arabic_beh, 0x1000670 ] }; + key { [ Arabic_lam, VoidSymbol ] }; + key { [ Arabic_alef, Arabic_maddaonalef ] }; + key { [ Arabic_teh, 0x1000671 ] }; + key { [ Arabic_noon, VoidSymbol ] }; + key { [ Arabic_meem, VoidSymbol ] }; + key { [ Arabic_kaf, colon ] }; + key { [ Arabic_semicolon, quotedbl ] }; + + key { [ backslash, bar ] }; + + key { [ Arabic_tatweel, VoidSymbol ] }; + key { [ Arabic_zah, VoidSymbol ] }; + key { [ Arabic_tah, VoidSymbol ] }; + key { [ Arabic_thal, Arabic_hamzaonyeh ] }; + key { [ Arabic_dal, Arabic_hamza ] }; + key { [ Arabic_zain, Arabic_hamzaonalef ] }; + key { [ Arabic_ra, Arabic_hamzaunderalef ] }; + key { [ Arabic_waw, Arabic_hamzaonwaw ] }; + key { [ Arabic_comma, greater ] }; + key { [ period, less ] }; + key { [ slash, Arabic_question_mark ] }; + +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/ara(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/at b/squashfs-root/usr/share/X11/xkb/symbols/at new file mode 100644 index 0000000..5694106 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/at @@ -0,0 +1,34 @@ +// based on a keyboard map from an 'xkb/symbols/de' file + +default +xkb_symbols "basic" { + + include "de(basic)" + + name[Group1]="German (Austria)"; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + include "de(nodeadkeys)" + + name[Group1]="German (Austria, no dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "mac" { + + include "de(mac)" + + name[Group1]= "German (Austria, Macintosh)"; +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + + include "de(Sundeadkeys)" + + name[Group1]="German (Austria, with Sun dead keys)"; +}; + diff --git a/squashfs-root/usr/share/X11/xkb/symbols/au b/squashfs-root/usr/share/X11/xkb/symbols/au new file mode 100644 index 0000000..7fcc279 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/au @@ -0,0 +1,9 @@ +// +// Default Australian is the same as American +// +default partial alphanumeric_keys +xkb_symbols "basic" { + include "us(basic)" + + name[Group1]= "English (Australian)"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/az b/squashfs-root/usr/share/X11/xkb/symbols/az new file mode 100644 index 0000000..b92a8cc --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/az @@ -0,0 +1,87 @@ +// Symbols definition for a Azerbaijani keyboard layout. +// Based on AZS 495-2010 standard. +// 2001 - Pablo Saratxaga +// 2015 - Adil Aliyev + +default partial alphanumeric_keys +xkb_symbols "latin" { + + include "us" + + name[Group1]= "Azerbaijani"; + + key { [ grave, asciitilde ] }; + key { [ 2, quotedbl ] }; + key { [ 3, U2166 ] }; + key { [ 4, semicolon ] }; + key { [ 5, percent ] }; + key { [ 6, colon ] }; + key { [ 7, question ] }; + key { [ 8, asterisk ] }; + + key { [ backslash, slash ] }; + + key { [ udiaeresis, Udiaeresis ] }; + key { [ i, Iabovedot ] }; + key { [ odiaeresis, Odiaeresis ] }; + key { [ gbreve, Gbreve ] }; + key { [ idotless, I ] }; + key { [ schwa, SCHWA ] }; + key { [ ccedilla, Ccedilla ] }; + key { [ scedilla, Scedilla ] }; + key { [ period, comma ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "cyrillic" { + + name[Group1]= "Azerbaijani (Cyrillic)"; + + key {[ 2, quotedbl ] }; + key {[ 3, numbersign ] }; + key {[ 4, semicolon ] }; + key {[ 6, colon ] }; + key {[ 7, question ] }; + key {[ 8, asterisk, braceleft ] }; + key {[ 9, parenleft, bracketleft ] }; + key {[ 0, parenright, bracketright ] }; + key {[ minus, underscore, braceright ] }; + + key {[ Cyrillic_je, Cyrillic_JE ] }; + key {[ Cyrillic_u_straight, Cyrillic_U_straight ] }; + key {[ Cyrillic_u, Cyrillic_U ] }; + key {[ Cyrillic_ka, Cyrillic_KA ] }; + key {[ Cyrillic_ie, Cyrillic_IE ] }; + key {[ Cyrillic_en, Cyrillic_EN ] }; + key {[ Cyrillic_ghe, Cyrillic_GHE ] }; + key {[ Cyrillic_sha, Cyrillic_SHA ] }; + key {[ Cyrillic_shha, Cyrillic_SHHA ] }; + key {[ Cyrillic_ze, Cyrillic_ZE ] }; + key {[ Cyrillic_ha, Cyrillic_HA ] }; + key {[ Cyrillic_che_vertstroke, Cyrillic_CHE_vertstroke ] }; + + key {[ Cyrillic_ef, Cyrillic_EF ] }; + key {[ Cyrillic_yeru, Cyrillic_YERU ] }; + key {[ Cyrillic_ve, Cyrillic_VE ] }; + key {[ Cyrillic_a, Cyrillic_A ] }; + key {[ Cyrillic_pe, Cyrillic_PE ] }; + key {[ Cyrillic_er, Cyrillic_ER ] }; + key {[ Cyrillic_o, Cyrillic_O ] }; + key {[ Cyrillic_el, Cyrillic_EL ] }; + key {[ Cyrillic_de, Cyrillic_DE ] }; + key {[ Cyrillic_zhe, Cyrillic_ZHE ] }; + key {[ Cyrillic_ka_vertstroke,Cyrillic_KA_vertstroke ] }; + + key {[ Cyrillic_schwa, Cyrillic_SCHWA ] }; + key {[ Cyrillic_che, Cyrillic_CHE ] }; + key {[ Cyrillic_es, Cyrillic_ES ] }; + key {[ Cyrillic_em, Cyrillic_EM ] }; + key {[ Cyrillic_i, Cyrillic_I ] }; + key {[ Cyrillic_te, Cyrillic_TE ] }; + key {[ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; + key {[ Cyrillic_be, Cyrillic_BE ] }; + key {[ Cyrillic_o_bar, Cyrillic_O_bar ] }; + key {[ period, comma ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ba b/squashfs-root/usr/share/X11/xkb/symbols/ba new file mode 100644 index 0000000..3525364 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ba @@ -0,0 +1,34 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "rs(latin)" + name[Group1]="Bosnian"; +}; + +partial alphanumeric_keys +xkb_symbols "us" { + + include "rs(latinyz)" + name[Group1]= "Bosnian (US, with Bosnian letters)"; +}; + +partial alphanumeric_keys +xkb_symbols "alternatequotes" { + + include "rs(latinalternatequotes)" + name[Group1]= "Bosnian (with guillemets)"; +}; + +partial alphanumeric_keys +xkb_symbols "unicode" { + + include "rs(latinunicode)" + name[Group1]= "Bosnian (with Bosnian digraphs)"; +}; + +partial alphanumeric_keys +xkb_symbols "unicodeus" { + + include "rs(latinunicodeyz)" + name[Group1]= "Bosnian (US, with Bosnian digraphs)"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/bd b/squashfs-root/usr/share/X11/xkb/symbols/bd new file mode 100644 index 0000000..0fe144e --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/bd @@ -0,0 +1,96 @@ +// +// XKB symbol :: National Bangla/Bengali Standard Keyboard Layout for Bangladesh +// Ref: http://www.bcc.net.bd/keyboard/bsti_kb_specification.pdf +// +// Author: Jamil Ahmed +// Created: 18-12-2005 +// Last Updated: 08-01-2006 +// Version: 6.01.3 +// +// Issues: +// Khanda-Ta is given U-09CE; But BCC had U-09BA +// U-09BB is added though it is not allocated in Original Unicode +// U-09B3 is added though it is not allocated in Original Unicode +// 3 Conjunct characters are not included +// + +default partial alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Bangla"; + key { [ Escape ] }; + +// numbers + key { [ grave, asciitilde, voidsymbol, voidsymbol ] }; + key { [ 0x10009E7, exclam, 0x10009F4, voidsymbol ] }; + key { [ 0x10009E8, at, 0x10009F5, voidsymbol ] }; + key { [ 0x10009E9, numbersign, 0x10009F6, voidsymbol ] }; + key { [ 0x10009EA, dollar, 0x10009F3, 0x10009F2 ] }; + key { [ 0x10009EB, percent, 0x10009F7, voidsymbol ] }; + key { [ 0x10009EC, asciicircum, 0x10009F8, 0x10009B3 ] }; + key { [ 0x10009ED, ampersand, 0x1000902, voidsymbol ] }; + key { [ 0x10009EE, asterisk, voidsymbol, voidsymbol ] }; + key { [ 0x10009EF, parenleft, voidsymbol, voidsymbol ] }; + key { [ 0x10009E6, parenright, 0x10009F9, voidsymbol ] }; + key { [ minus, underscore, 0x100200C, voidsymbol ] }; + key { [ equal, plus, 0x100200D, voidsymbol ] }; + key { [ BackSpace ] }; + +// tab, q to ] + key { [ Tab, ISO_Left_Tab ] }; + key { [ 0x1000999, 0x1000982, 0x10009E2, 0x10009E3 ] }; + key { [ 0x10009AF, 0x10009DF, voidsymbol, voidsymbol ] }; + key { [ 0x10009A1, 0x10009A2, 0x10009C4, voidsymbol ] }; + key { [ 0x10009AA, 0x10009AB, voidsymbol, voidsymbol ] }; + key { [ 0x100099F, 0x10009A0, voidsymbol, voidsymbol ] }; + key { [ 0x100099A, 0x100099B, voidsymbol, voidsymbol ] }; + key { [ 0x100099C, 0x100099D, voidsymbol, voidsymbol ] }; + key { [ 0x10009B9, 0x100099E, 0x10009BD, voidsymbol ] }; + key { [ 0x1000997, 0x1000998, voidsymbol, voidsymbol ] }; + key { [ 0x10009DC, 0x10009DD, voidsymbol, voidsymbol ] }; + key { [ bracketleft, braceleft, voidsymbol, voidsymbol ] }; + key { [ bracketright, braceright, voidsymbol, voidsymbol ] }; + key { [ Return ] }; + +// caps, a to ' +// key { [ Caps_Lock ] }; + key { [ 0x10009C3, 0x10009D7, 0x100098B, 0x10009E0 ] }; + key { [ 0x10009C1, 0x10009C2, 0x1000989, 0x100098A ] }; + key { [ 0x10009BF, 0x10009C0, 0x1000987, 0x1000988 ] }; + key { [ 0x10009AC, 0x10009AD, 0x10009F0, 0x10009F1 ] }; + key { [ 0x10009CD, 0x1000964, 0x1000965, voidsymbol ] }; + key { [ 0x10009BE, 0x1000985, 0x1000986, voidsymbol ] }; + key { [ 0x1000995, 0x1000996, 0x10009BB, voidsymbol ] }; + key { [ 0x10009A4, 0x10009A5, 0x10009CE, voidsymbol ] }; + key { [ 0x10009A6, 0x10009A7, 0x100098C, 0x10009E1 ] }; + key { [ semicolon, colon, voidsymbol, voidsymbol ] }; + key { [ apostrophe, quotedbl, voidsymbol, voidsymbol ] }; + +// shift, z to / +// key { [ Shift_L ] }; + key { [ 0x1000981, 0x1000983, 0x10009FA, voidsymbol ] }; + key { [ 0x10009CB, 0x10009CC, 0x1000993, 0x1000994 ] }; + key { [ 0x10009C7, 0x10009C8, 0x100098F, 0x1000990 ] }; + key { [ 0x10009B0, 0x10009B2, voidsymbol, voidsymbol ] }; + key { [ 0x10009A8, 0x10009A3, voidsymbol, voidsymbol ] }; + key { [ 0x10009B8, 0x10009B7, voidsymbol, voidsymbol ] }; + key { [ 0x10009AE, 0x10009B6, voidsymbol, voidsymbol ] }; + key { [ comma, less, voidsymbol, voidsymbol ] }; + key { [ period, greater, 0x10009BC, voidsymbol ] }; + key { [ slash, question, voidsymbol, voidsymbol ] }; + key { [ backslash, bar, voidsymbol, voidsymbol ] }; + +// third level with right-Alt + include "level3(ralt_switch)" + +}; + + +// +// XKB symbol :: Probhat Bangla/Bengali Keyboard Layout +// Ref: www.ankurbangla.org/images/probhat_layout.png +// + +xkb_symbols "probhat" { + include "in(ben_probhat)" + name[Group1]= "Bangla (Probhat)"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/be b/squashfs-root/usr/share/X11/xkb/symbols/be new file mode 100644 index 0000000..f4a0665 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/be @@ -0,0 +1,239 @@ +// based on a keyboard map from an 'xkb/symbols/be' file + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin" + + name[Group1]="Belgian"; + + key { [ ampersand, 1, bar, exclamdown ] }; + key { [ eacute, 2, at, oneeighth ] }; + key { [ quotedbl, 3, numbersign, sterling ] }; + key { [apostrophe, 4, onequarter, dollar ] }; + key { [ parenleft, 5, onehalf, threeeighths ] }; + key { [ section, 6, asciicircum, fiveeighths ] }; + key { [ egrave, 7, braceleft, seveneighths ] }; + key { [ exclam, 8, bracketleft, trademark ] }; + key { [ ccedilla, 9, braceleft, plusminus ] }; + key { [ agrave, 0, braceright, degree ] }; + key { [parenright, degree, backslash, questiondown ] }; + key { [ minus, underscore, dead_cedilla, dead_ogonek ] }; + + key { [ a, A, at, Greek_OMEGA ] }; + key { [ z, Z, lstroke, Lstroke ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ o, O, oe, OE ] }; // o O œ Œ + key { [dead_circumflex, dead_diaeresis, bracketleft, dead_abovering ] }; + key { [ dollar, asterisk, bracketright, dead_macron ] }; + + key { [ q, Q, ae, AE ] }; + key { [ m, M, dead_acute, dead_doubleacute ] }; + key { [ ugrave, percent, dead_acute, dead_caron ] }; + key { [twosuperior, threesuperior, notsign, notsign ] }; + + key { [ mu, sterling, dead_grave, dead_breve ] }; + key { [ w, W, guillemotleft, less ] }; + key { [ comma, question, dead_cedilla, masculine ] }; + key { [ semicolon, period, horizconnector, multiply ] }; + key { [ colon, slash, periodcentered, division ] }; + key { [ equal, plus, dead_tilde, dead_abovedot] }; + key { [ less, greater, backslash, backslash ] }; + + include "level3(ralt_switch)" +}; + + +// Variant of the fr(oss) layout for Belgium +// Copyright © 2006 Nicolas Mailhot +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ³ ≤ │ 1 ≥ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ™ │ 7 È │ 8 ¡ │ 9 Ç │ 0 À │ ° Ø │ _ ± ┃ ⌫ Retour┃ +// │ ² ¹ │ & | │ é @ │ " # │ ' ¸ │ ( ˇ │ § ^ │ è ` │ ! ~ │ ç { │ à } │ ) ø │ - ‑ ┃ arrière┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ * ̨ ┃Entrée ┃ +// ┃Tab ↹ ┃ a æ │ z â │ e € │ r ê │ t þ │ y ÿ │ u û │ i î │ o œ │ p ô │ ^ [ │ $ ] ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ Q Ä │ S „ │ D Ë │ F ‚ │ G ¥ │ H Ð │ J Ü │ K Ï │ L │ M Ö │ % Ù │ £ ̄ ┃ ┃ +// ┃Maj ⇬ ┃ q ä │ s ß │ d ë │ f ‘ │ g ’ │ h ð │ j ü │ k ï │ l / │ m ö │ ù ' │ µ ` ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ > ≠ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ + − ┃ ┃ +// ┃Shift ⇧┃ < \ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ = ~ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ␣ Espace insécable ⍽ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace ␣ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +partial alphanumeric_keys +xkb_symbols "oss" { + + include "fr(oss)" + include "be(oss_frbe)" + + name[Group1]="Belgian (alt.)"; +}; + +partial alphanumeric_keys +xkb_symbols "oss_frbe" { + // First row + key { [ twosuperior, threesuperior, onesuperior, lessthanequal ] }; // ² ³ ¹ ≤ + key { [ ampersand, 1, bar, greaterthanequal ] }; // & 1 | ≥ + key { [ eacute, 2, at, Eacute ] }; // é 2 @ É + key { [ apostrophe, 4, dead_cedilla, 0x1002014 ] }; // ' 4 ¸ — (tiret cadratin) + key { [ parenleft, 5, dead_caron, 0x1002013 ] }; // ( 5 ˇ – (tiret demi-cadratin) + key { [ section, 6, asciicircum, trademark ] }; // § 6 ^ ™ + key { [ exclam, 8, asciitilde, exclamdown ] }; // ! 8 ~ ¡ + key { [ ccedilla, 9, braceleft, Ccedilla ] }; // ç 9 { Ç + key { [ agrave, 0, braceright, Agrave ] }; // à 0 } À + key { [ parenright, degree, oslash, Ooblique ] }; // ) ° ø Ø + key { [ minus, underscore, 0x1002011, plusminus ] }; // - _ - (tiret insécable) ± + + // Second row + key { [ dead_circumflex, dead_diaeresis, bracketleft, dead_abovering ] }; // ^ ̈ [ ˚ + key { [ dollar, asterisk, bracketright, dead_ogonek ] }; // $ * ] ̨ + + // Third row + key { [ l, L, dead_stroke ] }; + key { [ mu, sterling, dead_grave, dead_macron ] }; // µ £ ` ̄ + + // Fourth row + key { [ less, greater, backslash, notequal ] }; // < > \ ≠ + key { [ equal, plus, dead_tilde, 0x1002212 ] }; // = + ~ − +}; + + +partial alphanumeric_keys +xkb_symbols "oss_latin9" { + + // Restricts the be(oss) layout to latin9 symbols + + include "fr(oss_latin9)" + include "be(oss_frbe)" + include "keypad(oss_latin9)" + + name[Group1]="Belgian (alt., Latin-9 only)"; + + // First row + key { [ twosuperior, threesuperior, onesuperior, less ] }; // ² ³ ¹ < + key { [ ampersand, 1, bar, greater ] }; // & 1 | > + key { [ apostrophe, 4, dead_cedilla, minus ] }; // ' 4 ¸ - + key { [ parenleft, 5, dead_caron, minus ] }; // ( 5 ˇ - + key { [ section, 6, asciicircum, asciicircum ] }; // § 6 ^ ^ + key { [ minus, underscore, minus, plusminus ] }; // - _ - ± + + // Second row + key { [ dollar, asterisk, bracketright, dead_cedilla ] }; // $ * ] ¸ + + // Third row + key { [ l, L, l, L ] }; // l L l L + key { [ mu, sterling, dead_grave, dead_circumflex ] }; // µ £ ` ^ + + // Fourth row + key { [ less, greater, backslash, equal ] }; // < > \ = + key { [ equal, plus, dead_tilde, minus ] }; // = + ~ - +}; + + +partial alphanumeric_keys +xkb_symbols "oss_Sundeadkeys" { + + // Modifies the basic be(oss) layout to use the Sun dead keys + + include "be(oss)" + + // First row + key { [ apostrophe, 4, dead_cedilla, 0x1002014 ] }; // ' 4 ¸ — (tiret cadratin) + + // Second row + key { [ dead_circumflex, dead_diaeresis, bracketleft, dead_abovering ] }; // ^ ̈ [ ˚ + + //Third row + key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù + key { [ mu, sterling, dead_grave, dead_macron ] }; // µ £ ` ̄ + + // Fourth row + key { [ equal, plus, dead_tilde, 0x1002212 ] }; // = + ~ − +}; + +partial alphanumeric_keys +xkb_symbols "oss_sundeadkeys" { + + include "be(oss_Sundeadkeys)" + + name[Group1]="Belgian (alt., with Sun dead keys)"; +}; + + +partial alphanumeric_keys +xkb_symbols "iso-alternate" { + include "be(basic)" + name[Group1]="Belgian (alt. ISO)"; + + key { [ a, A, ae, AE ] }; + key { [ z, Z, guillemotleft, less ] }; + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ m, M, mu, masculine ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ comma, question, dead_cedilla, dead_doubleacute ] }; +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + + // Use the Sun dead keys + + include "be(basic)" + name[Group1]="Belgian (with Sun dead keys)"; + + key { [dead_circumflex, dead_diaeresis, bracketleft, bracketleft] }; + key { [ ugrave, percent, dead_acute, dead_acute ] }; + key { [ mu, sterling, dead_grave, dead_grave ] }; + key { [ comma, question, dead_cedilla, dead_cedilla] }; + key { [ equal, plus, dead_tilde, dead_tilde ] }; +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + + // Use the Sun dead keys + + include "be(sundeadkeys)" + +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // Eliminates dead keys from the basic Belgian layout + + include "be(basic)" + name[Group1]="Belgian (no dead keys)"; + + key { [ minus, underscore, cedilla, ogonek ] }; + key { [asciicircum, diaeresis, bracketleft, bracketleft] }; + key { [ dollar, asterisk, bracketright, macron ] }; + key { [ m, M, acute, doubleacute ] }; + key { [ ugrave, percent, apostrophe, apostrophe ] }; + key { [ mu, sterling, grave, grave ] }; + key { [ comma, question, cedilla, masculine ] }; + key { [ equal, plus, asciitilde, asciitilde ] }; +}; + +// Wang model 724 azerty Belgium keyboard +partial alphanumeric_keys +xkb_symbols "wang" { + + include "be(basic)" + include "keypad(legacy_wang)" + name[Group1]="Belgian (Wang 724 AZERTY)"; + + // Engravings on Wang 725-3771-ae + key { [ twosuperior, threesuperior, notsign, asciitilde ] }; + key { [ less, greater, backslash, brokenbar ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/be(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/bg b/squashfs-root/usr/share/X11/xkb/symbols/bg new file mode 100644 index 0000000..1de6c30 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/bg @@ -0,0 +1,251 @@ +////////////////////////////////////////////////////////////////////////// +// Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev +// +// This software may be used, modified, copied, distributed, and sold, +// both in source and binary form provided that the above copyright +// notice and these terms are retained. The name of the author may not +// be used to endorse or promote products derived from this software +// without prior permission. THIS SOFTWARE IS PROVIDED "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT +// SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT +// OF THE USE OF THIS SOFTWARE. +// +////////////////////////////////////////////////////////////////////////// +// Version 2.0 + +// The following variants are defined in this file: + +// "bds" - the BDS keyboard layout compliant with the proposed +// Bulgarian state standard BDS 5237:2006 + +// "phonetic" - the phonetic Bulgarian layout with the traditional position +// of the letters + +// "bas_phonetic" - the phonetic keyboard layout compliant with the +// proposed Bulgarian state standard BDS 5237:2006 + +// "latin" - an extended variant of the QWERTY layout with symbols that +// Bulgarian users will type while the keyboard is in Latin mode + +// The reasons behind the layout of the symbols in levels 3 and 4 are +// explained in http://arxiv.org/abs/0905.0484 (in Bulgarian). + +// Two notes for the maintainers of xkeyboard-config: + +// 1. Please do not use key names such as for the Bulgarian +// phonetic layouts. The placement of the symbols must stay always +// the same regardless of which one of the alias sets in +// xkb/keycodes/aliases is used. + +// 2. The layouts should not include level3(ralt_switch). + +////////////////////////////////////////////////////////////////////////// + +// Describes Bulgarian keyboard "BDS" modified according to the +// the new state standard BDS 5237:2006 and extended with symbols in +// levels 3 and 4. +default partial alphanumeric_keys +xkb_symbols "bds" { + + name[Group1]= "Bulgarian"; + + key {[ parenleft, parenright, bracketleft, bracketright ]}; + key {[ 1, exclam ]}; + key {[ 2, question ]}; + key {[ 3, plus, dagger, dagger ]}; + key {[ 4, quotedbl ]}; + key {[ 5, percent, U2329, U232A ]}; + key {[ 6, equal, emdash, emdash ]}; + key {[ 7, colon, ellipsis, ellipsis ]}; + key {[ 8, slash, U0300, U0301 ]}; + key {[ 9, endash ]}; + key {[ 0, numerosign ]}; + key {[ minus, dollar, U2011, EuroSign ]}; + key {[ period, EuroSign ]}; + + key {[ comma, Cyrillic_yeru, rightsinglequotemark, leftsinglequotemark ]}; + key {[ Cyrillic_u, Cyrillic_U ]}; + key {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]}; + key {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]}; + key {[ Cyrillic_sha, Cyrillic_SHA ]}; + key {[ Cyrillic_shcha, Cyrillic_SHCHA ]}; + key {[ Cyrillic_ka, Cyrillic_KA, copyright, copyright ]}; + key {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]}; + key {[ Cyrillic_de, Cyrillic_DE ]}; + key {[ Cyrillic_ze, Cyrillic_ZE ]}; + key {[ Cyrillic_tse, Cyrillic_TSE ]}; + key {[ semicolon, section ]}; + + key {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; + key {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; + key {[ Cyrillic_a, Cyrillic_A ]}; + key {[ Cyrillic_o, Cyrillic_O ]}; + key {[ Cyrillic_zhe, Cyrillic_ZHE ]}; + key {[ Cyrillic_ghe, Cyrillic_GHE ]}; + key {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]}; + key {[ Cyrillic_en, Cyrillic_EN ]}; + key {[ Cyrillic_ve, Cyrillic_VE ]}; + key {[ Cyrillic_em, Cyrillic_EM ]}; + key {[ Cyrillic_che, Cyrillic_CHE ]}; + key {[ doublelowquotemark, leftdoublequotemark, guillemotleft, guillemotright ]}; + + key {[ U045D, U040D ]}; + key {[ Cyrillic_yu, Cyrillic_YU ]}; + key {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]}; + key {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]}; + key {[ Cyrillic_e, Cyrillic_E ]}; + key {[ Cyrillic_ef, Cyrillic_EF ]}; + key {[ Cyrillic_ha, Cyrillic_HA ]}; + key {[ Cyrillic_pe, Cyrillic_PE ]}; + key {[ Cyrillic_er, Cyrillic_ER, registered, registered ]}; + key {[ Cyrillic_el, Cyrillic_EL ]}; + key {[ Cyrillic_be, Cyrillic_BE ]}; + + key {[ space, space, nobreakspace, nobreakspace ]}; + + key { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]}; +}; + +// This is an improved variant of the traditional Bulgarian phonetic +// keyboard. Some unnecessary symbols in levels 1 and 2 are replaced +// by more useful ones (similar as in "bas_phonetic") and additional +// symbols are added in levels 3 and 4. +partial alphanumeric_keys +xkb_symbols "phonetic" { + name[Group1]= "Bulgarian (traditional phonetic)"; + + key {[ Cyrillic_che, Cyrillic_CHE ]}; + key {[ 1, exclam ]}; + key {[ 2, at ]}; + key {[ 3, numerosign ]}; + key {[ 4, dollar, EuroSign, EuroSign ]}; + key {[ 5, percent ]}; + key {[ 6, EuroSign ]}; + key {[ 7, section ]}; + key {[ 8, asterisk ]}; + key {[ 9, parenleft, bracketleft, U2329 ]}; + key {[ 0, parenright, bracketright, U232A ]}; + key {[ minus, endash, U2011, U2011 ]}; + key {[ equal, plus, emdash, dagger ]}; + + key {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; + key {[ Cyrillic_ve, Cyrillic_VE ]}; + key {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]}; + key {[ Cyrillic_er, Cyrillic_ER, registered, registered ]}; + key {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]}; + key {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]}; + key {[ Cyrillic_u, Cyrillic_U ]}; + key {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]}; + key {[ Cyrillic_o, Cyrillic_O ]}; + key {[ Cyrillic_pe, Cyrillic_PE ]}; + key {[ Cyrillic_sha, Cyrillic_SHA ]}; + key {[ Cyrillic_shcha, Cyrillic_SHCHA ]}; + + key {[ Cyrillic_a, Cyrillic_A ]}; + key {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]}; + key {[ Cyrillic_de, Cyrillic_DE ]}; + key {[ Cyrillic_ef, Cyrillic_EF ]}; + key {[ Cyrillic_ghe, Cyrillic_GHE ]}; + key {[ Cyrillic_ha, Cyrillic_HA ]}; + key {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]}; + key {[ Cyrillic_ka, Cyrillic_KA ]}; + key {[ Cyrillic_el, Cyrillic_EL ]}; + key {[ semicolon, colon, ellipsis, ellipsis ]}; + key {[ apostrophe, quotedbl, rightsinglequotemark, leftsinglequotemark ]}; + key {[ Cyrillic_yu, Cyrillic_YU ]}; + + key {[ U045D, U040D ]}; + key {[ Cyrillic_ze, Cyrillic_ZE ]}; + key {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; + key {[ Cyrillic_tse, Cyrillic_TSE, copyright, copyright ]}; + key {[ Cyrillic_zhe, Cyrillic_ZHE ]}; + key {[ Cyrillic_be, Cyrillic_BE ]}; + key {[ Cyrillic_en, Cyrillic_EN ]}; + key {[ Cyrillic_em, Cyrillic_EM ]}; + key {[ comma, doublelowquotemark, guillemotleft, guillemotleft ]}; + key {[ period, leftdoublequotemark, guillemotright, guillemotright ]}; + key {[ slash, question, U0300, U0301 ]}; + + key {[ space, space, nobreakspace, nobreakspace ]}; + + key { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]}; +}; + +// This is the Bulgarian phonetic keyboard according to the proposed +// state standard BDS 5237:2006 with additional symbols in levels 3 and 4. +partial alphanumeric_keys +xkb_symbols "bas_phonetic" { + include "bg(phonetic)" + name[Group1]= "Bulgarian (new phonetic)"; + + key {[ Cyrillic_yu, Cyrillic_YU ]}; + key {[ Cyrillic_che, Cyrillic_CHE ]}; + key {[ Cyrillic_sha, Cyrillic_SHA ]}; + key {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; + key {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; + key {[ Cyrillic_zhe, Cyrillic_ZHE ]}; + key {[ Cyrillic_ve, Cyrillic_VE ]}; +}; + + +// This is an extended variant of the standard Latin QWERTY layout with +// additional symbols in levels 3 and 4. +hidden partial alphanumeric_keys +xkb_symbols "latin" { + + key {[ grave, asciitilde, U2248, U2245 ]}; + key {[ 1, exclam, notsign, notsign ]}; + key {[ 2, at, twosuperior, enfilledcircbullet ]}; + key {[ 3, numbersign, threesuperior, notequal ]}; + key {[ 4, dollar, EuroSign, sterling ]}; + key {[ 5, percent, U2030, U2030 ]}; + key {[ 6, asciicircum, logicaland, logicalor ]}; + key {[ 7, ampersand, section, section ]}; + key {[ 8, asterisk, infinity, multiply ]}; + key {[ 9, parenleft, U2202, nabla ]}; + key {[ 0, parenright, U2300, U2300 ]}; + key {[ minus, underscore, U2011, endash ]}; + key {[ equal, plus, emdash, plusminus ]}; + + key {[ q, Q, Greek_THETA, Greek_theta ]}; + key {[ w, W, Greek_OMEGA, Greek_omega ]}; + key {[ e, E, U2203, Greek_epsilon ]}; + key {[ r, R, registered, Greek_rho ]}; + key {[ t, T, trademark, Greek_tau ]}; + key {[ y, Y, yen, Greek_upsilon ]}; + key {[ u, U, intersection, union ]}; + key {[ i, I, integral, Greek_iota ]}; + key {[ o, O, degree, U222E ]}; + key {[ p, P, Greek_PI, Greek_pi ]}; + key {[ bracketleft, braceleft, U2286, includedin ]}; + key {[ bracketright, braceright, U2208, U2209 ]}; + + key {[ a, A, U2200, Greek_alpha ]}; + key {[ s, S, Greek_SIGMA, Greek_sigma ]}; + key {[ d, D, Greek_DELTA, Greek_delta ]}; + key {[ f, F, Greek_PHI, Greek_phi ]}; + key {[ g, G, Greek_GAMMA, Greek_gamma ]}; + key {[ h, H, U2225, Greek_eta ]}; + key {[ j, J ]}; + key {[ k, K, U03F0, Greek_kappa ]}; + key {[ l, L, Greek_LAMBDA, Greek_lambda ]}; + key {[ semicolon, colon, division, division ]}; + key {[ apostrophe, quotedbl, leftdoublequotemark, rightdoublequotemark]}; + key {[ backslash, bar, identical, downtack ]}; + + key {[ less, greater, U2266, U2267 ]}; + key {[ z, Z, U2220, Greek_zeta ]}; + key {[ x, X, Greek_XI, Greek_xi ]}; + key {[ c, C, copyright, Greek_chi ]}; + key {[ v, V, Greek_PSI, Greek_psi ]}; + key {[ b, B, U03D1, Greek_beta ]}; + key {[ n, N, U207F, Greek_nu ]}; + key {[ m, M, Greek_mu, Greek_mu ]}; + key {[ comma, less, U2266, U21D4 ]}; + key {[ period, greater, U2267, U21D2 ]}; + key {[ slash, question, leftsinglequotemark, rightsinglequotemark]}; + + key {[ space, space, nobreakspace, nobreakspace ]}; + + key { type[Group1] = "KEYPAD", [ KP_Delete, KP_Decimal ]}; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/br b/squashfs-root/usr/share/X11/xkb/symbols/br new file mode 100644 index 0000000..851a4e7 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/br @@ -0,0 +1,310 @@ +default +xkb_symbols "abnt2" { + + // Based on a very simple Brazilian ABNT2 keyboard, + // by Ricardo Y. Igarashi (iga@that.com.br). + // With added support for dead keys in I18N applications, + // by Conectiva (http://www.conectiva.com.br). + + include "latin" + name[Group1]="Portuguese (Brazil)"; + + key { [ apostrophe, quotedbl, notsign, notsign ] }; + key { [ 2, at, twosuperior, onehalf ] }; + key { [ 3, numbersign, threesuperior, threequarters ] }; + key { [ 4, dollar, sterling, onequarter ] }; + key { [ 5, percent, cent, threeeighths ] }; + key { [ 6, dead_diaeresis, notsign, diaeresis ] }; + key { [ equal, plus, section, dead_ogonek ] }; + + key { [ q, Q, slash, slash ] }; + key { [ w, W, question, question ] }; + key { [ e, E, EuroSign, EuroSign ] }; + key { [ r, R, registered, registered ] }; + key { [ dead_acute, dead_grave, acute, grave ] }; + key { [ bracketleft, braceleft, ordfeminine, dead_macron ] }; + key { [ bracketright, braceright, masculine, masculine ] }; + + key { [ ccedilla, Ccedilla, dead_acute,dead_doubleacute ] }; + key { [ dead_tilde,dead_circumflex, asciitilde, asciicircum ] }; + + key { [ backslash, bar, masculine, dead_breve ] }; + key { [ c, C, copyright, copyright ] }; + key { [ m, M, mu, mu ] }; + key { [ semicolon, colon, dead_belowdot, dead_abovedot ] }; + + // The ABNT-2 keyboard has this special key: + key { [ slash, question, degree, questiondown ] }; + + modifier_map Mod3 { Scroll_Lock }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + include "br(abnt2)" + name[Group1]="Portuguese (Brazil, no dead keys)"; + + key { [ 6, diaeresis, notsign, notsign ] }; + key { [ apostrophe, grave ] }; + key { [ ccedilla, Ccedilla, acute, doubleacute ] }; + key { [ asciitilde, asciicircum ] }; + key { [ semicolon, colon, dead_belowdot, abovedot ] }; +}; + + +// The ABNT2 keyboard on IBM/Lenovo Thinkpads, +// by Piter PUNK . +// +partial alphanumeric_keys +xkb_symbols "thinkpad" { + + include "br(abnt2)" + name[Group1]="Portuguese (Brazil, IBM/Lenovo ThinkPad)"; + + key { [ slash, question, degree, questiondown ] }; +}; + + +partial alphanumeric_keys +xkb_symbols "olpc" { + + include "us(basic)" + name[Group1]="Portuguese (Brazil)"; + + key { [ apostrophe, quotedbl ] }; + key { [ 1, exclam, onesuperior ] }; + key { [ 2, at, twosuperior ] }; + key { [ 3, numbersign, threesuperior ] }; + key { [ 4, dollar, sterling ] }; + key { [ 5, percent, cent ] }; + key { [ 6, dead_diaeresis, notsign ] }; + key { [ equal, plus, section ] }; + + key { [ e, E, EuroSign ] }; + key { [ dead_acute, dead_grave, acute, grave ] }; + key { [ bracketleft, braceleft, 0x10000AA ] }; + key { [ bracketright, braceright, 0x10000BA ] }; + + key { [ ccedilla, Ccedilla ] }; + key { [ dead_tilde, dead_circumflex ] }; + + key { [ z, Z, bar ] }; + key { [ c, C, 0x10020A2 ] }; + key { [ period, greater, backslash ] }; + key { [ semicolon, colon ] }; + + key { [ slash, question, degree, ISO_Next_Group ] }; + + include "level3(ralt_switch)" +}; + + +// +// Brazilian Dvorak layout 2005-04-18 +// "Teclado Simplificado Brasileiro" ou "Dvorak Brasileiro" +// +// Heitor Moraes heitor.moraes@gmail.com +// Luiz Portella lfpor@lujz.org +// Nando Florestan nando2003@mandic.com.br +// Ari Caldeira ari@tecladobrasileiro.com.br +// +partial alphanumeric_keys +xkb_symbols "dvorak" { + + name[Group1]="Portuguese (Brazil, Dvorak)"; + +// Numeric row + key { [ apostrophe, quotedbl, dead_caron, dead_doubleacute ] }; + key { [ 1, exclam, onesuperior, exclamdown ] }; + key { [ 2, at, twosuperior, onehalf ] }; + key { [ 3, numbersign, threesuperior, threequarters ] }; + key { [ 4, dollar, sterling, onequarter ] }; + key { [ 5, percent, cent, 0x01002030 ] }; + key { [ 6, dead_diaeresis, notsign, diaeresis ] }; + key { [ 7, ampersand, dead_belowdot, dead_abovedot ] }; + key { [ 8, asterisk, dead_ogonek, dead_horn ] }; + key { [ 9, parenleft, dead_cedilla, dead_hook ] }; + key { [ 0, parenright, dead_macron, dead_breve ] }; + key { [ bracketleft, braceleft, ordfeminine, 0x01000326 ] }; + key { [ bracketright, braceright, masculine, dead_abovering ] }; + + +// Upper row + key { [ slash, question, degree, questiondown ] }; + key { [ comma, less, 0x01000329, 0x01000313 ] }; + key { [ period, greater, 0x01002022, periodcentered ] }; + key { [ p, P, thorn, THORN ] }; + key { [ y, Y, yen, yen ] }; + key { [ f, F, leftdoublequotemark, leftsinglequotemark ] }; + key { [ g, G, rightdoublequotemark, rightsinglequotemark ] }; + key { [ c, C, uparrow, copyright ] }; + key { [ r, R, registered, registered ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ dead_acute, dead_grave, acute, grave ] }; + key { [ equal, plus, section, plusminus ] }; + +// Central row + key { [ a, A, ae, AE ] }; + key { [ o, O, oe, OE ] }; + key { [ e, E, EuroSign, EuroSign ] }; + key { [ u, U, oslash, Ooblique ] }; + key { [ i, I, idotless, Iabovedot ] }; + key { [ d, D, eth, ETH ] }; + key { [ h, H, leftarrow, paragraph ] }; + key { [ t, T, rightarrow, trademark ] }; + key { [ n, N, eng, ENG ] }; + key { [ s, S, ssharp, ssharp ] }; + key { [ dead_tilde, dead_circumflex, asciitilde, asciicircum ] }; + key { [ minus, underscore, 0x01002015, 0x01000336 ] }; + +// Lower row + key { [ ccedilla, Ccedilla, backslash, bar ] }; + key { [ semicolon, colon, 0x01000331, 0x0100032D ] }; + key { [ q, Q, 0x01000259, 0x0100018F ] }; + key { [ j, J, 0x01000292, 0x010001B7 ] }; + key { [ k, K, guillemotleft, 0x01002039 ] }; + key { [ x, X, multiply, division ] }; + key { [ b, B, guillemotright, 0x0100203A ] }; + key { [ m, M, downarrow, mu ] }; + key { [ w, W, ubreve, Ubreve ] }; + key { [ v, V, doublelowquotemark, singlelowquotemark ] }; + key { [ z, Z, 0x0100201F, 0x0100201B ] }; + key { [ backslash, bar, currency, brokenbar ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; + +// Configures the "," for the numeric keypad + include "kpdl(comma)" + +// Configures the use of the AltGr key + include "level3(ralt_switch)" +}; + + +// +// Brazilian Nativo layout. +// This is a Dvorak-based layout, designed for the Portuguese language. +// +// Ari Caldeira 2005-07-19 +// +partial alphanumeric_keys +xkb_symbols "nativo" { + + name[Group1]="Portuguese (Brazil, Nativo)"; + +// Numeric row + key { [ equal, plus, section, plusminus ] }; + key { [ 1, exclam, onesuperior, exclamdown ] }; + key { [ 2, at, twosuperior, onehalf ] }; + key { [ 3, numbersign, threesuperior, threequarters ] }; + key { [ 4, dollar, sterling, onequarter ] }; + key { [ 5, percent, cent, 0x01002030 ] }; + key { [ 6, dead_diaeresis, notsign, diaeresis ] }; + key { [ 7, ampersand, dead_belowdot, dead_abovedot ] }; + key { [ 8, asterisk, dead_ogonek, dead_horn ] }; + key { [ 9, parenleft, dead_cedilla, dead_hook ] }; + key { [ 0, parenright, dead_macron, dead_breve ] }; + key { [ bracketleft, braceleft, ordfeminine, 0x01000326 ] }; + key { [ bracketright, braceright, masculine, dead_abovering ] }; + +// Upper row + key { [ slash, question, degree, questiondown ] }; + key { [ comma, less, 0x01000329, 0x01000313 ] }; + key { [ period, greater, 0x01002022, periodcentered ] }; + key { [ h, H, paragraph, paragraph ] }; + key { [ x, X, multiply, division ] }; + key { [ w, W, ubreve, Ubreve ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ t, T, trademark, trademark ] }; + key { [ c, C, copyright, copyright ] }; + key { [ p, P, thorn, THORN ] }; + key { [ dead_tilde, dead_circumflex, asciitilde, asciicircum ] }; + key { [ minus, underscore, 0x01002015, 0x01000336 ] }; + +// Central row + key { [ i, I, idotless, Iabovedot ] }; + key { [ e, E, EuroSign, EuroSign ] }; + key { [ a, A, ae, AE ] }; + key { [ o, O, oe, OE ] }; + key { [ u, U, oslash, Ooblique ] }; + key { [ m, M, mu, mu ] }; + key { [ d, D, eth, ETH ] }; + key { [ s, S, ssharp, ssharp ] }; + key { [ r, R, registered, registered ] }; + key { [ n, N, eng, ENG ] }; + key { [ dead_acute, dead_grave, acute, grave ] }; + key { [ apostrophe, quotedbl, dead_caron, dead_doubleacute ] }; + +// Lower row + key { [ semicolon, colon, 0x01000331, 0x0100032D ] }; + key { [ y, Y, yen, yen ] }; + key { [ ccedilla, Ccedilla, backslash, bar ] }; + key { [ j, J, 0x01000292, 0x010001B7 ] }; + key { [ b, B, guillemotleft, 0x01002039 ] }; + key { [ k, K, guillemotright, 0x0100203A ] }; + key { [ q, Q, 0x01000259, 0x0100018F ] }; + key { [ v, V, doublelowquotemark, singlelowquotemark ] }; + key { [ g, G, leftdoublequotemark, leftsinglequotemark ] }; + key { [ f, F, rightdoublequotemark, rightsinglequotemark ] }; + key { [ z, Z, 0x0100201F, 0x0100201B ] }; + key { [ backslash, bar, currency, brokenbar ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; + +// Configures the "," for the numeric keypad + include "kpdl(comma)" + +// Configures the use of the AltGr key + include "level3(ralt_switch)" +}; + + +// +// Brazilian Nativo layout for US keyboards. +// +// Ari Caldeira 2005-07-19 +// +partial alphanumeric_keys +xkb_symbols "nativo-us" { + + include "br(nativo)" + + name[Group1]="Portuguese (Brazil, Nativo for US keyboards)"; + + key { [ y, Y, ccedilla, Ccedilla ] }; + key { [ semicolon, colon, backslash, bar ] }; +}; + + +// +// Brazilian Nativo layout for typing Esperanto. +// +// Ari Caldeira 2005-07-19 +// +partial alphanumeric_keys +xkb_symbols "nativo-epo" { + + include "br(nativo)" + + name[Group1]="Esperanto (Brazil, Nativo)"; + + key { [ h, H, hcircumflex, Hcircumflex ] }; + key { [ ccircumflex, Ccircumflex, x, X ] }; + key { [ ubreve, Ubreve, w, W ] }; + + key { [ jcircumflex, Jcircumflex, y, Y ] }; + key { [ scircumflex, Scircumflex, ccedilla, Ccedilla ] }; + key { [ gcircumflex, Gcircumflex, q, Q ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/br(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/brai b/squashfs-root/usr/share/X11/xkb/symbols/brai new file mode 100644 index 0000000..18dfe8e --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/brai @@ -0,0 +1,59 @@ +// 10-dot patterns on the home row + v and n +default partial alphanumeric_keys +xkb_symbols "home_row" { + include "brai(keypad)" + + name[Group1]="Braille"; + + key { [ braille_dot_1 ] }; + key { [ braille_dot_2 ] }; + key { [ braille_dot_3 ] }; + key { [ braille_dot_4 ] }; + key { [ braille_dot_5 ] }; + key { [ braille_dot_6 ] }; + key { [ braille_dot_7 ] }; + key { [ braille_dot_8 ] }; + key { [ braille_dot_9 ] }; + key { [ braille_dot_10 ] }; +}; + +// 6-dot patterns for the left hand +partial alphanumeric_keys +xkb_symbols "left_hand" { + include "brai(keypad)" + + name[Group1]="Braille (left-handed)"; + + key { [ braille_dot_1 ] }; + key { [ braille_dot_2 ] }; + key { [ braille_dot_3 ] }; + key { [ braille_dot_4 ] }; + key { [ braille_dot_5 ] }; + key { [ braille_dot_6 ] }; +}; + +// 6-dot patterns for the right hand +partial alphanumeric_keys +xkb_symbols "right_hand" { + include "brai(keypad)" + + name[Group1]="Braille (right-handed)"; + + key { [ braille_dot_1 ] }; + key { [ braille_dot_2 ] }; + key { [ braille_dot_3 ] }; + key { [ braille_dot_4 ] }; + key { [ braille_dot_5 ] }; + key { [ braille_dot_6 ] }; +}; + +// 6-dot patterns on the keypad +hidden partial keypad_keys +xkb_symbols "keypad" { + key { [ braille_dot_1 ] }; + key { [ braille_dot_2 ] }; + key { [ braille_dot_3 ] }; + key { [ braille_dot_4 ] }; + key { [ braille_dot_5 ] }; + key { [ braille_dot_6 ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/bt b/squashfs-root/usr/share/X11/xkb/symbols/bt new file mode 100644 index 0000000..e539421 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/bt @@ -0,0 +1,87 @@ +// +// Dzongkha / Tibetan layout for Bhutanese keyboard +// +///////////////////////////////////////////////////////////////// +// +// Based on the official layout for Dzongkha +// approved by the Department of Information Technology & +// Dzongkha Development Authority of the Government of Bhutan +// +// Copyright (C) 2004, Gregory Mokhin +///////////////////////////////////////////////////////////////// +// Version 0.97 2004-01-09 Layout map provided by Chris Fynn +// Version 1.0 2004-07-29 Some correction by Pema Geyleg +///////////////////////////////////////////////////////////////// + +default partial alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Dzongkha"; + + key { [ 0x1000F09, 0x1000F0A, 0x1000F6C, 0x1000F6D ] }; + +// numbers e.a. + key { [ 0x1000F21, 0x1000F04, 1, exclam ] }; + key { [ 0x1000F22, 0x1000F05, 2, at ] }; + key { [ 0x1000F23, 0x1000F06, 3, numbersign ] }; + key { [ 0x1000F24, 0x1000F48, 4, dollar ] }; + key { [ 0x1000F25, 0x1000F70, 5, percent ] }; + key { [ 0x1000F26, 0x1000F08, 6, 0x1000F01 ] }; + key { [ 0x1000F27, 0x1000F38, 7, ampersand ] }; + key { [ 0x1000F28, 0x1000F34, 8, asterisk ] }; + key { [ 0x1000F29, 0x1000F3C, 9, parenleft ] }; + key { [ 0x1000F20, 0x1000F3D, 0, parenright ] }; + key { [ 0x1000F14, 0x1000F7F, minus, underscore ] }; + key { [ 0x1000F0D, 0x1000F11, equal, plus ] }; + +// consonants ( ka kha ga nga ) + key { [ 0x1000F40, 0x1000F90, 0x1000F88, VoidSymbol ] }; + key { [ 0x1000F41, 0x1000F91, 0x1000F89, VoidSymbol ] }; + key { [ 0x1000F42, 0x1000F92, 0x1000F6E, 0x1000F6F] }; + key { [ 0x1000F44, 0x1000F94, 0x1000F83, 0x1000F82 ] }; + +// vowels ( i u e o ) + key { [ 0x1000F72, 0x1000F80, 0x1000F1A, VoidSymbol ] }; + key { [ 0x1000F74, 0x1000F84, 0x1000F1B, VoidSymbol ] }; + key { [ 0x1000F7A, 0x1000F7B, 0x1000F1C, VoidSymbol ] }; + key { [ 0x1000F7C, 0x1000F7D, 0x1000F1D, 0x1000F17 ] }; + +// consonants ( ca cha ja nya ) + key { [ 0x1000F45, 0x1000F95, 0x1000F1E, 0x1000F18 ] }; + key { [ 0x1000F46, 0x1000F96, 0x1000F1F, 0x1000F19 ] }; + key { [ 0x1000F47, 0x1000F97, bracketleft, 0x1000F3E ] }; + key { [ 0x1000F49, 0x1000F99, bracketright, 0x1000F3F ] }; + +// consonants ( ta tha da na pa pha ba ma tsa tsha dza wa ) + key { [ 0x1000F4F, 0x1000F9F, 0x1000F4A, 0x1000F9A ] }; + key { [ 0x1000F50, 0x1000FA0, 0x1000F4B, 0x1000F9B ] }; + key { [ 0x1000F51, 0x1000FA1, 0x1000F4C, 0x1000F9C ] }; + key { [ 0x1000F53, 0x1000FA3, 0x1000F4E, 0x1000F9E ] }; + key { [ 0x1000F54, 0x1000FA4, 0x1002039, guillemotleft ] }; + key { [ 0x1000F55, 0x1000FA5, 0x100203A, guillemotright ] }; + key { [ 0x1000F56, 0x1000FA6, 0x1000F37, 0x1000F35 ] }; + key { [ 0x1000F58, 0x1000FA8, 0x1000F7E, VoidSymbol ] }; + key { [ 0x1000F59, 0x1000FA9, 0x1000F39, VoidSymbol ] }; + key { [ 0x1000F5A, 0x1000FAA, colon, semicolon ] }; + key { [ 0x1000F5B, 0x1000FAB, apostrophe, quotedbl ] }; + +// TODO: BKSL and LSGT are from gb layout, are there any variants? + key { [ 0x1000F5D, 0x1000FAD, backslash, 0x1000FBA ] }; + key { [ 0x1000F0D, 0x1000F11, 0x1000F10, 0x1000F0F ] }; + +// consonants ( zha za 'a ya ra la sha sa ha a ) + key { [ 0x1000F5E, 0x1000FAE, 0x1000F13, 0x1000F36 ] }; + key { [ 0x1000F5F, 0x1000FAF, 0x1000FBE, 0x1000FBF ] }; + key { [ 0x1000F60, 0x1000F71, 0x1000F03, 0x1000FB0 ] }; + key { [ 0x1000F61, 0x1000FB1, 0x1000F12, 0x1000FBB ] }; + key { [ 0x1000F62, 0x1000FB2, 0x1000F6A, 0x1000FBC ] }; + key { [ 0x1000F63, 0x1000FB3, 0x1000F8A, 0x1000F8B ] }; + key { [ 0x1000F64, 0x1000FB4, 0x1000F65, 0x1000FB5 ] }; + key { [ 0x1000F66, 0x1000FB6, comma, less ] }; + key { [ 0x1000F67, 0x1000FB7, period, greater ] }; + key { [ 0x1000F68, 0x1000FB8, slash, question ] }; + +// space + key { [ 0x1000F0B, space, 0x1000F0C, nobreakspace ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/bw b/squashfs-root/usr/share/X11/xkb/symbols/bw new file mode 100644 index 0000000..ab14cc7 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/bw @@ -0,0 +1,18 @@ +default partial alphanumeric_keys +xkb_symbols "tswana" { + + include "us" + + name[Group1]= "Tswana"; + + key { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW + key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS + key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE + key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT + key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW + key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE + key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON + key { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/by b/squashfs-root/usr/share/X11/xkb/symbols/by new file mode 100644 index 0000000..d82bcf5 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/by @@ -0,0 +1,51 @@ +// based on +// belarusian standard keyboard +// Alexander Mikhailian +// Reworked to use winkeys by default and russian keymap as base by Paul Lubetsky +// Added third level with russian symbols +// See freedesktop.org bug #23604 + +default partial alphanumeric_keys +xkb_symbols "basic" { + include "ru(winkeys)" + name[Group1]= "Belarusian"; + + key { [ Byelorussian_shortu, Byelorussian_SHORTU ] }; + key { [ apostrophe, apostrophe ] }; + key { [ Ukrainian_i, Ukrainian_I ] }; +}; + +partial alphanumeric_keys +xkb_symbols "legacy" { + include "by(basic)" + name[Group1]= "Belarusian (legacy)"; + + key { [ 3, numbersign ] }; + key { [ 4, asterisk ] }; + key { [ 5, colon ] }; + key { [ 6, comma ] }; + key { [ 7, period ] }; + key { [ 8, semicolon ] }; + key { [ slash, question ] }; + key { [ backslash, bar ] }; +}; + +// based on a keyboard map from an 'xkb/symbols/iso3335-3' file + +partial alphanumeric_keys +xkb_symbols "latin" { + include "latin" + name[Group1]= "Belarusian (Latin)"; + + key { [ w, W, scaron, Scaron ] }; + key { [ u, U, ubreve, Ubreve ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ z, Z, zacute, Zacute ] }; + key { [ x, X, zcaron, Zcaron ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ v, V, ccaron, Ccaron ] }; + key { [ n, N, nacute, Nacute ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ca b/squashfs-root/usr/share/X11/xkb/symbols/ca new file mode 100644 index 0000000..84f153c --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ca @@ -0,0 +1,531 @@ +default partial +xkb_symbols "fr" { + name[Group1] = "French (Canada)"; + + key { [ numbersign, bar, backslash ] }; + key { [ 1, exclam, plusminus ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, slash, sterling ] }; + key { [ 4, dollar, cent ] }; + key { [ 5, percent, currency ] }; + key { [ 6, question, notsign ] }; + key { [ 7, ampersand, brokenbar ] }; + key { [ 8, asterisk, twosuperior ] }; + key { [ 9, parenleft, threesuperior ] }; + key { [ 0, parenright, onequarter ] }; + key { [ minus, underscore, onehalf ] }; + key { [ equal, plus, threequarters ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O, section ] }; + key { [ p, P, paragraph ] }; + key { [dead_circumflex, dead_circumflex, bracketleft ] }; + key { [ dead_cedilla, dead_diaeresis, bracketright ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon, asciitilde ] }; + key { [dead_grave, dead_grave, braceleft ] }; + key { [ less, greater, braceright ] }; + + key { [guillemotleft, guillemotright, degree] }; + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M, mu ] }; + key { [ comma, apostrophe, macron ] }; + key { [ period, period, hyphen ] }; + key { [ eacute, Eacute, dead_acute ] }; + + key { [ space, space, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + +xkb_symbols "fr-dvorak" { + name[Group1] = "French (Canada, Dvorak)"; + + key { [ numbersign, bar, backslash ] }; + key { [ 1, exclam, plusminus ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, slash, sterling ] }; + key { [ 4, dollar, cent ] }; + key { [ 5, percent, currency ] }; + key { [ 6, question, notsign ] }; + key { [ 7, ampersand, brokenbar ] }; + key { [ 8, asterisk, twosuperior ] }; + key { [ 9, parenleft, threesuperior ] }; + key { [ 0, parenright, onequarter ] }; + key { [dead_circumflex, dead_circumflex, bracketleft ] }; + key { [ dead_cedilla, dead_diaeresis, bracketright ] }; + + key { [dead_grave, dead_grave, braceleft ] }; + key { [ comma, apostrophe, macron ] }; + key { [ period, period, hyphen ] }; + key { [ p, P, paragraph ] }; + key { [ y, Y ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ c, C ] }; + key { [ r, R ] }; + key { [ l, L ] }; + key { [ eacute, Eacute, dead_acute ] }; + key { [ equal, plus, threequarters ] }; + + key { [ a, A ] }; + key { [ o, O, section ] }; + key { [ e, E ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ d, D ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ n, N ] }; + key { [ s, S ] }; + key { [ minus, underscore, onehalf ] }; + key { [ less, greater, braceright ] }; + + key { [guillemotleft, guillemotright, degree] }; + key { [ semicolon, colon, asciitilde ] }; + key { [ q, Q ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ x, X ] }; + key { [ b, B ] }; + key { [ m, M, mu ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ z, Z ] }; + + key { [ space, space, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + +partial +xkb_symbols "fr-legacy" { + + include "ca(fr)" + + name[Group1] = "French (Canada, legacy)"; + + key { [ degree, degree, notsign ] }; + key { [ 1, exclam, onesuperior ] }; + + key { [ 3, numbersign, threesuperior ] }; + key { [ 4, dollar, onequarter ] }; + key { [ 5, percent, onehalf ] }; + key { [ 6, question, threequarters ] }; + key { [ 7, ampersand, braceleft ] }; + key { [ 8, asterisk, bracketleft ] }; + key { [ 9, parenleft, bracketright, plusminus ] }; + key { [ 0, parenright, braceright ] }; + key { [ minus, underscore, bar, questiondown] }; + key { [ equal, plus, dead_cedilla ] }; + + key { [ r, R, paragraph, registered ] }; + key { [ y, Y, yen ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, thorn, THORN ] }; + key { [dead_circumflex, dead_circumflex, degree ] }; + key { [ ccedilla, Ccedilla, dead_tilde, dead_diaeresis ] }; + + key { [ a, A, ae, AE ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, ordfeminine ] }; + key { [ semicolon, colon, dead_acute, dead_acute ] }; + key { [ egrave, Egrave ] }; + key { [ agrave, Agrave, dead_grave ] }; + + key { [ ugrave, Ugrave, backslash, bar ] }; + key { [ z, Z, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ c, C, cent, copyright ] }; + key { [ m, M, mu, masculine ] }; + key { [ comma, apostrophe, less ] }; + key { [ period, period, greater ] }; + key { [ eacute, Eacute, slash ] }; +}; + +partial +xkb_symbols "multi" { + + include "ca(fr)" + + name[Group1] = "Canadian Multilingual (1st part)"; + + key { [ slash, backslash, bar ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, question ] }; + key { [ 7, ampersand, braceleft ] }; + key { [ 8, asterisk, braceright ] }; + key { [ 9, parenleft, bracketleft ] }; + key { [ 0, parenright, bracketright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus, notsign ] }; + + key { [ o, O ] }; + key { [ p, P ] }; + key { [dead_circumflex, dead_diaeresis, dead_grave ] }; + key { [ ccedilla, Ccedilla, asciitilde ] }; + + key { [ semicolon, colon, degree ] }; + key { [ egrave, Egrave ] }; + key { [ agrave, Agrave ] }; + + key { [ ugrave, Ugrave ] }; + key { [ z, Z, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ comma, apostrophe, less ] }; + key { [ period, quotedbl, greater ] }; + key { [ eacute, Eacute ] }; +}; + +partial +xkb_symbols "multi-2gr" { + + name[Group1] = "Canadian Multilingual (2nd part)"; + + key { [ NoSymbol, hyphen ] }; + key { [ onesuperior, exclamdown ] }; + key { [ twosuperior, NoSymbol ] }; + key { [ threesuperior, sterling ] }; + key { [ onequarter, currency ] }; + key { [ onehalf,threeeighths ] }; + key { [ threequarters, fiveeighths ] }; + key { [ NoSymbol,seveneighths ] }; + key { [ NoSymbol, trademark ] }; + key { [ NoSymbol, plusminus ] }; + + key { [ NoSymbol, questiondown] }; + key { [ dead_cedilla, dead_ogonek ] }; + + key { [ NoSymbol, Greek_OMEGA ] }; + key { [ lstroke, Lstroke ] }; + key { [ oe, OE ] }; + key { [ paragraph, registered ] }; + key { [ tslash, Tslash ] }; + key { [ leftarrow, yen ] }; + key { [ downarrow, uparrow ] }; + key { [ rightarrow, idotless ] }; + key { [ oslash, Ooblique ] }; + key { [ thorn, THORN ] }; + key { [ NoSymbol, dead_abovering ] }; + key { [ dead_tilde, dead_macron ] }; + + key { [ ae, AE ] }; + key { [ ssharp, section ] }; + key { [ eth, ETH ] }; + key { [ NoSymbol, ordfeminine ] }; + key { [ eng, ENG ] }; + key { [ hstroke, Hstroke ] }; + key { [ U0133, U0132 ] }; + key { [ kra, NoSymbol ] }; + key { [ U0140, U013F ] }; + key { [ dead_acute, dead_doubleacute ] }; + key { [ NoSymbol, dead_caron ] }; + key { [ NoSymbol, dead_breve ] }; + + + key { [ NoSymbol, brokenbar ] }; + + key { [ cent, copyright ] }; + key { [ leftdoublequotemark, leftsinglequotemark ] }; + key { [ rightdoublequotemark, rightsinglequotemark ] }; + key { [ U0149, U266A ] }; + key { [ mu, masculine ] }; + key { [ Greek_horizbar, multiply ] }; + key { [ periodcentered, division ] }; + key { [ NoSymbol, dead_abovedot ] }; +}; + +// based on +// Inuktitut keyboard for X11 +// written by Pablo Saratxaga + +alphanumeric_keys +xkb_symbols "ike" { + + name[Group1]= "Inuktitut"; + + key { [ 0x01001595, 1 ] }; + key { [ 0x01001449, 2 ] }; + key { [ 0x01001550, 3 ] }; + key { [ 0x01001483, 4 ] }; + key { [ 0x01001466, 5 ] }; + key { [ 0x01001585, 6 ] }; + key { [ 0x010014bb, 7 ] }; + key { [ 0x010014d0, 8 ] }; + key { [ 0x010014ea, 9 ] }; + key { [ 0x0100153e, 0 ] }; + key { [ minus, underscore ] }; + key { [ 0x0100155d, equal ] }; + + key { [ 0x0100158f, 0x0100148b ] }; + key { [ 0x01001403, 0x01001431 ] }; + key { [ 0x0100157f, 0x01001546 ] }; + key { [ 0x0100146d, 0x01001596 ] }; + key { [ 0x0100144e, 0x01001671 ] }; + key { [ 0x010014ef, 0x01001673 ] }; + key { [ 0x010014a5, 0x01001675 ] }; + key { [ 0x010014c2, 0x010015a4 ] }; + key { [ 0x010014d5, 0x010015a0 ] }; + key { [ 0x01001528, 0x010015a6 ] }; + key { [ 0x010014a1, 0x01001505 ] }; + key { [ dead_abovedot, 0x0100141e] }; + + key { [ 0x01001591, 0x0100148d ] }; + key { [ 0x01001405, 0x01001433 ] }; + key { [ 0x01001581, 0x01001548 ] }; + key { [ 0x0100146f, 0x01001555 ] }; + key { [ 0x01001450, parenleft ] }; + key { [ 0x010014f1, parenright ] }; + key { [ 0x010014a7, 0x0100152a ] }; + key { [ 0x010014c4, 0x01001557 ] }; + key { [ 0x010014d7, 0x010015a2 ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ 0x01001593, 0x01001490 ] }; + key { [ 0x0100140a, 0x01001438 ] }; + key { [ 0x01001583, 0x0100154b ] }; + key { [ 0x01001472, question ] }; + key { [ 0x01001455, 0x0100157c ] }; + key { [ 0x010014f4, 0x010014c7 ] }; + key { [ 0x010014aa, 0x010014da ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ 0x0100152d, 0x01001559 ] }; + + key { [ 0x0100157b, 0x01001575 ] }; + key { [ 0x01001579, 0x01001577 ] }; + key { [ backslash, bar ] }; +}; + +partial +xkb_symbols "multix" { + + name[Group1] = "Canadian Multilingual"; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ slash, backslash, bar, NoSymbol, + NoSymbol, hyphen ] }; + key { [ 1, exclam, plusminus, NoSymbol, + onesuperior, exclamdown ] }; + key { [ 2, at, at, NoSymbol, + twosuperior, NoSymbol ] }; + key { [ 3, numbersign, sterling, NoSymbol, + threesuperior, sterling ] }; + key { [ 4, dollar, cent, NoSymbol, + onequarter, currency ] }; + key { [ 5, percent, currency, NoSymbol, + onehalf, threeeighths ] }; + key { [ 6, question, notsign, NoSymbol, + threequarters, fiveeighths ] }; + key { [ 7, ampersand, braceleft, NoSymbol, + NoSymbol, seveneighths ] }; + key { [ 8, asterisk, braceright, NoSymbol, + NoSymbol, trademark ] }; + key { [ 9, parenleft, bracketleft, NoSymbol, + NoSymbol, plusminus ] }; + key { [ 0, parenright, bracketright, NoSymbol ] }; + key { [ minus, underscore, onehalf, NoSymbol, + NoSymbol, questiondown] }; + key { [ equal, plus, notsign, NoSymbol, + dead_cedilla, dead_ogonek ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ q, Q, NoSymbol, NoSymbol, + NoSymbol, Greek_OMEGA ] }; + key { [ w, W, NoSymbol, NoSymbol, + lstroke, Lstroke ] }; + key { [ e, E, NoSymbol, NoSymbol, + oe, OE ] }; + key { [ r, R, NoSymbol, NoSymbol, + paragraph, registered ] }; + key { [ t, T, NoSymbol, NoSymbol, + tslash, Tslash ] }; + key { [ y, Y, NoSymbol, NoSymbol, + leftarrow, yen ] }; + key { [ u, U, NoSymbol, NoSymbol, + downarrow, uparrow ] }; + key { [ i, I, NoSymbol, NoSymbol, + rightarrow, idotless ] }; + key { [ o, O, section, NoSymbol, + oslash, Ooblique ] }; + key { [ p, P, paragraph, NoSymbol, + thorn, THORN ] }; + + key.type[group1]="EIGHT_LEVEL"; + key { [dead_circumflex, dead_diaeresis, dead_grave, NoSymbol, + NoSymbol, dead_abovering ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ ccedilla, Ccedilla, asciitilde, NoSymbol, + dead_tilde, dead_macron ] }; + + key { [ a, A, NoSymbol, NoSymbol, + ae, AE ] }; + key { [ s, S, NoSymbol, NoSymbol, + ssharp, section ] }; + key { [ d, D, NoSymbol, NoSymbol, + eth, ETH ] }; + key { [ f, F, NoSymbol, NoSymbol, + NoSymbol, ordfeminine ] }; + key { [ g, G, NoSymbol, NoSymbol, + eng, ENG ] }; + key { [ h, H, NoSymbol, NoSymbol, + hstroke, Hstroke ] }; + key { [ j, J, NoSymbol, NoSymbol, + U0133, U0132 ] }; + key { [ k, K, NoSymbol, NoSymbol, + kra, NoSymbol ] }; + key { [ l, L, NoSymbol, NoSymbol, + U0140, U013F ] }; + + key.type[group1]="EIGHT_LEVEL"; + key { [ semicolon, colon, degree, NoSymbol, + dead_acute, dead_doubleacute ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ egrave, Egrave, braceleft, NoSymbol, + NoSymbol, dead_caron ] }; + key { [ agrave, Agrave, braceright, NoSymbol, + NoSymbol, dead_breve ] }; + + key { [ ugrave, Ugrave, degree, NoSymbol, + NoSymbol, brokenbar ] }; + + key.type[group1]="FOUR_LEVEL_SEMIALPHABETIC"; + key { [ z, Z, guillemotleft, NoSymbol ] }; + key { [ x, X, guillemotright, NoSymbol ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ c, C, NoSymbol, NoSymbol, + cent, copyright ] }; + key { [ v, V, NoSymbol, NoSymbol, + leftdoublequotemark, leftsinglequotemark ] }; + key { [ b, B, NoSymbol, NoSymbol, + rightdoublequotemark, rightsinglequotemark ] }; + key { [ n, N, NoSymbol, NoSymbol, + U0149, U266A ] }; + key { [ m, M, mu, NoSymbol, + mu, masculine ] }; + key { [ comma, apostrophe, less, NoSymbol, + Greek_horizbar, multiply ] }; + key { [ period, quotedbl, greater, NoSymbol, + periodcentered, division ] }; + key { [ eacute, Eacute, dead_acute, NoSymbol, + NoSymbol, dead_abovedot ] }; + + include "nbsp(level3s)" + + modifier_map Control{ Control_L }; + + include "level3(ralt_switch)" + include "level5(rctrl_switch)" +}; + +// OLPC Section +xkb_symbols "olpc" { + + include "ca(fr)" + + key { [ 2, quotedbl, ograve, Ograve ] }; + key { [ 3, slash, at, VoidSymbol ] }; + + key { [ e, E, EuroSign, VoidSymbol] }; + + key { [ period, period, 0x1002010 ] }; + + key { [ guillemotleft, guillemotright, degree, VoidSymbol ] }; +}; + +partial alphanumeric_keys +xkb_symbols "eng" { + include "us(basic)" + name[Group1] = "English (Canada)"; + + key { [ backslash, bar, VoidSymbol, VoidSymbol ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys +xkb_symbols "kut" { + + // Ejective U0313 and acute accents are taken from shs layout. + include "ca(shs)" + + name[Group1]= "Kutenai"; + + // Alveolar Click + key { [ t, T,U01C2 ,U01C2 ] }; + + //Cent sign + key { [ c, C,U00A2,U00A2 ] }; + + //Mid dot + key { [ period, greater,U00B7 ] }; + + //Glottal stop + key { [ slash, question, U0294 ] }; + + //COMBINING COMMA ABOVE RIGHT + key { [ apostrophe, quotedbl, U0315,U0315 ] }; + + //MODIFIER LETTER RIGHT HALF RING + key { [ semicolon, colon,U02BE,U02BE ] }; +}; + +// Secwepemctsin keyboard for X11 +// written by Neskie Manuel +partial alphanumeric_keys +xkb_symbols "shs" { + + include "us" + + name[Group1]= "Secwepemctsin"; + + // Using a "dead key" to get a COMBINING COMMA ABOVE + // for ejectives on q, l, t, s, m, g, k, p, w, y, r. + // The Compose key is used for the other acutes and grave. + + key { [ comma, less, U0313 ] }; + key { [ a, A, aacute, Aacute ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + + include "level3(ralt_switch)" + include "compose(rctrl)" +}; + + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/ca(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/capslock b/squashfs-root/usr/share/X11/xkb/symbols/capslock new file mode 100644 index 0000000..6b85c3d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/capslock @@ -0,0 +1,79 @@ +default hidden partial modifier_keys +xkb_symbols "capslock" { + replace key { [ Caps_Lock ] }; + modifier_map Lock { Caps_Lock }; +}; + +hidden partial modifier_keys +xkb_symbols "shiftlock" { + replace key { [ Shift_Lock ] }; + modifier_map Shift { Shift_Lock }; +}; + +hidden partial modifier_keys +xkb_symbols "grouplock" { + replace key { [ ISO_Next_Group, Caps_Lock ] }; +}; + +hidden partial modifier_keys +xkb_symbols "groupshift" { + key { + type[Group1] = "PC_ALT_LEVEL2", + [ Mode_switch, Caps_Lock ] + }; +}; + +hidden partial modifier_keys +xkb_symbols "swapescape" { + key { [ Escape ] }; + key { [ Caps_Lock ] }; +}; + +hidden partial modifier_keys +xkb_symbols "escape" { + key { [ Escape ] }; +}; + +hidden partial modifier_keys +xkb_symbols "backspace" { + key { [ BackSpace ] }; +}; + +hidden partial modifier_keys +xkb_symbols "super" { + key { [ Super_L ] }; + modifier_map Mod4 { }; +}; + +hidden partial modifier_keys +xkb_symbols "hyper" { + key { [ Hyper_L ] }; + modifier_map Mod4 { }; +}; + +hidden partial modifier_keys +xkb_symbols "menu" { + key { [ Menu ] }; +}; + +hidden partial modifier_keys +xkb_symbols "numlock" { + key { [ Num_Lock ] }; +}; + +// This changes the key to become a Control modifier, +// but it will still produce the Caps_Lock keysym. +hidden partial modifier_keys +xkb_symbols "ctrl_modifier" { + replace key { + type[Group1] = "ONE_LEVEL", + symbols[Group1] = [ Caps_Lock ], + actions[Group1] = [ SetMods(modifiers=Control) ] + }; + modifier_map Control { }; +}; + +hidden partial modifier_keys +xkb_symbols "none" { + key { [ VoidSymbol ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/cd b/squashfs-root/usr/share/X11/xkb/symbols/cd new file mode 100644 index 0000000..a87c749 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/cd @@ -0,0 +1,68 @@ +// based on us_intl keyboard map file and a Sinhala keyboard map +// version 0.3 + +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]= "French (Democratic Republic of the Congo)"; + + key.type[Group1] = "FOUR_LEVEL"; + + // GRAVE, TILDE, COMBINING TILDE + key { [ grave, asciitilde, 0x01000303 ] }; + key { [ ampersand, 1, numbersign ] }; + key { [0x01000301, 2, at ] }; + key { [0x01000300, 3, guillemotleft ] }; + key { [ parenleft, 4, bracketleft ] }; + key { [ braceleft, 5, less ] }; + key { [ braceright, 6, greater ] }; + key { [parenright, 7, bracketright ] }; + key { [0x01000302, 8, guillemotright ] }; + key { [0x0100030c, 9, 0x0100030D ] }; + key { [0x01000308, 0, at ] }; + key { [ minus, underscore, percent, degree ] }; + key { [ equal, plus, multiply, division ] }; + + key { [ a, A, ae, AE ] }; + key { [ z, Z ] }; + key { [ e, E, oe, OE ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U, 0x01000289, 0x01000244 ] }; + key { [ i, I, 0x01000268, 0x01000197 ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P ] }; + key { [0x0100025B, 0x01000190, asciicircum ] }; + key { [ asterisk, asciicircum, dollar ] }; + + key { [ q, Q ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ m, M ] }; + key { [0x01000254, 0x01000186 ] }; + key { [ backslash, bar ] }; + + key { [ w, W ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N, 0x0100014B, 0x0100014A ] }; + key { [ comma, question, 0x01000327 ] }; + key { [ semicolon, period ] }; + key { [ colon, slash ] }; + key { [ exclam, apostrophe, 0x01002019 ] }; + key { [ quotedbl, backslash, bar ] }; + + // SPACE, SPACE, NO-BREAK SPACE, NARROW NO_BREAK SPACE + key { [ space, space, nobreakspace, 0x0100202F ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ch b/squashfs-root/usr/share/X11/xkb/symbols/ch new file mode 100644 index 0000000..a87f93a --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ch @@ -0,0 +1,217 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin" + name[Group1]= "German (Switzerland)"; + + key { [ section, degree ] }; + key { [ 1, plus, bar, exclamdown ] }; + key { [ 2, quotedbl, at, oneeighth ] }; + key { [ 3, asterisk, numbersign ] }; + key { [ 4, ccedilla ] }; + key { [ 5, percent ] }; + key { [ 6, ampersand, notsign ] }; + key { [ 7, slash, bar ] }; + key { [ 8, parenleft, cent ] }; + key { [ 9, parenright ] }; + key { [ 0, equal ] }; + key { [ apostrophe, question, dead_acute ] }; + key { [ dead_circumflex, dead_grave, dead_tilde ] }; + + key { [ e, E, EuroSign ] }; + key { [ z, Z ] }; + key { [ o, O, oe, OE ] }; + key { [ udiaeresis, egrave, bracketleft ] }; + key { [ dead_diaeresis, exclam, bracketright ] }; + + key { [ odiaeresis, eacute ] }; + key { [ adiaeresis, agrave, braceleft ] }; + key { [ dollar, sterling, braceright ] }; + + key { [ less, greater, backslash, brokenbar ] }; + key { [ y, Y ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "legacy" { + include "ch(basic)" + + name[Group1]= "German (Switzerland, legacy)"; + key { [ 7, slash, brokenbar ] }; +}; + +partial alphanumeric_keys +xkb_symbols "de" { + include "ch(basic)" +}; + +partial alphanumeric_keys +xkb_symbols "de_Sundeadkeys" { + // modify the basic Swiss German layout to use Sun dead keys + include "ch(basic)" + key { [ apostrophe, question, dead_acute ] }; + key { [ dead_circumflex, dead_grave, dead_tilde ] }; + key { [ dead_diaeresis, exclam, bracketright ] }; +}; + +partial alphanumeric_keys +xkb_symbols "de_sundeadkeys" { + include "ch(de_Sundeadkeys)" + name[Group1]= "German (Switzerland, with Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "de_nodeadkeys" { + // modify the basic Swiss German layout not to have any dead keys + include "ch(basic)" + name[Group1]= "German (Switzerland, no dead keys)"; + key { [ apostrophe, question, acute ] }; + key { [ asciicircum, grave, asciitilde ] }; + key { [ diaeresis, exclam, bracketright ] }; +}; + +partial alphanumeric_keys +xkb_symbols "fr" { + + include "ch(basic)" + name[Group1]= "French (Switzerland)"; + + override key { + [ egrave, udiaeresis, bracketleft ] + }; + override key { + [ eacute, odiaeresis ] + }; + override key { + [ agrave, adiaeresis, braceleft ] + }; +}; + +partial alphanumeric_keys +xkb_symbols "fr_Sundeadkeys" { + // modify the basic Swiss French layout to use Sun dead keys + include "ch(fr)" + key { [ apostrophe, question, dead_acute ] }; + key { [ dead_circumflex, dead_grave, dead_tilde ] }; + key { [ dead_diaeresis, exclam, bracketright ] }; +}; + +partial alphanumeric_keys +xkb_symbols "fr_sundeadkeys" { + include "ch(fr_Sundeadkeys)" + name[Group1]= "French (Switzerland, with Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "fr_nodeadkeys" { + // modify the basic Swiss French layout not to have any dead keys + include "ch(fr)" + name[Group1]= "French (Switzerland, no dead keys)"; + key { [ apostrophe, question, acute ] }; + key { [ asciicircum, grave, asciitilde ] }; + key { [ diaeresis, exclam, bracketright ] }; +}; + +// Copied from macintosh_vndr/ch +// 03.01.2003 +// Andreas Tobler +// modified for Swiss German Apple Extended Keyboard II + +partial alphanumeric_keys +xkb_symbols "de_mac" { + + name[Group1]= "German (Switzerland, Macintosh)"; + + key { [ 1, plus, plusminus, infinity ] }; + key { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] }; + key { [ 3, asterisk, numbersign, leftcaret ] }; + // not displayed here + key { [ 4, ccedilla, Ccedilla, slash ] }; + key { [ 5, percent, bracketleft ] }; + key { [ 6, ampersand, bracketright ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, braceleft, Ograve ] }; + key { [ 9, parenright, braceright, Ocircumflex ] }; + key { [ 0, equal, notequal, Uacute ] }; + key { [ apostrophe, question, questiondown, NoSymbol ] }; + key { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] }; + key { [ q, Q, oe, OE ] }; + key { [ w, W, Greek_SIGMA, Aacute ] }; + key { [ e, E, EuroSign, Ediaeresis ] }; + key { [ r, R, registered, Egrave ] }; + key { [ t, T, dagger, Icircumflex ] }; + key { [ z, Z, Greek_OMEGA, Iacute ] }; + key { [ u, U, degree, Ugrave ] }; + key { [ i, I, exclamdown, idotless ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ udiaeresis, egrave, section, ydiaeresis ] }; + key { [ dead_diaeresis, exclam, grave, apostrophe ] }; + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, NoSymbol ] }; + // ligature fl + key { [ d, D, Greek_sigma, NoSymbol ] }; + // partialderivative is not available here att + key { [ f, F, function, doubledagger ] }; + key { [ g, G, at, comma ] }; + key { [ h, H, ordfeminine, periodcentered ] }; + key { [ j, J, masculine, eth ] }; + key { [ k, K, Greek_DELTA, macron ] }; + key { [ l, L, notsign, caret ] }; + key { [ odiaeresis, eacute, cent, breve ] }; + key { [ adiaeresis, agrave, ae, AE ] }; + key { [ y, Y, yen, Ydiaeresis ] }; + key { [ x, X, similarequal, trademark ] }; + key { [ c, C, copyright, NoSymbol ] }; + key { [ v, V, radical, diamond ] }; + key { [ b, B, integral, NoSymbol ] }; + key { [ n, N, dead_tilde, enopencircbullet ] }; + // to be fixed att + key { [ m, M, mu, dead_abovering ] }; + // not sure att + key { [ comma, semicolon, guillemotleft, guillemotright ] }; + key { [ period, colon, ellipsis, division ] }; + key { [ minus, underscore, hyphen, emdash ] }; + key { [ section, degree, NoSymbol, NoSymbol ] }; + // ligature fi // per mille + key { [ space, nobreakspace, nobreakspace ] }; + key { [ less, greater, lessthanequal, greaterthanequal ] }; + key { [ dollar, sterling, paragraph, enfilledcircbullet ] }; + + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "fr_mac" { + + include "ch(de_mac)" + name[Group1]= "French (Switzerland, Macintosh)"; + + override key { + [ egrave, udiaeresis, bracketleft ] + }; + override key { + [ eacute, odiaeresis ] + }; + override key { + [ agrave, adiaeresis, braceleft ] + }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6_de" { + include "sun_vndr/ch(sun_type6_de)" +}; + +partial alphanumeric_keys + xkb_symbols "sun_type6_fr" { + include "sun_vndr/ch(sun_type6_fr)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/cm b/squashfs-root/usr/share/X11/xkb/symbols/cm new file mode 100644 index 0000000..500c0b5 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/cm @@ -0,0 +1,490 @@ +// ========== Cameroon Keyboards ========== + + +// ---------------------------------------------------------------------------- +// This comment was added by , on 18-Jun-2016: +// +// All comments below this one, were in the original cm file;they do not +// apply to the Mmuock keyboard which is defined towards the end of this file. +// ---------------------------------------------------------------------------- + +// ****** For Instructions, see "Use of Cameroon Keyboards" section below ****** + + +// The XKB versions of these keyboards were developed by Matthew Lee, Jenni Beadle, and Bruce Cox of SIL Cameroon in association with Going Komputya, Uwe Yung of the Goethe Institute, Yaoundé, and Centre ANACLAC. + +// Cameroon is officially a bilingual country, using French and English, but there are over 270 minority languages. + +// * Cameroon Français is an exact copy of the French France keyboard intended for AZERTY users. +// * Cameroon is an exact copy of the Basic US Keyboard. I can not currently name this "Cameroon English" due to a limitation of XKB. +// * Cameroon QWERTY and Cameroon AZERTY are based largely on SIL Cameroon's Keyman and Microsoft keyboards of the same style already in wide use. These keyboards are designed to allow the user to type any of Cameroon's 270+ languages and dialects that use the approved orthography. This Approved Orthography was adopted in 1979 by the National Committee for the Unification and Harmonisation of Alphabets of Camerooninan Languages. +// * Cameroon Dvorak is described below. + +// ===== Use of Cameroon Keyboards ===== + +// == Fonts == +// These keyboards are fully Unicode (5.1), so we recommend using a good unicode font for diacritics to position correctly. Recommended fonts are: ttf-sil-charis, ttf-sil-doulos, ttf-sil-gentium and ttf-sil-andika (All of which are free for Linux, Mac, and Windows). + + +// == Cameroon AZERTY == +// Cameroon AZERTY uses the French France (AZERTY) layout, as french keyboards are widely used here. While this keyboard is designed for Cameroonian orthography, it still is possible but not recommended, to type French with minimal discomfort using this keyboard. +// Cameroon AZERTY uses the "!" (exclamation) key as the "Cameroon" key. Pressing this key before another key allows you to access the special letters and diacritics needed in Cameroonian orthography. +// For example, press "!" then "a" and get "ɛ" (small epsilon). "!" then "Shift" + "a" (A) will get an "Ɛ" (capital epsilon). Press the "!" key twice to get a "!". +// If you prefer, you can hold the AltGr (and/or Shift) key to access the same letters, but we have found this to be much more awkward in practice. If you really don't like our Cameroon key, simply comment out "include "cm(exclamation_switch)"" and the exclamation key will return to normal. +// All Diacritics (with the exception of French Trema and Circumflex) must be typed (in order of stacking) after the letter. + + +// == Cameroon QWERTY == +// Cameroon QWERTY uses the US QWERTY layout, as US keyboards are also widely used here. While this keyboard is designed for Cameroonian orthography, it is possible, but not recommended, to type English with minimal discomfort using this keyboard. +// Cameroon QWERTY uses the ";" (semicolon) key as the "Cameroon" key. Pressing this key before another key allows you to access the special letters and diacritics needed in Cameroonian orthography. +// For example, press ";" then "a" and get "ɛ" (small epsilon). ";" then "Shift" + "a" (A) will get an "Ɛ" (capital epsilon). Press ";" twice to get a ";", or press Shift + ; (:) twice to get a ":" (colon). +// If you prefer, you can hold the AltGr (and/or Shift) key to access the same letters, but we have found this to be much more awkward in practice. If you really don't like our Cameroon key, simply comment out "include "cm(semicolon_switch)"" and the semicolon key will return to normal. +// All Diacritics must be typed (in order of stacking) after the letter. + + +// == Cameroon Dvorak == +// Cameroon Dvorak is uses a similar system to Cameroon QWERTY. + +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]="English (Cameroon)"; + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, U003F ] }; + + key { [ backslash, bar ] }; +}; + +partial alphanumeric_keys +xkb_symbols "french" +{ + include "latin" + name[Group1]="French (Cameroon)"; + + key { [ ampersand, 1, onesuperior, exclamdown ] }; + key { [ eacute, 2, asciitilde, oneeighth ] }; + key { [ quotedbl, 3, numbersign, sterling ] }; + key { [apostrophe, 4, braceleft, dollar ] }; + key { [ parenleft, 5, bracketleft, threeeighths ] }; + key { [ minus, 6, bar, fiveeighths ] }; + key { [ egrave, 7, grave, seveneighths ] }; + key { [underscore, 8, backslash, trademark ] }; + key { [ ccedilla, 9, asciicircum, plusminus ] }; + key { [ agrave, 0, at, degree ] }; + key { [parenright, degree, bracketright, questiondown ] }; + key { [ equal, plus, braceright, dead_ogonek ] }; + + key { [ a, A, ae, AE ] }; + key { [ z, Z, guillemotleft, less ] }; + key { [ e, E, EuroSign, cent ] }; + key { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] }; + key { [ dollar, sterling, currency, dead_macron ] }; + + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ m, M, mu, masculine ] }; + key { [ ugrave, percent, dead_circumflex, dead_caron] }; + key { [twosuperior, asciitilde, notsign, notsign ] }; + + key { [ asterisk, mu, dead_grave, dead_breve ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ comma, U003F, dead_acute, dead_doubleacute ] }; + key { [ semicolon, period, horizconnector, multiply ] }; + key { [ colon, slash, periodcentered, division ] }; + key { [ exclam, section, dead_belowdot, dead_abovedot ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "azerty" +{ + include "cm(basic)" + name[Group1] = "Cameroon Multilingual (AZERTY)"; + key { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS + key { [ x, X, U2039, U203A ] }; // SMALL LETTER X, CAPITAL LETTER X, SINGLE LEFT-POINTING ANGLE QUOTATION MARK, SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + key { [ c, C, U0327, copyright ] }; // SMALL LETTER C, CAPITAL LETTER C, COMBINING CEDILLA, COPYRIGHT SIGN + key { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) + key { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK + key { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG + key { [ U002C, U003F, NoSymbol, U00D7 ] }; // COMMA, QUESTION MARK, , MULTIPLY + key { [ semicolon, period, dead_acute, dead_grave ] }; // SEMICOLON, PERIOD + key { [ colon, slash, U0323 ] }; // COLON, SLASH, COMBINING DOT BELOW + key { [ exclam, U00A7 ] }; // EXCLAMATION MARK, SECTION SIGN + key { [ q, Q, U2014, U2013 ] }; // SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH + key { [ s, S, U201C, U201D ] }; // SMALL LETTER S, CAPITAL LETTER S, LEFT DOUBLE QUOTES, RIGHT DOUBLE QUOTES + key { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK + key { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE + key { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO) + key { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA + key { [ j, J, leftarrow, U2122 ] }; //SMALL LETTER J, CAPITAL LETTER J, LEFT ARROW, TRADE MARK SIGN + key { [ k, K, downarrow, uparrow ] }; // SMALL LETTER K, CAPITAL LETTER K, DOWN ARROW, UP ARROW + key { [ l, L, rightarrow, U00A3 ] }; // SMALL LETTER L, CAPITAL LETTER L, RIGHT ARROW, POUND STERLING + key { [ m, M, U00F9, U00B5 ] }; // SMALL LETTER M, CAPITAL LETTER M, SMALL LETTER U WITH GRAVE, MICRO SYMBOL + key { [ U0300, U0302, U1DC5, U1DC4 ] }; // COMBINING LOW TONE, COMBINING FALLING TONE, COMBINING LOW-MID TONE, COMBINING MID-HIGH TONE + key { [ a, A, U025B, U0190 ] }; // SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E + key { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER + key { [ e, E, U0259, U018F ] }; // SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA + key { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN + key { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE + key { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK + key { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR + key { [ i, I, U0268, U0197 ] }; // SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR + key { [ o, O, U0254, U0186 ] }; // SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O + key { [ p, P, U00F8, U00D8 ] }; // SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR + key { [ U0301, U030C, dead_circumflex, dead_diaeresis ] }; // COMBINING HIGH TONE, COMBINING RISING TONE, DEAD CIRCUMFLEX, DEAD DIAERESIS + key { [ U0330, U0303, U0304, U030D ] }; // COMBINING TILDE (NASAL) BELOW, COMBINING TILDE (NASAL), COMBINING MID TONE, COMBINING VERTICAL LINE ABOVE + key { [ U0026, KP_1, U00B9, U2018 ] }; // AMPERSAND, 1, SUPERSCRIPT 1, LEFT SINGLE QUOTE + key { [ eacute, KP_2, asciitilde, U2019 ] }; // SMALL LETTER E WITH ACUTE, 2, TILDE, RIGHT SINGLE QUOTE + key { [ U0022, KP_3, U0025 ] }; // QUOTATION MARK, 3, PERCENT SIGN + key { [ U0027, KP_4, U007B ] }; // APOSTROPHE, 4, LEFT CURLY BRACKET + key { [ U0028, KP_5, U005B, numbersign ] }; // LEFT PARENTHESIS, 5, LEFT SQUARE BRACKET, NUMBER SIGN + key { [ U002D, KP_6, U007C ] }; // HYPHEN/MINUS, 6, BAR + key { [ U00E8, KP_7, U0300 ] }; // SMALL LETTER E WITH GRAVE, 7, COMBINING GRAVE + key { [ underscore, KP_8, backslash, U20D6 ] }; // UNDERSCORE, 8, BACKSLASH, COMBINING LEFT ARROW ABOVE + key { [ ccedilla, KP_9, U005E] }; // SMALL LETTER C WITH CEDILLA, 9, CIRCUMFLEX + key { [ U00E0, KP_0, at, U20D7 ] }; // SMALL LETTER A WITH GRAVE + key { [ U0029, U00B0, U005D ] }; // RIGHT PARENTHESIS, DEGREE, RIGHT SQUARE BRACKET + key { [ U003D, U002B, U007D, U00B1 ] }; // EQUAL SIGN, PLUS SIGN, RIGHT CURLY BRACKET, PLUS-MINUS SIGN + key { [ U1DC6, U1DC7, KP_Multiply, U00A4 ] }; // COMBINING MID-LOW, COMBINING HIGH-MID, MULTIPLY, CURRENCY SIGN + key { [ U003C, U003E, U00AB, U00BB ] }; // LESS THAN, GREATER THAN, LEFT GUILLEMET, RIGHT GUILLEMET + key { [ U0024, U20AC, U00B2, U00B3 ] }; // DOLLAR, EURO, SUPERSCRIPT 2, SUPERSCRIPT 3 + include "cm(exclamation_switch)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "qwerty" +{ + include "cm(basic)" + name[Group1] = "Cameroon Multilingual (QWERTY)"; + key { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER + key { [ x, X ] }; // SMALL LETTER X, CAPITAL LETTER X + key { [ c, C, U0327, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT + key { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) + key { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK + key { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG + key { [ m, M, NoSymbol, U2122 ] }; // SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN + key { [ U002C, U003C, U2039, U00AB ] }; // COMMA, LESS THAN SIGN, LEFT SINGLE GUILLEMET, LEFT DOUBLE GUILLEMET + key { [ U002E, U003E, U203A, U00BB ] }; // PERIOD, GREATER THAN SIGN, RIGHT SINGLE GUILLEMET, RIGHT DOUBLE GUILLEMET + key { [ U002F, U003F, U00F7 ] }; // SLASH, QUESTION MARK, DIVISION SIGN + key { [ a, A, U025B, U0190 ] }; // SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E + key { [ s, S ] }; // SMALL LETTER S, CAPITAL LETTER S + key { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK + key { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE + key { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO) + key { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA + key { [ j, J, U0330, U0323 ] }; // SMALL LETTER J, CAPITAL LETTER J, COMBINING TILDE (NASAL) BELOW, COMBINING DOT BELOW + key { [ k, K, U1DC5, U1DC7 ] }; // SMALL LETTER K, CAPITAL LETTER K, COMBINING LOW-MID TONE, COMBINING HIGH-MID + key { [ l, L, U1DC6, U1DC4 ] }; // SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE + key { [ U003B, U003A ] }; // SEMICOLON, COLON + key { [ U0300, U0302, U0027, U0022 ] }; // COMBINING LOW TONE, COMBINING FALLING TONE, APOSTROPHE, QUOTATION MARK + key { [ q, Q, U2014, U2013 ] }; // SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH + key { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS + key { [ e, E, U0259, U018F ] }; // SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA + key { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN + key { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE + key { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK + key { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR + key { [ i, I, U0268, U0197 ] }; // SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR + key { [ o, O, U0254, U0186 ] }; // SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O + key { [ p, P, U00F8, U00D8 ] }; // SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR + key { [ U0301, U030C, U005B, U007B ] }; // COMBINING HIGH TONE, COMBINING RISING TONE, LEFT SQUARE BRACKET, LEFT CURLY BRACKET + key { [ U0327, U0308, U005D, U007D ] }; // COMBINING CEDILLA, COMBINING DIAERESIS, RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET + key { [ U0031, U0021, U00BC ] }; // 1, EXCLAMATION POINT, ONE QUARTER + key { [ U0032, U0040, U00BD ] }; //2, AT SYMBOL, ONE HALF + key { [ U0033, U0023, U00BE ] }; // 3, NUMBER SIGN, THREE QUARTERS + key { [ U0034, U0024, NoSymbol, U20AC ] }; // 4, DOLLAR, , EURO SIGN + key { [ U0038, U002A, NoSymbol, U00D7 ] }; // 8, ASTERISK, , MATH MULTIPLY + key { [ U0039, U0028, U2018, U201C ] }; // 9, LEFT PARENTHESIS, LEFT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK + key { [ U0030, U0029, U2019, U201D ] }; // 0, RIGHT PARENTHESIS, RIGHT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK + key { [ U002D, U005F, U0304 ] }; // MINUS, UNDERSCORE, COMBINING MID TONE, COMBINING MID TONE + key { [ U003D, U002B, NoSymbol, U00B1 ] }; // EQUAL, PLUS, , PLUS-MINUS + key { [ U005C, U007C ] }; // BACKSLASH, BAR + key { [ U030D, U0303, U0060, U007E ] }; // COMBINING VERTICAL LINE ABOVE, COMBINING TILDE ABOVE, GRAVE ACCENT, TILDE + include "cm(semicolon_switch)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "dvorak" +{ + include "us(dvorak)" + name[Group1] = "Cameroon Multilingual (Dvorak)"; + key { [ semicolon, colon ] }; // SEMICOLON, COLON + key { [ q, Q, U2014, U2013 ] }; // SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH + key { [ j, J, U0330, U0323 ] }; // SMALL LETTER J, CAPITAL LETTER J, COMBINING TILDE (NASAL) BELOW, COMBINING DOT BELOW + key { [ k, K, U1DC5, U1DC7 ] }; // SMALL LETTER K, CAPITAL LETTER K, COMBINING LOW-MID TONE, COMBINING HIGH-MID + key { [ x, X ] }; // SMALL LETTER X, CAPITAL LETTER X + key { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK + key { [ m, M, NoSymbol, U2122 ] }; // SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN + key { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS + key { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) + key { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER + key { [ a, A, U025B, U0190 ] }; // SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E + key { [ o, O, U0254, U0186 ] }; // SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O + key { [ e, E, U0259, U018F ] }; // SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA + key { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR + key { [ i, I, U0268, U0197 ] }; // SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR + key { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK + key { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA + key { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE + key { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG + key { [ s, S ] }; // SMALL LETTER S, CAPITAL LETTER S + key { [ minus, underscore, U0304 ] }; // MINUS, UNDERSCORE, COMBINING MID TONE + key { [ U0300, U0302, U0027, U0022 ] }; // COMBINING LOW TONE, COMBINING FALLING TONE, APOSTROPHE, QUOTATION MARK + key { [ comma, less, U2039, U00AB ] }; // COMMA, LESS THAN SIGN, LEFT SINGLE GUILLEMET, LEFT DOUBLE GUILLEMET + key { [ period, greater, U203A, U00BB ] }; // PERIOD, GREATER THAN SIGN, RIGHT SINGLE GUILLEMET, RIGHT DOUBLE GUILLEMET + key { [ p, P, U00F8, U00D8 ] }; // SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR + key { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK + key { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE + key { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO) + key { [ c, C, U0327, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT + key { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN + key { [ l, L, U1DC6, U1DC4 ] }; // SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE + key { [ slash, U003F, U00F7, U0294 ] }; // SLASH, QUESTION MARK, DIVISION SIGN, GLOTTAL STOP + key { [ equal, plus, NoSymbol, plusminus ] }; // EQUAL, PLUS, , PLUS-MINUS + key { [ KP_1, exclam, U00BC ] }; // 1, EXCLAMATION POINT, ONE QUARTER + key { [ KP_2, at, U00BD ] }; // 2, AT SYMBOL, ONE HALF + key { [ KP_3, numbersign, U00BE ] }; // 3, NUMBER SIGN, THREE QUARTERS + key { [ KP_4, dollar, NoSymbol, U20AC ] }; // 4, DOLLAR, , EURO SIGN + key { [ KP_5, percent ] }; // 5, PERCENT + key { [ KP_6, asciicircum ] }; // 6, CARET + key { [ KP_7, ampersand ] }; // 7, AMPERSAND + key { [ KP_8, asterisk, NoSymbol, multiply ] }; // 8, ASTERISK, , MULTIPLY + key { [ KP_9, parenleft, leftsinglequotemark, leftdoublequotemark ] }; // 9, LEFT PARENTHESIS, LEFT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK + key { [ KP_0, parenright, rightsinglequotemark, rightdoublequotemark ] }; // 0, RIGHT PARENTHESIS, RIGHT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK + key { [ U0301, U030C, U005B, U007B ] }; // COMBINING HIGH TONE, COMBINING RISING TONE, LEFT SQUARE BRACKET, LEFT CURLY BRACKET + key { [ U0327, dead_diaeresis, U005D, braceright ] }; // COMBINING CEDILLA, DEAD DIAERESIS, RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET + key { [ backslash, bar ] }; // BACKSLASH, BAR + key { [ U030D, U0303, U0060, U007E ] }; // COMBINING VERTICAL LINE ABOVE, COMBINING TILDE ABOVE, GRAVE ACCENT, TILDE + include "cm(semicolon_switch_dvorak)" + include "level3(ralt_switch)" +}; + +// The following code creates the "Cameroon key" phenomenon. + +partial modifier_keys +xkb_symbols "semicolon_switch" { + key { + symbols[Group1] = [ ISO_Level3_Latch, colon, semicolon, colon ]}; + modifier_map Mod5 { ISO_Level3_Latch }; +}; + +partial modifier_keys +xkb_symbols "exclamation_switch" { + key { + symbols[Group1] = [ ISO_Level3_Latch, U00A7, exclam, U00A7 ] + }; + modifier_map Mod5 { ISO_Level3_Latch }; +}; + +partial modifier_keys +xkb_symbols "semicolon_switch_dvorak" { + key { + symbols[Group1] = [ ISO_Level3_Latch, colon, semicolon, colon ] + }; +modifier_map Mod5 { ISO_Level3_Latch }; +}; + + +// ------- begin Mmuock alphabet layout ------------------------------------------ +// This layout is used for the Mmuock alphabet as described in the book +// _The Sound of Mmuock: Orthography (2. ed.)_ [isbn: 978-9956-645-28-1]. +// Mmuock is the language of the Mmuock (local: Muòk) people of Western +// Cameroon. +// +// Author: Tano Fotang +// Created: 2014-06-24 +// Version: 1.2 +// +// CHANGES v 1.0: +// 2014-07-06 corrected shifted level3 of to quotedbl +// CHANGES v 1.1: +// 2015-05-23 1- added dead_tilde to key ; this is needed to produce +// the letter <ñ> which was totally missing from the keyboard +// 2- added letter to ; the letter had been missing. +// 3- if we're not re-defining particular symbols from the included +// latin layout, then maintain the original latin mappings. +// Previously, we had set them to NoSymbol. Now, we want to +// keep the original latin mappings except for those few that we +// want to overwrite for our own keyboard. +// +// CHANGES v 1.2: +// 2016-06-17 1- added dead keys dead_macron, dead_acute, and dead_grave for +// tones 1, 3, and 4, for compatibility with the Keyman version. +// 2- rearranged combining diacritics for tones 0 to 5 such that +// the diacritics are on consequetive keys (AC01 to AC05). +// 3- moved tone 8 to level 3 of AE12. +// 4- moved layout definition out of the EXTRAS section. +// 5- for a cleaner keyboard, +// replaced ṭhe included latin layout with us(basic). +// +// +// NOTES: +// 0. This map is based on the Latin alphabet layout for the US keyboard. +// +// 1. We use combining diacritical marks to create tone markings. There are 13 +// tones that need to be indicated, although the first 5 are usually enough +// to represent the rest in simplified orthography. +// +// 2. When composing Mmuock text, about every fourth symbol is for tone. To +// facilitate easy and fast input, the combining diacritics are placed on +// the home row (AC). To reduce the number of key strokes required, the +// unshifted third level is used. Only 5 of the combining diacritics are not +// on the AC row; they are in the top number row, AE. +// +// 3. Symbols that are used infrequently (`r', `h', `ɛ', `ǝ', etc.) are placed +// in level3. Additionally, the letter eng (`ŋ'), although commonly used, +// is found in level3 because it can alternatively be represented by . +// (Indeed, the keyman version of keyboard actually replaces with `ŋ'.) +// +// 4. The unshifted AB10 key (normally assigned to the slash `/') is used as +// level 3 switch since the slash is not used in the ordinary course of +// typing Mmuock text. +// +// 5. The 'Cameroon Multilingual' keyboards that are defined elsewhere, do not +// fit our needs because: (a) they are based on a different alphabet, (b) the +// vast majority of their symbols are not used in Mmuock, and (c) for the few +// symbols that are used in Mmuock, their placings are not egonomic for +// typing Mmuock as the _PRIMARY_ language. The aim of this keyboard, is +// to give priority to symbols that are actually used in the Mmuock alphabet. +// +// 6. The following fonts have been found to produce the best results with this +// keyboard: +// Family Accuracy +// DejaVu (except Sans Mono) 9/10 +// Linux Libertine 8/10 +// Ubuntu (except light) 8/10 +// Droid (except sans mono) 7/10 +// Gentium, Gentium Alt 6.5/10 +// In the terminal emulator, the following font variants have been tested: +// Ubuntu Mono 9/10 +// Unifont (Medium) 9/10 +// DejaVu Sans Mono 7.5/10 +// Droid Sans Mono 6.5/10 +// These fonts are all freely available. +// +// ------the layout----------- +// +// ┌─────┐ +// │ 2 4 │ 2 = Shift, 4 = Level3 + Shift +// │ 1 3 │ 1 = Normal, 3 = Level3 +// └─────┘ +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ~ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & | * │ ( │ ) │ _ – │ + ̣┃ ⌫ Back- ┃ +// AE│ ` ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6  ̂│ 7  ̑│ 8  ̍│ 9  ̓│ 0  ̊│ ¯ - │ = ̋┃ space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ Q │ W │ E Ǝ │ Š R │ T │ Y │ U Ω │ I Ɛ │ O Φ │ P ∏ │ Ø { │ Σ } ┃ Enter ┃ +// AD┃Tab ↹ ┃ q │ w │ e ǝ │ š r │ t │ y │ u ω │ i ɛ │ o φ │ p π │ ø [ │ σ ] ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ A │ S │ D │ F │ G │  ̇ H │ J │ K │ L │ Œ : │ " ” │ Æ | ┃ ┃ +// AC┃Caps ⇬ ┃ a  ̃│ s  ̄| d ́| f  ̀| g  ̌|  ̣ h │ j  ̆│ k  ̏│ l  ̈│ œ ; │ ' ’ │ æ \ ┃ ┃ +// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ │ Z Dz │ X │ C │ V │ B │ N ŋ │ M │ < « │ > » │ ? ┃ ┃ +// AB┃Shift ⇧ │ z dz │ x │ c │ v │ b │ n Ŋ │ m │ , ‹ │ . › │ / ┃Shift ⇧ ┃ +// ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// AA┃Ctrl ┃Meta ┃Alt ┃ Space ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// + +partial alphanumeric_keys +xkb_symbols "mmuock" { + + include "us(basic)" + include "level3(ralt_switch)" + + name[Group1]= "Mmuock"; + key { [ 6, asciicircum, U0302 ] }; // tone 10 + key { [ 7, ampersand, U0311 ] }; // tone 12 + key { [ 8, asterisk, U030D ] }; // tone 13 + key { [ 9, parenleft, U0307 ] }; // tone 7 + key { [ 0, parenright, U030A ] }; // tone 6 + key { [dead_macron, underscore, minus, endash ] }; + key { [ equal, plus, U030B, dead_belowdot ] }; // U030B = tone 8 + key { [ e, E, U01DD, U018E ] }; // U01DD = reversed E + key { [ scaron, Scaron, r, R ] }; + key { [ u, U, Greek_omega, Greek_OMEGA ] }; + key { [ i, I, U025B, U0190 ] }; // U025B = open E + key { [ o, O, Greek_phi, Greek_PHI ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ oslash, Ooblique, bracketleft, braceleft ] }; + key { [Greek_sigma, Greek_SIGMA, bracketright, braceright ] }; + key { [ a, A, U0303 ] }; // tone 0 + key { [ s, S, U0304 ] }; // tone 1 + key { [ d, D, U0301 ] }; // tone 3 + key { [ f, F, U0300 ] }; // tone 4 + key { [ g, G, U030C ] }; // tone 5 + key { [ U0323, U0307, h, H ] }; // COMBINING DOT BELOW, ABOVE + key { [ j, J, U0306 ] }; // tone 9 + key { [ k, K, U030F ] }; // tone 11 + key { [ l, L, U0308 ] }; // tone 14 + key { [ oe, OE, semicolon, colon ] }; + key { [ dead_acute, quotedbl, apostrophe ] }; + key { [ dead_grave, dead_tilde, grave, asciitilde ] }; + key { [ z, Z, U01F3, U01F2 ] }; // U01F3 = letter dz + key { [ n, N, eng, ENG ] }; + key { [ comma, less, guillemotleft, U2039 ] }; + key { [ period, greater, guillemotright, U203A ] }; + key { [ ae, AE, backslash, bar ] }; + + include "cm(solidus_switch)" +}; +// use slash as special key for switching to level3 +partial modifier_keys +xkb_symbols "solidus_switch" { + key { + symbols[Group1] = [ ISO_Level3_Latch, question, slash, dead_abovedot ] + }; + modifier_map Mod5 { ISO_Level3_Latch }; +}; +// ------- end of Mmuock keyboard map -------------------------------------------- + diff --git a/squashfs-root/usr/share/X11/xkb/symbols/cn b/squashfs-root/usr/share/X11/xkb/symbols/cn new file mode 100644 index 0000000..6b6562d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/cn @@ -0,0 +1,202 @@ +// +// Default Chinese is the same as American +// +default partial alphanumeric_keys +xkb_symbols "basic" { + include "us(basic)" + + name[Group1]= "Chinese"; +}; + +// Tibetan Standard Keyboard map for XKB/X.org +// +// Based on the CNS Tibetan keyboard as supported by Windows Vista +// using information published by Tashi Tsering: +// http://www.yalasoo.com/English/docs/yalasoo_en_MStbKb.html +// +// XKB version by Rich Felker . +// +// The CNS Tibetan keyboard standard specifies 5 keyboards worth of keys, +// but apparently makes no requirements about how each is accessed. Only +// the first 2 are needed for native Tibetan text; the remainder are +// filled with special symbols and letters for transliterating foreign +// text. Further, CNS leaves the level of support of keyboards 2-5 as an +// option to the implementor (despite the fact that #2 is absolutely +// essential...). Windows Vista maps them as follows: +// +// 1. Unshifted +// 2. "m"-key-prefixed +// 3. Shift-modified +// 4. Ctrl+Alt+Shift-modified +// 5. "M"-key-prefixed +// +// I roughly copy the Windows Vista mapping, which was intended by the +// designer of the keyboard, with the following exceptions: +// +// The fifth keyboard is almost empty and contains only precomposed forms +// of subjoined letter characters whose use is strongly discouraged, and +// is not implemented at all in this XKB map. The fourth is implemented, +// but is accessed by an "m"-prefix (or "M"-prefix, for convenience) +// followed by a Shift-modified key. This avoids stealing the Ctrl and Alt +// keys, which belong to applications on *nix and not to the keyboard or +// input method. Aside from enterring rare special symbols and +// foreign-word-transliteration letters, these differences should not +// affect users. +// +// Implementation notes: +// +// A latching ISO Level3 shift is used for the "m"-prefix modifier. In +// principle moving it to other keys (e.g. AltGr) would be possible +// according to user preference, but this is not practical for typing +// Tibetan, since the subjoined consonants, of which Tibetan has 0-2 per +// syllable, are accessed via this mechanism. +// +// One annoyance is that the latching Level3 shift fails to work if the +// previous key is not yet released when "m" is pressed (the key release +// event kills the latch). I consider this a bug in X and don't know an +// easy way to work around it. Complain to the maintainers if it bothers +// you and maybe they'll find a fix. You won't notice it unless you're +// fast at typing Tibetan anyway. + +partial alphanumeric_keys +xkb_symbols "tib" { + + name[Group1]= "Tibetan"; + + key { [ 0x1000f68, 0x1000f01, 0x1000fb8, 0x1000f00 ] }; # ཨ ༁ ྸ ༀ + key { [ 0x1000f21, 0x1000f2a, 0x1000f04, 0x1000f76 ] }; # ༡ ༪ ༄ ྲྀ + key { [ 0x1000f22, 0x1000f2b, 0x1000f05, 0x1000f77 ] }; # ༢ ༫ ༅ ཷ + key { [ 0x1000f23, 0x1000f2c, 0x1000f7e, 0x1000f78 ] }; # ༣ ༬ ཾ ླྀ + key { [ 0x1000f24, 0x1000f2d, 0x1000f83, 0x1000f79 ] }; # ༤ ༭ ྃ ཹ + key { [ 0x1000f25, 0x1000f2e, 0x1000f37, 0x1000f81 ] }; # ༥ ༮ ༷ ཱྀ + key { [ 0x1000f26, 0x1000f2f, 0x1000f35, 0x1000f09 ] }; # ༦ ༯ ༵ ༉ + key { [ 0x1000f27, 0x1000f30, 0x1000f7f, 0x1000f0a ] }; # ༧ ༰ ཿ ༊ + key { [ 0x1000f28, 0x1000f31, 0x1000f14, 0x1000f0f ] }; # ༨ ༱ ༔ ༏ + key { [ 0x1000f29, 0x1000f32, 0x1000f11, 0x1000f10 ] }; # ༩ ༲ ༑ ༐ + key { [ 0x1000f20, 0x1000f33, 0x1000f08, 0x1000f12 ] }; # ༠ ༳ ༈ ༒ + key { [ 0x1000f67, 0x1000f3c, 0x1000fb7, 0x1000f0c ] }; # ཧ ༼ ྷ ༌ + key { [ 0x1000f5d, 0x1000f3d, 0x1000fba, 0x1000f13 ] }; # ཝ ༽ ྺ ༓ + + key { [ 0x1000f45, 0x1000f15, 0x1000f95, 0x1000f89 ] }; # ཅ ༕ ྕ ྉ + key { [ 0x1000f46, 0x1000f16, 0x1000f96, 0x1000f88 ] }; # ཆ ༖ ྖ ྈ + key { [ 0x1000f7a, 0x1000f17, 0x1000f7b, 0x1000fbe ] }; # ེ ༗ ཻ ྾ + key { [ 0x1000f62, 0x1000fbc, 0x1000fb2, 0x1000f6a ] }; # ར ྼ ྲ ཪ + key { [ 0x1000f4f, 0x1000f4a, 0x1000f9f, 0x1000f9a ] }; # ཏ ཊ ྟ ྚ + key { [ 0x1000f61, 0x1000fbb, 0x1000fb1, 0x1000fbf ] }; # ཡ ྻ ྱ ྿ + key { [ 0x1000f74, 0x1000f18, 0x1000fad, 0x1000f75 ] }; # ུ ༘ ྭ ཱུ + key { [ 0x1000f72, 0x1000f19, 0x1000f80, 0x1000f73 ] }; # ི ༙ ྀ ཱི + key { [ 0x1000f7c, 0x1000f1a, 0x1000f7d, 0x1000fc0 ] }; # ོ ༚ ཽ ࿀ + key { [ 0x1000f55, 0x1000f1b, 0x1000fa5, 0x1000fc1 ] }; # ཕ ༛ ྥ ࿁ + key { [ 0x1000f59, 0x1000f1c, 0x1000fa9, 0x1000fc2 ] }; # ཙ ༜ ྩ ࿂ + key { [ 0x1000f5a, 0x1000f1d, 0x1000faa, 0x1000fc3 ] }; # ཚ ༝ ྪ ࿃ + key { [ 0x1000f5b, 0x1000f1e, 0x1000fab, 0x1000f5c ] }; # ཛ ༞ ྫ ཛྷ + + key { [ 0x1000f60, 0x1000f71, 0x1000fb0, 0x1000fc4 ] }; # འ ཱ ྰ ࿄ + key { [ 0x1000f66, 0x1000f1f, 0x1000fb6, 0x1000fc5 ] }; # ས ༟ ྶ ࿅ + key { [ 0x1000f51, 0x1000f4c, 0x1000fa1, 0x1000f9c ] }; # ད ཌ ྡ ྜ + key { [ 0x1000f56, 0x1000f3e, 0x1000fa6, 0x1000f57 ] }; # བ ༾ ྦ བྷ + key { [ 0x1000f44, 0x1000f3f, 0x1000f94, 0x1000fc6 ] }; # ང ༿ ྔ ࿆ + key { [ 0x1000f58, 0x1000fcf, 0x1000fa8, 0x1000fc7 ] }; # མ ࿏ ྨ ࿇ + key { [ 0x1000f0b, 0x1000f02, 0x1000f84, 0x1000fc8 ] }; # ་ ༂ ྄ ࿈ + key { [ 0x1000f42, 0x1000f03, 0x1000f92, 0x1000f43 ] }; # ག ༃ ྒ གྷ + key { [ 0x1000f63, 0x1000f06, 0x1000fb3, 0x1000fc9 ] }; # ལ ༆ ླ ࿉ + key { [ 0x1000f5e, 0x1000f07, 0x1000fae, 0x1000fca ] }; # ཞ ༇ ྮ ࿊ + key { [ 0x1000f0d, 0x1000f38, 0x1000f0e, 0x1000fcb ] }; # ། ༸ ༎ ࿋ + + key { [ 0x1000f5f, 0x1000f34, 0x1000faf, 0x1000fcc ] }; # ཟ ༴ ྯ ࿌ + key { [ 0x1000f64, 0x1000f65, 0x1000fb4, 0x1000fb5 ] }; # ཤ ཥ ྴ ྵ + key { [ 0x1000f40, 0x1000f69, 0x1000f90, 0x1000fb9 ] }; # ཀ ཀྵ ྐ ྐྵ + key { [ 0x1000f41, 0x1000f87, 0x1000f91, 0x1000f36 ] }; # ཁ ྇ ྑ ༶ + key { [ 0x1000f54, 0x1000f86, 0x1000fa4, 0x1000f82 ] }; # པ ྆ ྤ ྂ + key { [ 0x1000f53, 0x1000f4e, 0x1000fa3, 0x1000f9e ] }; # ན ཎ ྣ ྞ + key { [ ISO_Level3_Latch, ISO_Level3_Latch, 0x1000f85, 0x1000f52 ] }; # -བཏགས་ ྅ དྷ + key { [ 0x1000f50, 0x1000f4b, 0x1000fa0, 0x1000f9b ] }; # ཐ ཋ ྠ ྛ + key { [ 0x1000f47, 0x1000f3a, 0x1000f97, 0x1000f8b ] }; # ཇ ༺ ྗ ྋ + key { [ 0x1000f49, 0x1000f3b, 0x1000f99, 0x1000f8a ] }; # ཉ ༻ ྙ ྊ + +}; + +// Tibetan Standard Keyboard with ASCII numerals +// +// Users may prefer that the numeral keys enter ASCII numerals instead of +// Tibetan numerals, since the latter are not in modern use in Tibet. +// This is especially an issue for laptop users who do not have a numeric +// keypad by which to access the ASCII numerals, and who need to type +// numbers to be interpreted by applications. +// +// In this mapping, the Shift-modified numeral keys generate Tibetan +// numerals, since it was unclear to me that the standard Latin punctuation +// keys would be any use without Latin letters. (One can imagine wanting to +// type an email address using the @ sign, but as of present non-ASCII +// email addresses are not possible.) This mapping may change in the future +// if a clearly better use for the shifted numerals is pointed out by users. + +partial alphanumeric_keys +xkb_symbols "tib_asciinum" { + include "cn(tib)" + + name[Group1]= "Tibetan (with ASCII numerals)"; + + key { [ 1, 0x1000f21, 0x1000f04, 0x1000f76 ] }; # 1 ༡ ༄ ྲྀ + key { [ 2, 0x1000f22, 0x1000f05, 0x1000f77 ] }; # 2 ༢ ༅ ཷ + key { [ 3, 0x1000f23, 0x1000f7e, 0x1000f78 ] }; # 3 ༣ ཾ ླྀ + key { [ 4, 0x1000f24, 0x1000f83, 0x1000f79 ] }; # 4 ༤ ྃ ཹ + key { [ 5, 0x1000f25, 0x1000f37, 0x1000f81 ] }; # 5 ༥ ༷ ཱྀ + key { [ 6, 0x1000f26, 0x1000f35, 0x1000f09 ] }; # 6 ༦ ༵ ༉ + key { [ 7, 0x1000f27, 0x1000f7f, 0x1000f0a ] }; # 7 ༧ ཿ ༊ + key { [ 8, 0x1000f28, 0x1000f14, 0x1000f0f ] }; # 8 ༨ ༔ ༏ + key { [ 9, 0x1000f29, 0x1000f11, 0x1000f10 ] }; # 9 ༩ ༑ ༐ + key { [ 0, 0x1000f20, 0x1000f08, 0x1000f12 ] }; # 0 ༠ ༈ ༒ +}; + +// Uyghur Standard Keyboard Map for XKB/X.Org +// +// XKB version in collaboration by Muhemmed Abdullah , +// Abdussalam Abdurrahman , and +// Ekrem Tomur + +partial alphanumeric_keys +xkb_symbols "ug" { + include "us(basic)" + + name[Group1]= "Uyghur"; + + key { [ 9, parenright ] }; // 9 ) + key { [ 0, parenleft ] }; // 0 ( + key { [ minus, 0x1002014 ] }; // - — + + key { [ 0x1000686, VoidSymbol ] }; // چ + key { [ 0x10006cb, VoidSymbol ] }; // ۋ + key { [ 0x10006d0, VoidSymbol ] }; // ې + key { [ 0x1000631, VoidSymbol ] }; // ر + key { [ 0x100062a, VoidSymbol ] }; // ت + key { [ 0x100064a, VoidSymbol ] }; // ي + key { [ 0x10006c7, VoidSymbol ] }; // ۇ + key { [ 0x10006ad, VoidSymbol ] }; // ڭ + key { [ 0x1000648, VoidSymbol ] }; // و + key { [ 0x100067e, VoidSymbol ] }; // پ + key { [ bracketright, guillemotright ] }; // ] » + key { [ bracketleft, guillemotleft ] }; // [ « + + key { [ 0x10006be, VoidSymbol ] }; // ھ + key { [ 0x1000633, VoidSymbol ] }; // س + key { [ 0x100062f, 0x1000698 ] }; // د ژ + key { [ 0x1000627, 0x1000641 ] }; // ا ف + key { [ 0x10006d5, 0x10006af ] }; // ە گ + key { [ 0x1000649, 0x100062e ] }; // ى خ + key { [ 0x1000642, 0x100062c ] }; // ق ج + key { [ 0x1000643, 0x10006c6 ] }; // ك ۆ + key { [ 0x1000644, VoidSymbol ] }; // ل + key { [ Arabic_semicolon, colon ] }; // ؛ : + + key { [ 0x1000632, VoidSymbol ] }; // ز + key { [ 0x1000634, VoidSymbol ] }; // ش + key { [ 0x100063a, VoidSymbol ] }; // غ + key { [ 0x10006c8, VoidSymbol ] }; // ۈ + key { [ 0x1000628, VoidSymbol ] }; // ب + key { [ 0x1000646, VoidSymbol ] }; // ن + key { [ 0x1000645, VoidSymbol ] }; // م + key { [ Arabic_comma, 0x100203a ] }; // ، › + key { [ period, 0x1002039 ] }; // . ‹ + key { [ 0x1000626, Arabic_question_mark ] }; // ئ ؟ +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/compose b/squashfs-root/usr/share/X11/xkb/symbols/compose new file mode 100644 index 0000000..08446bf --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/compose @@ -0,0 +1,89 @@ +partial modifier_keys +xkb_symbols "ralt" { + key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "lwin" { + key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "lwin-altgr" { + key { type[Group1]="FOUR_LEVEL", [ Super_L, Super_L, Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "rwin" { + key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "rwin-altgr" { + key { type[Group1]="FOUR_LEVEL", [ Super_R, Super_R, Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "menu" { + key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "menu-altgr" { + key { type[Group1]="FOUR_LEVEL", [ Menu, Menu, Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "rctrl" { + key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "rctrl-altgr" { + key { type[Group1]="FOUR_LEVEL", [ Control_R, Control_R, Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "lctrl" { + key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "lctrl-altgr" { + key { type[Group1]="FOUR_LEVEL", [ Control_L, Control_L, Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "caps" { + key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "caps-altgr" { + key { type[Group1]="FOUR_LEVEL", [ Caps_Lock, Caps_Lock, Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "102" { + key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "102-altgr" { + key { type[Group1]="FOUR_LEVEL", [ less, greater, Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "paus" { + key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "prsc" { + key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; +}; + +partial modifier_keys +xkb_symbols "sclk" { + key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ctrl b/squashfs-root/usr/share/X11/xkb/symbols/ctrl new file mode 100644 index 0000000..8791b49 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ctrl @@ -0,0 +1,104 @@ +// Eliminate CapsLock, making it another Ctrl. +partial modifier_keys +xkb_symbols "nocaps" { + replace key { [ Control_L, Control_L ] }; + modifier_map Control { , }; +}; + +// Make the left Ctrl key a left Meta. +xkb_symbols "lctrl_meta" { + replace key { [ Meta_L ] }; + modifier_map Mod4 { }; +}; + +// Swap the functions of the CapsLock key and the left Ctrl key. +partial modifier_keys +xkb_symbols "swapcaps" { + replace key { [ Control_L ] }; + replace key { [ Caps_Lock ] }; + modifier_map Control { }; + modifier_map Lock { }; +}; + +// Move Ctrl to the leftmost key on the middle row and CapsLock to the +// leftmost key on the bottom row. Only works if the geometry or keycodes +// file has defined appropriate aliases for the keys in question. +partial modifier_keys +xkb_symbols "ac_ctrl" { + replace key { [ Control_L ] }; + replace key { [ Caps_Lock ] }; + modifier_map Control { }; + modifier_map Lock { }; +}; + +// Move Ctrl to the leftmost key on the bottom row and CapsLock to the +// leftmost key on the middle row. Only works if the geometry or keycodes +// file has defined appropriate aliases for the keys in question. +partial modifier_keys +xkb_symbols "aa_ctrl" { + replace key { [ Control_L ] }; + replace key { [ Caps_Lock ] }; + modifier_map Control { }; + modifier_map Lock { }; +}; + +// Right Ctrl functions as another right Alt. +partial modifier_keys +xkb_symbols "rctrl_ralt" { + key { symbols[Group1]= [ Alt_R ] }; + modifier_map Mod1{ }; +}; + +// Menu key functions as another right Ctrl. +partial modifier_keys +xkb_symbols "menu_rctrl" { + replace key { [ Control_R, Control_R ] }; + modifier_map Control { Control_L, }; +}; + +// Right Alt key functions as another right Ctrl. +partial modifier_keys +xkb_symbols "ralt_rctrl" { + replace key { type[Group1] = "TWO_LEVEL", + symbols[Group1] = [ Control_R, Control_R ] }; + modifier_map Control { }; +}; + +// Swap the functions of the left Alt key and the left Ctrl key. +partial modifier_keys +xkb_symbols "swap_lalt_lctl" { + replace key { [ Control_L, Control_L ] }; + replace key { [ Alt_L, Meta_L ] }; + modifier_map Mod1 { }; + modifier_map Control { }; +}; + +// Swap the functions of the left Win key and the left Ctrl key. +partial modifier_keys +xkb_symbols "swap_lwin_lctl" { + replace key { [ Control_L ] }; + replace key { [ Super_L ] }; + modifier_map Mod4 { }; + modifier_map Control { }; +}; + +// Swap the functions of the right Win key and the right Ctrl key. +partial modifier_keys +xkb_symbols "swap_rwin_rctl" { + replace key { [ Control_R ] }; + replace key { [ Super_R ] }; + modifier_map Mod4 { }; + modifier_map Control { }; +}; + +// Map Ctrl to the left Alt key, Alt to the left Win key, +// and Super to the left Ctrl key. +partial modifier_keys +xkb_symbols "swap_lalt_lctl_lwin" { + replace key { [ Control_L, Control_L ] }; + replace key { [ Alt_L, Meta_L ] }; + replace key { [ Super_L ] }; + modifier_map Mod1 { }; + modifier_map Mod4 { }; + modifier_map Control { }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/cz b/squashfs-root/usr/share/X11/xkb/symbols/cz new file mode 100644 index 0000000..3407e92 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/cz @@ -0,0 +1,255 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + // This layout conforms to a new Czech compromise standard + // designed to satisfy most Unix, Windows and Mac users. + // 2001 by Kamil Toman + + include "latin" + name[Group1]= "Czech"; + + key { [ semicolon, dead_abovering, grave, asciitilde ] }; + key { [ plus, 1, exclam, dead_tilde ] }; + key { [ ecaron, 2, at, dead_caron ] }; + key { [ scaron, 3, numbersign, dead_circumflex ] }; + key { [ ccaron, 4, dollar, dead_breve ] }; + key { [ rcaron, 5, percent, dead_abovering]}; + key { [ zcaron, 6, asciicircum, dead_ogonek ] }; + key { [ yacute, 7, ampersand, dead_grave ] }; + key { [ aacute, 8, asterisk, dead_abovedot] }; + key { [ iacute, 9, braceleft, dead_acute ] }; + key { [ eacute, 0, braceright, dead_doubleacute ] }; + key { [ equal, percent, NoSymbol, dead_diaeresis]}; + key { [dead_acute, dead_caron, dead_macron, dead_cedilla ] }; + + key { [ q, Q, backslash, NoSymbol ] }; + key { [ w, W, bar, Nosymbol ] }; + key { [ e, E, EuroSign, NoSymbol ] }; + key { [ r, R, NoSymbol, NoSymbol ] }; + key { [ t, T, NoSymbol, NoSymbol ] }; + key { [ z, Z, NoSymbol, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol ] }; + key { [ i, I, NoSymbol, NoSymbol ] }; + key { [ o, O, NoSymbol, NoSymbol ] }; + key { [ p, P, NoSymbol, NoSymbol ] }; + + key { [ uacute, slash, bracketleft, division ] }; + key { [parenright, parenleft, bracketright, multiply ] }; + + key { [ a, A, asciitilde, NoSymbol ] }; + key { [ s, S, dstroke, NoSymbol ] }; + key { [ d, D, Dstroke, NoSymbol ] }; + key { [ f, F, bracketleft, NoSymbol ] }; + key { [ g, G, bracketright, NoSymbol ] }; + key { [ h, H, grave, NoSymbol ] }; + key { [ j, J, apostrophe, NoSymbol ] }; + key { [ k, K, lstroke, NoSymbol ] }; + key { [ l, L, Lstroke, NoSymbol ] }; + + key { [ uring, quotedbl, dollar, NoSymbol ] }; + key { [ section, exclam, apostrophe, ssharp ] }; + key { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] }; + key { [dead_diaeresis, apostrophe, backslash, bar ] }; + + key { [ backslash, bar, slash, NoSymbol ] }; + key { [ y, Y, degree, NoSymbol ] }; + key { [ x, X, numbersign, Nosymbol ] }; + key { [ c, C, ampersand, NoSymbol ] }; + key { [ v, V, at, NoSymbol ] }; + key { [ b, B, braceleft, NoSymbol ] }; + key { [ n, N, braceright, NoSymbol ] }; + key { [ m, M, asciicircum, NoSymbol ] }; + key { [ comma, question, less, NoSymbol ] }; + key { [ period, colon, greater, NoSymbol ] }; + key { [ minus, underscore, asterisk, NoSymbol ] }; + + key { [ space, space, space, space ] }; + + include "level3(ralt_switch)" +}; + +xkb_symbols "bksl" { + + // Use instead of (useful for keyboards without key). + + include "cz(basic)" + name[Group1]= "Czech (with <\|> key)"; + + key { [ backslash, bar, slash, NoSymbol ] }; +}; + +partial alphanumeric_keys +xkb_symbols "qwerty" { + + // This layout represents the actual Czech keyboards; + // it complies with the symbols printed on the keys. + // 2011 by Lukáš Mojžíš + + include "cz(basic)" + name[Group1]= "Czech (QWERTY)"; + + key { [ z, Z, degree, NoSymbol ] }; + key { [ uring, quotedbl, semicolon, colon ] }; + key { [ section, exclam, apostrophe, ssharp ] }; + key { [ y, Y, NoSymbol, NoSymbol ] }; + key { [ uacute, slash, bracketleft, braceleft ] }; + key { [parenright, parenleft, bracketright, braceright ] }; + key { [ iacute, 9, parenleft, dead_acute ] }; + key { [ eacute, 0, parenright, dead_doubleacute ] }; +}; + +xkb_symbols "qwerty_bksl" { + + // Use instead of (useful for keyboards without key). + + include "cz(qwerty)" + name[Group1]= "Czech (QWERTY, extended backslash)"; + + key { [ backslash, bar, slash, NoSymbol ] }; +}; + +partial alphanumeric_keys alternate_group +xkb_symbols "ucw" { + + // This layout is usually used as the second group, + // it contains accented characters only, no 'latin' set. + // 2008 by Milan Vancura + + name[Group1]= "Czech (UCW, only accented letters)"; + + key { [zcaron, Zcaron ] }; + key { [ssharp ] }; + key { [ccaron, Ccaron ] }; + key { [ccedilla, Ccedilla ] }; + key { [ntilde, Ntilde ] }; + key { [ncaron, Ncaron ] }; + key { [lacute, Lacute ] }; + + key { [aacute, Aacute ] }; + key { [scaron, Scaron ] }; + key { [dcaron, Dcaron ] }; + key { [ediaeresis, Ediaeresis ] }; + key { [racute, Racute ] }; + key { [uacute, Uacute ] }; + key { [udiaeresis, Udiaeresis ] }; + key { [ocircumflex, Ocircumflex ] }; + key { [lcaron, Lcaron ] }; + + key { [adiaeresis, Adiaeresis ] }; + key { [ecaron, Ecaron ] }; + key { [eacute, Eacute ] }; + key { [rcaron, Rcaron ] }; + key { [tcaron, Tcaron ] }; + key { [yacute, Yacute ] }; + key { [uring, Uring ] }; + key { [iacute, Iacute ] }; + key { [oacute, Oacute ] }; + key { [odiaeresis, Odiaeresis ] }; +}; + +partial alphanumeric_keys +xkb_symbols "dvorak-ucw" { + + // US Dvorak layout extended with UCW, + // AltGr produces accented characters. + + include "us(dvorak)" + name[Group1]= "Czech (US, Dvorak, UCW support)"; + + key { [ j, J, eacute, Eacute ] }; + key { [ k, K, uacute, Uacute ] }; + key { [ z, Z, zcaron, Zcaron ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ e, E, ecaron, Ecaron ] }; + key { [ u, U, uring, Uring ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ d, D, dcaron, Dcaron ] }; + key { [ t, T, tcaron, Tcaron ] }; + key { [ n, N, ncaron, Ncaron ] }; + key { [ s, S, scaron, Scaron ] }; + + key { [ y, Y, yacute, Yacute ] }; + key { [ c, C, ccaron, Ccaron ] }; + key { [ r, R, rcaron, Rcaron ] }; + + include "level3(ralt_switch)" +}; + +// phonetic layout for Russian letters on an CZ (QWERTY) keyboard +// originaly created by Pavel Sorejs + +partial alphanumeric_keys +xkb_symbols "rus" { + + include "cz(qwerty)" + name[Group1]= "Russian (Czech, phonetic)"; + + key { [ plus, ampersand, 1 , 1 ] }; + key { [ Cyrillic_hardsign, 2, 2 , 2 ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, 3 , 3 ] }; + key { [ Cyrillic_che, Cyrillic_CHE, 4 , 4 ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, 5 , 5 ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, 6 , 6 ] }; + key { [ quotedbl, 4, 7 , 7 ] }; + key { [ section, 5, 8 , 8 ] }; + key { [ dollar, 6, 9 , 9 ] }; + key { [ equal, 7, 0 , 0 ] }; + key { [ percent, 8 ] }; + key { [ apostrophe, 9 ] }; + + key { [ comma, question ] }; + key { [ period, exclam ] }; + key { [ minus, slash ] }; + + key { [ semicolon, colon ] }; + + key { [ bar, brokenbar ] }; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + + + key { [ numerosign, 1, q, Q ] }; + key { [ Cyrillic_yu, Cyrillic_YU, w, W ] }; + key { [ Cyrillic_ie, Cyrillic_IE, e, E ] }; + key { [ Cyrillic_er, Cyrillic_ER, r, R ] }; + key { [ Cyrillic_te, Cyrillic_TE, t, T ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU, y, Y ] }; + key { [ Cyrillic_u, Cyrillic_U, u, U ] }; + key { [ Cyrillic_i, Cyrillic_I, i, I ] }; + key { [ Cyrillic_o, Cyrillic_O, o, O ] }; + key { [ Cyrillic_pe, Cyrillic_PE, p, P ] }; + key { [ Cyrillic_e, Cyrillic_E, bracketleft, division ] }; + key { [ parenright, parenleft, bracketright, multiply ] }; + + key { [ Cyrillic_a, Cyrillic_A, a, A ] }; + key { [ Cyrillic_es, Cyrillic_ES, s, S ] }; + key { [ Cyrillic_de, Cyrillic_DE, d, D ] }; + key { [ Cyrillic_ef, Cyrillic_EF, f, F ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, g, G ] }; + key { [ Cyrillic_ha, Cyrillic_HA, h, H ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, j, J ] }; + key { [ Cyrillic_ka, Cyrillic_KA, k, K ] }; + key { [ Cyrillic_el, Cyrillic_EL, l, L ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, less, greater ] }; + + key { [ Cyrillic_ze, Cyrillic_ZE, z, Z ] }; + key { [ Cyrillic_ya, Cyrillic_YA, x, X ] }; + key { [ Cyrillic_tse, Cyrillic_TSE, c, C ] }; + key { [ Cyrillic_ve, Cyrillic_VE, v, V ] }; + key { [ Cyrillic_be, Cyrillic_BE, b, B ] }; + key { [ Cyrillic_en, Cyrillic_EN, n, N ] }; + key { [ Cyrillic_em, Cyrillic_EM, m, M ] }; + + key { [ backslash, brokenbar ] }; + + include "level3(ralt_switch)" +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/cz(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/de b/squashfs-root/usr/share/X11/xkb/symbols/de new file mode 100644 index 0000000..c025a1c --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/de @@ -0,0 +1,1153 @@ +// based on a keyboard map from an 'xkb/symbols/de' file + +default +xkb_symbols "basic" { + + include "latin(type4)" + + name[Group1]="German"; + + key { [ 2, quotedbl, twosuperior, oneeighth ] }; + key { [ 3, section, threesuperior, sterling ] }; + key { [ 4, dollar, onequarter, currency ] }; + + key {type[Group1]="FOUR_LEVEL_PLUS_LOCK", symbols[Group1]= + [ssharp, question, backslash, questiondown, 0x1001E9E ]}; + key { [dead_acute, dead_grave, dead_cedilla, dead_ogonek ] }; + + key { [ e, E, EuroSign, EuroSign ] }; + key { [ z, Z, leftarrow, yen ] }; + key { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] }; + key { [ plus, asterisk, asciitilde, macron ] }; + + key { [ s, S, U017F, U1E9E ] }; + key { [ j, J, dead_belowdot, dead_abovedot ] }; + key { [odiaeresis, Odiaeresis, dead_doubleacute, dead_belowdot ] }; + key { [adiaeresis, Adiaeresis, dead_circumflex, dead_caron ] }; + key { [dead_circumflex, degree, U2032, U2033 ] }; + + key { [numbersign, apostrophe, rightsinglequotemark, dead_breve ] }; + key { [ y, Y, guillemotright, U203A ] }; + key { [ x, X, guillemotleft, U2039 ] }; + key { [ v, V, doublelowquotemark, singlelowquotemark ] }; + key { [ b, B, leftdoublequotemark, leftsinglequotemark ] }; + key { [ n, N, rightdoublequotemark, rightsinglequotemark ] }; + key { [ comma, semicolon, periodcentered, multiply ] }; + key { [ period, colon, U2026, division ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ less, greater, bar, dead_belowmacron ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "deadtilde" { + // previous standard German layout with tilde as dead key + + include "de(basic)" + name[Group1]="German (dead tilde)"; + + key { [ plus, asterisk, dead_tilde, dead_macron ] }; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // modify the basic German layout to not have any dead keys + + include "de(basic)" + name[Group1]="German (no dead keys)"; + + key { [asciicircum, degree, notsign, notsign ] }; + key { [ acute, grave, cedilla, cedilla ] }; + key { [ udiaeresis, Udiaeresis, diaeresis, diaeresis ] }; + key { [ plus, asterisk, asciitilde, macron ] }; + key { [ odiaeresis, Odiaeresis, doubleacute, doubleacute ] }; + key { [ adiaeresis, Adiaeresis, asciicircum, asciicircum ] }; + key { [ numbersign, apostrophe, rightsinglequotemark, grave ] }; +}; + +partial alphanumeric_keys +xkb_symbols "deadgraveacute" { + // modify the basic German layout to have only acute and grave + // as dead keys (tilde and circumflex are needed as spacing characters + // in many programming languages) + + include "de(basic)" + name[Group1]="German (dead grave acute)"; + + key { [asciicircum, degree, notsign, notsign ] }; + key { [ plus, asterisk, asciitilde, dead_macron ] }; + key { [ numbersign, apostrophe, rightsinglequotemark, grave ] }; +}; + +partial alphanumeric_keys +xkb_symbols "deadacute" { + // modify the basic German layout to have only acute as + // dead keys (ASCII grave, tilde and circumflex are needed as + // spacing characters in many programming languages and text formatters) + + include "de(deadgraveacute)" + + name[Group1]="German (dead acute)"; + + key { [dead_acute, grave, dead_cedilla, dead_ogonek ] }; + key { [numbersign, apostrophe, rightsinglequotemark, dead_grave ] }; +}; + + +partial alphanumeric_keys +xkb_symbols "T3" { + name[Group1]="German (T3)"; + + key.type[Group1] = "EIGHT_LEVEL"; + key { [ dead_circumflex, degree, multiply, NoSymbol, U204A, hyphen, bar, NoSymbol ] }; + key { [ 1, exclam, rightsinglequotemark, NoSymbol, onesuperior, exclamdown, U02B9, NoSymbol ] }; + key { [ 2, quotedbl, twosuperior, NoSymbol, twosuperior, currency, U02BA, NoSymbol ] }; + key { [ 3, section, threesuperior, NoSymbol, threesuperior, sterling, U02BF, NoSymbol ] }; + key { [ 4, dollar, emdash, NoSymbol, onequarter, 0x20AC, U02BE, NoSymbol ] }; + key { [ 5, percent, exclamdown, NoSymbol, onehalf, uparrow, U02C1, NoSymbol ] }; + key { [ 6, ampersand, questiondown, NoSymbol, threequarters, downarrow, U02C0, NoSymbol ] }; + key { [ 7, slash, braceleft, NoSymbol, oneeighth, leftarrow, braceleft, NoSymbol ] }; + key { [ 8, parenleft, bracketleft, NoSymbol, threeeighths, rightarrow, braceright, NoSymbol ] }; + key { [ 9, parenright, bracketright, NoSymbol, fiveeighths, plusminus, bracketleft, NoSymbol ] }; + key { [ 0, equal, braceright, NoSymbol, seveneighths, trademark, bracketright, NoSymbol ] }; + key { [ ssharp, question, backslash, NoSymbol, backslash, questiondown, U02BB, NoSymbol ] }; + key { [ dead_acute, dead_grave, dead_abovedot, NoSymbol, dead_cedilla, dead_ogonek, notsign, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC"; + key { [ q, Q, at, NoSymbol, U0242, U0241, U030D, NoSymbol ] }; + key { [ w, W, dead_caron, NoSymbol, U02B7, U2126, dead_abovedot, NoSymbol ] }; + key { [ e, E, EuroSign, NoSymbol, oe, OE, dead_breve, NoSymbol ] }; + key { [ r, R, dead_diaeresis, NoSymbol, paragraph, registered, dead_circumflex, NoSymbol ] }; + key { [ t, T, dead_macron, NoSymbol, UA78C, UA78B, dead_diaeresis, NoSymbol ] }; + key { [ z, Z, dead_doubleacute, NoSymbol, U027C, yen, dead_invertedbreve, NoSymbol ] }; + key { [ u, U, dead_breve, NoSymbol, U0223, U0222, dead_caron, NoSymbol ] }; + key { [ i, I, dead_tilde, NoSymbol, idotless, U214D, dead_abovecomma, NoSymbol ] }; + key { [ o, O, dead_abovering, NoSymbol, oslash, Oslash, dead_horn, NoSymbol ] }; + key { [ p, P, dead_hook, NoSymbol, thorn, THORN, dead_hook, NoSymbol ] }; + key { [ udiaeresis, Udiaeresis, dead_horn, NoSymbol, U017F, dead_abovering, dead_grave, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL"; + key { [ plus, asterisk, asciitilde, NoSymbol, dead_tilde, dead_macron, at, NoSymbol ] }; + + key.type[Group1] = "ONE_LEVEL"; + key { [ Caps_Lock ] }; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC"; + key { [ a, A, lessthanequal, NoSymbol, ae, AE, U0329, NoSymbol ] }; + key { [ s, S, greaterthanequal, NoSymbol, ssharp, section, dead_belowdot, NoSymbol ] }; + key { [ d, D, U2300, NoSymbol, eth, ETH, dead_belowbreve, NoSymbol ] }; + key { [ f, F, minutes, NoSymbol, U0294, ordfeminine, dead_belowcircumflex, NoSymbol ] }; + key { [ g, G, seconds, NoSymbol, eng, ENG, dead_belowmacron, NoSymbol ] }; + key { [ h, H, U1E9E, NoSymbol, U0272, U019D, U0332, NoSymbol ] }; + key { [ j, J, dead_cedilla, NoSymbol, U0133, U0132, dead_belowring, NoSymbol ] }; + key { [ k, K, dead_belowcomma, NoSymbol, kra, dead_belowcomma, dead_stroke, NoSymbol ] }; + key { [ l, L, dead_ogonek, NoSymbol, lstroke, Lstroke, U0338, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, dead_belowdot, NoSymbol, dead_acute, dead_doubleacute, degree, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, dead_stroke, NoSymbol, U019B, U1E9E, minutes, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL"; + key { [ numbersign, apostrophe, registered, NoSymbol, schwa, SCHWA, seconds, NoSymbol ] }; + + key { [ less, greater, bar, NoSymbol, U0149, brokenbar, U266A, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC"; + key { [ y, Y, U203A, NoSymbol, U0292, U01B7, guillemotleft, NoSymbol ] }; + key { [ x, X, guillemotright, NoSymbol, doublelowquotemark, singlelowquotemark, guillemotright, NoSymbol ] }; + key { [ c, C, copyright, NoSymbol, cent, copyright, Greek_horizbar, NoSymbol ] }; + key { [ v, V, guillemotleft, NoSymbol, leftdoublequotemark, leftsinglequotemark, U2039, NoSymbol ] }; + key { [ b, B, U2039, NoSymbol, rightdoublequotemark, rightsinglequotemark, U203A, NoSymbol ] }; + key { [ n, N, endash, NoSymbol, U019E, U0220, endash, NoSymbol ] }; + key { [ m, M, Greek_mu, NoSymbol, mu, masculine, emdash, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL"; + key { [ comma, semicolon, U02BB, NoSymbol, ellipsis, multiply, dollar, NoSymbol ] }; + key { [ period, colon, U200C, NoSymbol, periodcentered, division, numbersign, NoSymbol ] }; + key { [ minus, underscore, hyphen, NoSymbol, U0140, U013F, U2011, NoSymbol ] }; + + key { [ space, space, nobreakspace, NoSymbol, U202F, U200C, nobreakspace, NoSymbol ] }; + + include "kpdl(comma)" + + include "level5(modifier_mapping)" + include "level3(modifier_mapping)" + key.type[Group1] = "THREE_LEVEL"; + key { [ Shift_L, Shift_L, ISO_Level5_Latch ] }; + key { [ Shift_R, Shift_R, ISO_Level5_Latch ] }; + key { [ ISO_Level3_Shift, ISO_Level5_Latch, ISO_Level5_Latch ] }; + }; + +partial alphanumeric_keys +xkb_symbols "ro" { + // add romanian-specific letters to the basic German layout. + // Romanian symbols are accessible with combination of and + // 'a', 's', 't', 'i', 'ä (ä)' (+ for capital letters). + // To view romanian-specific symbols, add "export LC_CTYPE=ro_RO" + // or "export LC_CTYPE=de_DE.utf8" to your .profile. + + include "de(basic)" + + name[Group1]="Romanian (Germany)"; + + key { [ t, T, tcedilla, Tcedilla ] }; + key { [ i, I, icircumflex, Icircumflex ] }; + key { [ a, A, acircumflex, Acircumflex ] }; + key { [ s, S, scedilla, Scedilla ] }; + key { [ adiaeresis, Adiaeresis, abreve, Abreve ] }; +}; + +partial alphanumeric_keys +xkb_symbols "ro_nodeadkeys" { + // add romanian-specific letters to the German nodeadkeys layout. + // Read the comment for de_ro ! + + include "de(nodeadkeys)" + name[Group1]="Romanian (Germany, no dead keys)"; + + key { [ t, T, tcedilla, Tcedilla ] }; + key { [ i, I, icircumflex, Icircumflex ] }; + key { [ a, A, acircumflex, Acircumflex ] }; + key { [ s, S, scedilla, Scedilla ] }; + key { [ adiaeresis, Adiaeresis, abreve, Abreve ] }; +}; + +// German Dvorak keymap by Thorsten Staerk (www.staerk.de/thorsten) +// Have acute and grave as dead keys, tilde and circumflex alive as they are needed +// in many programming languages. +// to use this keymap, use a 105-key-keyboard and the command setxkbmap -model pc105 -layout dvorak -variant de +// source: http://www-lehre.informatik.uni-osnabrueck.de/~rfreund/dvorak.php +partial alphanumeric_keys +xkb_symbols "dvorak" { + include "us(dvorak)" + + name[Group1]="German (Dvorak)"; + + key { [ asciicircum, degree ] }; + + key { [ 1, exclam, onesuperior ] }; + key { [ 2, quotedbl, twosuperior ] }; + key { [ 3, section, threesuperior ] }; + key { [ 4, dollar, bar ] }; + key { [ 5, percent, bar ] }; + key { [ 6, ampersand, brokenbar ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ plus, asterisk, asciitilde ] }; + key { [ less, greater, dead_grave ] }; + + key { [ udiaeresis, Udiaeresis, at ] }; + key { [ comma, semicolon, dead_diaeresis ] }; + key { [ period, colon ] }; + key { [ c, C, copyright, Cacute ] }; + key { [ t, T, trademark ] }; + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ question, ssharp ] }; + key { [ slash, backslash, dead_acute ] }; + + key { [ a, A, at, aogonek ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ e, E, EuroSign, eogonek ] }; + key { [ i, I ] }; + key { [ u, U ] }; + key { [ h, H ] }; + key { [ d, D ] }; + key { [ r, R, registered ] }; + key { [ n, N, nacute, Nacute ] }; + key { [ s, S, sacute, Sacute] }; + key { [ l, L, lstroke, Lstroke ] }; + + key { [ odiaeresis, Odiaeresis ] }; + key { [ q, Q, at ] }; + key { [ m, M, mu ] }; + key { [ numbersign, apostrophe ] }; + + key { [ minus, underscore, hyphen, diaeresis] }; + + key { [ adiaeresis, Adiaeresis, bar ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + + // For naming consistency + + include "de(basic)" + +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + + // For naming consistency + + include "de(Sundeadkeys)" + + name[Group1]="German (with Sun dead keys)"; +}; + + +// German Neo-Layout Version 2 +// adopted 2004 by Hanno Behrens +// inspired by Dvorak/de-ergo http://www.goebel-consult.de/de-ergo/ +// +// Authors: +// Stephan Hilb +// +// Benjamin Kellermann +// Erik Streb +// and many other contributors +// +// http://www.neo-layout.org +// +// $Revision$, $Date$ + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "neo_base" { + + // Levels in Neo jargon + // -------------------------------------------------------------- + // Ebene 1: normal + // Ebene 2: Shift + // Ebene 3: Mod3 + // Ebene 4: Mod4 (for marking something use Shift + Mod4) + // Ebene 5: Shift + Mod3 + // Ebene 6: Mod3 + Mod4 + // Compose (not a level): Mod3 + Tab + // Feststelltaste (Capslock): Shift + Shift + // Mod4-Lock: Mod4 + Mod4 + // Mod4-Lock: Shift + Mod3 + Tab + + // Legend + // =============== + // Levels in Xkbmap jargon to be found here in the definitions. + // These are the levels used, and Xorg's translations: + // -------------------------------------------------------------- + // Xorg: Level1 Level2 Level3 Level4 Level5 Level6 Level7 Level8 + // Neo: Ebene1 Ebene2 Ebene3 Ebene5 Ebene4 Pseudo-Ebene Ebene6 ??? + // Keys (Neo): None Shift Mod3 Mod3 + Shift Mod4 Mod4 + Shift Mod3 + Mod4 Mod3 + Mod4 + Shift + + + // Alphanumeric-keys + // =============== + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; + + // Tab as Multi_key (Compose) + // -------------------------------------------------------------- + key { [ Tab, ISO_Left_Tab, Multi_key, ISO_Level5_Lock, NoSymbol, NoSymbol, NoSymbol, ISO_Level5_Lock ] }; + + + // Number row + // -------------------------------------------------------------- + key { [ dead_circumflex, dead_caron, U21BB, U02DE, dead_abovedot, Pointer_EnableKeys, dead_belowdot, NoSymbol ] }; + + key { [ 1, degree, onesuperior, onesubscript, ordfeminine, NoSymbol, notsign, NoSymbol ] }; + key { [ 2, section, twosuperior, twosubscript, masculine, NoSymbol, logicalor, NoSymbol ] }; + key { [ 3, U2113, threesuperior, threesubscript, numerosign, NoSymbol, logicaland, NoSymbol ] }; + key { [ 4, guillemotright, U203A, femalesymbol, NoSymbol, NoSymbol, U22A5, NoSymbol ] }; + key { [ 5, guillemotleft, U2039, malesymbol, periodcentered, NoSymbol, U2221, NoSymbol ] }; + key { [ 6, dollar, cent, U26A5, sterling, NoSymbol, U2225, NoSymbol ] }; + + key { [ 7, EuroSign, yen, U03F0, currency, NoSymbol, rightarrow, NoSymbol ] }; + key { [ 8, doublelowquotemark, singlelowquotemark, U27E8, Tab, ISO_Left_Tab, U221E, NoSymbol ] }; + key { [ 9, leftdoublequotemark, leftsinglequotemark, U27E9, KP_Divide, KP_Divide, variation, NoSymbol ] }; + key { [ 0, rightdoublequotemark, rightsinglequotemark, zerosubscript, KP_Multiply, KP_Multiply, emptyset, NoSymbol ] }; + + key { [ minus, emdash, NoSymbol, U2011, KP_Subtract, KP_Subtract, hyphen, NoSymbol ] }; + key { [ dead_grave, dead_cedilla, dead_abovering, dead_dasia, dead_diaeresis, NoSymbol, dead_macron, NoSymbol ] }; + + // Top row + // -------------------------------------------------------------- + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; + key { [ x, X, ellipsis, Greek_xi, Prior, Prior, Greek_XI, NoSymbol ] }; + key { [ v, V, underscore, NoSymbol, BackSpace, BackSpace, radical, NoSymbol ] }; + key { [ l, L, bracketleft, Greek_lambda, Up, Up, Greek_LAMBDA, NoSymbol ] }; + key { [ c, C, bracketright, Greek_chi, Delete, Delete, U2102, NoSymbol ] }; + key { [ w, W, asciicircum, Greek_omega, Next, Next, Greek_OMEGA, NoSymbol ] }; + + key { [ k, K, exclam, Greek_kappa, exclamdown, NoSymbol, multiply, NoSymbol ] }; + key { [ h, H, less, Greek_psi, KP_7, KP_7, Greek_PSI, NoSymbol ] }; + key { [ g, G, greater, Greek_gamma, KP_8, KP_8, Greek_GAMMA, NoSymbol ] }; + key { [ f, F, equal, Greek_phi, KP_9, KP_9, Greek_PHI, NoSymbol ] }; + key { [ q, Q, ampersand, U03D5, KP_Add, KP_Add, U211A, NoSymbol ] }; + + key { [ ssharp, U1E9E, U017F, Greek_finalsmallsigma, U2212, NoSymbol, jot, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; + key { [ dead_acute, dead_tilde, dead_stroke, dead_psili, dead_doubleacute, NoSymbol, dead_breve, NoSymbol ] }; + + // Middle row + // -------------------------------------------------------------- + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; + key { [ u, U, backslash, NoSymbol, Home, Home, includedin, NoSymbol ] }; + key { [ i, I, slash, Greek_iota, Left, Left, integral, NoSymbol ] }; + key { [ a, A, braceleft, Greek_alpha, Down, Down, U2200, NoSymbol ] }; + key { [ e, E, braceright, Greek_epsilon, Right, Right, U2203, NoSymbol ] }; + key { [ o, O, asterisk, Greek_omicron, End, End, elementof, NoSymbol ] }; + + key { [ s, S, question, Greek_sigma, questiondown, NoSymbol, Greek_SIGMA, NoSymbol ] }; + key { [ n, N, parenleft, Greek_nu, KP_4, KP_4, U2115, NoSymbol ] }; + key { [ r, R, parenright, Greek_rho, KP_5, KP_5, U211D, NoSymbol ] }; + key { [ t, T, minus, Greek_tau, KP_6, KP_6, partialderivative, NoSymbol ] }; + key { [ d, D, colon, Greek_delta, KP_Separator, comma, Greek_DELTA, NoSymbol ] }; + + key { [ y, Y, at, Greek_upsilon, period, KP_Decimal, nabla, NoSymbol ] }; + + // Bottom row + // -------------------------------------------------------------- + key { [ udiaeresis, Udiaeresis, numbersign, NoSymbol, Escape, Escape, union, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, dollar, U03F5, Tab, Tab, intersection, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, bar, Greek_eta, Insert, Insert, U2135, NoSymbol ] }; + key { [ p, P, asciitilde, Greek_pi, Return, Return, Greek_PI, NoSymbol ] }; + key { [ z, Z, grave, Greek_zeta, Undo, Redo, U2124, NoSymbol ] }; + + key { [ b, B, plus, Greek_beta, colon, NoSymbol, U21D0, NoSymbol ] }; + key { [ m, M, percent, Greek_mu, KP_1, KP_1, ifonlyif, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; + key { [ comma, endash, quotedbl, U03F1, KP_2, KP_2, U21D2, NoSymbol ] }; + key { [ period, enfilledcircbullet, apostrophe, U03D1, KP_3, KP_3, U21A6, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; + key { [ j, J, semicolon, Greek_theta, semicolon, NoSymbol, Greek_THETA, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; + + // Space key + // -------------------------------------------------------------- + key { [ space, space, space, nobreakspace, KP_0, KP_0, U202F, NoSymbol ] }; + + + // Keypad-keys + // =============== + + // The former Numlock key: + key { [ Tab, ISO_Left_Tab, equal, approxeq, notequal, Pointer_EnableKeys, identical, NoSymbol ] }; + + // Topmost row + // -------------------------------------------------------------- + key { [ KP_Divide, KP_Divide, division, U2300, U2215, NoSymbol, U2223, NoSymbol ] }; + key { [ KP_Multiply, KP_Multiply, U22C5, U2299, multiply, NoSymbol, U2297, NoSymbol ] }; + key { [ KP_Subtract, KP_Subtract, U2212, U2296, U2216, NoSymbol, U2238, NoSymbol ] }; + + // Top row + // -------------------------------------------------------------- + key { [ KP_7, U2714, U2195, U226A, KP_Home, KP_Home, upstile, NoSymbol ] }; + key { [ KP_8, U2718, uparrow, intersection, KP_Up, KP_Up, U22C2, NoSymbol ] }; + key { [ KP_9, dagger, U20D7, U226B, KP_Prior, KP_Prior, U2309, NoSymbol ] }; + key { [ KP_Add, KP_Add, plusminus, U2295, U2213, NoSymbol, U2214, NoSymbol ] }; + + // Middle row + // -------------------------------------------------------------- + key { [ KP_4, club, leftarrow, includedin, KP_Left, KP_Left, U2286, NoSymbol ] }; + key { [ KP_5, EuroSign, colon, U22B6, KP_Begin, KP_Begin, U22B7, NoSymbol ] }; + key { [ KP_6, U2023, rightarrow, includes, KP_Right, KP_Right, U2287, NoSymbol ] }; + + // Bottom row + // -------------------------------------------------------------- + key { [ KP_1, diamond, U2194, lessthanequal, KP_End, KP_End, downstile, NoSymbol ] }; + key { [ KP_2, heart, downarrow, union, KP_Down, KP_Down, U22C3, NoSymbol ] }; + key { [ KP_3, U2660, U21CC, greaterthanequal, KP_Next, KP_Next, U230B, NoSymbol ] }; + key { [ KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, NoSymbol ] }; + key { [ KP_Equal, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; + + // Bottommost row + // -------------------------------------------------------------- + key { [ KP_0, U2423, percent, U2030, KP_Insert, KP_Insert, U25A1, NoSymbol ] }; + key { [ KP_Separator, period, comma, minutes, KP_Delete, KP_Delete, seconds, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "neo" { + + include "de(neo_base)" + + name[Group1]= "German (Neo 2)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" +}; + +// Copied from macintosh_vndr/de +// olh@suse.de very close to MacOS map + +partial alphanumeric_keys +xkb_symbols "mac" { + + include "de" + name[Group1]= "German (Macintosh)"; + + key { [ 1, exclam, exclamdown, at ] }; + key { [ 5, percent, bracketleft ] }; + key { [ 6, ampersand, bracketright ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, braceleft, asciitilde ] }; + key { [ 9, parenright, braceright ] }; + key { [ q, Q, guillemotleft, guillemotright ] }; + key { [ r, R, registered ] }; + key { [ u, U, diaeresis, Aacute ] }; + key { [ i, I, slash, Ucircumflex ] }; + key { [ udiaeresis, Udiaeresis, periodcentered, degree ] }; + key { [ plus, asterisk, asciitilde ] }; + key { [ a, A, aring, Aring ] }; + key { [ g, G, copyright ] }; + key { [ h, H, ordfeminine ] }; + key { [ l, L, at ] }; + key { [ odiaeresis, Odiaeresis, dead_acute ] }; + key { [ n, N, asciitilde ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "mac_nodeadkeys" { + // modify the standard German mac layout to not have any dead keys + include "de(mac)" + name[Group1]= "German (Macintosh, no dead keys)"; + + key { [ asciicircum, degree, notsign ] }; + key { [ 4, dollar, onequarter, currency ] }; + key { [ acute, grave, cedilla ] }; + key { [ udiaeresis, Udiaeresis, diaeresis ] }; + key { [ plus, asterisk, asciitilde, macron ] }; + key { [ odiaeresis, Odiaeresis, acute ] }; + key { [ adiaeresis, Adiaeresis, asciicircum ] }; + + key { [ numbersign, apostrophe, rightsinglequotemark ] }; +}; + +partial alphanumeric_keys +xkb_symbols "dsb" +{ + include "latin(basic)" + name[Group1] = "Lower Sorbian"; + key { [ z, Z, zcaron, Zcaron ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ v, V, ccaron, Ccaron ] }; + key { [ n, N, nacute, Nacute ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ d, D, scaron, Scaron ] }; + key { [ f, F ] }; + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, ecaron, Ecaron ] }; + key { [ r, R, racute, Racute ] }; + key { [ t, T, U20B5, EuroSign ] }; + key { [ o, O, oacute, Oacute ] }; + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "dsb_qwertz" +{ + include "latin(basic)" + name[Group1] = "Lower Sorbian (QWERTZ)"; + key { [ y, Y ] }; + key { [ x, X ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ v, V, ccaron, Ccaron ] }; + key { [ n, N, nacute, Nacute ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ d, D, scaron, Scaron ] }; + key { [ f, F ] }; + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, ecaron, Ecaron ] }; + key { [ r, R, racute, Racute ] }; + key { [ t, T, U20B5, EuroSign ] }; + key { [ z, Z, zcaron, Zcaron ] }; + key { [ u, U, zacute, Zacute ] }; + key { [ o, O, oacute, Oacute ] }; + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "qwerty" { + + // This layout should work exactly as a de with the exception + // of 'Z' and 'Y' keys, which are in the qwerty style (ie. swapped). + // 2008 by Matej Košík + + include "de(basic)" + + name[Group1] = "German (QWERTY)"; + + key { [ z, Z, leftarrow, yen ] }; + key { [ y, Y, guillemotleft, less ] }; +}; + +// layout for Russian letters on an german keyboard +// based on US-RU layout by Ivan Popov 2005-07-17 +// adopted for german layout by Alexey Fisher 2010-08-19 + +partial alphanumeric_keys +xkb_symbols "ru" { + + include "de(basic)" + + name[Group1]= "Russian (Germany, phonetic)"; + + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_io, Cyrillic_IO, asciitilde ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, plus, asterisk ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_yu, Cyrillic_YU, numbersign, apostrophe ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + + include "level3(ralt_switch)" +}; + +// layout for Russian (recommended) letters on a german keyboard +// based on "Russisch für Deutsche, empfohlen" by B. Bendixen und H. Rothe http://russisch.urz.uni-leipzig.de/key2000.htm 2016-02-01 +// adapted for Linux by Niko Krause 2016-06-09 + +partial alphanumeric_keys +xkb_symbols "ru-recom" { + + include "de(basic)" + + name[Group1]= "Russian (Germany, recommended)"; + + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_ya, Cyrillic_YA, asciicircum, degree ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, Ukrainian_yi, Ukrainian_YI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_es, Cyrillic_ES, Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, plus, asterisk ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, numbersign, apostrophe ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + + key { [ asciitilde, question, backslash, questiondown ] }; + key { [ U0301, U0300, U0323, U0307 ] }; + + include "level3(ralt_switch)" +}; + +// layout for Russian (transliteration) letters on a german keyboard +// based on "Russisch für Deutsche, Transliteration" by B. Bendixen und H. Rothe http://russisch.urz.uni-leipzig.de/key2000.htm 2016-02-01 +// adapted for Linux by Niko Krause 2016-06-09 + +partial alphanumeric_keys +xkb_symbols "ru-translit" { + + include "de(basic)" + + name[Group1]= "Russian (Germany, transliteration)"; + + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_ya, Cyrillic_YA, asciicircum, degree ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, Ukrainian_yi, Ukrainian_YI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_es, Cyrillic_ES, Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, plus, asterisk ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, numbersign, apostrophe ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + + key { [ asciitilde, question, backslash, questiondown ] }; + key { [ U0301, U0300, U0323, U0307 ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "pl" { + + // Combined layout for entering both German and Polish symbols on a German physical + // keyboard. Based on German (no dead keys) and Polish (basic). Polish diacritics + // on AltGr+"acelnosxz". EuroSign moved to AE04 (AltGr+dollar key) to avoid conflict + // with Polish eogonek. + // + // https://github.com/kontextify/xkeyboard-config + + include "latin(type4)" + + name[Group1]= "Polish (Germany, no dead keys)"; + + include "de(nodeadkeys)" + key { [ 4, dollar, EuroSign, currency ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, eogonek, Eogonek ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ a, A, aogonek, Aogonek ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ f, F ] }; + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ n, N, nacute, Nacute ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "htcdream" { + include "inet(htcdream)" + + name[Group1]= "German"; + + //second row + key { [ q, Q, Tab, Tab ] }; + key { [ w, W, grave, grave ] }; + key { [ e, E, EuroSign, EuroSign ] }; + key { [ r, R, underscore, underscore ] }; + key { [ t, T, sterling, sterling] }; + key { [ z, Z, division, division ] }; + key { [ u, U, udiaeresis, udiaeresis ] }; + key { [ i, I, minus, minus ] }; + key { [ o, O, odiaeresis, odiaeresis ] }; + key { [ p, P, equal, equal ] }; + + //third row + key { [ a, A, adiaeresis, adiaeresis ] }; + key { [ s, S, ssharp, ssharp] }; + key { [ d ,D, backslash, backslash ] }; + key { [ f, F, braceleft, braceleft ] }; + key { [ g, G, braceright, braceright ] }; + key { [ h, H, multiply, multiply ] }; + key { [ j, J, colon, colon ] }; + key { [ k, K, plus, plus ] }; + key { [ l, L, apostrophe, apostrophe ] }; + + //forth row + key { [ y, Y, bar, bar ] }; + key { [ x, X, bracketleft, bracketleft ] }; + key { [ c, C, bracketright, bracketright ] }; + key { [ v, V, less, less ] }; + key { [ b, B, greater, greater ] }; + key { [ n, N, semicolon, semicolon ] }; + key { [ m, M, quotedbl, quotedbl ] }; + key { [ comma, comma, question, question ] }; + + //fifth row + key { [ at, at, asciitilde, asciitilde ] }; + + include "level3(alt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "tr" { + + // add turkish-specific letters to the basic German layout. + // Turkish symbols are accessible with combination of and + // 'i', 's', 'g', 'c'' (+ for capital letters). + + include "de(basic)" + + name[Group1]="Turkish (Germany)"; + + key { [ i, I, U0131, U0130 ] }; + key { [ s, S, U015F, U015E ] }; + key { [ g, G, U011F, U011E ] }; + key { [ c, C, U0E7, U0C7 ] }; + +}; + +// EXTRAS: + +partial alphanumeric_keys +xkb_symbols "us" { + include "us" + + name[Group1]="German (US, with German letters)"; + + key { [ a, A, adiaeresis, Adiaeresis ] }; + key { [ s, S, ssharp, ssharp ] }; + key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; + key { [ apostrophe, quotedbl, adiaeresis, Adiaeresis ] }; + key { [ e, E, EuroSign, EuroSign ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ bracketleft, braceleft, udiaeresis, Udiaeresis ] }; + key { [ 3, numbersign, section, section ] }; + key { [ minus, underscore, ssharp, question ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "hu" { + + // modify the basic German layout to not have any dead keys and add Hungarian letters + + include "de(basic)" + name[Group1]="German (with Hungarian letters and no dead keys)"; + + key { [ y, Y, guillemotleft, less ] }; + key { [odiaeresis, Odiaeresis, eacute, Eacute ] }; + key { [adiaeresis, Adiaeresis, aacute, Aacute] }; + key { [ e, E, EuroSign, EuroSign ] }; + key { [ z, Z, leftarrow, yen ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, odoubleacute, Odoubleacute ] }; + key { [udiaeresis, Udiaeresis, udoubleacute, Udoubleacute ] }; + key { [ plus, asterisk, asciitilde, macron ] }; + key { [ acute, grave, oacute, Oacute ] }; + key { [numbersign, apostrophe, rightsinglequotemark, grave ] }; + key { [asciicircum, degree, notsign, notsign ] }; +}; + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/de(sun_type6)" +}; + +partial alphanumeric_keys +xkb_symbols "adnw_base" { + include "de(neo_base)" + + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; + key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; + key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; + key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; + key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; + key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; + key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; + key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; + key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; + key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; + key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; + key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; + key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; + key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; + key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; + key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; + key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; + key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; + key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; + key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; + key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; + key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; + key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; + key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; + key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; + key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; + key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; + key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; + key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "adnw" { + + include "de(adnw_base)" + + name[Group1]= "German (Aus der Neo-Welt)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" +}; + +partial alphanumeric_keys +xkb_symbols "koy_base" { + include "de(neo_base)" + + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; + key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; + key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; + key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; + key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; + key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; + key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; + key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; + key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; + key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; + key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; + key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; + key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; + key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; + key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; + key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; + key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; + key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; + key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; + key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; + key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; + key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; + key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; + key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; + key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; + key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; + key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; + key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; + key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "koy" { + + include "de(koy_base)" + + name[Group1]= "German (KOY)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" +}; + +partial alphanumeric_keys +xkb_symbols "bone_base" { + include "de(neo_base)" + + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; + key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; + key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; + key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; + key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; + key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; + key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; + key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; + key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; + key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; + key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; + key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; + key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; + key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; + key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; + key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; + key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; + key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; + key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; + key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; + key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; + key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; + key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; + key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; + key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; + key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; + key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; + key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; + key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "bone" { + + include "de(bone_base)" + + name[Group1]= "German (Bone)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" +}; + +partial alphanumeric_keys +xkb_symbols "bone_eszett_home_base" { + include "de(bone_base)" + + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; + key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; + key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "bone_eszett_home" { + + include "de(bone_eszett_home_base)" + + name[Group1]= "German (Bone, eszett home row)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" +}; + +partial alphanumeric_keys +xkb_symbols "neo_qwertz_base" { + include "de(neo_base)" + + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; + key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; + key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; + key { [ minus, emdash, NoSymbol, U2011, NoSymbol, NoSymbol, hyphen, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; + key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; + key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; + key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; + key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; + key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; + key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; + key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; + key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; + key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; + key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; + key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; + key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; + key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; + key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; + key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; + key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; + key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; + key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; + key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; + key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; + key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; + key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; + key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; + key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; + key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; + key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "neo_qwertz" { + + include "de(neo_qwertz_base)" + + name[Group1]= "German (Neo qwertz)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" +}; + +partial alphanumeric_keys +xkb_symbols "neo_qwerty_base" { + include "de(neo_qwertz_base)" + + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; + key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; + key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "neo_qwerty" { + + include "de(neo_qwerty_base)" + + name[Group1]= "German (Neo qwerty)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" +}; + +partial alphanumeric_keys + xkb_symbols "lld" { + include "de(basic)" + name[Group1] = "German Ladin"; + + key { [ p, P, ediaeresis, Ediaeresis ] }; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/lk b/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/lk new file mode 100644 index 0000000..2430865 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/lk @@ -0,0 +1,130 @@ +// +//Copyright (c) 1996 Digital Equipment Corporation +// +//Permission is hereby granted, free of charge, to any person obtaining +//a copy of this software and associated documentation files (the +//"Software"), to deal in the Software without restriction, including +//without limitation the rights to use, copy, modify, merge, publish, +//distribute, sublicense, and sell copies of the Software, and to +//permit persons to whom the Software is furnished to do so, subject to +//the following conditions: +// +//The above copyright notice and this permission notice shall be included +//in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, +//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +//THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of the Digital Equipment +//Corporation shall not be used in advertising or otherwise to promote +//the sale, use or other dealings in this Software without prior written +//authorization from Digital Equipment Corporation. +// +// HISTORY +// Log: lk,v +// Revision 1.2 1996/06/18 09:10:09 erik +// use flags correctly, assorted cleanups and consortium fixes +// +// Revision 1.1.2.2 1995/03/10 17:16:52 William_Walker +// Rename to avoid name conflicts with XKB stuff +// [1995/03/10 17:10:33 William_Walker] +// +// Revision 1.1.2.2 1994/10/31 15:22:00 William_Walker +// New experimental version. +// [1994/10/31 14:48:37 William_Walker] +// +// EndLog +// +// @(#)RCSfile: lk,v Revision: 1.2 (DEC) Date: 1996/01/24 12:14:58 +// +// Symbols common to all the LK-style keyboards. +// +default xkb_symbols "common" { + + // Modifier mappings + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control { Control_L, Control_R }; + modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; + modifier_map Mod2 { Num_Lock }; + modifier_map Mod3 { Scroll_Lock }; + + // Additional alphanumeric keys + key { [ less, greater ] }; + key { [ Alt_L, Meta_L ] }; + + // "Function" keys + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + key { [ Escape, F11 ] }; + key { [ F12 ] }; + key { [ F13 ] }; + key { [ F14 ] }; + key { [ F17 ] }; + key { [ F18 ] }; + key { [ F19 ] }; + key { [ F20 ] }; + + // "Editing" keys + key { [ Help ] }; + key { [ Menu ] }; + key { [ Find ] }; + key { [ Insert ] }; + key { [ Delete ] }; + key { [ Select ] }; + key { [ Prior ] }; + key { [ Next ] }; + + key { [ Up ] }; + key { [ Left ] }; + key { [ Down ] }; + key { [ Right ] }; + + // "Keypad" keys + key { + type= "SHIFT+ALT", + symbols[Group1]=[ KP_F1,Pointer_EnableKeys ] + }; + key { [ KP_F2 ] }; + key { [ KP_F3 ] }; + key { [ KP_F4 ] }; + + key { [ KP_Separator ] }; + key { [ KP_Subtract ] }; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + key { [ KP_Enter ] }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; +}; + +xkb_symbols "lk401" { + include "symbols/digital_vndr/lk(common)" + key { [ Alt_R, Meta_R ] }; + key { [ Multi_key ] }; + key { [ Multi_key ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/pc b/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/pc new file mode 100644 index 0000000..f50d4cd --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/pc @@ -0,0 +1,175 @@ +// +//Copyright (c) 1996 Digital Equipment Corporation +// +//Permission is hereby granted, free of charge, to any person obtaining +//a copy of this software and associated documentation files (the +//"Software"), to deal in the Software without restriction, including +//without limitation the rights to use, copy, modify, merge, publish, +//distribute, sublicense, and sell copies of the Software, and to +//permit persons to whom the Software is furnished to do so, subject to +//the following conditions: +// +//The above copyright notice and this permission notice shall be included +//in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, +//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +//THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of the Digital Equipment +//Corporation shall not be used in advertising or otherwise to promote +//the sale, use or other dealings in this Software without prior written +//authorization from Digital Equipment Corporation. +// +// HISTORY +// Log +// Revision 1.2 1996/06/18 09:10:12 erik +// use flags correctly, assorted cleanups and consortium fixes +// +// Revision 1.1.6.4 1995/12/19 19:55:58 William_Walker +// Update to XKB 0.65 +// [1995/12/17 02:37:07 William_Walker] +// +// Revision 1.1.6.3 1995/10/25 21:01:09 William_Walker +// Make sure we use DIN 2137 and VT510 Spec for Group Semantics +// [1995/10/23 15:49:03 William_Walker] +// +// Revision 1.1.6.2 1995/08/07 17:40:40 William_Walker +// Upgrade XKB to protocol 0.62 (dual submit from decx11) +// [1995/08/06 14:06:32 William_Walker] +// +// Revision 1.1.2.7 1995/08/05 15:25:57 William_Walker +// Sync up with Erik's pool. +// [1995/08/03 20:17:15 William_Walker] +// +// Revision 1.1.2.6 1995/06/27 12:18:25 William_Walker +// Add LK201 and LK450 support as well as TW and DP variants. +// [1995/06/26 20:29:52 William_Walker] +// +// Revision 1.1.2.5 1995/06/08 17:10:28 William_Walker +// Make RALT default to Mode_switch +// [1995/06/08 17:08:50 William_Walker] +// +// Revision 1.1.2.4 1995/06/05 19:24:14 William_Walker +// New file. I love keymaps. +// [1995/06/05 18:17:03 William_Walker] +// +// EndLog +// +// @(#)RCSfile: pc Revision: /main/4 (DEC) Date: 1996/01/24 12:15:02 +// + +// ************************************************************** +// * * +// * The symbols common to all Extended PC layouts. * +// * * +// ************************************************************** +xkb_symbols "pc" { + + // Modifier mappings + // + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control { Control_L, Control_R }; + modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; + modifier_map Mod3 { Mode_switch }; + modifier_map Mod4 { Num_Lock }; + modifier_map Mod5 { Scroll_Lock }; + + // Common keys + // + key { [ BackSpace, Delete ] }; + key { [ Tab, ISO_Left_Tab ] }; + key { [ Caps_Lock ] }; + key { [ Return ] }; + key { [ Shift_L ] }; + key { [ Shift_R ] }; + key { [ Control_L ] }; + key { [ Alt_L, Meta_L ] }; + key { [ space ] }; + key { [ Mode_switch ] }; + key { [ Control_R ] }; + + // "Function" keys + // + key { [ Escape ] }; + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + key { [ F11 ] }; + key { [ F12 ] }; + key { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key { [ Scroll_Lock ] }; + key { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + + // "Editing" keys + // + key { [ Insert ] }; + key { [ Home ] }; + key { [ Prior ] }; + key { [ Delete ] }; + key { [ End ] }; + key { [ Next ] }; + + key { [ Up ] }; + key { [ Left ] }; + key { [ Down ] }; + key { [ Right ] }; + + // "Keypad" keys + // + key { + type= "SHIFT+ALT", + symbols[Group1]= [ Num_Lock,Pointer_EnableKeys] + }; + key { [ KP_Divide ] }; + key { [ KP_Multiply ] }; + key { [ KP_Subtract ] }; + + key { [ KP_Home, KP_7 ] }; + key { [ KP_Up, KP_8 ] }; + key { [ KP_Prior, KP_9 ] }; + key { [ KP_Add ] }; + + key { [ KP_Left, KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_Right, KP_6 ] }; + + key { [ KP_End, KP_1 ] }; + key { [ KP_Down, KP_2 ] }; + key { [ KP_Next, KP_3 ] }; + key { [ KP_Enter ] }; + + key { [ KP_Insert, KP_0 ] }; + key { [ KP_Delete, KP_Decimal ] }; + + // Key to support Lock-Down Modifier descriptions for R5 + // + key { [ NoSymbol ] }; +}; + +xkb_symbols "pc104" { + include "digital_vndr/pc(pc)" + + replace key { [ Alt_L ] }; + key { [ Meta_L ] }; + key { [ Meta_R ] }; + key { [ Menu ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/us b/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/us new file mode 100644 index 0000000..e737e4e --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/us @@ -0,0 +1,211 @@ +// +//Copyright (c) 1996 Digital Equipment Corporation +// +//Permission is hereby granted, free of charge, to any person obtaining +//a copy of this software and associated documentation files (the +//"Software"), to deal in the Software without restriction, including +//without limitation the rights to use, copy, modify, merge, publish, +//distribute, sublicense, and sell copies of the Software, and to +//permit persons to whom the Software is furnished to do so, subject to +//the following conditions: +// +//The above copyright notice and this permission notice shall be included +//in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, +//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +//THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of the Digital Equipment +//Corporation shall not be used in advertising or otherwise to promote +//the sale, use or other dealings in this Software without prior written +//authorization from Digital Equipment Corporation. +// +// HISTORY +// Log +// Revision 1.2 1996/06/18 09:10:16 erik +// use flags correctly, assorted cleanups and consortium fixes +// +// Revision 1.1.6.3 1995/12/19 19:56:37 William_Walker +// Update to XKB 0.65 +// [1995/12/17 02:37:44 William_Walker] +// +// Revision 1.1.6.2 1995/10/25 21:01:25 William_Walker +// Add pc104-key support +// [1995/10/23 15:46:27 William_Walker] +// +// Revision 1.1.2.7 1995/06/27 12:18:40 William_Walker +// Add LK201 and LK450 support as well as TW and DP variants. +// [1995/06/26 20:30:33 William_Walker] +// +// Revision 1.1.2.6 1995/06/09 20:55:20 William_Walker +// Add VT105 layout support and ISO group support +// [1995/06/09 20:43:05 William_Walker] +// +// Revision 1.1.2.5 1995/06/08 21:05:49 William_Walker +// Use ISO_Next_Group instead of grouplock +// [1995/06/08 21:03:56 William_Walker] +// +// Revision 1.1.2.4 1995/06/05 19:25:00 William_Walker +// New file. I love keymaps. +// [1995/06/05 18:17:54 William_Walker] +// +// EndLog +// +// @(#)RCSfile: us Revision: /main/4 (DEC) Date: 1996/01/24 12:15:05 +// + +// ************************************************************** +// * * +// * Symbols for en_US.ISO8859-1 - English for U.S. * +// * * +// ************************************************************** + +xkb_symbols "us" { + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + key { [ backslash, bar ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; +}; + +// ************************************************************** +// * * +// * The VT105 layouts * +// * * +// * NOTES: The typewriter (TW) and dataprocessing (DP) keys * +// * for the VT108 layout are identical for the US. * +// * * +// ************************************************************** +xkb_symbols "vt105-tw" { + include "digital_vndr/us(us)" + include "digital_vndr/vt(vt105)" + override key { + symbols[Group1]= [ 3, numbersign ], + symbols[Group2]= [ sterling ] + }; + key { [ less, greater ] }; +}; + +xkb_symbols "vt105-dp" { include "digital_vndr/us(vt105-tw)" }; +xkb_symbols "vt105" { include "digital_vndr/us(vt105-tw)" }; + +// ************************************************************** +// * * +// * The VT108 layouts - based upon the LK401-AA * +// * * +// * NOTES: The typewriter (TW) and dataprocessing (DP) keys * +// * for the VT108 layout are identical for the US. * +// * * +// ************************************************************** +xkb_symbols "vt108-tw" { + include "digital_vndr/us(us)" + include "digital_vndr/vt(vt108)" + replace key { [ Multi_key ] }; + override key { + symbols[Group1]= [ 3, numbersign ], + symbols[Group2]= [ sterling ] + }; + key { [ less, greater ] }; +}; + +xkb_symbols "vt108-dp" { include "digital_vndr/us(vt108-tw)" }; +xkb_symbols "vt108" { include "digital_vndr/us(vt108-tw)" }; + +// ************************************************************** +// * * +// * The "unix" layouts - based upon the LK421-AA * +// * * +// * NOTES: The "unix" keyboard emits the same keycodes as the * +// * LK401, but is a shorter keyboard that uses an * +// * "extend" key. To make life easier, we map * +// * to Escape so users do not have to press Extend+F11 * +// * to get Escape. * +// * * +// ************************************************************** +xkb_symbols "unix" { + include "digital_vndr/us(vt108)" + override key { [ Escape ] }; + override key { [ grave, asciitilde ] }; +}; + +// ************************************************************** +// * * +// * The "pcxal" layouts * +// * * +// * NOTES: The pcxal layouts are pretty much standardized for * +// * the US and use a 101-key keyboard. * +// * * +// ************************************************************** +xkb_symbols "pcxalga" { + include "digital_vndr/pc(pc)" + include "digital_vndr/us(us)" + replace key { [ Alt_R, Meta_R ] }; +}; + +xkb_symbols "pcxal" { include "digital_vndr/us(pcxalga)" }; +xkb_symbols "pcxalaa" { include "digital_vndr/us(pcxalga)" }; +xkb_symbols "pcxalfa" { include "digital_vndr/us(pcxalga)" }; +xkb_symbols "pcxalka" { include "digital_vndr/us(pcxalga)" }; +xkb_symbols "lk44x" { include "digital_vndr/us(pcxalga)" }; + +// ************************************************************** +// * * +// * The "pc104" layouts. * +// * * +// ************************************************************** +xkb_symbols "pc104" { + include "digital_vndr/pc(pc104)" + include "digital_vndr/us(us)" + replace key { [ Alt_R ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/vt b/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/vt new file mode 100644 index 0000000..13f7941 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/digital_vndr/vt @@ -0,0 +1,158 @@ +// +//Copyright (c) 1996 Digital Equipment Corporation +// +//Permission is hereby granted, free of charge, to any person obtaining +//a copy of this software and associated documentation files (the +//"Software"), to deal in the Software without restriction, including +//without limitation the rights to use, copy, modify, merge, publish, +//distribute, sublicense, and sell copies of the Software, and to +//permit persons to whom the Software is furnished to do so, subject to +//the following conditions: +// +//The above copyright notice and this permission notice shall be included +//in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +//OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, +//DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +//THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of the Digital Equipment +//Corporation shall not be used in advertising or otherwise to promote +//the sale, use or other dealings in this Software without prior written +//authorization from Digital Equipment Corporation. +// +// HISTORY +// Log +// Revision 1.2 1996/06/18 09:10:19 erik +// use flags correctly, assorted cleanups and consortium fixes +// +// Revision 1.1.6.2 1995/12/19 19:56:39 William_Walker +// Update to XKB 0.65 +// [1995/12/17 02:37:47 William_Walker] +// +// Revision 1.1.2.5 1995/07/11 21:20:50 William_Walker +// Make RALT act as RALT +// [1995/07/11 21:18:28 William_Walker] +// +// Revision 1.1.2.4 1995/06/27 12:18:41 William_Walker +// Add LK201 and LK450 support as well as TW and DP variants. +// [1995/06/26 20:30:37 William_Walker] +// +// Revision 1.1.2.3 1995/06/09 20:55:21 William_Walker +// Add VT105 layout support and ISO group support +// [1995/06/09 20:43:09 William_Walker] +// +// Revision 1.1.2.2 1995/06/05 19:25:04 William_Walker +// New file. I love keymaps. +// [1995/06/05 18:17:58 William_Walker] +// +// EndLog +// +// @(#)RCSfile: vt Revision: /main/3 (DEC) Date: 1996/01/24 12:15:08 +// +xkb_symbols "vt105" { + + // Modifier mappings + // + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control { Control_L, Control_R }; + modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; + modifier_map Mod3 { Mode_switch }; + + // Common keys + // + key { [ Delete ] }; + key { [ Tab ] }; + key { [ Return ] }; + key { [ Control_L ] }; + key { [ Caps_Lock ] }; + key { [ Shift_L ] }; + key { [ Shift_R ] }; + key { [ Alt_L, Meta_L ] }; + key { [ space ] }; + + // "Function" keys + // + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + key { [ Escape, F11 ] }; + key { [ F12 ] }; + key { [ F13 ] }; + key { [ F14 ] }; + key { [ F17 ] }; + key { [ F18 ] }; + key { [ F19 ] }; + key { [ F20 ] }; + + // "Editing" keys + // + key { [ Help ] }; + key { [ Menu ] }; + key { [ Find ] }; + key { [ Insert ] }; + key { [ apLineDel ] }; + key { [ Select ] }; + key { [ Prior ] }; + key { [ Next ] }; + + key { [ Up ] }; + key { [ Left ] }; + key { [ Down ] }; + key { [ Right ] }; + + // "Keypad" keys + // + key { + type= "SHIFT+ALT", + symbols[Group1]= [ KP_F1,Pointer_EnableKeys ] + }; + key { [ KP_F2 ] }; + key { [ KP_F3 ] }; + key { [ KP_F4 ] }; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + key { [ KP_Subtract ] }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + key { [ KP_Separator ] }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + key { [ KP_Enter ] }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; + + // Key to support Lock-Down Modifier descriptions for R5 + // + key { [ NoSymbol ] }; +}; + +xkb_symbols "vt108" { + + include "digital_vndr/vt(vt105)" + + replace key { [ Mode_switch ] }; + + key { [ Alt_L, Meta_L ] }; + key { [ Alt_R, Meta_R ] }; + key { [ Multi_key ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/dk b/squashfs-root/usr/share/X11/xkb/symbols/dk new file mode 100644 index 0000000..7cd02d8 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/dk @@ -0,0 +1,88 @@ +// based on a keyboard map from an 'xkb/symbols/dk' file + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin(type2)" + + name[Group1]="Danish"; + + key { [ plus, question, plusminus, questiondown ] }; + key { [dead_acute, dead_grave, bar, brokenbar ] }; + + + key { [ ae, AE, dead_acute, dead_doubleacute ] }; + key { [ oslash, Ooblique, dead_circumflex, dead_caron ] }; + key { [ onehalf, section, threequarters, paragraph ] }; + + key { [apostrophe, asterisk, dead_doubleacute, multiply ] }; + + key { [ less, greater, backslash, notsign ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + include "dk(basic)" + + name[Group1]="Danish (no dead keys)"; + + key { [ acute, grave, bar, ogonek ] }; + key { [ aring, Aring, diaeresis, degree ] }; + key { [ diaeresis, asciicircum, asciitilde, macron ] }; + key { [ ae, AE, acute, doubleacute ] }; + key { [ oslash, Ooblique, asciicircum, caron ] }; + key { [apostrophe, asterisk, doubleacute, multiply ] }; + key { [ comma, semicolon, cedilla, ogonek ] }; + key { [ period, colon, periodcentered, abovedot ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "winkeys" { + + include "dk(basic)" + name[Group1] = "Danish (Win keys)"; + include "eurosign(5)" +}; + +// Copied from macintosh_vndr/dk +partial alphanumeric_keys +xkb_symbols "mac" { + + include "dk" + name[Group1]= "Danish (Macintosh)"; + + key { [ space, space, nobreakspace, nobreakspace ] }; + key { [ minus, underscore, hyphen, macron ] }; + include "kpdl(dot)" +}; + + +partial alphanumeric_keys +xkb_symbols "mac_nodeadkeys" { + include "dk(mac)" + name[Group1]= "Danish (Macintosh, no dead keys)"; + + key { [ acute, grave, bar, ogonek ] }; + key { [diaeresis, asciicircum, asciitilde, dead_macron ] }; +}; + +partial alphanumeric_keys +xkb_symbols "dvorak" { + include "no(dvorak)" + + name[Group1]= "Danish (Dvorak)"; + key { [ asciitilde, asciicircum, dead_diaeresis, dead_tilde ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/dk(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/dz b/squashfs-root/usr/share/X11/xkb/symbols/dz new file mode 100644 index 0000000..9911ea8 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/dz @@ -0,0 +1,135 @@ +// Tamazight en caractères latin +// Noureddine LOUAHEDJ +// louahedj@noureddine.me + +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ +// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ A Æ │ Z  │ E ¢ │ R Ṛ │ T Ṭ │ Y Ÿ │ U Û │ I Î │ O Ɛ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃ +// ┃Tab ↹ ┃ a æ │ z â │ e € │ r ṛ │ t ṭ │ y ÿ │ u û │ i î │ o ɛ │ p ô │ ^ ~ │ $ ø ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ Q Ä │ S Ṣ │ D Ḍ │ F ‚ │ G Ǧ │ H Ḥ │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄ ┃ ┃ +// ┃Maj ⇬ ┃ q ä │ s ṣ │ d ḍ │ f ‘ │ g ǧ │ h ḥ │ j ü │ k ï │ l ŀ │ m ö │ ù ' │ * ` ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ > ≥ │ W “ │ X ” │ C Č │ V Ɣ │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃ ┃ +// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c č │ v ɣ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + + +default partial alphanumeric_keys +xkb_symbols "la" { + + include "fr(oss)" + + name[Group1]="Berber (Algeria, Latin)"; + + + key { [ z, Z, 0x1001E93, 0x1001E92 ] }; // z Z ẓ Ẓ + key { [ r, R, 0x1001E5B, 0x1001E5A ] }; // r R ṛ Ṛ + key { [ t, T, 0x1001E6D, 0x1001E6C ] }; // t T ṭ Ṭ + key { [ o, O, 0x100025B, 0x1000190 ] }; // o O ɛ Ɛ + key { [ s, S, 0x1001E63, 0x1001E62 ] }; // s s ṣ Ṣ + key { [ d, D, 0x1001E0D, 0x1001E0C ] }; // d D ḍ Ḍ + key { [ g, G, 0x10001E7, 0x10001E6 ] }; // g G ǧ Ǧ + key { [ h, H, 0x1001E25, 0x1001E24 ] }; // h H ḥ Ḥ + key { [ c, C, 0x100010D, 0x100010C ] }; // c C č Č + key { [ v, V, 0x1000263, 0x1000194 ] }; // v V ɣ Ɣ + + include "level3(ralt_switch)" +}; + + +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ │ 1 ̨ │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ + ┃ ⌫ Retour┃ +// │ ² │ & │ ~ │ " # │ ' { │ ( [ │ - | │ │ _ \ │ ^ │ @ │ ) ] │ = } ┃ arrière┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ │ ⵥ │ ⵦ │ ⵕ │ ⵟ │ │ │ │ ⵧ │ │ │ £ Ø ┃Entrée ┃ +// ┃Tab ↹ ┃ ⴰ │ ⵣ ⵤ │ ⴻ │ ⵔ │ ⵜ ⵝ │ ⵢ │ ⵓ │ ⵉ │ ⵄ │ ⵃ │ ⵯ │ $ ø ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ ⵈ │ ⵚ │ ⴹ ⴺ │ │ ⴵ ⴶ │ ⵁ │ ⵋ │ ⴿ │ │ │ % Ù │ µ ̄¯ ┃ ┃ +// ┃Maj ⇬ ┃ ⵇ │ ⵙ │ ⴷ ⴸ │ ⴼ │ ⴳ ⴴ │ ⵀ ⵂ │ ⵊ ⵌ │ ⴽ ⴾ │ ⵍ │ ⵎ │ ù ´ │ * ` ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ > ¦ │ │ ⵆ │ ⵞ │ ⵗ ⵠ │ ⴲ │ ⵐ │ ? … │ . ⋅ │ / ∕ │ § − ┃ ┃ +// ┃Shift ⇧┃ < | │ ⵡ │ ⵅ │ ⵛ │ ⵖ ⵘ │ ⴱ ⵒ │ ⵏ ⵑ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ␣ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial alphanumeric_keys +xkb_symbols "ber" { + + name[Group1]="Berber (Algeria, Tifinagh)"; + + // First row + key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸ + key { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨ + key { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É + key { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘ + key { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin) + key { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin) + key { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable) + key { [ egrave, 7, grave, Egrave ] }; // è 7 ` È + key { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™ + key { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç + key { [ agrave, 0, at, Agrave ] }; // à 0 @ À + key { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠ + key { [ equal, plus, braceright, plusminus ] }; // = + } ± + + // Second row + key { [ 0x1002D30 ] }; // ⴰ + key { [ 0x1002D63, 0x1002D65, 0x1002D64 ] }; // ⵣ ⵥ ⵤ + key { [ 0x1002D3B, 0x1002D66 ] }; // ⴻ ⵦ + key { [ 0x1002D54, 0x1002D55 ] }; // ⵔ ⵕ + key { [ 0x1002D5C, 0x1002D5F, 0x1002D5D ] }; // ⵜ ⵟ ⵝ + key { [ 0x1002D62 ] }; // ⵢ + key { [ 0x1002D53 ] }; // ⵓ + key { [ 0x1002D49 ] }; // ⵉ + key { [ 0x1002D44, 0x1002D67 ] }; // ⵄ ⵧ + key { [ 0x1002D43 ] }; // ⵃ + key { [ 0x1002D6F ] }; // ⵯ + key { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø + + // Third row + key { [ 0x1002D47, 0x1002D48 ] }; // ⵇ ⵈ + key { [ 0x1002D59, 0x1002D5A ] }; // ⵙ ⵚ + key { [ 0x1002D37, 0x1002D39, 0x1002D38, 0x1002D3A ] }; // ⴷ ⴹ ⴸ ⴺ + key { [ 0x1002D3C ] }; // ⴼ + key { [ 0x1002D33, 0x1002D35, 0x1002D34, 0x1002D36 ] }; // ⴳ ⴵ ⴴ ⴶ + key { [ 0x1002D40, 0x1002D41, 0x1002D42 ] }; // ⵀ ⵁ ⵂ + key { [ 0x1002D4A, 0x1002D4B, 0x1002D4C ] }; // ⵊ ⵋ ⵌ Ü + key { [ 0x1002D3D, 0x1002D3F, 0x1002D3E ] }; // ⴽ ⴿ ⴾ + key { [ 0x1002D4D ] }; // ⵍ + key { [ 0x1002D4E ] }; // ⵎ + key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù + key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ + + // Fourth row + key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ + key { [ 0x1002D61 ] }; // ⵡ + key { [ 0x1002D45, 0x1002D46 ] }; // ⵅ ⵆ + key { [ 0x1002D5B, 0x1002D5E ] }; // ⵛ ⵞ + key { [ 0x1002D56, 0x1002D57, 0x1002D58, 0x1002D60 ] }; // ⵖ ⵗ ⵘ ⵠ + key { [ 0x1002D31, 0x1002D32, 0x1002D52 ] }; // ⴱ ⴲ ⵒ + key { [ 0x1002D4F, 0x1002D50, 0x1002D51 ] }; // ⵏ ⵐ ⵑ + key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … + key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅ + key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕ + key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ − + + include "level3(ralt_switch)" +}; + +// Arabic AZERTY with modern Latin digits +partial alphanumeric_keys +xkb_symbols "ar" { + include "ara(azerty)" + + name[Group1]="Arabic (Algeria)"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ee b/squashfs-root/usr/share/X11/xkb/symbols/ee new file mode 100644 index 0000000..b30eebc --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ee @@ -0,0 +1,108 @@ +// based on +// Estonian XKB-keymap by Ville Hallik +// + +default partial alphanumeric_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple Estonian keyboard + // This layout conforms to both EVS8:1993 and EVS8:2000 standards + + include "latin(type4)" + + name[Group1]="Estonian"; + + key { [ 3, numbersign, sterling, sterling ] }; + key { [ 4, currency, dollar, dollar ] }; + key { [ plus, question, backslash, questiondown ] }; + key { [dead_acute, dead_grave, grave, apostrophe ] }; + + key { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] }; + key { [ otilde, Otilde, section, dead_macron ] }; + + key { [ s, S, scaron, Scaron ] }; + key { [odiaeresis, Odiaeresis, dead_acute, dead_doubleacute ] }; + key { [adiaeresis, Adiaeresis, asciicircum, dead_caron ] }; + key { [dead_caron, dead_tilde, notsign, notsign ] }; + + key { [apostrophe, asterisk, onehalf, dead_breve ] }; + key { [ z, Z, zcaron, Zcaron ] }; + key { [ comma, semicolon, less, multiply ] }; + key { [ period, colon, greater, division ] }; + key { [ minus, underscore, bar, abovedot ] }; + + include "level3(ralt_switch)" + include "eurosign(e)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // Modifies the basic Estonian layout to eliminate all dead keys + + include "ee(basic)" + name[Group1]="Estonian (no dead keys)"; + + key { [asciicircum,asciitilde ] }; + key { [apostrophe, grave ] }; + key { [udiaeresis, Udiaeresis, diaeresis, degree ] }; + key { [ otilde, Otilde, section, macron ] }; + key { [odiaeresis, Odiaeresis, acute, doubleacute ] }; + key { [adiaeresis, Adiaeresis, asciicircum, caron ] }; + key { [apostrophe, asterisk, onehalf, breve ] }; + key { [ minus, underscore, dead_belowdot, abovedot ] }; +}; + +// Dvorak with Estonian characters +partial alphanumeric_keys +xkb_symbols "dvorak" { + include "us(dvorak)" + name[Group1]= "Estonian (Dvorak)"; + + key { [ 3, numbersign, sterling ] }; + key { [ 4, dollar, section, currency ] }; + key { [ 8, asterisk, onehalf ] }; + + key { [ a, A, adiaeresis, Adiaeresis ] }; + key { [ o, O, otilde, Otilde ] }; + key { [ e, E, odiaeresis, Odiaeresis ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ s, S, scaron, Scaron ] }; + key { [ z, Z, zcaron, Zcaron ] }; + + include "level3(ralt_switch)" + include "kpdl(comma)" + include "eurosign(5)" +}; + +// Estonian few characters on basic US keymap. +// by Elan Ruusamäe +partial alphanumeric_keys +xkb_symbols "us" { + include "us(euro)" + name[Group1] = "Estonian (US, with Estonian letters)"; + + // ž, Ž + key { [ z, Z, zcaron, Zcaron ] }; + // ¢ + key { [ c, C, cent, cent ] }; + // š, Š + key { [ s, S, scaron, Scaron ] }; + key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; + key { [ apostrophe, quotedbl, adiaeresis, Adiaeresis ] }; + key { [ bracketleft, braceleft, udiaeresis, Udiaeresis ] }; + key { [ bracketright, braceright, otilde, Otilde ] }; + // £ + key { [ 3, numbersign, sterling, sterling ] }; + + include "level3(ralt_switch)" + include "eurosign(e)" +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/ee(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/empty b/squashfs-root/usr/share/X11/xkb/symbols/empty new file mode 100644 index 0000000..acdd677 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/empty @@ -0,0 +1,4 @@ +default partial alphanumeric_keys modifier_keys +xkb_symbols "basic" { + name[Group1]= "Empty"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/epo b/squashfs-root/usr/share/X11/xkb/symbols/epo new file mode 100644 index 0000000..1d40009 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/epo @@ -0,0 +1,150 @@ +// Esperanto keyboard maps -- "Ekverto" +// +// Ekverto A ("legacy") (2004-01-10) +// Chusslove Illich (Ĉaslavo Iliĉo) +// +// Ekverto B ("basic") (2006-12-02) +// Benno Schulenberg (Beno Sĥilenberĥ) +// Chusslove Illich (Ĉaslavo Iliĉo) + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "us(basic)" + name[Group1]= "Esperanto"; + + key.type[Group1] = "FOUR_LEVEL_ALPHABETIC"; + + key { [ scircumflex, Scircumflex, q, Q ] }; + key { [ gcircumflex, Gcircumflex, w, W ] }; + key { [ ccircumflex, Ccircumflex, x, X ] }; + key { [ ubreve, Ubreve, y, Y ] }; + + key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] }; + key { [ hcircumflex, Hcircumflex, bracketright, braceright ] }; + + key { [ o, O, braceleft, braceleft ] }; + key { [ p, P, braceright, braceright ] }; + + key { [ a, A, leftsinglequotemark, NoSymbol ] }; + key { [ s, S, rightsinglequotemark, NoSymbol ] }; + key { [ d, D, leftdoublequotemark, NoSymbol ] }; + key { [ f, F, rightdoublequotemark, NoSymbol ] }; + + key { [ n, N, endash, endash ] }; + key { [ m, M, emdash, emdash ] }; + + key.type[Group1] = "FOUR_LEVEL"; + + key { [ 5, percent, EuroSign, EuroSign ] }; + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "legacy" { + + name[Group1]= "Esperanto (displaced semicolon and quote, obsolete)"; + + key.type[Group1] = "FOUR_LEVEL"; + + key { [ grave, asciitilde, NoSymbol, NoSymbol ] }; + key { [ 1, exclam, NoSymbol, NoSymbol ] }; + key { [ 2, quotedbl, NoSymbol, NoSymbol ] }; + key { [ 3, numbersign, NoSymbol, NoSymbol ] }; + key { [ 4, dollar, NoSymbol, NoSymbol ] }; + key { [ 5, percent, NoSymbol, NoSymbol ] }; + key { [ 6, apostrophe, NoSymbol, NoSymbol ] }; + key { [ 7, ampersand, NoSymbol, NoSymbol ] }; + key { [ 8, asterisk, NoSymbol, NoSymbol ] }; + key { [ 9, parenleft, NoSymbol, NoSymbol ] }; + key { [ 0, parenright, NoSymbol, NoSymbol ] }; + key { [ minus, underscore, NoSymbol, NoSymbol ] }; + key { [ equal, plus, NoSymbol, NoSymbol ] }; + + key { [ comma, semicolon, NoSymbol, NoSymbol ] }; + key { [ period, colon, NoSymbol, NoSymbol ] }; + key { [ slash, question, NoSymbol, NoSymbol ] }; + + key { [ bracketleft, braceleft, NoSymbol, NoSymbol ] }; + key { [ bracketright, braceright, NoSymbol, NoSymbol ] }; + + key { [ backslash, bar, NoSymbol, NoSymbol ] }; + key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; + + key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ scircumflex, Scircumflex, at, NoSymbol ] }; + key { [ jcircumflex, Jcircumflex, asciicircum, NoSymbol ] }; + key { [ e, E, EuroSign, NoSymbol ] }; + key { [ r, R, emdash, NoSymbol ] }; + key { [ t, T, endash, NoSymbol ] }; + key { [ gcircumflex, Gcircumflex, NoSymbol, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol ] }; + key { [ i, I, NoSymbol, NoSymbol ] }; + key { [ o, O, NoSymbol, NoSymbol ] }; + key { [ p, P, NoSymbol, NoSymbol ] }; + + key { [ a, A, less, NoSymbol ] }; + key { [ s, S, greater, NoSymbol ] }; + key { [ d, D, leftdoublequotemark, NoSymbol ] }; + key { [ f, F, rightdoublequotemark, NoSymbol ] }; + key { [ g, G, NoSymbol, NoSymbol ] }; + key { [ h, H, NoSymbol, NoSymbol ] }; + key { [ j, J, NoSymbol, NoSymbol ] }; + key { [ k, K, NoSymbol, NoSymbol ] }; + key { [ l, L, NoSymbol, NoSymbol ] }; + key { [ ubreve, Ubreve, NoSymbol, NoSymbol ] }; + key { [ hcircumflex, Hcircumflex, NoSymbol, NoSymbol ] }; + + key { [ z, Z, leftsinglequotemark, NoSymbol ] }; + key { [ ccircumflex, Ccircumflex, rightsinglequotemark, NoSymbol ] }; + key { [ c, C, NoSymbol, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol ] }; + key { [ b, B, NoSymbol, NoSymbol ] }; + key { [ n, N, NoSymbol, NoSymbol ] }; + key { [ m, M, NoSymbol, NoSymbol ] }; + + include "level3(ralt_switch)" +}; + +// Add the Esperanto supersigned letters to their related keys on a Qwerty keyboard. +// This is a generic "component" that is not used by the other layouts in this file, +// but is meant to be applied to any Qwerty layout. If you have any questions, ask +// J. Pablo Fernández . +partial +xkb_symbols "qwerty" { + key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; + key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; + key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; + key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; + key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; + key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; +}; + +// Add the Esperanto supersigned letters to their related keys in a +// Dvorak layout. Similar comment as above applies. +partial +xkb_symbols "dvorak" { + key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; + key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; + key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; + key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; + key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; + key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; +}; + +// Add the Esperanto supersigned letters to their related keys in a +// Colemak layout. Similar comment as above applies. +partial +xkb_symbols "colemak" { + key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; + key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; + key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; + key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; + key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; + key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/es b/squashfs-root/usr/share/X11/xkb/symbols/es new file mode 100644 index 0000000..4786f80 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/es @@ -0,0 +1,266 @@ +// Modified for a real Spanish keyboard by Jon Tombs. + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin(type4)" + + name[Group1]="Spanish"; + + key { [ 1, exclam, bar, exclamdown ] }; + key { [ 3, periodcentered, numbersign, sterling ] }; + key { [ 4, dollar, asciitilde, dollar ] }; + key { [ 6, ampersand, notsign, fiveeighths ] }; + key { [apostrophe, question, backslash, questiondown ] }; + key { [exclamdown, questiondown, dead_tilde, asciitilde ] }; + + key { [dead_grave, dead_circumflex, bracketleft, dead_abovering ] }; + key { [ plus, asterisk, bracketright, dead_macron ] }; + + key { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] }; + key { [dead_acute, dead_diaeresis, braceleft, braceleft ] }; + key { [ masculine, ordfeminine, backslash, backslash ] }; + + key { [ ccedilla, Ccedilla, braceright, dead_breve ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "winkeys" { + + include "es(basic)" + name[Group1]="Spanish (Win keys)"; + include "eurosign(5)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + + include "es(basic)" + + key { [dead_acute, dead_diaeresis, braceleft, braceleft ] }; + key { [dead_grave, dead_circumflex, bracketleft, dead_abovering ] }; +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + + include "es(Sundeadkeys)" + + name[Group1]="Spanish (with Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + include "es(basic)" + + name[Group1]="Spanish (no dead keys)"; + + key { [ grave, asciicircum, bracketleft, degree ] }; + key { [ plus, asterisk, bracketright, macron ] }; + key { [ ntilde, Ntilde, asciitilde, doubleacute ] }; + key { [ acute, diaeresis, braceleft, braceleft ] }; + key { [ ccedilla, Ccedilla, braceright, breve ] }; + key { [ minus, underscore, dead_belowdot, abovedot ] }; +}; + +// Spanish mapping (note R-H exchange) +partial alphanumeric_keys +xkb_symbols "dvorak" { + + name[Group1]="Spanish (Dvorak)"; + + key {[ masculine, ordfeminine, backslash, degree ]}; + key {[ 1, exclam, bar, onesuperior ]}; + key {[ 2, quotedbl, at, twosuperior ]}; + key {[ 3, periodcentered, numbersign, threesuperior ]}; + key {[ 4, dollar, asciitilde, onequarter ]}; + key {[ 5, percent, brokenbar, fiveeighths ]}; + key {[ 6, ampersand, notsign, threequarters ]}; + key {[ 7, slash, onehalf, seveneighths ]}; + key {[ 8, parenleft, oneeighth, threeeighths ]}; + key {[ 9, parenright, asciicircum ]}; + key {[ 0, equal, grave, dead_doubleacute ]}; + key {[ apostrophe, question, dead_macron, dead_ogonek ]}; + key {[ exclamdown, questiondown, dead_breve, dead_abovedot ]}; + + key {[ period, colon, less, guillemotleft ]}; + key {[ comma, semicolon, greater, guillemotright ]}; + key {[ ntilde, Ntilde, lstroke, Lstroke ]}; + key {[ p, P, paragraph ]}; + key {[ y, Y, yen ]}; + key {[ f, F, tslash, Tslash ]}; + key {[ g, G, dstroke, Dstroke ]}; + key {[ c, C, cent, copyright ]}; + key {[ h, H, hstroke, Hstroke ]}; + key {[ l, L, sterling ]}; + key {[ dead_grave, dead_circumflex, bracketleft, dead_caron ]}; + key {[ plus, asterisk, bracketright, plusminus ]}; + + key {[ a, A, ae, AE ]}; + key {[ o, O, oslash, Oslash ]}; + key {[ e, E, EuroSign ]}; + key {[ u, U, aring, Aring ]}; + key {[ i, I, oe, OE ]}; + key {[ d, D, eth, ETH ]}; + key {[ r, R, registered, trademark ]}; + key {[ t, T, thorn, THORN ]}; + key {[ n, N, eng, ENG ]}; + key {[ s, S, ssharp, section ]}; + key {[ dead_acute, dead_diaeresis, braceleft, dead_tilde ]}; + key {[ ccedilla, Ccedilla, braceright, dead_cedilla ]}; + + key {[ less, greater, guillemotleft, guillemotright ]}; + key {[ minus, underscore, hyphen, macron ]}; + key {[ q, Q, currency ]}; + key {[ j, J ]}; + key {[ k, K, kra ]}; + key {[ x, X, multiply, division ]}; + key {[ b, B ]}; + key {[ m, M, mu ]}; + key {[ w, W ]}; + key {[ v, V ]}; + key {[ z, Z ]}; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "cat" { + + include "es(basic)" + + name[Group1]="Catalan (Spain, with middle-dot L)"; + + key { [ l, L, 0x1000140, 0x100013F ] }; +}; + +partial alphanumeric_keys +xkb_symbols "ast" { + + include "es(basic)" + + name[Group1]="Asturian (Spain, with bottom-dot H and bottom-dot L)"; + + key { [ h, H, 0x1001E25, 0x1001E24 ] }; + key { [ l, L, 0x1001E37, 0x1001E36 ] }; +}; + +// Copied from macintosh_vndr/es +partial alphanumeric_keys +xkb_symbols "mac" { + include "es" + name[Group1]= "Spanish (Macintosh)"; +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + + // http://wiki.laptop.org/go/OLPC_Spanish_Keyboard + + include "us(basic)" + name[Group1]="Spanish"; + + key { [ masculine, ordfeminine ] }; + key { [ 1, exclam, bar ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, dead_grave, numbersign, grave ] }; + key { [ 5, percent, asciicircum, dead_circumflex ] }; + key { [ 6, ampersand, notsign ] }; + key { [ 7, slash, backslash ] }; + key { [ 8, parenleft ] }; + key { [ 9, parenright ] }; + key { [ 0, equal ] }; + key { [ apostrophe, question ] }; + key { [ exclamdown, questiondown ] }; + + key { [ e, E, EuroSign ] }; + key { [ dead_acute, dead_diaeresis, acute, dead_abovering ] }; + key { [ bracketleft, braceleft ] }; + + key { [ ntilde, Ntilde ] }; + key { [ plus, asterisk, dead_tilde ] }; + key { [ bracketright, braceright, section ] }; + + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + key { [ less, greater, ISO_Next_Group ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "olpcm" { + + // Mechanical (non-membrane) OLPC Spanish keyboard layout. + // See: http://wiki.laptop.org/go/OLPC_Spanish_Non-membrane_Keyboard + + include "us(basic)" + name[Group1]="Spanish"; + + key { [ questiondown, exclamdown, backslash ] }; + key { [ 1, exclam, bar ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, dead_grave, numbersign, grave ] }; + key { [ 4, dollar, asciitilde, dead_tilde ] }; + key { [ 5, percent, asciicircum, dead_circumflex ] }; + key { [ 6, ampersand, notsign ] }; + key { [ 7, slash, backslash ] }; // no '\' label on olpcm, leave for compatibility + key { [ 8, parenleft, masculine ] }; + key { [ 9, parenright, ordfeminine ] }; + key { [ 0, equal ] }; + key { [ apostrophe, question ] }; + + key { [ e, E, EuroSign ] }; + key { [ dead_acute, dead_diaeresis, dead_abovering, acute ] }; + key { [ plus, asterisk ] }; + + key { [ ntilde, Ntilde ] }; + // no AC11 or AC12 on olpcm + + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + key { [ less, greater ] }; + key { [ bracketleft, braceleft, ccedilla, Ccedilla ] }; + key { [ bracketright, braceright ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "deadtilde" { + + include "es(basic)" + + name[Group1]="Spanish (dead tilde)"; + + key { [ 4, dollar, dead_tilde, dollar ] }; +}; + +partial alphanumeric_keys +xkb_symbols "olpc2" { + + // Modified variant of US International layout, specifically for Peru + // Contact: Sayamindu Dasgupta + + include "us(olpc)" + name[Group1]="Spanish (OLPC2)"; + + key { [ 3, numbersign, dead_grave, dead_grave] }; // combining grave + key { [ XF86Start ] }; + + include "level3(ralt_switch)" +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/es(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/et b/squashfs-root/usr/share/X11/xkb/symbols/et new file mode 100644 index 0000000..35dc279 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/et @@ -0,0 +1,73 @@ +// +// Ethiopia +// Designed as a part of OLPC project +// +// 2007 Sergey Udaltsov +// + +default partial alphanumeric_keys +xkb_symbols "basic" { + include "et(olpc)" + name[Group1]="Amharic"; +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + + name[Group1]="Amharic"; + + key { [ 0x01001369, 0x01001372 ] }; // 1 + key { [ 0x0100136a, 0x01001373 ] }; // 2 + key { [ 0x0100136b, 0x01001374 ] }; // 3 + key { [ 0x0100136c, 0x01001375 ] }; // 4 + key { [ 0x0100136d, 0x01001376 ] }; // 5 + key { [ 0x0100136e, 0x01001377 ] }; // 6 + key { [ 0x0100136f, 0x01001378 ] }; // 7 + key { [ 0x01001370, 0x01001379 ] }; // 8 + key { [ 0x01001371, 0x0100137a ] }; // 9 + key { [ 0x0100137b, 0x0100137c ] }; // 0 + key { [ minus, underscore ] }; // -_ + key { [ equal, plus ] }; // =+ + + key { [ 0x01001240, 0x01001250 ] }; // q + key { [ 0x010012C8, VoidSymbol ] }; // w + key { [ 0x0100FE69, 0x0100FE70 ] }; // dead e + key { [ 0x01001228, VoidSymbol ] }; // r + key { [ 0x01001270, 0x01001320 ] }; // t + key { [ 0x010012E8, VoidSymbol ] }; // y + key { [ 0x0100FE75, 0x0100FE76 ] }; // dead u + key { [ 0x0100FE71, 0x0100FE72 ] }; // dead i + key { [ 0x0100FE73, 0x0100FE74 ] }; // dead o + key { [ 0x01001350, 0x01001330 ] }; // p + key { [ 0x01001340, 0x01001338 ] }; // [ + key { [ 0x01001328, 0x01001280 ] }; // ] + + key { [ 0x0100FE67, 0x0100FE68 ] }; // dead a + key { [ 0x01001230, 0x01001220 ] }; // s + key { [ 0x010012F0, 0x010012F8 ] }; // d + key { [ 0x01001348, VoidSymbol ] }; // f + key { [ 0x01001308, 0x01001318 ] }; // g + key { [ 0x01001200, 0x01001210 ] }; // h + key { [ 0x01001300, VoidSymbol ] }; // j + key { [ 0x010012A8, 0x010012B8 ] }; // k + key { [ 0x01001208, VoidSymbol ] }; // l + + key { [ 0x01001362, 0x01001361 ] }; // :; + key { [ 0x01001366, 0x01001365 ] }; // '" + + key { [ 0x010012D8, 0x010012E0 ] }; // z + key { [ 0x010012A0, 0x010012D0 ] }; // x + key { [ 0x01001278, 0x0100FE78 ] }; // c + key { [ 0x01001238, 0x01001268 ] }; // v + key { [ 0x01001260, VoidSymbol ] }; // b + key { [ 0x01001290, 0x01001298 ] }; // n + key { [ 0x01001218, VoidSymbol ] }; // m + + key { [ 0x01001363, VoidSymbol ] }; // < + key { [ 0x01001364, VoidSymbol ] }; // > + key { [ 0x01001367, question ] }; // ? + + key { [ VoidSymbol, 0x01002010 ] }; // bksl + + include "group(olpc)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/eu b/squashfs-root/usr/share/X11/xkb/symbols/eu new file mode 100644 index 0000000..5b767f1 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/eu @@ -0,0 +1,62 @@ +// Based on +// Copyright: Copyright 2012 Steffen Bruentjen (eurkey (at) steffen dot bruentjen dot de) +// modified by Christoph Roeper (use firstName to mail) + +default partial alphanumeric_keys modifier_keys +xkb_symbols "basic" { + + include "us(basic)" + + name[Group1] = "EurKEY (US based layout with european letters)"; + + key { [ z, Z, agrave, Agrave ] }; + key { [ x, X, aacute, Aacute ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, igrave, Igrave ] }; + key { [ b, B, iacute, Iacute ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, Multi_key, Multi_key ] }; + key { [ comma, less, ograve, Ograve ] }; + key { [ period, greater, oacute, Oacute ] }; + key { [ slash, question, questiondown, 0x1002026 ] }; + key { [ a, A, adiaeresis, Adiaeresis ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, Eth ] }; + key { [ f, F, egrave, Egrave ] }; + key { [ g, G, eacute, Eacute ] }; + key { [ h, H, ugrave, Ugrave ] }; + key { [ j, J, uacute, Uacute ] }; + key { [ k, K, U0133, U0132 ] }; + key { [ l, L, oslash, Oslash ] }; + key { [ semicolon, colon, dead_diaeresis, periodcentered ] }; + key { [ apostrophe, quotedbl, dead_acute, dagger] }; + key { [ q, Q, ae, AE ] }; + key { [ w, W, aring, Aring ] }; + key { [ e, E, ediaeresis, Ediaeresis ] }; + key { [ r, R, yacute, Yacute ] }; + key { [ t, T, thorn, Thorn ] }; + key { [ y, Y, ydiaeresis, Ydiaeresis ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, idiaeresis, Idiaeresis ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ p, P, oe, OE ] }; + key { [ bracketleft, braceleft, guillemotleft, U2039 ] }; + key { [ bracketright, braceright, guillemotright, U203A ] }; + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, at, ordfeminine, twosuperior ] }; + key { [ 3, numbersign, masculine, threesuperior ] }; + key { [ 4, dollar, sterling, yen ] }; + key { [ 5, percent, EuroSign, cent ] }; + key { [ 6, asciicircum, dead_circumflex, dead_caron ] }; + key { [ 7, ampersand, dead_abovering, dead_macron ] }; + key { [ 8, asterisk, doublelowquotemark, singlelowquotemark ] }; + key { [ 9, parenleft, leftdoublequotemark, leftsinglequotemark ] }; + key { [ 0, parenright, rightdoublequotemark, rightsinglequotemark ] }; + key { [ minus, underscore, copyright, numerosign ] }; + key { [ equal, plus, multiply, division ] }; + key { [ backslash, bar, notsign, brokenbar ] }; + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ KP_Delete, KP_Decimal, comma, comma ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/eurosign b/squashfs-root/usr/share/X11/xkb/symbols/eurosign new file mode 100644 index 0000000..0d95a90 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/eurosign @@ -0,0 +1,23 @@ +// Most keyboards have the EuroSign engraved on the E key +partial +xkb_symbols "e" { + key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; +}; + +// Many Apple keyboards have the EuroSign engraved on the 2 key +partial +xkb_symbols "2" { + key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; +}; + +// Some keyboards have the EuroSign engraved on the 4 key +partial +xkb_symbols "4" { + key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; +}; + +// Many keyboards have the EuroSign engraved on the 5 key +partial +xkb_symbols "5" { + key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/fi b/squashfs-root/usr/share/X11/xkb/symbols/fi new file mode 100644 index 0000000..8e77d35 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/fi @@ -0,0 +1,349 @@ +// +// X keyboard maps for Finland +// +// SFS 5966 / Kotoistus keymap created by Troy Korjuslommi +// Classic keymap based on traditional by Marko Myllynen +// Eliminate deadkeys alternative sent by Linus Torvalds +// + +default partial alphanumeric_keys +xkb_symbols "kotoistus" { + + // Official keymap for Finland based on SFS 5966 standard + // + // This keymap implements all the functionality of Annex 1 + // of the standard and additionally defines the following to + // allow entering these characters with keyboards without LSGT. + // + // AE08+4, U+003C : LESS-THAN SIGN (less) + // AE09+4, U+003E : GREATER-THAN SIGN (greater) + // AD08+4, U+007C : VERTICAL LINE (bar) + // + // Annex 3 of the standard is implemented in fi_FI.UTF-8/Compose + + name[Group1]="Finnish"; + + key { [ section, onehalf, dead_stroke, NoSymbol ] }; + key { [ 1, exclam, NoSymbol, exclamdown ] }; + key { [ 2, quotedbl, at, rightdoublequotemark ] }; + key { [ 3, numbersign, sterling, guillemotright ] }; + key { [ 4, currency, dollar, guillemotleft ] }; + key { [ 5, percent, permille, leftdoublequotemark ] }; + key { [ 6, ampersand, singlelowquotemark, doublelowquotemark ] }; + key { [ 7, slash, braceleft, NoSymbol ] }; + key { [ 8, parenleft, bracketleft, less ] }; + key { [ 9, parenright, bracketright, greater ] }; + key { [ 0, equal, braceright, degree ] }; + key { [ plus, question, backslash, questiondown ] }; + key { [ dead_acute, dead_grave, dead_cedilla, dead_ogonek ] }; + + key { [ q, Q, q, Q ] }; + key { [ w, W, w, W ] }; + key { [ e, E, EuroSign, NoSymbol ] }; + key { [ r, R, r, R ] }; + key { [ t, T, thorn, THORN ] }; + key { [ y, Y, y, Y ] }; + key { [ u, U, u, U ] }; + key { [ i, I, idotless, bar ] }; + key { [ o, O, oe, OE ] }; + key { [ p, P, dead_horn, dead_hook ] }; + key { [ aring, Aring, dead_doubleacute, dead_abovering ] }; + key { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_macron ] }; + + key { [ a, A, schwa, SCHWA ] }; + key { [ s, S, ssharp, NoSymbol ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, f, F ] }; + key { [ g, G, g, G ] }; + key { [ h, H, h, H ] }; + key { [ j, J, j, J ] }; + key { [ k, K, kra, NoSymbol ] }; + key { [ l, L, dead_stroke, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, oslash, Oslash ] }; + key { [ adiaeresis, Adiaeresis, ae, AE ] }; + key { [ apostrophe, asterisk, dead_caron, dead_breve ] }; + + key { [ less, greater, bar, NoSymbol ] }; + key { [ z, Z, ezh, EZH ] }; + key { [ x, X, multiply, periodcentered ] }; + key { [ c, C, c, C ] }; + key { [ v, V, v, V ] }; + key { [ b, B, b, B ] }; + key { [ n, N, eng, ENG ] }; + key { [ m, M, mu, emdash ] }; + key { [ comma, semicolon, rightsinglequotemark, leftsinglequotemark ] }; + key { [ period, colon, dead_belowdot, dead_abovedot ] }; + key { [ minus, underscore, endash, dead_belowcomma ] }; + + include "nbsp(level4)" + include "nbsp(level3)" + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "winkeys" { + + include "fi(kotoistus)" + name[Group1]="Finnish (Winkeys)"; + include "eurosign(5)" +}; + +partial alphanumeric_keys +xkb_symbols "classic" { + + include "fi(fi)" + + name[Group1]="Finnish (classic)"; +}; + +hidden partial alphanumeric_keys +xkb_symbols "fi" { + + // Classic Finnish keyboard layout with dead keys + + key { [ section, onehalf, onequarter, threequarters ] }; + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, quotedbl, at, twosuperior ] }; + key { [ 3, numbersign, sterling, threesuperior ] }; + key { [ 4, currency, dollar, cent ] }; + key { [ 5, percent, EuroSign, masculine ] }; + key { [ 6, ampersand, yen, ordfeminine ] }; + key { [ 7, slash, braceleft, plusminus ] }; + key { [ 8, parenleft, bracketleft, less ] }; + key { [ 9, parenright, bracketright, greater ] }; + key { [ 0, equal, braceright, degree ] }; + key { [ plus, question, backslash, questiondown ] }; + key { [ dead_acute, dead_grave, dead_cedilla, dead_ogonek ] }; + + key { [ q, Q, q, Q ] }; + key { [ w, W, w, W ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ r, R, registered, NoSymbol ] }; + key { [ t, T, thorn, THORN ] }; + key { [ y, Y, y, Y ] }; + key { [ u, U, u, U ] }; + key { [ i, I, idotless, bar ] }; + key { [ o, O, o, O ] }; + key { [ p, P, paragraph, NoSymbol ] }; + key { [ aring, Aring, oe, OE ] }; + key { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] }; + + key { [ a, A, schwa, SCHWA ] }; + key { [ s, S, scaron, Scaron ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, f, F ] }; + key { [ g, G, eng, ENG ] }; + key { [ h, H, h, H ] }; + key { [ j, J, j, J ] }; + key { [ k, K, kra, NoSymbol ] }; + key { [ l, L, dead_stroke, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, oslash, Oslash ] }; + key { [ adiaeresis, Adiaeresis, ae, AE ] }; + key { [ apostrophe, asterisk, dead_caron, dead_breve ] }; + + key { [ less, greater, bar, brokenbar ] }; + key { [ z, Z, zcaron, Zcaron ] }; + key { [ x, X, multiply, division ] }; + key { [ c, C, copyright, cent ] }; + key { [ v, V, v, V ] }; + key { [ b, B, ssharp, NoSymbol ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, mu, NoSymbol ] }; + key { [ comma, semicolon, dead_cedilla, dead_ogonek ] }; + key { [ period, colon, periodcentered, notsign ] }; + key { [ minus, underscore, hyphen, dead_macron ] }; + + include "nbsp(level4)" + include "kpdl(comma)" + include "level3(ralt_switch)" + include "compose(rwin)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // Classic Finnish keyboard layout without dead keys + + include "fi(fi)" + + name[Group1]="Finnish (classic, no dead keys)"; + + key { [ acute, grave, cedilla, ogonek ] }; + key { [ diaeresis, asciicircum, asciitilde, caron ] }; + key { [ l, L, l, L ] }; + key { [ apostrophe, asterisk, caron, breve ] }; + key { [ comma, semicolon, cedilla, ogonek ] }; + key { [ minus, underscore, hyphen, macron ] }; +}; + +partial alphanumeric_keys +xkb_symbols "smi" { + + // Describes the differences between a Norwegian Northern Sami + // (keyboard with dead key support) and a Swedish/Finnish Sami + // keyboard according to the specs at: + // http://www.hum.uit.no/a/trond/se-lat9-sefi-keys.html + + include "no(smi)" + + name[Group1]="Northern Saami (Finland)"; + + key { [ odiaeresis, Odiaeresis, oslash, Oslash ] }; + key { [ adiaeresis, Adiaeresis, ae, AE ] }; +}; + +partial alphanumeric_keys +xkb_symbols "mac" { + + // Macintosh keyboard for Finland based on Swedish(Macintosh) keyboard + + include "se(mac)" + + name[Group1]="Finnish (Macintosh)"; +}; + +partial alphanumeric_keys +xkb_symbols "sun_type6" { + + // Sun Type 6/7 keyboard for Finland + + include "sun_vndr/fi(sun_type6)" +}; + +partial +xkb_symbols "das" { + + // This is DAS layout for typing Finnish. It is originally designed by + // Cristian Seres (cseres at iki.fi). + // More information about DAS: http://c.seres.fi/DAS_en.html + // This xkeyboard layout is originally made by Joel Lehtonen, + // (joel.lehtonen at iki.fi) on 2008-01-14. He released it under Public + // domain. + + name[Group1]="Finnish (DAS)"; + + key { [ 1, exclam, section ] }; + key { [ 2, quotedbl, twosuperior ] }; + key { [ 3, at, sterling ] }; + key { [ 4, EuroSign, dollar ] }; + key { [ 5, percent, onehalf ] }; + key { [ 6, ampersand ] }; + key { [ 7, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, braceright, degree ] }; + key { [ plus, question, currency ] }; + key { [ equal, numbersign ] }; + + key { [ p, P, Greek_pi ] }; + key { [ h, H ] }; + key { [ r, R, dead_circumflex ] }; + key { [ k, K, dead_caron ] }; + key { [ less, greater ] }; + key { [ apostrophe, bar ] }; + key { [ w, W ] }; + key { [ u, U ] }; + key { [ y, Y ] }; + key { [ b, B ] }; + key { [ q, Q ] }; + key { [ z, Z, zcaron, Zcaron ] }; + + key { [ s, S, scaron, Scaron ] }; + key { [ l, L, dead_acute ] }; + key { [ n, N, dead_grave ] }; + key { [ t, T, dead_diaeresis ] }; + key { [ v, V ] }; + key { [ g, G ] }; + key { [ a, A ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ e, E ] }; + key { [ c, C ] }; + key { [ backslash, dead_tilde ] }; + + key { [ asterisk, slash ] }; + key { [ f, F ] }; + key { [ x, X ] }; + key { [ d, D ] }; + key { [ m, M, mu ] }; + key { [ j, J ] }; + key { [ aring, Aring ] }; + key { [ odiaeresis, Odiaeresis, oe, OE ] }; + key { [ adiaeresis, Adiaeresis, ae, AE ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore, U2013, dead_macron ] }; + key { [ space, space, space, nobreakspace ] }; + + include "kpdl(comma)" + include "level3(ralt_switch)" + include "compose(rwin)" +}; + +partial alphanumeric_keys +xkb_symbols "fidvorak" { + //Finnish Dvorak keyboard + //by Pekka Oinas + //A Dvorak layout designed for use with Finnish. + //Dedicated keys for Ä and Ö by utilizing the extra LSGT key found on Finnish keyboards + //and by moving colon and semicolon behind shift-modifiers on comma and period. + //Less and greater than symbols moved behind 3rd level modifiers on comma and period. + //Includes an assortment of dead keys but is not made with them in mind. + name[Group1]= "Finnish Dvorak"; + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + + key { [ 1, exclam, NoSymbol, exclamdown ] }; + key { [ 2, at, cent, rightdoublequotemark] }; + key { [ 3, numbersign, sterling ] }; + key { [ 4, dollar, currency ] }; + key { [ 5, percent, U2030, leftdoublequotemark ] }; + key { [ 6, asciicircum, dead_circumflex, doublelowquotemark ] }; + key { [ 7, ampersand, section, singlelowquotemark ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright, dead_abovering, degree ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + key { [ apostrophe, quotedbl, dead_acute, dead_doubleacute ] }; + key { [ comma, semicolon, less, leftsinglequotemark ] }; + key { [ period, colon, greater ] }; + key { [ p, P ] }; + key { [ y, Y, yen ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ c, C ] }; + key { [ r, R ] }; + key { [ l, L, notsign ] }; + key { [ slash, question, NoSymbol, questiondown ] }; + key { [ equal, plus ] }; + + key { [ a, A, schwa ] }; + key { [ o, O, aring, Aring ] }; + key { [ e, E, EuroSign ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, idotless, Iabovedot ] }; + key { [ d, D, eth, ETH ] }; + key { [ h, H ] }; + key { [ t, T, thorn, THORN ] }; + key { [ n, N, eng, ENG ] }; + key { [ s, S, ssharp, U1E9E ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ backslash, bar, dead_caron, dead_breve ] }; + + key { [ adiaeresis, Adiaeresis, ae, AE ] }; + key { [ odiaeresis, Odiaeresis, dead_diaeresis, dead_macron ] }; + key { [ q, Q, ooblique, Ooblique ] }; + key { [ j, J ] }; + key { [ k, K, kra ] }; + key { [ x, X, multiply, periodcentered ] }; + key { [ b, B, hyphen ] }; + key { [ m, M, mu, emdash ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ z, Z, U0292, U01B7 ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/fo b/squashfs-root/usr/share/X11/xkb/symbols/fo new file mode 100644 index 0000000..383cd92 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/fo @@ -0,0 +1,48 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin(type2)" + + name[Group1]= "Faroese"; + + key { [ onehalf, section, threequarters, paragraph ] }; + key { [ less, greater, backslash, notsign ] }; + key { [ space, space, nobreakspace, nobreakspace ] }; + + key { [ 5, percent, NoSymbol, cent ] }; + key { [ 6, ampersand, yen, NoSymbol ] }; + key { [ plus, question, plusminus, questiondown ] }; + key { [dead_acute, dead_grave, bar, brokenbar ] }; + + key { [ c, C, copyright, NoSymbol ] }; + key { [ minus, underscore, hyphen, macron ] }; + + key { [ d, D, eth, ETH ] }; + key { [ ae, AE ] }; + key { [ oslash, Ooblique ] }; + + key { [ i, I ] }; + key { [ aring, Aring, dead_diaeresis, dead_circumflex ] }; + key { [ eth, ETH, dead_tilde, dead_caron ] }; + + key { [apostrophe, asterisk, dead_doubleacute, multiply ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + include "fo(basic)" + + name[Group1]= "Faroese (no dead keys)"; + + key { [ acute, grave, bar, ogonek ] }; + key { [ aring, Aring, diaeresis, degree ] }; + key { [ diaeresis, asciicircum, asciitilde, macron ] }; + key { [ ae, AE, acute, doubleacute ] }; + key { [ oslash, Ooblique, asciicircum, caron ] }; + key { [apostrophe, asterisk, doubleacute, multiply ] }; + key { [ comma, semicolon, cedilla, ogonek ] }; + key { [ period, colon, periodcentered, abovedot ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/fr b/squashfs-root/usr/share/X11/xkb/symbols/fr new file mode 100644 index 0000000..a3e195f --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/fr @@ -0,0 +1,1073 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin" + + name[Group1]="French"; + + key { [ ampersand, 1, onesuperior, exclamdown ] }; + key { [ eacute, 2, asciitilde, oneeighth ] }; + key { [ quotedbl, 3, numbersign, sterling ] }; + key { [apostrophe, 4, braceleft, dollar ] }; + key { [ parenleft, 5, bracketleft, threeeighths ] }; + key { [ minus, 6, bar, fiveeighths ] }; + key { [ egrave, 7, grave, seveneighths ] }; + key { [underscore, 8, backslash, trademark ] }; + key { [ ccedilla, 9, asciicircum, plusminus ] }; + key { [ agrave, 0, at, degree ] }; + key { [parenright, degree, bracketright, questiondown ] }; + key { [ equal, plus, braceright, dead_ogonek ] }; + + key { [ a, A, ae, AE ] }; + key { [ z, Z, guillemotleft, less ] }; + key { [ e, E, EuroSign, cent ] }; + key { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] }; + key { [ dollar, sterling, currency, dead_macron ] }; + + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ m, M, mu, masculine ] }; + key { [ ugrave, percent, dead_circumflex, dead_caron] }; + key { [twosuperior, asciitilde, notsign, notsign ] }; + + key { [ asterisk, mu, dead_grave, dead_breve ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ comma, question, dead_acute, dead_doubleacute ] }; + key { [ semicolon, period, horizconnector, multiply ] }; + key { [ colon, slash, periodcentered, division ] }; + key { [ exclam, section, dead_belowdot, dead_abovedot ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + // Contact: Sayamindu Dasgupta + include "fr(basic)" + + name[Group1]="French"; + + key { [ less, greater ] }; + key { [ dead_circumflex, dead_diaeresis, notsign, dead_abovering ] }; + key { [ semicolon, period, underscore, multiply ] }; + key { [ twosuperior, asciitilde, VoidSymbol, VoidSymbol ] }; + + // Some keys only have the Shift+AltGr character printed on them (alongside + // the unmodified one). Make such keys shift-invariant so that the printed + // value is achieved by pressing AltGr or Shift+AltGr. + key { [ x, X, guillemotright, guillemotright ] }; + key { [ s, S, ssharp, ssharp ] }; + key { [ z, Z, guillemotleft, guillemotleft ] }; +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + + // Modifies the basic French layout to use the Sun dead keys + + include "fr(basic)" + + key { [dead_circumflex, dead_diaeresis ] }; + key { [comma, question, dead_acute, dead_doubleacute ] }; +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + include "fr(Sundeadkeys)" + + name[Group1]="French (with Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // Modifies the basic French layout to eliminate all dead keys + + include "fr(basic)" + + name[Group1]="French (no dead keys)"; + + key { [ equal, plus, braceright, ogonek ] }; + key { [asciicircum, diaeresis ] }; + key { [ dollar, sterling, currency, macron ] }; + key { [ ugrave, percent, asciicircum, caron ] }; + key { [ asterisk, mu, grave, breve ] }; + key { [ comma, question, acute, doubleacute ] }; + key { [ exclam, section, dead_belowdot, abovedot ] }; +}; + + +// Unicode French derivative +// Loose refactoring of the historic Linux French keyboard layout +// +// Copyright © 2006-2008 Nicolas Mailhot +// +// Credits (fr-latin1, fr-latin0, fr-latin9) +// © 199x-1996 René Cougnenc ✝ +// © 1997-2002 Guylhem Aznar +// © 2003-2006 Nicolas Mailhot +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ +// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃ +// ┃Tab ↹ ┃ a æ │ z â │ e € │ r ê │ t þ │ y ÿ │ u û │ i î │ o œ │ p ô │ ^ ~ │ $ ø ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ Q Ä │ S „ │ D Ë │ F ‚ │ G ¥ │ H Ð │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄ ┃ ┃ +// ┃Maj ⇬ ┃ q ä │ s ß │ d ë │ f ‘ │ g ’ │ h ð │ j ü │ k ï │ l ŀ │ m ö │ ù ' │ * ` ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃ ┃ +// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +partial alphanumeric_keys +xkb_symbols "oss" { + + include "latin" + include "level3(ralt_switch)" + include "nbsp(level4n)" + include "keypad(oss)" + + name[Group1]="French (alt.)"; + + // First row + key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸ + key { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨ + key { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É + key { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘ + key { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin) + key { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin) + key { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable) + key { [ egrave, 7, grave, Egrave ] }; // è 7 ` È + key { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™ + key { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç + key { [ agrave, 0, at, Agrave ] }; // à 0 @ À + key { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠ + key { [ equal, plus, braceright, plusminus ] }; // = + } ± + + // Second row + key { [ a, A, ae, AE ] }; // a A æ Æ + key { [ z, Z, acircumflex, Acircumflex ] }; // z Z â  + key { [ e, E, EuroSign, cent ] }; // e E € ¢ + key { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê + key { [ t, T, thorn, THORN ] }; // t T þ Þ + key { [ y, Y, ydiaeresis, Ydiaeresis ] }; // y Y ÿ Ÿ + key { [ u, U, ucircumflex, Ucircumflex ] }; // u U û Û + key { [ i, I, icircumflex, Icircumflex ] }; // i I î Î + key { [ o, O, oe, OE ] }; // o O œ Œ + key { [ p, P, ocircumflex, Ocircumflex ] }; // p P ô Ô + key { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚ + key { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø + + // Third row + key { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä + key { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „ + key { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë + key { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚ + key { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥ + key { [ h, H, eth, ETH ] }; // h H ð Ð + key { [ j, J, udiaeresis, Udiaeresis ] }; // j J ü Ü + key { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï + key { [ l, L, 0x1000140, 0x100013F ] }; // l L ŀ Ŀ + key { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö + key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù + key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ + + // Fourth row + key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ + key { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “ + key { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ” + key { [ c, C, copyright, registered ] }; // c C © ® + key { [ v, V, 0x100202F, leftarrow ] }; // v V ⍽ ← (espace fine insécable) + key { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑ + key { [ n, N, notsign, rightarrow ] }; // n N ¬ → + key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … + key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅ + key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕ + key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ − +}; + +partial alphanumeric_keys +xkb_symbols "oss_latin9" { + + // Restricts the fr(oss) layout to latin9 symbols + + include "fr(oss)" + include "keypad(oss_latin9)" + + name[Group1]="French (alt., Latin-9 only)"; + + // First row + key { [ ampersand, 1, dead_caron, dead_cedilla ] }; // & 1 ˇ ¸ + key { [ quotedbl, 3, numbersign, dead_tilde ] }; // " 3 # ~ + key { [ apostrophe, 4, braceleft, underscore ] }; // ' 4 { _ + key { [ parenleft, 5, bracketleft, minus ] }; // ( 5 [ - + key { [ minus, 6, bar, minus ] }; // - 6 | - + key { [ underscore, 8, backslash, backslash ] }; // _ 8 \ \ + key { [ parenright, degree, bracketright, equal ] }; // ) ° ] = + + // Third row + key { [ s, S, ssharp, guillemotleft ] }; // s S ß « + key { [ f, F, apostrophe, apostrophe ] }; // f F ' ' + key { [ g, G, apostrophe, yen ] }; // g G ' ¥ + key { [ l, L, periodcentered, periodcentered ] }; // l L · · + key { [ asterisk, mu, dead_grave, dead_circumflex ] }; // * µ ` ^ + + // Fourth row + key { [ less, greater, less, greater ] }; // < > < > + key { [ w, W, guillemotleft, guillemotleft ] }; // w W « « + key { [ x, X, guillemotright, guillemotright ] }; // x X » » + key { [ v, V, nobreakspace, less ] }; // v V ⍽ < (espace insécable) + key { [ b, B, minus, asciicircum ] }; // b B - ^ + key { [ n, N, notsign, greater ] }; // n N ¬ > + key { [ comma, question, questiondown, period ] }; // , ? ¿ . + key { [ semicolon, period, multiply, periodcentered ] }; // ; . × · + key { [ colon, slash, division, slash ] }; // : / ÷ / + key { [ exclam, section, exclamdown, minus ] }; // ! § ¡ - +}; + +partial alphanumeric_keys +xkb_symbols "oss_Sundeadkeys" { + + // Modifies the basic fr(oss) layout to use the Sun dead keys + + include "fr(oss)" + + key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ¹ ² ³ ¸ + + key { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚ + + key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù + key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ +}; + +partial alphanumeric_keys +xkb_symbols "oss_sundeadkeys" { + + include "fr(oss_Sundeadkeys)" + + name[Group1]="French (alt., with Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "oss_nodeadkeys" { + + // Modifies the basic fr(oss) layout to eliminate all dead keys + + include "fr(oss)" + + name[Group1]="French (alt., no dead keys)"; + + key { [ twosuperior, threesuperior, onesuperior, cedilla ] }; // ² ³ ¹ ¸ + key { [ ampersand, 1, caron, ogonek ] }; // & 1 ˇ ̨ + key { [ quotedbl, 3, numbersign, breve ] }; // " 3 # ˘ + + key { [ asciicircum, diaeresis, asciitilde, Aring ] }; // ^ ̈ ̃ Å + key { [ ugrave, percent, acute, Ugrave ] }; // ù % ' Ù + key { [ asterisk, mu, grave, macron ] }; // * µ ` ̄ +}; + + +// Historic Linux French keyboard layout (fr-latin9) +// Copyright (c) 199x, 2002 Rene Cougnenc (original work) +// Guylhem Aznar (maintainer) +// Nicolas Mailhot +// (XFree86 submission) +// +// This layout has long been distributed and refined outside official channels. +// To this day it remains more feature-rich and popular than the 'fr' layout. +// +// This layout is derived from an original version by Guylhem Aznar. +// The original version is always available from: +// http://en.tldp.org/HOWTO/Francophones-HOWTO.html +// and is distributed under a GPL license. +// +// The author has given permission for this derived version to be distributed +// under the standard XFree86 license. He would like all changes to this +// version to be sent to him at , so he can sync +// the identically named linux console map (kbd, linux-console) and his +// out-of-tree GPL version. +// +// Now follows the keyboard design description in French. +// (If you can't read it you probably have no business changing this file anyway:) +// +// Les accents circonflexes des principales voyelles sont obtenus avec +// la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift. +// +// ____ _________ _____________ _______ +// | S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause | +// | s a| s = normal, a = AltGr | Exec | | Halte | +// ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ +// ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ +// | œ "| 1 ·| 2 É| 3 ,| 4 '| 5 "| 6 || 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + °| <-- | +// | Œ "| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | +// ======================================================================== +// | |<- | A ä| Z Å| E ¢| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| $ ë| , | +// | ->| | a â| z å| e €| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ê| <-' | +// ===================================================================¬ | +// | | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥| | +// | MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³| | +// ======================================================================== +// | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ | +// | | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | | +// ======================================================================== +// | | | | | | | | | +// | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | +// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ +// +// +// Si les touches mortes fonctionnent, utiliser les accents dits +// « morts », i.e. fonctionnant comme l'accent circonflexe & le +// tréma des machines à écrire ; sont disponibles : +// +// (^) : accent circonflexe, +// Shift+(^) : tréma, +// Shift+AltGr+(^) : tilde, +// AltGr+(1) : accent aigu, +// AltGr+(7) : accent grave +// +// Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma +// sur les vielles machines à écrire : +// +// AltGr+(1) puis e : é +// AltGr+(1) puis E : É +// +partial alphanumeric_keys + +xkb_symbols "latin9" { + + include "latin" + include "nbsp(level3)" + + name[Group1]="French (legacy, alt.)"; + + key { [ oe, OE, leftdoublequotemark, rightdoublequotemark ] }; + key { [ ampersand, 1, dead_acute, periodcentered ] }; + key { [ eacute, 2, asciitilde, Eacute ] }; + key { [ quotedbl, 3, numbersign, cedilla ] }; + key { [ apostrophe, 4, braceleft, acute ] }; + key { [ parenleft, 5, bracketleft, diaeresis ] }; + key { [ minus, 6, bar, brokenbar ] }; + key { [ egrave, 7, dead_grave, Egrave ] }; + key { [ underscore, 8, backslash, macron ] }; + key { [ ccedilla, 9, asciicircum, Ccedilla ] }; + key { [ agrave, 0, at, Agrave ] }; + key { [ parenright, degree, bracketright, ydiaeresis ] }; + key { [ equal, plus, braceright, dead_abovering ] }; + + key { [ a, A, acircumflex, adiaeresis ] }; + key { [ z, Z, aring, Aring ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ r, R, ccedilla, Ccedilla ] }; + key { [ t, T, thorn, THORN ] }; + key { [ y, Y, yacute, Yacute ] }; + key { [ u, U, ucircumflex, udiaeresis ] }; + key { [ i, I, icircumflex, idiaeresis ] }; + key { [ o, O, ocircumflex, odiaeresis ] }; + key { [ p, P, paragraph, grave ] }; + key { [ dead_circumflex, dead_diaeresis, dead_tilde, apostrophe ] }; + key { [ dollar, sterling, ecircumflex, ediaeresis ] }; + + key { [ q, Q, Acircumflex, Adiaeresis ] }; + key { [ s, S, oslash, Ooblique ] }; + key { [ d, D, Ecircumflex, Ediaeresis ] }; + key { [ f, F, plusminus, ordfeminine ] }; + key { [ g, G, ae, AE ] }; + key { [ h, H, eth, ETH ] }; + key { [ j, J, Ucircumflex, Udiaeresis ] }; + key { [ k, K, Icircumflex, Idiaeresis ] }; + key { [ l, L, Ocircumflex, Odiaeresis ] }; + key { [ m, M, onesuperior, masculine ] }; + key { [ ugrave, percent, twosuperior, Ugrave ] }; + key { [ asterisk, mu, threesuperior, yen ] }; + + key { [ less, greater, bar ] }; + key { [ w, W, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ c, C, copyright ] }; + key { [ v, V, registered ] }; + key { [ b, B, ssharp ] }; + key { [ n, N, notsign ] }; + key { [ comma, question, questiondown ] }; + key { [ semicolon, period, multiply ] }; + key { [ colon, slash, division ] }; + key { [ exclam, section, exclamdown ] }; + + // French uses a comma as decimal separator, but keyboards are labeled with a period + // Will take effect when KP_Decimal is mapped to the locale decimal separator + key { [ KP_Delete, KP_Decimal, KP_Delete, KP_Decimal ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "latin9_Sundeadkeys" { + + // Modifies the basic fr-latin9 layout to use the Sun dead keys + + include "fr(latin9)" + + key { [ ampersand, 1, dead_acute, periodcentered ] }; + key { [ egrave, 7, dead_grave, Egrave ] }; + key { [ dead_circumflex, dead_diaeresis, dead_tilde, apostrophe ] }; +}; + +partial alphanumeric_keys +xkb_symbols "latin9_sundeadkeys" { + + include "fr(latin9_Sundeadkeys)" + + name[Group1]="French (legacy, alt., with Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "latin9_nodeadkeys" { + + // Modifies the basic fr-latin9 layout to eliminate all dead keys + + include "fr(latin9)" + + name[Group1]="French (legacy, alt., no dead keys)"; + + key { [ ampersand, 1, apostrophe, periodcentered ] }; + key { [ egrave, 7, grave, Egrave ] }; + key { [ equal, plus, braceright ] }; + key { [ asciicircum, diaeresis, asciitilde, apostrophe ] }; +}; + +// Bépo : Improved ergonomic french keymap using Dvorak method. +// Built by community on 'Dvorak Fr / Bépo' : +// see http://www.clavier-dvorak.org/wiki/ to join and help. +// XOrg integration (1.0rc2 version) in 2008 +// by Frédéric Boiteux +// +// Bépo layout (1.0rc2 version) for a pc105 keyboard (french) : +// ┌─────┐ +// │ S A │ S = Shift, A = AltGr + Shift +// │ s a │ s = normal, a = AltGr +// └─────┘ +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ # ¶ │ 1 „ │ 2 “ │ 3 ” │ 4 ≤ │ 5 ≥ │ 6 │ 7 ¬ │ 8 ¼ │ 9 ½ │ 0 ¾ │ ° ′ │ ` ″ ┃ ⌫ Retour┃ +// │ $ – │ " — │ « < │ » > │ ( [ │ ) ] │ @ ^ │ + ± │ - − │ / ÷ │ * × │ = ≠ │ % ‰ ┃ arrière┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ B ¦ │ É ˝ │ P § │ O Œ │ È ` │ ! │ V │ D Ð │ L │ J IJ │ Z Ə │ W ┃Entrée ┃ +// ┃Tab ↹ ┃ b | │ é ˊ │ p & │ o œ │ è ` │ ˆ ¡ │ v ˇ │ d ð │ l / │ j ij │ z ə │ w ̆ ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ A Æ │ U Ù │ I ˙ │ E ¤ │ ; ̛ │ C ſ │ T Þ │ S ẞ │ R ™ │ N │ M º │ Ç , ┃ ┃ +// ┃Maj ⇬ ┃ a æ │ u ù │ i ̈ │ e € │ , ’ │ c © │ t þ │ s ß │ r ® │ n ˜ │ m ¯ │ ç ¸ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ Ê │ À │ Y ‘ │ X ’ │ : · │ K │ ? ̉ │ Q ̣ │ G │ H ‡ │ F ª ┃ ┃ +// ┃Shift ⇧┃ ê / │ à \ │ y { │ x } │ . … │ k ~ │ ' ¿ │ q ˚ │ g µ │ h † │ f ˛ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ Espace inséc. Espace inséc. fin ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ (Espace) _ ␣ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +partial alphanumeric_keys +xkb_symbols "bepo" { + + include "level3(ralt_switch)" + include "keypad(oss)" + + name[Group1]= "French (Bepo, ergonomic, Dvorak way)"; + + // First row + key { [ dollar, numbersign, endash, paragraph ] }; // $ # – ¶ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // « 2 < “ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // » 3 > ” + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal ] }; // ( 4 [ ≤ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal ] }; // ) 5 ] ≥ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum ] }; // @ 6 ^ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ] }; // + 7 ± ¬ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ] }; // - 8 − ¼ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ] }; // / 9 ÷ ½ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾ + key { [ equal, degree, notequal, minutes ] }; // = ° ≠ ′ + key { [ percent, grave, U2030, seconds ] }; // % ` ‰ ″ + + // Second row + key { [ b, B, bar, brokenbar ] }; // b B | ¦ + key { [ eacute, Eacute, dead_acute, dead_doubleacute ] }; // é É ˊ ˝ + key { [ p, P, ampersand, section ] }; // p P & § + key { [ o, O, oe, OE ] }; // o O œ Œ + key { [ egrave, Egrave, dead_grave, grave ] }; // è È ` ` + key { [ dead_circumflex, exclam, exclamdown ] }; // ^ ! ¡ + key { [ v, V, dead_caron ] }; // v V ˇ + key { [ d, D, eth, ETH ] }; // d D ð Ð + key { [ l, L, dead_stroke ] }; // l L / + key { [ j, J, U0133, U0132 ] }; // j J ij IJ + key { [ z, Z, schwa, SCHWA ] }; // z Z ə Ə + key { [ w, W, dead_breve ] }; // w W ̆ + + // Third row + key { [ a, A, ae, AE ] }; // a A æ Æ + key { [ u, U, ugrave, Ugrave ] }; // u U ù Ù + key { [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ̈ ˙ + key { [ e, E, EuroSign, dead_currency ] }; // e E € ¤ + key { [ comma, semicolon, rightsinglequotemark, dead_horn ] }; // , ; ’ ̛ + key { [ c, C, copyright, U017F ] }; // c C © ſ + key { [ t, T, thorn, THORN ] }; // t T þ Þ + key { [ s, S, ssharp, U1E9E ] }; // s S ß ẞ + key { [ r, R, registered, trademark ] }; // r R ® ™ + key { [ n, N, dead_tilde ] }; // n N ~ + key { [ m, M, dead_macron, masculine ] }; // m M ̄ º + key { [ ccedilla, Ccedilla, dead_cedilla, dead_belowcomma ] }; // ç Ç ¸ , + + // Fourth row + key { [ ecircumflex, Ecircumflex, slash ] }; // ê Ê / + key { [ agrave, Agrave, backslash ] }; // à À \ + key { [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘ + key { [ x, X, braceright, rightsinglequotemark ] }; // x X } ’ + key { [ period, colon, ellipsis, periodcentered ] }; // . : … · + key { [ k, K, asciitilde ] }; // k K ~ + key { [ apostrophe, question, questiondown, dead_hook ] }; // ' ? ¿ ̉ + key { [ q, Q, dead_abovering, dead_belowdot ] }; // q Q ˚ ̣ + key { [ g, G, dead_greek ] }; // g G µ + key { [ h, H, dagger, doubledagger ] }; // h H † ‡ + key { [ f, F, dead_ogonek, ordfeminine ] }; // f F ̨ ª + + key { [ space, nobreakspace, underscore, U202F ] }; // ␣ (espace insécable) _ (espace insécable fin) +}; + +partial alphanumeric_keys +xkb_symbols "bepo_latin9" { + + // Restricts the fr(bepo) layout to latin9 symbols + + include "fr(bepo)" + include "keypad(oss_latin9)" + + name[Group1]="French (Bepo, ergonomic, Dvorak way, Latin-9 only)"; + + key { [ dollar, numbersign, dollar, paragraph ] }; // $ # $ ¶ + + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1 ] }; // " 1 + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less ] }; // « 2 < + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater ] }; // » 3 > + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft ] }; // ( 4 [ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright ] }; // ) 5 ] + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, minus, onequarter ] }; // - 8 - ¼ + key { [ equal, degree ] }; // = ° + key { [ percent, grave ] }; // % ` + + key { [ b, B, bar ] }; // b B | + key { [ eacute, Eacute, dead_acute ] }; // é É ˊ + key { [ j, J ] }; // j J + key { [ z, Z ] }; // z Z + key { [ w, W ] }; // w W + + key { [ i, I, dead_diaeresis ] }; // i I ̈ + key { [ comma, semicolon, comma, dead_horn ] }; // , ; , ̛ + key { [ c, C, copyright ] }; // c C © + key { [ s, S, ssharp ] }; // s S ß + key { [ r, R, registered ] }; // r R ® + key { [ m, M, macron, masculine ] }; // m M ̄ º + + key { [ y, Y, braceleft ] }; // y Y { + key { [ x, X, braceright ] }; // x X } + key { [ period, colon ] }; // . : + key { [ h, H ] }; // h H + key { [ f, F, f, ordfeminine ] }; // f F ª + + // Note : on a besoin de redéfinir les niveaux 3 et 4, + // donc nbsp(level2) ne suffit pas ! + key { [ space, nobreakspace, underscore, nobreakspace ] }; // ␣ (espace insécable) _ (espace insécable) +}; + +// Author : Francis Leboutte, http://www.algo.be/ergo/dvorak-fr.html +// thanks to Fabien Cazenave for his help +// Licence : X11 +// Version : 0.3 + +// Base layer + dead AltGr key (`): +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ +// │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ +// │ _ │ = │ / ± │ - ¼ │ è ½ │ \ ¾ │ ^ │ ( │ ` ` │ ) │ " │ [ │ ] ┃ ⌫ ┃ +// ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ +// ┃ ┃ ? Æ │ < │ > │ G │ ! │ H │ V │ C Ç │ M │ K │ Z │ & ┃ ┃ +// ┃ ↹ ┃ : æ │ ' $ │ é É │ g € │ . ° │ h │ v │ c ç │ m µ │ k │ z │ ¨ ┃ ┃ +// ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ +// ┃ ┃ O Ò │ A À │ U Ù │ E È │ B │ F │ S │ T │ N │ D │ W │ # ┃ ┃ +// ┃ ⇬ ┃ o ò │ a à │ u ù │ e è │ b │ f │ s « │ t │ n » │ d │ w │ ~ ┃ ┃ +// ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ +// ┃ ┃ ç Ç │ | Œ │ Q │ @ │ I Ì │ Y │ X │ R │ L │ P │ J ┃ ┃ +// ┃ ⇧ ┃ à À │ ; œ │ q { │ , } │ i ì │ y £ │ x │ r º │ l │ p § │ j ┃ ⇧ ┃ +// ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ +// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ +// ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +// Notice the specific Caps_Lock layer: +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ +// │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ ┃ +// ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ +// ┃ ┃ │ < │ > │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ↹ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ⇬ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ +// ┃ ┃ / │ - │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ⇧ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ⇧ ┃ +// ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ +// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ +// ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial alphanumeric_keys modifier_keys +xkb_symbols "dvorak" { + name[Group1]="French (Dvorak)"; + + // First row + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ underscore, asterisk ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ equal, 1 ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 2, plusminus ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 3, onequarter ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, 4, onehalf ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ backslash, 5, threequarters ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ dead_circumflex, 6 ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 7 ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ISO_Level3_Latch, 8, grave ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 9 ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 0 ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketleft, plus ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketright, percent ] }; + + // Second row + key { [ colon, question, ae, AE ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ apostrophe, less, dollar ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, greater, Eacute ] }; + key { [ g, G, EuroSign ] }; + key { [ period, exclam, degree ] }; + key { [ h, H ] }; + key { [ v, V ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ m, M, mu ] }; + key { [ k, K ] }; + key { [ z, Z ] }; + key { [ dead_diaeresis, ampersand ] }; + + // Third row + key { [ o, O, ograve, Ograve ] }; + key { [ a, A, agrave, Agrave ] }; + key { [ u, U, ugrave, Ugrave ] }; + key { [ e, E, egrave, Egrave ] }; + key { [ b, B ] }; + key { [ f, F ] }; + key { [ s, S, guillemotleft ] }; + key { [ t, T ] }; + key { [ n, N, guillemotright ] }; + key { [ d, D ] }; + key { [ w, W ] }; + key { [ asciitilde, numbersign ] }; + + // Fourth row + key { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ agrave, ccedilla, Agrave, Ccedilla, slash ] }; + key { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ semicolon, bar, oe, OE, minus ] }; + key { [ q, Q, braceleft ] }; + key { [ comma, at, braceright ] }; + key { [ i, I, igrave, Igrave ] }; + key { [ y, Y, sterling ] }; + key { [ x, X ] }; + key { [ r, R, masculine ] }; + key { [ l, L ] }; + key { [ p, P, section ] }; + key { [ j, J ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; +}; + +// C'WHERTY: Breton keyboard. Ar c'hlavier brezhoneg. +// Copyright © 2009 Dominique Pellé +// Version: 0.1 +// +// ┌─────┐ +// │ S A │ S = Reol = Shift, A = ArErl + Pennlizherenn = AltGr + Shift +// │ s a │ s = normal, a = ArErl = AltGr +// └─────┘ +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ $ Γ │ 1 Δ │ 2 Θ │ 3 Λ │ 4 Ξ │ 5 Π │ 6 Σ │ 7 Φ │ 8 Ψ │ 9 Ç │ 0 Ω │ ° ß │ + ¬ ┃ ⌫ Souzañ┃ +// │ ² ˙ │ & ¯ │ é ´ │ " # │ ' { │ ( [ │ - | │ è ` │ - \ │ ç ± │ à @ │ ) ] │ = } ┃ ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃Toalenn┃ C'h │ W ω │ E ε │ R ρ │ T τ │ Y ψ │ U υ │ I ι │ O OE│ P π │ ¨ ¥ │ * £ ┃Enankañ┃ +// ┃ ↹ ┃ c'h │ w │ e € │ r │ t │ y │ u │ i ı │ o oe│ p │ ^ « │ / » ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃Prenn ┃ A Æ │ S σ │ D δ │ F φ │ G γ │ H η │ J ς │ K κ │ L λ │ M μ │ Ù ® │ ! ¡ ┃ ┃ +// ┃Pennli ⇬┃ a æ │ s │ d $ │ f │ g │ h │ j │ k │ l │ m │ ù ŭ │ ? ¿ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ Q θ │ Z ζ │ X ξ │ C χ │ V │ B β │ N ν │ CH │ Ñ │ : © │ ; ┃ ┃ +// ┃Shift ⇧┃ q < │ z > │ x │ c ¢ │ v │ b │ n │ ch │ ñ │ . │ , ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ⍽ Espace insécable ␣ ┃ ┃ ┃ ┃ +// ┃Reol ┃Meta ┃Erl ┃ ␣ Espace ␣ ┃ArErl ⇮┃Menu ┃Reol ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +partial alphanumeric_keys +xkb_symbols "bre" { + + include "keypad(oss)" + + name[Group1]= "French (Breton)"; + + // First row + key { [ twosuperior, dead_tilde, dead_abovedot, Greek_GAMMA ] }; + key { [ ampersand, 1, dead_macron, Greek_DELTA ] }; + key { [ eacute, 2, dead_acute, Greek_THETA ] }; + key { [ quotedbl, 3, numbersign, Greek_LAMDA ] }; + key { [ apostrophe, 4, braceleft, Greek_XI ] }; + key { [ parenleft, 5, bracketleft, Greek_PI ] }; + key { [ minus, 6, bar, Greek_SIGMA ] }; + key { [ egrave, 7, dead_grave, Greek_PHI ] }; + key { [ underscore, 8, backslash, Greek_PSI ] }; + key { [ ccedilla, 9, plusminus, Ccedilla ] }; + key { [ agrave, 0, at, Greek_OMEGA ] }; + key { [ parenright, dead_abovering, bracketright, ssharp ] }; + key { [ equal, plus, braceright, notsign ] }; + + // Second row + // Handling the C'H key correctly requires an inputmethod (XIM) + // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 + // key { [ trigraph_c_h, trigraph_C_h, trigraph_C_H, Greek_alpha ] }; + key { [ UF8FD, UF8FE, UF8FF, Greek_alpha ] }; + key { [ w, W, Greek_omega, Greek_omega ] }; + key { [ e, E, EuroSign, Greek_epsilon ] }; + key { [ r, R, Greek_rho, Greek_rho ] }; + key { [ t, T, Greek_tau, Greek_tau ] }; + key { [ y, Y, Greek_psi, Greek_psi ] }; + key { [ u, U, Greek_upsilon, Greek_upsilon ] }; + key { [ i, I, idotless, Greek_iota ] }; + key { [ o, O, oe, OE ] }; + key { [ p, P, Greek_pi, Greek_pi ] }; + key { [ dead_circumflex, dead_diaeresis, guillemotleft, yen ] }; + key { [ slash, asterisk, guillemotright, sterling ] }; + + // Third row + key { [ a, A, ae, AE ] }; + key { [ s, S, Greek_sigma, Greek_sigma ] }; + key { [ d, D, dollar, Greek_delta ] }; + key { [ f, F, Greek_phi, Greek_phi ] }; + key { [ g, G, Greek_gamma, Greek_gamma ] }; + key { [ h, H, Greek_eta, Greek_eta ] }; + key { [ j, J, Greek_finalsmallsigma, Greek_finalsmallsigma ] }; + key { [ k, K, Greek_kappa, Greek_kappa ] }; + key { [ l, L, Greek_lamda, Greek_lambda ] }; + key { [ m, M, Greek_mu, Greek_mu ] }; + key { [ ugrave, Ugrave, ubreve, registered ] }; + key { [ question, exclam, questiondown, exclamdown ] }; + + // Fourth row + key { [ q, Q, less, Greek_theta ] }; + key { [ z, Z, greater, Greek_zeta ] }; + key { [ x, X, Greek_xi, Greek_xi ] }; + key { [ c, C, cent, Greek_chi ] }; + key { [ v, V ] }; + key { [ b, B, Greek_beta, Greek_beta ] }; + key { [ n, N, Greek_nu, Greek_nu ] }; + // Handling the CH key correctly requires an inputmethod (XIM) + // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 + // key { [ digraph_ch, digraph_Ch, digraph_CH, Greek_omicron ] }; + key { [ UF8FA, UF8FB, UF8FC, Greek_omicron ] }; + key { [ ntilde, Ntilde ] }; + key { [ period, colon, section, copyright ] }; + key { [ comma, semicolon, percent ] }; + + key { [ space, nobreakspace, space, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + +// Occitan layout +// Author : 2009 Thomas Metz +// Derived from the layout defined at http://www.panoccitan.org +// Version: 0.1 +// Differences from OSS French keyboard : +// - add á, í, ò, ó et ú, Á, Í, Ò, Ó, Ú, ñ, Ñ +// - change position of æ, ü, î, û, œ, ô, ö, ï, â, ë +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ +// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ A Á │ Z Æ │ E ¢ │ R Ê │ T Ë │ Y Û │ U Ú │ I Í │ O Ó │ P Ò │ ¨ Œ │ £ Ø ┃Entrée ┃ +// ┃Tab ↹ ┃ a á │ z æ │ e € │ r ê │ t ë │ y û │ u ú │ i í │ o ó │ p ò │ ^ œ │ $ ø ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ Q Ä │ S „ │ D  │ F ‚ │ G ¥ │ H Ü │ J Î │ K Ï │ L Ô │ M Ö │ % Ù │ µ ̄ ┃ ┃ +// ┃Maj ⇬ ┃ q ä │ s ß │ d â │ f ‘ │ g ’ │ h ü │ j î │ k ï │ l ô │ m ö │ ù ' │ * ` ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N Ñ │ ? … │ . . │ / ∕ │ § − ┃ ┃ +// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v → │ b ↓ │ n ñ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +partial alphanumeric_keys +xkb_symbols "oci" { + + include "fr(oss)" + + name[Group1]= "Occitan"; + + key { [ a, A, aacute, Aacute ] }; // a A á Á + key { [ z, Z, ae, AE ] }; // z Z æ Æ + key { [ t, T, ediaeresis, Ediaeresis ] }; // t T ë Ë + key { [ y, Y, ucircumflex, Ucircumflex ] }; // y Y û Û + key { [ u, U, uacute, Uacute ] }; // u U ú Ú + key { [ i, I, iacute, Iacute ] }; // i I í Í + key { [ o, O, oacute, Oacute ] }; // o O ó Ó + key { [ p, P, ograve, Ograve ] }; // p P ò Ò + key { [ dead_circumflex, dead_diaeresis, oe, OE ] }; // ^ ̈ ̃ œ Œ + + key { [ d, D, acircumflex, Acircumflex ] }; // d D â  + key { [ h, H, udiaeresis, Udiaeresis ] }; // h H ü Ü + key { [ j, J, icircumflex, Icircumflex ] }; // j J î Î + key { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï + key { [ l, L, ocircumflex, Ocircumflex ] }; // l L ô Ô + + key { [ v, V, rightarrow, leftarrow ] }; // v V → ← + key { [ n, N, ntilde, Ntilde ] }; // n N ñ Ñ +}; + +// Marc.Shapiro@inria.fr 19-sep-1998 +// modifications : Etienne Herlent june 2000 +// adapted to the new input layer : +// Martin Costabel 3-jan-2001 +// adapted for Latin9 alphabet (ISO-8859-15): +// Etienne Herlent march 2005 + +// This map is an almost-complete mapping of the standard French +// MacIntosh keyboard under Xwindows. I tried to remain as faithful +// as possible to the Mac meaning of each key. I did this entirely by +// hand and by intuition, relying on the Clavier (Keyboard?) Desktop +// Accessory for the Mac meaning of keys, and on reading keysymdef.h +// to intuit the corresponding X names. Lacking proper documentation, +// I may have made some mistakes. + +// Entries marked CHECK are particularly uncertain + +// Entries marked MISSING mark Mac characters for which I was unable +// to find a corresponding keysym. (Some for sure don't: e.g. the +// Apple mark and the oe/OE character; others I may have simply not +// found.) + +// Copied from macintosh_vndr/fr +partial alphanumeric_keys +xkb_symbols "mac" { + + name[Group1]= "French (Macintosh)"; + + key { [ at, numbersign, periodcentered, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 + key { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple + key { [ eacute, 2, ediaeresis, Eacute ] }; + key { [ quotedbl, 3, VoidSymbol, VoidSymbol ] }; // CHECK all quotemarks + key { [ apostrophe, 4, VoidSymbol, VoidSymbol ] }; + key { [ parenleft, 5, braceleft, bracketleft ] }; + // CHECK section + key { [ section, 6, paragraph, aring ] }; + key { [ egrave, 7, guillemotleft, guillemotright ] }; + key { [ exclam, 8, exclamdown, Ucircumflex ] }; + key { [ ccedilla, 9, Ccedilla, Aacute ] }; + key { [ agrave, 0, oslash, VoidSymbol ] }; // MISSING: Oslash + key { [ parenright, degree, braceright, bracketright ] }; + key { [ minus, underscore, emdash, endash ] }; // CHECK dashes + + key { [ a, A, ae, AE ] }; + key { [ z, Z, Acircumflex, Aring ] }; + key { [ e, E, ecircumflex, Ecircumflex ] }; + key { [ r, R, registered, currency ] }; + key { [ t, T, VoidSymbol, VoidSymbol ] }; + key { [ y, Y, Uacute, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 + key { [ u, U, VoidSymbol, ordfeminine ] }; // MISSING: ordmasculine? + key { [ i, I, icircumflex, idiaeresis ] }; + key { [ o, O, oe, OE ] }; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9 + key { [ p, P, VoidSymbol, VoidSymbol ] }; + key { [dead_circumflex,dead_diaeresis, ocircumflex, Ocircumflex ] }; + key { [ dollar, asterisk, EuroSign, yen ] }; // eherlent : EuroSign in Latin9 + + key { [ q, Q, acircumflex, Agrave ] }; + key { [ s, S, Ograve, VoidSymbol ] }; + key { [ d, D, VoidSymbol, VoidSymbol ] }; + key { [ f, F, VoidSymbol, periodcentered ] }; // MISSING: oblong script f?? + key { [ g, G, VoidSymbol, VoidSymbol ] }; // MISSING: kerned fi, fl + key { [ h, H, Igrave, Icircumflex ] }; + key { [ j, J, Idiaeresis, Iacute ] }; + key { [ k, K, Egrave, Ediaeresis ] }; + key { [ l, L, notsign, bar ] }; + key { [ m, M, mu, Oacute ] }; + key { [ ugrave,percent, Ugrave, ucircumflex ] }; // MISSING: per-mille + key { [ dead_grave, sterling, at, numbersign ] }; + + key { [ less, greater, VoidSymbol, VoidSymbol ] }; + key { [ w, W, VoidSymbol, VoidSymbol ] }; // MISSING: half-guillemot (single angle bracket) + key { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK similarequal; MISSING: extra-slanted slash + key { [ c, C, copyright, cent ] }; + key { [ v, V, diamond, leftradical ] }; // CHECK diamond, leftradical + key { [ b, B, ssharp, VoidSymbol ] }; // CHECK: Greek_beta or ssharp?; MISSING: oblong script s + key { [ n, N, dead_tilde, asciitilde ] }; + key { [ comma, question, VoidSymbol, questiondown ] }; + key { [ semicolon, period, VoidSymbol, periodcentered ] }; + key { [ colon, slash, division, backslash ] }; + key { [ equal, plus, VoidSymbol, plusminus ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; + + key { [ comma,KP_Decimal ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "geo" { + include "ge(basic)" + + name[Group1]= "Georgian (France, AZERTY Tskapo)"; + + key { [ exclam, noSymbol ] }; + key { [ 0x0100201e, 1 ] }; + key { [ 0x01002116, 2 ] }; + key { [ percent, 3 ] }; + key { [ parenleft, 4 ] }; + key { [ colon, 5 ] }; + key { [ semicolon, 6 ] }; + key { [ question, 7 ] }; + key { [ 0x01002116, 8 ] }; + key { [ degree, 9 ] }; + key { [ parenright, 0 ] }; + key { [ minus, underscore, 0x01002014 ] }; + key { [ less, greater ] }; + + key { [ 0x010010d0, 0x010010fa ] }; + key { [ 0x010010d6, Z ] }; + key { [ 0x010010d4, E, 0x010010f1 ] }; + key { [ 0x010010e0, 0x010000ae ] }; + key { [ 0x010010e2, T ] }; + key { [ 0x010010e7, 0x010010f8 ] }; + key { [ 0x010010e3, U ] }; + key { [ 0x010010d8, 0x010010f2 ] }; + key { [ 0x010010dd, O ] }; + key { [ 0x010010de, P ] }; + key { [ 0x010010d7, T ] }; + key { [ 0x010010eb, Z ] }; + + key { [ 0x010010e5, Q ] }; + key { [ 0x010010e1, S ] }; + key { [ 0x010010d3, D ] }; + key { [ 0x010010e4, 0x010010f6 ] }; + key { [ 0x010010d2, 0x010010f9 ] }; + key { [ 0x010010f0, 0x010010f5 ] }; + key { [ 0x010010ef, 0x010010f7 ] }; + key { [ 0x010010d9, K ] }; + key { [ 0x010010da, L ] }; + key { [ 0x010010db, M ] }; + key { [ 0x010010df, J ] }; + key { [ 0x010010e9, 0x010000a9 ] }; + + key { [ guillemotleft,guillemotright ] }; + key { [ 0x010010ec, W ] }; + key { [ 0x010010ee, 0x010010f4 ] }; + key { [ 0x010010ea, 0x010000a9 ] }; + key { [ 0x010010d5, 0x010010f3 ] }; + key { [ 0x010010d1, B ] }; + key { [ 0x010010dc, 0x010010fc ] }; + key { [ comma, 0x01002014 ] }; + key { [ 0x010010e8, S ] }; + key { [ 0x010010e6, noSymbol ] }; + key { [ 0x010010ed, noSymbol ] }; + +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/fr(sun_type6)" +}; + + +partial alphanumeric_keys +xkb_symbols "azerty" { + name[Group1]="French (AZERTY)"; + + include "level3(ralt_switch)" + +// French AZERTY-Keyboard layout +// Author : 2015, Mats Blakstad +// Based on the layout at https://en.wikipedia.org/wiki/File:KB_France.svg + +// LAYOUT OVERVIEW +// ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ +// | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ° | + | <-- | +// | ² | & | é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | +// ======================================================================== +// | |<- | A | Z | E | R | T | Y | U | I | O | P | ¨ | $ | , | +// | ->| | a | z | e €| r | t | y | u | i | o | p | ^ | £ ¤| <-' | +// ===================================================================¬ | +// | | Q | S | D | F | G | H | J | K | L | M | % | µ | | +// | MAJ | q | s | d | f | g | h | j | k | l | m | ù | * | | +// ======================================================================== +// | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ | +// | | | < | w | x | c | v | b | n | , | ; | : | ! | | | +// ======================================================================== +// | | | | | | | | | +// | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | +// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ + + // First row + key { [ twosuperior ] }; + key { [ ampersand, 1 ] }; + key { [ eacute, 2, asciitilde ] }; + key { [ quotedbl, 3, numbersign ] }; + key { [ apostrophe, 4, braceleft ] }; + key { [ parenleft, 5, bracketleft ] }; + key { [ minus, 6, bar ] }; + key { [ egrave, 7, grave ] }; + key { [ underscore, 8, backslash ] }; + key { [ ccedilla, 9, asciicircum ] }; + key { [ agrave, 0, at ] }; + key { [ parenright, degree, bracketright ] }; + key { [ equal, plus, braceright ] }; + + // Second row + key { [ a, A ] }; + key { [ z, Z ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ dead_circumflex,dead_diaeresis ] }; + key { [ dollar, sterling, currency ] }; + + // Third row + key { [ q, Q ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ m, M ] }; + key { [ ugrave, percent ] }; + key { [ asterisk, mu ] }; + + // Fourth row + key { [ less, greater ] }; + key { [ w, W ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ comma, question ] }; + key { [ semicolon, period ] }; + key { [ colon, slash ] }; + key { [ exclam, section ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/fujitsu_vndr/jp b/squashfs-root/usr/share/X11/xkb/symbols/fujitsu_vndr/jp new file mode 100644 index 0000000..bcccd53 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/fujitsu_vndr/jp @@ -0,0 +1,87 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +// Japanese for a Fujitsu 140 key keyboard + +xkb_symbols "basic" { + override "fujitsu_vndr/us" + augment key { [], [ kana_NU ] }; + key { [ 2, quotedbl ], [ kana_FU ] }; + key { [ 3, numbersign ], [ kana_A, kana_a ] }; + key { [ 4, dollar ], [ kana_U, kana_u ] }; + augment key { [], [ kana_E, kana_e ] }; + key { [ 6, ampersand ], [ kana_O, kana_o ] }; + key { [ 7, apostrophe ], [ kana_YA, kana_ya ] }; + key { [ 8, parenleft ], [ kana_YU, kana_yu ] }; + key { [ 9, parenright ], [ kana_YO, kana_yo ] }; + replace key { [ 0 ], [ kana_WA, kana_WO ] }; + key { [ minus, equal ], [ kana_HO ] }; + key { [ asciicircum, asciitilde ], [ kana_HE ] }; + key { [ backslash, bar ], [ prolongedsound] }; + augment key { [], [ kana_TA ] }; + augment key { [], [ kana_TE ] }; + augment key { [], [ kana_I, kana_i ] }; + augment key { [], [ kana_SU ] }; + augment key { [], [ kana_KA ] }; + augment key { [], [ kana_N ] }; + augment key { [], [ kana_NA ] }; + augment key { [], [ kana_NI ] }; + augment key { [], [ kana_RA ] }; + augment key { [], [ kana_SE ] }; + key { [ at, grave ], [ voicedsound ] }; + key { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] }; + augment key { [], [ kana_CHI ] }; + augment key { [], [ kana_TO ] }; + augment key { [], [ kana_SHI ] }; + augment key { [], [ kana_HA ] }; + augment key { [], [ kana_KI ] }; + augment key { [], [ kana_KU ] }; + augment key { [], [ kana_MA ] }; + augment key { [], [ kana_NO ] }; + augment key { [], [ kana_RI ] }; + key { [ semicolon, plus ], [ kana_RE ] }; + key { [ colon, asterisk ], [ kana_KE ] }; + key { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] }; + augment key { [], [ kana_TSU, kana_tsu ] }; + augment key { [], [ kana_SA ] }; + augment key { [], [ kana_SO ] }; + augment key { [], [ kana_HI ] }; + augment key { [], [ kana_KO ] }; + augment key { [], [ kana_MI ] }; + augment key { [], [ kana_MO ] }; + augment key { [], [ kana_NE, kana_comma ] }; + augment key { [], [ kana_RU, kana_fullstop ] }; + augment key { [], [ kana_ME, kana_conjunctive ] }; + key { [ underscore ], [ kana_RO ] }; + key { [ Select ] }; + key { [ Massyo ] }; + key { [ Touroku ] }; + key { [ Zenkaku_Hankaku ] }; + key { [ Eisu_Shift ] }; + key { [ Mode_switch ] }; + key { [ Cancel ] }; + key { [ Muhenkan ] }; + key { [ Henkan ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/fujitsu_vndr/us b/squashfs-root/usr/share/X11/xkb/symbols/fujitsu_vndr/us new file mode 100644 index 0000000..f62b5c8 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/fujitsu_vndr/us @@ -0,0 +1,142 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +// US/ASCII layout for a Fujitsu 138 key keyboard +xkb_symbols "basic" { + include "us(basic)" + + // A few alphanumeric keys are different + key { [ grave, asciitilde ] }; + key { [ BackSpace ] }; + key { [ backslash, bar ] }; + key { [ ] }; + + key { [ Shift_R ] }; + + key { [ Alt_L ] }; + key { [ Alt_R ] }; + key { [ Meta_L ] }; + key { [ Meta_R ] }; + key { [ Linefeed ] }; + key { [ Multi_key ] }; + // End alphanumeric section + + // Begin "Function" section + key { [ Break ] }; + key { [ Print ] }; + key { [ Kanji ] }; + key { [ Pause ] }; + + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + key { [ F11 ] }; + key { [ F12 ] }; + key { [ F13 ] }; + key { [ F14 ] }; + key { [ F15 ] }; + key { [ F16 ] }; + key { [ F17 ] }; + key { [ F18 ] }; + key { [ F19 ] }; + key { [ F20 ] }; + key { [ F21 ] }; + key { [ F22 ] }; + key { [ F23 ] }; + key { [ F24 ] }; + key { [ F25 ] }; + key { [ F26 ] }; + key { [ F27 ] }; + key { [ F28 ] }; + key { [ F29 ] }; + key { [ F30 ] }; + key { [ F31 ] }; + key { [ F32 ] }; + // End "Function" section + + // Begin "Editing" section + key { [ Undo ] }; + key { [ F33 ] }; + key { [ F34 ] }; + key { [ F35 ] }; + key { [ Help ] }; + // End "Editing" section + + // Begin "Cursor" section + key { [ ] }; + key { [ ] }; + key { [ ] }; + key { [ Prior ] }; + key { [ Home ] }; + key { [ Next ] }; + key { [ ] }; + key { [ Delete ] }; + key { [ Insert ] }; + key { [ Left ] }; + key { [ Right ] }; + key { [ Up ] }; + key { [ Down ] }; + key { [ Execute ] }; + // End "Cursor" section + + // Begin "Keypad" section + key { [ KP_Multiply ] }; + key { [ KP_Divide ] }; + key { [ KP_Add ] }; + key { [ KP_Subtract ] }; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + key { [ KP_Equal ] }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + key { [ KP_Decimal ] }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + key { [ KP_Enter ] }; + + key { [ KP_0 ] }; + key { [ KP_0 ] }; + // End "Keypad" section + + modifier_map Shift { Shift_R }; + modifier_map Mod1 { Meta_L, Meta_R }; + modifier_map Mod2 { Mode_switch }; + modifier_map Mod3 { Alt_L }; + modifier_map Mod4 { Num_Lock }; + modifier_map Mod5 { F13, F18, F20 }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/gb b/squashfs-root/usr/share/X11/xkb/symbols/gb new file mode 100644 index 0000000..6021325 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/gb @@ -0,0 +1,205 @@ +// based on a keyboard map from an 'xkb/symbols/gb' file + +default partial alphanumeric_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple U.K. keyboard layout defined by + // the SVR4 European Language Supplement and sometimes also + // known as the IBM 166 layout. + + include "latin" + + name[Group1]="English (UK)"; + + key { [ 2, quotedbl, twosuperior, oneeighth ] }; + key { [ 3, sterling, threesuperior, sterling ] }; + key { [ 4, dollar, EuroSign, onequarter ] }; + + key { [apostrophe, at, dead_circumflex, dead_caron] }; + key { [ grave, notsign, bar, bar ] }; + + key { [numbersign, asciitilde, dead_grave, dead_breve ] }; + key { [ backslash, bar, bar, brokenbar ] }; + + include "level3(ralt_switch_multikey)" +}; + +partial alphanumeric_keys +xkb_symbols "intl" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple U.K. keyboard layout with + // dead keys. By Phil Jones (philjones1@blueyonder.co.uk) + + // Includes the following keys: + // dead_grave + // dead_acute + // dead_circumflex + // dead_tilde + // dead_diaeresis + + include "latin" + + name[Group1]="English (UK, intl., with dead keys)"; + + key { [ 2, dead_diaeresis, twosuperior, onehalf ] }; + key { [ 3, sterling, threesuperior, onethird ] }; + key { [ 4, dollar, EuroSign, onequarter ] }; + key { [ 6, dead_circumflex, NoSymbol, onesixth ] }; + + key { [ dead_acute, at, apostrophe, bar ] }; + key { [ dead_grave, notsign, bar, bar ] }; + + key { [ numbersign, dead_tilde, bar, bar ] }; + key { [ backslash, bar, bar, bar ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "extd" { + // Clone of the Microsoft "English (UK, Extended" layout, which + // includes dead keys for: grave; diaeresis; circumflex; tilde; and + // accute. It also enables direct access to accute characters using + // the Multi_key (Alt Gr). + // + // Taken from... + // "Windows Keyboard Layouts" + // http://msdn.microsoft.com/en-us/goglobal/bb964651.aspx + // + // -- Jonathan Miles + + include "latin" + + name[Group1]="English (UK, extended, with Win keys)"; + + key { [ dead_grave, notsign, brokenbar, NoSymbol ] }; + + key { [ 2, quotedbl, dead_diaeresis, onehalf ] }; + key { [ 3, sterling, threesuperior, onethird ] }; + key { [ 4, dollar, EuroSign, onequarter ] }; + key { [ 6, asciicircum, dead_circumflex, NoSymbol ] }; + + key { [ w, W, wacute, Wacute ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ y, Y, yacute, Yacute ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ apostrophe, at, dead_acute, NoSymbol ] }; + + key { [ c, C, ccedilla, Ccedilla ] }; + + key { [ numbersign, asciitilde, dead_tilde, NoSymbol ] }; + key { [ backslash, bar, NoSymbol, NoSymbol ] }; + + include "level3(ralt_switch)" +}; + +// Describe the differences between the US Colemak layout +// and a UK variant. By Andy Buckley (andy@insectnation.org) + +partial alphanumeric_keys +xkb_symbols "colemak" { + include "us(colemak)" + + name[Group1]="English (UK, Colemak)"; + + key { [ 2, quotedbl, twosuperior, oneeighth ] }; + key { [ 3, sterling, threesuperior, sterling ] }; + key { [ 4, dollar, EuroSign, onequarter ] }; + + key { [apostrophe, at, dead_circumflex, dead_caron] }; + key { [ grave, notsign, bar, bar ] }; + + key { [numbersign, asciitilde, dead_grave, dead_breve ] }; + key { [ backslash, bar, bar, brokenbar ] }; + + include "level3(ralt_switch_multikey)" +}; + + +// Dvorak (UK) keymap (by odaen) allowing the usage of +// the £ and ? key and swapping the @ and " keys. + +partial alphanumeric_keys +xkb_symbols "dvorak" { + include "us(dvorak-alt-intl)" + + name[Group1]="English (UK, Dvorak)"; + + key { [ apostrophe, at ] }; + key { [ 2, quotedbl, twosuperior, NoSymbol ] }; + key { [ 3, sterling, threesuperior, NoSymbol ] }; + key { [ numbersign, asciitilde ] }; + key { [ backslash, bar ] }; + key { [ grave, notsign, bar, bar ] }; +}; + +// Dvorak letter positions, but punctuation all in the normal UK positions. +partial alphanumeric_keys +xkb_symbols "dvorakukp" { + include "gb(dvorak)" + + name[Group1]="English (UK, Dvorak, with UK punctuation)"; + + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ slash, question ] }; + key { [apostrophe, at, dead_circumflex, dead_caron] }; +}; + +// Copied from macintosh_vndr/gb +partial alphanumeric_keys +xkb_symbols "mac" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple U.K. keyboard layout + + include "latin" + + name[Group1]= "English (UK, Macintosh)"; + + key { [ 2, at, EuroSign ] }; + key { [ 3, sterling, numbersign ] }; + key { [ section, plusminus ] }; + key { [ grave, asciitilde ] }; + + include "level3(ralt_switch)" + include "level3(enter_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "mac_intl" { + + include "latin" + + name[Group1]="English (UK, intl., Macintosh)"; + + key { [ 2, at, EuroSign, onehalf ] }; + key { [ 3, sterling, twosuperior, onethird ] }; + key { [ 4, dollar, threesuperior, onequarter ] }; + key { [ 6, dead_circumflex, NoSymbol, onesixth ] }; + key { [ o, O, oe, OE ] }; + + key { [ dead_acute, dead_diaeresis, dead_diaeresis, bar ] }; //dead_doubleacute + key { [ section, plusminus, notsign, notsign ] }; //dead_grave + + key { [ backslash, bar, numbersign, bar ] }; + key { [ dead_grave, dead_tilde, brokenbar, bar ] }; + + include "level3(ralt_switch)" +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/gb(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ge b/squashfs-root/usr/share/X11/xkb/symbols/ge new file mode 100644 index 0000000..4f590a4 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ge @@ -0,0 +1,272 @@ +// Georgian Keyboard Layouts by Aiet Kolkhi +// Full layout descriptions available at http://www.gakartuleba.org/layouts/ +// +// This includes the following keyboard layouts: Georgian QWERTY; Georgian Ergonomic; +// Georgian MESS; Georgian AZERTY Tskapo; Georgian Russian. +// +// Layouts include Georgian Mkhedruli alphabeth; most layouts also include some special +// and ancient characters (like Fi, Yn, Elifi, Turned Gan and Ain). Layouts do not +// include Georgian Asomtavruli or Georgian Khutsuri alphabeths which are also present +// in Unicode. +// +// Georgian Typewriter no longer supported, as it is no longer used in Georgia. +// +// some layouts based on Georgian keyboard map, in the so called "latin" layout. +// 1999, Pablo Saratxaga +// + +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]= "Georgian"; + + key { [ 0x0100201e, 0x0100201c, 0x0100201e, asciitilde ] }; + key { [ 1, exclam, apostrophe ] }; + key { [ 2, at, 0x0100201e ] }; + key { [ 3, numbersign, 0x0100201c ] }; + key { [ 4, dollar, 0x01002116 ] }; + key { [ 5, percent, EuroSign ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand, section ] }; + key { [ 8, asterisk, degree ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore, 0x01002014 ] }; + key { [ equal, plus, 0x01002013 ] }; + + key { [ 0x010010e5, Q ] }; + key { [ 0x010010ec, 0x010010ed ] }; + key { [ 0x010010d4, E, 0x010010f1 ] }; + key { [ 0x010010e0, 0x010010e6, 0x010000ae ] }; + key { [ 0x010010e2, 0x010010d7 ] }; + key { [ 0x010010e7, Y, 0x010010f8 ] }; + key { [ 0x010010e3, U ] }; + key { [ 0x010010d8, I, 0x010010f2 ] }; + key { [ 0x010010dd, O ] }; + key { [ 0x010010de, P ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright,braceright ] }; + + key { [ 0x010010d0, A, 0x010010fa ] }; + key { [ 0x010010e1, 0x010010e8 ] }; + key { [ 0x010010d3, D ] }; + key { [ 0x010010e4, F, 0x010010f6 ] }; + key { [ 0x010010d2, G, 0x010010f9 ] }; + key { [ 0x010010f0, H, 0x010010f5 ] }; + key { [ 0x010010ef, 0x010010df, 0x010010f7 ] }; + key { [ 0x010010d9, K ] }; + key { [ 0x010010da, L ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + key { [ backslash, bar, asciitilde, asciitilde ] }; + + key { [ guillemotleft,guillemotright ] }; + key { [ 0x010010d6, 0x010010eb ] }; + key { [ 0x010010ee, X, 0x010010f4 ] }; + key { [ 0x010010ea, 0x010010e9, 0x010000a9 ] }; + key { [ 0x010010d5, V, 0x010010f3 ] }; + key { [ 0x010010d1, B ] }; + key { [ 0x010010dc, N, 0x010010fc ] }; + key { [ 0x010010db, M ] }; + key { [ comma, less, guillemotleft ] }; + key { [ period, greater, guillemotright ] }; + key { [ slash, question, 0x010010fb ] }; + + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys +xkb_symbols "qwerty" { + include "ge(basic)" +}; + +partial alphanumeric_keys +xkb_symbols "ergonomic" { + include "ge(basic)" + + name[Group1]= "Georgian (ergonomic)"; + + key { [ 0x0100201e, apostrophe, 0x0100201e, asciitilde ] }; + key { [ exclam, 1, exclam ] }; + key { [ 0x01002116, 2, at ] }; + key { [ comma, 3, numbersign, section ] }; + key { [ semicolon, 4, dollar ] }; + key { [ percent, 5, EuroSign ] }; + key { [ colon, 6, asciicircum ] }; + key { [ question, 7, ampersand ] }; + key { [ period, 8, asterisk, degree ] }; + key { [ parenleft, 9, parenleft, guillemotleft ] }; + key { [ parenright, 0, parenright, guillemotright ] }; + key { [ minus, plus, 0x01002014, underscore ] }; + key { [ 0x0100201c, equal, equal ] }; + + key { [ 0x010010e9, noSymbol ] }; + key { [ 0x010010de, noSymbol ] }; + key { [ 0x010010e3, noSymbol ] }; + key { [ 0x010010eb, noSymbol, noSymbol, 0x010000ae ] }; + key { [ 0x010010ed, noSymbol, noSymbol, 0x010010d7 ] }; + key { [ 0x010010e2, noSymbol, noSymbol, 0x010010f8 ] }; + key { [ 0x010010d7, noSymbol ] }; + key { [ 0x010010dc, noSymbol, 0x010010fc, I ] }; + key { [ 0x010010d5, noSymbol, 0x010010f3 ] }; + key { [ 0x010010e8, noSymbol ] }; + key { [ 0x010010d9, noSymbol, bracketleft, braceleft ] }; + key { [ 0x010010e5, noSymbol, bracketright,braceright ] }; + + key { [ 0x010010ee, noSymbol, 0x010010f4 ] }; + key { [ 0x010010d8, noSymbol, 0x010010f2 ] }; + key { [ 0x010010d0, noSymbol, 0x010010fa, D ] }; + key { [ 0x010010d4, noSymbol, 0x010010f1 ] }; + key { [ 0x010010dd, noSymbol ] }; + key { [ 0x010010d3, noSymbol ] }; + key { [ 0x010010db, noSymbol ] }; + key { [ 0x010010e1, noSymbol ] }; + key { [ 0x010010e0, noSymbol, L ] }; + key { [ 0x010010d1, noSymbol, colon ] }; + key { [ 0x010010d2, noSymbol, 0x010010f9, quotedbl ] }; + key { [ slash, section, backslash, bar ] }; + + key { [ guillemotleft,guillemotright ] }; + key { [ 0x010010ef, noSymbol ] }; + key { [ 0x010010f0, noSymbol, 0x010010f5, X ] }; + key { [ 0x010010e7, noSymbol, 0x010010f8, C ] }; + key { [ 0x010010e6, noSymbol, 0x010010f7, V ] }; + key { [ 0x010010df, noSymbol ] }; + key { [ 0x010010d6, noSymbol ] }; + key { [ 0x010010ea, noSymbol, noSymbol, M ] }; + key { [ 0x010010da, noSymbol, guillemotleft, less ] }; + key { [ 0x010010e4, noSymbol, 0x010010f6, guillemotright ] }; + key { [ 0x010010ec, noSymbol, 0x010010fb ] }; + + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys +xkb_symbols "mess" { + include "ge(basic)" + + name[Group1]= "Georgian (MESS)"; + + key { [ 0x010010ed, backslash, grave ] }; + key { [ 1, exclam, apostrophe ] }; + key { [ 2, at, asciitilde ] }; + key { [ 3, 0x01002116, numbersign ] }; + key { [ 4, dollar, EuroSign ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand, section ] }; + key { [ 8, asterisk, degree ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright, 0x01002014 ] }; + key { [ minus, underscore, 0x01002013 ] }; + key { [ 0x010010df, plus, bar ] }; + key { [ 0x010010e5, Q ] }; + key { [ 0x010010ec, W ] }; + key { [ 0x010010d4, E ] }; + key { [ 0x010010e0, R ] }; + key { [ 0x010010e2, T ] }; + key { [ 0x010010e7, Y ] }; + key { [ 0x010010e3, U ] }; + key { [ 0x010010d8, I, 0x010010f2 ] }; + key { [ 0x010010dd, O ] }; + key { [ 0x010010de, P ] }; + key { [ 0x010010e8, bracketleft, guillemotleft ] }; + key { [ 0x010010e6, bracketright, guillemotright ] }; + key { [ 0x010010d0, A, 0x010010fa ] }; + key { [ 0x010010e1, S ] }; + key { [ 0x010010d3, D ] }; + key { [ 0x010010e4, F, 0x010010f6 ] }; + key { [ 0x010010d2, G, 0x010010f9 ] }; + key { [ 0x010010f0, H, 0x010010f1 ] }; + key { [ 0x010010ef, J, 0x010010f7 ] }; + key { [ 0x010010d9, K ] }; + key { [ 0x010010da, L ] }; + key { [ 0x010010d7,0x0100201e ] }; + key { [ 0x010010e9,0x0100201c ] }; + key { [ equal, slash, bar ] }; + + key { [ guillemotleft, guillemotright ] }; + key { [ 0x010010d6, Z, 0x010010f5 ] }; + key { [ 0x010010ee, X, 0x010010f4 ] }; + key { [ 0x010010ea, C ] }; + key { [ 0x010010d5, V, 0x010010f3 ] }; + key { [ 0x010010d1, B ] }; + key { [ 0x010010dc, N, 0x010010fc ] }; + key { [ 0x010010db, M ] }; + key { [ comma, semicolon, less ] }; + key { [ period, colon, greater ] }; + key { [ 0x010010eb, question, 0x010010fb ] }; + + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys +xkb_symbols "ru" { + + name[Group1]= "Russian (Georgia)"; + + key { [ asciicircum, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, semicolon ] }; + key { [ 5, colon ] }; + key { [ 6, comma ] }; + key { [ 7, period ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ numbersign, bar ] }; + + key { [ 0x010010e6, q ] }; + key { [ 0x010010ea, w ] }; + key { [ 0x010010e3, e ] }; + key { [ 0x010010d9, r ] }; + key { [ 0x010010d4, t ] }; + key { [ 0x010010dc, y ] }; + key { [ 0x010010d2, u ] }; + key { [ 0x010010e8, i ] }; + key { [ 0x010010ec, o ] }; + key { [ 0x010010d6, p ] }; + key { [ 0x010010ee, bracketleft ] }; + key { [ 0x010010ef, bracketright ] }; + + key { [ 0x010010e4, a ] }; + key { [ 0x010010d7, s ] }; + key { [ 0x010010d5, d ] }; + key { [ 0x010010d0, f ] }; + key { [ 0x010010de, g ] }; + key { [ 0x010010e0, h ] }; + key { [ 0x010010dd, j ] }; + key { [ 0x010010da, k ] }; + key { [ 0x010010d3, l ] }; + key { [ 0x010010df, semicolon ] }; + key { [ 0x010010eb, percent ] }; + key { [ backslash, bar ] }; + + key { [ guillemotleft,guillemotright ] }; + key { [ 0x010010ed, z ] }; + key { [ 0x010010e9, x ] }; + key { [ 0x010010e1, c ] }; + key { [ 0x010010db, v ] }; + key { [ 0x010010d8, b ] }; + key { [ 0x010010e2, n ] }; + key { [ 0x010010e5, m ] }; + key { [ 0x010010d1, less ] }; + key { [ 0x010010e7, greater ] }; + key { [ 0x010010f0, question ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "os" { + + include "ru(os_legacy)" + + name[Group1]= "Ossetian (Georgia)"; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/gh b/squashfs-root/usr/share/X11/xkb/symbols/gh new file mode 100644 index 0000000..7044086 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/gh @@ -0,0 +1,151 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "us" + + name[Group1]= "English (Ghana)"; + + key { [ 4, 0x010020B5, dollar, cent ] }; + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "akan" { + include "gh(basic)" + + name[Group1]= "Akan"; + + key { [ 0x0100025B, 0x01000190, q, Q ] }; + key { [ 0x01000254, 0x01000186, x, X ] }; +}; + +partial alphanumeric_keys +xkb_symbols "ga" { + include "gh(basic)" + + name[Group1]= "Ga"; + + key { [ 0x0100025B, 0x01000190, q, Q ] }; + key { [ 0x01000254, 0x01000186, x, X ] }; + key { [ 0x0100014B, 0x0100014A, c, C ] }; +}; + +partial alphanumeric_keys +xkb_symbols "ewe" { + include "gh(basic)" + + name[Group1]= "Ewe"; + + key { [ 0x0100025B, 0x01000190, q, Q ] }; + key { [ 0x0100014B, 0x0100014A, c, C ] }; + key { [ 0x01000254, 0x01000186, braceleft, braceleft ] }; + key { [ 0x0100028B, 0x010001B2, braceright, braceright ] }; + key { [ 0x01000256, 0x01000189, backslash, backslash ] }; + key { [ 0x01000192, 0x01000191, j, J ] }; + key { [ g, G, 0x01000263, 0x01000194 ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "fula" { + include "gh(basic)" + + name[Group1]= "Fula"; + + key { [ 0x01000071, 0x01000051, q, Q ] }; + key { [ udiaeresis, Udiaeresis, w, W ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ 0x010001B4, 0x010001B3,bracketleft, braceleft ] }; + key { [ gcaron, Gcaron,bracketright, braceright] }; + key { [ 0x01000257, 0x0100018A, d, D ] }; + key { [ 0x01000131, 0x01000130, semicolon, colon ] }; + key { [ 0x010001DD, 0x0100018E,apostrophe, quotedbl ] }; + key { [ 0x01000272, 0x0100019D, z, Z ] }; + key { [ ntilde, Ntilde, m, M ] }; + key { [ ccedilla, Ccedilla, period, greater ] }; + key { [ scedilla, Scedilla, slash, question ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "hausa" { + include "gh(fula)" + + name[Group1]= "Hausa (Ghana)"; +}; + +partial alphanumeric_keys +xkb_symbols "generic" { + include "gh(basic)" + + name[Group1]= "English (Ghana, multilingual)"; + + key { [ e, E, 0x0100025b, 0x01000190 ] }; + key { [ c, C, 0x01000254, 0x01000186 ] }; + key { [ d, D, 0x01000256, 0x01000189 ] }; + key { [ f, F, 0x01000192, 0x01000191 ] }; + key { [ g, G, 0x01000263, 0x01000194 ] }; + key { [ n, N, 0x0100014b, 0x0100014a ] }; + key { [ z, Z, 0x010001B6, 0x010001B5 ] }; + key { [ v, V, 0x0100028B, 0x010001B2 ] }; + key { [ 4, dollar, 0x010020B5, cent ] }; + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys +xkb_symbols "avn" { + include "gh(basic)" + + name[Group1]= "Avatime"; + + key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; // combining grave; combining tilde + key { [ 4, dollar, cent, 0x010020B5 ] }; // ¢, ₵ + key { [ minus, underscore, 0x01000304, 0x01000304 ] }; // combining macron + key { [ 0x0100028B, 0x010001B2 ] }; // ʋ, Ʋ + key { [ u, U, 0x0100028A, 0x010001B1 ] }; // ʊ, Ʊ + key { [ i, I, 0x01000269, 0x01000196 ] }; // ɩ, Ɩ + key { [ 0x0100025B, 0x01000190, bracketleft, braceleft ] }; // ɛ, Ɛ + key { [ d, D, 0x01000256, 0x01000189 ] }; // ɖ, Ɖ + key { [ f, F, 0x01000192, 0x01000191 ] }; // ƒ, Ƒ + key { [ 0x0100014B, 0x0100014A ] }; // ŋ, Ŋ + key { [ apostrophe, quotedbl, 0x01000301, 0x01000301 ] }; // combining acute + key { [ 0x01000254, 0x01000186 ] }; // ɔ, Ɔ + + include "level3(ralt_switch)" + +}; + +// This keyboard layout fully imitates the 'Ghana Unicode' layout which is used in GILLBT on Windows with Keyman. +// However, in this layout a 3rd level key (R ALT) is used rather than dead keys. +// Also it has three additional features: +// 1) combining macron above: + + <-> +// 2) cent: + <4> or + + <4> +// 3) ʊ/Ʊ: + / + +partial alphanumeric_keys +xkb_symbols "gillbt" { + include "gh(basic)" + + name[Group1]= "English (Ghana, GILLBT)"; + + key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; // combining grave; combining tilde + key { [ 4, dollar, cent, 0x010020B5 ] }; // ¢, ₵ + key { [ 6, asciicircum, 0x01000302, 0x01000302 ] }; // combining circumflex accent + key { [ minus, underscore, 0x01000331, 0x01000304 ] }; // combining macron below; combining macron above + key { [ 0x0100014B, 0x0100014A, equal, plus ] }; // ŋ, Ŋ + key { [ 0x0100028B, 0x010001B2, q, Q ] }; // ʋ, Ʋ + key { [ e, E, 0x010001DD, 0x0100018E ] }; // ǝ, Ǝ + key { [ u, U, 0x0100028A, 0x010001B1 ] }; // ʊ, Ʊ + key { [ 0x0100025B, 0x01000190, bracketleft, braceleft ] }; // ɛ, Ɛ + key { [ 0x01000254, 0x01000186, bracketright, braceright ] }; // ɔ, Ɔ + key { [ d, D, 0x01000256, 0x01000189 ] }; // ɖ, Ɖ + key { [ f, F, 0x01000192, 0x01000191 ] }; // ƒ, Ƒ + key { [ g, G, 0x01000263, 0x01000194 ] }; // ɣ, Ɣ + key { [ apostrophe, quotedbl, 0x01000301, 0x01000301 ] }; // combining acute + key { [ z, Z, 0x01000292, 0x010001B7 ] }; // ʒ, Ʒ + key { [ 0x01000269, 0x01000196, x, X ] }; // ɩ, Ɩ + key { [ c, C, 0x010000E7, 0x010000C7 ] }; // ç, Ç + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/gn b/squashfs-root/usr/share/X11/xkb/symbols/gn new file mode 100644 index 0000000..40aa1e3 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/gn @@ -0,0 +1,61 @@ +// based on us_intl keyboard map file and a Sinhala keyboard map +// version 0.3 + +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]="French (Guinea)"; + + key { [0x010007F1, 0x010007C1 ] }; + key { [0x010007EB, 0x010007C2 ] }; + key { [0x010007F5, 0x010007C3, numbersign, sterling ] }; + key { [0x010007F4, 0x010007C4, 0x01002E1C, dollar ] }; + key { [ parenleft, 0x010007C5, 0x01002E1D ] }; + key { [ minus, 0x010007C6, bar ] }; + key { [0x010007EC, 0x010007C7, grave ] }; + key { [0x010007FA, 0x010007C8, backslash ] }; + key { [0x010007ED, 0x010007C9, asciicircum, plusminus ] }; + key { [0x010007EE, 0x010007C0, at, degree ] }; + key { [parenright ] }; + key { [ equal, plus, braceright ] }; + + key { [0x010007CA ] }; + key { [0x010007E0, less ] }; + key { [0x010007CD,0x010007CB ] }; + key { [0x010007D9,0x010007DA ] }; + key { [0x010007D5 ] }; + key { [0x010007E6,0x010007E7 ] }; + key { [0x010007CE,0x010007F6 ] }; + key { [0x010007CC ] }; + key { [0x010007D0,0x010007CF ] }; + key { [0x010007D4 ] }; + key { [0x010007F3 ] }; + key { [ dollar, sterling, currency ] }; + + key { [0x010007EB ] }; + key { [0x010007DB ] }; + key { [0x010007D8 ] }; + key { [0x010007DD ] }; + key { [0x010007DC,0x010007F7 ] }; + key { [0x010007E4 ] }; + key { [0x010007D6,0x010007E8 ] }; + key { [0x010007DE ] }; + key { [0x010007DF,0x010007EA ] }; + key { [0x010007E1 ] }; + key { [0x010007EF, 0x010007F8, percent ] }; + key { [0x010007EC, asciitilde, notsign ] }; + + key { [0x010007D1, asterisk ] }; + key { [0x010007E5 ] }; + key { [0x0100060C ] }; + key { [0x010007D7,0x010007E9 ] }; + key { [0x010007E2 ] }; + key { [0x010007D3 ] }; + key { [0x010007E3,0x010007D2 ] }; + key { [0x010007F8,0x0100061F ] }; + key { [0x0100061B ] }; + key { [0x0100060C, slash ] }; + key { [0x010007F9] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/gr b/squashfs-root/usr/share/X11/xkb/symbols/gr new file mode 100644 index 0000000..bb348da --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/gr @@ -0,0 +1,203 @@ +// Hellenic keyboard map for X.org +// +// Original version: +// Kostas Gewrgiou +// Heavily modified and maintained by: +// Vasilis Vasaitis +// Originally converted to single group form by: +// Ivan Pascal + +default partial alphanumeric_keys alternate_group +xkb_symbols "basic" { + include "gr(simple)" + + name[Group1] = "Greek"; + + include "eurosign(e)" + include "eurosign(5)" + include "kpdl(comma)" + include "level3(ralt_switch)" + + key { [ NoSymbol, NoSymbol, U037D, U03FF ] }; + key { [ NoSymbol, NoSymbol, rightarrow, leftarrow ] }; + key { [ NoSymbol, NoSymbol, copyright ] }; + key { [ NoSymbol, NoSymbol, U03D6 ] }; + key { [ NoSymbol, NoSymbol, U03D0 ] }; + key { [ NoSymbol, NoSymbol, U0374, U0375 ] }; + key { [ NoSymbol, NoSymbol, U03FB, U03FA ] }; + key { [ NoSymbol, NoSymbol, guillemotleft ] }; + key { [ NoSymbol, NoSymbol, guillemotright, periodcentered ] }; + key { [ NoSymbol, NoSymbol, downarrow, uparrow ] }; + key { [ NoSymbol, NoSymbol, U03D5 ] }; + key { [ NoSymbol, NoSymbol, U03DD, U03DC ] }; + key { [ NoSymbol, NoSymbol, U037C, U03FE ] }; + key { [ NoSymbol, NoSymbol, U03DF, U03DE ] }; + key { [ NoSymbol, NoSymbol, U03F2, U03F9 ] }; + key { [ NoSymbol, NoSymbol, dead_acute, dead_psili ] }; + key { [ NoSymbol, NoSymbol, dead_grave, dead_dasia ] }; + key { [ NoSymbol, NoSymbol, periodcentered ] }; + key { [ NoSymbol, NoSymbol, U03DB, U03DA ] }; + key { [ NoSymbol, NoSymbol, registered, U03F1 ] }; + key { [ NoSymbol, NoSymbol, U03D1, U03F4 ] }; + key { [ NoSymbol, NoSymbol, U037B, U03FD ] }; + key { [ NoSymbol, NoSymbol, U03E1, U03E0 ] }; + key { [ NoSymbol, NoSymbol, dead_tilde, dead_macron ] }; + key { [ NoSymbol, NoSymbol, dead_iota, dead_breve ] }; + key { [ NoSymbol, NoSymbol, NoSymbol, onesuperior ] }; + key { [ NoSymbol, NoSymbol, onehalf, twosuperior ] }; + key { [ NoSymbol, NoSymbol, sterling, threesuperior ] }; + key { [ NoSymbol, NoSymbol, onequarter, threequarters ] }; + key { [ NoSymbol, NoSymbol, U03F0 ] }; + key { [ NoSymbol, NoSymbol, degree ] }; +}; + +partial alphanumeric_keys alternate_group +xkb_symbols "simple" { + + include "gr(bare)" + + name[Group1] = "Greek (simple)"; + + key { [ grave, asciitilde ] }; // ` ~ + key { [ 1, exclam ] }; // 1 ! + key { [ 2, at ] }; // 2 @ + key { [ 3, numbersign ] }; // 3 # + key { [ 4, dollar ] }; // 4 $ + key { [ 5, percent ] }; // 5 % + key { [ 6, asciicircum ] }; // 6 ^ + key { [ 7, ampersand ] }; // 7 & + key { [ 8, asterisk ] }; // 8 * + key { [ 9, parenleft ] }; // 9 ( + key { [ 0, parenright ] }; // 0 ) + key { [ minus, underscore ] }; // - _ + key { [ equal, plus ] }; // = + + + key { [ bracketleft, braceleft ] }; // [ { + key { [ bracketright, braceright ] }; // ] } + + key { [ apostrophe, quotedbl ] }; // ' " + + key { [ comma, less ] }; // , < + key { [ period, greater ] }; // . > + key { [ slash, question ] }; // / ? + key { [ backslash, bar ] }; // \ | + + include "kpdl(comma)" +}; + +hidden partial alphanumeric_keys alternate_group +xkb_symbols "bare" { + + key { [ semicolon, colon ] }; // ; : + key { [ Greek_finalsmallsigma, Greek_SIGMA ] }; // ς Σ + key { [ Greek_epsilon, Greek_EPSILON ] }; // ε Ε + key { [ Greek_rho, Greek_RHO ] }; // ρ Ρ + key { [ Greek_tau, Greek_TAU ] }; // τ Τ + key { [ Greek_upsilon, Greek_UPSILON ] }; // υ Υ + key { [ Greek_theta, Greek_THETA ] }; // θ Θ + key { [ Greek_iota, Greek_IOTA ] }; // ι Ι + key { [ Greek_omicron, Greek_OMICRON ] }; // ο Ο + key { [ Greek_pi, Greek_PI ] }; // π Π + + key { [ Greek_alpha, Greek_ALPHA ] }; // α Α + key { [ Greek_sigma, Greek_SIGMA ] }; // σ Σ + key { [ Greek_delta, Greek_DELTA ] }; // δ Δ + key { [ Greek_phi, Greek_PHI ] }; // φ Φ + key { [ Greek_gamma, Greek_GAMMA ] }; // γ Γ + key { [ Greek_eta, Greek_ETA ] }; // η Η + key { [ Greek_xi, Greek_XI ] }; // ξ Ξ + key { [ Greek_kappa, Greek_KAPPA ] }; // κ Κ + key { [ Greek_lamda, Greek_LAMDA ] }; // λ Λ + key { [ dead_acute, dead_diaeresis ] }; // ´ ¨ + + key { [ Greek_zeta, Greek_ZETA ] }; // ζ Ζ + key { [ Greek_chi, Greek_CHI ] }; // χ Χ + key { [ Greek_psi, Greek_PSI ] }; // ψ Ψ + key { [ Greek_omega, Greek_OMEGA ] }; // ω Ω + key { [ Greek_beta, Greek_BETA ] }; // β Β + key { [ Greek_nu, Greek_NU ] }; // ν Ν + key { [ Greek_mu, Greek_MU ] }; // μ Μ + + key { [ guillemotleft, guillemotright ] }; // « » +}; + +// =========================================================================================== +// Greek - Extended | +// =========================================================================================== +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━━┓ +// │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + ┃Backspace ┃ +// │ ` │ 1 │ 2 │ 3 £ │ 4 │ 5 € │ 6 │ 7 │ 8 │ 9 │ 0 ° │ - ± │ = ┃ ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━━━┫ +// ┃ ┃ : │ Σ │ Ε │ Ρ │ Τ │ Υ │ Θ │ Ι │ Ο │ Π │ { │ } ┃Enter ┃ +// ┃Tab ┃ ; · │ ς │ ε € │ ρ ® │ τ │ υ │ θ │ ι │ ο │ π │ [ │ ] ┃ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃Caps ┃ Α │ Σ │ Δ │ Φ │ Γ │ Η │ Ξ │ Κ │ Λ │ ¨ │ " │ | ┃ ┃ +// ┃Lock ┃ α │ σ │ δ │ φ │ γ │ η │ ξ │ κ │ λ │ ´ │ ' │ \ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━━━┫ +// ┃ ┃ » │ Ζ │ Χ │ Ψ │ Ω │ Β │ Ν │ Μ │ < │ > │ ? ┃ ┃ +// ┃Shift ┃ « │ ζ │ χ │ ψ © │ ω │ β │ ν │ μ │ , « │ . » │ / ┃Shift ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴──┲━━┷━━━━┳┷━━━━━┻┳━━━━━━━┳━━━━━━┫ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ Space ┃AltGr ┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹──────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━┛ + +partial alphanumeric_keys alternate_group +xkb_symbols "extended" { + + include "gr(simple)" + + name[Group1] = "Greek (extended)"; + + key.type[Group1] = "THREE_LEVEL"; + + key { [ NoSymbol, NoSymbol, sterling ] }; // £ + key { [ NoSymbol, NoSymbol, degree ] }; // ° + key { [ NoSymbol, NoSymbol, plusminus ] }; // ± + + key { [ NoSymbol, NoSymbol, periodcentered ] }; // · + key { [ NoSymbol, NoSymbol, registered ] }; // ® + + key { [ NoSymbol, NoSymbol, copyright ] }; // © + key { [ NoSymbol, NoSymbol, guillemotleft ] }; // « + key { [ NoSymbol, NoSymbol, guillemotright ] }; // » + + include "level3(ralt_switch)" + include "eurosign(5)" + include "eurosign(e)" +}; + +partial alphanumeric_keys alternate_group +xkb_symbols "polytonic" { + + include "gr(extended)" + + name[Group1] = "Greek (polytonic)"; + + key.type[Group1] = "THREE_LEVEL"; + + key { [ dead_tilde, dead_diaeresis, dead_macron ] }; // ~ ¨ ¯ + key { [ dead_iota, VoidSymbol, dead_breve ] }; // ͺ ˘ + + key { [ dead_acute, dead_psili ] }; // ´ ̓ + key { type[Group1]="FOUR_LEVEL", + [ dead_grave, dead_dasia, apostrophe, quotedbl ] }; + // ` ̔ ' " +}; + +partial alphanumeric_keys alternate_group +xkb_symbols "nodeadkeys" { + + include "gr(simple)" + + name[Group1] = "Greek (no dead keys)"; + + key { [ semicolon, colon ] }; // ; : +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/gr(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/group b/squashfs-root/usr/share/X11/xkb/symbols/group new file mode 100644 index 0000000..12f35a4 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/group @@ -0,0 +1,469 @@ +// The right Alt key (while pressed) chooses the second keyboard group. +partial modifier_keys +xkb_symbols "switch" { + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr + }; +}; + +// The left Alt key (while pressed) chooses the second keyboard group. +partial modifier_keys +xkb_symbols "lswitch" { + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr + }; +}; + +// Either Win key (while pressed) chooses the second keyboard group. +partial modifier_keys +xkb_symbols "win_switch" { + include "group(lwin_switch)" + include "group(rwin_switch)" +}; + +// The left Win key (while pressed) chooses the second keyboard group. +// (Using this map, you should declare your keyboard as pc101 or pc102 +// instead of pc104 or pc105.) +partial modifier_keys +xkb_symbols "lwin_switch" { + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr + }; +}; + +// The right Win key (while pressed) chooses the second keyboard group. +// (Using this map, you should declare your keyboard as pc101 or pc102 +// instead of pc104 or pc105.) +partial modifier_keys +xkb_symbols "rwin_switch" { + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr + }; +}; + +// The right Menu key (while pressed) chooses the second keyboard group. +// while Shift+Menu acts as Menu. +partial modifier_keys +xkb_symbols "menu_switch" { + key { + symbols[Group1] = [ Mode_switch, Menu ], + virtualMods= AltGr + }; +}; + +// The right Ctrl key (while pressed) chooses the second keyboard group. +// (Needed mainly for the Canadian keyboard.) +partial modifier_keys +xkb_symbols "rctrl_switch" { + key { + symbols[Group1] = [ Mode_switch ] + }; +}; + +// Pressing the right Alt key switches to the next group. +partial modifier_keys +xkb_symbols "toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing both Shift keys switches to the next or previous group +// (depending on which Shift is pressed first). +partial modifier_keys +xkb_symbols "shifts_toggle" { + key { [ Shift_L, ISO_Prev_Group ] }; + key { [ Shift_R, ISO_Next_Group ] }; +}; + +// Pressing Shift+Caps_Lock switches to the next group. +partial modifier_keys +xkb_symbols "shift_caps_toggle" { + key { [ Caps_Lock, ISO_Next_Group ] }; +}; + +// Pressing Caps_Lock selects the first group, +// pressing Shift+Caps_Lock selects the last group. +partial modifier_keys +xkb_symbols "shift_caps_switch" { + key { [ ISO_First_Group, ISO_Last_Group ] }; +}; + +// toggle using win + space as combo +partial modifier_keys +xkb_symbols "win_space_toggle" { + key { + type="PC_SUPER_LEVEL2", + symbols[Group1]= [ space, ISO_Next_Group ], + symbols[Group2]= [ space, ISO_Next_Group ] + }; +}; + +// Pressing the left Win key selects the first group, +// pressing the right Win or the Menu key selects the last group. +partial modifier_keys +xkb_symbols "win_menu_switch" { + virtual_modifiers AltGr; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_First_Group ] + }; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Last_Group ] + }; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Last_Group ] + }; +}; + +// Pressing the left Ctrl key selects the first group, +// pressing the right Ctrl key selects the last group. +partial modifier_keys +xkb_symbols "lctrl_rctrl_switch" { + virtual_modifiers AltGr; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_First_Group ] + }; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Last_Group ] + }; +}; + + +// +// CTRL-SHIFT toggle section +// +partial modifier_keys +xkb_symbols "lctrl_lshift_toggle" { + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ Shift_L, ISO_Next_Group ] + }; + key { [ Control_L, ISO_Next_Group ] }; +}; + +partial modifier_keys +xkb_symbols "lctrl_lshift_toggle_rev" { + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ Shift_L, ISO_Prev_Group ] + }; + key { [ Control_L, ISO_Prev_Group ] }; +}; + +partial modifier_keys +xkb_symbols "rctrl_rshift_toggle" { + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ Shift_R, ISO_Next_Group ] + }; + key { [ Control_R, ISO_Next_Group ] }; +}; + +partial modifier_keys +xkb_symbols "ctrl_shift_toggle" { + include "group(lctrl_lshift_toggle)" + include "group(rctrl_rshift_toggle)" +}; + +partial modifier_keys +xkb_symbols "ctrl_shift_toggle_bidir" { + include "group(lctrl_lshift_toggle_rev)" + include "group(rctrl_rshift_toggle)" +}; + + +// +// CTRL-ALT toggle section +// +partial modifier_keys +xkb_symbols "lctrl_lalt_toggle" { + virtual_modifiers Alt; + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Control_L, ISO_Next_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "lctrl_lalt_toggle_rev" { + virtual_modifiers Alt; + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Control_L, ISO_Prev_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "rctrl_ralt_toggle" { + virtual_modifiers Alt; + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Control_R, ISO_Next_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "ctrl_alt_toggle" { + include "group(lctrl_lalt_toggle)" + include "group(rctrl_ralt_toggle)" +}; + +partial modifier_keys +xkb_symbols "ctrl_alt_toggle_bidir" { + include "group(lctrl_lalt_toggle_rev)" + include "group(rctrl_ralt_toggle)" +}; + + +// +// ALT-SHIFT toggle section +// +partial modifier_keys +xkb_symbols "lalt_lshift_toggle" { + virtual_modifiers Alt; + key { + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Shift_L, ISO_Next_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "lalt_lshift_toggle_rev" { + virtual_modifiers Alt; + key { + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Shift_L, ISO_Prev_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "ralt_rshift_toggle" { + virtual_modifiers Alt; + key { + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Shift_R, ISO_Next_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "alt_shift_toggle" { + include "group(lalt_lshift_toggle)" + include "group(ralt_rshift_toggle)" +}; + +partial modifier_keys +xkb_symbols "alt_shift_toggle_bidir" { + include "group(lalt_lshift_toggle_rev)" + include "group(ralt_rshift_toggle)" +}; + + +// Pressing the Menu key switches to the next group, +// while Shift+Menu acts as Menu. +partial modifier_keys +xkb_symbols "menu_toggle" { + key { [ ISO_Next_Group, Menu ] }; +}; + +// Pressing the left Win key switches to the next group. +// (Using this map, you should declare your keyboard as +// pc101 or pc102 instead of pc104 or pc105.) +partial modifier_keys +xkb_symbols "lwin_toggle" { + virtual_modifiers AltGr; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Next_Group ] + }; +}; + +// Pressing the right Win key switches to the next group. +// (Using this map, you should declare your keyboard as +// pc101 or pc102 instead of pc104 or pc105.) +partial modifier_keys +xkb_symbols "rwin_toggle" { + virtual_modifiers AltGr; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Next_Group ] + }; +}; + +// Pressing both Ctrl keys switches to the next or previous group +// (depending on which Ctrl is pressed first). +partial modifier_keys +xkb_symbols "ctrls_toggle" { + virtual_modifiers LControl, RControl; + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], + virtualMods= LControl + }; + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= RControl + }; +}; + +// Pressing both Alt switches to the next or previous group +// (depending on which Alt is pressed first). +partial modifier_keys +xkb_symbols "alts_toggle" { + virtual_modifiers LAlt, RAlt; + key { + type[Group1]="PC_RALT_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], + virtualMods= LAlt + }; + key { + type[Group1]="PC_LALT_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= RAlt + }; +}; + +// Pressing the left Shift key switches to the next group. +partial modifier_keys +xkb_symbols "lshift_toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing the right Shift key switches to the next group. +partial modifier_keys +xkb_symbols "rshift_toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing the left Alt key switches to the next group. +partial modifier_keys +xkb_symbols "lalt_toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing the left Ctrl key switches to the next group. +partial modifier_keys +xkb_symbols "lctrl_toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing the right Ctrl key switches to the next group. +partial modifier_keys +xkb_symbols "rctrl_toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing Alt+Caps_Lock switches to the next group, +// pressing Caps_Lock toggles CapsLock. +partial modifier_keys +xkb_symbols "alt_caps_toggle" { + key { + type="PC_ALT_LEVEL2", + symbols[Group1] = [ Caps_Lock, ISO_Next_Group ] + }; +}; + +hidden partial modifier_keys +xkb_symbols "olpc" { + key { [ ISO_Next_Group, ISO_Prev_Group ] }; +}; + +partial modifier_keys +xkb_symbols "alt_space_toggle" { + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ space, ISO_Next_Group ] + }; +}; + +// Pressing the Scroll Lock key switches to the next group, +partial modifier_keys +xkb_symbols "sclk_toggle" { + virtual_modifiers AltGr; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Next_Group ] + }; +}; + +// Control_L+Win_L selects the first group (presumably Lat), +// Control_R+Menu selects the second group (presumably Rus). +partial modifier_keys +xkb_symbols "lctrl_lwin_rctrl_menu" { + key { + type[Group1] = "PC_CONTROL_LEVEL2", + symbols[Group1] = [ Super_L, ISO_First_Group ] + }; + key { + type[Group1] = "PC_CONTROL_LEVEL2", + symbols[Group1] = [ Menu, ISO_Last_Group ] + }; +}; + +// Control_L+Win_L toggles groups. +partial modifier_keys +xkb_symbols "lctrl_lwin_toggle" { + key { + type[ Group1 ] = "PC_CONTROL_LEVEL2", + symbols[ Group1 ] = [ Super_L, ISO_Next_Group ] + }; +}; + diff --git a/squashfs-root/usr/share/X11/xkb/symbols/hp_vndr/us b/squashfs-root/usr/share/X11/xkb/symbols/hp_vndr/us new file mode 100644 index 0000000..8bbe2e6 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/hp_vndr/us @@ -0,0 +1,103 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +// US/ASCII layout for a HP non-PC keyboard +xkb_symbols "hil" { + include "us(basic)" + + // A few alphanumeric keys are different + key { [ grave, asciitilde ]}; + key { [ Shift_R ]}; + key { [ Meta_L ]}; + key { [ Meta_R ]}; + // End alphanumeric section + + // Begin "Function" section + key { [ Break ]}; + key { [ Cancel ]}; + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ Menu ] }; + key { [ hpSystem ]}; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ hpClearLine ]}; + key { [ Clear ]}; + key { [ F9 ] }; + key { [ F10 ] }; + key { [ F11 ] }; + key { [ F12 ] }; + // End "Function" section + + // Begin "Editing" section + key { [ Execute, Print ]}; + key { [ hpInsertLine ]}; + key { [ hpDeleteLine ]}; + key { [ hpInsertChar ]}; + key { [ hpDeleteChar ]}; + key { [ Home ] }; + key { [ Prior ] }; + key { [ Next ] }; + key { [ Select ] }; + key { [ Left ] }; + key { [ Down ] }; + key { [ Up ] }; + key { [ Right ]}; + // End "Editing" section + + // Begin "Keypad" section + key { [ KP_Multiply ]}; + key { [ KP_Divide ]}; + key { [ KP_Add ]}; + key { [ KP_Subtract ]}; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + key { [ KP_Enter ]}; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + key { [ KP_Separator ]}; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + key { [ KP_Tab ]}; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; + // End "Keypad" section + + modifier_map Shift { Shift_R }; + modifier_map Mod1 { Meta_L, Meta_R }; + modifier_map Mod2 { Alt_L }; + modifier_map Mod3 { Mode_switch }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/hr b/squashfs-root/usr/share/X11/xkb/symbols/hr new file mode 100644 index 0000000..3548b50 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/hr @@ -0,0 +1,66 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "rs(latin)" + name[Group1]="Croatian"; + + // Redefine these keys to match the XFree86 Croatian layout. + key { [ 1, exclam, asciitilde, dead_tilde ] }; + key { [ 3, numbersign, asciicircum, dead_circumflex ] }; + key { [ 5, percent, degree, dead_abovering ] }; + key { [ 7, slash, grave, dead_grave ] }; + key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; +}; + +partial alphanumeric_keys +xkb_symbols "us" { + + include "us" + name[Group1]= "Croatian (US, with Croatian letters)"; + + key { [ any, any, backslash ] }; + key { [ any, any, bar ] }; + key { [ any, any, EuroSign ] }; + key { [ any, any, z, Z ] }; + key { [ any, any, scaron, Scaron ] }; + key { [ any, any, dstroke, Dstroke ] }; + key { [ any, any, bracketleft ] }; + key { [ any, any, bracketright ] }; + key { [ any, any, lstroke ] }; + key { [ any, any, Lstroke ] }; + key { [ any, any, ccaron, Ccaron ] }; + key { [ any, any, cacute, Cacute ] }; + key { [ any, any, bar ] }; + key { [ any, any, y, Y ] }; + key { [ any, any, at ] }; + key { [ any, any, braceleft ] }; + key { [ any, any, braceright ] }; + key { [ any, any, section ] }; + key { [ any, any, semicolon ] }; + key { [ any, any, colon ] }; + key { [ any, any, minus, underscore ] }; + key { [ any, any, zcaron, Zcaron ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "alternatequotes" { + + include "rs(latinalternatequotes)" + name[Group1]= "Croatian (with guillemets)"; +}; + +partial alphanumeric_keys +xkb_symbols "unicode" { + + include "rs(latinunicode)" + name[Group1]= "Croatian (with Croatian digraphs)"; +}; + +partial alphanumeric_keys +xkb_symbols "unicodeus" { + + include "rs(latinunicodeyz)" + name[Group1]= "Croatian (US, with Croatian digraphs)"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/hu b/squashfs-root/usr/share/X11/xkb/symbols/hu new file mode 100644 index 0000000..a1b1ae5 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/hu @@ -0,0 +1,605 @@ +// New style XKB layout for some widely used Hungarian keyboard layouts +// +// Based on old style 'xkb/symbols/hu" +// +// (C) 2002-2004 Soós Péter +// (C) 2010 Andras Timar +// +// Permission is granted to anyone to use, distribute and modify +// this file in any way, provided that the above copyright notice +// is left intact and the author of the modification summarizes +// the changes in this header. +// +// This file is distributed without any expressed or implied warranty. +// +// Changes: +// 2004-04-17 - Moved to new style (only Unicode based layouts) +// - Added consistent dead key support +// - Fixed abovedot +// - Added adiaeresis +// - Added EuroSign and cent symbol +// 2010-04-23 - Added doublelowquotemark +// - Added rightdoublequotemark +// - Added endash +// 2010-05-13 - Added ellipsis + + +// Default layout +default partial +xkb_symbols "basic" { + include "hu(102_qwertz_comma_dead)" + name[Group1] = "Hungarian"; +}; + +// Standard layout +partial +xkb_symbols "standard" { + include "hu(102_qwertz_comma_dead)" + name[Group1] = "Hungarian (standard)"; +}; + +// Standard layout without dead key support +partial +xkb_symbols "nodeadkeys" { + include "hu(102_qwertz_comma_nodead)" + name[Group1] = "Hungarian (no dead keys)"; +}; + +// Qwerty layout +partial +xkb_symbols "qwerty" { + include "hu(101_qwerty_comma_dead)" + name[Group1] = "Hungarian (QWERTY)"; +}; + +// Main layouts + +// 101_qwertz_comma_dead +// 101 key qwertz layout +// with decimal comma on keypad +// and with dead key support +partial +xkb_symbols "101_qwertz_comma_dead" { + name[Group1] = "Hungarian (101/QWERTZ/comma/dead keys)"; + include "latin" + include "hu(def_101)" + include "hu(def_qwertz)" + include "kpdl(comma)" + include "hu(def_dead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 101_qwertz_comma_nodead +// 101 key qwertz layout +// with decimal comma on keypad +// and without dead key support +partial +xkb_symbols "101_qwertz_comma_nodead" { + name[Group1] = "Hungarian (101/QWERTZ/comma/no dead keys)"; + include "latin" + include "hu(def_101)" + include "hu(def_qwertz)" + include "kpdl(comma)" + include "hu(def_nodead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 101_qwertz_dot_dead +// 101 key qwertz layout +// with decimal dot on keypad +// and with dead key support +partial +xkb_symbols "101_qwertz_dot_dead" { + name[Group1] = "Hungarian (101/QWERTZ/dot/dead keys)"; + include "latin" + include "hu(def_101)" + include "hu(def_qwertz)" + include "hu(def_dot)" + include "hu(def_dead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 101_qwertz_dot_nodead +// 101 key qwertz layout +// with decimal dot on keypad +// and without dead key support +partial +xkb_symbols "101_qwertz_dot_nodead" { + name[Group1] = "Hungarian (101/QWERTZ/dot/no dead keys)"; + include "latin" + include "hu(def_101)" + include "hu(def_qwertz)" + include "hu(def_dot)" + include "hu(def_nodead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 101_qwerty_comma_dead +// 101 key qwerty layout +// with decimal comma on keypad +// and with dead key support +partial +xkb_symbols "101_qwerty_comma_dead" { + name[Group1] = "Hungarian (101/QWERTY/comma/dead keys)"; + include "latin" + include "hu(def_101)" + include "hu(def_qwerty)" + include "kpdl(comma)" + include "hu(def_dead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 101_qwerty_comma_nodead +// 101 key qwerty layout +// with decimal comma on keypad +// and without dead key support +partial +xkb_symbols "101_qwerty_comma_nodead" { + name[Group1] = "Hungarian (101/QWERTY/comma/no dead keys)"; + include "latin" + include "hu(def_101)" + include "hu(def_qwerty)" + include "kpdl(comma)" + include "hu(def_nodead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 101_qwerty_dot_dead +// 101 key qwerty layout +// with decimal dot on keypad +// and with dead key support +partial +xkb_symbols "101_qwerty_dot_dead" { + name[Group1] = "Hungarian (101/QWERTY/dot/dead keys)"; + include "latin" + include "hu(def_101)" + include "hu(def_qwerty)" + include "hu(def_dot)" + include "hu(def_dead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 101_qwerty_dot_nodead +// 101 key qwerty layout +// with decimal dot on keypad +// and without dead key support +partial +xkb_symbols "101_qwerty_dot_nodead" { + name[Group1] = "Hungarian (101/QWERTY/dot/no dead keys)"; + include "latin" + include "hu(def_101)" + include "hu(def_qwerty)" + include "hu(def_dot)" + include "hu(def_nodead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 102_qwertz_comma_dead +// 102 key qwertz layout +// with decimal comma on keypad +// and with dead key support +partial +xkb_symbols "102_qwertz_comma_dead" { + name[Group1] = "Hungarian (102/QWERTZ/comma/dead keys)"; + include "latin" + include "hu(def_102)" + include "hu(def_qwertz)" + include "kpdl(comma)" + include "hu(def_dead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 102_qwertz_comma_nodead +// 102 key qwertz layout +// with decimal comma on keypad +// and without dead key support +partial +xkb_symbols "102_qwertz_comma_nodead" { + name[Group1] = "Hungarian (102/QWERTZ/comma/no dead keys)"; + include "latin" + include "hu(def_102)" + include "hu(def_qwertz)" + include "kpdl(comma)" + include "hu(def_nodead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 102_qwertz_dot_dead +// 102 key qwertz layout +// with decimal dot on keypad +// and with dead key support +partial +xkb_symbols "102_qwertz_dot_dead" { + name[Group1] = "Hungarian (102/QWERTZ/dot/dead keys)"; + include "latin" + include "hu(def_102)" + include "hu(def_qwertz)" + include "hu(def_dot)" + include "hu(def_dead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 102_qwertz_dot_nodead +// 102 key qwertz layout +// with decimal dot on keypad +// and without dead key support +partial +xkb_symbols "102_qwertz_dot_nodead" { + name[Group1] = "Hungarian (102/QWERTZ/dot/no dead keys)"; + include "latin" + include "hu(def_102)" + include "hu(def_qwertz)" + include "hu(def_dot)" + include "hu(def_nodead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 102_qwerty_comma_dead +// 102 key qwerty layout +// with decimal comma on keypad +// and with dead key support +partial +xkb_symbols "102_qwerty_comma_dead" { + name[Group1] = "Hungarian (102/QWERTY/comma/dead keys)"; + include "latin" + include "hu(def_102)" + include "hu(def_qwerty)" + include "kpdl(comma)" + include "hu(def_dead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 102_qwerty_comma_nodead +// 102 key qwerty layout +// with decimal comma on keypad +// and without dead key support +partial +xkb_symbols "102_qwerty_comma_nodead" { + name[Group1] = "Hungarian (102/QWERTY/comma/no dead keys)"; + include "latin" + include "hu(def_102)" + include "hu(def_qwerty)" + include "kpdl(comma)" + include "hu(def_nodead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 102_qwerty_dot_dead +// 102 key qwerty layout +// with decimal dot on keypad +// and with dead key support +partial +xkb_symbols "102_qwerty_dot_dead" { + name[Group1] = "Hungarian (102/QWERTY/dot/dead keys)"; + include "latin" + include "hu(def_102)" + include "hu(def_qwerty)" + include "hu(def_dot)" + include "hu(def_dead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// 102_qwerty_dot_nodead +// 102 key qwerty layout +// with decimal dot on keypad +// and without dead key support +partial +xkb_symbols "102_qwerty_dot_nodead" { + name[Group1] = "Hungarian (102/QWERTY/dot/no dead keys)"; + include "latin" + include "hu(def_102)" + include "hu(def_qwerty)" + include "hu(def_dot)" + include "hu(def_nodead)" + include "hu(def_common)" + include "level3(ralt_switch)" +}; + +// Partial layouts + +// def_102: +// The standard Hungarian 102 key layout +hidden partial alphanumeric_keys +xkb_symbols "def_102" { + key { [ 0, section, notsign ] }; + key { [ iacute, Iacute, less, greater ] }; + +}; + +// def_101: +// An alternative layout for 101 key keyboards +hidden partial alphanumeric_keys +xkb_symbols "def_101" { + key { [ iacute, Iacute, 0, section ] }; + key { [ less, greater ] }; +}; + +// def_qwertz: +// The standard Hungaryan qwertz layout +hidden partial alphanumeric_keys +xkb_symbols "def_qwertz" { + key { [ z, Z, endash ] }; + key { [ y, Y, greater ] }; +}; + + +// def_qwerty: +// The qwerty layout for people who familiar with the standard US layout +hidden partial alphanumeric_keys +xkb_symbols "def_qwerty" { + key { [ y, Y, endash ] }; + key { [ z, Z, greater ] }; +}; + +// def_dot: +// The Hungarian standard is the comma on the keypad not decimal dot, +// but programmers hate it +hidden partial keypad_keys +xkb_symbols "def_dot" { + key { [ KP_Delete, KP_Decimal ] }; +}; + + +// def_dead: +// Dead keys support part +hidden partial alphanumeric_keys +xkb_symbols "def_dead" { + key { [ 1, apostrophe, asciitilde, dead_tilde ] }; + key { [ 2, quotedbl, dead_caron, caron ] }; + key { [ 3, plus, asciicircum, dead_circumflex ] }; + key { [ 4, exclam, dead_breve, breve ] }; + key { [ 5, percent, dead_abovering, degree ] }; + key { [ 6, slash, dead_ogonek, ogonek ] }; + key { [ 7, equal, grave, dead_grave ] }; + key { [ 8, parenleft, dead_abovedot, abovedot ] }; + key { [ 9, parenright, dead_acute, acute ] }; + key { [ odiaeresis, Odiaeresis, dead_doubleacute, doubleacute ] }; + key { [ udiaeresis, Udiaeresis, dead_diaeresis, diaeresis ] }; + key { [ oacute, Oacute, dead_cedilla, cedilla ] }; +}; + +// def_nodead: +// Without dead keys support +hidden partial alphanumeric_keys +xkb_symbols "def_nodead" { + key { [ 1, apostrophe, asciitilde ] }; + key { [ 2, quotedbl, caron ] }; + key { [ 3, plus, asciicircum ] }; + key { [ 4, exclam, breve ] }; + key { [ 5, percent, degree ] }; + key { [ 6, slash, ogonek ] }; + key { [ 7, equal, grave ] }; + key { [ 8, parenleft, abovedot ] }; + key { [ 9, parenright, acute ] }; + key { [ odiaeresis, Odiaeresis, doubleacute ] }; + key { [ udiaeresis, Udiaeresis, diaeresis ] }; + key { [ oacute, Oacute, cedilla ] }; +}; + + +// def_common: +// The common part of all Hungarian layout above +hidden partial alphanumeric_keys +xkb_symbols "def_common" { + key { [ q, Q, backslash ] }; + key { [ w, W, bar ] }; + key { [ e, E, Adiaeresis ] }; + key { [ u, U, EuroSign ] }; + key { [ i, I, Iacute, iacute ] }; + key { [ o, O, doublelowquotemark ] }; + key { [ p, P, rightdoublequotemark ] }; + key { [ odoubleacute, Odoubleacute, division ] }; + key { [ uacute, Uacute, multiply ] }; + + key { [ a, A, adiaeresis, Adiaeresis ] }; + key { [ s, S, dstroke ] }; + key { [ d, D, Dstroke ] }; + key { [ f, F, bracketleft ] }; + key { [ g, G, bracketright ] }; + key { [ j, J, iacute, Iacute ] }; + key { [ k, K, lstroke ] }; + key { [ l, L, Lstroke ] }; + key { [ eacute, Eacute, dollar, cent ] }; + key { [ aacute, Aacute, ssharp ] }; + + key { [ udoubleacute, Udoubleacute, currency ] }; + + key { [ x, X, numbersign ] }; + key { [ c, C, ampersand ] }; + key { [ v, V, at ] }; + key { [ b, B, braceleft ] }; + key { [ n, N, braceright ] }; + key { [ m, M, less ] }; + key { [ comma, question, semicolon ] }; + key { [ period, colon, greater ] }; + key { [ minus, underscore, asterisk ] }; + +}; + +// EXTRAS: + +// New style XKB layout used Old Hungarian keyboard layouts +// +// +// +// (C) 2013 Andras Tisza +// (C) 2017 Viktor Kovacs +// +// Permission is granted to anyone to use, distribute and modify +// this file in any way, provided that the above copyright notice +// is left intact and the author of the modification summarizes +// the changes in this header. +// +// This file is distributed without any expressed or implied warranty. +// +// Changes: +// 2013 - Planned Old Hungarian layout +// 2017 - Added Old Hungarian layout + +partial alphanumeric_keys +xkb_symbols "oldhun" { +name[Group1]="Old Hungarian"; +include "level3(caps_switch_latch)" +include "level3(ralt_switch)" +key.type[Group1]="FOUR_LEVEL_SEMIALPHABETIC"; +// In the remarks you can read characters displayed only Unicode point + key {[U10CFA, apostrophe, 1, asciitilde ]}; +//Old Hungarian one + + key {[ U10CFB, quotedbl, 2,quotedbl]}; +//Old Hungarian five + + key {[ U10CFC, plus, 3, plus]}; +//Old Hungarian ten + + key {[ U10CFD, exclam, 4, excalm]}; +//Old Hungarian fifty + + key {[ U10CFE, percent, 5, percent]}; +//Old Hungarian hundred + + key {[ U10CFF, slash, 6, slash]}; +//Old Hungarian thousand + + key {[U10CC6, U10C86, 7, equal]}; +//Old Hungarian cs, Cs + + key {[ U10CDA, U10C9A, 8, parenleft]}; +//Old Hungarian ny, Ny + + key {[U10CE8, U10CA8, 9, parenright]}; +//Old Hungarian ty, Ty + + key {[ U10CDE, U10C9E, U10CDD, U10C9D ]}; +//Old Hungarian Rudimenta oe, Oe, Nikolsburg oe, Oe + + key {[U10CED, U10CAD ]}; +//Old Hungarian ue , Ue + + key {[U10CDC, U10C9C ]}; +//Old Hungarian oo, OO + + key {[U10CCE, U10C8E, backslash ]}; +//Old-Hungarian gy, Gy + + key {[U10CF0, U10CB0 ]}; +//Old Hungarian zs, Zs + + key {[U10CC9, U10C89, U10CCA, U10C8A ]}; + //Old Hungarian e, E, close e, close E + + key {[U10CE2, U10CA2, U10CE3, U10CA3 ]}; +//Old Hungarian r, R, short r, short R + + key {[ U10CE6, U10CA6, U10CF1, U10CB1 ]}; +//Old Hungarian t, T, ent-sharped sign,Ent-sharped sign + + key {[U10CEF, U10CAF ]}; +//Old Hungarian z, Z + + key {[U10CEA, U10CAA, U10CF2, U10CB2 ]}; +//Old Hungarian u, U, Old Hungarian us, Us + + key {[U10CD0, U10C90 ]}; +//Old Hungarian i, I + + key {[U10CDB, U10C9B ]}; +//Old Hungarian o, O + + key {[U10CE0, U10CA0 ]}; +//Old Hungarian p, P + + key {[U10CDF, U10C9F ]}; +//Old Hungarian oee, Oee + + key {[ U10CEB, U10CAB, U10CD5, U10C95]}; +//Old Hungarian uu,Uu,unk,Unk + + key {[ U10CC0 , U10C80, U10CC3, U10C83 ]}; +//Old Hungarian a,A,amb,Amb + + key {[U10CE4, U10CA4, U10CE1, U10CA1 ]}; +//Old Hungarian s,S,emp,Emp + + key {[ U10CC7, U10C87, U10CE7, U10CA7 ]}; +//Old Hungarian d,D, ent/ant/int, Ent/Ant/Int + + key {[U10CCC, U10C8C, U10CE9, U10CA9]}; +//Old Hungarian f,F ech, Ech + + key {[ U10CCD, U10C8D, bracketleft ]}; +//Old Hungarian g, G + + key {[ U10CCF, U10C8F, bracketright ]}; +//Old Hungarian h, H + + + key {[ U10CD2, U10C92, backslash ]}; +//Old Hungarian j, J + + key {[U10CD3, U10C93, U10CD4, U10C94 ]}; +//Old Hungarian open k, open K, close k, close K + + key {[U10CD6, U10C96 ]}; +//Old Hungarian l, L + + key {[U10CCB, U10C8B ]}; +//Old Hungarian ee, EE + + key {[U10CC1, U10C81 , U10CC8, U10C88]}; +//Old Hungarian aa, AA, and And + + + key {[U10CEC, U10CAC ]}; +//Old Hungarian ue, Ue + + key {[ U10CD7, U10C97, greater ]}; +//Old Hungarian ly, Ly + + key {[ U10CE5, U10CA5, numbersign ]}; +//Old Hungarian sz, Sz + + key {[ U10CC4, U10C84, U10CC5, U10C85 ]}; +//Old Hungarian c,C, enc, Enc + + key {[U10CEE, U10CAE, at ]}; +//Old Hungarian v,V + + key {[U10CC2, U10C82, braceleft ]}; +//Old Hungarian b, B + + key { [ U10CD9, U10C99 , braceright ]}; +//Old Hungarian n, N + + key {[ U10CD8, U10C98 , less ]}; +//Old Hungarian m, M + + key {[U2E41, U2E2E, U204F ]}; +//reserved question mark,reserved semicolon, reserved comma + + key {[period, colon, greater ]}; + + key {[minus, underscore, asterisk ]}; + + key {[U10CD1, U10C91, less ]}; +//Old Hungarian ii,II + + key {[ section, U200F, 0, U200E]}; +//Right to left mark, left to right mark + + }; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/id b/squashfs-root/usr/share/X11/xkb/symbols/id new file mode 100644 index 0000000..b8e4257 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/id @@ -0,0 +1,71 @@ +// Modified from Arabic (buckwalter) +default partial alphanumeric_keys +xkb_symbols "jawi" { + name[Group1]= "Indonesian (Jawi)"; + + // ` + key { [ Arabic_superscript_alef, Arabic_shadda, grave, asciitilde ] }; // ـٰ supercript alef + + // 1..= + key { [ Arabic_1, exclam ] }; + key { [ Arabic_2, at ] }; + key { [ Arabic_3, numbersign ] }; + key { [ Arabic_4, 0x1000657 , dollar, 0x10006e9 ] }; // ـٗ inverted damma, ۩ + key { [ Arabic_5, Arabic_percent ] }; + key { [ Arabic_6, asciicircum ] }; + key { [ Arabic_7, ampersand ] }; + key { [ Arabic_8, asterisk , 0x100066d, 0x10006de ] }; // ٭, ۞ + key { [ Arabic_9, parenright , 0x100fd3e, 0x100fd3e ] }; // ornate left + key { [ Arabic_0, parenleft , 0x100fd3f, 0x100fd3f ] }; // ornate right + key { [ minus, Arabic_tatweel , underscore, underscore ] }; + key { [ equal, plus ] }; + + // Q..] + key { [ Arabic_qaf, Arabic_hamza ] }; + key { [ Arabic_waw, Arabic_hamzaonwaw ] }; + key { [ Arabic_ain, 0x10006ce ] }; // yeh with small v + key { [ Arabic_ra, 0x1000656 ] }; // ـٖ subscript alef + key { [ Arabic_teh, Arabic_tah ] }; + key { [ Arabic_yeh, Arabic_alefmaksura ] }; + key { [ Arabic_damma, Arabic_hamzaonalef ] }; + key { [ Arabic_kasra, Arabic_hamzaunderalef ] }; + key { [ Arabic_sukun, 0x10006c6 ] }; // oe + key { [ Arabic_veh, Arabic_tehmarbuta ] }; // ڤ p + key { [ Arabic_fathatan, 0x1000671 , bracketright, braceright ] }; // ٱ alef wasla + key { [ Arabic_kasratan, Arabic_hamzaonyeh, bracketleft, braceleft ] }; + + // A..' + key { [ Arabic_fatha, Arabic_alef ] }; + key { [ Arabic_seen, Arabic_sad ] }; + key { [ Arabic_dal, Arabic_dad ] }; + key { [ Arabic_feh, 0x10006a0 ] }; // ڠ ng + key { [ 0x1000762, Arabic_ghain ] }; // ݢ g (prefered) + key { [ Arabic_ha, Arabic_hah ] }; + key { [ Arabic_jeem, 0x10006ac ] }; // ڬ g + key { [ Arabic_kaf, Arabic_keheh ] }; // ک k (prefered) + key { [ Arabic_lam, Arabic_madda_above ] }; // ـٓ maddah above + key { [ Arabic_semicolon, colon ] }; + key { [ apostrophe, quotedbl , 0x100066c, 0x100066c ] }; // thousand sep + + // \ + key { [ Arabic_dammatan, Arabic_maddaonalef, backslash, bar ] }; + + // not exist in US keyboard + key { [ bar, brokenbar ] }; + + // Z../ + key { [ Arabic_zain, Arabic_zah ] }; + key { [ Arabic_khah, Arabic_sheen ] }; + key { [ Arabic_tcheh, Arabic_thal ] }; // چ c/ch + key { [ 0x10006cf, Arabic_theh ] }; // ۏ v + key { [ Arabic_beh, 0x10000bb ] }; // » + key { [ Arabic_noon, 0x10006bd ] }; // ڽ ny + key { [ Arabic_meem, 0x10000ab ] }; // « + key { [ Arabic_comma, less , 0x100066b, 0x100060d ] }; // decimal sep, date sep + key { [ period, greater, Arabic_fullstop, 0x10006dd ] }; // ۔ full stop, ۝ + key { [ slash, Arabic_question_mark ] }; + + + include "level3(ralt_switch)" +}; + diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ie b/squashfs-root/usr/share/X11/xkb/symbols/ie new file mode 100644 index 0000000..0830fed --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ie @@ -0,0 +1,407 @@ +// Irish keyboard map + +// Support for Irish (old and new orthography) and English +// Seamus O Ciardhuain (19 December 2002) + +// The general idea is to provide the characters in ISO 8859-1, +// ISO 8859-15, ISO 8859-14, CP1252 and "Extended Latin-8". +// However, not all are accessible directly because there aren't +// enough keys; some need deadkeys to access them, others the +// "Multi_key" compose sequences. + +// Designed to be similar to the layouts used on Windows +// and the Macintosh. + +// Everything is in Group 1 to be compatible with the +// multi-layout keyboard support in XFree86 4.3. + +// The basic layout is a modern keyboard, but dotted consonants are +// accessible using a deadkey (AltGr+H or AltGr+W). +// If a proper Clo Gaelach keyboard is needed, then use the layout +// defined below as ie(CloGaelach), which gives dotted consonants +// without use of a deadkey. + + +default partial alphanumeric_keys +xkb_symbols "basic" { + + // Modern keyboard for Irish and English + // - acute-accented vowels as AltGr+vowel and AltGr+Shift+vowel + // - euro currency sign as AltGr+4 + // - Comhartha Agus (Tironian Sign Et) as AltGr+Shift+7 + // - non-breaking space as AltGr+Space and AltGr+Shift+Space + // - matches hardware (keys and engraved symbols) for Irish keyboards + + name[Group1] = "Irish"; + + // + // Numeric row `1234567890-= + // + key { [ grave, notsign, brokenbar, NoSymbol ] }; + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, quotedbl, trademark, twosuperior ] }; + key { [ 3, sterling, copyright, threesuperior ] }; + key { [ 4, dollar, EuroSign, cent ] }; + key { [ 5, percent, section, dagger ] }; + key { [ 6, asciicircum, dead_circumflex, 0x1002030 ] }; + // per thousand + key { [ 7, ampersand, paragraph, 0x100204A ] }; + // Tironian Et + key { [ 8, asterisk, dead_diaeresis, enfilledcircbullet ] }; + key { [ 9, parenleft, ordfeminine, periodcentered ] }; + key { [ 0, parenright, masculine, degree ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ equal, plus, notequal, plusminus ] }; + + // + // QWERTYUIOP[] + // + key { [ q, Q, oe, OE ] }; + key { [ w, W, dead_abovedot, dead_abovedot ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, registered, 0x1002030 ] }; + // per thousand + key { [ t, T, thorn, THORN ] }; + key { [ y, Y, yen, mu ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ p, P, singlelowquotemark, NoSymbol ] }; + key { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] }; + key { [ bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] }; + + // + // ASDFGHJKL;'# + // + key { [ a, A, aacute, Aacute ] }; + key { [ s, S, ssharp, NoSymbol ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, 0x1000192, NoSymbol ] }; + // f with hook + key { [ g, G, copyright, NoSymbol ] }; + key { [ h, H, dead_abovedot, dead_abovedot ] }; + key { [ j, J, idotless, onequarter ] }; + key { [ k, K, dead_abovering, onehalf ] }; + key { [ l, L, acute, threequarters ] }; + key { [ semicolon, colon, ellipsis, doubledagger ] }; + key { [ apostrophe, at, ae, AE ] }; + key { [ numbersign, asciitilde, guillemotleft, guillemotright ] }; + + + // + // \ZXCVBNM,./ + // + key { [ backslash, bar, dead_grave, dead_acute ] }; + key { [ z, Z, leftanglebracket, rightanglebracket ] }; + key { [ x, X, multiply, approximate ] }; + key { [ c, C, dead_cedilla, cedilla ] }; + key { [ v, V, dead_caron, NoSymbol ] }; + key { [ b, B, diaeresis, NoSymbol ] }; + key { [ n, N, dead_tilde, NoSymbol ] }; + key { [ m, M, macron, NoSymbol ] }; + key { [ comma, less, lessthanequal, doublelowquotemark ] }; + key { [ period, greater, greaterthanequal, singlelowquotemark ] }; + key { [ slash, question, division, questiondown ] }; + + + key { [ space, space, nobreakspace, nobreakspace ] }; + + include "level3(ralt_switch)" + + // NB: putting Shift+ as Multi_key gives odd behaviour since the + // order of pressing keys affects the result. + + include "compose(rwin)" +}; + +partial alphanumeric_keys +xkb_symbols "CloGaelach" { + + // Adds support for Clo Gaelach (old orthography for Irish). + // Changes from "basic": + // - dotted consonants as AltGr+consonant or AltGr+Shift+consonant (TPSDFGCBM) + // - long lowercase r as AltGr+R + // - long lowercase s as AltGr+Z + // - long lowercase s dotted as AltGr+Shift+Z + // - some symbols moved around to retain them + // - several characters unlikely to be used are lost + // The long letters are needed only where the font provides + // both the long and short forms as different glyphs. + + include "ie(basic)" + + name[Group1] = "CloGaelach"; + + key { [ grave, notsign, brokenbar, ssharp ] }; + key { [ r, R, 0x100027C, registered ] }; + // long r + key { [ t, T, tabovedot, Tabovedot ] }; + key { [ p, P, pabovedot, Pabovedot ] }; + + key { [ s, S, sabovedot, Sabovedot ] }; + key { [ d, D, dabovedot, Dabovedot ] }; + key { [ f, F, fabovedot, Fabovedot ] }; + key { [ g, G, gabovedot, Gabovedot ] }; + + key { [ z, Z, 0x100017F, 0x1001E9B ] }; + // long s, long s dot + key { [ c, C, cabovedot, Cabovedot ] }; + key { [ b, B, babovedot, Babovedot ] }; + key { [ m, M, mabovedot, Mabovedot ] }; + + key { [ backslash, bar, dead_grave, dead_cedilla ] }; +}; + +partial alphanumeric_keys +xkb_symbols "UnicodeExpert" { + +// This should eventually be a "Unicode Expert" layout like the Mac one. + + name[Group1] = "Irish (UnicodeExpert)"; + + // + // Numeric row `1234567890-= + // + key { [ grave, notsign, 0x10000A6, 0x10000A6 ] }; + // broken bar + key { [ 1, exclam, NoSymbol, NoSymbol ] }; + key { [ 2, quotedbl, dead_doubleacute, dead_doubleacute ] }; + key { [ 3, sterling, NoSymbol, NoSymbol ] }; + key { [ 4, dollar, EuroSign, EuroSign ] }; + key { [ 5, percent, NoSymbol, NoSymbol ] }; + key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; + key { [ 7, ampersand, 0x100204A, 0x100204A ] }; + // Tironian Et + key { [ 8, asterisk, dead_abovering, dead_abovering ] }; + key { [ 9, parenleft, dead_breve, dead_breve ] }; + key { [ 0, parenright, dead_ogonek, dead_ogonek ] }; + key { [ minus, underscore, dead_macron, dead_macron ] }; + key { [ equal, plus, NoSymbol, NoSymbol ] }; + + // + // QWERTYUIOP[] + // + key { [ q, Q, NoSymbol, NoSymbol ] }; + key { [ w, W, NoSymbol, NoSymbol ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, 0x100027C, 0x100027C ] }; + // long r + key { [ t, T, NoSymbol, NoSymbol ] }; + key { [ y, Y, NoSymbol, NoSymbol ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ p, P, NoSymbol, NoSymbol ] }; + key { [ bracketleft, braceleft, dead_hook, dead_hook ] }; + key { [ bracketright, braceright, dead_horn, dead_horn ] }; + + // + // ASDFGHJKL;'# + // + key { [ a, A, aacute, Aacute ] }; + key { [ s, S, NoSymbol, NoSymbol ] }; + key { [ d, D, NoSymbol, NoSymbol ] }; + key { [ f, F, NoSymbol, NoSymbol ] }; + key { [ g, G, NoSymbol, NoSymbol ] }; + key { [ h, H, dead_abovedot, dead_abovedot ] }; + key { [ j, J, NoSymbol, NoSymbol ] }; + key { [ k, K, NoSymbol, NoSymbol ] }; + key { [ l, L, NoSymbol, NoSymbol ] }; + key { [ semicolon, colon, dead_diaeresis, dead_diaeresis ] }; + key { [ apostrophe, at, dead_acute, dead_acute ] }; + key { [ numbersign, asciitilde, dead_tilde, dead_tilde ] }; + + // + // \ZXCVBNM,./ + // + key { [ backslash, bar, dead_grave, dead_grave ] }; + key { [ z, Z, 0x100017F, 0x1001E9B ] }; + // long s, long s dot + key { [ x, X, NoSymbol, NoSymbol ] }; + key { [ c, C, NoSymbol, NoSymbol ] }; + key { [ v, V, dead_caron, dead_caron ] }; + key { [ b, B, NoSymbol, NoSymbol ] }; + key { [ n, N, NoSymbol, NoSymbol ] }; + key { [ m, M, NoSymbol, NoSymbol ] }; + key { [ comma, less, dead_cedilla, dead_cedilla ] }; + key { [ period, greater, dead_abovedot, dead_abovedot ] }; + key { [ slash, question, dead_belowdot, dead_belowdot ] }; + + key { [ space, space, space, nobreakspace ] }; + + include "level3(ralt_switch)" + + include "compose(rwin)" +}; + +// +// Ogham keyboard map for XFree86 +// +// Seamus O Ciardhuain (17 December 2002) +// +// Ogham keyboard layout as recommended in I.S. 434:1999. +// Suitable for multi-layout xkbcomp. +// Character names are given as in the Unicode standard, +// range U+1680 to U+169F. + +partial alphanumeric_keys +xkb_symbols "ogam" { + + name[Group1] = "Ogham"; + + key.type[Group1] = "ONE_LEVEL"; + + key { type[Group1]="TWO_LEVEL", + [ 0x100169B, 0x100169C ] }; + // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK + + key { [ 0x1001680 ] }; // OGHAM SPACE MARK + + key { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK + + key { [ space ] }; + + // + // Top Row QWERTYUIOP + // + key { [ 0x100168A ] }; // OGHAM LETTER CEIRT + key { [ 0x1001695 ] }; // OGHAM LETTER EABHADH + key { [ 0x1001693 ] }; // OGHAM LETTER EADHADH + key { [ 0x100168F ] }; // OGHAM LETTER RUIS + key { [ 0x1001688 ] }; // OGHAM LETTER TINNE + key { [ 0x1001698 ] }; // OGHAM LETTER IFIN + key { [ 0x1001692 ] }; // OGHAM LETTER UR + key { [ 0x1001694 ] }; // OGHAM LETTER IODHADH + key { [ 0x1001691 ] }; // OGHAM LETTER ONN + key { [ 0x100169A ] }; // OGHAM LETTER PEITH + + // + // Middle Row ASDFGHJKL + // + key { [ 0x1001690 ] }; // OGHAM LETTER AILM + key { [ 0x1001684 ] }; // OGHAM LETTER SAIL + key { [ 0x1001687 ] }; // OGHAM LETTER DAIR + key { [ 0x1001683 ] }; // OGHAM LETTER FEARN + key { [ 0x100168C ] }; // OGHAM LETTER GORT + key { [ 0x1001686 ] }; // OGHAM LETTER UATH + key { [ 0x1001697 ] }; // OGHAM LETTER UILLEANN + key { [ 0x1001696 ] }; // OGHAM LETTER OR + key { [ 0x1001682 ] }; // OGHAM LETTER LUIS + + // + // Bottom Row ZXCVBNM + // + key { [ 0x100168E ] }; // OGHAM LETTER STRAIF + key { [ 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL + key { [ 0x1001689 ] }; // OGHAM LETTER COLL + key { [ 0x100168D ] }; // OGHAM LETTER NGEADAL + key { [ 0x1001681 ] }; // OGHAM LETTER BEITH + key { [ 0x1001685 ] }; // OGHAM LETTER NION + key { [ 0x100168B ] }; // OGHAM LETTER MUIN + + // As an extension because and may not be + // available or sensible. These are also a bit more + // intuitive on a standard Irish keyboard. + key { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK + key { [ 0x100169B ] }; // OGHAM FEATHER MARK + key { [ 0x1001680 ] }; // OGHAM SPACE MARK + + include "compose(rwin)" +}; + +partial alphanumeric_keys +xkb_symbols "ogam_is434" { + + // This has the full layout of IS434 with an Irish QWERTY keyboard, + // and the Ogham characters accessed when CAPS LOCK is on. + + name[Group1] = "Ogham (IS434)"; + + key.type[Group1] = "THREE_LEVEL"; + + key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", + [ backslash, bar, 0x100169B, 0x100169C ] }; + // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK + + key { [ numbersign, asciitilde, 0x1001680 ] }; // OGHAM SPACE MARK + key { [ grave, notsign, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK + key { [ space, space, space ] }; + + // + // Numeric row + // + key { type[Group1]="TWO_LEVEL", [ 1, exclam ] }; + key { type[Group1]="TWO_LEVEL", [ 2, quotedbl ] }; + key { type[Group1]="TWO_LEVEL", [ 3, sterling ] }; + key { [ 4, dollar, EuroSign ] }; + key { type[Group1]="TWO_LEVEL", [ 5, percent ] }; + key { type[Group1]="TWO_LEVEL", [ 6, asciicircum ] }; + key { [ 7, ampersand, 0x100204A ] }; // Tironian Et + key { type[Group1]="TWO_LEVEL", [ 8, asterisk ] }; + key { type[Group1]="TWO_LEVEL", [ 9, parenleft ] }; + key { type[Group1]="TWO_LEVEL", [ 0, parenright ] }; + key { type[Group1]="TWO_LEVEL", [ minus, underscore ] }; + key { type[Group1]="TWO_LEVEL", [ equal, plus ] }; + + // + // Top Row QWERTYUIOP + // + key { [ q, Q, 0x100168A ] }; // OGHAM LETTER CEIRT + key { [ w, W, 0x1001695 ] }; // OGHAM LETTER EABHADH + key { [ e, E, 0x1001693 ] }; // OGHAM LETTER EADHADH + key { [ r, R, 0x100168F ] }; // OGHAM LETTER RUIS + key { [ t, T, 0x1001688 ] }; // OGHAM LETTER TINNE + key { [ y, Y, 0x1001698 ] }; // OGHAM LETTER IFIN + key { [ u, U, 0x1001692 ] }; // OGHAM LETTER UR + key { [ i, I, 0x1001694 ] }; // OGHAM LETTER IODHADH + key { [ o, O, 0x1001691 ] }; // OGHAM LETTER ONN + key { [ p, P, 0x100169A ] }; // OGHAM LETTER PEITH + + // + // Middle Row ASDFGHJKL + // + key { [ a, A, 0x1001690 ] }; // OGHAM LETTER AILM + key { [ s, S, 0x1001684 ] }; // OGHAM LETTER SAIL + key { [ d, D, 0x1001687 ] }; // OGHAM LETTER DAIR + key { [ f, F, 0x1001683 ] }; // OGHAM LETTER FEARN + key { [ g, G, 0x100168C ] }; // OGHAM LETTER GORT + key { [ h, H, 0x1001686 ] }; // OGHAM LETTER UATH + key { [ j, J, 0x1001697 ] }; // OGHAM LETTER UILLEANN + key { [ k, K, 0x1001696 ] }; // OGHAM LETTER OR + key { [ l, L, 0x1001682 ] }; // OGHAM LETTER LUIS + + // + // Bottom Row ZXCVBNM + // + key { [ z, Z, 0x100168E ] }; // OGHAM LETTER STRAIF + key { [ x, X, 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL + key { [ c, C, 0x1001689 ] }; // OGHAM LETTER COLL + key { [ v, V, 0x100168D ] }; // OGHAM LETTER NGEADAL + key { [ b, B, 0x1001681 ] }; // OGHAM LETTER BEITH + key { [ n, N, 0x1001685 ] }; // OGHAM LETTER NION + key { [ m, M, 0x100168B ] }; // OGHAM LETTER MUIN + + // As an extension because and may not be + // available or sensible. These are also a bit more + // intuitive on a standard Irish keyboard. + key { [ comma, less, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK + key { [ period, greater, 0x100169B ] }; // OGHAM FEATHER MARK + key { [ slash, question, 0x1001680 ] }; // OGHAM SPACE MARK + + // The standard says the Ogham characters should be accessed when + // Caps Lock is down; not clear if this means it should lock but + // seems logical. + + key { type[Group1] = "ONE_LEVEL", [ ISO_Level3_Lock ] }; + + // Also allow access to Ogham characters using RALT for convenience + include "level3(ralt_switch)" + + // Redefine Scroll Lock as locking shift in case that's needed. + // Also overcomes annoying use of Scroll Lock LED inherited from + // US symbols but not relevant here since we're not changing group. + key {type[Group1] = "ONE_LEVEL", [ Shift_Lock ] }; + modifier_map Shift { Shift_Lock }; + + include "compose(rwin)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/il b/squashfs-root/usr/share/X11/xkb/symbols/il new file mode 100644 index 0000000..67487c1 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/il @@ -0,0 +1,323 @@ +// based on a keyboard map from an 'xkb/symbols/il' file + +// This is an implemetation of the Israeli standard SI-1452 (2013) +// It does not implement changes to the English layout, as that part +// of the standard is not normative nor really useful in the context +// of xkb. +// This implementation extends the standard with Yiddish digraphs +// (a common extension) and Nun Hafukha (a fun character). + +default partial alphanumeric_keys +xkb_symbols "basic" { + // uses the kbd layout in use in Israel. + + name[Group1]= "Hebrew"; + key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ hebrew_zain, Z ] }; + key { [ hebrew_samech, X, U05B6 ] }; // Segol + key { [ hebrew_bet, C, U05B1 ] }; // Hataf Segol + key { [ hebrew_he, V ] }; + key { [ hebrew_nun, B, NoSymbol, U05C6 ]}; // Nun Hafukha + key { [ hebrew_mem, N ] }; + key { [ hebrew_zade, M, U05B5 ] }; // Tsere + key { [ hebrew_taw, greater, rightsinglequotemark ]}; // greater Mirrored + key { [ hebrew_finalzade, less, singlelowquotemark ]}; // less Mirrored + + key { [ hebrew_shin, A, U05B0 ] }; // Shva + key { [ hebrew_dalet,S, U05BC ] }; // Dagesh + key { [ hebrew_gimel,D ] }; + key { [ hebrew_kaph, F ] }; + key { [ hebrew_ayin, G, U05F1 ] }; // Yiddish Vav Yod + key { [ hebrew_yod, H, U05F2 ] }; // Yiddish Double Yod + key { [ hebrew_chet, J, U05B4 ] }; // Hiriq + key { [ hebrew_lamed, K ] }; + key { [ hebrew_finalkaph, L, rightdoublequotemark ]}; + key { [ hebrew_finalpe, colon, doublelowquotemark ]}; + + key { [ slash, Q, U05C2 ] }; // Sin Dot + key { [ apostrophe, W, U05C1 ] }; // Shin Dot + key { [ hebrew_qoph, E, U05B8 ] }; // Qamats + key { [ hebrew_resh, R, U05B3 ] }; // Hataf Qamats + key { [ hebrew_aleph,T ] }; + key { [ hebrew_tet, Y, U05F0 ] }; // Yiddish Double Vav + key { [ hebrew_waw, U, U05B9 ] }; // Holam + key { [ hebrew_finalnun, I ] }; + key { [ hebrew_finalmem, O ] }; + key { [ hebrew_pe, P, U05B7 ] }; // Patah + + key.type[Group1] = "FOUR_LEVEL"; + + // Non-alphanumeric keys + key { [ period, question, division ]}; + key { [ comma, quotedbl, U05F4] }; // Gershayim + key { [ bracketright, braceright, U05B2 ]}; // Mirrored; Hataf Patah + key { [ bracketleft, braceleft, U05BF ]}; // Mirrored; Rafe + key { [ backslash, bar, U05BB ] }; // Qubuts + + // Top (digits) row + key { [ semicolon, asciitilde, U05F3 ]}; // Geresh + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign, EuroSign ]}; + key { [ 4, dollar, NewSheqelSign ]}; + key { [ 5, percent, degree ]}; + key { [ 6, asciicircum, U05AB ]}; // Hebrew Accent Ole + key { [ 7, ampersand, U05BD ]}; // Meteg + key { [ 8, asterisk, multiply]}; + key { [ 9, parenright, U200E ]}; // LRM; Paren Mirrored + key { [ 0, parenleft, U200F ]}; // RLM; Paren Mirrored + key { [ minus, underscore, U05BE ]}; // Maqaf + key { [ equal, plus, endash ]}; + + include "level3(ralt_switch)" +}; + + +// nikud patter based on Dekel Tsur's Hebrew mapping for LyX +partial alphanumeric_keys +xkb_symbols "lyx" { + name[Group1]= "Hebrew (lyx)"; + + key { [ semicolon, asciitilde ] }; + // On some key (e.g. AD01, right below) there is not yet mapping for the + // second shift level. Since I could not figure a simple way to map this + // to "emit nothing", it is currently mapped to the same letter of the + // first shift level (avoiding mapping may risk it be used by a character + // from a different group). + key { [ slash, slash ] }; + key { [ apostrophe, apostrophe ] }; + key { [ hebrew_qoph, 0x10005b8 ] }; // Qamats + key { [ hebrew_resh, 0x10005bc ] }; // Dagesh/Shuruq + key { [ hebrew_aleph, 0x100200e ] }; // LRM + key { [ hebrew_tet, 0x100200f ] }; // RLM + key { [ hebrew_waw, 0x10005b9 ] }; // Holam + key { [ hebrew_finalnun,hebrew_finalnun] }; + key { [ hebrew_finalmem,hebrew_finalmem] }; + key { [ hebrew_pe, 0x10005b7 ] }; // Patah + + key { [ hebrew_shin, 0x10005b0 ] }; // Sheva + key { [ hebrew_dalet, 0x10005bc ] }; // Dagesh/Shuruq + key { [ hebrew_gimel, hebrew_gimel ] }; + key { [ hebrew_kaph, hebrew_kaph ] }; + key { [ hebrew_ayin, 0x10005c2 ] }; // Sin dot + key { [ hebrew_yod, 0x10005c1 ] }; // Shin dot + key { [ hebrew_chet, 0x10005b4 ] }; // Hiriq + key { [ hebrew_lamed, 0x10020aa ] }; // NIS + key { [ hebrew_finalkaph,hebrew_finalkaph] }; + key { [ hebrew_finalpe, colon ] }; + key { [ comma, quotedbl ] }; + + key { [ hebrew_zain, hebrew_zain ] }; + key { [ hebrew_samech,0x10005b6 ] }; // Segol + key { [ hebrew_bet, 0x10005bb ] }; // Qubuts + key { [ hebrew_he, 0x10005b1 ] }; // H. Segol + key { [ hebrew_nun, 0x10005b2 ] }; // H. Patah + key { [ hebrew_mem, 0x10005b3 ] }; // H. Qamats + key { [ hebrew_zade, 0x10005b5 ] }; // Tsere + key { [ hebrew_taw, greater ] }; + key { [ hebrew_finalzade, less ] }; + key { [ period, question ] }; + + // Note the parens mirroring below: + key { [ bracketright, braceright ] }; + key { [ bracketleft, braceleft ] }; + key { [ 1, exclam ]}; + key { [ 2, at ]}; + key { [ 3, numbersign ]}; + key { [ 4, dollar ]}; + key { [ 5, percent ]}; + key { [ 6, asciicircum ]}; + key { [ 7, ampersand ]}; + key { [ 8, asterisk ]}; + key { [ 9, parenright ]}; + key { [ 0, parenleft ]}; + + key { [ minus , 0x10005be ] }; // H. Hiphen + key { [ equal , plus ] }; +}; + + +partial alphanumeric_keys +xkb_symbols "phonetic" { + + // uses the phonetic layout from old Slackware 'il.map' file + + name[Group1]= "Hebrew (phonetic)"; + + key { [ equal, plus, hebrew_doublelowline, hebrew_doublelowline ]}; + + key { [ hebrew_qoph, hebrew_qoph ] }; + key { [ hebrew_waw, hebrew_waw ] }; + key { [ hebrew_aleph, hebrew_aleph ] }; + key { [ hebrew_resh, hebrew_resh ] }; + key { [ hebrew_taw, hebrew_tet ] }; + key { [ hebrew_ayin, hebrew_ayin ] }; + key { [ hebrew_waw, hebrew_waw ] }; + key { [ hebrew_yod, hebrew_yod ] }; + key { [ hebrew_samech, hebrew_samech ] }; + key { [ hebrew_pe, hebrew_finalpe ] }; + + key { [ hebrew_aleph, hebrew_aleph ] }; + key { [ hebrew_shin, hebrew_shin ] }; + key { [ hebrew_dalet, hebrew_dalet ] }; + key { [ hebrew_pe, hebrew_finalpe ] }; + key { [ hebrew_gimel, hebrew_gimel ] }; + key { [ hebrew_he, hebrew_he ] }; + key { [ hebrew_yod, hebrew_yod ] }; + key { [ hebrew_kaph, hebrew_finalkaph ] }; + key { [ hebrew_lamed, hebrew_lamed ] }; + + key { [ hebrew_zain, hebrew_zain ] }; + key { [ hebrew_chet, hebrew_chet ] }; + key { [ hebrew_zade, hebrew_finalzade ] }; + key { [ hebrew_waw, hebrew_waw ] }; + key { [ hebrew_bet, hebrew_bet ] }; + key { [ hebrew_nun, hebrew_finalnun ] }; + key { [ hebrew_mem, hebrew_finalmem ] }; +}; + +// The 'Biblical Hebrew' keyboard layout as defined by Tiro for use with the +// 'SBL Hebrew' font was added 2006.11.13 by Sebastian J. Bronner +// . Its primary features (as compared to the lyx layout) +// are that the consonants are in the Israeli standard positions, that a great +// multitude of glyphs can be input directly from the keyboard, and that it is +// the closest thing to a standard layout a theologian can hope for. +// Documentation (including printable keyboard tables), SBL Hebrew font, and +// keyboard layout for Windows are available at +// http://www.sbl-site.org/Resources/Resources_BiblicalFonts.aspx. +// +// It is of interest that the 'basic' layout defined first in this file (as +// ships with x.org disagrees in the non-consonant characters that the Tiro- +// layout claims to be the Israeli standard. Tiros apparent diligence in the +// PDF-documentation accompanying the keyboard-layout-files lead me to put +// greater stock in their claim than in this file. Therefore, the 'biblical' +// layout below does not include 'il(basic)' but redoes the _whole_ thing from +// scratch. + +partial alphanumeric_keys +xkb_symbols "biblical" { + name[Group1]= "Hebrew (Biblical, Tiro)"; + key.type = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ U05C3, U05AE, semicolon, asciitilde ] }; + key { [ 1, U05A9, VoidSymbol, exclam ] }; + key { [ 2, U0599, VoidSymbol, at ] }; + key { [ 3, U0592, VoidSymbol, numbersign ] }; + key { [ 4, U05AF, NewSheqelSign, dollar ] }; + key { [ 5, U05BA, U200D, percent ] }; + key { [ 6, U05B9, U200C, asciicircum ] }; + key { [ 7, U05BF, U034F, ampersand ] }; + key { [ 8, U05C2, U200E, asterisk ] }; + key { [ 9, U05C1, U200F, parenright ] }; + key { [ 0, U059D, U25CC, parenleft ] }; + key { [ U05BE, U05A0, minus, underscore ] }; + key { [ equal, U05BC, VoidSymbol, plus ] }; + + key { [ U0307, U05C4, U0308, slash ] }; + key { [ U05F3, U05AC, U05F4, apostrophe ] }; + key { [ hebrew_qoph, U05AB, U20AC ] }; + key { [ hebrew_resh, U059F ] }; + key { [ hebrew_aleph, U0593 ] }; + key { [ hebrew_tet, U059E ] }; + key { [ hebrew_waw, U059C, U05F0 ] }; + key { [ hebrew_finalnun, U05A1 ] }; + key { [ hebrew_finalmem, U0595 ] }; + key { [ hebrew_pe, U0594 ] }; + key { [ bracketright, U0597, VoidSymbol, braceright ] }; + key { [ bracketleft, U0598, VoidSymbol, braceleft ] }; + key { [ U05C0, U05A8, backslash, bar ] }; + + key { [ hebrew_shin, U05BD ] }; + key { [ hebrew_dalet, U05B0 ] }; + key { [ hebrew_gimel, U05BB ] }; + key { [ hebrew_kaph, U05B4 ] }; + key { [ hebrew_ayin, U05B1 ] }; + key { [ hebrew_yod, U05B6, U05F2 ] }; + key { [ hebrew_chet, U05B5, U05F1 ] }; + key { [ hebrew_lamed, U05B3 ] }; + key { [ hebrew_finalkaph, U05B8, U05C7 ] }; + key { [ hebrew_finalpe, U05B2, VoidSymbol, colon ] }; + key { [ U059a, U05B7, comma, quotedbl ] }; + + key { [ hebrew_zain, U05C5 ] }; + key { [ hebrew_samech, U05A4 ] }; + key { [ hebrew_bet, U05AA, U05A2 ] }; + key { [ hebrew_he, U05A6 ] }; + key { [ hebrew_nun, U05A5, U05C6 ] }; + key { [ hebrew_mem, U05A7 ] }; + key { [ hebrew_zade, U059B ] }; + key { [ hebrew_taw, U0591, VoidSymbol, greater ] }; + key { [ hebrew_finalzade, U0596, VoidSymbol, less ] }; + key { [ U05AD, U05A3, period, question ] }; + + key { [ space, space, thinspace, nobreakspace ] }; +}; + +// EXTRAS + +// Biblical hebrew (SIL) US Standard layout version 1.5 +// This map is based closely on v 1.5 of the standard. The only deviation being the replacement of the composite characters sin and shin +// by their more recent Unicodev6 counterparts +// this map contains all the characters found in Biblical annotation, masoretic and Dead Sea Scroll related work. +// The layout corresponds phonetically to a US standard layout or similar (Qwerty). +// If you are using an actual Hebrew keyboard, you are probably better off using a Tiro compliant scholarly layout +// This linux port created and maintained by Dennis Meulensteen, dennis@meulensteen.nl +partial alphanumeric_keys +xkb_symbols "biblicalSIL" { + name[Group1]= "Hebrew (Biblical, SIL phonetic)"; + key.type = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ U20AC, U20AA, U0024 ] }; //Euro, Shekel, Dollar - + key { [ 1, U0021, U05BD, U0597 ] }; //1, exclamation meteg revia + key { [ 2, U0598, U05A2, U05AE ] }; //2, zarqa atn. hafukh zinor + key { [ 3, U05A8, U0596, U0599 ] }; //3, qadma tipeha pashta + key { [ 4, U059C, U05A5, U05A0 ] }; //4, geresh merkha tel. gedola + key { [ 5, U059E, U05A6, U05A9 ] }; //5, gershayim mer. kefula tel qetana + key { [ 6, VoidSymbol, U05AD, U059F ] }; //6, - dehi qar. para + key { [ 7, U05AC, U05A3, U05A1 ] }; //7, iluy munah pazer + key { [ 8, U059D, U059B, U0595 ] }; //8, g. muqdam tevir zaq. gadol + key { [ 9, U0029, U05A7, U0593 ] }; //9, parenth.R darqa shalshelet + key { [ 0, U0028, U05AA, U05AF ] }; //0, paren.L yer. ben yomo masora c. + key { [ U05BE, U2013, U2014, U05BF ] }; //Maqaf, en dash em dash rafe + key { [ U05BC, VoidSymbol, U0591, U25CC ] }; //Dagesh - etnahta mark base + + key { [ hebrew_qoph, U0597 ] }; //Qof revia - - + key { [ hebrew_waw] }; //waw - - - + key { [ U05B6, U05B5, VoidSymbol, U05B1 ] }; //segol tsere - hat. segol + key { [ hebrew_resh ] }; //resh - - - + key { [ hebrew_taw ] }; //taw - - - + key { [ hebrew_yod, U059F ] }; //jod qar. para - - + key { [ U05BB] }; //quibuts - - - + key { [ U05B4 ] }; //hiriq, - - - + key { [ U05B9, U05BA, U05C7, U05B3 ] }; //holam, holam(wav) qam. qatan hat. Qamats + key { [ hebrew_pe, hebrew_finalpe, VoidSymbol, U034F ] }; //pe final pe - c. grapheme joiner + key { [ bracketright, braceright, VoidSymbol, U0594 ] }; //Bracket R brace R - zaq. qatan + key { [ bracketleft, braceleft, U059A, U0592 ] }; //Brachket L brace L yetiv segolta + key { [ U05C0, U05C0, U05A4, U05AB ] };//Paseq Paseq mahapakh ole + + key { [ U05B7, U05B8, U05C7, U05B2 ] }; //patah Qamats Qam. Qatan hat. patah + key { [ hebrew_samech, U05E9 ] }; //Samech, shin no dot - - + key { [ hebrew_dalet ] }; //dalet - - - + key { [ UFB2B, hebrew_shin, U05C2 ] }; //UCSv6 Sin shin (nodot) sindot - + key { [ hebrew_gimel, VoidSymbol, U25E6, U2022 ] }; //gimel - bullet(DSS) bulletfill (DSS) + key { [ hebrew_he, VoidSymbol, U0336, U030A ] };//he - strikeout(DSS) Ring Above(DSS) + key { [ UFB2A, hebrew_shin, U05C1] }; //UCSv6 Shin shin (nodot) shindot - + key { [ hebrew_kaph, hebrew_finalkaph ] }; //kaph Final kaph - + key { [ hebrew_lamed, VoidSymbol ] }; //lamed - - + key { [ U05B0, U05F4, semicolon, U05C3 ] }; //sva gers. p semicolon sof pasuq + key { [ U2019, U201D, U0323, U05C4 ] };//QuoteRight double R Quote punctum punctum Above + + key { [ hebrew_zain ] }; //Zayin - - + key { [ hebrew_chet ] }; //chet - - + key { [ hebrew_zade, U05E5 ] }; // tzade, final tzade - + key { [ hebrew_tet ] }; //tet - - + key { [ hebrew_bet ] }; //bet - - + key { [ hebrew_nun, hebrew_finalnun ] }; //nun, final nun + key { [ hebrew_mem, hebrew_finalmem, U200C, U200D ] }; //mem, final mem 0.wid.non.join. 0.wid.joiner + key { [ U002C, U05E2, U00AB, U0307 ] }; //comma, ayin guillemetsR masora dot + key { [ U0002E, U05D0, U00BB, U0308 ] }; //period, alef guillemetsL thousands + key { [ slash, question, U05F3 ] }; //slash question geresh P + + key { [ space, space, thinspace, nobreakspace ] };//space space thin space, nbsp +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/in b/squashfs-root/usr/share/X11/xkb/symbols/in new file mode 100644 index 0000000..79d5099 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/in @@ -0,0 +1,2207 @@ +// This layout includes all Indian layouts, including: +// - Devanagari (Hindi, Marathi, Sanskrit) +// - Bangla +// - Gujarati +// - Kannada +// - Malayalam +// - Ol Chiki +// - Oriya +// - Tamil +// - Telugu +// - Urdu + +// Links: +// - Indic INSCRIPT keyboard layout diagrams: +// http://java.sun.com/products/jfc/tsc/articles/InputMethod/indiclayout.html +// - Bangla Baishakhi (Bangla layouts): +// - Bangla Baishakhi Inscript (Bangla layouts): +// - Bangla Bornona (Bangla layouts): +// - Uni Gitanjali (Bangla layouts): +// http://nltr.org +// - Ekusheyr Shadhinota (Bangla layouts): +// http://ekushey.org/projects/shadhinota/index.html +// - Microsoft Windows XP SP2: Indic Language Standards - an Introduction: +// http://www.bhashaindia.com/MSProducts/XpSp2/Articles/IndicLanguageStandards.aspx +// - Ol Chiki: +// http://www.unicode.org/L2/L2005/05243r-n2984-ol-chiki.pdf (fig. 9) + +// based on a keyboard map from an 'xkb/symbols/dev' file + +// Devangari is the default. Kill me if I am wrong:) +default partial alphanumeric_keys +xkb_symbols "deva" { + // March 2004 -- David Holl + name[Group1]="Indian"; + + key.type="FOUR_LEVEL"; + + key { [ U094a, U0912, grave, asciitilde ] }; + key { [ U0967, U090d, 1, exclam ] }; + key { [ U0968, U0945, 2, at ] }; + // Shift+AE0[3-8] really need to return a macro of keys defined by + // INSCRIPT in place of the symbols that are here for now. But this + // requires XKB to map 1 key into two to three other key presses. + key { [ U0969, numbersign, 3, numbersign ] }; + key { [ U096a, dollar, 4 ] }; + key { [ U096b, percent, 5, percent ] }; + key { [ U096c, asciicircum, 6, asciicircum ] }; + key { [ U096d, ampersand, 7, ampersand ] }; + key { [ U096e, asterisk, 8, asterisk ] }; + key { [ U096f, parenleft, 9, parenleft ] }; + key { [ U0966, parenright, 0, parenright ] }; + key { [ minus, U0903, minus, underscore ] }; + key { [ U0943, U090b, U0944, U0960 ] }; + + key { [ U094c, U0914 ] }; + key { [ U0948, U0910 ] }; + key { [ U093e, U0906 ] }; + key { [ U0940, U0908, U0963, U0961 ] }; + key { [ U0942, U090a ] }; + key { [ U092c, U092d ] }; + key { [ U0939, U0919 ] }; + key { [ U0917, U0918, U095a ] }; + key { [ U0926, U0927 ] }; + key { [ U091c, U091d, U095b ] }; + key { [ U0921, U0922, U095c, U095d ] }; + key { [ U093c, U091e ] }; + // I added \ / ? | for shell-convenience (file names and piping) + key { [ U0949, U0911, U005C, U007C ] }; + + key { [ U094b, U0913 ] }; + key { [ U0947, U090f ] }; + key { [ U094d, U0905 ] }; + key { [ U093f, U0907, U0962, U090c ] }; + key { [ U0941, U0909 ] }; + key { [ U092a, U092b, NoSymbol, U095e ] }; + key { [ U0930, U0931 ] }; + key { [ U0915, U0916, U0958, U0959 ] }; + key { [ U0924, U0925 ] }; + key { [ U091a, U091b, U0952 ] }; + key { [ U091f, U0920, NoSymbol, U0951 ] }; + + key { [ U0946, U090e, U0953 ] }; + key { [ U0902, U0901, NoSymbol, U0950 ] }; + key { [ U092e, U0923, U0954 ] }; + key { [ U0928, U0929 ] }; + key { [ U0935, U0934 ] }; + key { [ U0932, U0933 ] }; + key { [ U0938, U0936 ] }; + key { [ comma, U0937, U0970 ] }; + key { [ period, U0964, U0965, U093d ] }; + // I added \ / ? | for shell-convenience (file names and piping) + key { [ U092f, U095f, slash, question ] }; + + // space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ): + include "nbsp(zwnj3zwj4)" + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +//Name : Bolnagri (Combined) +//Description : A phonetic keyboard layout for Devnagari(Hindi) +// http://www.indlinux.org/wiki/index.php/BolNagri +//NOTE : This is a combined map of bolnagri_matras and bolnagri_vowels. +//Inspired by "devrom" keymap by Steve Smith for the windows tool "keyman" +//Original Author : Noah Levitt +//Past Authors : Pramod.R and Ravikant +//Current Main. : G Karunakar + +partial alphanumeric_keys +xkb_symbols "bolnagri" { + name[Group1] = "Hindi (Bolnagri)"; + key.type="FOUR_LEVEL"; + + // Roman digits + key { [ U0902, U0901, apostrophe, asciitilde ] }; // apostrophe: anusvara, candrabindu + key { [ 1, exclam, U0967, exclam ] }; + key { [ 2, at, U0968, at ] }; + key { [ 3, numbersign, U0969, numbersign ] }; + key { [ 4, dollar, U096A ] }; // Rupee symbol on AltGr+4 + key { [ 5, percent, U096B, percent ] }; + key { [ 6, asciicircum, U096C, asciicircum ] }; + key { [ 7, ampersand, U096D, ampersand ] }; + key { [ 8, asterisk, U096E, asterisk ] }; + key { [ 9, parenleft, U096F, parenleft ] }; + key { [ 0, parenright, U0966, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ U0964, U0965, U007C, U005C ] }; //pipe : danda, double danda + + //Q Row + key { [ U200C, U200D ] }; // Q: ZWNJ, ZWJ + key { [ U0935, U950 ] }; // W: wa, OM + key { [ U0947, U0948, U090F, U0910 ] }; // E: e, ai matras + key { [ U0930, U0943, U0931, U090B ] }; // R: ra, vocalic Ri + key { [ U0924, U0925 ] }; // T: ta, tha + key { [ U092f, U091E ] }; // Y: ya, nya + key { [ U0941, U0942, U0909, U090A ] }; // U: u, uu matras + key { [ U093F, U0940, U0907, U0908 ] }; // I: i, ii matras + key { [ U094B, U094C, U0913, U0914 ] }; // O: o, au matras + key { [ U092A, U092B ] }; // P: pa, pha + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + //A Row + key { [ U093E, U0906, U0905, U0906 ] }; // A: aa, full A, AA + key { [ U0938, U0937 ] }; // S: sa, ssa + key { [ U0926, U0927 ] }; // D: da, dha + key { [ U091F, U0920 ] }; // F: TA, THA + key { [ U0917, U0918 ] }; // G: ga, gha + key { [ U0939, U0903 ] }; // H: ha, visarg + key { [ U091C, U091D ] }; // J: ja, jha + key { [ U0915, U0916 ] }; // K: ka, kha + key { [ U0932, U0933, U0962, U090C ] }; // L: la, vocalic L or lru matra + key { [ semicolon, colon ] }; + key { [apostrophe, quotedbl ] }; + + //Z Row + key { [ U0936, U0945, U0936, U090D ] }; // Z: sha, akaar candra + key { [ U094D, U0949, U094D, U0911 ] }; // X: halant, aakaar candra, chandra A + key { [ U091A, U091B ] }; // C: ca, cha + key { [ U0921, U0922 ] }; // V: da, dha + key { [ U092C, U092D ] }; // B: ba, bha + key { [ U0928, U0923 ] }; // N: na, nna + key { [ U092E, U0919, U092E, U093D ] }; // M: ma, nga, avagraha + key { [ comma, U0970 ] };// comma: comma, dev abbreviation sign + key { [ period, U093C ] }; // period: period, nukta + key { [ slash, question ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +// modifier_map Mod3 { Mode_switch }; + + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + +// based on a keyboard map from an 'xkb/symbols/ben' file + +partial alphanumeric_keys +xkb_symbols "ben" { + name[Group1]= "Bangla (India)"; + + // Mainly numbers. + key { [ U09E7 ] }; + key { [ U09E8 ] }; + key { [ U09E9 ] }; + key { [ U09EA ] }; + key { [ U09EB ] }; + key { [ U09EC ] }; + key { [ U09ED ] }; + key { [ U09EE ] }; + key { [ U09EF, parenleft ] }; + key { [ U09E6, parenright ] }; + key { [ minus, U0983 ] }; + key { [ U098B, U09C3 ] }; + +// Mainly long vowels + + key { [ U09CC, U0994 ] }; + key { [ U09C8, U0990 ] }; + key { [ U09BE, U0986 ] }; + key { [ U09C0, U0988 ] }; + key { [ U09C2, U098A ] }; + +// Mainly voiced consonants + + key { [ U09AC, U09AD ] }; + key { [ U09B9, U0999 ] }; + key { [ U0997, U0998 ] }; + key { [ U09A6, U09A7 ] }; + key { [ U099C, U099D ] }; + key { [ U09A1, U09A2 ] }; + key { [ U09BC, U099E ] }; + +// Mainly short vowels + key { [ U09CB, U0993 ] }; + key { [ U09C7, U098F ] }; + key { [ U09CD, U0985 ] }; + key { [ U09BF, U0987 ] }; + key { [ U09C1, U0989 ] }; + + +// Mainly unvoiced consonants + + key { [ U09AA, U09AB ] }; + key { [ U09B0, U09DD ] }; + key { [ U0995, U0996 ] }; + key { [ U09A4, U09A5 ] }; + key { [ U099A, U099B ] }; + key { [ U099F, U09A0 ] }; + key { [ U005C, U007C ] }; + + key { [ z, Z ] }; + key { [ U0982, U0981 ] }; + key { [ U09AE, U09A3 ] }; + key { [ U09A8, U09A8 ] }; + key { [ U09AC, U09AC ] }; + key { [ U09B2, U09B2 ] }; + key { [ U09B8, U09B6 ] }; + key { [ comma, U09B7 ] }; + key { [ period, U0964 ] }; + key { [ U09DF, U09AF ] }; + + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + +xkb_symbols "ben_probhat" { + name[Group1]= "Bangla (India, Probhat)"; + key { [ Escape ] }; + +// numbers + key { [ U200D, asciitilde ] }; + key { [ U09E7, exclam ] }; + key { [ U09E8, at ] }; + key { [ U09E9, numbersign ] }; + key { [ U09EA, U09F3 ] }; + key { [ U09EB, percent ] }; + key { [ U09EC, asciicircum ] }; + key { [ U09ED, U099E ] }; + key { [ U09EE, U09CE ] }; + key { [ U09EF, parenleft ] }; + key { [ U09E6, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ BackSpace ] }; + +// tab, q to ] + key { [ Tab, ISO_Left_Tab ] }; + key { [ U09A6, U09A7 ] }; + key { [ U09C2, U098A ] }; + key { [ U09C0, U0988 ] }; + key { [ U09B0, U09DC ] }; + key { [ U099F, U09A0 ] }; + key { [ U098F, U0990 ] }; + key { [ U09C1, U0989 ] }; + key { [ U09BF, U0987 ] }; + key { [ U0993, U0994 ] }; + key { [ U09AA, U09AB ] }; + key { [ U09C7, U09C8 ] }; + key { [ U09CB, U09CC ] }; + key { [ Return ] }; + +// caps, a to ' +// key { [ Caps_Lock ] }; + key { [ U09BE, U0985 ] }; + key { [ U09B8, U09B7 ] }; + key { [ U09A1, U09A2 ] }; + key { [ U09A4, U09A5 ] }; + key { [ U0997, U0998 ] }; + key { [ U09B9, U0983 ] }; + key { [ U099C, U099D ] }; + key { [ U0995, U0996 ] }; + key { [ U09B2, U0982 ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + +// shift, z to / +// key { [ Shift_L ] }; + key { [ U09DF, U09AF ] }; + key { [ U09B6, U09DD ] }; + key { [ U099A, U099B ] }; + key { [ U0986, U098B ] }; + key { [ U09AC, U09AD ] }; + key { [ U09A8, U09A3 ] }; + key { [ U09AE, U0999 ] }; + key { [ comma, U09C3 ] }; + key { [ U0964, U0981 ] }; + key { [ U09CD, question ] }; + key { [ U200C, U0965 ] }; + +// key { [ Control_L ] }; +// key { [ space ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; + + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + +// Bangla Baishakhi, Bangla Baishakhi Inscript, Bangla Bornona, Uni Gitanjali Layouts are added by Promathesh Mandal + +xkb_symbols "ben_baishakhi" { + name[Group1]= "Bangla (India, Baishakhi)"; + key { [ Escape ] }; + +// numbers + key { [ 0x100200D, 0x100200C ] }; + key { [ 0x10009E7, exclam ] }; + key { [ 0x10009E8, at ] }; + key { [ 0x10009E9, numbersign ] }; + key { [ 0x10009EA, dollar, 0x10009F2 ] }; + key { [ 0x10009EB, percent ] }; + key { [ 0x10009EC, asciicircum, 0x10009D7 ] }; + key { [ 0x10009ED, ampersand ] }; + key { [ 0x10009EE, asterisk,0x10009FA ] }; + key { [ 0x10009EF, parenleft ] }; + key { [ 0x10009E6, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ BackSpace ] }; + +// tab, q to ] + key { [ Tab, ISO_Left_Tab ] }; + key { [ 0x10009A1, 0x10009A2 ] }; + key { [ 0x10009C0 , 0x10009C2 ] }; + key { [ 0x10009C7, 0x100098F, 0x1000990 ] }; + key { [ 0x10009B0 , 0x10009C3, 0x100098B ] }; + key { [ 0x100099F, 0x10009A0 ] }; + key { [ 0x10009AF, 0x10009DF ] }; + key { [ 0x10009C1, 0x1000989, 0x100098A ] }; + key { [ 0x10009BF, 0x1000987, 0x1000988 ] }; + key { [ 0x10009CB, 0x1000993, 0x1000994 ] }; + key { [ 0x10009AA, 0x10009AB ] }; + key { [ bracketleft, braceleft] }; + key { [ bracketright, braceright ] }; + key { [ Return ] }; + +// caps, a to ' +// key { [ Caps_Lock ] }; + key { [ 0x10009BE, 0x1000985, 0x1000986 ] }; + key { [ 0x10009B8, 0x10009B6, 0x10009B7 ] }; + key { [ 0x10009A6, 0x10009A7 ] }; + key { [ 0x10009A4, 0x10009A5, 0x10009CE ] }; + key { [ 0x1000997, 0x1000998 ] }; + key { [ 0x10009CD, 0x10009B9, 0x1000983 ] }; + key { [ 0x100099C, 0x100099D ] }; + key { [ 0x1000995, 0x1000996 ] }; + key { [ 0x10009B2, 0x1000964, 0x100098C ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + +// shift, z to / +// key { [ Shift_L ] }; + key { [ 0x10009C8, 0x10009CC ] }; + key { [ 0x10009DC, 0x10009DD ] }; + key { [ 0x100099A, 0x100099B ] }; + key { [ 0x10009F1, 0x10009F0 ] }; + key { [ 0x10009AC, 0x10009AD ] }; + key { [ 0x10009A8, 0x10009A3, 0x100099E ] }; + key { [ 0x10009AE, 0x1000999, 0x1000981 ] }; + key { [ comma, less ] }; + key { [ period, greater,0x10009BC ] }; + key { [ slash, question, 0x1000982 ] }; + key { [ backslash, bar ] }; + +// third level with right-alt + include "level3(ralt_switch)" + +// key { [ Control_L ] }; +// key { [ space ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +}; + +xkb_symbols "ben_inscript" { + name[Group1]= "Bangla (India, Baishakhi Inscript)"; + + // Mainly numbers. + key { [ 0x100200D, 0x100200C ] }; + key { [ 0x10009E7 ] }; + key { [ 0x10009E8 ] }; + key { [ 0x10009E9 ] }; + key { [ 0x10009EA ] }; + key { [ 0x10009EB ] }; + key { [ 0x10009EC ] }; + key { [ 0x10009ED ] }; + key { [ 0x10009EE ] }; + key { [ 0x10009EF, parenleft ] }; + key { [ 0x10009E6, parenright ] }; + key { [ minus, 0x1000983 ] }; + key { [ 0x10009C3, 0x100098B ] }; + +// Mainly long vowels + + key { [ 0x10009CC, 0x1000994 ] }; + key { [ 0x10009C8, 0x1000990 ] }; + key { [ 0x10009BE, 0x1000986 ] }; + key { [ 0x10009C0, 0x1000988 ] }; + key { [ 0x10009C2, 0x100098A ] }; + +// Mainly voiced consonants + + key { [ 0x10009AC, 0x10009AD ] }; + key { [ 0x10009B9, 0x1000999 ] }; + key { [ 0x1000997, 0x1000998 ] }; + key { [ 0x10009A6, 0x10009A7 ] }; + key { [ 0x100099C, 0x100099D ] }; + key { [ 0x10009A1, 0x10009A2 ] }; + key { [ 0x10009BC, 0x100099E ] }; + +// Mainly short vowels + key { [ 0x10009CB, 0x1000993 ] }; + key { [ 0x10009C7, 0x100098F ] }; + key { [ 0x10009CD, 0x1000985 ] }; + key { [ 0x10009BF, 0x1000987 ] }; + key { [ 0x10009C1, 0x1000989 ] }; + + +// Mainly unvoiced consonants + + key { [ 0x10009AA, 0x10009AB ] }; + key { [ 0x10009B0, 0x10009DD ] }; + key { [ 0x1000995, 0x1000996 ] }; + key { [ 0x10009A4, 0x10009A5 ] }; + key { [ 0x100099A, 0x100099B ] }; + key { [ 0x100099F, 0x10009A0 ] }; + key { [ backslash, bar ] }; + + key { [ 0x10009CE ] }; + key { [ 0x1000982, 0x1000981 ] }; + key { [ 0x10009AE, 0x10009A3 ] }; + key { [ 0x10009A8, 0x10009A8 ] }; + key { [ 0x10009AC, 0x10009AC ] }; + key { [ 0x10009B2, 0x10009B2 ] }; + key { [ 0x10009B8, 0x10009B6 ] }; + key { [ comma, 0x10009B7 ] }; + key { [ period, 0x1000964 ] }; + key { [ 0x10009DF, 0x10009AF ] }; +}; + +xkb_symbols "ben_gitanjali" { + name[Group1]= "Bangla (India, Uni Gitanjali)"; + key { [ Escape ] }; + +// numbers + key { [ colon, question ] }; + key { [ 0x10009E7, 0x10009CE ] }; + key { [ 0x10009E8, apostrophe ] }; + key { [ 0x10009E9, numbersign ] }; + key { [ 0x10009EA, 0x10009F3 ] }; + key { [ 0x10009EB, slash ] }; + key { [ 0x10009EC, period ] }; + key { [ 0x10009ED, ampersand ] }; + key { [ 0x10009EE, asterisk ] }; + key { [ 0x10009EF, parenleft ] }; + key { [ 0x10009E6, parenright ] }; + key { [ minus, 0x1000983 ] }; + key { [ 0x10009C3, 0x100098B ] }; + key { [ BackSpace ] }; + +// tab, q to ] + key { [ Tab, ISO_Left_Tab ] }; + key { [ 0x10009D7, 0x1000994 ] }; + key { [ 0x10009C8, 0x1000990 ] }; + key { [ 0x10009BE, 0x1000985 ] }; + key { [ 0x10009C0, 0x1000988 ] }; + key { [ 0x10009C2, 0x100098A ] }; + key { [ 0x10009AC, 0x10009AD ] }; + key { [ 0x10009B9, 0x1000999 ] }; + key { [ 0x1000997, 0x1000998 ] }; + key { [ 0x10009A6, 0x10009A7 ] }; + key { [ 0x100099C, 0x100099D ] }; + key { [ 0x10009A1, 0x10009A2 ] }; + key { [ 0x100200C, 0x100099E ] }; + key { [ Return ] }; + +// caps, a to ' +// key { [ Caps_Lock ] }; + key { [ 0x100200D, 0x1000993 ] }; + key { [ 0x10009C7, 0x100098F ] }; + key { [ 0x10009CD ] }; + key { [ 0x10009BF, 0x1000987 ] }; + key { [ 0x10009C1, 0x1000989 ] }; + key { [ 0x10009AA, 0x10009AB ] }; + key { [ 0x10009B0, 0x10009F0 ] }; + key { [ 0x1000995, 0x1000996 ] }; + key { [ 0x10009A4, 0x10009A5 ] }; + key { [ 0x100099A, 0x100099B ] }; + key { [ 0x100099F, 0x10009A0 ] }; + +// shift, z to / +// key { [ Shift_L ] }; + key { [ 0x10009C7, 0x100098F ] }; + key { [ 0x1000982, 0x1000981 ] }; + key { [ 0x10009AE, 0x10009A3 ] }; + key { [ 0x10009A8, 0x10009DC ] }; + key { [ 0x10009F1, 0x10009DD ] }; + key { [ 0x10009B2 ] }; + key { [ 0x10009B8, 0x10009B6 ] }; + key { [ comma, 0x10009B7 ] }; + key { [ 0x1000964, 0x10009FA ] }; + key { [ 0x10009AF, 0x10009DF ] }; + key { [ backslash, bar ] }; + +// third level with right-win +// include "level3(lwin_switch)" + +// key { [ Control_L ] }; +// key { [ space ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +}; + + +xkb_symbols "ben_bornona" { + name[Group1]= "Bangla (India, Bornona)"; + key { [ Escape ] }; + +// numbers + key { [ 0x100200D, 0x100200C ] }; + key { [ 0x10009E7, exclam ] }; + key { [ 0x10009E8, 0x1000981 ] }; + key { [ 0x10009E9, numbersign ] }; + key { [ 0x10009EA, 0x10009F3 ] }; + key { [ 0x10009EB, percent ] }; + key { [ 0x10009EC, 0x1000983 ] }; + key { [ 0x10009ED, 0x10009CE ] }; + key { [ 0x10009EE, asterisk ] }; + key { [ 0x10009EF, parenleft ] }; + key { [ 0x10009E6, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ BackSpace ] }; + +// tab, q to ] + key { [ Tab, ISO_Left_Tab ] }; + key { [ 0x1000982, 0x1000999, 0x10009D7 ] }; + key { [ 0x10009A2, 0x10009A0, 0x100098A ] }; + key { [ 0x10009C7, 0x10009C8, 0x1000988 ] }; + key { [ 0x10009B0, 0x10009C3, 0x100098B ] }; + key { [ 0x10009A4, 0x100099F ] }; + key { [ 0x10009A7, 0x10009A5, 0x100098F ] }; + key { [ 0x10009C1, 0x10009C2, 0x1000989 ] }; + key { [ 0x10009BF, 0x10009C0, 0x1000987 ] }; + key { [ 0x10009CB, 0x10009CC, 0x1000993 ] }; + key { [ 0x10009AA, 0x1000990, 0x1000994 ] }; + key { [ 0x100005B, 0x100007B, 0x10009DC ] }; + key { [ 0x100005D, 0x100007D ] }; + key { [ Return ] }; + +// caps, a to ' +// key { [ Caps_Lock ] }; + key { [ 0x10009BE, 0x1000985, 0x10009F4 ] }; + key { [ 0x10009B8, 0x10009B6, 0x10009F5 ] }; + key { [ 0x10009A6, 0x10009A1, 0x10009F8 ] }; + key { [ 0x10009AB ] }; + key { [ 0x1000997, 0x1000998 ] }; + key { [ 0x10009CD, 0x10009B9 ] }; + key { [ 0x100099C, 0x100099D ] }; + key { [ 0x1000995, 0x1000996 ] }; + key { [ 0x10009B2, 0x1000964 ] }; + key { [ semicolon, 0x100003A ] }; + key { [ apostrophe, quotedbl ] }; + +// shift, z to / +// key { [ Shift_L ] }; + key { [ 0x10009AF, 0x10009DC ] }; + key { [ 0x10009B7, 0x10009DD, 0x10009FA ] }; + key { [ 0x100099A, 0x100099B ] }; + key { [ 0x10009AD ] }; + key { [ 0x10009AC, 0x10009DF ] }; + key { [ 0x10009A8, 0x10009A3 ] }; + key { [ 0x10009AE, 0x100099E ] }; + key { [ comma, 0x100003C ] }; + key { [ 0x100002E, 0x100003E ] }; + key { [ 0x100002F, question ] }; + key { [ 0x10009F1, 0x10009F0 ] }; + +// key { [ Control_L ] }; +// key { [ space ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +// third level with right-alt + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "guj" { + name[Group1]= "Gujarati"; + + // Mainly numbers. + key { [ U0AE7, U0A8D ] }; + key { [ U0AE8, U0AC5 ] }; + key { [ U0AE9 ] }; + key { [ U0AEA ] }; + key { [ U0AEB ] }; + key { [ U0AEC ] }; + key { [ U0AED ] }; + key { [ U0AEE ] }; + key { [ U0AEF, parenleft ] }; + key { [ U0AE6, parenright ] }; + key { [ minus, U0A83 ] }; + key { [ U0A8B, U0AC3 ] }; + +// Mainly long vowels + + key { [ U0ACC, U0A94 ] }; + key { [ U0AC8, U0A90 ] }; + key { [ U0ABE, U0A86 ] }; + key { [ U0AC0, U0A88 ] }; + key { [ U0AC2, U0A8A ] }; + +// Mainly voiced consonants + + key { [ U0AAC, U0AAD ] }; + key { [ U0AB9, U0A99 ] }; + key { [ U0A97, U0A98 ] }; + key { [ U0AA6, U0AA7 ] }; + key { [ U0A9C, U0A9D ] }; + key { [ U0AA1, U0AA2 ] }; + key { [ U0ABC, U0A9E ] }; + +// Mainly short vowels + key { [ U0ACB, U0A93 ] }; + key { [ U0AC7, U0A8F ] }; + key { [ U0ACD, U0A85 ] }; + key { [ U0ABF, U0A87 ] }; + key { [ U0AC1, U0A89 ] }; + +// Mainly unvoiced consonants + + key { [ U0AAA, U0AAB ] }; + key { [ U0AB0, U0AB0 ] }; + key { [ U0A95, U0A96 ] }; + key { [ U0AA4, U0AA5 ] }; + key { [ U0A9A, U0A9B ] }; + key { [ U0A9F, U0AA0 ] }; + key { [ U0AC9, U0A91 ] }; + + key { [ z , Z ] }; + key { [ U0A82, U0A81 ] }; + key { [ U0AAE, U0AA3 ] }; + key { [ U0AA8, U0AA8 ] }; + key { [ U0AB5, U0AB5 ] }; + key { [ U0AB2, U0AB3 ] }; + key { [ U0AB8, U0AB6 ] }; + key { [ comma, U0AB7 ] }; + key { [ period, U0964 ] }; + key { [ U0AAF, question ] }; + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "kan" { + + // Inscript layout for Kannada + // Author : G Karunakar + // Date : Wed Nov 13 17:22:58 IST 2002 + // Kannada digits mapped in basic only + + name[Group1]= "Kannada"; + + key { [ U0cca, U0c92 ] }; + key { [ U0ce7 ] }; + key { [ U0ce8 ] }; + key { [ U0ce9 ] }; + key { [ U0cea ] }; + key { [ U0ceb ] }; + key { [ U0cec ] }; + key { [ U0ced ] }; + key { [ U0cee ] }; + key { [ U0cef ] }; + key { [ U0ce6 ] }; + key { [ U0c83 ] }; + key { [ U0cc3, U0c8b ] }; + + key { [ U0ccc, U0c94 ] }; + key { [ U0cc8, U0c90 ] }; + key { [ U0cbe, U0c86 ] }; + key { [ U0cc0, U0c88 ] }; + key { [ U0cc2, U0c8a ] }; + key { [ U0cac, U0cad ] }; + key { [ U0cb9, U0c99 ] }; + key { [ U0c97, U0c98 ] }; + key { [ U0ca6, U0ca7 ] }; + key { [ U0c9c, U0c9d ] }; + key { [ U0ca1, U0ca2 ] }; + key { [ U0cbc, U0c9e ] }; + + key { [ U0ccb, U0c93 ] }; + key { [ U0cc7, U0c8f ] }; + key { [ U0ccd, U0c85 ] }; + key { [ U0cbf, U0c87 ] }; + key { [ U0cc1, U0c89 ] }; + key { [ U0caa, U0cab ] }; + key { [ U0cb0, U0cb1 ] }; + key { [ U0c95, U0c96 ] }; + key { [ U0ca4, U0ca5 ] }; + key { [ U0c9a, U0c9b ] }; + key { [ U0c9f, U0ca0 ] }; + + key { [ U0cc6, U0c8e ] }; + key { [ U0c82 ] }; + key { [ U0cae, U0ca3 ] }; + key { [ U0ca8 ] }; + key { [ U0cb5, U0cb4 ] }; + key { [ U0cb2, U0cb3 ] }; + key { [ U0cb8, U0cb6 ] }; + key { [ comma , U0cb7 ] }; + key { [ period ] }; + key { [ U0caf, U0040 ] }; + + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods = AltGr + }; + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +// Description : A keymap for Malayalam +// Encoding : Unicode (http://www.unicode.org) +// Author : Baiju M +// Date : Sat Aug 17 21:10:48 IST 2002 +// Mapping: + +partial alphanumeric_keys +xkb_symbols "mal" { + + name[Group1] = "Malayalam"; + + //From grave to backslash (\) + + key { [ U0d4a , U0d12 ] }; + +// svu: +// These lines were in former "mal" variant - +// but the digits are replaced with the ones from 'mal_plusnum' - +// for the integrity of all Indian layouts +// +// key { [1 , exclam ] }; +// key { [2 , at ] }; +// key { [3 , numbersign ] }; +// key { [4 , dollar ] }; +// key { [5 , percent ] }; +// key { [6 ,asciicircum ] }; +// key { [7 , ampersand ] }; +// key { [8 , asterisk ] }; +// key { [9 , parenleft ] }; +// key { [0 , parenright ] }; + + key { [ U0d67 , exclam ] }; + key { [ U0d68 , at ] }; + key { [ U0d69 , numbersign ] }; + key { [ U0d6a , dollar ] }; + key { [ U0d6b , percent ] }; + key { [ U0d6c , asciicircum ] }; + key { [ U0d6d , ampersand ] }; + key { [ U0d6e , asterisk ] }; + key { [ U0d6f , parenleft ] }; + key { [ U0d66 , parenright ] }; + + key { [ minus , U0d03 ] }; + key { [ U0d43 , U0d0b ] }; + key { [U0200c, U05C ]};//bksl: ZWNJ + + + // From 'q' to right bracket (]) + + key { [ U0d4c , U0d14 ] }; + key { [ U0d48 , U0d10 ] }; + key { [ U0d3e , U0d06 ] }; + key { [ U0d40 , U0d08 ] }; + key { [ U0d42 , U0d0a ] }; + key { [ U0d2c , U0d2d ] }; + key { [ U0d39 , U0d19 ] }; + key { [ U0d17 , U0d18 ] }; + key { [ U0d26 , U0d27 ] }; + key { [ U0d1c , U0d1d ] }; + key { [ U0d21 , U0d22 ] }; + key { [ U0200d , U0d1e ] }; + + // From 'a' to apostrophe (') + + key { [ U0d4b , U0d13 ] }; + key { [ U0d47 , U0d0f ] }; + key { [ U0d4d , U0d05 ] }; + key { [ U0d3f , U0d07 ] }; + key { [ U0d41 , U0d09 ] }; + key { [ U0d2a , U0d2b ] }; + key { [ U0d30 , U0d31 ] }; + key { [ U0d15 , U0d16 ] }; + key { [ U0d24 , U0d25 ] }; + key { [ U0d1a , U0d1b ] }; + key { [ U0d1f , U0d20 ] }; + + // From 'z' to slash (/) + + key { [ U0d46 , U0d0e ] }; + key { [ U0d02 , U200b ] };//X:ZWSP + key { [ U0d2e , U0d23 ] }; + key { [ U0d28 ] }; + key { [ U0d35 , U0d34 ] }; + key { [ U0d32 , U0d33 ] }; + key { [ U0d38 , U0d36 ] }; + key { [ comma , U0d37 ] }; + key { [ period , U0200d ] }; + key { [ U0d2f , question ] }; + + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +//Name : Lalitha +//Description : A transliteration keyboard layout for Malayalam +//Original Author : Noah Levitt +//Current Main : Jinesh K.J, Swathantra Malayalam Computing (SMC) + +partial alphanumeric_keys +xkb_symbols "mal_lalitha" { + name[Group1] = "Malayalam (Lalitha)"; + key.type="FOUR_LEVEL"; + + // Roman digits + key { [ U0D4D, U0D02, apostrophe, asciitilde ] }; // apostrophe: virama(chandrakala),anusvara + key { [ 1, exclam, U0D67, exclam ] }; + key { [ 2, at, U0D68, at ] }; + key { [ 3, numbersign, U0D69, numbersign ] }; + key { [ 4, dollar, U0D6A ] }; + key { [ 5, percent, U0D6B, percent ] }; + key { [ 6, asciicircum, U0D6C, asciicircum ] }; + key { [ 7, ampersand, U0D6D, ampersand ] }; + key { [ 8, asterisk, U0D6E, asterisk ] }; + key { [ 9, parenleft, U0D6F, parenleft ] }; + key { [ 0, parenright, U0D66, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ U005C, U007C, U200C ] };//backslash:pipe,backslash,ZWNJ + + //Q Row + key { [ U0D48, U0D4C, U0D10, U0D14 ] }; // Q: ai and au matras + key { [ U0D35 ] }; // W: wa, OM + key { [ U0D46, U0D47, U0D0E, U0D0F ] }; // E: e,ee matras + key { [ U0D30, U0D31, U0D43, U0D0B ] }; // R: ra,rra, vocalic Ri + key { [ U0D24, U0D25, U0D1F, U0D20 ] }; // T: tha, ttha,ta,tta + key { [ U0D2f ] }; // Y: ya + key { [ U0D41, U0D42, U0D09, U0D0A ] }; // U: u, uu matras + key { [ U0D3F, U0D40, U0D07, U0D08 ] }; // I: i, ii matras + key { [ U0D4A, U0D4B, U0D12, U0D13 ] }; // O: o, oo matras + key { [ U0D2A ] }; // P: pa + key { [ bracketleft, braceleft ] };//braceleft: + key { [ bracketright, braceright ] };//braceright: + + //A Row + key { [ U0D3E, U0D05, U0D06, U0D05 ] }; // A: a,aa + key { [ U0D38, U0D37 ] }; // S: sa, ssa + key { [ U0D26, U0D27, U0D21, U0D22 ] }; // D: soft da,soft dda,hard da,hard dda, + key { [ U0D2B ] }; // F: pha + key { [ U0D17, U0D18 ] }; // G: ga, gha + key { [ U0D39, U0D03 ] }; // H: ha, visarg + key { [ U0D1C, U0D1D ] }; // J: ja, jha + key { [ U0D15, U0D16 ] }; // K: ka, kha + key { [ U0D32, U0D33 ] }; // L: la, vocalic L or lru matra` + key { [ semicolon, colon ] }; + key { [apostrophe, quotedbl ] }; + + //Z Row + key { [ U0D34, U0D36 ] }; // Z: sha,zha + key { [ U0D4D, U200B ] }; // X: chandrakala,ZWSP + key { [ U0D1A, U0D1B ] }; // C: ca, cha + key { [ U0D35, U200D ] }; // V: va,ZWJ + key { [ U0D2C, U0D2D ] }; // B: ba, bha + key { [ U0D28, U0D23, U0D19, U0D1E ] }; // N: na, hard na,nga,nha + key { [ U0D2E, U0D02 ] }; // M: ma + key { [ comma, U003C ] };// comma: comma + key { [ period, U003E ] }; // period: period + key { [ slash, question ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +// modifier_map Mod3 { Mode_switch }; + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + + +partial alphanumeric_keys +xkb_symbols "olck" { + + // Layout for the Ol Chiki script. + // http://www.unicode.org/L2/L2005/05243r-n2984-ol-chiki.pdf (figure 9) + + name[Group1]= "Ol Chiki"; + + key { [ grave, U1C7B ] }; + + key { [ U1C51, exclam ] }; + key { [ U1C52, at ] }; + key { [ U1C53, numbersign ] }; + key { [ U1C54, dollar, U20B9 ] }; + key { [ U1C55, percent ] }; + key { [ U1C56, asciicircum ] }; + key { [ U1C57, ampersand ] }; + key { [ U1C58, asterisk ] }; + key { [ U1C59, parenleft ] }; + key { [ U1C50, parenright ] }; + key { [ minus, U1C7C ] }; + key { [ equal, plus ] }; + + key { [ U1C67 ] }; + key { [ U1C63 ] }; + key { [ U1C6E ] }; + key { [ U1C68 ] }; + key { [ U1C74, U1C5B ] }; + key { [ U1C6D ] }; + key { [ U1C69 ] }; + key { [ U1C64 ] }; + key { [ U1C5A, U1C73 ] }; + key { [ U1C6F ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ U1C7F, U1C7E ] }; + + key { [ U1C5F ] }; + key { [ U1C65 ] }; + key { [ U1C70, U1C6B ] }; + key { [ U1C5D ] }; + key { [ U1C5C ] }; + key { [ U1C66, U1C77 ] }; + key { [ U1C61 ] }; + key { [ U1C60 ] }; + key { [ U1C5E ] }; + key { [ semicolon, U1C7A ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ U1C72 ] }; + key { [ U1C7D ] }; + key { [ U1C6A ] }; + key { [ U1C76 ] }; + key { [ U1C75 ] }; + key { [ U1C71, U1C78 ] }; + key { [ U1C62, U1C6C ] }; + key { [ comma, less ] }; + key { [ U1C79, greater ] }; + key { [ slash, question ] }; + + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods = AltGr + }; + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "ori" { + // Inscript layout for Oriya + // Author: G Karunakar + // Date: Wed Nov 13 18:16:19 IST 2002 + + name[Group1]= "Oriya"; + + key { [ U0b67 ] }; + key { [ U0b68 ] }; + key { [ U0b69 ] }; + key { [ U0b6a ] }; + key { [ U0b6b ] }; + key { [ U0b6c ] }; + key { [ U0b6d ] }; + key { [ U0b6e ] }; + key { [ U0b6f ] }; + key { [ U0b66 ] }; + key { [ U0b03 ] }; + key { [ U0b43, U0b0b ] }; + + key { [ U0b4c, U0b14 ] }; + key { [ U0b48, U0b10 ] }; + key { [ U0b3e, U0b06 ] }; + key { [ U0b40, U0b08 ] }; + key { [ U0b42, U0b0a ] }; + key { [ U0b2c, U0b2d ] }; + key { [ U0b39, U0b19 ] }; + key { [ U0b17, U0b18 ] }; + key { [ U0b26, U0b27 ] }; + key { [ U0b1c, U0b1d ] }; + key { [ U0b21, U0b22 ] }; + key { [ U0b3c, U0b1e ] }; + + key { [ U0b4b, U0b13 ] }; + key { [ U0b47, U0b0f ] }; + key { [ U0b4d, U0b05 ] }; + key { [ U0b3f, U0b07 ] }; + key { [ U0b41, U0b09 ] }; + key { [ U0b2a, U0b2b ] }; + key { [ U0b30 ] }; + key { [ U0b15, U0b16 ] }; + key { [ U0b24, U0b25 ] }; + key { [ U0b1a, U0b1b ] }; + key { [ U0b1f, U0b20 ] }; + + key { [ U0b02, U0b01 ] }; + key { [ U0b2e, U0b23 ] }; + key { [ U0b28 ] }; + key { [ U0b35 ] }; + key { [ U0b32, U0b33 ] }; + key { [ U0b38, U0b36 ] }; + key { [ comma , U0b37 ] }; + key { [ period ] }; + key { [ U0b2f, U0040 ] }; + + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods = AltGr + }; + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +// based on a keyboard map from an 'xkb/symbols/tml' file +// INSCRIPT +partial alphanumeric_keys +xkb_symbols "tam" { + name[Group1]= "Tamil"; + + key { [ U0BCA, U0B92 ] }; + + // Mainly numbers. + key { [ U0BE7 ] }; + key { [ U0BE8 ] }; + key { [ U0BE9 ] }; + key { [ U0BEA ] }; + key { [ U0BEB ] }; + key { [ U0BEC ] }; + key { [ U0BED ] }; + key { [ U0BEE ] }; + key { [ U0BEF, parenleft ] }; + key { [ U0BF0, parenright ] }; + key { [ U0BF1, U0B83 ] }; + key { [ U0BF2, plus ] }; + +// Mainly long vowels + + key { [ U0BCC, U0B94 ] }; + key { [ U0BC8, U0B90 ] }; + key { [ U0BBE, U0B86 ] }; + key { [ U0BC0, U0B88 ] }; + key { [ U0BC2, U0B8A ] }; + +// Mainly voiced consonants + + key { [ U0BB9, U0B99 ] }; + key { [ U0B9c ] }; + key { [ U0B9E ] }; + +// Mainly short vowels + key { [ U0BCB, U0B93 ] }; + key { [ U0BC7, U0B8F ] }; + key { [ U0BCD, U0B85 ] }; + key { [ U0BBF, U0B87 ] }; + key { [ U0BC1, U0B89 ] }; + +// Mainly unvoiced consonants + + key { [ U0BAA ] }; + key { [ U0BB0, U0BB1 ] }; + key { [ U0B95 ] }; + key { [ U0BA4 ] }; + key { [ U0B9A ] }; + key { [ U0B9F ] }; + key { [ U005C, U007C ] };//backslash-bar - Changed to Unicode + + key { [ U0BC6, U0B8E ] }; + key { [ U0B82 ] }; + key { [ U0BAE, U0BA3 ] }; + key { [ U0BA8, U0BA9 ] }; + key { [ U0BB5, U0BB4 ] }; + key { [ U0BB2, U0BB3 ] }; + key { [ U0BB8, U0BB6 ] }; + key { [ comma, U0BB7 ] }; + key { [ period, U0964 ] }; + key { [ U0BAF, question ] }; + + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + +partial alphanumeric_keys +xkb_symbols "tam_unicode" { + +// Description: A keymap based on the TamilNet'99 typewriter keyboard +// Encoding: Unicode (http://www.unicode.org) +// Author: Thuraiappah Vaseeharan +// Modifed by: Malathi S +// Secondary contact: Sri Ramadoss M +// Date : Fri Sep 4 11:32:00 CST 2009 +// Mapping: + + name[Group1]= "Tamil (Unicode)"; + + // granthas + key { [ apostrophe, asciitilde ] }; + key { [ U0031, exclam ] } ; + key { [ U0032, at ] } ; + key { [ U0033, numbersign ] } ; + key { [ U0034, U0BF9 ] } ; + key { [ U0035, percent ] } ; + key { [ U0036, asciicircum ] } ; + key { [ U0037, ampersand ] } ; + key { [ U0038, asterisk ] } ; + key { [ U0039, parenleft ] } ; + key { [ U0030, parenright ] } ; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + + // Qrow + key { [ U0B9E, U0BB6 ] }; + key { [ U0BB1, U0BB7 ] }; + key { [ U0BA8, U0BB8 ] }; + key { [ U0B9A, U0BB9 ] }; + key { [ U0BB5, U0B9C ] }; + key { [ U0BB2 ] }; + key { [ U0BB0 ] }; + key { [ U0BC8, U0B90 ] }; + key { [ U0BCA, U0BCB ] }; + key { [ U0BBF, U0BC0 ] }; + key { [ U0BC1, U0BC2 ] }; + + // Arow + key { [ U0BAF ] }; + key { [ U0BB3 ] }; + key { [ U0BA9 ] }; + key { [ U0B95 ] }; + key { [ U0BAA ] }; + key { [ U0BBE, U0BB4 ] }; + key { [ U0BA4 ] }; + key { [ U0BAE ] }; + key { [ U0B9F ] }; + key { [ U0BCD, U0B83 ] }; + key { [ U0B99 ] }; + + // Zrow + key { [ U0BA3 ] }; + key { [ U0B92, U0B93 ] }; + key { [ U0B89, U0B8A ] }; + key { [ U0B8E, U0B8F ] }; + key { [ U0BC6, U0BC7 ] }; + key { [ U0B94, U0BCC ] }; + key { [ U0B85, U0B86 ] }; + key { [ U0B87, U0B88 ] }; +}; + +partial alphanumeric_keys +xkb_symbols "tam_keyboard_with_numerals" { + +// Description: A keymap based on the TamilNet'99 typewriter keyboard +// Encoding: Unicode (http://www.unicode.org) +// Author: Malathi S +// Secondary contact: Sri Ramadoss M +// Date : Fri Sep 4 11:33:00 CST 2009 +// Mapping: + + name[Group1]= "Tamil (keyboard with numerals)"; + + // Mainly numbers. + key { [ apostrophe, asciitilde ] }; + key { [ U0BE7, exclam ] }; + key { [ U0BE8, at ] }; + key { [ U0BE9, numbersign ] }; + key { [ U0BEA, U0BF9 ] }; + key { [ U0BEB, percent ] }; + key { [ U0BEC, asciicircum ] }; + key { [ U0BED, ampersand ] }; + key { [ U0BEE, asterisk ] }; + key { [ U0BEF, parenleft ] }; + key { [ U0BE6, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + + // Qrow + key { [ U0B9E, U0BB6 ] }; + key { [ U0BB1, U0BB7 ] }; + key { [ U0BA8, U0BB8 ] }; + key { [ U0B9a, U0BB9 ] }; + key { [ U0BB5, U0B9c ] }; + key { [ U0BB2 ] }; + key { [ U0BB0 ] }; + key { [ U0BC8, U0B90 ] }; + key { [ U0BCA, U0BCB ] }; + key { [ U0BBF, U0BC0 ] }; + key { [ U0BC1, U0BC2 ] }; + + // Arow + key { [ U0BAF ] }; + key { [ U0BB3 ] }; + key { [ U0BA9 ] }; + key { [ U0B95 ] }; + key { [ U0BAA ] }; + key { [ U0BBE, U0BB4 ] }; + key { [ U0BA4 ] }; + key { [ U0BAE ] }; + key { [ U0B9F ] }; + key { [ U0BCD, U0B83 ] }; + key { [ U0B99 ] }; + + // Zrow + key { [ U0BA3 ] }; + key { [ U0B92, U0B93 ] }; + key { [ U0B89, U0B8A ] }; + key { [ U0B8E, U0B8F ] }; + key { [ U0BC6, U0BC7 ] }; + key { [ U0B94, U0BCC ] }; + key { [ U0B85, U0B86 ] }; + key { [ U0B87, U0B88 ] }; +}; + +partial alphanumeric_keys +xkb_symbols "tam_TSCII" { + +// Description : A Tamil typewrite-style keymap +// loosely based on TamilNet'99 reommendations +// Encoding : TSCII (http://www.tscii.org) +// Author : Thuraiappah Vaseeharan +// Last Modified: Sat Jan 5 17:11:26 CST 2002 + + name[Group1]= "Tamil (TSCII typewriter)"; + + key { [ 0x10000b7, 0x10000a4 ] }; // aytham + key { [ 0x1000082, 0x10000a5 ] }; // shri + key { [ 0x1000083, 0x1000088 ] }; // ja + key { [ 0x1000084, 0x1000089 ] }; // sha + key { [ 0x1000085, 0x100008a ] }; // sa + key { [ 0x1000086, 0x100008b ] }; // ha + key { [ 0x1000087, 0x100008c ] }; // ksha + + // Qrow + key { [ 0x10000bb, 0x100009a ] }; // nja + key { [ 0x10000c8, 0x10000da ] }; // Ra + key { [ 0x10000bf, 0x10000d1 ] }; // NNa + key { [ 0x10000ba, 0x10000cd ] }; // ca + key { [ 0x10000c5, 0x10000d7 ] }; // va + key { [ 0x10000c4, 0x10000d6 ] }; // la + key { [ 0x10000c3, 0x10000d5 ] }; // ra + key { [ 0x10000a8, 0x10000b3 ] }; // sangili, ai + key { [ 0x10000ca, 0x10000cb ] }; // di, dI + key { [ 0x10000a2, 0x10000a3 ] }; // visiri + key { [ dead_acute, 0x10000a3 ] }; // Ukaaram + + // Arow + key { [ 0x10000c2, 0x10000d4 ] }; // ya + key { [ 0x10000c7, 0x10000d9 ] }; // La + key { [ 0x10000c9, 0x10000db ] }; // na + key { [ 0x10000b8, 0x10000cc ] }; // ka + key { [ 0x10000c0, 0x10000d2 ] }; // pa + key { [ dead_grave,0x10000a1 ] }; // pulli,aravu + key { [ 0x10000be, 0x10000d0 ] }; // tha + key { [ 0x10000c1, 0x10000d3 ] }; // ma + key { [ 0x10000bc, 0x10000ce ] }; // da + key { [ 0x10000c6, 0x10000d8 ] }; // zha + key { [ 0x10000b9, 0x1000099 ] }; // nga + + // Zrow + key { [ 0x10000bd, 0x10000cf ] }; // Na + key { [ 0x10000b4, 0x10000b5 ] }; // o, O + key { [ 0x10000af, 0x10000b0 ] }; // u, U + key { [ 0x10000b1, 0x10000b2 ] }; // e, E + key { [ 0x10000a6, 0x10000a7 ] }; // kombus + key { [ 0x10000b6, 0x10000aa ] }; // au + key { [ 0x10000ab, 0x10000ac ] }; // a, A + key { [ 0x10000fe, 0x10000ae ] }; // i, I +}; + +partial alphanumeric_keys +xkb_symbols "tam_TAB" { + +// Description: A keymap based on the TamilNet'99 typewriter keyboard +// Encoding: TAB (http://www.tamilnet99.org) +// Author: Thuraiappah Vaseeharan +// Date : Sun Aug 12 02:23:00 CDT 2001 + + name[Group1]= "Tamil (TAB typewriter)"; + + // numeral row + key { [ 0x10000e7, 0x10000a7 ] } ; + key { [ 0x10000fa, 0x10000a8 ] } ; + key { [ 0x10000fb ] } ; + key { [ 0x10000fc ] } ; + key { [ 0x10000fd ] } ; + key { [ 0x10000fe ] } ; + key { [ 0x10000ff ] } ; + + // q-row + key { [ 0x10000eb, 0x10000b3 ] }; + key { [ 0x10000f8, 0x10000c1 ] }; + key { [ 0x10000ef, 0x10000b8 ] }; + key { [ 0x10000ea, 0x10000b2 ] }; + key { [ 0x10000f5, 0x10000be ] }; + key { [ 0x10000f4, 0x10000bd ] }; + key { [ 0x10000f3, 0x10000bc ] }; + key { [ 0x10000ac, 0x10000e4 ] }; + key { [ 0x10000ae, 0x10000af ] }; + key { [ 0x10000a4, 0x10000a6 ] }; + key { [ dead_circumflex, 0x10000a6 ] }; // Ukaaram + + // a-row + key { [ 0x10000f2, 0x10000bb ] }; + key { [ 0x10000f7, 0x10000c0 ] }; + key { [ 0x10000f9, 0x10000c2 ] }; + key { [ 0x10000e8, 0x10000b0 ] }; + key { [ 0x10000f0, 0x10000b9 ] }; + key { [ 0x10000a2, 0x10000a3 ] }; + key { [ 0x10000ee, 0x10000b6 ] }; + key { [ 0x10000f1, 0x10000ba ] }; + key { [ 0x10000ec, 0x10000b4 ] }; + key { [ 0x10000f6, 0x10000bf ] }; + key { [ 0x10000e9, 0x10000b1 ] }; + + // z-row + key { [ 0x10000ed, 0x10000b5 ] }; + key { [ 0x10000e5, 0x10000e6 ] }; + key { [ 0x10000e0, 0x10000e1 ] }; + key { [ 0x10000e2, 0x10000e3 ] }; + key { [ 0x10000aa, 0x10000ab ] }; + key { [ 0x10000ac, 0x10000a3 ] }; + key { [ 0x10000dc, 0x10000dd ] }; + key { [ 0x10000de, 0x10000df ] }; +}; + +partial alphanumeric_keys +xkb_symbols "tel" { + + // Inscript layout for Telugu using Unicode + // Author: G Karunakar + // Date: + // See layout at http://www.indlinux.org/keymap/telugu.php + + name[Group1]= "Telugu"; + + key { [ U0c4a, U0c12 ] }; + key { [ U0c67 ] }; + key { [ U0c68 ] }; + key { [ U0c69, numbersign ] }; + key { [ U0c6a, dollar ] }; + key { [ U0c6b, percent ] }; + key { [ U0c6c, asciicircum ] }; + key { [ U0c6d, ampersand ] }; + key { [ U0c6e, asterisk ] }; + key { [ U0c6f, parenleft ] }; + key { [ U0c66, parenright ] }; + key { [ U0c03, underscore ] }; + key { [ U0c43, U0c0b ] }; + key { [ BackSpace ] }; + + key { [ U0c4c, U0c14 ] }; + key { [ U0c48, U0c10 ] }; + key { [ U0c3e, U0c06 ] }; + key { [ U0c40, U0c08 ] }; + key { [ U0c42, U0c0a ] }; + key { [ U0c2c, U0c2d ] }; + key { [ U0c39, U0c19 ] }; + key { [ U0c17, U0c18 ] }; + key { [ U0c26, U0c27 ] }; + key { [ U0c1c, U0c1d ] }; + key { [ U0c21, U0c22 ] }; + key { [ U0c1e ] }; + + key { [ U0c4b, U0c13 ] }; + key { [ U0c47, U0c0f ] }; + key { [ U0c4d, U0c05 ] }; + key { [ U0c3f, U0c07 ] }; + key { [ U0c41, U0c09 ] }; + key { [ U0c2a, U0c2b ] }; + key { [ U0c30, U0c31 ] }; + key { [ U0c15, U0c16 ] }; + key { [ U0c24, U0c25 ] }; + key { [ U0c1a, U0c1b ] }; + key { [ U0c1f, U0c20 ] }; + + key { [ U0c46, U0c0e ] }; + key { [ U0c02, U0c01 ] }; + key { [ U0c2e, U0c23 ] }; + key { [ U0c28 ] }; + key { [ U0c35 ] }; + key { [ U0c32, U0c33 ] }; + key { [ U0c38, U0c36 ] }; + key { [ comma , U0c37 ] }; + key { [ period ] }; + key { [ U0c2f, U0040 ] }; + + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods = AltGr + }; + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +//Name : Sarala +//Description : This is an adaptation of the Sarala keyboard (http://www.medhajananam.org/sarala/) developed +// by Krishna Dhullipalla. Because of the way keyboard shortcuts are laid out in KDE, the keyboard +// modifiers had to be changed. The layout does not take any part of the original Sarala keyboard +// code however. It has been developed from scratch, so the experience may differ. +// +// There is a ibus-m17n version of Sarala layout developed by Satya Pothamsetti on +// http://www.medhajananam.org/. +//Standard : Supports Unicode 9.0. +//Help : This layout differs slightly from the layout on Medhajenanam. The layout has been depicted in the +// pdf file attached to this post on Sarala google group. +// (https://groups.google.com/forum/#!topic/sarala-keyboard/-gsa90dUFcs). +// +//Layout Developed by : Krishna Dhullipalla (http://www.medhajananam.org/) +//Author : Venkat R Akkineni +//Date : Apr 28 2017 +partial alphanumeric_keys +xkb_symbols "tel-sarala" +{ + name[Group1] = "Telugu (Sarala)"; + key.type="FOUR_LEVEL"; + // sequence base, shift, alt, alt + shift + key { [ U0C4A, U0C12 ] }; // ొ ఒ + key { [ U0C42, U0C0A ] }; // ూ ఊ + key { [ U0C21, U0C22 ] }; // డ ఢ + key { [ U0C35, U0C39 ] }; // వ హ + key { [ U0C2C, U0C2D ] }; // బ భ + key { [ U0C28, U0C23 ] }; // న ణ + key { [ U0C2E, U0C01 ] }; // మ ఁ + key { [ U002C, U0C1E, leftcaret ] }; // , ఞ < + key { [ U002E, U0C19, rightcaret ] }; // . ఙ > + key { [ U0C36, question, KP_Divide ] }; // శ ? / + key { [ U0C2F, U0C3D ] }; // య ఽ + key { [ U0C02, U0C03 ] }; // ం ః + key { [ U0C26, U0C27 ] }; // ద ధ + key { [ U0C4D, U0C05 ] }; // ్ అ + key { [ U0C17, U0C18 ] }; // గ ఘ + key { [ U0C1A, U0C1B, U0C58, U0C59 ] }; // చ ఛ ౘ ౙ + key { [ U0C3E, U0C06 ] }; // ా ఆ + key { [ U0C15, U0C16, U0C62, U0C63 ] }; // క ఖ ౢ ౣ + key { [ U0C32, U0C33, U0C0C, U0C61 ] }; // ల ళ ఌ ౡ + key { [ U0C1F, U0C20, semicolon, colon ] }; // ట ఠ ; : + key { [ quoteright, quotedbl ] }; // ' " + key { [ U0C46, U0C0E, U0C44, U0C34 ] }; // ె ఎ ౄ ఴ + key { [ U0C38, U0C37, U0C44 ] }; // స ష ౄ + key { [ U0C47, U0C0F, U0C44 ] }; // ే ఏ ౄ + key { [ U0C30, U0C31, U0C44, U0C60 ] }; // ర ఱ ౄ ౠ + key { [ U0C24, U0C25 ] }; // త థ + key { [ U0C40, U0C08 ] }; // ీ ఈ + key { [ U0C41, U0C09 ] }; // ు ఉ + key { [ U0C3F, U0C07 ] }; // ి ఇ + key { [ U0C4B, U0C13 ] }; // ో ఓ + key { [ U0C2A, U0C2B ] }; // ప ఫ + key { [ U0C1C, U0C1D, bracketleft, braceleft ] }; // జ ఝ [ { + key { [ U0C48, U0C10, bracketright, braceright ] }; // ై ఐ ] } + key { [ KP_1, exclam, U0C67, U0C78 ] }; // 1 ! ౦ ౸ + key { [ KP_2, at, U0C68, U0C79 ] }; // 2 @ ౨ ౹ + key { [ KP_3, numbersign, U0C69, U0C7A ] }; // 3 # ౩ ౺ + key { [ KP_4, dollar, U0C6A, U0C7B ] }; // 4 $ ౪ ౻ + key { [ KP_5, percent, U0C6B, U0C7C ] }; // 5 % ౫ ౼ + key { [ KP_6, asciicircum, U0C6C, U0C7D ] }; // 6 ^ ౬ ౽ + key { [ KP_7, ampersand, U0C6D, U0C7E ] }; // 7 & ౭ ౾ + key { [ KP_8, KP_Multiply, U0C6E, U0C7F ] }; // 8 * ౮ ౿ + key { [ KP_9, U0028, U0C6F, U20B9 ] }; // 9 ( ౯ ₹ + key { [ KP_0, U0029, U0C66, U0C55 ] }; // 0 ) ౦ ౕ + key { [ KP_Subtract, underbar, NoSymbol, U0C56 ] }; // - _ ౖ + key { [ KP_Equal, KP_Add ] }; // = + + key { [ U0C4C, U0C14, U0964, U0965 ] }; // ౌ ఔ । ॥ + key { [ U0C43, U0C0B, quoteleft, asciitilde ] }; // ృ ఋ ` ~ + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "urd-phonetic" { + include "pk(urd-phonetic)" + name[Group1]= "Urdu (phonetic)"; +}; + +partial alphanumeric_keys +xkb_symbols "urd-phonetic3" { + include "pk(urd-crulp)" + name[Group1]= "Urdu (alt. phonetic)"; +}; + +partial alphanumeric_keys +xkb_symbols "urd-winkeys" { + include "pk(urd-nla)" + name[Group1]= "Urdu (Win keys)"; +}; + +// based on a keyboard map from an 'xkb/symbols/gur' file + +partial alphanumeric_keys +xkb_symbols "guru" { + name[Group1]= "Punjabi (Gurmukhi)"; + + // Mainly numbers. + key { [ U0A67 ] }; + key { [ U0A68 ] }; + key { [ U0A69, U0A71 ] }; + key { [ U0A6A, U0A74 ] }; + key { [ U0A6B, U262C ] }; + key { [ U0A6C ] }; + key { [ U0A6D ] }; + key { [ U0A6e ] }; + key { [ U0A6F, parenleft ] }; + key { [ U0A66, parenright ] }; + key { [ U0A03 ] }; + key { [ equal, plus ] }; + +// Mainly long vowels + + key { [ U0A4C, U0A14 ] }; + key { [ U0A48, U0A10 ] }; + key { [ U0A3E, U0A06 ] }; + key { [ U0A40, U0A08 ] }; + key { [ U0A42, U0A0A ] }; + +// Mainly voiced consonants + + key { [ U0A2C, U0A2D ] }; + key { [ U0A39, U0A19 ] }; + key { [ U0A17, U0A18 ] }; + key { [ U0A26, U0A27 ] }; + key { [ U0A1C, U0A1D ] }; + key { [ U0A21, U0A22 ] }; + key { [ U0A3C, U0A1E ] }; + +// Mainly short vowels + key { [ U0A4B, U0A13 ] }; + key { [ U0A47, U0A0F ] }; + key { [ U0A4D, U0A05 ] }; + key { [ U0A3F, U0A07 ] }; + key { [ U0A41, U0A09 ] }; + +// Mainly unvoiced consonants + + key { [ U0A2A, U0A2B ] }; + key { [ U0A30, U0A5C ] }; + key { [ U0A15, U0A16 ] }; + key { [ U0A24, U0A25 ] }; + key { [ U0A1A, U0A1B ] }; + key { [ U0A1F, U0A20 ] }; + key { [ U005C, U007C ] }; + + key { [ z, U0A01 ] }; + key { [ U0A02, U0A70, U0A71 ] }; + key { [ U0A2E, U0A23 ] }; + key { [ U0A28, U0A28 ] }; + key { [ U0A35, U0A35 ] }; + key { [ U0A32, U0A33 ] }; + key { [ U0A38, U0A36 ] }; + key { [ comma, less ] }; + key { [ period, U0964 ] }; + key { [ U0A2F, question ] }; + + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +//Name : Jhelum (Refind Inscript) +//Description : A Jhelum keyboard layout for Gurmukhi (Punjabi) +// http://www.satluj.org/Jhelum.html +//Modified for Inscript to make +//Original Author : Amanpreet Singh Alam { [ apostrophe, asciitilde, U0A02,U0A01 ] }; // apostrophe: anusvara, candrabindu + key { [ 1,exclam, U0A67, exclam ] }; + key { [ 2,at, U0A68, at ] }; + key { [ 3,numbersign, U0A69, numbersign ] }; + key { [ 4,dollar, U0A6A ] }; + key { [ 5,percent,U0A6B, percent ] }; + key { [ 6,U0A73, U0A6C,asciicircum ] }; + key { [ 7,U0A72,U0A6D,ampersand ] }; + key { [ 8,asterisk,U0A6E, asterisk ] }; + key { [ 9,parenleft,U0A6F,parenleft ] }; + key { [ 0,parenright,U0A66,parenright ] }; + key { [ minus,underscore] }; + key { [ equal,plus] }; + key { [ U0964,U0965,U007C,U005C] }; //pipe : danda, double danda + + //Q Row + key { [ U0A4C, U0A14 ] }; // Q: oo, ooh + key { [ U0A48, U0A10 ] }; // W: ee, ae + key { [ U0A3E, U0A06 ] }; // E: a, aa + key { [ U0A40, U0A08, U20B9 ] }; // R: ee, ai, rupeesign + key { [ U0A42, U0A0A ] }; // T: u, uu + key { [ U0A30, U0A5C ] }; // Y: ra, raa + key { [ U0A26, U0A27 ] }; // U: tha, thha + key { [ U0A17, U0A18, U0A5A ] }; // I:ga, gha + key { [ U0A24, U0A1F ] }; // O: ta, tha + key { [ U0A2A, U0A5E, VoidSymbol,U0A5E ] }; // P: pa, pha + key { [ U0A21, U0A22, bracketleft, braceleft ] }; + key { [ U0A19, U0A1E, bracketright, braceright ] }; + + //A Row + key { [ U0A4B, U0A13 ] }; // A: o, oo + key { [ U0A47, U0A0F ] }; // S: e, ee + key { [ U0A4D, U0A05 ] }; // D: halant, aa + key { [ U0A3F, U0A07 ] }; // F: i, aa + key { [ U0A41, U0A09 ] }; // G: u, uh + key { [ U0A39, U0A20 ] }; // H: ha, thha + key { [ U0A1C, U0A1D, U0A5B ] }; // J: ja, jha + key { [ U0A15, U0A16,VoidSymbol ,U0A59 ] }; // K: ka, kha + key { [ U0A32, U0A25, U0A33 ] }; // L: la, tha + key { [ U0A38, colon, U0A36 ] }; //; sa + key { [apostrophe, quotedbl ] }; + + //Z Row + key { [ U0A71, U0A3C ] }; // Z: addak, par bindi + key { [ U0A02, U0A70 ] }; // X: bindi, tippi + key { [ U0A1A, U0A1B ] }; // C: ca, cha + key { [ U0A35, U0A2F ] }; // V: va, ya + key { [ U0A2C, U0A2D ] }; // B: ba, bha + key { [ U0A28, U0A23 ] }; // N: na, nha + key { [ U0A2E, U0A2E ] }; // M: ma + key { [ comma, U262C ] };// comma: comma, dev abbreviation sign + key { [ period, U0A74 ] }; // period: period, nukta + key { [ slash, question ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +// modifier_map Mod3 { Mode_switch }; + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + +// Contact: Walter Bender + + include "in(deva)" + key { [ U094A, U0912 ] }; // DEVANAGARI VOWEL SIGN SHORT O; DEVANAGARI LETTER SHORT O + key { [ U0967, U090D ] }; // DEVANAGARI DIGIT ONE; DEVANAGARI LETTER CANDRA E + key { [ U0968, U0945 ] }; // DEVANAGARI DIGIT TWO; DEVANAGARI VOWEL SIGN CANDRA E + key { [ U0969 ] }; // DEVANAGARI DIGIT THREE; + key { [ U096A ] }; // DEVANAGARI DIGIT FOUR; + key { [ U096B ] }; // DEVANAGARI DIGIT FIVE; + key { [ U096C ] }; // DEVANAGARI DIGIT SIX; + key { [ U096D ] }; // DEVANAGARI DIGIT SEVEN; + key { [ U096E ] }; // DEVANAGARI DIGIT EIGHT; + key { [ U096F, parenleft ] }; // DEVANAGARI DIGIT NINE; + key { [ U0966, parenright ] }; // DEVANAGARI DIGIT ZERO; + key { [ minus, U0903 ] }; // DEVANAGARI SIGN VISARGA; + key { [ U0943, U090B ] }; // DEVANAGARI VOWEL SIGN VOCALIC R; DEVANAGARI LETTER VOCALIC R + + key { [ U094C, U0914 ] }; // DEVANAGARI VOWEL SIGN AU; DEVANAGARI LETTER AU + key { [ U0948, U0910 ] }; // DEVANAGARI VOWEL SIGN AI; DEVANAGARI LETTER AI + key { [ U093E, U0906 ] }; // DEVANAGARI VOWEL SIGN AA; DEVANAGARI LETTER AA + key { [ U0940, U0908 ] }; // DEVANAGARI VOWEL SIGN II; DEVANAGARI LETTER II + key { [ U0942, U090A ] }; // DEVANAGARI VOWEL SIGN UU; DEVANAGARI LETTER UU + key { [ U092C, U092D ] }; // DEVANAGARI LETTER BA; DEVANAGARI LETTER BHA + key { [ U0939, U0919 ] }; // DEVANAGARI LETTER HA; DEVANAGARI LETTER NGA + key { [ U0917, U0918 ] }; // DEVANAGARI LETTER GA; DEVANAGARI LETTER GHA + key { [ U0926, U0927 ] }; // DEVANAGARI LETTER DA; DEVANAGARI LETTER DHA + key { [ U091C, U091D ] }; // DEVANAGARI LETTER JA; DEVANAGARI LETTER JHA + key { [ U0921, U0922 ] }; // DEVANAGARI LETTER DDA; DEVANAGARI LETTER DDHA + key { [ U093C, U091E ] }; // DEVANAGARI SIGN NUKTA; DEVANAGARI LETTER NYA + + key { [ U0949, U0911 ] }; // DEVANAGARI VOWEL SIGN CANDRA O; DEVANAGARI LETTER CANDRA O + + key { [ U094B, U0913 ] }; // DEVANAGARI VOWEL SIGN O; DEVANAGARI LETTER O + key { [ U0947, U090F ] }; // DEVANAGARI VOWEL SIGN E; DEVANAGARI LETTER E + key { [ U094D, U0905 ] }; // DEVANAGARI SIGN VIRAMA; DEVANAGARI LETTER A + key { [ U093F, U0907 ] }; // DEVANAGARI VOWEL SIGN I; DEVANAGARI LETTER I + key { [ U0941, U0909 ] }; // DEVANAGARI VOWEL SIGN U; DEVANAGARI LETTER U + key { [ U092A, U092B ] }; // DEVANAGARI LETTER PA; DEVANAGARI LETTER PHA + key { [ U0930, U0931 ] }; // DEVANAGARI LETTER RA; DEVANAGARI LETTER RRA + key { [ U0915, U0916 ] }; // DEVANAGARI LETTER KA; DEVANAGARI LETTER KHA + key { [ U0924, U0925 ] }; // DEVANAGARI LETTER TA; DEVANAGARI LETTER THA + key { [ U091A, U091B ] }; // DEVANAGARI LETTER CA; DEVANAGARI LETTER CHA + key { [ U091F, U0920 ] }; // DEVANAGARI LETTER TTA; DEVANAGARI LETTER TTHA + + key { [ U0946, U090E ] }; // DEVANAGARI VOWEL SIGN SHORT E; DEVANAGARI LETTER SHORT E + key { [ U0902, U0901 ] }; // DEVANAGARI SIGN ANUSVARA; DEVANAGARI SIGN CANDRABINDU + key { [ U092E, U0923 ] }; // DEVANAGARI LETTER MA; DEVANAGARI LETTER NNA + key { [ U0928, U0929 ] }; // DEVANAGARI LETTER NA; DEVANAGARI LETTER NNNA + key { [ U0935, U0934 ] }; // DEVANAGARI LETTER VA; DEVANAGARI LETTER LLLA + key { [ U0932, U0933 ] }; // DEVANAGARI LETTER LA; DEVANAGARI LETTER LLA + key { [ U0938, U0936 ] }; // DEVANAGARI LETTER SA; DEVANAGARI LETTER SHA + key { [ comma, U0937 ] }; // DEVANAGARI LETTER SSA + key { [ period, U0964 ] }; // DEVANAGARI DANDA + key { [ U092F, U095F ] }; // DEVANAGARI LETTER YA; DEVANAGARI LETTER YYA + + // space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ): + include "nbsp(zwnj3zwj4)" + + include "group(olpc)" + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "hin-wx" { + + name[Group1]= "Hindi (Wx)"; + + key { [ grave, asciitilde, 2, 3 ] }; + + key { [ 0x1000967, exclam ] }; + key { [ 0x1000968, at ] }; + key { [ 0x1000969 , numbersign ] }; + key { [ 0x100096A , dollar ] }; + key { [ 0x100096B , percent ] }; + key { [ 0x100096C , asciicircum ] }; + key { [ 0x100096D , ampersand ] }; + key { [ 0x100096e , asterisk ] }; + key { [ 0x100096F, parenleft ] }; + key { [ 0x1000966, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + + key { [ 0x1000943, 0x1000944, 0x100090B, 0x1000960] }; + key { [ 0x1000924, 0x1000925 ] }; + key { [ 0x1000947, 0x1000948, 0x100090F, 0x1000910] }; + key { [ 0x1000930, 0x1000937 ] }; + key { [ 0x100091F, 0x1000920 ] }; + + + key { [ 0x100092F ] }; + key { [ 0x1000941, 0x1000942, 0x1000909, 0x100090A ] }; + key { [ 0x100093F, 0x1000940, 0x1000907, 0x1000908 ] }; + key { [ 0x100094B, 0x100094C, 0x1000913, 0x1000914] }; + key { [ 0x100092A, 0x100092B ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ backslash, bar, 0x1000964, 0x1000965 ] }; + + key { [ 0x100094D, 0x100093E, 0x1000905,0x1000906 ] }; + key { [ 0x1000938, 0x1000936 ] }; + key { [ 0x1000921, 0x1000922 ] }; + key { [ 0x1000919, 0x100091E ] }; + key { [ 0x1000917, 0x1000918 ] }; + + + key { [ 0x1000939, 0x1000903 ] }; + key { [ 0x100091C, 0x100091D ] }; + key { [ 0x1000915, 0x1000916 ] }; + key { [ 0x1000932, 0x1000962, 0x1000933, 0x100090C] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ 0x1000901, 0x100093C, 0x100093D, 0x1000950] }; + key { [ 0x1000926, 0x1000927 ] }; + key { [ 0x100091A, 0x100091B ] }; + key { [ 0x1000935 ] }; + key { [ 0x100092C, 0x100092D ] }; + key { [ 0x1000928, 0x1000923 ] }; + key { [ 0x100092E, 0x1000902 ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + +partial alphanumeric_keys +xkb_symbols "eng" { + + include "us(basic)" + name[Group1]= "English (India, with rupee)"; + + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + + +// Description : Enhanced INSCRIPT keymap for Malayalam +// Encoding : Unicode (http://www.unicode.org) +// Author : Mahesh T Pai +// Date : March, 2011 +// Source : http://www.nongnu.org/smc/docs/images/ml_inscript_layout.jpg +// Comment : Based on the Inscript Keyboard created by M Baiju +// Mapping: + +partial alphanumeric_keys +xkb_symbols "mal_enhanced" { + + name[Group1] = "Malayalam (enhanced Inscript, with rupee)"; + + //From grave to backslash (\) + + key { [ U0d4a , U0d12 ] }; + key { [ U0d67 , exclam ] }; + key { [ U0d68 , at ] }; + key { [ U0d69 , numbersign ] }; + key { [ U0d6a , dollar ] }; + key { [ U0d6b , percent ] }; + key { [ U0d6c , asciicircum ] }; + key { [ U0d6d , ampersand ] }; + key { [ U0d6e , U0d7e ] }; + key { [ U0d6f , parenleft ] }; + key { [ U0d66 , parenright ] }; + + key { [ minus , U0d03 ] }; + key { [ U0d43 , U0d0b ] }; + key { [ U0d7c , U05C ] }; //bksl: chillu RR + + + // From 'q' to right bracket (]) + + key { [ U0d57 , U0d14 ] }; + key { [ U0d48 , U0d10 ] }; + key { [ U0d3e , U0d06 ] }; + key { [ U0d40 , U0d08 ] }; + key { [ U0d42 , U0d0a ] }; + key { [ U0d2c , U0d2d ] }; + key { [ U0d39 , U0d19 ] }; + key { [ U0d17 , U0d18 ] }; + key { [ U0d26 , U0d27 ] }; + key { [ U0d1c , U0d1d ] }; + key { [ U0d21 , U0d22 ] }; + key { [ U0200d , U0d1e ] }; + + // From 'a' to apostrophe (') + + key { [ U0d4b , U0d13 ] }; + key { [ U0d47 , U0d0f ] }; + key { [ U0d4d , U0d05 ] }; + key { [ U0d3f , U0d07 ] }; + key { [ U0d41 , U0d09 ] }; + key { [ U0d2a , U0d2b ] }; + key { [ U0d30 , U0d31 ] }; + key { [ U0d15 , U0d16 ] }; + key { [ U0d24 , U0d25 ] }; + key { [ U0d1a , U0d1b ] }; + key { [ U0d1f , U0d20 ] }; + + // From 'z' to slash (/) + + key { [ U0d46 , U0d0e ] }; + key { [ U0d02 , U0d7a ] }; + key { [ U0d2e , U0d23 ] }; + key { [ U0d28 , U0d7b ] }; + key { [ U0d35 , U0d34 ] }; + key { [ U0d32 , U0d33 ] }; + key { [ U0d38 , U0d36 ] }; + key { [ comma , U0d37 ] }; + key { [ period , U0d7d ] }; //chillu l + key { [ U0d2f , question ] }; + + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + + +// ---- BEGIN Hindi KaGaPa phonetic ---- +// Name: KaGaPa phonetic +// Brief: Devanagari layout (Hindi, Sanskrit, Nepali, Marathi, etc.) +// Diagram: (Original)[http://baraha.com/help/Keyboards/dev_brhkbd.htm] +// (This layout)[http://bdsatish.in/lang/dev-kagapa.png] +// +// Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout) +// which is a modified layout of the specification by Dr. K. P. Rao. +// This is a phonetic layout with the following features: +// [1] All letters are mapped to phonetically-similar English keys +// as much as possible. +// [2] The independent vowel (svara) and its dependent vowel (maatra) +// use the same key (depending upon SHIFT, ALTGR or ALTGR + SHIFT). +// [3] Consonant conjuncts are produced by explicitly invoking the +// 'viraama' (key f). The 'short a' maatra is implicit in all +// consonants. +// [4] Zero width non-joiner and joiner are on keys 6 and 7 +// respectively. These are absolutely essential for alternative +// glyph renderings of consonant half-forms. +// [5] Rigvedic accent marks, visarga variants. +// +// Author: Satish BD +// +partial alphanumeric_keys +xkb_symbols "hin-kagapa" { + name[Group1] = "Hindi (KaGaPa phonetic)"; + key.type="FOUR_LEVEL"; + + // Roman digits + key { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark + key { [ 1, exclam, U0967 ] }; + key { [ 2, at, U0968, U20A8 ] }; // U20A8: generic rupee sign (Rs) + key { [ 3, numbersign, U0969 ] }; + key { [ 4, dollar, U096A, U20B9 ] }; // U20B9: new Indian rupee sign + key { [ 5, percent, U096B ] }; + key { [ 6, asciicircum, U096C, U200C ] }; // ZWNJ + key { [ 7, ampersand, U096D, U200D ] }; // ZWJ + key { [ 8, asterisk, U096E, U0901 ] }; // U0901: Devanagari candrabindu + key { [ 9, parenleft, U096F ] }; + key { [ 0, parenright, U0966, U0970 ] }; // U0970: Devanagari abbreviation sign + key { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta + key { [ equal, plus ] }; + key { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda + + //Q Row + key { [ U091F, U0920 ] }; // Q: retroflex Ta, Tha + key { [ U0921, U0922, U095C, U095D ] }; // W: retroflex Da, Dha, Da-nukta, Dha-nukta + key { [ U0946, U0947, U090E, U090F ] }; // E: matras, short E, long E + key { [ U0930, U0943, U090B, U0931 ] }; // R: ra, vocalic R matra, vocalic R, ra-nukta + key { [ U0924, U0925 ] }; // T: dental ta, tha + key { [ U092F, U0948, U0910, U095F ] }; // Y: ya, ai matra, ai, ya-nukta + key { [ U0941, U0942, U0909, U090A ] }; // U: matras, u, uu + key { [ U093F, U0940, U0907, U0908 ] }; // I: matras, i, ii + key { [ U094A, U094B, U0912, U0913 ] }; // O: matras, short o, long o + key { [ U092A, U092B, U095E ] }; // P: pa, pha, pha-nukta + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + //A Row + key { [ U093E, U0906, U0905, U0972 ] }; // A: aa matra, aa, short a, candra a + key { [ U0938, U0936 ] }; // S: sa, sha + key { [ U0926, U0927 ] }; // D: dental da, dha + key { [ U094D, U0944, U0960 ] }; // F: virama, vocalic RR matra, vocalic RR + key { [ U0917, U0918, U095A ] }; // G: ga, gha, ga-nukta + key { [ U0939, U0903, U1CF5, U1CF6 ] }; // H: ha, visarga, jihvamuliya, upadhmaniya + key { [ U091C, U091D, U095B ] }; // J: ja, jha, ja-nukta + key { [ U0915, U0916, U0958, U0959 ] }; // K: ka, kha, ka-nukta, kha-nukta + key { [ U0932, U0933, U0962, U090C ] }; // L: la, lla, vocalic L matra, vocalic L + key { [ semicolon, colon, U1CF2, U1CF3 ] }; // U1CF2/3: ardhavisarga/rotated ardhavisarga + key { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta + // U201D: Right double quotation mark + //Z Row + key { [ U091E, U0919 ] }; // Z: nya, nga + key { [ U0937, U093C, U0934 ] }; // X: ssa, nukta below, lla-nukta + key { [ U091A, U091B ] }; // C: ca, cha + key { [ U0935, U094C, U0914 ] }; // V: va, matra au, au + key { [ U092C, U092D ] }; // B: ba, bha + key { [ U0928, U0923, U0929 ] }; // N: na, nna, nnna + key { [ U092E, U0902, U093D, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM + key { [ comma, U003C, U0945, U090D ] }; // comma: comma, less than, matra, candra e + key { [ period, U003E, U0949, U0911 ] }; // period: period, greater than, matra, candra o + key { [ slash, question ] }; + + include "level3(ralt_switch)" +}; +// ---- END Hindi KaGaPa ---- + +// Sanskrit uses Devanagari layout of Hindi +partial alphanumeric_keys +xkb_symbols "san-kagapa" { + include "in(hin-kagapa)" + name[Group1] = "Sanskrit (KaGaPa phonetic)"; +}; + +// Marathi uses Devanagari layout of Hindi +partial alphanumeric_keys +xkb_symbols "mar-kagapa" { + include "in(hin-kagapa)" + name[Group1] = "Marathi (KaGaPa phonetic)"; +}; + + +// ---- BEGIN Kannada KaGaPa phonetic ---- +// Name: Kannada KaGaPa phonetic +// Diagram: (Original)[http://www.baraha.com/help/Keyboards/kan_brhkbd.htm] +// (This layout)[http://bdsatish.in/lang/kan-kagapa.png] +// +// Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout). +// See the description to "hin-kagapa" above. +// Certain punctuation characters from Devanagari block are +// retained for compatibility. +// +// Author: Satish BD +// +partial alphanumeric_keys +xkb_symbols "kan-kagapa" { + name[Group1] = "Kannada (KaGaPa phonetic)"; + key.type="FOUR_LEVEL"; + + // Roman digits + key { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark + key { [ 1, exclam, U0CE7 ] }; + key { [ 2, at, U0CE8, U20A8 ] }; // U20A8: generic rupee sign (Rs) + key { [ 3, numbersign, U0CE9 ] }; + key { [ 4, dollar, U0CEA, U20B9 ] }; // U20B9: new Indian rupee sign + key { [ 5, percent, U0CEB ] }; + key { [ 6, asciicircum, U0CEC, U200C ] }; // ZWNJ + key { [ 7, ampersand, U0CED, U200D ] }; // ZWJ + key { [ 8, asterisk, U0CEE, U0901 ] }; // U0901: Devanagari candrabindu + key { [ 9, parenleft, U0CEF ] }; + key { [ 0, parenright, U0CE6 ] }; + key { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta + key { [ equal, plus ] }; + key { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda + + //Q Row + key { [ U0C9F, U0CA0 ] }; // Q: retroflex Ta, Tha + key { [ U0CA1, U0CA2 ] }; // W: retroflex Da, Dha + key { [ U0CC6, U0CC7, U0C8E, U0C8F ] }; // E: matras, short E, long E + key { [ U0CB0, U0CC3, U0C8B, U0CB1 ] }; // R: ra, vocalic R matra, vocalic R, RRA + key { [ U0CA4, U0CA5 ] }; // T: dental ta, tha + key { [ U0CAF, U0CC8, U0C90 ] }; // Y: ya, ai matra, ai + key { [ U0CC1, U0CC2, U0C89, U0C8A ] }; // U: matras, u, uu + key { [ U0CBF, U0CC0, U0C87, U0C88 ] }; // I: matras, i, ii + key { [ U0CCA, U0CCB, U0C92, U0C93 ] }; // O: matras, short o, long o + key { [ U0CAA, U0CAB ] }; // P: pa, pha + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + //A Row + key { [ U0CBE, U0C86, U0C85 ] }; // A: aa matra, aa, short a + key { [ U0CB8, U0CB6 ] }; // S: sa, sha + key { [ U0CA6, U0CA7 ] }; // D: dental da, dha + key { [ U0CCD, U0CC4, U0CE0 ] }; // F: virama, vocalic RR matra, vocalic RR + key { [ U0C97, U0C98 ] }; // G: ga, gha + key { [ U0CB9, U0C83, U0CF1, U0CF2 ] }; // H: ha, visarga, jihvanuliya, upadhmaniya + key { [ U0C9C, U0C9D ] }; // J: ja, jha + key { [ U0C95, U0C96 ] }; // K: ka, kha + key { [ U0CB2, U0CB3, U0CE2, U0C8C ] }; // L: la, lla, vocalic L matra, vocalic L + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta + // U201D: Right double quotation mark + //Z Row + key { [ U0C9E, U0C99 ] }; // Z: nya, nga + key { [ U0CB7, U0CBC, U0CDE ] }; // X: ssa, nukta below, LLLA + key { [ U0C9A, U0C9B ] }; // C: ca, cha + key { [ U0CB5, U0CCC, U0C94 ] }; // V: va, matra au, au + key { [ U0CAC, U0CAD ] }; // B: ba, bha + key { [ U0CA8, U0CA3 ] }; // N: na, nna + key { [ U0CAE, U0C82, U0CBD, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM + key { [ comma, U003C, U0CB1 ] }; // comma: comma, less than, RRA + key { [ period, U003E, U0CDE ] }; // period: period, greater than, LLLA + key { [ slash, question ] }; + + include "level3(ralt_switch)" +}; +// ---- END Kannada KaGaPa ---- + + +// ---- BEGIN Telugu KaGaPa phonetic ---- +// Name: Telugu KaGaPa phonetic +// Diagram: (Original)[http://www.baraha.com/help/Keyboards/tel_brhkbd.htm] +// (This layout)[http://bdsatish.in/lang/tel-kagapa.png] +// +// Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout). +// See the description to "hin-kagapa" above. +// Certain punctuation characters from Devanagari block are +// retained for compatibility. +// +// Author: Satish BD +// +partial alphanumeric_keys +xkb_symbols "tel-kagapa" { + name[Group1] = "Telugu (KaGaPa phonetic)"; + key.type="FOUR_LEVEL"; + + // Roman digits + key { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark + key { [ 1, exclam, U0C67 ] }; + key { [ 2, at, U0C68, U20A8 ] }; // U20A8: generic rupee sign (Rs) + key { [ 3, numbersign, U0C69 ] }; + key { [ 4, dollar, U0C6A, U20B9 ] }; // U20B9: new Indian rupee sign + key { [ 5, percent, U0C6B ] }; + key { [ 6, asciicircum, U0C6C, U200C ] }; // ZWNJ + key { [ 7, ampersand, U0C6D, U200D ] }; // ZWJ + key { [ 8, asterisk, U0C6E, U0C01 ] }; // U0C01: Telugu arasunna + key { [ 9, parenleft, U0C6F ] }; + key { [ 0, parenright, U0C66 ] }; + key { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta + key { [ equal, plus ] }; + key { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda + + //Q Row + key { [ U0C1F, U0C20 ] }; // Q: retroflex Ta, Tha + key { [ U0C21, U0C22 ] }; // W: retroflex Da, Dha + key { [ U0C46, U0C47, U0C0E, U0C0F ] }; // E: matras, short E, long E + key { [ U0C30, U0C43, U0C0B, U0C31 ] }; // R: ra, vocalic R matra, vocalic R, RRA + key { [ U0C24, U0C25 ] }; // T: dental ta, tha + key { [ U0C2F, U0C48, U0C10 ] }; // Y: ya, ai matra, ai + key { [ U0C41, U0C42, U0C09, U0C0A ] }; // U: matras, u, uu + key { [ U0C3F, U0C40, U0C07, U0C08 ] }; // I: matras, i, ii + key { [ U0C4A, U0C4B, U0C12, U0C13 ] }; // O: matras, short o, long o + key { [ U0C2A, U0C2B ] }; // P: pa, pha + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + //A Row + key { [ U0C3E, U0C06, U0C05 ] }; // A: aa matra, aa, short a + key { [ U0C38, U0C36 ] }; // S: sa, sha + key { [ U0C26, U0C27 ] }; // D: dental da, dha + key { [ U0C4D, U0C44, U0C60 ] }; // F: virama, vocalic RR matra, vocalic RR + key { [ U0C17, U0C18 ] }; // G: ga, gha + key { [ U0C39, U0C03 ] }; // H: ha, visarga + key { [ U0C1C, U0C1D ] }; // J: ja, jha + key { [ U0C15, U0C16 ] }; // K: ka, kha + key { [ U0C32, U0C33, U0C62, U0C0C ] }; // L: la, lla, vocalic L matra, vocalic L + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta + // U201D: Right double quotation mark + //Z Row + key { [ U0C1E, U0C19 ] }; // Z: nya, nga + key { [ U0C37 ] }; // X: ssa + key { [ U0C1A, U0C1B ] }; // C: ca, cha + key { [ U0C35, U0C4C, U0C14 ] }; // V: va, matra au, au + key { [ U0C2C, U0C2D ] }; // B: ba, bha + key { [ U0C28, U0C23 ] }; // N: na, nna + key { [ U0C2E, U0C02, U0C3D, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM + key { [ comma, U003C, U0C58 ] }; // comma: comma, less than, TSA + key { [ period, U003E, U0C59 ] }; // period: period, greater than, DZA + key { [ slash, question ] }; + + include "level3(ralt_switch)" +}; + +// Description : Keymap for Manipuri language (Meetei mayek script) +// Encoding : Unicode (http://www.unicode.org) +// Author : Santosh Heigrujam +// Date : December, 2013 +// Source : +// Comment : + +partial alphanumeric_keys modifier_keys +xkb_symbols "eeyek" { + + name[Group1]= "Manipuri (Eeyek)"; + + key { [ grave, asciitilde ] }; + key { [ Uabf1, exclam ] }; + key { [ Uabf2, at ] }; + key { [ Uabf3, numbersign ] }; + key { [ Uabf4, dollar ] }; + key { [ Uabf5, percent ] }; + key { [ Uabf6, asciicircum ] }; + key { [ Uabf7, ampersand ] }; + key { [ Uabf8, asterisk ] }; + key { [ Uabf9, parenleft ] }; + key { [ Uabf0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ Uabc8, Uabd8 ] }; + key { [ Uabcb, Uabcb ] }; + key { [ Uabcf, Uabe2 ] }; + key { [ Uabd4, Uabd4 ] }; + key { [ Uabc7, Uabe0 ] }; + key { [ Uabcc, Uabe6 ] }; + key { [ Uabce, Uabe8 ] }; + key { [ Uabe4, Uabe9 ] }; + key { [ Uabe3, Uabe7 ] }; + key { [ Uabc4, Uabde ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + key { [ Uabd1, Uabe5 ] }; + key { [ Uabc1, Uabd3 ] }; + key { [ Uabd7, Uabd9 ] }; + key { [ Uabd0, Uabda ] }; + key { [ Uabd2, Uabd8 ] }; + key { [ Uabcd, Uabea ] }; + key { [ Uabd6, Uabd3 ] }; + key { [ Uabc0, Uabdb ] }; + key { [ Uabc2, Uabdc ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ Uabc9, Uabe1 ] }; + key { [ Uabca, Uabd9 ] }; + key { [ Uabc6, Uabeb ] }; + key { [ Uabda, Uabed ] }; + key { [ Uabd5, Uabec ] }; + key { [ Uabc5, Uabdf ] }; + key { [ Uabc3, Uabdd ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + + key { [ backslash, bar ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/inet b/squashfs-root/usr/share/X11/xkb/symbols/inet new file mode 100644 index 0000000..5403e77 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/inet @@ -0,0 +1,1909 @@ +// EAK (Easy Access keyboards: Internet, Multimedia, PDA) +// Copyright (C) 2002 Stanislav Brabec +// +// Based on the LinEAK project. +// LinEAK - Linux support for Easy Access and Internets +// Copyright (C) 2001, 2002 Mark Smulders + +// Usage in XF86Config: +// Option "XkbLayout" "my_kb_layout" +// Option "XkbVariant" "my_kb_variant" +// Option "XkbModel" "my_eak_type" +// Option "XkbRules" "xfree86" +// Simple command line usage: +// setxkbmap 'my_kb_layout' -variant 'my_kb_variant' -model 'my_eak_type' + +// Very common set of media keys. +hidden partial alphanumeric_keys +xkb_symbols "media_common" { + key { [ XF86AudioMedia ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioStop, XF86Eject ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Eject ] }; + key { [ XF86Eject ] }; +}; + +// Popular web navigation keys. +hidden partial alphanumeric_keys +xkb_symbols "nav_common" { + key { [ XF86Calculator ] }; + key { [ XF86WWW ] }; + key { [ XF86Search ] }; + key { [ XF86Favorites ] }; + key { [ XF86Reload ] }; + key { [ XF86Stop ] }; + key { [ XF86Forward ] }; + key { [ XF86Back ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioMedia ] }; +}; + +// ACPI Standard +hidden partial alphanumeric_keys +xkb_symbols "acpi_common" { + key { [ XF86PowerOff ] }; + key { [ XF86Standby ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Battery ] }; + key { [ XF86WLAN ] }; + key { [ XF86Sleep ] }; +}; + +// Combined sections, for simplicity. +hidden partial alphanumeric_keys +xkb_symbols "media_nav_common" { + include "inet(media_common)" + include "inet(nav_common)" +}; + +hidden partial alphanumeric_keys +xkb_symbols "media_nav_acpi_common" { + include "inet(media_common)" + include "inet(nav_common)" + include "inet(acpi_common)" +}; + +hidden partial alphanumeric_keys +xkb_symbols "nav_acpi_common" { + include "inet(nav_common)" + include "inet(acpi_common)" +}; + +hidden partial alphanumeric_keys +xkb_symbols "media_acpi_common" { + include "inet(media_common)" + include "inet(acpi_common)" +}; + +// Evdev Standardized Keycodes +partial alphanumeric_keys +xkb_symbols "evdev" { + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86PowerOff ] }; + key { [ Cancel ] }; + key { [ Redo ] }; + key { [ SunProps ] }; + key { [ Undo ] }; + key { [ SunFront ] }; + key { [ XF86Copy ] }; + key { [ XF86Open ] }; + key { [ XF86Paste ] }; + key { [ Find ] }; + key { [ XF86Cut ] }; + key { [ Help ] }; + key { [ Linefeed ] }; + +// Commented out because HZTG has same keycode as TLDE +// key { [ Zenkaku_Hankaku ] }; + + key { [ Hiragana_Katakana ] }; + key { [ Henkan ] }; + key { [ Muhenkan ] }; + key { [ Katakana ] }; + key { [ Hiragana ] }; + key { [ Romaji ] }; + + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; + key { [ XF86TouchpadToggle ] }; + key { [ XF86TouchpadOn ] }; + key { [ XF86TouchpadOff ] }; + + key { [ XF86AudioMicMute ] }; + +// key { [ ] }; // KEY_MACRO + key { [ plusminus ] }; + key { [ XF86LaunchA ] }; + key { [ XF86MenuKB ] }; + key { [ XF86Calculator ] }; +// key { [ ] }; // KEY_SETUP + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Explorer ] }; + key { [ XF86Send ] }; +// key { [ ] }; // KEY_DELETEFILE + key { [ XF86Xfer ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86WWW ] }; + key { [ XF86DOS ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86RotateWindows ] }; + key { [ XF86TaskPane ] }; + key { [ XF86Mail ] }; + key { [ XF86Favorites ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Back ] }; + key { [ XF86Forward ] }; +// key { [ ] }; // KEY_CLOSECD (opposite of eject) + key { [ XF86Eject ] }; + key { [ XF86Eject, XF86Eject ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop, XF86Eject ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Phone ] }; +// key { [ ] }; // KEY_ISO + key { [ XF86Tools ] }; + key { [ XF86HomePage ] }; + key { [ XF86Reload ] }; + key { [ XF86Close ] }; +// key { [ ] }; // KEY_MOVE +// key { [ ] }; // KEY_EDIT + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ parenleft ] }; + key { [ parenright ] }; + key { [ XF86New ] }; + key { [ Redo ] }; + key { [ XF86LaunchA ] }; + key { [ XF86LaunchC ] }; + key { [ XF86LaunchD ] }; + key { [ XF86LaunchE ] }; + key { [ XF86LaunchF ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioPause ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86LaunchB ] }; + key { [ XF86Suspend ] }; + key { [ XF86Close ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioForward ] }; +// key { [ ] }; // KEY_BASSBOOST + key { [ Print ] }; +// key { [ ] }; // KEY_HP + key { [ XF86WebCam ] }; +// key { [ ] }; // KEY_SOUND +// key { [ ] }; // KEY_QUESTION + key { [ XF86Mail ] }; + key { [ XF86Messenger ] }; // KEY_CHAT + key { [ XF86Search ] }; + key { [ XF86Go ] }; // KEY_CONNECT + key { [ XF86Finance ] }; + key { [ XF86Game ] }; // KEY_SPORT + key { [ XF86Shop ] }; +// key { [ ] }; // KEY_ALTERASE + key { [ Cancel ] }; + key { [ XF86MonBrightnessDown ] }; + key { [ XF86MonBrightnessUp ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86Display ] }; + key { [ XF86KbdLightOnOff ] }; // KEY_KBDILLUMTOGGLE + key { [ XF86KbdBrightnessDown ] }; // KEY_KBDILLUMDOWN + key { [ XF86KbdBrightnessUp ] }; // KEY_KBDILLUMUP + key { [ XF86Send ] }; + key { [ XF86Reply ] }; + key { [ XF86MailForward ] }; + key { [ XF86Save ] }; + key { [ XF86Documents ] }; + key { [ XF86Battery ] }; + key { [ XF86Bluetooth ] }; + key { [ XF86WLAN ] }; +// key { [ ] }; // KEY_VIDEO_NEXT -- drive next video source +// key { [ ] }; // KEY_VIDEO_PREV -- drive previous video source +// key { [ ] }; // KEY_BRIGHTNESS_CYCLE -- bright up, max++ == min +// key { [ ] }; // KEY_BRIGHTNESS_ZERO -- brightness off +// key { [ ] }; // KEY_DISPLAY_OFF -- turn off display +// key { [ ] }; // KEY_WIMAX + key { [ XF86Hibernate ] }; // KEY_HIBERNATE + + key { [ XF86Tools ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Launch6 ] }; + key { [ XF86Launch7 ] }; + key { [ XF86Launch8 ] }; + key { [ XF86Launch9 ] }; +}; + + +// Acer + +// Acer AirKey V +partial alphanumeric_keys +xkb_symbols "airkey" { + include "inet(acpi_common)" + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioMute ] }; + key { [ XF86WWW ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Terminal ] }; + key { [ XF86AudioStop, XF86Eject ] }; +}; + +// Acer C300 laptop +partial alphanumeric_keys +xkb_symbols "acer_c300" { + include "inet(nav_common)" + key { [ F14 ] }; + key { [ F13 ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Launch2 ] }; + key { [ Help ] }; + key { [ XF86Launch1 ] }; +}; + +// Acer Ferrari 4000 Keyboard +// From Alex Dubov +partial alphanumeric_keys +xkb_symbols "acer_ferrari4k" { + include "inet(media_nav_common)" + key { [ dollar ] }; + key { [ EuroSign ] }; + key { [ XF86Display ] }; + // Missing keycodes - set-up with setkeycodes + key { [ Help ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; +}; + +// Acer laptop (Generic layout for Acer laptops from 2004 onwards) +// From Carlos Corbacho +// Keys marked (HAL) require HAL 0.5.10 (or newer) to be set up correctly +// (Your laptop must also be added to hal-info) +// (Not all these keys will be available on every Acer laptop) +partial alphanumeric_keys +xkb_symbols "acer_laptop" { + include "inet(media_nav_acpi_common)" + key { [ XF86Launch2 ] }; // "P" or "P2" (HAL) + key { [ XF86Launch1 ] }; // "e" or "P1" (HAL) + + // Hotkeys (Function) + // Launch Keys + // Device keys + key { [ XF86Display ] }; // Fn+F5 (HAL) + key { [ XF86Launch4 ] }; // Fn+F3 (HAL) + key { [ XF86LaunchB ] }; // Bluetooth (HAL) + key { [ XF86LaunchA ] }; // Wireless (HAL) + key { [ Help ] }; // Fn+F1 (HAL) + key { [ XF86Launch5 ] }; // Fn+F7 (HAL) + key { [ XF86Launch3 ] }; // Fn+F2 (HAL) + + // Special Characters + // To avoid setting a precedent/standard that will be broken in later + // versions of HAL, these keys are commented out for now. When they are no + // longer marked 'FIXME' and have saner keycodes, these two entries can be + // fixed and permanently uncommented. In the meantime, just uncomment these + // to make the keys work. +// key { [ EuroSign ] }; // Euro (HAL) +// key { [ dollar ] }; // Dollar (HAL) +}; + + +// Azona + +// Azona RF2300 wireless Internet +partial alphanumeric_keys +xkb_symbols "azonaRF2300" { + // From Radics Laszlo + include "inet(nav_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Copy ] }; + key { [ XF86Cut ] }; +// key { [ XF86Paste ] }; +}; + + +// Brother + +// Brother Internet +partial alphanumeric_keys +xkb_symbols "brother" { + include "inet(acpi_common)" + key { [ XF86ScrollUp ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86ScrollDown ] }; + key { [ XF86ZoomOut ] }; + key { [ XF86AudioMute ] }; + key { [ XF86WWW ] }; + key { [ Menu ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Calculator ] }; + key { [ XF86Xfer ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86ZoomIn ] }; + key { [ XF86AudioLowerVolume ] }; +}; + + +// BTC + +// BTC 5113RF Multimedia +partial alphanumeric_keys +xkb_symbols "btc5113rf" { + include "inet(acpi_common)" + key { [ XF86AudioStop ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Favorites ] }; + key { [ XF86Eject ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86Back ] }; + key { [ XF86WWW ] }; + key { [ XF86Search ] }; +}; + +// BTC 9000 +partial alphanumeric_keys +xkb_symbols "btc9000" { + include "inet(acpi_common)" + key { [ XF86AudioStop ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Favorites ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86Reload ] }; + key { [ XF86Mail ] }; + key { [ XF86HomePage ] }; + key { [ XF86Search ] }; +}; + +// BTC 9000A +partial alphanumeric_keys +xkb_symbols "btc9000a" { + include "inet(acpi_common)" + key { [ XF86AudioStop ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Favorites ] }; + key { [ XF86Eject ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86HomePage ] }; + key { [ Help ] }; + key { [ XF86WWW ] }; + key { [ XF86Search ] }; +}; + +// BTC 9001AH +xkb_symbols "btc9001ah" { + include "inet(acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Mail ] }; + key { [ XF86Eject ] }; +}; + +// BTC 5090 +partial alphanumeric_keys +xkb_symbols "btc5090" { + include "inet(media_nav_acpi_common)" + key { [ XF86Start ] }; + key { [ XF86Eject ] }; +}; + +// BTC 9019U +partial alphanumeric_keys +xkb_symbols "btc9019u" { + include "inet(media_nav_acpi_common)" + key { [ XF86Search ] }; + key { [ XF86HomePage ] }; +}; + + +// Cherry + +// Cherry Blue Line CyBo@rd +partial alphanumeric_keys +xkb_symbols "cherryblue" { + include "inet(nav_common)" + key { [ XF86Reload ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Standby ] }; + key { [ XF86Terminal ] }; + key { [ XF86Go ] }; +}; + +// Cherry CyMotion Master XPress +partial alphanumeric_keys +xkb_symbols "cherryblueb" { + include "inet(media_nav_common)" + key { [ XF86Reload ] }; + key { [ XF86HomePage ] }; + key { [ XF86Forward ] }; + key { [ XF86Back ] }; + key { [ XF86Copy ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ XF86Cut ] }; + key { [ XF86Paste ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Book ] }; + key { [ XF86Finance ] }; + key { [ XF86Standby ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Eject ] }; + key { [ XF86Book ] }; + key { [ XF86Book ] }; + key { [ XF86Terminal ] }; + key { [ XF86Go ] }; +}; + +// Cherry Blue Line CyBo@rd (alt.) +partial alphanumeric_keys +xkb_symbols "cherrybluea" { + include "inet(media_nav_acpi_common)" + key { [ XF86Go ] }; +}; + +// Cherry CyBo@rd USB-Hub +partial alphanumeric_keys +xkb_symbols "cherrycyboard" { + include "inet(media_nav_acpi_common)" + key { [ XF86Search ] }; + key { [ XF86HomePage ] }; + key { [ XF86Terminal ] }; + key { [ XF86AudioMedia ] }; +}; + +// Cherry CyMotion Expert +partial alphanumeric_keys +xkb_symbols "cherrycmexpert" { + include "inet(cherryblueb)" + include "inet(acpi_common)" + key { [ XF86Mail ] }; +}; + + +// Chicony + +// Chicony Internet +partial alphanumeric_keys +xkb_symbols "chicony" { + include "inet(acpi_common)" + key { [ XF86AudioMute ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86Forward ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Back ] }; + key { [ XF86LaunchB ] }; + key { [ XF86LaunchC ] }; + key { [ XF86LaunchA ] }; + key { [ XF86WWW ] }; + key { [ XF86ContrastAdjust ] }; + key { [ XF86BrightnessAdjust ] }; +}; + +// Chicony KU-0108 +partial alphanumeric_keys +xkb_symbols "chicony0108" { + include "inet(cherrycyboard)" +}; + +// Chicony KU-0420 AKA Targus Slim Internet Media USB Keyboard +partial alphanumeric_keys +xkb_symbols "chicony0420" { + include "inet(media_nav_acpi_common)" + key { [ XF86AudioMedia ] }; + key { [ XF86MyComputer ] }; +}; + +// Chicony KB-9885 +partial alphanumeric_keys +xkb_symbols "chicony9885" { + include "inet(acpi_common)" + key { [ XF86AudioMute ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86Forward ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Back ] }; + key { [ XF86LaunchB ] }; + key { [ XF86LaunchC ] }; + key { [ XF86LaunchA ] }; + key { [ XF86WWW ] }; +}; + + +// Compaq + +// Compaq Easy Access +partial alphanumeric_keys +xkb_symbols "compaqeak8" { + key { [ XF86Community ] }; + key { [ XF86Market ] }; + key { [ XF86Meeting ] }; + key { [ XF86Search ] }; + key { [ XF86News ] }; + key { [ XF86Mail ] }; + key { [ XF86HomePage ] }; + key { [ XF86WWW ] }; +}; + +// Compaq Internet (7 keys) +partial alphanumeric_keys +xkb_symbols "compaqik7" { + key { [ XF86LightBulb ] }; + key { [ XF86Mail ] }; + key { [ XF86Search ] }; + key { [ Help ] }; + key { [ XF86VendorHome ] }; + key { [ XF86HomePage ] }; + key { [ XF86Shop ] }; +}; + +// Compaq Internet (13 keys) +partial alphanumeric_keys +xkb_symbols "compaqik13" { + include "inet(media_acpi_common)" + key { [ XF86Mail ] }; + key { [ XF86Go ] }; + key { [ XF86Search ] }; + key { [ XF86WWW ] }; + key { [ XF86Shop ] }; +}; + +// Compaq Internet (18 keys) +partial alphanumeric_keys +xkb_symbols "compaqik18" { + include "inet(media_acpi_common)" + key { [ XF86LightBulb ] }; + key { [ XF86Eject ] }; + key { [ XF86Mail ] }; + key { [ XF86Go ] }; + key { [ XF86Search ] }; + key { [ XF86WWW ] }; + key { [ XF86VendorHome ] }; + key { [ XF86Community ] }; + key { [ XF86Shop ] }; + key { [ Print ] }; +}; + +// laptop/notebook Compaq (eg. Armada, Evo) laptop Keyboard +partial alphanumeric_keys +xkb_symbols "armada" { + include "inet(media_acpi_common)" + key { [ XF86Search ] }; + key { [ XF86Mail ] }; + key { [ XF86HomePage ] }; + key { [ XF86WWW ] }; + key { [ XF86Launch2 ] }; // Battery Monitor + key { [ XF86AudioMedia ] }; + key { [ XF86Launch0 ] }; // Info Center +}; + +// Compaq Presario laptop +partial alphanumeric_keys +xkb_symbols "presario" { + include "inet(media_acpi_common)" + key { [ XF86Q ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Mail ] }; + key { [ XF86Launch1 ] }; + key { [ XF86WWW ] }; + key { [ XF86Shop ] }; + key { [ XF86AudioMedia ] }; +}; + +// Compaq iPaq +partial alphanumeric_keys +xkb_symbols "ipaq" { + key { [ XF86Shop ] }; + key { [ XF86Standby ] }; + key { [ XF86Search ] }; + key { [ XF86Travel ] }; + key { [ XF86BackForward ] }; + key { [ XF86Q ] }; + key { [ XF86Mail ] }; +}; + + +// Dell + +partial alphanumeric_keys +xkb_symbols "dell" { + include "inet(acpi_common)" + key { [ XF86Mail ] }; + key { [ XF86Search ] }; + key { [ XF86HomePage ] }; +}; + +// Dell Precision M65 laptop +partial alphanumeric_keys +xkb_symbols "dellm65" { + include "inet(media_common)" + key { [ XF86PowerOff ] }; + key { [ Super_L ] }; +}; + +// laptop/notebook Dell Inspiron 8xxx +partial alphanumeric_keys +xkb_symbols "inspiron" { + include "inet(media_common)" + key { [ XF86AudioStop ] }; + key { [ XF86AudioNext ] }; + key { [ XF86Eject ] }; + key { [ XF86Display ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; +}; + +// DELL USB Multimedia (former 8135, generalized, superset of 8125) +partial alphanumeric_keys +xkb_symbols "dellusbmm" { + // Describes the extra keys on a SK-8135 Multimedia keyboard + // From Olivier Lahaye + include "inet(media_nav_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86MyComputer ] }; + key { [ XF86AudioMedia ] }; +}; + + +// Diamond + +// Diamond 9801/9802 +partial alphanumeric_keys +xkb_symbols "diamond" { + include "inet(media_nav_acpi_common)" + key { [ XF86Go ] }; +}; + + +// Ennyah + +// Ennyah DKB-1008 +partial alphanumeric_keys +xkb_symbols "ennyah_dkb1008" { + include "inet(media_nav_acpi_common)" + key { [ XF86AudioMedia ] }; +}; + + +// Genius + +// Genius Comfy KB-16M/Multimedia KWD-910 +partial alphanumeric_keys +xkb_symbols "genius" { + include "inet(media_acpi_common)" + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Calculator ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86Forward ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86Back ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86Mail ] }; + key { [ XF86Eject ] }; + key { [ XF86WWW ] }; +}; + +// Genius Comfy 21e +partial alphanumeric_keys +xkb_symbols "geniuscomfy2" { + // Describes the extra keys on a Genius Comfy KB-21e-Scroll + // From Radics Laszlo + include "inet(media_nav_acpi_common)" + key { [ Return ] }; +}; + + +// Gyration + +partial alphanumeric_keys +xkb_symbols "gyration" { + include "inet(nav_common)" + key { [ XF86Reload ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; +}; + + +// Hewlett-Packard + +// Hewlett-Packard Internet +partial alphanumeric_keys +xkb_symbols "hpi6" { + include "inet(media_nav_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86Search ] }; + key { [ XF86VendorHome ] }; + key { [ XF86Community ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86Eject ] }; + key { [ XF86Shop ] }; + key { [ XF86Launch1 ] }; + key { [ Help ] }; + key { [ XF86Finance ] }; + key { [ Print ] }; + key { [ Help ] }; +}; + +// Hewlett-Packard SK-2501, SK-2505 Multimedia +partial alphanumeric_keys +xkb_symbols "hp250x" { + key { [ XF86Tools ] }; + key { [ XF86Search ] }; + key { [ XF86Eject ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86Standby ] }; + key { [ Help ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86WWW ] }; +}; + +// Hewlett-Packard Omnibook XE3 GC, GD, GE and Pavilion N5xxx +partial alphanumeric_keys +xkb_symbols "hpxe3gc" { + // Describes the OneTouch buttons on HP Omnibook XE3 GC and + // HP Pavilion N52XX models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_common)" + key { [ Help ] }; + key { [ XF86Launch1 ] }; + key { [ XF86WWW ] }; + key { [ XF86Mail ] }; +}; + +// Hewlett-Packard Omnibook XE3 GF +partial alphanumeric_keys +xkb_symbols "hpxe3gf" { + // Describes the OneTouch buttons on HP Omnibook XE3 GF models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_nav_common)" + key { [ Help ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Omnibook XT1000 +partial alphanumeric_keys +xkb_symbols "hpxt1000" { + // Describes the OneTouch buttons on HP Omnibook XT1000 models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_nav_common)" + key { [ XF86Launch3 ] }; + key { [ Help ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Pavilion ZT1100 +partial alphanumeric_keys +xkb_symbols "hpzt11xx" { + // Describes the OneTouch buttons on HP Pavilion ZT11xx models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_nav_common)" + key { [ XF86Launch3 ] }; + key { [ Help ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Pavilion dv5 +partial alphanumeric_keys +xkb_symbols "hpdv5" { + // Describes the OneTouch buttons on HP Pavilion dv5 models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_common)" + key { [ XF86ScreenSaver ] }; + key { [ XF86WWW ] }; + key { [ Help ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Omnibook XE4xxx and ZE4xxx +partial alphanumeric_keys +xkb_symbols "hpxe4xxx" { + // Describes the OneTouch buttons on HP Omnibook XE4xxx and ZE4xxx + // models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_nav_common)" + key { [ Help ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Omnibook 500 FA +partial alphanumeric_keys +xkb_symbols "hp500fa" { + // Describes the OneTouch buttons on HP Omnibook 500 FA models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + key { [ Help ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Omnibook 500 +partial alphanumeric_keys +xkb_symbols "hp5xx" { + // Describes the OneTouch buttons on HP Omnibook 5xx models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_common)" + key { [ Help ] }; + key { [ XF86Launch1 ] }; +}; + + +// Honeywell + +// Honeywell Euroboard +partial alphanumeric_keys +xkb_symbols "honeywell_euroboard" { + // January 2002 + // Scott Penrose + // http://linux.dd.com.au/quest/linux/keyboard/honeywell/ + key { [ XF86Game ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86Eject ] }; + key { [ XF86Launch2 ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86Launch1 ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Mail ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86Calculator ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86WWW ] }; +}; + + +// IBM + +// IBM Rapid Access +partial alphanumeric_keys +xkb_symbols "rapidaccess" { + key { [ XF86AudioMute ] }; + key { [ XF86Launch2 ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPause ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Standby ] }; + key { [ Help ] }; + key { [ XF86Launch4 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch1 ] }; +}; + +// IBM Rapid Access II +partial alphanumeric_keys +xkb_symbols "rapidaccess2" { + include "inet(acpi_common)" + key { [ XF86AudioNext ] }; + key { [ XF86Favorites ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86HomePage ] }; + key { [ XF86Shop ] }; + key { [ XF86Search ] }; + key { [ XF86MyComputer ] }; + key { [ XF86VendorHome ] }; +}; + +// IBM ThinkPad 60 series +partial alphanumeric_keys +xkb_symbols "thinkpad60" { + include "inet(media_nav_common)" + key { [ XF86VendorHome ] }; +}; + +// IBM Space Saver +partial alphanumeric_keys +xkb_symbols "ibm_spacesaver" { + key { + type="ONE_LEVEL", + symbols[Group1]= [ Num_Lock ] + }; +}; + + +// Logitech + +// Logitech common definitions +hidden partial alphanumeric_keys +xkb_symbols "logitech_base" { + include "inet(media_nav_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86Community ] }; + key { [ XF86ScrollClick ] }; + key { [ XF86VendorHome ] }; + key { [ XF86New ] }; + key { [ XF86Reply ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Documents ] }; + key { [ XF86Pictures ] }; + key { [ XF86Music ] }; +}; + +// Logitech second set of common keys +hidden partial alphanumeric_keys +xkb_symbols "logitech_set3" { + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86New ] }; // F1 + key { [ XF86Reply ] }; // F2 + key { [ XF86Send ] }; // F4 + key { [ Print ] }; // F7 + key { [ XF86Save ] }; // F8 + key { [ XF86Documents ] }; // F10 + key { [ XF86Go ] }; + key { [ XF86AudioMedia ] }; +}; + +// Logitech Access +partial alphanumeric_keys +xkb_symbols "logiaccess" { + include "inet(logitech_base)" + key { [ XF86MailForward ] }; + key { [ XF86Send ] }; + key { [ XF86Messenger ] }; + key { [ XF86WebCam ] }; +}; + +// Logitech Cordless Desktop (alt.) +partial alphanumeric_keys +xkb_symbols "logicda" { + include "inet(logitech_base)" + include "inet(logitech_set3)" +}; + +// Logitech Internet Navigator +partial alphanumeric_keys +xkb_symbols "logicink" { + include "inet(logitech_base)" + key { [ XF86Shop ] }; + key { [ XF86VendorHome ] }; + key { [ XF86Finance ] }; + key { [ XF86Start ] }; +}; + +// Logitech Cordless Desktop EX110 +partial alphanumeric_keys +xkb_symbols "logiex110" { + include "inet(logitech_base)" + key { [ XF86Close ] }; // Close +// Extended function keys +// In the Console before starting X +// Using setkeycodes e03b 212 e03c 213 e03d 214 e03e 215 e03f 216 e040 217 +// setkeycodes e041 218 e042 219 e043 220 e044 221 e057 222 e058 223 6d 206 +// *=keys that are there but need different symbol names. + key { [ Help ] }; // F1 + key { [ XF86Word ] }; // F2 + key { [ XF86Excel ] }; // F3 + key { [ XF86Pictures ] }; // F4 + key { [ Undo ] }; // F5 + key { [ Redo ] }; // F6 * + key { [ Print ] }; // F7 + key { [ XF86Save ] }; // F8 + key { [ XF86Launch1 ] }; // F9 * + key { [ XF86Launch2 ] }; // F10 + key { [ XF86Launch3 ] }; // F11 + key { [ XF86Launch4 ] }; // F12 +}; + +// Logitech iTouch Internet Navigator SE +partial alphanumeric_keys +xkb_symbols "logiinkse" { + include "inet(logitech_base)" + key { [ XF86MailForward ] }; // F3 + key { [ XF86Send ] }; // F4 + key { [ Undo ] }; // F5 + key { [ Redo ] }; // F6 + key { [ Print ] }; // F7 + key { [ XF86Messenger ] }; + key { [ XF86WebCam ] }; + key { [ XF86VendorHome ] }; + key { [ XF86Shop ] }; + key { [ XF86Save ] }; // F8 +}; + +// Logitech iTouch Internet Navigator SE USB +partial alphanumeric_keys +xkb_symbols "logiinkseusb" { + include "inet(logitech_base)" + include "inet(logitech_set3)" +}; + +// Logitech iTouch Cordless Y-RB6 +partial alphanumeric_keys +xkb_symbols "logiitc" { + include "inet(logitech_base)" + key { [ XF86AudioRaiseVolume ] }; + + // Just to override RaiseVolume from logitech_base, + // since no keysym can have two keycodes, see + // https://bugs.freedesktop.org/show_bug.cgi?id=7095 + key { [ XF86Launch1 ] }; +}; + +// Logitech Internet +partial alphanumeric_keys +xkb_symbols "logiik" { + include "inet(logitech_base)" + key { [ Find ] }; + key { [ Print ] }; + key { [ XF86Favorites ] }; + key { [ XF86Reload ] }; + key { [ XF86Search ] }; + key { [ XF86HotLinks ] }; + key { [ XF86Forward ] }; + key { [ XF86HomePage ] }; + key { [ XF86Stop ] }; + key { [ XF86OpenURL ] }; + key { [ XF86AddFavorite ] }; + key { [ XF86History ] }; + key { [ XF86WWW ] }; +}; + +// Logitech iTouch +partial alphanumeric_keys +xkb_symbols "itouch" { + include "inet(logitech_base)" + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; +}; + +// Logitech UltraX Cordless Media Desktop +partial alphanumeric_keys +xkb_symbols "logiultraxc" { + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioRaiseVolume ] }; +}; + +partial alphanumeric_keys +xkb_symbols "logidinovo" { + include "inet(media_nav_common)" + key { [ XF86HomePage ] }; + key { [ XF86Standby ] }; + key { [ XF86Search ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioMedia ] }; +}; + +partial alphanumeric_keys +xkb_symbols "logidinovoedge" { + include "inet(media_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86Mail ] }; + key { [ XF86Search ] }; + key { [ XF86AudioMedia ] }; +}; + +partial alphanumeric_keys +xkb_symbols "logitech_g15" { + include "inet(media_nav_acpi_common)" + key { [ XF86Messenger ] }; + key { [ XF86Launch7 ] }; + key { [ XF86Launch9 ] }; + key { [ XF86Phone ] }; + key { [ XF86LaunchD ] }; + key { [ XF86Support ] }; + key { [ XF86LaunchF ] }; + key { [ XF86LogOff ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Travel ] }; + key { [ XF86Spell ] }; + key { [ XF86Launch4 ] }; + key { [ XF86Music ] }; + key { [ XF86Forward ] }; + key { [ XF86Send ] }; + key { [ XF86Save ] }; + key { [ XF86Pictures ] }; + key { [ XF86LaunchA ] }; + key { [ XF86iTouch ] }; + key { [ XF86Launch3 ] }; + key { [ XF86ToDoList ] }; + key { [ XF86Calculator ] }; + key { [ XF86VendorHome ] }; + key { [ XF86Away ] }; + key { [ XF86WebCam ] }; + key { [ XF86Launch0 ] }; + key { [ XF86Launch6 ] }; + key { [ XF86Calendar ] }; + key { [ XF86LaunchB ] }; + key { [ XF86LaunchC ] }; + key { [ XF86WWW ] }; + key { [ XF86LaunchE ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch8 ] }; +}; + + +// Memorex + +// Memorex MX1998 +partial alphanumeric_keys +xkb_symbols "mx1998" { + include "inet(media_acpi_common)" + key { [ XF86ScrollDown ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Close ] }; + key { [ XF86Xfer ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86Documents ] }; + key { [ XF86Game ] }; + key { [ XF86Calculator ] }; + key { [ Menu ] }; + key { [ XF86WWW ] }; + key { [ XF86WakeUp ] }; + key { [ XF86DOS ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86ScrollUp ] }; +}; + +// Memorex MX2500 EZ-Access +partial alphanumeric_keys +xkb_symbols "mx2500" { + include "inet(media_nav_acpi_common)" + key { [ XF86Clear ] }; + key { [ XF86Phone ] }; + key { [ XF86DOS ] }; + key { [ XF86Close ] }; + key { [ XF86Xfer ] }; + key { [ XF86Eject ] }; + key { [ XF86Documents ] }; + key { [ XF86News ] }; + key { [ XF86WakeUp ] }; + key { [ XF86RotateWindows ] }; +}; + +// Memorex MX2750 +partial alphanumeric_keys +xkb_symbols "mx2750" { + include "inet(media_nav_acpi_common)" + key { [ XF86Launch0 ] }; +}; + + +// Microsoft + +// Microsoft Natural Ergonomic 4000 +partial alphanumeric_keys +xkb_symbols "microsoft4000" { + include "inet(media_nav_common)" + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86Launch5 ] }; +// Missing because of lack of support from kbd driver: Zoom in and +// slider. +}; + +// Microsoft Natural Wireless Ergonomic 7000 +partial alphanumeric_keys +xkb_symbols "microsoft7000" { + include "inet(media_nav_common)" + key { [ Undo ] }; + key { [ XF86New ] }; + key { [ Redo ] }; + key { [ XF86MailForward ] }; + key { [ XF86Close ] }; + key { [ Print ] }; + key { [ XF86Save ] }; + key { [ XF86Send ] }; + key { [ Help ] }; + key { [ XF86Reply ] }; + key { [ parenleft ] }; + key { [ parenright ] }; + key { [ KP_Equal ] }; + key { [ XF86Open ] }; +// Missing because of lack of support from kbd driver: Spell, Launch, +// and Zoom in and out buttons. +}; + +// Microsoft Internet +partial alphanumeric_keys +xkb_symbols "microsoftinet" { + include "inet(nav_acpi_common)" + key { [ XF86AudioStop ] }; +}; + +// Microsoft Natural Pro USB +partial alphanumeric_keys +xkb_symbols "microsoftprousb" { + include "inet(nav_common)" + key { [ XF86Reload ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Standby ] }; +// Internet Section -- Left Side +// Multimedia Section -- Right Side +// My Computer Section -- Far Right +// My computer maps to printscreen, so leaving commented out for now +// key { [ XF86MyComputer ] }; +}; + +// Microsoft Natural Pro OEM +partial alphanumeric_keys +xkb_symbols "microsoftprooem" { + include "inet(media_nav_common)" + key { [ XF86Search ] }; + key { [ XF86HomePage ] }; + key { [ XF86Standby ] }; + key { [ XF86MyComputer ] }; +// Internet Section -- Left Side +// Multimedia Section -- Right Side +// My Computer Section -- Far Right +}; + +// Microsoft Internet Pro (Swedish) +partial alphanumeric_keys +xkb_symbols "microsoftprose" { + include "inet(nav_common)" + key { [ XF86Reload ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Standby ] }; + key { [ XF86AudioStop ] }; + key { [ XF86MyComputer ] }; + key { [ XF86AudioMedia ] }; +}; + +// Microsoft Office Keyboard +partial alphanumeric_keys +xkb_symbols "microsoftoffice" { + include "inet(nav_acpi_common)" + key { [ XF86Calendar ] }; + key { [ Undo ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Cut ] }; + key { [ XF86LogOff ] }; + key { [ XF86ApplicationLeft ] }; + key { [ XF86TaskPane ] }; + key { [ XF86Spell ] }; + key { [ XF86WWW ] }; + key { [ XF86New ] }; + key { [ XF86Open ] }; + key { [ XF86Close ] }; + key { [ Help ] }; + key { [ XF86Save ] }; + key { [ Print ] }; + key { [ XF86OfficeHome ] }; + key { [ Redo ] }; + key { [ XF86Reply ] }; + key { [ XF86MailForward ] }; + key { [ XF86Send ] }; + key { [ XF86Copy ] }; + key { [ XF86ApplicationRight ] }; + key { [ XF86Paste ] }; +}; + +// Microsoft Wireless Multimedia 1.0A +partial alphanumeric_keys +xkb_symbols "microsoftmult" { + include "inet(media_nav_acpi_common)" + key { [ XF86Messenger ] }; + key { [ XF86New ] }; + key { [ XF86Open ] }; + key { [ XF86Close ] }; + key { [ XF86Reply ] }; + key { [ Redo ] }; + key { [ Undo ] }; + key { [ XF86LogOff ] }; + key { [ XF86Spell ] }; + key { [ Help ] }; + key { [ XF86Music ] }; + key { [ XF86Forward ] }; + key { [ XF86Send ] }; + key { [ XF86Save ] }; + key { [ Print ] }; + key { [ XF86Pictures ] }; + key { [ XF86Documents ] }; +}; + + +// Oretec + +// Oretec MCK-800 MM/Internet keyboard +partial alphanumeric_keys +xkb_symbols "oretec" { + include "inet(acpi_common)" + key { [ XF86ScrollUp ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86ScrollDown ] }; + key { [ XF86ZoomOut ] }; + key { [ XF86AudioMute ] }; + key { [ XF86WWW ] }; + key { [ Menu ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Calculator ] }; + key { [ XF86Xfer ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86ZoomIn ] }; + key { [ XF86AudioLowerVolume ] }; +}; + + +// Propeller + +// Propeller Voyager KTEZ-1000 +partial alphanumeric_keys +xkb_symbols "propeller" { + include "inet(media_common)" + key { [ XF86AudioRewind ] }; + key { [ XF86Close ] }; + key { [ XF86Xfer ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86Documents ] }; + key { [ XF86Game ] }; + key { [ XF86Calculator ] }; + key { [ Menu ] }; + key { [ XF86WWW ] }; + key { [ XF86DOS ] }; + key { [ XF86Standby ] }; +}; + + +// QTronix + +// QTronix Scorpius 98N+ +partial alphanumeric_keys +xkb_symbols "qtronix" { + key { [ XF86ScrollDown ] }; + key { [ XF86Forward ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Search ] }; + key { [ XF86Standby ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86Back ] }; + key { [ XF86Reload ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioStop ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86PowerOff ] }; + key { [ XF86Stop ] }; + key { [ XF86Calculator ] }; +}; + + +// Samsung + +// Samsung SDM 4500P +partial alphanumeric_keys +xkb_symbols "samsung4500" { + include "inet(media_nav_acpi_common)" + key { [ XF86Launch4 ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Close ] }; + key { [ XF86Book ] }; + key { [ XF86Eject ] }; + key { [ Help ] }; + key { [ XF86Explorer ] }; + key { [ XF86Launch2 ] }; +}; + +// Samsung SDM 4510P +partial alphanumeric_keys +xkb_symbols "samsung4510" { + include "inet(media_acpi_common)" + key { [ XF86Launch1 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Eject ] }; + key { [ XF86Launch2 ] }; +}; + + +// SK + +// NEC SK-1300 +partial alphanumeric_keys +xkb_symbols "sk1300" { + include "inet(media_common)" + key { [ XF86Eject ] }; + key { [ XF86Forward ] }; + key { [ XF86WWW ] }; + key { [ XF86Standby ] }; + key { [ XF86Back ] }; + key { [ XF86Stop ] }; +}; + +// NEC SK-2500 +partial alphanumeric_keys +xkb_symbols "sk2500" { + include "inet(media_nav_common)" + key { [ XF86AudioRewind ] }; + key { [ XF86Close ] }; + key { [ XF86Eject ] }; + key { [ XF86Eject ] }; + key { [ XF86Forward ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86Xfer ] }; + key { [ XF86PowerOff ] }; + key { [ Menu ] }; + key { [ XF86ScreenSaver ] }; +}; + +// NEC SK-6200 +partial alphanumeric_keys +xkb_symbols "sk6200" { + include "inet(acpi_common)" + key { [ XF86Favorites ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Back ] }; + key { [ XF86Forward ] }; + key { [ XF86WWW ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Mail ] }; +}; + +// NEC SK-7100 +partial alphanumeric_keys +xkb_symbols "sk7100" { + include "inet(media_common)" + key { [ XF86AudioPause ] }; + key { [ XF86Close ] }; + key { [ XF86Video ] }; + key { [ XF86Eject ] }; + key { [ XF86CD ] }; + key { [ XF86Display ] }; + key { [ XF86WWW ] }; +}; + + +// Sven + +// SVEN Ergonomic 2500 +partial alphanumeric_keys +xkb_symbols "sven" { + include "inet(acpi_common)" + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86Forward ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86ZoomOut ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop ] }; + key { [ XF86HomePage ] }; + key { [ XF86Mail ] }; + key { [ XF86ZoomIn ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Stop ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Calculator ] }; + key { [ XF86Reload ] }; + key { [ XF86Search ] }; + key { [ XF86Favorites ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ XF86AudioNext ] }; + key { [ XF86Back ] }; +}; + +// SVEN Slim 303 +partial alphanumeric_keys +xkb_symbols "sven303" { + key { [ XF86PowerOff ] }; + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; +}; + + +// Symplon + +// Symplon PaceBook tablet +partial alphanumeric_keys +xkb_symbols "symplon" { + include "inet(nav_acpi_common)" + key { [ XF86RotationPB ] }; + key { [ XF86SplitScreen ] }; + key { [ XF86Support ] }; + key { [ XF86New ] }; + key { [ XF86User2KB ] }; + key { [ XF86RotationKB ] }; + key { [ XF86MenuKB ] }; + key { [ XF86User1KB ] }; + key { [ XF86UserPB ] }; + key { [ XF86MenuPB ] }; +}; + + +// Toshiba + +// Toshiba Satellite S3000 +partial alphanumeric_keys +xkb_symbols "toshiba_s3000" { + include "inet(media_common)" + // Describes the Special buttons on Toshiba Satellite 3000 models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86WWW ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioLowerVolume ] }; +}; + + +// Trust + +// Trust Wireless Classic +partial alphanumeric_keys +xkb_symbols "trust" { + include "inet(media_nav_acpi_common)" + key { [ XF86ScreenSaver ] }; + key { [ XF86Eject ] }; +}; + +// Trust Direct Access +partial alphanumeric_keys +xkb_symbols "trustda" { + include "inet(media_common)" + key { [ XF86AudioRewind ] }; + key { [ XF86Close ] }; + key { [ XF86Eject ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86Xfer ] }; + key { [ XF86Standby ] }; + key { [ Help ] }; + key { [ XF86WWW ] }; + key { [ XF86Away ] }; +}; + + +// YaHoo! + +// Yahoo! Internet +partial alphanumeric_keys +xkb_symbols "yahoo" { + include "inet(acpi_common)" + key { [ XF86AudioPrev ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Close ] }; + key { [ XF86Calculator ] }; + key { [ Help ] }; + key { [ XF86Mail ] }; + key { [ XF86WWW ] }; +}; + + +// Apple keyboards (macbooks, powerbooks, powermac G5, etc) +partial alphanumeric_keys +xkb_symbols "apple" { +// Really brightness up/down + key { [ XF86BrightnessAdjust ] }; + key { [ XF86BrightnessAdjust ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86RotateWindows ] }; +// Really keyboard backlight off/up/down + key { [ XF86Launch0 ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86PowerOff ] }; + key { [ F13 ] }; + key { [ F14 ] }; + key { [ F15 ] }; + key { [ XF86Eject ] }; + key { [ F16 ] }; + key { [ KP_Equal ] }; +}; + +partial alphanumeric_keys +xkb_symbols "cymotionlinux" { + include "inet(media_nav_acpi_common)" + key { [ Undo ] }; + key { [ Redo ] }; + key { [ XF86ScrollDown ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch1 ] }; + key { [ XF86MenuKB ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Cut ] }; + key { [ XF86Copy ] }; + key { [ XF86Paste ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86AudioMedia ] }; +}; + +partial alphanumeric_keys +xkb_symbols "silvercrest" { + include "inet(media_nav_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch1 ] }; +}; + + +// eMachines + +partial alphanumeric_keys +xkb_symbols "emachines" { + include "inet(media_nav_acpi_common)" + key { [ XF86iTouch ] }; + key { [ KP_0 ] }; + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + key { [ KP_Add ] }; + key { [ KP_Decimal ] }; + key { [ KP_Divide ] }; + key { [ KP_Multiply ] }; + key { [ KP_Subtract ] }; +}; + + +// BenQ + +// BenQ X* (X730, X500, X800) +// +// To make the FN_LOCK and CONFIG key work on the BenQ X500 , use: +// setkeycodes e074 130 # KEY_PROPS from /usr/include/linux/input.h +// setkeycodes e075 171 # KEY_CONFIG from /usr/include/linux/input.h +partial alphanumeric_keys +xkb_symbols "benqx" { + include "inet(media_nav_acpi_common)" + key { [ XF86ModeLock ] }; + key { [ XF86WWW ] }; + key { [ XF86Go ] }; + key { [ XF86Calendar ] }; +}; + + +// Intel + +// Intel Classmate +partial alphanumeric_keys +xkb_symbols "classmate" { + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; +}; + + +// Unitek + +partial alphanumeric_keys +xkb_symbols "unitekkb1925" { + include "inet(media_nav_common)" + key { [ XF86AudioMute ] }; + key { [ XF86PowerOff ] }; + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Search ] }; + key { [ XF86Reload ] }; +}; + + +// Creative + +// Creative Desktop Wireless 7000 +partial alphanumeric_keys +xkb_symbols "creativedw7000" { + include "inet(media_nav_acpi_common)" + key { [ XF86Pictures ] }; +}; + + +// Compal + +// Compal FL90 +partial alphanumeric_keys +xkb_symbols "compalfl90" { + include "inet(media_nav_acpi_common)" + key { [ XF86MonBrightnessUp ] }; + key { [ XF86MonBrightnessDown ] }; +}; + +partial alphanumeric_keys +xkb_symbols "pc105" { + include "inet(media_nav_acpi_common)" +}; + + +// HTC Dream +partial alphanumeric_keys +xkb_symbols "htcdream" { + key { [ BackSpace ] }; + key { [ Return ] }; + + key { [ 1, 1, exclam, exclam ] }; + key { [ 2, 2, at, at ] }; + key { [ 3, 3, numbersign, numbersign ] }; + key { [ 4, 4, dollar, dollar ] }; + key { [ 5, 5, percent, percent ] }; + key { [ 6, 6, dead_circumflex, dead_circumflex ] }; + key { [ 7, 7, ampersand, ampersand ] }; + key { [ 8, 8, asterisk, asterisk ] }; + key { [ 9, 9, parenleft, parenleft ] }; + key { [ 0, 0, parenright, parenright ] }; + + key { [ Shift_L ] }; + key { [ space ] }; + key { [ period, period, slash, slash ] }; + key { [ Shift_R ] }; + + modifier_map Shift { , }; +}; + +partial alphanumeric_keys +xkb_symbols "chromebook" { + include "level3(ralt_switch)" + key { [ XF86Back ] }; + key { [ XF86Forward ] }; + key { [ XF86Reload ] }; + key { [ F11 ] }; +// key { [ F5, F5, F5, F5 ] }; // Overview key + key { [ XF86MonBrightnessDown ] }; + key { [ XF86MonBrightnessUp ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ BackSpace, BackSpace, Delete ] }; + key { [ Up, Up, Prior, Up ] }; + key { [ Down, Down, Next, Down ] }; + key { [ Left, Left, Home, Left ] }; + key { [ Right, Right, End, Right ] }; + key { [ Super_L, Super_L, Caps_Lock, Super_L ] }; +}; + +partial alphanumeric_keys +xkb_symbols "teck227" { + include "inet(media_nav_common)" + key { [ Hiragana ] }; +}; + +partial alphanumeric_keys +xkb_symbols "teck229" { + include "inet(teck227)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/iq b/squashfs-root/usr/share/X11/xkb/symbols/iq new file mode 100644 index 0000000..9a5dd37 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/iq @@ -0,0 +1,33 @@ +// Iraque keyboard layout, + +// 3-Level layout + +default partial alphanumeric_keys +xkb_symbols "basic" { + include "ara(basic)" + name[Group1]= "Iraqi"; +}; + +partial alphanumeric_keys +xkb_symbols "ku" { + include "tr(ku)" + name[Group1]= "Kurdish (Iraq, Latin Q)"; +}; + +partial alphanumeric_keys +xkb_symbols "ku_f" { + include "tr(ku_f)" + name[Group1]= "Kurdish (Iraq, F)"; +}; + +partial alphanumeric_keys +xkb_symbols "ku_alt" { + include "tr(ku_alt)" + name[Group1]= "Kurdish (Iraq, Latin Alt-Q)"; +}; + +partial alphanumeric_keys +xkb_symbols "ku_ara" { + include "ir(ku_ara)" + name[Group1]= "Kurdish (Iraq, Arabic-Latin)"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ir b/squashfs-root/usr/share/X11/xkb/symbols/ir new file mode 100644 index 0000000..2305049 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ir @@ -0,0 +1,305 @@ +// Iranian keyboard layout + +//////////////////////////////////////// +// Persian layout, +// based on +// Information Technology – Layout of Persian Letters and Symbols on Computer Keyboards +// ISIRI 9147 – 1st Edition +// Institute of Standards and Industrial Research of Iran +// http://www.isiri.org/UserStd/DownloadStd.aspx?id=9147 +// http://behnam.esfahbod.info/standards/isiri-keyboard-9147.pdf +// +// Author: Behnam Esfahbod +// + +default partial alphanumeric_keys +xkb_symbols "pes" { + name[Group1]= "Persian"; + + include "ir(pes_part_basic)" + include "ir(pes_part_ext)" + + include "nbsp(zwnj2nb3nnb4)" + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "pes_keypad" { + name[Group1]= "Persian (with Persian keypad)"; + + include "ir(pes_part_basic)" + include "ir(pes_part_ext)" + include "ir(pes_part_keypad)" + + include "nbsp(zwnj2nb3nnb4)" + include "level3(ralt_switch)" +}; + +hidden partial alphanumeric_keys +xkb_symbols "pes_part_basic" { + + // Persian digits + key { [ Farsi_1, exclam, grave ] }; + key { [ Farsi_2, 0x100066c, at ] }; + key { [ Farsi_3, 0x100066b, numbersign ] }; + key { [ Farsi_4, 0x100fdfc, dollar ] }; + key { [ Farsi_5, 0x100066a, percent ] }; + key { [ Farsi_6, multiply, asciicircum ] }; + key { [ Farsi_7, Arabic_comma, ampersand ] }; + key { [ Farsi_8, asterisk, enfilledcircbullet ] }; + key { [ Farsi_9, parenright, 0x100200e ] }; + key { [ Farsi_0, parenleft, 0x100200f ] }; + + // Persian letters and symbols + key { [ Arabic_dad, Arabic_sukun, degree ] }; + key { [ Arabic_sad, Arabic_dammatan, VoidSymbol ] }; + key { [ Arabic_theh, Arabic_kasratan, 0x13a4 ] }; + key { [ Arabic_qaf, Arabic_fathatan, VoidSymbol ] }; + key { [ Arabic_feh, Arabic_damma, VoidSymbol ] }; + key { [ Arabic_ghain, Arabic_kasra, VoidSymbol ] }; + key { [ Arabic_ain, Arabic_fatha, VoidSymbol ] }; + key { [ Arabic_heh, Arabic_shadda, 0x100202d ] }; + key { [ Arabic_khah, bracketright, 0x100202e ] }; + key { [ Arabic_hah, bracketleft, 0x100202c ] }; + key { [ Arabic_jeem, braceright, 0x100202a ] }; + key { [ Arabic_tcheh, braceleft, 0x100202b ] }; + + key { [ Arabic_sheen, Arabic_hamzaonwaw, VoidSymbol ] }; + key { [ Arabic_seen, Arabic_hamzaonyeh, VoidSymbol ] }; + key { [ Farsi_yeh, Arabic_yeh, Arabic_alefmaksura ] }; + key { [ Arabic_beh, Arabic_hamzaunderalef, VoidSymbol ] }; + key { [ Arabic_lam, Arabic_hamzaonalef, VoidSymbol ] }; + key { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] }; + key { [ Arabic_teh, Arabic_tehmarbuta, VoidSymbol ] }; + key { [ Arabic_noon, guillemotright, 0x100fd3e ] }; + key { [ Arabic_meem, guillemotleft, 0x100fd3f ] }; + key { [ Arabic_keheh, colon, semicolon ] }; + key { [ Arabic_gaf, Arabic_semicolon, quotedbl ] }; + + key { [ Arabic_zah, Arabic_kaf, VoidSymbol ] }; + key { [ Arabic_tah, 0x1000653, VoidSymbol ] }; + key { [ Arabic_zain, Arabic_jeh, VoidSymbol ] }; + key { [ Arabic_ra, Arabic_superscript_alef,0x1000656 ] }; + key { [ Arabic_thal, 0x100200c, 0x100200d ] }; + key { [ Arabic_dal, Arabic_hamza_above, Arabic_hamza_below ] }; + key { [ Arabic_peh, Arabic_hamza, ellipsis ] }; + key { [ Arabic_waw, greater, comma ] }; + key { [ period, less, apostrophe ] }; + key { [ slash, Arabic_question_mark, question ] }; + + key { [ 0x100200d, division, asciitilde ] }; + key { [ minus, Arabic_tatweel, underscore ] }; + key { [ equal, plus, 0x1002212 ] }; + key { [ backslash, bar, 0x1002010 ] }; +}; + +hidden partial alphanumeric_keys +xkb_symbols "pes_part_ext" { + + // Persian and ASCII digits + key { [ Farsi_1, exclam, grave, 1 ] }; + key { [ Farsi_2, 0x100066c, at, 2 ] }; + key { [ Farsi_3, 0x100066b, numbersign, 3 ] }; + key { [ Farsi_4, 0x100fdfc, dollar, 4 ] }; + key { [ Farsi_5, 0x100066a, percent, 5 ] }; + key { [ Farsi_6, multiply, asciicircum, 6 ] }; + key { [ Farsi_7, Arabic_comma, ampersand, 7 ] }; + key { [ Farsi_8, asterisk, enfilledcircbullet, 8 ] }; + key { [ Farsi_9, parenright, 0x100200e, 9 ] }; + key { [ Farsi_0, parenleft, 0x100200f, 0 ] }; +}; + +hidden partial alphanumeric_keys +xkb_symbols "pes_part_keypad" { + + // Persian digits and Mathematical operators + key { [ division, XF86_Ungrab ] }; + key { [ multiply, XF86_ClearGrab ] }; + key { [ 0x1002212, XF86_Prev_VMode ] }; + key { [ plus, XF86_Next_VMode ] }; + + key { [ KP_Enter ] }; + key { [ equal ] }; + + key { [ KP_Home, Farsi_7 ] }; + key { [ KP_Up, Farsi_8 ] }; + key { [ KP_Prior, Farsi_9 ] }; + + key { [ KP_Left, Farsi_4 ] }; + key { [ KP_Begin, Farsi_5 ] }; + key { [ KP_Right, Farsi_6 ] }; + + key { [ KP_End, Farsi_1 ] }; + key { [ KP_Down, Farsi_2 ] }; + key { [ KP_Next, Farsi_3 ] }; + + key { [ KP_Insert, Farsi_0 ] }; + key { [ KP_Delete, 0x100066b ] }; +}; + + +//////////////////////////////////////// +// Kurdish Layout + +partial alphanumeric_keys +xkb_symbols "ku" { + include "tr(ku)" + name[Group1]= "Kurdish (Iran, Latin Q)"; +}; + +partial alphanumeric_keys +xkb_symbols "ku_f" { + include "tr(ku_f)" + name[Group1]= "Kurdish (Iran, F)"; +}; + +partial alphanumeric_keys +xkb_symbols "ku_alt" { + include "tr(ku_alt)" + name[Group1]= "Kurdish (Iran, Latin Alt-Q)"; +}; + +//////////////////////////////////////// +// Kurdish Soranî Bahdînî (Arabic) keyboard layout, +// based on the Kurdî Soranî Bahdînî keyboard from KurdITGroup +// which is based on National Iranian Keyboard Standard (ISIRI 2901:1994), +// with additions. +// +// Copyright (C) 2006 Erdal Ronahî, published under the GPL v2 +// +// Special copyright note: author explicitly permitted to license this +// layout under MIT/X11 license, for details see +// https://bugs.freedesktop.org/show_bug.cgi?id=9541 +// +// Author: Erdal Ronahî +// +// Kurdish Arabic-Latin Layout for Soranî + +partial alphanumeric_keys +xkb_symbols "ku_ara" { + name[Group1]= "Kurdish (Iran, Arabic-Latin)"; + + // Other 3-Level symbols + key { [ 0x100200d, division, asciitilde ] }; + key { [ backslash, bar, ccedilla, Ccedilla ] }; + + // Digits + key { [ 1, exclam, Farsi_1, grave ] }; + key { [ 2, at, Farsi_2, at ] }; + key { [ 3, numbersign, Farsi_3, 0x100066b ] }; + key { [ 4, dollar, Farsi_4, 0x100fdfc ] }; + key { [ 5, percent, Farsi_5, 0x100066a ] }; + key { [ 6, asciicircum, Farsi_6, multiply ] }; + key { [ 7, ampersand, Farsi_7, Arabic_comma ] }; + key { [ 8, asterisk, Farsi_8, enfilledcircbullet ] }; + key { [ 9, parenright, Farsi_9, 0x100200e ] }; + key { [ 0, parenleft, Farsi_0, 0x100200f ] }; + key { [ minus, Arabic_tatweel, underscore ] }; + key { [ equal, plus, 0x1002212 ] }; + + key { [ Arabic_qaf, X, q, Q ] }; + key { [ Arabic_waw, X, w, W ] }; + key { [ 0x10006d5, Arabic_heh, e, E ] }; + key { [ Arabic_ra , 0x1000695, r, R ] }; + key { [ Arabic_teh, Arabic_tah, t, T ] }; + key { [ 0x10006cc, 0x10006ce, y, Y ] }; + key { [ Arabic_hamzaonyeh, Arabic_hamza, u, U ] }; + key { [ Arabic_hah, Arabic_ain, i, I ] }; + key { [ 0x10006c6, Arabic_hamzaonwaw, o, O ] }; + key { [ 0x100067e, Arabic_theh, p, P ] }; + key { [ bracketright, braceright, ucircumflex, Ucircumflex ] }; + key { [ bracketleft, braceleft, scedilla, Scedilla ] }; + + key { [ Arabic_alef, Arabic_maddaonalef, a, A ] }; + key { [ Arabic_seen, Arabic_sheen, s, S ] }; + key { [ Arabic_dal, Arabic_thal, d, D ] }; + key { [ Arabic_feh, Arabic_hamzaunderalef, f, F ] }; + key { [ 0x10006af, Arabic_ghain, g, G ] }; + key { [ Arabic_heh, 0x100200c, h, H ] }; + key { [ 0x1000698, Arabic_hamzaonalef, j, J ] }; + key { [ 0x10006a9, Arabic_kaf, k, K ] }; + key { [ Arabic_lam, 0x10006b5, l, L ] }; + key { [ Arabic_semicolon, colon, ecircumflex, Ecircumflex ] }; + key { [ apostrophe, quotedbl, icircumflex, Icircumflex ] }; + + key { [ Arabic_zain, Arabic_dad, z, Z ] }; + key { [ Arabic_khah, Arabic_sad, x, X ] }; + key { [ Arabic_jeem, 0x1000686, c, C ] }; + key { [ 0x10006a4, Arabic_zah, v, V ] }; + key { [ Arabic_beh, 0x1000649, b, B ] }; + key { [ Arabic_noon, Arabic_tehmarbuta, n, N ] }; + key { [ Arabic_meem, Arabic_tatweel, m, M ] }; + key { [ Arabic_comma, greater, comma ] }; + key { [ period, less, apostrophe ] }; + key { [ slash, Arabic_question_mark, question ] }; + + include "nbsp(zwnj2nb3)" + include "level3(ralt_switch)" +}; + +// EXTRAS: + +///////////////////////////////////////////////////////////////////////////////// +// +// Generated keyboard layout file with the Keyboard Layout Editor. +// For more about the software, see http://code.google.com/p/keyboardlayouteditor +// +// Version 0.2, fixed AD09. +// +// Layout by Ernst Tremel, http://ubuntuforums.org/showpost.php?p=9365469&postcount=32 +// Creation of this file by Simos Xenitellis. + +partial alphanumeric_keys +xkb_symbols "ave" +{ + name[Group1] = "Avestan"; + + key { [ U10B30, U10B32 ] }; // 𐬰 𐬲 + key { [ U10B11, U10B12 ] }; // 𐬑 𐬒 + key { [ U10B17, UE102 ] }; // 𐬗  + key { [ U10B2C, U10B13 ] }; // 𐬬 𐬓 + key { [ U10B20, U10B21 ] }; // 𐬠 𐬡 + key { [ U10B25, U10B27 ] }; // 𐬥 𐬧 + key { [ U10B28, U10B29 ] }; // 𐬨 𐬩 + key { [ U10B3C, U10B39 ] }; // 𐬼 𐬹 + key { [ U10B3E, U10B3D ] }; // 𐬾 𐬽 + key { [ U10B3F, periodcentered ] }; // 𐬿 · + + key { [ U10B00, U10B01 ] }; // 𐬀 𐬁 + key { [ U10B2F, U10B31 ] }; // 𐬯 𐬱 + key { [ U10B1B, U10B1C ] }; // 𐬛 𐬜 + key { [ U10B1F, U10B16 ] }; // 𐬟 𐬖 + key { [ U10B14, U10B15 ] }; // 𐬔 𐬕 + key { [ U10B35, UE100 ] }; // 𐬵  + key { [ U10B18, U10B24 ] }; // 𐬘 𐬤 + key { [ U10B10, UE101 ] }; // 𐬐  + key { [ U10B2E, UE103 ] }; // 𐬮  + key { [ U10B3B, U10B3A ] }; // 𐬻 𐬺 + key { [ U10B1D ] }; // 𐬝 + + key { [ U10B22, U10B23 ] }; // 𐬢 𐬣 + key { [ U10B33, U10B34 ] }; // 𐬳 𐬴 + key { [ U10B08, U10B09 ] }; // 𐬈 𐬉 + key { [ U10B2D, U10B26 ] }; // 𐬭 𐬦 + key { [ U10B19, U10B1A ] }; // 𐬙 𐬚 + key { [ U10B2B, U10B2A ] }; // 𐬫 𐬪 + key { [ U10B0E, U10B0F ] }; // 𐬎 𐬏 + key { [ U10B0C, U10B0D ] }; // 𐬌 𐬍 + key { [ U10B0A, U10B0B ] }; // 𐬊 𐬋 + key { [ U10B1E ] }; // 𐬞 + key { [ U10B06, U10B07 ] }; // 𐬆 𐬇 + key { [ U10B02, U10B03 ] }; // 𐬂 𐬃 + + key { [ U10B78 ] }; // 𐭸 + key { [ U10B79 ] }; // 𐭹 + key { [ U10B7A ] }; // 𐭺 + key { [ U10B7B ] }; // 𐭻 + key { [ U10B7C ] }; // 𐭼 + key { [ U10B7D ] }; // 𐭽 + key { [ U10B7E ] }; // 𐭾 + key { [ U10B7F ] }; // 𐭿 + + key { [ U10B04, U10B05 ] }; // 𐬄 𐬅 + key { [ U10B04, U10B05 ] }; // 𐬄 𐬅 +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/is b/squashfs-root/usr/share/X11/xkb/symbols/is new file mode 100644 index 0000000..a7a290f --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/is @@ -0,0 +1,284 @@ +// based on +// XKB keyboard by Hrafnkell Eiriksson - hkelle@rhi.hi.is +// fixes by Olafur Osvaldsson - oli@isnic.is +// +// "basic" corrected according to the Icelandic standard for keyboards, +// IST 125:1995 (some symbols substituted by a dead diacritic). +// Some positions are according to IST ISO/IEC 9995-3:1994 +// Added nobreakspace + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin(type4)" + + name[Group1]="Icelandic"; + +// = + key { [ 2, quotedbl, twosuperior, oneeighth ] }; + key { [ 4, dollar, onequarter, currency ] }; + key { [odiaeresis, Odiaeresis, backslash, questiondown ] }; + key { [ minus, underscore, dead_cedilla, dead_ogonek ] }; + + key { [ eth, ETH, dead_diaeresis, dead_abovering ] }; + key { [apostrophe, question, asciitilde, dead_macron ] }; + + key { [ d, D, U201e, U201c ] }; + key { [ ae, AE, asciicircum, dead_doubleacute ] }; + key { [dead_acute, dead_acute, dead_circumflex, dead_caron ] }; + key { [dead_abovering, dead_diaeresis, notsign, hyphen ] }; + +// = + key { [ plus, asterisk, grave, dead_breve ] }; + +// = , is in file "pc": pc105 + key { [ thorn, THORN, dead_belowdot, dead_abovedot ] }; + + key { [ space, space, space, space ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + + // modify the basic Icelandic layout to use Sun dead keys + + include "is(basic)" + + name[Group1]="Icelandic (with Sun dead keys)"; + + key { [dead_circumflex, degree, notsign, notsign ] }; + key { [dead_acute, dead_grave, dead_cedilla, dead_cedilla ] }; + key { [udiaeresis, Udiaeresis, dead_diaeresis, dead_diaeresis ] }; + key { [ plus, asterisk, dead_tilde, dead_macron ] }; + key { [odiaeresis, Odiaeresis, dead_acute, dead_acute ] }; + key { [adiaeresis, Adiaeresis, dead_circumflex, dead_circumflex ] }; + key { [numbersign, acute, dead_grave, dead_grave ] }; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // modify the basic Icelandic layout to not have any dead keys + + include "is(basic)" + + name[Group1]="Icelandic (no dead keys)"; + + key { [asciicircum, degree, notsign, notsign ] }; + key { [apostrophe, grave, cedilla, cedilla ] }; + key { [udiaeresis, Udiaeresis, diaeresis, diaeresis ] }; + key { [ plus, asterisk, asciitilde, macron ] }; + key { [odiaeresis, Odiaeresis, acute, acute ] }; + key { [adiaeresis, Adiaeresis, asciicircum, asciicircum ] }; + key { [numbersign, acute, grave, grave ] }; + key { [ thorn, THORN, dead_belowdot, abovedot ] }; +}; + +// Copyright (C) 2004, 2006 Ævar Arnfjörð Bjarmason +// +// = HISTORY +// * 2004-09-28: +// Initial cleanroom writing of the keymap, I just booted Mac OS X, opened +// TextEdit.app and wrote down what the value produced by each key was when I +// pressed it, a for a, A for shift + a, å for lalt + a etc and made the +// keymap from that information +// +// * 2006-01-14: +// Revised the comments in the file +// +// * 2013-05-30: +// Renamed the old keyboard layout and created a new one that conforms with the later +// model Apple laptop and Aluminium USB/Bluetooth keyboards (A1243/A1255 and later) +// that are used with the more recent versions of OS X. Also replaced some Unicode +// codes with proper symbol names. +// +// = NOTES +// * 20 characters in this keymap have no named character defined in +// include/keysymdef.h and as a result their Unicode code points in +// hexadecimal are listed here, these can be generated with the following +// perl command: +// $ perl -CA -e 'printf "U%x\n", ord shift' Æ +// and converted back like: +// $ perl -CO -le '$_=shift;s/[^a-f0-9]//ig;print chr hex' Uc6 +// * The Apple logo appears twice on this keymap like the Mac OS and Mac OS X +// keymaps. In the MacRoman encoding it has the code point 0xF0 (240) but it +// has no assigned code point in Unicode, the code point Apple uses for it is +// U+F8FF (63743) which is in the BMP's Private Use Area (U+E000–U+F8FF) +// * This keymap has only been tested on a PowerBook6,5 (iBook G4) but it +// should work on other Apple laptop models which use the same keyboard +// layout. It will probably work on standard sized keyboards with little or +// no modification but it might not support them fully, please report if +// you're able to get it running with such a keyboard + +// Copied from macintosh_vndr/is + +xkb_symbols "mac_legacy" { + name[Group1]= "Icelandic (Macintosh, legacy)"; + + //-- Row 5 (E) --// + key { [ sterling, section, UF8FF, apostrophe ] }; + key { [ 1, exclam, exclamdown, VoidSymbol ] }; + key { [ 2, quotedbl, at, VoidSymbol ] }; + key { [ 3, numbersign, U2122, sterling ] }; + key { [ 4, dollar, U00A2, EuroSign ] }; + key { [ 5, percent, U2030, infinity ] }; + key { [ 6, ampersand, asciicircum, U2044 ] }; + key { [ 7, slash, backslash, U00F7 ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal, U2260, U2248 ] }; + key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; + key { [ minus, underscore, endash, emdash ] }; + + + //-- Row 4 (D) --// + key { [ q, Q, paragraph, VoidSymbol ] }; + key { [ w, W, U2211, VoidSymbol ] }; + key { [ e, E, dead_grave, VoidSymbol ] }; + key { [ r, R, registered, VoidSymbol ] }; + key { [ t, T, degree, VoidSymbol ] }; + key { [ y, Y, yen, VoidSymbol ] }; + key { [ u, U, dead_diaeresis, VoidSymbol ] }; + key { [ i, I, U0131, U00AA ] }; + key { [ o, O, dead_circumflex, U00BA ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ eth, Eth, U201e, U201c ] }; + key { [ apostrophe, question, questiondown, U00B7 ] }; + + + //-- Row 3 (C) --// + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, abovedot ] }; + key { [ d, D, U2202, U2DA ] }; + key { [ f, F, U192, macron ] }; + key { [ g, G, copyright, breve ] }; + key { [ h, H, bar, VoidSymbol ] }; + key { [ j, J, U2206, U2dd ] }; + key { [ k, K, U00AC, VoidSymbol ] }; + key { [ l, L, U2026, caron ] }; + key { [ ae, AE, oe, OE ] }; + key { [ dead_acute, dead_diaeresis, U201A, U2018 ] }; + key { [ plus, asterisk, U2022, plusminus ] }; + + + //-- Row 2 (B) --// + key { [ less, greater, section, UF8FF ] }; + key { [ z, Z, U3A9, VoidSymbol ] }; + key { [ x, X, asciitilde, VoidSymbol ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, U221A, U25CA ] }; + key { [ b, B, U222B, VoidSymbol ] }; + key { [ n, N, dead_tilde, VoidSymbol ] }; + key { [ m, M, U00B5, VoidSymbol ] }; + key { [ comma, semicolon, lessthanequal, guillemotleft ] }; + key { [ period, colon, greaterthanequal, guillemotright ] }; + key { [ thorn, Thorn, U2019, U201d ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "mac" { + name[Group1]= "Icelandic (Macintosh)"; + + //-- Row 5 (E) --// + key { [ less, greater, bar, UF8FF ] }; + key { [ 1, exclam, exclamdown, VoidSymbol ] }; + key { [ 2, quotedbl, at, VoidSymbol ] }; + key { [ 3, numbersign, trademark, sterling ] }; + key { [ 4, dollar, cent, EuroSign ] }; + key { [ 5, percent, U2030, infinity ] }; + key { [ 6, ampersand, asciicircum, U2044 ] }; + key { [ 7, slash, braceleft, division ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal, braceright, approxeq ] }; + key { [ odiaeresis, Odiaeresis, backslash, U2260 ] }; + key { [ minus, underscore, endash, emdash ] }; + + + //-- Row 4 (D) --// + key { [ q, Q, U0040, paragraph ] }; + key { [ w, W, U2211, U00A7 ] }; + key { [ e, E, U20AC, U00BF ] }; + key { [ r, R, registered, VoidSymbol ] }; + key { [ t, T, degree, U2022 ] }; + key { [ y, Y, yen, VoidSymbol ] }; + key { [ u, U, dead_diaeresis, VoidSymbol ] }; + key { [ i, I, idotless, ordfeminine ] }; + key { [ o, O, dead_circumflex, U00BA ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ eth, Eth, doublelowquotemark, leftdoublequotemark ] }; + key { [ apostrophe, question, asciitilde, periodcentered ] }; + + + //-- Row 3 (C) --// + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, abovedot ] }; + key { [ d, D, partialderivative, U02DA ] }; + key { [ f, F, function, macron ] }; + key { [ g, G, copyright, breve ] }; + key { [ h, H, bar, U00B8 ] }; + key { [ j, J, U2206, doubleacute ] }; + key { [ k, K, notsign, U2DB ] }; + key { [ l, L, ellipsis, caron ] }; + key { [ ae, AE, oe, OE ] }; + key { [ dead_acute, dead_acute, asciicircum, leftsinglequotemark ] }; + key { [ plus, asterisk, grave, plusminus ] }; + + + //-- Row 2 (B) --// + key { [ degree, dead_diaeresis, oslash, Ooblique ] }; + key { [ z, Z, Greek_OMEGA, VoidSymbol ] }; + key { [ x, X, asciitilde, VoidSymbol ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, radical, U25CA ] }; + key { [ b, B, integral, VoidSymbol ] }; + key { [ n, N, dead_tilde, VoidSymbol ] }; + key { [ m, M, mu, VoidSymbol ] }; + key { [ comma, semicolon, lessthanequal, guillemotleft ] }; + key { [ period, colon, greaterthanequal, guillemotright ] }; + key { [ thorn, Thorn, rightsinglequotemark, rightdoublequotemark ] }; + + include "level3(ralt_switch)" +}; + +// This is a modified version of the English Dvorak layout that allows +// you to type all Icelandic letters under X. It's not a full attempt at +// nationalizing the layout as e.g. the Norwegian, Swedish and French +// layouts which modify the primary keys of the basic Dvorak layout +// extensively. + +// Rather it's a simple modification of 5 keys of the US Dvorak layout, +// it adds Germanic/Icelandic style quotation marks („“), eth (ðÐ), ae +// (æÆ), endash and emdash (–—), thorn (þÞ), EuroSign (€) and the German +// Sharp S (ßẞ). These keys aren't used in the US version, making the +// Icelandic version a superset of it. + +// Maybe someone else will make a "full" attempt at an Icelandic layout +// but I was mostly interested in continuing to type English comfortably +// as a primary function while being able to type the full Icelandic +// alphabet as a secondary function. +// -- Ævar Arnfjörð Bjarmason + +// Icelandic Dvorak +partial alphanumeric_keys +xkb_symbols "dvorak" { + + include "us(dvorak)" + include "eurosign(4)" + + name[Group1]= "Icelandic (Dvorak)"; + + key { [ slash, question, U201e, U201c ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ d, D, eth, ETH ] }; + key { [ s, S, ae, AE ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ z, Z, thorn, Thorn ] }; + key { [ b, B, ssharp, U1E9E ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/it b/squashfs-root/usr/share/X11/xkb/symbols/it new file mode 100644 index 0000000..11ee0aa --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/it @@ -0,0 +1,369 @@ +// based on a keyboard map from an 'xkb/symbols/it' file +// 17 May 2003 Modified by Sebastiano Vigna (vigna@dsi.unimi.it) + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin(type4)" + + name[Group1]="Italian"; + + key { [ backslash, bar, notsign, brokenbar ] }; + + key { [ 2, quotedbl, twosuperior, dead_doubleacute ] }; + key { [ 3, sterling,threesuperior, dead_tilde ] }; + key { [ 4, dollar, onequarter, oneeighth ] }; + + key { [ 0, equal, braceright, dead_ogonek ] }; + key { [apostrophe, question, grave, questiondown ] }; + key { [ igrave, asciicircum, asciitilde, dead_circumflex ] }; + + key { [ egrave, eacute, bracketleft, braceleft ] }; + key { [ plus, asterisk, bracketright, braceright ] }; + + key { [ ograve, ccedilla, at, dead_cedilla ] }; + key { [ agrave, degree, numbersign, dead_abovering ] }; + + key { [ n, N, ntilde, Ntilde ] }; + key { [ comma, semicolon, dead_acute, multiply ] }; + key { [ period, colon,periodcentered, dead_diaeresis ] }; + key { [ minus, underscore, dead_macron, division ] }; + + key { [ ugrave, section, dead_grave, dead_breve ] }; + + key { [ less, greater,guillemotleft,guillemotright] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // Modifies the basic italian layout to eliminate all dead keys + + include "it(basic)" + + name[Group1]="Italian (no dead keys)"; + + key { [ 2, quotedbl, twosuperior, doubleacute ] }; + key { [ 3, sterling,threesuperior, asciitilde ] }; + + key { [ 0, equal, braceright, ogonek ] }; + key { [ igrave, asciicircum, asciitilde, asciicircum ] }; + + key { [ ograve, ccedilla, at, cedilla ] }; + key { [ agrave, degree, numbersign, degree ] }; + + key { [ comma, semicolon, acute, multiply ] }; + key { [ period, colon,periodcentered, diaeresis ] }; + key { [ minus, underscore, macron, division ] }; + + key { [ ugrave, section, grave, breve ] }; +}; + +partial alphanumeric_keys +xkb_symbols "winkeys" { + + include "it(basic)" + name[Group1]="Italian (Winkeys)"; + include "eurosign(5)" +}; + +// Copied from macintosh_vndr/it +partial alphanumeric_keys +xkb_symbols "mac" { + + name[Group1]= "Italian (Macintosh)"; + + key { [ less, greater ] }; + key { [ at, numbersign, periodcentered ] }; + key { [ ampersand, 1, guillemotleft,guillemotright ] }; + key { [ quotedbl, 2 ] }; + key { [ apostrophe, 3 ] }; + key { [ parenleft, 4, braceleft, bracketleft ] }; + key { [ ccedilla, 5, Ccedilla, Iacute ] }; + key { [ egrave, 6, paragraph, periodcentered] }; + key { [ parenright, 7, braceright, bracketright ] }; + key { [ sterling, 8, infinity ] }; + key { [ agrave, 9, acute, Ocircumflex ] }; + key { [ eacute, 0, grave, Oacute ] }; + key { [ minus, underscore ] }; + key { [ equal, plus, notequal, plusminus ] }; + + key { [ q, Q ] }; + key { [ z, Z ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R, registered ] }; + key { [ t, T ] }; + key { [ y, Y, Uacute, ydiaeresis ] }; + key { [ u, U ] }; + key { [ i, I, icircumflex, idiaeresis ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ igrave, asciicircum ] }; + key { [ dollar, asterisk ] }; + key { [ section, degree, at, numbersign ] }; + + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H, Igrave, Icircumflex ] }; + key { [ j, J, Idiaeresis, Iacute ] }; + key { [ k, K, Egrave, Ediaeresis ] }; + key { [ l, L, ssharp, bar ] }; + key { [ m, M, mu, Oacute ] }; + key { [ ugrave, percent, ae, AE ] }; + + key { [ w, W ] }; + key { [ x, X ] }; + key { [ c, C, copyright, copyright ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N, dead_tilde ] }; + key { [ comma, question, questiondown ] }; + key { [ semicolon, period ] }; + key { [ colon, slash, bar, backslash ] }; + key { [ ograve, exclam, exclamdown ] }; + + include "kpdl(dot)" + include "level3(ralt_switch)" +}; + +// Used by Georgian people in Italy, +// contributed by Vladimer Sichinava +partial alphanumeric_keys +xkb_symbols "geo" { + include "it" + include "ge(basic)" + name[Group1]= "Georgian (Italy)"; + + key { [ backslash, bar, notsign, brokenbar ] }; + key { [ 1, exclam, onesuperior ] }; + key { [ 2, quotedbl, twosuperior, dead_doubleacute ] }; + key { [ 3, sterling, threesuperior, dead_tilde ] }; + key { [ 4, dollar, onequarter, oneeighth ] }; + key { [ 5, percent, onehalf ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright ] }; + key { [ 0, equal, braceright, dead_ogonek ] }; + key { [ apostrophe, question, grave, questiondown ] }; + key { [ igrave, asciicircum, asciitilde, dead_circumflex ] }; + + key { [ 0x010010d4, E, EuroSign ] }; + key { [ egrave, eacute, bracketleft, braceleft ] }; + key { [ plus, asterisk, bracketright, braceright ] }; + + key { [ ograve, ccedilla, at, dead_cedilla ] }; + key { [ agrave, degree, numbersign, degree ] }; + key { [ ugrave, section, dead_grave, dead_breve ] }; + key { [ less, greater ] }; + + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; +}; + +// OLPC Section +xkb_symbols "olpc" { + + include "it(basic)" + + key { [ igrave, asciicircum, asciitilde, dead_tilde ] }; + key { [ ugrave, section, Egrave, dead_breve ] }; + key { [ less, greater, guillemotleft, guillemotright ] }; +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "us" { + + include "us(euro)" + + name[Group1]= "Italian (US, with Italian letters)"; + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ 1, exclam, onesuperior ] }; + key { [ 2, at, twosuperior ] }; + key { [ 3, numbersign, threesuperior ] }; + key { [ 6,asciicircum,dead_circumflex ] }; + key { [ 0, parenright, degree ] }; + key { [ minus, underscore, dead_macron ] }; + + key { [ e, E, egrave, Egrave ] }; + key { [ r, R, registered ] }; + key { [ u, U, ugrave, Ugrave ] }; + key { [ i, I, igrave, Igrave ] }; + key { [ o, O, ograve, Ograve ] }; + + key { [ a, A, agrave, Agrave ] }; + key { [ d, D, eacute, Eacute ] }; + key { [ j, J, uacute, Uacute ] }; + key { [ k, K, iacute, Iacute ] }; + key { [ l, L, oacute, Oacute ] }; + key { [ semicolon, colon,dead_diaeresis, dead_diaeresis ] }; + key { [apostrophe, quotedbl, dead_acute ] }; + + key { [ z, Z, aacute, Aacute ] }; + key { [ c, C, copyright ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ comma, less, guillemotleft ] }; + key { [ period, greater, guillemotright ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "htcdream" { + include "inet(htcdream)" + name[Group1]= "Italian"; + + //second row + key { [ q, Q, Tab, Tab ] }; + key { [ w, W, grave, grave ] }; + key { [ e, E, egrave, egrave] }; + key { [ r, R, eacute, eacute ] }; + key { [ t, T, quotedbl, quotedbl ] }; + key { [ y, Y, apostrophe, apostrophe ] }; + key { [ u, U, ugrave, ugrave ] }; + key { [ i, I, igrave, igrave ] }; + key { [ o, O, ograve, ograve ] }; + key { [ p, P, NoSymbol, NoSymbol ] }; + + //third row + key { [ a, A, agrave, agrave ] }; + key { [ s, S, bar, bar ] }; + key { [ d ,D, EuroSign, EuroSign ] }; + key { [ f, F, sterling, sterling ] }; + key { [ g, G, division, division ] }; + key { [ h, H, multiply, multiply ] }; + key { [ j, J, minus, minus ] }; + key { [ k, K, plus, plus ] }; + key { [ l, L, equal, equal ] }; + + //forth row + key { [ z, Z, underscore, underscore ] }; + key { [ x, X, asciitilde, asciitilde ] }; + key { [ c, C, less, less ] }; + key { [ v, V, greater, greater ] }; + key { [ b, B, backslash, backslash ] }; + key { [ n, N, colon, colon ] }; + key { [ m, M, semicolon, semicolon ] }; + key { [ comma, comma, question, question ] }; + + //fifth row + key { [ at, at, NoSymbol, NoSymbol ] }; + + include "level3(alt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "ibm" { + + // Modifies the basic italian layout to match IBM 142 variant + + include "us" + + name[Group1]="Italian (IBM 142)"; + + key { [ backslash, bar ] }; + + key { [ 2, quotedbl ] }; + key { [ 3, sterling, numbersign ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [apostrophe, question ] }; + key { [ igrave, asciicircum ] }; + + key { [ q, Q, at ] }; + key { [ e, E, EuroSign ] }; + key { [ egrave, eacute ] }; + key { [ plus, asterisk, asciitilde ] }; + + key { [ ograve, ccedilla ] }; + key { [ agrave, degree ] }; + + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + key { [ ugrave, section, grave ] }; + + key { [ less, greater ] }; + + include "level3(ralt_switch)" + include "kpdl(comma)" +}; + + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/it(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "fur" { + include "it(basic)" + include "latin(type4)" + include "level3(ralt_switch)" + name[Group1] = "Friulian (Italy)"; + + + + key { [ backslash, bar, notsign, brokenbar ] }; + + key { [ 2, quotedbl, twosuperior, dead_doubleacute ] }; + key { [ 3, sterling,threesuperior, U1D49 ] }; + key { [ 4, dollar, onequarter, oneeighth ] }; + key { [ 5, percent, EuroSign, onehalf ] }; + + key { [ 0, equal, braceright, dead_ogonek ] }; + key { [apostrophe, question, grave, questiondown ] }; + key { [ igrave, asciicircum, asciitilde, dead_circumflex ] }; + + key { [ e, E, ecircumflex, Ecircumflex ] }; + key { [ t, T, U1D57, U1D40 ] }; + key { [ u, U, ucircumflex, NoSymbol ] }; + key { [ i, I, icircumflex, Icircumflex ] }; + key { [ o, O, ocircumflex, Ocircumflex ] }; + key { [ egrave, eacute, bracketleft, braceleft ] }; + key { [ plus, asterisk, bracketright, braceright ] }; + key { [ a, A, acircumflex, Acircumflex ] }; + key { [ f, F, U1DA0, U00AA ] }; + key { [ ograve, ccedilla, at, dead_cedilla ] }; + key { [ agrave, degree, numbersign, dead_abovering ] }; + + key { [ c, C, U1D9C, U00A9 ] }; + key { [ n, N, U207F, Ntilde ] }; + key { [ m, M, U1D50, U00B5 ] }; + key { [ comma, semicolon, dead_acute, multiply ] }; + key { [ period, colon,periodcentered, dead_diaeresis ] }; + key { [ minus, underscore, dead_macron, division ] }; + + key { [ ugrave, section, dead_grave, dead_breve ] }; + + key { [ less, greater,guillemotleft,guillemotright] }; + +}; + +partial alphanumeric_keys + xkb_symbols "lld" { + include "it(basic)" + name[Group1] = "Italian Ladin"; + + key { [ i, I, idiaeresis, Idiaeresis ] }; + key { [ p, P, ediaeresis, Ediaeresis ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ s, S, sacute, Sacute ] }; + + key { [ c, C, cacute, Cacute ] }; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/jolla_vndr/sbj b/squashfs-root/usr/share/X11/xkb/symbols/jolla_vndr/sbj new file mode 100644 index 0000000..d2388c3 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/jolla_vndr/sbj @@ -0,0 +1,57 @@ +// Instructions +// +// 1. Set basic layout by: +// setxkbmap -rules evdev -model jollasbj -layout cz +// +// 2. Set variant by: +// setxkbmap -rules evdev -model jollasbj -layout cz -variant qwerty +// In practice this is equivalent to: +// setxkbmap -rules evdev -model jollasbj -layout cz_qwerty +// However, the latter form isn't portable so always use the -variant option. +// +// 3. Set multilayout by: +// setxkbmap -rules evdev -model jollasbj -layout "us,cz" -variant ",qwerty" -option grp:ctrl_shift_toggle +// This sets the basic us layout active. You can switch to qwerty +// variant of cz layout by pressing ctrl+shift. +// +// Pitfalls +// +// 1. Many to one mappings +// +// Higher level input method components don't necessarily handle many to +// one mappings correctly. They may assume that there exists only a one +// to one mapping between a hardware key and a symbol. Therefore you +// should take care not to introduce many to one mappings for keys that +// are going to be reverse mapped from a symbol to a hardware key. +// +// Currently at least the modifier keys are affected. Clients may set +// states, such as autorepeat, for hardware keys by reverse mapping a +// modifier symbol to a hardware key and then setting the state for the +// first hardware key that maps to the symbol. The correct way would be +// to modify the state of all hardware keys mapping to a given symbol. +// +// We are nice and keep the mappings one to one for clients that don't +// choose to handle many to one mappings. + + + +default partial alphanumeric_keys +xkb_symbols "common" { + include "pc(pc105)" + include "jolla_vndr/sbj(common-keys)" + + // This section should not be included by any other section. It's + // referenced only once by rule file to allow multiple layout + // configurations. +}; + +partial hidden alphanumeric_keys +xkb_symbols "common-keys" { + + // These keycodes are beyond the X11 255 limit value so it would + // only be valid for the use with SW which supports extended keycodes, + // like xkbcommon. + + // generated from the headset, must always be in the map. + key { [ XF86Phone ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/jp b/squashfs-root/usr/share/X11/xkb/symbols/jp new file mode 100644 index 0000000..3d2d03b --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/jp @@ -0,0 +1,323 @@ +// Symbols for Japanese 106-keys keyboards (by tsuka@kawalab.dnj.ynu.ac.jp). + +default partial alphanumeric_keys +xkb_symbols "106" { + + include "jp(common)" + name[Group1]= "Japanese"; + + key { [ 0, asciitilde ] }; + key { [ backslash, bar ] }; +}; + +hidden partial alphanumeric_keys +xkb_symbols "common" { + // "Common" keys for jp 106/109A layouts. + + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Zenkaku_Hankaku, Kanji ] + }; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, ampersand ] }; + key { [ 7, apostrophe ] }; + key { [ 8, parenleft ] }; + key { [ 9, parenright ] }; + key { [ minus, equal ] }; + key { [ asciicircum, asciitilde] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ at, grave ] }; + key { [ bracketleft, braceleft ] }; + + key { [ Eisu_toggle, Caps_Lock ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, plus ] }; + key { [ colon, asterisk ] }; + key { [ bracketright, braceright ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + key { [ backslash, underscore] }; + key { [ Control_L ] }; + + key { [ Muhenkan ] }; + + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Henkan, Mode_switch ] + }; + + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Hiragana_Katakana, Romaji ] + }; + + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Eisu_toggle ] + }; + + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Hiragana_Katakana ] + }; + + key { + type[Group1]= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Execute ] + }; +}; + +partial alphanumeric_keys +xkb_symbols "henkan" { + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Henkan, Mode_switch ] + }; +}; + +partial alphanumeric_keys +xkb_symbols "OADG109A" { + + include "jp(common)" + name[Group1]= "Japanese (OADG 109A)"; + + key { [ 0 ] }; + key { [ yen, bar ] }; +}; + +// 86 keys with kana map +partial alphanumeric_keys +xkb_symbols "kana86" { + + include "srvr_ctrl(fkey2vt)" + include "pc(editing)" + include "keypad(numoperdecsep)" + include "altwin(menu)" + include "jp(kana)" + include "jp(OADG109A)" + name[Group1]= "Japanese (Kana 86)"; + + key { [ Escape ] }; + key { [ Num_Lock ] }; + key { [ BackSpace ] }; + key { [ Tab, ISO_Left_Tab ] }; + key { [ Return ] }; + key { [ Shift_L ] }; + key { [ Shift_R ] }; + key { [ Super_L ] }; + key { [ Alt_L ] }; + key { [ space ] }; + key { [ Alt_R ] }; + // For compatibility with other keyboards connected at the same time: + key { [ Super_R ] }; + key { [ Control_R ] }; +}; + +partial alphanumeric_keys +xkb_symbols "kana" { + + name[Group1]= "Japanese (Kana)"; + + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Zenkaku_Hankaku, Kanji ] + }; + + key { [ kana_NU ] }; + key { [ kana_FU ] }; + key { [ kana_A, kana_a ] }; + key { [ kana_U, kana_u ] }; + key { [ kana_E, kana_e ] }; + key { [ kana_O, kana_o ] }; + key { [ kana_YA, kana_ya ] }; + key { [ kana_YU, kana_yu ] }; + key { [ kana_YO, kana_yo ] }; + key { [ kana_WA, kana_WO ] }; + key { [ kana_HO ] }; + key { [ kana_HE ] }; + key { [ prolongedsound ] }; + + key { [ kana_TA ] }; + key { [ kana_TE ] }; + key { [ kana_I, kana_i ] }; + key { [ kana_SU ] }; + key { [ kana_KA ] }; + key { [ kana_N ] }; + key { [ kana_NA ] }; + key { [ kana_NI ] }; + key { [ kana_RA ] }; + key { [ kana_SE ] }; + key { [ voicedsound ] }; + key { [ semivoicedsound, kana_openingbracket ] }; + + key { [ Eisu_toggle, Caps_Lock ] }; + key { [ kana_CHI ] }; + key { [ kana_TO ] }; + key { [ kana_SHI ] }; + key { [ kana_HA ] }; + key { [ kana_KI ] }; + key { [ kana_KU ] }; + key { [ kana_MA ] }; + key { [ kana_NO ] }; + key { [ kana_RI ] }; + key { [ kana_RE ] }; + key { [ kana_KE ] }; + key { [ kana_MU, kana_closingbracket ] }; + + key { [ kana_TSU, kana_tsu ] }; + key { [ kana_SA ] }; + key { [ kana_SO ] }; + key { [ kana_HI ] }; + key { [ kana_KO ] }; + key { [ kana_MI ] }; + key { [ kana_MO ] }; + key { [ kana_NE, kana_comma ] }; + key { [ kana_RU, kana_fullstop ] }; + key { [ kana_ME, kana_middledot ] }; + key { [ kana_RO ] }; + key { [ Control_L ] }; + + key { [ Muhenkan ] }; + + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Henkan, Mode_switch ] + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Hiragana_Katakana, Romaji ] + }; + + key { + type[Group1]= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Execute ] + }; +}; + +partial alphanumeric_keys +xkb_symbols "nicola_f_bs" { + key { + type="", + symbols[Group1]= [ bracketright, braceright ] + }; + key { [ 0, underscore ] }; + key { [ colon, asterisk ] }; + key { [ BackSpace, BackSpace ] }; + key { [ Escape ] }; + key { [ at, grave ] }; +}; + +// Copied from macintosh_vndr/jp +partial alphanumeric_keys +xkb_symbols "mac" { + include "jp(kana)" + name[Group1]= "Japanese (Macintosh)"; + + replace key { [ Caps_Lock ] }; +}; + +partial alphanumeric_keys +xkb_symbols "hztg_escape" { + replace key { [ Escape ] }; +}; + +partial alphanumeric_keys +xkb_symbols "dvorak" { + include "jp(OADG109A)" + name[Group1]= "Japanese (Dvorak)"; + + key { [ at, grave ] }; + + key { [ colon, asterisk ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ p, P ] }; + key { [ y, Y ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ c, C ] }; + key { [ r, R ] }; + key { [ l, L ] }; + key { [ slash, question ] }; + + key { [ o, O ] }; + key { [ e, E ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ d, D ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ n, N ] }; + key { [ s, S ] }; + key { [ minus, equal ] }; + + key { [ semicolon, plus ] }; + key { [ q, Q ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ x, X ] }; + key { [ b, B ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ z, Z ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6_suncompat" { + include "sun_vndr/jp(sun_type6_suncompat)" +}; + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/jp(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "sun_type7_suncompat" { + include "sun_vndr/jp(sun_type7_suncompat)" +}; + +partial alphanumeric_keys + xkb_symbols "suncompat" { + include "sun_vndr/jp(suncompat)" +}; + +partial alphanumeric_keys + xkb_symbols "sun_type7" { + include "sun_vndr/jp(sun_type7)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ke b/squashfs-root/usr/share/X11/xkb/symbols/ke new file mode 100644 index 0000000..d58796d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ke @@ -0,0 +1,42 @@ +// Keyboard layout for Swahili in Arabic script. +// Based on Martin Vidner's Buckwalter transliteration variant of the Arabic keyboard +// Please notify any corrections or omissions to +// Kevin Donnelly (kevin@dotmon.com) + +default partial alphanumeric_keys +xkb_symbols "swa" { + + include "us" + + name[Group1]= "Swahili (Kenya)"; + + key { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW + key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS + key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE + key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT + key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW + key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE + key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON + key { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "kik" { + + include "us" + + name[Group1]= "Kikuyu"; + + key { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW + key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS + key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE + key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT + key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW + key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE + key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON + key { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/keypad b/squashfs-root/usr/share/X11/xkb/symbols/keypad new file mode 100644 index 0000000..8b0e098 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/keypad @@ -0,0 +1,624 @@ +default hidden partial keypad_keys +xkb_symbols "x11" { + + include "keypad(operators)" + + key { [ KP_Home, KP_7 ] }; + key { [ KP_Up, KP_8 ] }; + key { [ KP_Prior, KP_9 ] }; + + key { [ KP_Left, KP_4 ] }; + key { [ KP_Begin, KP_5 ] }; + key { [ KP_Right, KP_6 ] }; + + key { [ KP_End, KP_1 ] }; + key { [ KP_Down, KP_2 ] }; + key { [ KP_Next, KP_3 ] }; + key { [ KP_Enter ] }; + key { [ KP_Equal ] }; + + key { [ KP_Insert, KP_0 ] }; + key { [ KP_Delete, KP_Decimal ] }; + key { [ KP_Decimal, KP_Decimal ] }; +}; + +hidden partial keypad_keys +xkb_symbols "overlay" { + include "keypad(overlay1)" +}; + +hidden partial keypad_keys +xkb_symbols "overlay1" { + + key { [ KP_Home ], overlay1= }; + key { [ KP_Up ], overlay1= }; + key { [ KP_Prior ], overlay1= }; + + key { [ KP_Left ], overlay1= }; + key { [ KP_Begin ], overlay1= }; + key { [ KP_Right ], overlay1= }; + + key { [ KP_End ], overlay1= }; + key { [ KP_Down ], overlay1= }; + key { [ KP_Next ], overlay1= }; + + key { [ KP_Insert ], overlay1= }; + key { [ KP_Delete ], overlay1= }; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; +}; + +hidden partial keypad_keys +xkb_symbols "overlay2" { + + key { [ KP_Home ], overlay2= }; + key { [ KP_Up ], overlay2= }; + key { [ KP_Prior ], overlay2= }; + + key { [ KP_Left ], overlay2= }; + key { [ KP_Begin ], overlay2= }; + key { [ KP_Right ], overlay2= }; + + key { [ KP_End ], overlay2= }; + key { [ KP_Down ], overlay2= }; + key { [ KP_Next ], overlay2= }; + + key { [ KP_Insert ], overlay2= }; + key { [ KP_Delete ], overlay2= }; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; +}; + +hidden partial keypad_keys +xkb_symbols "operators" { + // Puts some commands to control the X server on + // the fifth level of the keypad's operator keys. + key { + type="CTRL+ALT", // Ungrab cancels server/keyboard/pointer grabs + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] + }; + key { + type="CTRL+ALT", // ClsGrb kills whichever client has a grab in effect + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] + }; + key { + type="CTRL+ALT", // -VMode switches to the previous video mode + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] + }; + key { + type="CTRL+ALT", // +VMode switches to the next video mode + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] + }; +}; + +// Legacy PC keypad definition +// Copyright © 2006-2007 Nicolas Mailhot +keypad_keys +xkb_symbols "legacy" { + + include "keypad(core)" + include "keypad(legacymath)" + include "keypad(legacynumber)" + include "kpdl(dot)" +}; + + +// Legacy Wang 725-3771-ae and 725-3771-uk keypad definition +// Copyright © 2006-2007 Nicolas Mailhot +keypad_keys +xkb_symbols "legacy_wang" { + + include "keypad(core)" + include "keypad(legacymath)" + include "keypad(legacynumber_wang)" + include "kpdl(dot)" +}; + + +// Complete new keypad definition +// Copyright © 2006-2007 Nicolas Mailhot +keypad_keys +xkb_symbols "oss" { + + include "keypad(core)" + include "keypad(ossmath)" + include "keypad(ossnumber)" + include "kpdl(dotoss)" +}; + + +// Latin9 restriction of new keypad definition +// Copyright © 2006-2007 Nicolas Mailhot +keypad_keys +xkb_symbols "oss_latin9" { + + include "keypad(core)" + include "keypad(ossmath_latin9)" + include "keypad(legacynumber)" + include "kpdl(dotoss_latin9)" +}; + + +// Wang 725-3771-ae and 725-3771-uk keypad variant of oss keypad +// Copyright © 2006-2007 Nicolas Mailhot +keypad_keys +xkb_symbols "oss_wang" { + + include "keypad(core)" + include "keypad(ossmath)" + include "keypad(ossnumber_wang)" + include "kpdl(dotoss)" +}; + + +// Forward-looking keypad definition +// Won't work with applications that make ASCII assumptions +// Copyright © 2007 Nicolas Mailhot +keypad_keys +xkb_symbols "future" { + + include "keypad(core)" + include "keypad(futuremath)" + include "keypad(ossnumber)" + include "kpdl(commaoss)" +}; + + +// Forward-looking keypad definition +// Won't work with applications that make ASCII assumptions +// Copyright © 2007 Nicolas Mailhot +keypad_keys +xkb_symbols "future_wang" { + + include "keypad(core)" + include "keypad(futuremath)" + include "keypad(ossnumber_wang)" + include "kpdl(commaoss)" +}; + + +// Keypad keys nobody changes +// Copyright © 2006 Nicolas Mailhot +partial keypad_keys +xkb_symbols "core" { + + modifier_map Mod2 { Num_Lock }; + + key { [ Num_Lock ] }; + key { [ KP_Enter ] }; + key { [ KP_Equal ] }; +}; + + +// Legacy keypad math area +// Copyright © 2006 Nicolas Mailhot +// +// ┏━━━━━┱─────┬─────┬─────┐ +// ┃Num ┃ ₁ │ ₂ │ ₃ │ ₁ +// ┃Lock⇭┃ / │ * │ - │ ₂ +// ┡━━━━━╃─────┼─────┼─────┤ ₃ +// │ ₄ │ ₄ +// │ │ +// ┤ │ 1 None +// │ │ 2 Ctrl+Alt +// │ + │ +// ╆━━━━━┪ +partial keypad_keys +xkb_symbols "legacymath" { + + key.type[Group1]="CTRL+ALT" ; + + key { [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] }; // / + key { [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] }; // * + key { [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] }; // - + + key { [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] }; // + +}; + + +// Keypad math area with non-CS operators +// Copyright © 2006 Nicolas Mailhot +// +// ┏━━━━━┱─────┬─────┬─────┐ +// ┃Num ┃ ∕ ₁ │ . ₂ │ − ₃ │ ₁ +// ┃Lock⇭┃ / ÷ │ * × │ - − │ ₂ +// ┡━━━━━╃─────┼─────┼─────┤ ₃ +// │ + ₄ │ ₄ +// │ │ +// ┤ │ 1 None +// │ │ 2 Level3 ⇮ +// │ + + │ 3 Shift+Level3 ⇧⇮ +// ╆━━━━━┪ 4 Ctrl+Alt +partial keypad_keys +xkb_symbols "ossmath" { + + key.type[Group1]="CTRL+ALT" ; + + key { [ KP_Divide, 0x1002215, 0x10000F7, VoidSymbol, XF86_Ungrab ] }; // / ∕ ÷ + key { [ KP_Multiply, 0x10022C5, 0x10000D7, VoidSymbol, XF86_ClearGrab ] }; // * ⋅ × + key { [ KP_Subtract, 0x1002212, 0x1002212, VoidSymbol, XF86_Prev_VMode ] }; // - − − + + key { [ KP_Add, 0x100002B, 0x100002B, VoidSymbol, XF86_Next_VMode ] }; // + + + +}; + + +// Keypad math area with non-CS operators in first levels +// As demanded by users not interested in legacy pre-unicode junk +// Copyright © 2007 Nicolas Mailhot +// +// ┏━━━━━┱─────┬─────┬─────┐ +// ┃Num ┃ / ₁ │ * ₂ │ - ₃ │ ₁ +// ┃Lock⇭┃ ∕ ÷ │ . × │ − − │ ₂ +// ┡━━━━━╃─────┼─────┼─────┤ ₃ +// │ + ₄ │ ₄ +// │ │ +// ┤ │ 1 None +// │ │ 2 Level3 ⇮ +// │ + + │ 3 Shift+Level3 ⇧⇮ +// ╆━━━━━┪ 4 Ctrl+Alt +partial keypad_keys +xkb_symbols "futuremath" { + + key.type[Group1]="FOUR_LEVEL_X" ; + + key { [ 0x1002215, KP_Divide, 0x10000F7, XF86_Ungrab ] }; // ∕ / ÷ + key { [ 0x10022C5, KP_Multiply, 0x10000D7, XF86_ClearGrab ] }; // ⋅ * × + key { [ 0x1002212, KP_Subtract, 0x1002212, XF86_Prev_VMode ] }; // − - − + + key { [ 0x100002B, KP_Add, 0x100002B, XF86_Next_VMode ] }; // + + + +}; + + +// Keypad math area with non-CS operators, restricted to latin9 +// Copyright © 2006 Nicolas Mailhot +// +// ┏━━━━━┱─────┬─────┬─────┐ +// ┃Num ┃ / ₁ │ · ₂ │ - ₃ │ ₁ +// ┃Lock⇭┃ / ÷ │ * × │ - - │ ₂ +// ┡━━━━━╃─────┼─────┼─────┤ ₃ +// │ + ₄ │ ₄ +// │ │ +// ┤ │ 1 None +// │ │ 2 Level3 ⇮ +// │ + + │ 3 Shift+Level3 ⇧⇮ +// ╆━━━━━┪ 4 Ctrl+Alt +partial keypad_keys +xkb_symbols "ossmath_latin9" { + + key.type[Group1]="FOUR_LEVEL_X"; + + key { [ KP_Divide, slash, division, XF86_Ungrab ] }; // / / ÷ + key { [ KP_Multiply, periodcentered, multiply, XF86_ClearGrab ] }; // * · × + key { [ KP_Subtract, minus, minus, XF86_Prev_VMode ] }; // - - - + + key { [ KP_Add, plus, plus, XF86_Next_VMode ] }; // + + + +}; + + +// Legacy keypad number area +// Copyright © 2006 Nicolas Mailhot +// +// ┏━━━━━┱ +// ┃Num ┃ ⇱ Home +// ┃Lock⇭┃ ⇲ End +// ┡━━━━━╃─────┼─────┼ ⇞ Page up +// │ 7 │ 8 │ 9 │ ⇟ Page down +// │ ⇱ │ ⇧ │ ⇞ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions +// │ ⇦ │ │ ⇨ │ +// ├─────┼─────┼─────╆ +// │ 1 │ 2 │ 3 ┃ +// │ ⇲ │ ⇩ │ ⇟ ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ 0 │ +// │ ⎀ │ +// └───────────┴ +partial keypad_keys +xkb_symbols "legacynumber" { + + key.type[Group1]="KEYPAD" ; + + key { [ KP_Home, KP_7 ] }; // 7 + key { [ KP_Up, KP_8 ] }; // 8 + key { [ KP_Prior, KP_9 ] }; // 9 + + key { [ KP_Left, KP_4 ] }; // 4 + key { [ KP_Begin, KP_5 ] }; // 5 + key { [ KP_Right, KP_6 ] }; // 6 + + key { [ KP_End, KP_1 ] }; // 1 + key { [ KP_Down, KP_2 ] }; // 2 + key { [ KP_Next, KP_3 ] }; // 3 + + key { [ KP_Insert, KP_0 ] }; // 0 +}; + + +// Legacy Wang 725-3771-ae and 725-3771-uk keypad number area +// Copyright © 2007 Nicolas Mailhot +// This is actually a three-level keypad, declared as four-level +// to avoid defining a new type +// +// ┏━━━━━┱ +// ┃Num ┃ ⇱ Home +// ┃Lock⇭┃ ⇲ End +// ┡━━━━━╃─────┼─────┼ ⇞ Page up +// │ 7 │ 8 │ 9 │ ⇟ Page down +// │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions +// │ ⇦ [ │ ] │ ⇨ $ │ +// ├─────┼─────┼─────╆ +// │ 1 │ 2 │ 3 ┃ +// │ ⇲ & │ ⇩ @ │ ⇟ # ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ 0 │ 3 Level3 ⇮ +// │ ⎀ │ +// └───────────┴ +partial keypad_keys +xkb_symbols "legacynumber_wang" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Home, KP_7, less ] }; // 7 < + key { [ KP_Up, KP_8, greater ] }; // 8 > + key { [ KP_Prior, KP_9, asciicircum ] }; // 9 ^ + + key { [ KP_Left, KP_4, bracketleft ] }; // 4 [ + key { [ KP_Begin, KP_5, bracketright ] }; // 5 ] + key { [ KP_Right, KP_6, dollar ] }; // 6 $ + + key { [ KP_End, KP_1, ampersand ] }; // 1 & + key { [ KP_Down, KP_2, at ] }; // 2 @ + key { [ KP_Next, KP_3, numbersign ] }; // 3 # + + key { [ KP_Insert, KP_0, apostrophe ] }; // 0 ' +}; + + +// Keypad number area with arrow symbols +// Copyright © 2006 Nicolas Mailhot +// +// ┏━━━━━┱ +// ┃Num ┃ ⇱ Home +// ┃Lock⇭┃ ⇲ End +// ┡━━━━━╃─────┼─────┼ ⇞ Page up +// │ 7 ⇖ │ 8 ⇑ │ 9 ⇗ │ ⇟ Page down +// │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ 4 ⇐ │ 5 ⇔ │ 6 ⇒ │ ⇦⇧⇨⇩ Directions +// │ ⇦ ← │ ↔ │ ⇨ → │ ⍽ narrow no-break space +// ├─────┼─────┼─────╆ +// │ 1 ⇙ │ 2 ⇓ │ 3 ⇘ ┃ +// │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ 0 ⇕ │ 3 Level3 ⇮ +// │ ⎀ ↕ │ 4 Shift+Level3 ⇧⇮ +// └───────────┴ +partial keypad_keys +xkb_symbols "ossnumber" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] }; // 7 ↖ ⇖ + key { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] }; // 8 ↑ ⇑ + key { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] }; // 9 ↗ ⇗ + + key { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] }; // 4 ← ⇐ + key { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] }; // 5 ↔ ⇔ + key { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] }; // 6 → ⇒ + + key { [ KP_End, KP_1, 0x1002199, 0x10021D9 ] }; // 1 ↙ ⇙ + key { [ KP_Down, KP_2, 0x1002193, 0x10021D3 ] }; // 2 ↓ ⇓ + key { [ KP_Next, KP_3, 0x1002198, 0x10021D8 ] }; // 3 ↘ ⇘ + + key { [ KP_Insert, KP_0, 0x1002195, 0x10021D5 ] }; // 0 ↕ ⇕ +}; + + +// Wang 725-3771-ae and 725-3771-uk keypad number area with additional arrow symbols +// Copyright © 2007 Nicolas Mailhot +// +// ┏━━━━━┱ +// ┃Num ┃ ⇱ Home +// ┃Lock⇭┃ ⇲ End +// ┡━━━━━╃─────┼─────┼ ⇞ Page up +// │ 7 ↖ │ 8 ↑ │ 9 ↗ │ ⇟ Page down +// │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ 4 ← │ 5 ↔ │ 6 → │ ⇦⇧⇨⇩ Directions +// │ ⇦ [ │ ] │ ⇨ $ │ ⍽ narrow no-break space +// ├─────┼─────┼─────╆ +// │ 1 ↙ │ 2 ↓ │ 3 ↘ ┃ +// │ ⇲ & │ ⇩ @ │ ⇟ # ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ 0 ↕ │ 3 Level3 ⇮ +// │ ⎀ ' │ 4 Shift+Level3 ⇧⇮ +// └───────────┴ +partial keypad_keys +xkb_symbols "ossnumber_wang" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Home, KP_7, less, 0x1002196 ] }; // 7 < ↖ + key { [ KP_Up, KP_8, greater, 0x1002191 ] }; // 8 > ↑ + key { [ KP_Prior, KP_9, asciicircum, 0x1002197 ] }; // 9 ^ ↗ + + key { [ KP_Left, KP_4, bracketleft, 0x1002190 ] }; // 4 [ ← + key { [ KP_Begin, KP_5, bracketright, 0x1002194 ] }; // 5 ] ↔ + key { [ KP_Right, KP_6, dollar, 0x1002192 ] }; // 6 $ → + + key { [ KP_End, KP_1, ampersand, 0x1002199 ] }; // 1 & ↙ + key { [ KP_Down, KP_2, at, 0x1002193 ] }; // 2 @ ↓ + key { [ KP_Next, KP_3, numbersign, 0x1002198 ] }; // 3 # ↘ + + key { [ KP_Insert, KP_0, apostrophe, 0x1002195 ] }; // 0 ' ↕ +}; + +// Standard base "pc" layout only contains cursor keys, and then gets +// augmented with the digits later. If you define your own layout for +// the numpad you can inherit the cursors, but you'll have to define +// the digits yourself. This module can be included in the rules to +// define math operators; these are the variants used in computer +// languages that are based on ASCII. NoSymbol does not mean that +// nothing is bound to the key but that no assignment is done here. +// srvr_ctrl(stdkeypad) and keypad(x11) declare the operator keys to +// be of type CTRL+ALT in order to assign server control events to +// them, but it uses the second level which is overwritten if we have +// more than one definition (shift state) for the key. Instead, here +// the commands are put at the 4th lever. +partial keypad_keys +xkb_symbols "ops" { + key { [ NoSymbol, slash, NoSymbol, XF86_Ungrab ] }; + key { [ NoSymbol, asterisk, NoSymbol, XF86_ClearGrab ] }; + key { [ NoSymbol, minus, NoSymbol, XF86_Prev_VMode ] }; + key { [ NoSymbol, plus, NoSymbol, XF86_Next_VMode ] }; + key { [ NoSymbol, equal ] }; +}; + +// Hexadecimal Numpad, by Roland Kaufmann +// License: BSD (also covers variant with ATM digit order) +// Third-level gives the letters used in hexadecimal numbers, or +// columns in small spreadsheets. As a bonus, having 'e' available at +// the center of the keyboard makes it easy to enter floating point +// numbers in scientific notation. +// Equal is added to start formulas (most numpads on PCs don't have +// their own equal key), comma as a list separator (as most +// programming languages wants period as a decimal separator) and +// colon to enter times and ranges. Someone also may want to represent +// multiplication and division in prose using x and colon. +// Two first levels are specified as NoSymbol to not override any +// previous specification. Combine this with another keypad specifier, +// e.g. "legacy". +partial keypad_keys +xkb_symbols "hex" { + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + // None NumLock AltGr + // symbol row + key { [ NoSymbol, NoSymbol, parenleft ] }; + key { [ NoSymbol, NoSymbol, parenright ] }; + key { [ NoSymbol, NoSymbol, dollar ] }; + + // upper row + key { [ NoSymbol, NoSymbol, a ] }; + key { [ NoSymbol, NoSymbol, b ] }; + key { [ NoSymbol, NoSymbol, c ] }; + + // home row + key { [ NoSymbol, NoSymbol, d ] }; + key { [ NoSymbol, NoSymbol, e ] }; + key { [ NoSymbol, NoSymbol, f ] }; + key { [ NoSymbol, NoSymbol, comma ] }; + + // lower row + key { [ NoSymbol, NoSymbol, equal ] }; + key { [ NoSymbol, NoSymbol, x ] }; + key { [ NoSymbol, NoSymbol, colon ] }; + + // decimal row + key { [ NoSymbol, NoSymbol, backslash ] }; +}; + +// Main numbers follows the traditions from ATMs and phones with +// numbers increasing downwards to the right. (It is easier to +// change the keyboard layout than to reprogram your local ATM; +// also cell-phones are becoming more common while calculators are +// becoming more rare). +// First level is left unspecified, so it may be combined with another +// layout, e.g. "legacy". +partial keypad_keys +xkb_symbols "atm" { + // upper row + key { [ NoSymbol, KP_1 ] }; + key { [ NoSymbol, KP_2 ] }; + key { [ NoSymbol, KP_3 ] }; + + // lower row + key { [ NoSymbol, KP_7 ] }; + key { [ NoSymbol, KP_8 ] }; + key { [ NoSymbol, KP_9 ] }; +}; + + +partial modifier_keys +xkb_symbols "pointerkeys" { + key { [ Num_Lock, Pointer_EnableKeys ] }; +}; + + +// Only numbers, operators and decimal separator, +// as seen on keypad overlay on Japanese keyboard. +// ┌─┬─┬─┬─┐ +// │7│8│9│*│ +// ├─┼─┼─┼─┤ +// │4│5│6│-│ +// ├─┼─┼─┼─┤ +// │1│2│3│+│ +// ├─┼─┼─┼─┤ +// │0│ │·│/│ +// └─┴─┴─┴─┘ +partial keypad_keys +xkb_symbols "numoperdecsep" { + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; +// ClsGrb kills whichever client has a grab in effect + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] + }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; +// -VMode switches to the previous video mode + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] + }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; +// +VMode switches to the next video mode + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] + }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; +// Ungrab cancels server/keyboard/pointer grabs + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/kg b/squashfs-root/usr/share/X11/xkb/symbols/kg new file mode 100644 index 0000000..95ef262 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/kg @@ -0,0 +1,133 @@ +// Kirghiz (aka Kyrgyz) Standard Keyboard +// +// Standard - Phonetic +// ______________- ________________ +// ё1234567890өң ё1234567890яю +// Ё!"№;%:?*()ӨҢ Ё!"№;%:?-()ЯЮ +// +// йцукенгшщзхъү өүертыуиопчшъ +// фывапролджэ асдфгңйклэь +// ячсмитьбю.(,) зхжвбнмцщ.(,) + +// Authors: +// Timur Jamakeev +// Ilyas Bakirov +// Yury Fedorov +// Emil Asanov +// Ulan Melisbek + + +// Kyrgyz standard keyboard +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]= "Kyrgyz"; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numerosign ] }; + key { [ 4, semicolon ] }; + key { [ 5, percent ] }; + key { [ 6, colon ] }; + key { [ 7, question ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; + key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; + key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; + key { [ period, comma ] }; + key { [ slash, bar ] }; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; +}; + +// Kyrgyz phonetic layout +partial alphanumeric_keys +xkb_symbols "phonetic" { + + name[Group1]="Kyrgyz (phonetic)"; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numerosign ] }; + key { [ 4, semicolon ] }; + key { [ 5, percent ] }; + key { [ 6, colon ] }; + key { [ 7, question ] }; + key { [ 8, minus ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; + + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ period, comma ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; + + key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/kh b/squashfs-root/usr/share/X11/xkb/symbols/kh new file mode 100644 index 0000000..5c17233 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/kh @@ -0,0 +1,113 @@ +// +// khmer unicode keyboard for XFree86 4.3 or XOrg +// (might work with older versions, not tested) +// +// layout defined by National Information Communications Technology Development Authority (NiDA) +// http://www.nida.gov.kh +// +// version: 1.0.1 +// +// date: 14.09.2005 +// +// author: Jens Herden (jens at khmeros.info) +// +// +// understanding the symbols: +// +// 0x100yyyy = unicode, yyyy is hexcode +// codes that are not assigned in unicode (0x10017fb-0x10017ff), +// are used to make compositions for special vowels +// +// voidsymbol = no symbol for this combination +// +// all other symbol are defined in: /usr/X11/include/X11/keysymdef.h +// but with a leading 'XK_' +// + +default partial alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Khmer (Cambodia)"; + +// there are four levels defined: +// +// normal shift right-alt right-alt + shift +// + +// keys: `1234567890-=\ + key { [ guillemotleft, guillemotright, 0x100200d, voidsymbol ] }; + key { [ 0x10017e1, exclam, 0x100200c, 0x10017f1 ] }; + key { [ 0x10017e2, 0x10017d7, at, 0x10017f2 ] }; + key { [ 0x10017e3, quotedbl, 0x10017d1, 0x10017f3 ] }; + key { [ 0x10017e4, 0x10017db, dollar, 0x10017f4 ] }; + key { [ 0x10017e5, percent, EuroSign, 0x10017f5 ] }; + key { [ 0x10017e6, 0x10017cd, 0x10017d9, 0x10017f6 ] }; + key { [ 0x10017e7, 0x10017d0, 0x10017da, 0x10017f7 ] }; + key { [ 0x10017e8, 0x10017cf, asterisk, 0x10017f8 ] }; + key { [ 0x10017e9, parenleft, braceleft, 0x10017f9 ] }; + key { [ 0x10017e0, parenright, braceright, 0x10017f0 ] }; + key { [ 0x10017a5, 0x10017cc, x, voidsymbol ] }; + key { [ 0x10017b2, equal, 0x10017ce, voidsymbol ] }; + key { [ 0x10017ae, 0x10017ad, backslash, voidsymbol ] }; + +// keys: qwertyuiop[] + key { [ 0x1001786, 0x1001788, 0x10017dc, 0x10019e0 ] }; + key { [ 0x10017b9, 0x10017ba, 0x10017dd, 0x10019e1 ] }; + key { [ 0x10017c1, 0x10017c2, 0x10017af, 0x10019e2 ] }; + key { [ 0x100179a, 0x10017ac, 0x10017ab, 0x10019e3 ] }; + key { [ 0x100178f, 0x1001791, 0x10017a8, 0x10019e4 ] }; + key { [ 0x1001799, 0x10017bd, voidsymbol, 0x10019e5 ] }; + key { [ 0x10017bb, 0x10017bc, voidsymbol, 0x10019e6 ] }; + key { [ 0x10017b7, 0x10017b8, 0x10017a6, 0x10019e7 ] }; + key { [ 0x10017c4, 0x10017c5, 0x10017b1, 0x10019e8 ] }; + key { [ 0x1001795, 0x1001797, 0x10017b0, 0x10019e9 ] }; + key { [ 0x10017c0, 0x10017bf, 0x10017a9, 0x10019ea ] }; + key { [ 0x10017aa, 0x10017a7, 0x10017b3, 0x10019eb ] }; + +// keys: asdfghjkl;' + key { [ 0x10017b6, 0x10017ff, voidsymbol, 0x10019ec ] }; + key { [ 0x100179f, 0x10017c3, voidsymbol, 0x10019ed ] }; + key { [ 0x100178a, 0x100178c, voidsymbol, 0x10019ee ] }; + key { [ 0x1001790, 0x1001792, voidsymbol, 0x10019ef ] }; + key { [ 0x1001784, 0x10017a2, voidsymbol, 0x10019f0 ] }; + key { [ 0x10017a0, 0x10017c7, voidsymbol, 0x10019f1 ] }; + key { [ 0x10017d2, 0x1001789, voidsymbol, 0x10019f2 ] }; + key { [ 0x1001780, 0x1001782, 0x100179d, 0x10019f3 ] }; + key { [ 0x100179b, 0x10017a1, voidsymbol, 0x10019f4 ] }; + key { [ 0x10017be, 0x10017fe, 0x10017d6, 0x10019f5 ] }; + key { [ 0x10017cb, 0x10017c9, 0x10017c8, 0x10019f6 ] }; + +// keys: zxcvbnm,./ + key { [ 0x100178b, 0x100178d, voidsymbol, 0x10019f7 ] }; + key { [ 0x1001781, 0x1001783, voidsymbol, 0x10019f8 ] }; + key { [ 0x1001785, 0x1001787, voidsymbol, 0x10019f9 ] }; + key { [ 0x100179c, 0x10017fd, voidsymbol, 0x10019fa ] }; + key { [ 0x1001794, 0x1001796, 0x100179e, 0x10019fb ] }; + key { [ 0x1001793, 0x100178e, voidsymbol, 0x10019fc ] }; + key { [ 0x1001798, 0x10017c6, voidsymbol, 0x10019fd ] }; + key { [ 0x10017fc, 0x10017fb, comma, 0x10019fe ] }; + key { [ 0x10017d4, 0x10017d5, period, 0x10019ff ] }; + key { [ 0x10017ca, question, slash, voidsymbol ] }; + + key { [ 0x100200b, space, 0x10000a0, voidsymbol ] }; + key { [ Alt_R ] }; + +// third level with right-Alt + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + include "kh(basic)" + +// Contact Walter@laptop.org + + key { [ 0x10017be, 0x10017c8, 0x10017d6, 0x10019f5 ] }; + key { [ 0x10017e1, 0x100200c, exclam, 0x10017f1 ] }; + key { [ 0x10017e3, 0x10017d1, quotedbl, 0x10017f3 ] }; + key { [ 0x10017e5, EuroSign, percent, 0x10017f5 ] }; + key { [ 0x10017b2, 0x10017ce, equal, voidsymbol ] }; + + //language key + include "group(olpc)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/kpdl b/squashfs-root/usr/share/X11/xkb/symbols/kpdl new file mode 100644 index 0000000..968dbd2 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/kpdl @@ -0,0 +1,102 @@ +// The key is a mess. +// It was probably originally meant to be a decimal separator. +// Except since it was declared by USA people it didn't use the original +// SI separator "," but a "." (since then the USA managed to f-up the SI +// by making "." an accepted alternative, but standards still use "," as +// default) +// As a result users of SI-abiding countries expect either a "." or a "," +// or a "decimal_separator" which may or may not be translated in one of the +// above depending on applications. +// It's not possible to define a default per-country since user expectations +// depend on the conflicting choices of their most-used applications, +// operating system, etc. Therefore it needs to be a configuration setting +// Copyright © 2007 Nicolas Mailhot + + +// Legacy #1 +// This assumes KP_Decimal will be translated in a dot +partial keypad_keys +xkb_symbols "dot" { + + key.type[Group1]="KEYPAD" ; + + key { [ KP_Delete, KP_Decimal ] }; // +}; + + +// Legacy #2 +// This assumes KP_Separator will be translated in a comma +partial keypad_keys +xkb_symbols "comma" { + + key.type[Group1]="KEYPAD" ; + + key { [ KP_Delete, KP_Separator ] }; // +}; + + +// Period , usual keyboard serigraphy in most countries +partial keypad_keys +xkb_symbols "dotoss" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Delete, period, comma, 0x100202F ] }; // . , ⍽ (narrow no-break space) +}; + + +// Period , usual keyboard serigraphy in most countries, latin-9 restriction +partial keypad_keys +xkb_symbols "dotoss_latin9" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Delete, period, comma, nobreakspace ] }; // . , ⍽ (no-break space) +}; + + +// Comma , what most non anglo-saxon people consider the real separator +partial keypad_keys +xkb_symbols "commaoss" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Delete, comma, period, 0x100202F ] }; // , . ⍽ (narrow no-break space) +}; + + +// Momayyez : Bahrain, Iran, Iraq, Kuwait, Oman, Qatar, Saudi Arabia, Syria, UAE +partial keypad_keys +xkb_symbols "momayyezoss" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Delete, 0x100066B, comma, 0x100202F ] }; // ? , ⍽ (narrow no-break space) +}; + + +// Abstracted , pray everything will work out (it usually does not) +partial keypad_keys +xkb_symbols "kposs" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Delete, KP_Decimal, KP_Separator, 0x100202F ] }; // ? ? ⍽ (narrow no-break space) +}; + +// Spreadsheets may be configured to use the dot as decimal +// punctuation, comma as a thousands separator and then semi-colon as +// the list separator. Of these, dot and semi-colon is most important +// when entering data by the keyboard; the comma can then be inferred +// and added to the presentation afterwards. Using semi-colon as a +// general separator may in fact be preferred to avoid ambiguities +// in data files. Most times a decimal separator is hard-coded, it +// seems to be period, probably since this is the syntax used in +// (most) programming languages. +partial keypad_keys +xkb_symbols "semi" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ NoSymbol, NoSymbol, semicolon ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/kr b/squashfs-root/usr/share/X11/xkb/symbols/kr new file mode 100644 index 0000000..e554af0 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/kr @@ -0,0 +1,59 @@ +default alphanumeric_keys +xkb_symbols "kr106" { + include "us" + name[Group1]= "Korean"; + include "kr(hw_keys)" +}; + +alphanumeric_keys +xkb_symbols "kr104" { + include "us" + name[Group1]= "Korean (101/104 key compatible)"; + include "kr(ralt_hangul)" + include "kr(rctrl_hanja)" +}; + +partial function_keys +xkb_symbols "hw_keys" { + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; +}; + +partial function_keys +xkb_symbols "ralt_hangul" { + replace key { + type[Group1] = "ONE_LEVEL", + symbols[Group1]= [ Hangul ] + }; +}; + +partial function_keys +xkb_symbols "rctrl_hangul" { + replace key { + type[Group1] = "ONE_LEVEL", + symbols[Group1]= [ Hangul ] + }; +}; + +partial function_keys +xkb_symbols "ralt_hanja" { + replace key { + type[Group1] = "ONE_LEVEL", + symbols[Group1]= [ Hangul_Hanja ] + }; +}; + +partial function_keys +xkb_symbols "rctrl_hanja" { + replace key { + type[Group1] = "ONE_LEVEL", + symbols[Group1]= [ Hangul_Hanja ] + }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/kr(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/kz b/squashfs-root/usr/share/X11/xkb/symbols/kz new file mode 100644 index 0000000..623a8ce --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/kz @@ -0,0 +1,245 @@ +// Based on http://www.sci.kz/~sairan/keyboard/kzkbd.html +// Baurzhan Ismagulov +// + +// TODO: +// 1. AltGr with TLDE and LSGT. +// 2. Dead key for ruskaz and kazrus. +// 3. Ctrl + . +// 4. Alt-Tab. + +// RST KazSSR 903-90 +// levels 3 and 4 are non-standard extensions +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1] = "Kazakh"; + +key.type[group1] = "FOUR_LEVEL"; + + key { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] }; + key { [ quotedbl, exclam ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ backslash, slash ] }; + key { [ numerosign, question ] }; + key { [ less, greater, bar, brokenbar ] }; + +key.type[group1] = "ALPHABETIC"; + + key { [ Cyrillic_schwa, Cyrillic_SCHWA ] }; + key { [ Ukrainian_i, Ukrainian_I ] }; + key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; + key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; + key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; + key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; + key { [ Cyrillic_ka_descender, Cyrillic_KA_descender ] }; + key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; + key { [ Cyrillic_shha, Cyrillic_SHHA ] }; + + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; +}; + +// Kikkarin KZ1 +partial alphanumeric_keys +xkb_symbols "ruskaz" { + + name[Group1] = "Russian (Kazakhstan, with Kazakh)"; + +key.type[group1] = "FOUR_LEVEL"; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numerosign, numbersign ] }; + key { [ 4, semicolon, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, colon, asciicircum ] }; + key { [ 7, question, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ backslash, slash, bar ] }; + key { [ period, comma, slash, question ] }; + key { [ less, greater, bar, brokenbar ] }; + +key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] }; + key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; + key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_en_descender, Cyrillic_EN_descender ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; +}; + +// Kikkarin KZ2 +partial alphanumeric_keys +xkb_symbols "kazrus" { + + name[Group1] = "Kazakh (with Russian)"; + +key.type[group1] = "FOUR_LEVEL"; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numerosign, numbersign ] }; + key { [ 4, semicolon, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, colon, asciicircum ] }; + key { [ 7, question, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ backslash, slash, bar ] }; + key { [ period, comma, slash, question ] }; + key { [ less, greater, bar, brokenbar ] }; + +key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; + key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; + key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ka_descender, Cyrillic_KA_descender, Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Ukrainian_i, Ukrainian_I, Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + +// Contact: Walter Bender + +// We moved the Cyrillic IO off of the Tilde Key as an Alt-GR character +// and moved it onto the Backslash key, making Backslash and Bar available +// through the Latin side of the keyboard. + + include "kz(basic)" + + key { [ parenleft, parenright ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; + + include "group(olpc)" +}; + +partial alphanumeric_keys +xkb_symbols "ext" { + +// Levels 3 and 4 represent main keyboard's numeric part of US layout, +// parens are duplicated for consistency. + + include "kz(basic)" + name[Group1] = "Kazakh (extended)"; + +key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] }; + key { [ quotedbl, exclam, 1, exclam ] }; + key { [ Cyrillic_schwa, Cyrillic_SCHWA, 2, at ] }; + key { [ Ukrainian_i, Ukrainian_I, 3, numbersign ] }; + key { [ Cyrillic_en_descender, Cyrillic_EN_descender, 4, dollar ] }; + key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, 5, percent ] }; + key { [ comma, semicolon, 6, asciicircum ] }; + key { [ period, colon, 7, ampersand ] }; + key { [ Cyrillic_u_straight, Cyrillic_U_straight, 8, asterisk ] }; + key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, 9, parenleft ] }; + key { [ Cyrillic_ka_descender, Cyrillic_KA_descender, 0, parenright ] }; + key { [ Cyrillic_o_bar, Cyrillic_O_bar, minus, underscore ] }; + key { [ Cyrillic_shha, Cyrillic_SHHA, equal, plus ] }; + key { [ backslash, slash, bar, brokenbar ] }; + key { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright ] }; + key { [ Cyrillic_e, Cyrillic_E, apostrophe ] }; + key { [ Cyrillic_be, Cyrillic_BE, less ] }; + key { [ Cyrillic_yu, Cyrillic_YU, greater ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/la b/squashfs-root/usr/share/X11/xkb/symbols/la new file mode 100644 index 0000000..32a8501 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/la @@ -0,0 +1,135 @@ +// Lao keymap, by Anousak Souphavanh + +default partial alphanumeric_keys +xkb_symbols "basic" { + + // This keymap describes the Lao keyboard standard, + // which is [kind of] widely used in Laos. + + name[Group1]= "Lao"; + + key { [ 0x100200D ]}; + key { [ 0x1000ea2, 0x1000ed1 ]}; + key { [ 0x1000ea2, 0x1000ed1 ]}; + key { [ 0x1000e9f, 0x1000ed2 ]}; + key { [ 0x1000ec2, 0x1000ed3 ]}; + key { [ 0x1000e96, 0x1000ed4 ]}; + key { [ 0x1000eb8, 0x1000ecc ]}; + key { [ 0x1000eb9, 0x1000ebc ]}; + key { [ 0x1000e84, 0x1000ed5 ]}; + key { [ 0x1000e95, 0x1000ed6 ]}; + key { [ 0x1000e88, 0x1000ed7 ]}; + key { [ 0x1000e82, 0x1000ed8 ]}; + key { [ 0x1000e8a, 0x1000ed9 ]}; + key { [ 0x1000ecd ]}; + + key { [ 0x1000ebb ]}; + key { [ 0x1000ec4, 0x1000ed0 ]}; + key { [ 0x1000eb3 ]}; + key { [ 0x1000e9e, underscore ]}; + key { [ 0x1000eb0, plus ]}; + key { [ 0x1000eb4 ]}; + key { [ 0x1000eb5 ]}; + key { [ 0x1000ea3, 0x1000eae ]}; + key { [ 0x1000e99 ]}; + key { [ 0x1000e8d, 0x1000ebd ]}; + key { [ 0x1000e9a, minus ]}; + key { [ 0x1000ea5, braceright ]}; + key { [ 0x1000edc, 0x1000edd ]}; + + key { [ 0x1000eb1 ]}; + key { [ 0x1000eab, semicolon ]}; + key { [ 0x1000e81, period ]}; + key { [ 0x1000e94, comma ]}; + key { [ 0x1000ec0, colon ]}; + key { [ 0x1000ec9, 0x1000eca ]}; + key { [ 0x1000ec8, 0x1000ecb ]}; + key { [ 0x1000eb2, exclam ]}; + key { [ 0x1000eaa, question ]}; + key { [ 0x1000ea7, percent ]}; + key { [ 0x1000e87, equal ]}; + + key { [ 0x1000e9c, 0x10020ad ]}; + key { [ 0x1000e9b, parenleft ]}; + key { [ 0x1000ec1, 0x1000eaf ]}; + key { [ 0x1000ead ]}; + key { [ 0x1000eb6 ]}; + key { [ 0x1000eb7 ]}; + key { [ 0x1000e97, 0x1000ec6 ]}; + key { [ 0x1000ea1, grave ]}; + key { [ 0x1000ec3, dollar ]}; + key { [ 0x1000e9d, parenright ]}; +}; + + +partial +xkb_symbols "stea" { + + // This keymap describes the proposed Lao keyboard standard by + // the PAN Localization Project. + // Science Technology and Environment Agency of Lao PDR + // National University Computer and Emergency Science of Pakistan + // International Development Research Center + // Caveat: assigning multiple codepoints to a single key does not + // work in XKB. Therefore the combining codepoint assignments + // have been omitted. + + name[Group1]= "Lao (STEA proposed standard layout)"; + + key { [ quotedbl, apostrophe ]}; + key { [ 0x1000ea2, 1, 0x1000ed1 ]}; + key { [ 0x1000e9f, 2, 0x1000ed2 ]}; + key { [ 0x1000ec2, 3, 0x1000ed3 ]}; + key { [ 0x1000e96, 4, 0x1000ed4 ]}; + key { [ 0x1000eb8, 0x1000ecc, 0x1000ed5 ]}; + key { [ 0x1000eb9, 0x1000ebc, 0x1000ed6 ]}; + key { [ 0x1000e84, 5, 0x1000ed7 ]}; + key { [ 0x1000e95, 6, 0x1000ed8 ]}; + key { [ 0x1000e88, 7, 0x1000ed9 ]}; + key { [ 0x1000e82, 8, 0x1000ed0 ]}; + key { [ 0x1000e8a, 9 ]}; + key { [ 0x1000ecd ]}; + + key { [ 0x1000ebb ]}; + key { [ 0x1000ec4, 0 ]}; + key { [ 0x1000eb3, asterisk ]}; + key { [ 0x1000e9e, underscore ]}; + key { [ 0x1000eb0, plus ]}; + key { [ 0x1000eb4 ]}; + key { [ 0x1000eb5 ]}; + key { [ 0x1000eae, 0x1000ea3 ]}; + key { [ 0x1000e99, 0x1000edc ]}; + key { [ 0x1000e8d, 0x1000ebd ]}; + key { [ 0x1000e9a, minus ]}; + key { [ 0x1000ea5 ]}; + key { [ slash, backslash ]}; + + key { [ 0x1000eb1 ]}; + key { [ 0x1000eab, semicolon ]}; + key { [ 0x1000e81, period ]}; + key { [ 0x1000e94, comma ]}; + key { [ 0x1000ec0, colon ]}; + key { [ 0x1000ec9, 0x1000eca ]}; + key { [ 0x1000ec8, 0x1000ecb ]}; + key { [ 0x1000eb2, exclam ]}; + key { [ 0x1000eaa, question ]}; + key { [ 0x1000ea7, percent ]}; + key { [ 0x1000e87, equal ]}; + + key { [ 0x1000e9c, 0x10020ad ]}; + key { [ 0x1000e9b, parenleft ]}; + key { [ 0x1000ec1, 0x1000eaf ]}; + key { [ 0x1000ead, x ]}; + key { [ 0x1000eb6 ]}; + key { [ 0x1000eb7 ]}; + key { [ 0x1000e97, 0x1000ec6 ]}; + key { [ 0x1000ea1, 0x1000edd ]}; + key { [ 0x1000ec3, dollar ]}; + key { [ 0x1000e9d, parenright ]}; + + key { [ space, nobreakspace, nobreakspace ]}; + + key { [ comma, period ]}; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/latam b/squashfs-root/usr/share/X11/xkb/symbols/latam new file mode 100644 index 0000000..2375b8f --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/latam @@ -0,0 +1,129 @@ +// based on a keyboard +// Modified for a real Latin American Keyboard by Fabian Mandelbaum + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin(type4)" + + name[Group1]="Spanish (Latin American)"; + + key { [ 1, exclam, bar, exclamdown ] }; + key { [ 3, numbersign, periodcentered, sterling ] }; + key { [ 4, dollar, asciitilde, dollar ] }; + key { [ 6, ampersand, notsign, fiveeighths ] }; + key { [apostrophe, question, backslash, questiondown ] }; + key { [questiondown, exclamdown, dead_cedilla, dead_ogonek] }; + + key { [dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ] }; + key { [ plus, asterisk, asciitilde, dead_macron ] }; + + key { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] }; + key { [ braceleft, bracketleft, dead_circumflex, braceleft] }; + key { [ bar, degree, notsign, notsign ] }; + + key { [braceright, bracketright, dead_grave, braceright ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + include "latam(basic)" + + key { [dead_acute, dead_diaeresis, braceleft, braceleft ] }; + key { [dead_grave, dead_circumflex, bracketleft, dead_abovering ] }; +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + include "latam(Sundeadkeys)" + name[Group1]="Spanish (Latin American, with Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + include "latam(basic)" + + name[Group1]="Spanish (Latin American, no dead keys)"; + + key { [questiondown, exclamdown, cedilla, ogonek ] }; + key { [ grave, asciicircum, bracketleft, degree ] }; + key { [ plus, asterisk, bracketright, macron ] }; + key { [ ntilde, Ntilde, asciitilde, doubleacute ] }; + key { [ acute, diaeresis, braceleft, braceleft ] }; + key { [ ccedilla, Ccedilla, braceright, breve ] }; + key { [ minus, underscore, dead_belowdot, abovedot ] }; +}; + +partial alphanumeric_keys +xkb_symbols "deadtilde" { + + include "latam(basic)" + + name[Group1]="Spanish (Latin American, dead tilde)"; + + key { [ plus, asterisk, dead_tilde, dead_macron ] }; +}; + +// Latin American Spanish Dvorak mapping (note R-H exchange) +partial alphanumeric_keys +xkb_symbols "dvorak" { + + name[Group1]="Spanish (Latin American, Dvorak)"; + + key {[ bar, degree, notsign, notsign ]}; + key {[ 1, exclam, bar, exclamdown ]}; + key {[ 2, quotedbl, at, oneeighth ]}; + key {[ 3, numbersign, periodcentered, sterling ]}; + key {[ 4, dollar, asciitilde, dollar ]}; + key {[ 5, percent, onehalf, threeeighths ]}; + key {[ 6, ampersand, notsign, fiveeighths ]}; + key {[ 7, slash, braceleft, seveneighths ]}; + key {[ 8, parenleft, bracketleft, trademark ]}; + key {[ 9, parenright, bracketright, plusminus ]}; + key {[ 0, equal, braceright, degree ]}; + key {[ apostrophe, question, backslash, questiondown ]}; + key {[ questiondown, exclamdown, dead_cedilla, dead_ogonek ]}; + + key {[ period, colon, at ]}; + key {[ comma, semicolon ]}; + key {[ ntilde, Ntilde, lstroke, Lstroke ]}; + key {[ p, P, paragraph ]}; + key {[ y, Y, yen ]}; + key {[ f, F, tslash, Tslash ]}; + key {[ g, G, dstroke, Dstroke ]}; + key {[ c, C, cent, copyright ]}; + key {[ h, H, hstroke, Hstroke ]}; + key {[ l, L, sterling ]}; + key {[ dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ]}; + key {[ plus, asterisk, asciitilde, dead_macron ]}; + + key {[ a, A, ae, AE ]}; + key {[ o, O, oslash, Oslash ]}; + key {[ e, E, EuroSign ]}; + key {[ u, U, aring, Aring ]}; + key {[ i, I, oe, OE ]}; + key {[ d, D, eth, ETH ]}; + key {[ r, R, registered, trademark ]}; + key {[ t, T, thorn, THORN ]}; + key {[ n, N, eng, ENG ]}; + key {[ s, S, ssharp, section ]}; + key {[ braceleft, bracketleft, dead_circumflex, braceleft ]}; + key {[ braceright, bracketright, dead_grave, braceright ]}; + + key {[ less, greater, guillemotleft, guillemotright ]}; + key {[ minus, underscore, hyphen, macron ]}; + key {[ q, Q, currency ]}; + key {[ j, J ]}; + key {[ k, K, kra ]}; + key {[ x, X, multiply, division ]}; + key {[ b, B ]}; + key {[ m, M, mu ]}; + key {[ w, W ]}; + key {[ v, V ]}; + key {[ z, Z ]}; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/latin b/squashfs-root/usr/share/X11/xkb/symbols/latin new file mode 100644 index 0000000..d88e3c4 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/latin @@ -0,0 +1,256 @@ +// Common Latin alphabet layout + +default partial +xkb_symbols "basic" { + + key { [ 1, exclam, onesuperior, exclamdown ] }; + key { [ 2, at, twosuperior, oneeighth ] }; + key { [ 3, numbersign, threesuperior, sterling ] }; + key { [ 4, dollar, onequarter, dollar ] }; + key { [ 5, percent, onehalf, threeeighths ] }; + key { [ 6, asciicircum, threequarters, fiveeighths ] }; + key { [ 7, ampersand, braceleft, seveneighths ] }; + key { [ 8, asterisk, bracketleft, trademark ] }; + key { [ 9, parenleft, bracketright, plusminus ] }; + key { [ 0, parenright, braceright, degree ] }; + key { [ minus, underscore, backslash, questiondown ] }; + key { [ equal, plus, dead_cedilla, dead_ogonek ] }; + + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ e, E, e, E ] }; + key { [ r, R, paragraph, registered ] }; + key { [ t, T, tslash, Tslash ] }; + key { [ y, Y, leftarrow, yen ] }; + key { [ u, U, downarrow, uparrow ] }; + key { [ i, I, rightarrow, idotless ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, thorn, THORN ] }; + key { [bracketleft, braceleft, dead_diaeresis, dead_abovering ] }; + key { [bracketright, braceright, dead_tilde, dead_macron ] }; + + key { [ a, A, ae, AE ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, dstroke, ordfeminine ] }; + key { [ g, G, eng, ENG ] }; + key { [ h, H, hstroke, Hstroke ] }; + key { [ j, J, dead_hook, dead_horn ] }; + key { [ k, K, kra, ampersand ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ semicolon, colon, dead_acute, dead_doubleacute ] }; + key { [apostrophe, quotedbl, dead_circumflex, dead_caron ] }; + key { [ grave, asciitilde, notsign, notsign ] }; + + key { [ backslash, bar, dead_grave, dead_breve ] }; + key { [ z, Z, guillemotleft, less ] }; + key { [ x, X, guillemotright, greater ] }; + key { [ c, C, cent, copyright ] }; + key { [ v, V, leftdoublequotemark, leftsinglequotemark ] }; + key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; + key { [ n, N, n, N ] }; + key { [ m, M, mu, masculine ] }; + key { [ comma, less, horizconnector, multiply ] }; + key { [ period, greater, periodcentered, division ] }; + key { [ slash, question, dead_belowdot, dead_abovedot ] }; + +}; + +// Northern Europe ( Danish, Finnish, Norwegian, Swedish) common layout + +partial +xkb_symbols "type2" { + + include "latin" + + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, quotedbl, at, twosuperior ] }; + key { [ 3, numbersign, sterling, threesuperior] }; + key { [ 4, currency, dollar, onequarter ] }; + key { [ 5, percent, onehalf, cent ] }; + key { [ 6, ampersand, yen, fiveeighths ] }; + key { [ 7, slash, braceleft, division ] }; + key { [ 8, parenleft, bracketleft, guillemotleft] }; + key { [ 9, parenright, bracketright, guillemotright] }; + key { [ 0, equal, braceright, degree ] }; + + key { [ e, E, EuroSign, cent ] }; + key { [ r, R, registered, registered ] }; + key { [ t, T, thorn, THORN ] }; + key { [ o, O, oe, OE ] }; + key { [ aring, Aring, dead_diaeresis, dead_abovering ] }; + key { [dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] }; + + key { [ a, A, ordfeminine, masculine ] }; + + key { [ c, C, copyright, copyright ] }; + key { [ comma, semicolon, dead_cedilla, dead_ogonek ] }; + key { [ period, colon, periodcentered, dead_abovedot ] }; + key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; +}; + +// Slavic Latin ( Albanian, Croatian, Polish, Slovene, Yugoslav) +// common layout + +partial +xkb_symbols "type3" { + + include "latin" + + key { [ q, Q, backslash, Greek_OMEGA ] }; + key { [ w, W, bar, Lstroke ] }; + key { [ z, Z, leftarrow, yen ] }; + + key { [ f, F, bracketleft, ordfeminine ] }; + key { [ g, G, bracketright, ENG ] }; + key { [ k, K, lstroke, ampersand ] }; + + key { [ y, Y, guillemotleft, less ] }; + key { [ v, V, at, grave ] }; + key { [ b, B, braceleft, apostrophe ] }; + key { [ n, N, braceright, braceright ] }; + key { [ m, M, section, masculine ] }; + key { [ comma, semicolon, less, multiply ] }; + key { [ period, colon, greater, division ] }; +}; + +// Another common Latin layout +// (German, Estonian, Spanish, Icelandic, Italian, Latin American, Portuguese) + +partial +xkb_symbols "type4" { + + include "latin" + + key { [ 2, quotedbl, at, oneeighth ] }; + key { [ 6, ampersand, notsign, fiveeighths ] }; + key { [ 7, slash, braceleft, seveneighths ] }; + key { [ 8, parenleft, bracketleft, trademark ] }; + key { [ 9, parenright, bracketright, plusminus ] }; + key { [ 0, equal, braceright, degree ] }; + + key { [ e, E, EuroSign, cent ] }; + + key { [ comma, semicolon, horizconnector, multiply ] }; + key { [ period, colon, periodcentered, division ] }; + key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; +}; + +partial +xkb_symbols "nodeadkeys" { + + key { [ equal, plus, cedilla, ogonek ] }; + key { [bracketleft, braceleft, diaeresis, degree ] }; + key { [bracketright, braceright, asciitilde, macron ] }; + key { [ semicolon, colon, acute, doubleacute ] }; + key { [apostrophe, quotedbl, asciicircum, caron ] }; + key { [ backslash, bar, grave, breve ] }; + key { [ slash, question, dead_belowdot, abovedot ] }; +}; + +partial +xkb_symbols "type2_nodeadkeys" { + + include "latin(nodeadkeys)" + + key { [ aring, Aring, diaeresis, degree ] }; + key { [ diaeresis, asciicircum, asciitilde, caron ] }; + key { [ comma, semicolon, cedilla, ogonek ] }; + key { [ period, colon, periodcentered, abovedot ] }; + key { [ minus, underscore, dead_belowdot, abovedot ] }; +}; + +partial +xkb_symbols "type3_nodeadkeys" { + + include "latin(nodeadkeys)" +}; + +partial +xkb_symbols "type4_nodeadkeys" { + + include "latin(nodeadkeys)" + + key { [ minus, underscore, dead_belowdot, abovedot ] }; +}; + +// Added 2008.03.05 by Marcin Woliński +// See http://marcinwolinski.pl/keyboard/ for a description. +// Used by pl(intl) +// +// ┌─────┐ +// │ 2 4 │ 2 = Shift, 4 = Level3 + Shift +// │ 1 3 │ 1 = Normal, 3 = Level3 +// └─────┘ +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ~ ~ │ ! ' │ @ " │ # ˝ │ $ ¸ │ % ˇ │ ^ ^ │ & ˘ │ * ̇ │ ( ̣ │ ) ° │ _ ¯ │ + ˛ ┃ ⌫ Back- ┃ +// │ ` ` │ 1 ¡ │ 2 © │ 3 • │ 4 § │ 5 € │ 6 ¢ │ 7 − │ 8 × │ 9 ÷ │ 0 ° │ - – │ = — ┃ space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { « │ } » ┃ Enter ┃ +// ┃Tab ↹ ┃ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ ‹ │ ] › ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ A │ S │ D │ F │ G │ H │ J │ K │ L │ : “ │ " ” │ | ¶ ┃ ┃ +// ┃Caps ⇬ ┃ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; ‘ │ ' ’ │ \ ┃ ┃ +// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ │ Z │ X │ C │ V │ B │ N │ M │ < „ │ > · │ ? ¿ ┃ ┃ +// ┃Shift ⇧ │ z │ x │ c │ v │ b │ n │ m │ , ‚ │ . … │ / ⁄ ┃Shift ⇧ ┃ +// ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Space ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial +xkb_symbols "intl" { + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ 1, exclam, exclamdown, dead_acute ] }; + key { [ 2, at, copyright, dead_diaeresis ] }; + key { [ 3, numbersign, U2022, dead_doubleacute ] }; // U+2022 is bullet (the name bullet does not work) + key { [ 4, dollar, section, dead_cedilla ] }; + key { [ 5, percent, EuroSign, dead_caron ] }; + key { [ 6, asciicircum, cent, dead_circumflex ] }; + key { [ 7, ampersand, U2212, dead_breve ] }; // U+2212 is MINUS SIGN + key { [ 8, asterisk, multiply, dead_abovedot ] }; + key { [ 9, parenleft, division, dead_belowdot ] }; + key { [ 0, parenright, degree, dead_abovering ] }; + key { [ minus, underscore, endash, dead_macron ] }; + key { [ equal, plus, emdash, dead_ogonek ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [bracketleft, braceleft, U2039, guillemotleft ] }; + key { [bracketright, braceright, U203A, guillemotright ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon, leftsinglequotemark, leftdoublequotemark ] }; + key { [apostrophe, quotedbl, rightsinglequotemark, rightdoublequotemark ] }; + + key { [ backslash, bar, NoSymbol, paragraph ] }; + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less, singlelowquotemark, doublelowquotemark ] }; + key { [ period, greater, ellipsis, periodcentered ] }; + key { [ slash, question, U2044, questiondown ] }; // U+2044 is FRACTION SLASH + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/level3 b/squashfs-root/usr/share/X11/xkb/symbols/level3 new file mode 100644 index 0000000..1aef970 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/level3 @@ -0,0 +1,211 @@ +// These partial variants assign ISO_Level3_Shift to various XKB keycodes +// so that the third shift level can be reached. + +// The default behaviour: +// the right Alt key (AltGr) chooses the third symbol engraved on a key. +default partial modifier_keys +xkb_symbols "ralt_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// Ensure a mapping to a real modifier for LevelThree. +partial modifier_keys +xkb_symbols "modifier_mapping" { + replace key { + type[Group1] = "ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + modifier_map Mod5 { }; +}; + +// The right Alt key never chooses the third level. +// This option attempts to undo the effect of a layout's inclusion of +// 'ralt_switch'. You may want to also select another level3 option +// to map the level3 shift to some other key. +partial modifier_keys +xkb_symbols "ralt_alt" { + key { + type[Group1]="TWO_LEVEL", + type[Group2]="TWO_LEVEL", + type[Group3]="TWO_LEVEL", + type[Group4]="TWO_LEVEL", + symbols[Group1] = [ Alt_R, Meta_R ], + symbols[Group2] = [ Alt_R, Meta_R ], + symbols[Group3] = [ Alt_R, Meta_R ], + symbols[Group4] = [ Alt_R, Meta_R ] + }; + modifier_map Mod1 { }; +}; + +// The right Alt key (while pressed) chooses the third shift level, +// and Compose is mapped to its second level. +partial modifier_keys +xkb_symbols "ralt_switch_multikey" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift, Multi_key ] + }; + include "level3(modifier_mapping)" +}; + +// A special case of the right-Alt switch -- for use with grp:alts_toggle. +hidden partial modifier_keys +xkb_symbols "ralt_switch_for_alts_toggle" { + virtual_modifiers LAlt, AltGr; + key { + type[Group1]="PC_RALT_LEVEL2", + symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ], + virtualMods= LAlt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ], + virtualMods= AltGr + }; + include "level3(modifier_mapping)" +}; + +// Either Alt key (while pressed) chooses the third shift level. +// (To be used mostly to imitate Mac OS functionality.) +partial modifier_keys +xkb_symbols "alt_switch" { + include "level3(lalt_switch)" + include "level3(ralt_switch)" +}; + +// The left Alt key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "lalt_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The right Ctrl key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The Menu key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "menu_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// Either Win key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "win_switch" { + include "level3(lwin_switch)" + include "level3(rwin_switch)" +}; + +// The left Win key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "lwin_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The right Win key (while pressed) chooses the third shift level. +// (When using this map, you should set your keyboard as pc101 or pc102 +// instead of pc104 or pc105.) +partial modifier_keys +xkb_symbols "rwin_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The Enter key on the kepypad (while pressed) chooses the third shift level. +// (This is especially useful for Mac laptops which miss the right Alt key.) +partial modifier_keys +xkb_symbols "enter_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The CapsLock key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "caps_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The Backslash key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "bksl_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The Less/Greater key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "lsgt_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The CapsLock key (while pressed) chooses the third shift level, +// and latches when pressed together with another third-level chooser. +partial modifier_keys +xkb_symbols "caps_switch_latch" { + key { + type[Group1]="THREE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] + }; + include "level3(modifier_mapping)" +}; + +// The Backslash key (while pressed) chooses the third shift level, +// and latches when pressed together with another third-level chooser. +partial modifier_keys +xkb_symbols "bksl_switch_latch" { + key { + type[Group1]="THREE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] + }; + include "level3(modifier_mapping)" +}; + +// The Less/Greater key (while pressed) chooses the third shift level, +// and latches when pressed together with another third-level chooser. +partial modifier_keys +xkb_symbols "lsgt_switch_latch" { + key { + type[Group1]="THREE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] + }; + include "level3(modifier_mapping)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/level5 b/squashfs-root/usr/share/X11/xkb/symbols/level5 new file mode 100644 index 0000000..ec8c9a9 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/level5 @@ -0,0 +1,152 @@ +// These partial variants assign ISO_Level5_Shift to various XKB keycodes +// so that the fifth shift level can be reached. + +// The right Ctrl key (while pressed) chooses the fifth shift level. +partial modifier_keys +xkb_symbols "rctrl_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift ] + }; + include "level5(modifier_mapping)" +}; + +// The Less/Greater key (while pressed) chooses the fifth shift level. +partial modifier_keys +xkb_symbols "lsgt_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift ] + }; + include "level5(modifier_mapping)" +}; + +// The right Alt key (while pressed) chooses the fifth shift level. +partial modifier_keys +xkb_symbols "ralt_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift ] + }; + include "level5(modifier_mapping)" +}; + +// The CapsLock key (while pressed) chooses the fifth shift level. +partial modifier_keys +xkb_symbols "caps_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift ] + }; + include "level5(modifier_mapping)" +}; + +// Ensure a mapping to a real modifier for LevelFive. +partial modifier_keys +xkb_symbols "modifier_mapping" { + replace key { + type[Group1] = "ONE_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift ] + }; + modifier_map Mod3 { }; +}; + + +// This adds the definitions needed to create a level5-lock behaviour, using +// the real modifier NumLock as a lock indicator. +// See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK +// See also: compat/level5(level5_lock) +partial modifier_keys +xkb_symbols "lock" { + key.type[Group1] = "ONE_LEVEL"; + include "level5(modifier_mapping)" + replace key { + vmods = NumLock, + symbols[Group1] = [ NoSymbol ], + actions[Group1] = [ SetMods(modifiers=NumLock) ] + }; + modifier_map Mod2 { }; +}; + +// The following modifier keys are used to switch to the third shift level +// and to set a corresponding lock, implemented as NumLock. + +partial modifier_keys +xkb_symbols "lsgt_switch_lock" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "lwin_switch_lock" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "ralt_switch_lock" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "rwin_switch_lock" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "lsgt_switch_lock_cancel" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "lwin_switch_lock_cancel" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "ralt_switch_lock_cancel" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "rwin_switch_lock_cancel" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/lk b/squashfs-root/usr/share/X11/xkb/symbols/lk new file mode 100644 index 0000000..88b6aad --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/lk @@ -0,0 +1,184 @@ +// X Keyboard Extension file for Sinhala (Sri Lanka) (2004-04-22) +// Maintainer : Harshula Jayasuriya +// Last Updated: 2011-05-25 +// This is a phonetic static mapping for a standard US-English keyboard +// (QWERTY) +// http://www.nongnu.org/sinhala/doc/keymaps/sinhala-keyboard_3.html + +// Repaya, Rakaransaya and Yansaya aren't inserted with A-r, R and Y, +// respectively. The problem lies with the XKB infrastructure which +// only allows a one-to-one mapping of keycodes to Unicode codepoints. +// Unfortunately, the 3 mentioned glyphs actually consists of 3 +// Unicode codepoints each. The result is that the user must +// manually construct the glyph by typing each of the 3 codepoints. +// ALT-, represents the 'JOIN' key, it requires +// two codepoints, hence it also has to be manually constructed. +// Similarly, ALT-/ representing the 'TOUCH' key requires +// two codepoints. + +// Repaya = rayanna,AL,ZWJ +// Rakaransaya = AL,ZWJ,rayanna +// Yansaya = AL,ZWJ,yayanna +// JOIN = AL,ZWJ +// TOUCH = ZWJ,AL + +// Where, +// AL = Al Lakuna = ALT-a +// ZWJ = Zero Width Joiner = ALT-/ +// rayanna = r +// yayanna = y + +default partial alphanumeric_keys +xkb_symbols "sin_phonetic" { + + include "us" + name[Group1] = "Sinhala (phonetic)"; + key.type[Group1] = "FOUR_LEVEL"; + + // q - p + key { [ Sinh_ri, Sinh_rii, Sinh_ru2, Sinh_ruu2 ] }; + key { [ Sinh_ae, Sinh_aee, Sinh_ae2, Sinh_aee2 ] }; + key { [ Sinh_e, Sinh_ee, Sinh_e2, Sinh_ee2 ] }; + key { [ Sinh_ra, Sinh_al, Sinh_ra, NoSymbol ] }; + key { [ Sinh_tha, Sinh_thha, Sinh_tta, Sinh_ttha ] }; + key { [ Sinh_ya, Sinh_al, NoSymbol, NoSymbol ] }; + key { [ Sinh_u, Sinh_uu, Sinh_u2, Sinh_uu2 ] }; + key { [ Sinh_i, Sinh_ii, Sinh_i2, Sinh_ii2 ] }; + key { [ Sinh_o, Sinh_oo, Sinh_o2, Sinh_oo2 ] }; + key { [ Sinh_pa, Sinh_pha, NoSymbol, NoSymbol ] }; + + // a - l + key { [ Sinh_a, Sinh_aa, Sinh_al, Sinh_aa2 ] }; + key { [ Sinh_sa, Sinh_sha, Sinh_ssha, NoSymbol ] }; + key { [ Sinh_dha, Sinh_dhha, Sinh_dda, Sinh_ddha ] }; + key { [ Sinh_fa, NoSymbol, Sinh_ai2, Sinh_ai ] }; + key { [ Sinh_ga, Sinh_gha, Sinh_nga, NoSymbol ] }; + key { [ Sinh_ha, Sinh_h2, Sinh_au2, Sinh_au ] }; + key { [ Sinh_ja, Sinh_jha, Sinh_nja, NoSymbol ] }; + key { [ Sinh_ka, Sinh_kha, Sinh_lu, Sinh_luu ] }; + key { [ Sinh_la, Sinh_lla, Sinh_lu2, Sinh_luu2 ] }; + + // z - ? + key { [ Sinh_nya, Sinh_jnya, NoSymbol, NoSymbol ] }; + key { [ Sinh_ndha, Sinh_ndda, NoSymbol, NoSymbol ] }; + key { [ Sinh_ca, Sinh_cha, NoSymbol, NoSymbol ] }; + key { [ Sinh_va, NoSymbol, NoSymbol, NoSymbol ] }; + key { [ Sinh_ba, Sinh_bha, NoSymbol, NoSymbol ] }; + key { [ Sinh_na, Sinh_nna, Sinh_ng, Sinh_ng2 ] }; + key { [ Sinh_ma, Sinh_mba, NoSymbol, NoSymbol ] }; + key { [ any, any, Sinh_al, NoSymbol ] }; + key { [ any, any, Sinh_kunddaliya, NoSymbol ] }; + key { [ any, any, 0x100200d, NoSymbol ] }; + + // Space + include "nbsp(nb2zwnj3s)" + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "tam_unicode" { + include "in(tam_unicode)" + name[Group1]= "Tamil (Sri Lanka, Unicode)"; +}; + +partial alphanumeric_keys +xkb_symbols "tam_TAB" { + include "in(tam_TAB)" + name[Group1]= "Tamil (Sri Lanka, TAB Typewriter)"; +}; + +// SINHALA - US, SUBSTITUTES SOME AND ADDS SOME +// ============================================= +// +// This started as an upgrade to the first romanized version of +// Sinhala called PTS Pali created in the 1860s. PTS requires +// dots and bars on letters that are rare in fonts, and impossible +// to type. Its singular purpose was to print Tripitaka, the +// collection of Buddhist discourses. +// +// This version covers the entire newer Sinhala phoneme chart +// (Hodiya) that became standard just before the end of the 19th +// century. All the phonemes map to the SBCS. It is easy and +// faster than English to type. It overcomes the setback of +// Unicode Sinhala that it is not compatible with Pali and +// Sanskrit because it encodes two ligatures as base letters and +// the SLS1134 specification matching shape and morpheme sets +// violating Sanskrit orthography. +// +// Most importantly, this romanized version of Sinhala has a +// companion orthographic font that displays the text in the +// native script and a JavaScript converts it to Unicode Sinhala +// and back dramatically increasing Sinhala seen on the web due +// to its ease of use +// +// Dedication: +// Thomas William Rhys Davids, Ven. Udagama Sumangala +// Rev. Fr. A. M. Gunasekara, Rev. Fr. Theodore G. Perera +// Ven. Mettavihari +// +// Maintainer: +// JC Ahangama - sing@ahangama.com +// +partial alphanumeric_keys modifier_keys +xkb_symbols "us" { + include "us(basic)" + name[Group1]= "Sinhala (US, with Sinhala letters)"; +// +// UNSHIFTED, SHIFT, ALT +// -------------------------------------------- +// + key { [ z, VoidSymbol, VoidSymbol ] }; + key { [ x, VoidSymbol, VoidSymbol ] }; + key { [ c, ccedilla, VoidSymbol ] }; + key { [ v, VoidSymbol, VoidSymbol ] }; + key { [ b, B, VoidSymbol ] }; + key { [ n, N, ntilde ] }; + key { [ m, VoidSymbol, VoidSymbol ] }; + key { [ comma, less, UAB ] }; + key { [ period, greater, UBB ] }; + key { [ slash, question, U200C ] }; + + key { [ a, aacute, adiaeresis ] }; + key { [ s, VoidSymbol, VoidSymbol ] }; + key { [ eth, ETH, VoidSymbol ] }; + key { [ thorn, f, VoidSymbol ] }; + key { [ g, G, VoidSymbol ] }; + key { [ h, VoidSymbol, VoidSymbol ] }; + key { [ j, ccedilla, VoidSymbol ] }; + key { [ k, VoidSymbol, VoidSymbol ] }; + key { [ l, L, ocircumflex ] }; + key { [ semicolon, colon, VoidSymbol ] }; + key { [ apostrophe, quotedbl, VoidSymbol ] }; + + key { [ d, D, q ] }; + key { [ ae, acute, VoidSymbol ] }; + key { [ e, eacute, ediaeresis ] }; + key { [ r, ucircumflex, VoidSymbol ] }; + key { [ t, VoidSymbol, VoidSymbol ] }; + key { [ y, VoidSymbol, VoidSymbol ] }; + key { [ u, uacute, udiaeresis ] }; + key { [ i, iacute, idiaeresis ] }; + key { [ o, oacute, odiaeresis ] }; + key { [ p, VoidSymbol, VoidSymbol ] }; + key { [ bracketleft, braceleft, VoidSymbol ] }; + key { [ bracketright, braceright, VoidSymbol ] }; + + key { [ 1, exclam, dead_macron ] }; + key { [ 2, at, dead_belowdot ] }; + key { [ 3, numbersign, dead_abovedot ] }; + key { [ 4, dollar, currency ] }; + key { [ 5, percent, UB0 ] }; + key { [ 6, asciicircum, onequarter ] }; + key { [ 7, ampersand, onehalf ] }; + key { [ 8, asterisk, threequarters ] }; + key { [ 9, parenleft, VoidSymbol ] }; + key { [ 0, parenright, VoidSymbol ] }; + key { [ minus, underscore, U2014 ] }; + key { [ equal, plus, VoidSymbol ] }; + + key { [ backslash, bar, VoidSymbol ] }; + key { [ space, nobreakspace, VoidSymbol ] }; + key { [ grave, asciitilde, VoidSymbol ] }; + include "level3(alt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/lt b/squashfs-root/usr/share/X11/xkb/symbols/lt new file mode 100644 index 0000000..829f39a --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/lt @@ -0,0 +1,319 @@ +// Separate keymaps merged into one file by Nerijus Baliūnas, 2002 + +// Lithuanian Numeric layout - Lithuanian letters on the numeric row +// based on Lithuanian keyboard map by Ričardas Čepas +// 3rd and 4th levels added by Mantas Kriaučiūnas , 2004 +// Minor modifications and cleanup by Rimas Kudelis , 2010 +// +// If you want two layouts, use: +// Option "XkbLayout" "lt,lt(us)" +default partial alphanumeric_keys modifier_keys +xkb_symbols "basic" { + + include "latin" + include "eurosign(e)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian"; + + key {[ grave, asciitilde, acute ]}; + key {[ aogonek, Aogonek, 1, exclam ]}; + key {[ ccaron, Ccaron, 2, at ]}; + key {[ eogonek, Eogonek, 3, numbersign ]}; + key {[ eabovedot, Eabovedot, 4, dollar ]}; + key {[ iogonek, Iogonek, 5, percent ]}; + key {[ scaron, Scaron, 6, asciicircum ]}; + key {[ uogonek, Uogonek, 7, ampersand ]}; + key {[ umacron, Umacron, 8, asterisk ]}; + key {[ doublelowquotemark, parenleft, 9, parenleft ]}; + key {[ leftdoublequotemark, parenright, 0, parenright ]}; + key {[ minus, underscore, endash ]}; + key {[ zcaron, Zcaron, equal, plus ]}; + + key {[ endash, EuroSign ]}; +}; + +// Similar to the above, but uses 3rd and 4th levels in the numeric row +// for Lithuanian letters +partial alphanumeric_keys modifier_keys +xkb_symbols "us" { + + include "latin" + include "eurosign(e)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian (US, with Lithuanian letters)"; + + key {[ grave, asciitilde, acute ]}; + key {[ 1, exclam, aogonek, Aogonek ]}; + key {[ 2, at, ccaron, Ccaron ]}; + key {[ 3, numbersign, eogonek, Eogonek ]}; + key {[ 4, dollar, eabovedot, Eabovedot ]}; + key {[ 5, percent, iogonek, Iogonek ]}; + key {[ 6, asciicircum, scaron, Scaron ]}; + key {[ 7, ampersand, uogonek, Uogonek ]}; + key {[ 8, asterisk, umacron, Umacron ]}; + key {[ 9, parenleft, doublelowquotemark, parenleft ]}; + key {[ 0, parenright, leftdoublequotemark, parenright ]}; + key {[ minus, underscore, endash ]}; + key {[ equal, plus, zcaron, Zcaron ]}; + + key {[ endash, EuroSign ]}; +}; + +// Lithuanian keymap LST 1582:2000 +// The standard is described at http://ims.mii.lt/klav/ +// Extensions: B01 L3 is "<" , B02 L3 is ">" and B03 L3 is endash to make this +// layout usable with pc101 and pc104 keyboards. +// +// Made by Gediminas Paulauskas +// Minor modifications by Ričardas Čepas and Rimas Kudelis + +partial alphanumeric_keys modifier_keys +xkb_symbols "std" { + + include "latin" + include "eurosign(e)" + include "nbsp(level3)" + include "kpdl(comma)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian (standard)"; + + key {[ grave, asciitilde, acute ]}; + key {[ exclam, 1, at ]}; + key {[ minus, 2, underscore ]}; + key {[ slash, 3, numbersign ]}; + key {[ semicolon, 4, dollar ]}; + key {[ colon, 5, section ]}; + key {[ comma, 6, asciicircum ]}; + key {[ period, 7, ampersand ]}; + key {[ equal, 8, asterisk ]}; + key {[ parenleft, 9, bracketleft ]}; + key {[ parenright, 0, bracketright ]}; + key {[ question, plus, apostrophe ]}; + key {[ x, X, percent ]}; + + key {[ aogonek, Aogonek ]}; + key {[ zcaron, Zcaron ]}; + key {[ iogonek, Iogonek, braceleft ]}; + key {[ w, W, braceright ]}; + + key {[ scaron, Scaron ]}; + key {[ uogonek, Uogonek ]}; + key {[ eabovedot, Eabovedot, quotedbl ]}; + key {[ q, Q, bar ]}; + + key {[ less, greater, endash ]}; + key {[ z, Z, less ]}; + key {[ umacron, Umacron, greater ]}; + key {[ c, C, endash ]}; + key {[ ccaron, Ccaron, doublelowquotemark ]}; + key {[ f, F, leftdoublequotemark ]}; + key {[ eogonek, Eogonek, backslash ]}; +}; + +// Lithuanian keymap LST 1205-92 +// This standard was made deprecated by LST 1582:2000 above. +// This keyboard is also know as IBM layout. +// We follow the map shown at: http://www.registrucentras.lt/litwin/kbdlta.gif +// and info from Edis Tamošauskas +// +// Made by Piter PUNK +// Minor modifications and cleanup by Rimas Kudelis, 2010 + +partial alphanumeric_keys modifier_keys +xkb_symbols "ibm" { + + include "latin" + include "eurosign(e)" + include "nbsp(level3)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian (IBM LST 1205-92)"; + + key {[ grave, asciitilde, acute ]}; + key {[ exclam, 1 ]}; + key {[ quotedbl, 2, at ]}; + key {[ slash, 3, numbersign ]}; + key {[ semicolon, 4, dollar ]}; + key {[ colon, 5, percent ]}; + key {[ comma, 6, asciicircum ]}; + key {[ period, 7, ampersand ]}; + key {[ question, 8, asterisk ]}; + key {[ parenleft, 9 ]}; + key {[ parenright, 0 ]}; + key {[ underscore, minus, endash ]}; + key {[ plus, equal ]}; + + key {[ aogonek, Aogonek, q, Q ]}; + key {[ zcaron, Zcaron, w, W ]}; + key {[ iogonek, Iogonek, bracketleft, braceleft ]}; + key {[ doublelowquotemark, leftdoublequotemark, bracketright, braceright ]}; + + key {[ uogonek, Uogonek, semicolon, colon ]}; + key {[ eabovedot, Eabovedot, apostrophe, quotedbl ]}; + + key {[ less, greater, endash ]}; + key {[ umacron, Umacron, x, X ]}; + key {[ ccaron, Ccaron, comma, less ]}; + key {[ scaron, Scaron, period, greater ]}; + key {[ eogonek, Eogonek, slash, question ]}; +}; + +// LEKP and LEKPa layouts 1.0 +// For more info visit http://lekp.info +// Created by Tautrimas Pajarskas, 2007 +// Made by Ernestas Lukoševičius, 2007 +// Minor cleanup by Rimas Kudelis, 2010 + +partial alphanumeric_keys modifier_keys +xkb_symbols "lekp" { + + include "capslock(backspace)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian (LEKP)"; + + key {[ grave, asciitilde, acute ]}; + key {[ slash, numbersign, bar ]}; + key {[ backslash, at, section ]}; + key {[ period, braceleft ]}; + key {[ comma, braceright ]}; + key {[ f, F ]}; + key {[ exclam, endash ]}; + key {[ w, W ]}; + key {[ uogonek, Uogonek ]}; + key {[ iogonek, Iogonek ]}; + key {[ parenleft, doublelowquotemark, registered ]}; + key {[ parenright, leftdoublequotemark, copyright ]}; + key {[ colon, ampersand, trademark ]}; + + key {[ q, Q, EuroSign ]}; + key {[ g, G, 7 ]}; + key {[ r, R, 8 ]}; + key {[ l, L, 9 ]}; + key {[ d, D, percent ]}; + key {[ ccaron, Ccaron ]}; + key {[ j, J ]}; + key {[ u, U, period ]}; + key {[ eabovedot, Eabovedot, minus ]}; + key {[ eogonek, Eogonek, slash ]}; + key {[ question, bracketleft, division ]}; + key {[ equal, bracketright ]}; + + key {[ a, A, 0 ]}; + key {[ k, K, 4 ]}; + key {[ s, S, 5 ]}; + key {[ t, T, 6 ]}; + key {[ m, M, dollar ]}; + key {[ p, P ]}; + key {[ n, N ]}; + key {[ e, E, comma ]}; + key {[ i, I, plus ]}; + key {[ o, O, asterisk ]}; + key {[ y, Y, multiply ]}; + key {[ apostrophe, underscore ]}; + + key {[ semicolon, quotedbl, sterling ]}; + key {[ z, Z, asciicircum ]}; + key {[ x, X, 1 ]}; + key {[ c, C, 2 ]}; + key {[ v, V, 3 ]}; + key {[ zcaron, Zcaron ]}; + key {[ scaron, Scaron ]}; + key {[ b, B, degree ]}; + key {[ umacron, Umacron, less ]}; + key {[ aogonek, Aogonek, greater ]}; + key {[ h, H ]}; +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "lekpa" { + + include "capslock(backspace)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian (LEKPa)"; + + key {[ grave, asciitilde, acute ]}; + key {[ slash, quotedbl, bar ]}; + key {[ backslash, at, section ]}; + key {[ period, braceleft, numbersign ]}; + key {[ comma, braceright, sterling ]}; + key {[ f, F, ampersand ]}; + key {[ exclam, endash ]}; + key {[ w, W ]}; + key {[ uogonek, Uogonek ]}; + key {[ iogonek, Iogonek ]}; + key {[ parenleft, doublelowquotemark, registered ]}; + key {[ parenright, leftdoublequotemark, copyright ]}; + key {[ colon, semicolon, trademark ]}; + + key {[ q, Q, EuroSign ]}; + key {[ g, G, 7 ]}; + key {[ r, R, 8 ]}; + key {[ l, L, 9 ]}; + key {[ d, D, percent ]}; + key {[ ccaron, Ccaron ]}; + key {[ j, J ]}; + key {[ u, U, period ]}; + key {[ eabovedot, Eabovedot, minus ]}; + key {[ eogonek, Eogonek, slash ]}; + key {[ question, bracketleft, division ]}; + key {[ equal, bracketright ]}; + + key {[ a, A, 0 ]}; + key {[ k, K, 4 ]}; + key {[ s, S, 5 ]}; + key {[ t, T, 6 ]}; + key {[ m, M, dollar ]}; + key {[ p, P ]}; + key {[ n, N ]}; + key {[ e, E, comma ]}; + key {[ i, I, plus ]}; + key {[ o, O, asterisk ]}; + key {[ y, Y, multiply ]}; + key {[ apostrophe, underscore ]}; + + key {[ z, Z, asciicircum ]}; + key {[ x, X, 1 ]}; + key {[ c, C, 2 ]}; + key {[ v, V, 3 ]}; + key {[ zcaron, Zcaron ]}; + key {[ scaron, Scaron ]}; + key {[ b, B, degree ]}; + key {[ umacron, Umacron, less ]}; + key {[ aogonek, Aogonek, greater ]}; + key {[ h, H ]}; +}; + +// EXTRAS: + +partial alphanumeric_keys modifier_keys +xkb_symbols "us_dvorak" { + + include "us(dvorak)" + + name[Group1]="Lithuanian (US Dvorak with Lithuanian letters)"; + + key { [ 1, exclam, aogonek, Aogonek ] }; + key { [ 2, at, ccaron, Ccaron ] }; + key { [ 3, numbersign, eogonek, Eogonek ] }; + key { [ 4, dollar, eabovedot, Eabovedot ] }; + key { [ 5, percent, iogonek, Iogonek ] }; + key { [ 6, asciicircum, scaron, Scaron ] }; + key { [ 7, ampersand, uogonek, Uogonek ] }; + key { [ 8, asterisk, umacron, Umacron ] }; + key { [ 9, parenleft, doublelowquotemark, parenleft ] }; + key { [ 0, parenright, leftdoublequotemark,parenright ] }; + key { [ equal, plus, zcaron, Zcaron ] }; + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/lt(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/lv b/squashfs-root/usr/share/X11/xkb/symbols/lv new file mode 100644 index 0000000..5754587 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/lv @@ -0,0 +1,526 @@ +// Latvian keymap version 1.1 +// Copyright (C) Dmitry Golubev , 2003-2004 +// +// Reworked to get rid of dead_keys (use of which in this case +// is a dirty hack). It is now not dependent on locale settings +// and GTK_IM_MODULES in Gnome. The map is also providing some of +// ISO9995-3 alternate characters. Note that this version works +// correctly under Gnome 2.6. This is to be put into symbols/ +// directory, or somewhere else. +// +// Permission to use, copy, modify, distribute, and sell this software and its +// documentation for any purpose is hereby granted without fee, provided that +// the above copyright notice appear in all copies and that both that +// copyright notice and this permission notice appear in supporting +// documentation, and that the name of the copyright holder(s) not be used in +// advertising or publicity pertaining to distribution of the software without +// specific, written prior permission. The copyright holder(s) makes no +// representations about the suitability of this software for any purpose. It +// is provided "as is" without express or implied warranty. +// +// THE COPYRIGHT HOLDER(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +// EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR +// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +// PERFORMANCE OF THIS SOFTWARE. + +// Modified by Aldis Berjoza , 12 april 2011 +// Changes: +// * Added Latvian Ergonomic, Latvian Adapted and Latvian Modern variants +// Author of this work is Valdis Vītoliņš +// http://odo.lv/LatvianKeyboard +// http://odo.lv/Recipes/LatvianKeyboard#HErgonomiskC481stastatC5ABrasuzlikC5A1anauzLinuxdatora%22 +// * Added guillemotleft, leftdoublequotemark, guillemotright, +// rightdoublequotemark to Latvian modern layout for AD11 and AD12 +// * Added US-Dvorac compatible Latvian layouts +// * Added programmer US-Dvorac compatible Latvian layouts +// * Added US-Colemak compatible Latvian layouts +// * Reformatted layouts + + +//============================================================================ +// Latvian QWERTY layout +// http://en.wikipedia.org/wiki/QWERTY +// +default partial alphanumeric_keys modifier_keys +xkb_symbols "basic" { + + name[Group1]= "Latvian"; + + key {[ grave, asciitilde, acute, asciitilde ]}; + key {[ 1, exclam, onesuperior, exclamdown ]}; + key {[ 2, at, twosuperior, oneeighth ]}; + key {[ 3, numbersign, threesuperior, sterling ]}; + key {[ 4, dollar, EuroSign, cent ]}; + key {[ 5, percent, onehalf, threeeighths ]}; + key {[ 6, asciicircum, threequarters, fiveeighths ]}; + key {[ 7, ampersand, braceleft, seveneighths ]}; + key {[ 8, asterisk, bracketleft, trademark ]}; + key {[ 9, parenleft, bracketright, plusminus ]}; + key {[ 0, parenright, braceright, degree ]}; + key {[ minus, underscore, backslash, questiondown ]}; + key {[ equal, plus, endash, emdash ]}; + + key {[ q, Q, q, Q ]}; + key {[ w, W, w, W ]}; + key {[ e, E, emacron, Emacron ]}; + key {[ r, R, rcedilla, Rcedilla ]}; + key {[ t, T, t, T ]}; + key {[ y, Y, y, Y ]}; + key {[ u, U, umacron, Umacron ]}; + key {[ i, I, imacron, Imacron ]}; + key {[ o, O, omacron, Omacron ]}; + key {[ p, P, p, P ]}; + key {[ bracketleft, braceleft, guillemotleft, leftdoublequotemark ]}; + key {[ bracketright, braceright, guillemotright, rightdoublequotemark ]}; + + key {[ a, A, amacron, Amacron ]}; + key {[ s, S, scaron, Scaron ]}; + key {[ d, D, d, D ]}; + key {[ f, F, f, F ]}; + key {[ g, G, gcedilla, Gcedilla ]}; + key {[ h, H, h, H ]}; + key {[ j, J, j, J ]}; + key {[ k, K, kcedilla, Kcedilla ]}; + key {[ l, L, lcedilla, Lcedilla ]}; + key {[ semicolon, colon, semicolon, colon ]}; + key {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]}; + + key {[ z, Z, zcaron, Zcaron ]}; + key {[ x, X, x, X ]}; + key {[ c, C, ccaron, Ccaron ]}; + key {[ v, V, v, V ]}; + key {[ b, B, b, B ]}; + key {[ n, N, ncedilla, Ncedilla ]}; + key {[ m, M, m, M ]}; + key {[ comma, less, horizconnector, multiply ]}; + key {[ period, greater, periodcentered, division ]}; + key {[ slash, question, slash, abovedot ]}; + key {[ backslash, bar, grave, breve ]}; + + key {[ space, space, space, space ]}; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "apostrophe" { + + include "lv(basic)" + + name[Group1]= "Latvian (apostrophe)"; + + key {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]}; + key {[space, space, apostrophe]}; + modifier_map Mod5 { }; + +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "tilde" { + + include "lv(basic)" + + name[Group1]= "Latvian (tilde)"; + + key {[ISO_Level3_Latch, asciitilde, grave, acute]}; + key {[space, space, asciitilde]}; + modifier_map Mod5 { }; + +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "fkey" { + + include "lv(basic)" + + name[Group1]= "Latvian (F)"; + + key {[ISO_Level3_Latch, ISO_Level3_Latch, f, F]}; + key {[space, space, f, F]}; + modifier_map Mod5 { }; + +}; + +//============================================================================ +// Latvian Adapted keyboard layout +// http://odo.lv/xwiki/bin/download/Main/LatvianKeyboard/Adapted.png +// +// http://odo.lv/LatvianKeyboard +// http://odo.lv/LatvianKeyboard5 +// +partial alphanumeric_keys modifier_keys +xkb_symbols "adapted" { + + include "lv(basic)" + + name[Group1]= "Latvian (adapted)"; + + key {[ 2, Ccaron, at, twosuperior ]}; + key {[ 3, ccaron, numbersign, threesuperior ]}; + key {[ 4, Zcaron, dollar, EuroSign ]}; + key {[ 5, zcaron, percent, onehalf ]}; + + key {[ scaron, Scaron, q, Q ]}; + key {[ emacron, Emacron, w, W ]}; + key {[ e, E, e, E ]}; + + key {[ amacron, Amacron, y, Y ]}; + key {[ u, U, u, U ]}; + key {[ i, I, i, I ]}; + key {[ umacron, Umacron, bracketleft, braceleft ]}; + key {[ ncedilla, Ncedilla, bracketright, braceright ]}; + + key {[ a, A, a, A ]}; + key {[ s, S, s, S ]}; + key {[ g, G, g, G ]}; + + key {[ k, K, k, K ]}; + key {[ l, L, l, L ]}; + key {[ imacron, Imacron, semicolon, colon ]}; + + key {[ z, Z, z, Z ]}; + key {[ kcedilla, Kcedilla, x, X ]}; + key {[ c, C, c, C ]}; + + key {[ n, N, n, N ]}; + + key {[ comma, gcedilla, less, multiply ]}; + key {[ period, Gcedilla, greater, division ]}; + key {[ lcedilla, Lcedilla, slash, question ]}; +}; + +//============================================================================ +// Latvian Ergonomic (ŪGJRMV) keyboard layout by Valdis Vītoliņš +// http://odo.lv/xwiki/bin/download/Main/LatvianKeyboard/Ergonomic.png +// +// http://odo.lv/LatvianKeyboard +// http://odo.lv/LatvianKeyboard5 +// +partial alphanumeric_keys modifier_keys +xkb_symbols "ergonomic" { + + include "lv(apostrophe)" + + name[Group1]= "Latvian (ergonomic, ŪGJRMV)"; + + key {[ 2, at, gcedilla, Gcedilla ]}; + + key {[ minus, underscore, endash, emdash ]}; + key {[ f, F, equal, plus ]}; + + key {[ umacron, Umacron, q, Q ]}; + key {[ g, G, g, G ]}; + key {[ j, J, j, J ]}; + key {[ r, R, rcedilla, Rcedilla ]}; + key {[ m, M, m, M ]}; + key {[ v, V, w, W ]}; + key {[ n, N, y, Y ]}; + key {[ z, Z, z, Z ]}; + key {[ emacron, Emacron, emacron, Emacron ]}; + key {[ ccaron, Ccaron, ccaron, Ccaron ]}; + key {[ zcaron, Zcaron, bracketleft, braceleft ]}; + key {[ h, H, bracketright, braceright ]}; + + key {[ scaron, Scaron, scaron, Scaron ]}; + key {[ u, U, u, U ]}; + key {[ s, S, s, S ]}; + key {[ i, I, i, I ]}; + key {[ l, L, l, L ]}; + key {[ d, D, d, D ]}; + key {[ a, A, a, A ]}; + key {[ t, T, t, T ]}; + key {[ e, E, e, E ]}; + key {[ c, C, c, C ]}; + key {[ ISO_Level3_Latch, quotedbl, apostrophe, quotedbl ]}; + key {[ kcedilla, Kcedilla, slash, backslash ]}; + + key {[ gcedilla, Gcedilla, gcedilla, Gcedilla ]}; + key {[ ncedilla, Ncedilla, ncedilla, Ncedilla ]}; + key {[ b, B, x, X ]}; + key {[ imacron, Imacron, imacron, Imacron ]}; + key {[ k, K, k, K ]}; + key {[ p, P, p, P ]}; + key {[ o, O, omacron, Omacron ]}; + key {[ amacron, Amacron, amacron, Amacron ]}; + key {[ comma, semicolon, less, multiply ]}; + key {[ period, colon, greater, division ]}; + key {[ lcedilla, Lcedilla, question, slash ]}; +}; + +//============================================================================ +// Latvian Modern keyboard layout by Valdis Vītoliņš +// http://odo.lv/xwiki/bin/download/Recipes/LatvianKeyboard/Modern.png +// +// http://odo.lv/LatvianKeyboard +// http://odo.lv/LatvianKeyboard5 +// +partial alphanumeric_keys modifier_keys +xkb_symbols "modern" { + + name[Group1]= "Latvian (modern)"; + + key {[ grave, asciitilde, acute, copyright ]}; + key {[ 1, exclam, onesuperior, exclamdown ]}; + key {[ 2, at, twosuperior, oneeighth ]}; + key {[ 3, numbersign, threesuperior, sterling ]}; + key {[ 4, dollar, EuroSign, cent ]}; + key {[ 5, percent, onehalf, threeeighths ]}; + key {[ 6, asciicircum, threequarters, fiveeighths ]}; + key {[ 7, ampersand, braceleft, seveneighths ]}; + key {[ 8, asterisk, bracketleft, trademark ]}; + key {[ 9, parenleft, bracketright, plusminus ]}; + key {[ 0, parenright, braceright, degree ]}; + key {[ minus, underscore, backslash, questiondown ]}; + key {[ equal, plus, endash, emdash ]}; + + key {[ emacron, Emacron, emacron, Emacron ]}; + key {[ o, O, omacron, Omacron ]}; + key {[ amacron, Amacron, amacron, Amacron ]}; + key {[ p, P, question, P ]}; + key {[ b, B, exclam, B ]}; + key {[ j, J, emdash, J ]}; + key {[ d, D, endash, D ]}; + key {[ imacron, Imacron, imacron, Imacron ]}; + key {[ l, L, lcedilla, Lcedilla ]}; + key {[ g, G, gcedilla, Gcedilla ]}; + Key {[ bracketleft, braceleft, guillemotleft, leftdoublequotemark ]}; + key {[ bracketright, braceright, guillemotright, rightdoublequotemark ]}; + + key {[ e, E, e, E ]}; + key {[ u, U, umacron, Umacron ]}; + key {[ a, A, a, A ]}; + key {[ n, N, ncedilla, Ncedilla ]}; + key {[ k, K, kcedilla, Kcedilla ]}; + key {[ ISO_Level3_Latch, quotedbl, apostrophe, quotedbl ]}; + key {[ s, S, scaron, Scaron ]}; + key {[ i, I, i, I ]}; + key {[ t, T, t, T ]}; + key {[ r, R, rcedilla, Rcedilla ]}; + key {[ m, M, m, M ]}; + key {[ slash, question, backslash, bar ]}; + + key {[ q, Q, q, Q ]}; + key {[ x, X, q, Q ]}; + key {[ z, Z, zcaron, Zcaron ]}; + key {[ c, C, ccaron, Ccaron ]}; + key {[ v, V, bar, V ]}; + key {[ w, W, backslash, W ]}; + key {[ f, F, period, F ]}; + key {[ y, Y, slash, Y ]}; + key {[ h, H, U263A, U2639 ]}; + key {[ comma, semicolon, less, multiply ]}; + key {[ period, colon, greater, division ]}; + key {[ space, space, apostrophe ]}; + + modifier_map Mod5 { }; + + include "level3(ralt_switch)" +}; + +// EXTRAS: + +//============================================================================ +// US Dvorak compatible Latvian layout +// http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard +// +partial alphanumeric_keys modifier_keys +xkb_symbols "dvorak" { + + name[Group1]= "Latvian (US Dvorak)"; + + key {[ asciitilde, grave, acute, asciitilde ]}; + key {[ 1, exclam, onesuperior, exclamdown ]}; + key {[ 2, at, twosuperior, oneeighth ]}; + key {[ 3, numbersign, threesuperior, sterling ]}; + key {[ 4, dollar, EuroSign, cent ]}; + key {[ 5, percent, onehalf, threeeighths ]}; + key {[ 6, asciicircum, threequarters, fiveeighths ]}; + key {[ 7, ampersand, braceleft, seveneighths ]}; + key {[ 8, asterisk, bracketleft, trademark ]}; + key {[ 9, parenleft, bracketright, plusminus ]}; + key {[ 0, parenright, braceright, degree ]}; + key {[ bracketleft, braceleft, leftdoublequotemark, guillemotleft ]}; + key {[ bracketright, braceright, rightdoublequotemark, guillemotright ]}; + + key {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]}; + key {[ comma, less, guillemotleft, multiply ]}; + key {[ period, greater, guillemotright, division ]}; + key {[ p, P, p, P ]}; + key {[ y, Y, y, Y ]}; + key {[ f, F, f, F ]}; + key {[ g, G, gcedilla, Gcedilla ]}; + key {[ c, C, ccaron, Ccaron ]}; + key {[ r, R, rcedilla, Rcedilla ]}; + key {[ l, L, lcedilla, Lcedilla ]}; + key {[ slash, question, slash, abovedot ]}; + key {[ equal, plus, endash, emdash ]}; + + key {[ a, A, amacron, Amacron ]}; + key {[ o, O, omacron, Omacron ]}; + key {[ e, E, emacron, Emacron ]}; + key {[ u, U, umacron, Umacron ]}; + key {[ i, I, imacron, Imacron ]}; + key {[ d, D, d, D ]}; + key {[ h, H, h, H ]}; + key {[ t, T, t, T ]}; + key {[ n, N, ncedilla, Ncedilla ]}; + key {[ s, S, scaron, Scaron ]}; + key {[ minus, underscore, backslash, questiondown ]}; + + key {[ semicolon, colon, semicolon, colon ]}; + key {[ q, Q, q, Q ]}; + key {[ j, J, j, J ]}; + key {[ k, K, kcedilla, Kcedilla ]}; + key {[ x, X, x, X ]}; + key {[ b, B, b, B ]}; + key {[ m, M, m, M ]}; + key {[ w, W, w, W ]}; + key {[ v, V, v, V ]}; + key {[ z, Z, zcaron, Zcaron ]}; + + key {[ backslash, bar, grave, breve ]}; + + key {[ space, space, space, space ]}; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "ykeydvorak" { + + include "lv(dvorak)" + + name[Group1]= "Latvian (US Dvorak, Y variant)"; + + key {[ISO_Level3_Latch, ISO_Level3_Latch, y, Y]}; + key {[space, space, y, Y]}; + modifier_map Mod5 { }; + +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "minuskeydvorak" { + + include "lv(dvorak)" + + name[Group1]= "Latvian (US Dvorak, minus variant)"; + + key {[ISO_Level3_Latch, ISO_Level3_Latch, minus, underscore]}; + key {[space, space, minus, underscore]}; + modifier_map Mod5 { }; + +}; + +//============================================================================ +// US Dvorak programmers layput compatible Latvian layout +// http://www.kaufmann.no/roland/dvorak/ +// +partial alphanumeric_keys modifier_keys +xkb_symbols "dvorakprogr" { + + include "lv(dvorak)" + + name[Group1]= "Latvian (programmer US Dvorak)"; + + key {[ dollar, asciitilde, EuroSign, cent ]}; + key {[ ampersand, percent, acute, asciitilde ]}; + key {[ bracketleft, 7, onesuperior, twosuperior ]}; + key {[ braceleft, 5, guillemotleft, leftdoublequotemark ]}; + key {[ braceright, 3, guillemotright, rightdoublequotemark ]}; + key {[ parenleft, 1, onehalf, threeeighths ]}; + key {[ equal, 9, threequarters, fiveeighths ]}; + key {[ asterisk, 0, degree, copyright ]}; + key {[ parenright, 2, endash, emdash ]}; + key {[ plus, 4, plusminus, section ]}; + key {[ bracketright, 6, registered, trademark ]}; + key {[ exclam, 8, exclam, exclamdown ]}; + key {[ numbersign, grave, Greek_alpha, Greek_beta ]}; + + key {[ semicolon, colon, semicolon, colon ]}; + key {[ at, asciicircum, at, asciicircum ]}; + + key {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]}; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "ykeydvorakprogr" { + + include "lv(dvorakprogr)" + + name[Group1]= "Latvian (programmer US Dvorak, Y variant)"; + + key {[ISO_Level3_Latch, ISO_Level3_Latch, y, Y]}; + key {[space, space, y, Y]}; + modifier_map Mod5 { }; + +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "minuskeydvorakprogr" { + + include "lv(dvorakprogr)" + + name[Group1]= "Latvian (programmer US Dvorak, minus variant)"; + + key {[ISO_Level3_Latch, ISO_Level3_Latch, minus, underscore]}; + key {[space, space, minus, underscore]}; + modifier_map Mod5 { }; + +}; + +//============================================================================ +// Colemak compatible Latvian layout +// http://colemak.com/ +// +partial alphanumeric_keys modifier_keys +xkb_symbols "colemak" { + + include "lv(basic)" + + name[Group1]= "Latvian (US Colemak)"; + + key {[ f, F, f, F ]}; + key {[ p, P, p, P ]}; + key {[ g, G, gcedilla, Gcedilla ]}; + key {[ j, J, j, J ]}; + key {[ l, L, lcedilla, Lcedilla ]}; + key {[ u, U, umacron, Umacron ]}; + key {[ y, Y, y, Y ]}; + key {[ semicolon, colon, semicolon, colon ]}; + + key {[ r, R, rcedilla, Rcedilla ]}; + key {[ s, S, scaron, Scaron ]}; + key {[ t, T, t, T ]}; + key {[ d, D, d, D ]}; + key {[ n, N, ncedilla, Ncedilla ]}; + key {[ e, E, emacron, Emacron ]}; + key {[ i, I, imacron, Imacron ]}; + key {[ o, O, omacron, Omacron ]}; + + key {[ k, K, kcedilla, Kcedilla ]}; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "apostrophecolemak" { + + include "lv(colemak)" + + name[Group1]= "Latvian (US Colemak, apostrophe variant)"; + + key {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]}; + key {[space, space, apostrophe]}; + modifier_map Mod5 { }; + +}; + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/lv(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ma b/squashfs-root/usr/share/X11/xkb/symbols/ma new file mode 100644 index 0000000..2b099de --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ma @@ -0,0 +1,324 @@ +// Arabic AZERTY with modern Latin digits +default partial alphanumeric_keys +xkb_symbols "arabic" { + include "ara(azerty)" + + name[Group1]="Arabic (Morocco)"; +}; + +// French AZERTY keyboard used when typing French +partial alphanumeric_keys +xkb_symbols "french" { + include "fr(basic)" + + name[Group1]="French (Morocco)"; +}; + +// Clavier unicode tifinaghe de base réalisé par l'IRCAM (Institut Royal de la Culture Amazighe du Maroc) http://www.ircam.ma/ +// Support des lettres unicode tifinaghe-IRCAM, néotifinaghes & touarègues. +// Les caractères tifinaghes sont accessibles en SHIFT positions pour le niveau 2, en ALTGR positions pour le niveau 3 +// Polices tifinaghes Unicode à télécharger depuis : +// http://www.ircam.ma/documents/policesclavierunicode/hapaxber.ttf (licence non libre, libre téléchargement et distribution uniquement) +// Minihowto ici: http://perso.menara.ma/~kebdani/tamazgha/gnu_amazigh.html + +partial alphanumeric_keys +xkb_symbols "tifinagh" { + + name[Group1]="Berber (Morocco, Tifinagh)"; + + key { [ twosuperior, NoSymbol ] }; + key { [ ampersand, 1 ] }; + key { [ NoSymbol, 2, asciitilde ] }; + key { [ quotedbl, 3, numbersign ] }; + key { [apostrophe, 4, braceleft ] }; + key { [ parenleft, 5, bracketleft ] }; + key { [ minus, 6, bar ] }; + key { [ NoSymbol , 7 ] }; + key { [underscore, 8, backslash ] }; + key { [NoSymbol, 9, asciicircum ] }; + key { [ NoSymbol , 0, at ] }; + key { [parenright, degree, bracketright ] }; + key { [ equal, plus, braceright ] }; + + key { [ 0x1002d30 ] }; + key { [ 0x1002d63, 0x1002d65 ] }; + key { [ 0x1002d3b, NoSymbol,0x10020ac ] }; + key { [ 0x1002d54, 0x1002d55 ] }; + key { [ 0x1002d5c, 0x1002d5f ] }; + key { [ 0x1002d62 ] }; + key { [ 0x1002d53 ] }; + key { [ 0x1002d49 ] }; + key { [ 0x1002d44 ] }; + key { [ 0x1002d43 ] }; + key { [ 0x1002d6f ] }; + key { [ dollar, sterling, 0x10000a4] }; + + key { [ 0x1002d47 ] }; + key { [ 0x1002d59, 0x1002d5a ] }; + key { [ 0x1002d37, 0x1002d39 ] }; + key { [ 0x1002d3c ] }; + key { [ 0x1002d33, 0x1002d33] }; + key { [ 0x1002d40 ] }; + key { [ 0x1002d4a ] }; + key { [ 0x1002d3d, 0x1002d3d ] }; + key { [ 0x1002d4d ] }; + key { [ 0x1002d4e ] }; + key { [ NoSymbol , percent ] }; + key { [ asterisk, mu ] }; + + key { [ 0x1002d61 ] }; + key { [ 0x1002d45 ] }; + key { [ 0x1002d5b ] }; + key { [ 0x1002d56 ] }; + key { [ 0x1002d31 ] }; + key { [ 0x1002d4f ] }; + key { [ comma, question ] }; + key { [ semicolon, period ] }; + key { [ colon, slash ] }; + key { [ exclam, section ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "tifinagh-phonetic" { + include "ma(tifinagh)" + + name[Group1]="Berber (Morocco, Tifinagh phonetic)"; + + key { [ 0x1002d30 ] }; + key { [ 0x1002d63, 0x1002d65 ] }; + key { [ 0x1002d3b, NoSymbol,0x10020ac ] }; + key { [ 0x1002d54, 0x1002d55 ] }; + key { [ 0x1002d5c, 0x1002d5f ] }; + key { [ 0x1002d62 ] }; + key { [ 0x1002d53 ] }; + key { [ 0x1002d49 ] }; + key { [ 0x1002d44 ] }; + key { [ 0x1002d43 ] }; + + key { [ 0x1002d47 ] }; + key { [ 0x1002d59, 0x1002d5a ] }; + key { [ 0x1002d37, 0x1002d39 ] }; + key { [ 0x1002d3c ] }; + key { [ 0x1002d33 ] }; + key { [ 0x1002d40 ] }; + key { [ 0x1002d4a ] }; + key { [ 0x1002d3d ] }; + key { [ 0x1002d4d ] }; + key { [ 0x1002d4e ] }; + + key { [ 0x1002d61,0x1002d6f ] }; + key { [ 0x1002d45 ] }; + key { [ 0x1002d5b ] }; + key { [ 0x1002d56 ] }; + key { [ 0x1002d31 ] }; + key { [ 0x1002d4f ] }; + + include "level3(ralt_switch)" +}; + +// Clavier unicode tifinaghe étendu réalisé par l'IRCAM (Institut Royal de la Culture Amazighe du Maroc) http://www.ircam.ma/ +// Support des lettres unicode tifinaghe-IRCAM, néotifinaghes & touarègues. +// Les caractères tifinaghes sont accessibles en SHIFT positions pour le niveau 2, en ALTGR positions pour le niveau 3 +// Polices tifinaghes Unicode à télécharger depuis : +// http://www.ircam.ma/documents/policesclavierunicode/hapaxber.ttf (licence non libre, libre téléchargement et distribution uniquement) +// Minihowto ici: http://perso.menara.ma/~kebdani/tamazgha/gnu_amazigh.html + +partial alphanumeric_keys +xkb_symbols "tifinagh-extended" { + + name[Group1]="Berber (Morocco, Tifinagh extended)"; + + key { [ twosuperior,0x100200C ] }; + key { [ ampersand, 1 ] }; + key { [0x1002d52, 2, asciitilde ] }; + key { [ quotedbl, 3, numbersign ] }; + key { [apostrophe, 4, braceleft ] }; + key { [ parenleft, 5, bracketleft ] }; + key { [ minus, 6, bar ] }; + key { [ 0x1002d64 , 7 ] }; + key { [underscore, 8, backslash ] }; + key { [ 0x1002014, 9, asciicircum ] }; + key { [ 0x100200d, 0, at ] }; + key { [parenright, degree, bracketright ] }; + key { [ equal, plus, braceright ] }; + + key { [ 0x1002d30, 0x1002d36 ] }; + key { [ 0x1002d63, 0x1002d65 ] }; + key { [ 0x1002d3b, 0x1002d57, 0x10020ac ] }; + key { [ 0x1002d54, 0x1002d55 ] }; + key { [ 0x1002d5c, 0x1002d5f ] }; + key { [ 0x1002d62, 0x1002d42 ] }; + key { [ 0x1002d53, 0x1002d4c ] }; + key { [ 0x1002d49, 0x1002d58 ] }; + key { [ 0x1002d44, 0x1002d5d ] }; + key { [ 0x1002d43, 0x1002d5e ] }; + key { [ 0x1002d6f, 0x1002d60 ] }; + key { [ dollar, sterling, 0x10000a4] }; + + key { [ 0x1002d47, 0x1002d48 ] }; + key { [ 0x1002d59, 0x1002d5a ] }; + key { [ 0x1002d37, 0x1002d39 ] }; + key { [ 0x1002d3c, 0x1002d35 ] }; + key { [ 0x1002d33, 0x1002d33 ] }; + key { [ 0x1002d40, 0x1002d41 ] }; + key { [ 0x1002d4a, 0x1002d4b ] }; + key { [ 0x1002d3d, 0x1002d3d ] }; + key { [ 0x1002d4d, 0x1002d38 ] }; + key { [ 0x1002d4e, 0x1002d3a ] }; + key { [ 0x1002d51, percent ] }; + key { [ asterisk, mu ] }; + + key { [ 0x1002d61, 0x1002d3e ] }; + key { [ 0x1002d45, 0x1002d46 ] }; + key { [ 0x1002d5b, 0x1002d3f ] }; + key { [ 0x1002d56, 0x1002d34 ] }; + key { [ 0x1002d31, 0x1002d32 ] }; + key { [ 0x1002d4f, 0x1002d50 ] }; + key { [ comma, question ] }; + key { [ semicolon, period ] }; + key { [ colon, slash ] }; + key { [ exclam, section ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "tifinagh-extended-phonetic" { + include "ma(tifinagh-extended)" + + name[Group1]="Berber (Morocco, Tifinagh extended phonetic)"; + + key { [ 0x1002d30 ] }; + key { [ 0x1002d63, 0x1002d65 ] }; + key { [ 0x1002d3b, NoSymbol,0x10020ac ] }; + key { [ 0x1002d54, 0x1002d55 ] }; + key { [ 0x1002d5c, 0x1002d5f ] }; + key { [ 0x1002d62 ] }; + key { [ 0x1002d53 ] }; + key { [ 0x1002d49 ] }; + key { [ 0x1002d44 ] }; + key { [ 0x1002d43 ] }; + + key { [ 0x1002d47 ] }; + key { [ 0x1002d59, 0x1002d5a ] }; + key { [ 0x1002d37, 0x1002d39 ] }; + key { [ 0x1002d3c ] }; + key { [ 0x1002d33 ] }; + key { [ 0x1002d40 ] }; + key { [ 0x1002d4a ] }; + key { [ 0x1002d3d ] }; + key { [ 0x1002d4d ] }; + key { [ 0x1002d4e ] }; + + key { [ 0x1002d61 ] }; + key { [ 0x1002d45 ] }; + key { [ 0x1002d5b ] }; + key { [ 0x1002d56 ] }; + key { [ 0x1002d31 ] }; + key { [ 0x1002d4f ] }; + + include "level3(ralt_switch)" +}; + +// Tifinagh keyboard; improved from the IRCAM layout to make all +// tifinagh chars in unicode accessible (in shift positions for most +// touareg letters; in altgr position for spirants. + +partial alphanumeric_keys +xkb_symbols "tifinagh-alt" { + + name[Group1]="Berber (Morocco, Tifinagh alt.)"; + + key { [ twosuperior, asciitilde ] }; + key { [ ampersand, 1 ] }; + key { [asciitilde, 2, asciitilde ] }; + key { [ quotedbl, 3, numbersign ] }; + key { [apostrophe, 4, braceleft ] }; + key { [ parenleft, 5, bracketleft ] }; + key { [ minus, 6, bar ] }; + key { [ grave, 7, grave ] }; + key { [underscore, 8, backslash ] }; + key { [asciicircum, 9, asciicircum ] }; + key { [ at, 0, at ] }; + key { [parenright, degree, bracketright ] }; + key { [ equal, plus, braceright ] }; + + key { [ 0x1002d30 ] }; + key { [ 0x1002d63, 0x1002d65, 0x1002d64 ] }; + key { [ 0x1002d3b ] }; + key { [ 0x1002d54, 0x1002d55 ] }; + key { [ 0x1002d5c, 0x1002d5f, 0x1002d5d ] }; + key { [ 0x1002d62 ] }; + key { [ 0x1002d53 ] }; + key { [ 0x1002d49 ] }; + key { [ 0x1002d44 ] }; + key { [ 0x1002d43, 0x1002d52 ] }; + key { [ dead_circumflex ] }; + key { [ dollar, sterling ] }; + + key { [ 0x1002d47, 0x1002d48 ] }; + key { [ 0x1002d59, 0x1002d5a ] }; + key { [ 0x1002d37, 0x1002d39, 0x1002d38, 0x1002d3a ] }; + key { [ 0x1002d3c ] }; + key { [ 0x1002d33, 0x1002d36, 0x1002d34, 0x1002d35 ] }; + key { [ 0x1002d40, 0x1002d42, 0x1002d41 ] }; + key { [ 0x1002d4a, 0x1002d4c, 0x1002d4b ] }; + key { [ 0x1002d3d, 0x1002d3e, 0x1002d3f ] }; + key { [ 0x1002d4d ] }; + key { [ 0x1002d4e ] }; + key { [ percent ] }; + key { [ asterisk, mu ] }; + + key { [ 0x1002d61, 0x1002d6f, 0x1002d60 ] }; + key { [ 0x1002d45, 0x1002d46 ] }; + key { [ 0x1002d5b, 0x1002d5e ] }; + key { [ 0x1002d56, 0x1002d57, 0x1002d58 ] }; + key { [ 0x1002d31, 0x1002d31, 0x1002d32 ] }; + key { [ 0x1002d4f, 0x1002d50, 0x1002d51 ] }; + key { [ comma, question ] }; + key { [ semicolon, period ] }; + key { [ colon, slash ] }; + key { [ exclam, section ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "tifinagh-alt-phonetic" { + include "ma(tifinagh-alt)" + + name[Group1]="Berber (Morocco, Tifinagh alt. phonetic)"; + + key { [ 0x1002d30 ] }; + key { [ 0x1002d63, 0x1002d65, 0x1002d64 ] }; + key { [ 0x1002d3b ] }; + key { [ 0x1002d54, 0x1002d55 ] }; + key { [ 0x1002d5c, 0x1002d5f, 0x1002d5d ] }; + key { [ 0x1002d62 ] }; + key { [ 0x1002d53 ] }; + key { [ 0x1002d49 ] }; + key { [ 0x1002d44 ] }; + key { [ 0x1002d43, 0x1002d52 ] }; + + key { [ 0x1002d47, 0x1002d48 ] }; + key { [ 0x1002d59, 0x1002d5a ] }; + key { [ 0x1002d37, 0x1002d39, 0x1002d38, 0x1002d3a ] }; + key { [ 0x1002d3c ] }; + key { [ 0x1002d33, 0x1002d36, 0x1002d34, 0x1002d35 ] }; + key { [ 0x1002d40, 0x1002d42, 0x1002d41 ] }; + key { [ 0x1002d4a, 0x1002d4c, 0x1002d4b ] }; + key { [ 0x1002d3d, 0x1002d3e, 0x1002d3f ] }; + key { [ 0x1002d4d ] }; + key { [ 0x1002d4e ] }; + + key { [ 0x1002d61, 0x1002d6f, 0x1002d60 ] }; + key { [ 0x1002d45, 0x1002d46 ] }; + key { [ 0x1002d5b, 0x1002d5e ] }; + key { [ 0x1002d56, 0x1002d57, 0x1002d58 ] }; + key { [ 0x1002d31, 0x1002d31, 0x1002d32 ] }; + key { [ 0x1002d4f, 0x1002d50, 0x1002d51 ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/apple b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/apple new file mode 100644 index 0000000..53d260c --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/apple @@ -0,0 +1,141 @@ +// +// Keyboard modification for Apple keyboards +// + +partial default modifier_keys +xkb_symbols "extended" { + + key { [ KP_Equal ] }; + +// The key in the PC's Insert position is sometimes engraved Help (at least +// in Switzerland and Great Britain), with Insert sometimes above. But in the +// US and Canada, it remains Insert. So this should probably be an XkbOption, +// but I have to do more research. +// Perhaps Help should be the primary symbol with Insert in the 1st shift-level +// key { [ Help, Insert ] }; +// The keys next to F12, labeled F13, F14, & F15 generate codes that XFree86 +// claims not to generate. I think they should be equivalent to the PC keys +// Print Screen / SysRq, Scroll Lock, and Pause. Linux kernel bug? +// key { [ F13 ] }; // should be keycode 93 or +// key { [ F13 ] }; // should be keycode 118 +// key { [ F14 ] }; // should be keycode 123 or +// key { [ F14 ] }; // should be keycode 119 +// key { [ F15 ] }; // should be keycode 127 or +// key { [ F15 ] }; // should be keycode 120 +}; + +partial modifier_keys +xkb_symbols "laptop" { + + include "macintosh_vndr/apple(extended)" + + // The real numlock key on the iBook (shared with F5) works internally to + // the keyboard. It illuminates the Num_Lock led and locks the fn-key to + // type only the keypad keys on the letter keys (U=4, I=5, O=6, P=*, etc.). + // The key in the Num_lock position is engraved with Clear. + override key { [ Clear ] }; + // The key engraved Delete sends BKSP. To get Delete, use Shift-Delete + override key { [ BackSpace, Delete ] }; + // These keyboards only generate a when pressing fn+Alt. This makes + // it impossible to get to the third shift level on keys that are on + // the fn-keypad, so use the Enter key (right of ) for Mode_switch, + // and use fn+Enter (Apple's code for Menu) for KP_Enter. + replace key { [ ISO_Level3_Shift ] }; + modifier_map Mod5 { ISO_Level3_Shift }; + // Linux kernel bug with Menu on macs means this does not work yet +// replace key { [ KP_Enter ] }; // should be keycode 117 +}; + +partial modifier_keys +xkb_symbols "laptop_bad_switch" { + // Kept for backward compatibility + include "macintosh_vndr/apple(laptop)" +}; + +// Long Aluminium Keyboards +partial function_keys +xkb_symbols "alukbd" { + // The base is a inet PC keyboard + include "pc" + + // Additional Fxx keys + key { [ F13 ] }; + key { [ F14 ] }; + key { [ F15 ] }; + key { [ F16 ] }; + key { [ F17 ] }; + key { [ F18 ] }; + key { [ F19 ] }; + + // On aluminium keyboards, Num_Lock is replace by Clear + replace key { [ Clear ] }; + // CAPS key is always Caps_Lock, even for JIS keyboards + replace key { [ Caps_Lock ] }; + + // F1..F12 are multimedia keys when used with the 'Fn' key + // Make those multimedia actions available via ISO_Level3_Shift too, + // it is useful when the Fn key is remapped to something else (e.g. Insert) + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86KbdBrightnessDown, NoSymbol, XF86_Switch_VT_1 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86KbdBrightnessUp, NoSymbol, XF86_Switch_VT_2 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_3 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_4 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_5 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_6 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioPrev, NoSymbol, XF86_Switch_VT_7 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioPlay, NoSymbol, XF86_Switch_VT_8 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioNext, NoSymbol, XF86_Switch_VT_9 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioMute, NoSymbol, XF86_Switch_VT_10 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioLowerVolume, NoSymbol, XF86_Switch_VT_11 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioRaiseVolume, NoSymbol, XF86_Switch_VT_12 ] + }; +}; + +// Aluminium Keyboard: make F13, F14, F15 PC-ish (Print, Scroll_Lock, Pause) +partial function_keys keypad_keys +xkb_symbols "alupckeys" { + key { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key { [ Scroll_Lock ] }; + key { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + override key { [ Num_Lock, Pointer_EnableKeys ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/ch b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/ch new file mode 100644 index 0000000..2f0b4cf --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/ch @@ -0,0 +1,97 @@ +// +// 03.01.2003 +// Andreas Tobler +// modified for Swiss German Apple Extended Keyboard II + +default +partial alphanumeric_keys +xkb_symbols "extended" { + + name[Group1]= "Switzerland - German, Mac"; + + key { [ 1, plus, plusminus, infinity ] }; + key { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] }; + key { [ 3, asterisk, numbersign, leftcaret ] }; + // not displayed here + key { [ 4, ccedilla, Ccedilla, slash ] }; + key { [ 5, percent, bracketleft ] }; + key { [ 6, ampersand, bracketright ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, braceleft, Ograve ] }; + key { [ 9, parenright, braceright, Ocircumflex ] }; + key { [ 0, equal, notequal, Uacute ] }; + key { [ apostrophe, question, questiondown, NoSymbol ] }; + key { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] }; + key { [ q, Q, oe, OE ] }; + key { [ w, W, Greek_SIGMA, Aacute ] }; + key { [ e, E, EuroSign, Ediaeresis ] }; + key { [ r, R, registered, Egrave ] }; + key { [ t, T, dagger, Icircumflex ] }; + key { [ z, Z, Greek_OMEGA, Iacute ] }; + key { [ u, U, degree, Ugrave ] }; + key { [ i, I, exclamdown, idotless ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ udiaeresis, egrave, section, ydiaeresis ] }; + key { [ dead_diaeresis, exclam, grave, apostrophe ] }; + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, NoSymbol ] }; + // ligature fl + key { [ d, D, Greek_sigma, NoSymbol ] }; + // partialderivative is not available here att + key { [ f, F, function, doubledagger ] }; + key { [ g, G, at, comma ] }; + key { [ h, H, ordfeminine, periodcentered ] }; + key { [ j, J, masculine, eth ] }; + key { [ k, K, Greek_DELTA, macron ] }; + key { [ l, L, notsign, caret ] }; + key { [ odiaeresis, eacute, cent, breve ] }; + key { [ adiaeresis, agrave, ae, AE ] }; + key { [ y, Y, yen, Ydiaeresis ] }; + key { [ x, X, similarequal, trademark ] }; + key { [ c, C, copyright, NoSymbol ] }; + key { [ v, V, radical, diamond ] }; + key { [ b, B, integral, NoSymbol ] }; + key { [ n, N, dead_tilde, enopencircbullet ] }; + // to be fixed att + key { [ m, M, mu, dead_abovering ] }; + // not sure att + key { [ comma, semicolon, guillemotleft, guillemotright ] }; + key { [ period, colon, ellipsis, division ] }; + key { [ minus, underscore, hyphen, emdash ] }; + key { [ section, degree, NoSymbol, NoSymbol ] }; + // ligature fi // per mille + key { [ space, nobreakspace, nobreakspace ] }; + key { [ less, greater, lessthanequal, greaterthanequal ] }; + key { [ dollar, sterling, paragraph, enfilledcircbullet ] }; + + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "de" { + include "macintosh_vndr/ch(extended)" +}; + +partial alphanumeric_keys +xkb_symbols "fr" { + + include "macintosh_vndr/ch(extended)" + name[Group1]= "Switzerland - French, Mac"; + + override key { + [ egrave, udiaeresis, bracketleft ] + }; + override key { + [ eacute, odiaeresis ] + }; + override key { + [ agrave, adiaeresis, braceleft ] + }; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + include "macintosh_vndr/ch(fr)" // for consistent naming +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/de b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/de new file mode 100644 index 0000000..d48db42 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/de @@ -0,0 +1,92 @@ +// olh@suse.de very close to MacOS map + +default partial alphanumeric_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple US/ASCII + // keyboard and a simple German keyboard. + + include "latin" + name[Group1]= "Germany - Mac"; + + key { [ dead_circumflex, degree, notsign ] }; + key { [ 1, exclam, exclamdown, at ] }; + key { [ 2, quotedbl, twosuperior ] }; + key { [ 3, section, threesuperior,sterling ] }; + key { [ 4, dollar, onequarter, currency ] }; + key { [ 5, percent, bracketleft ] }; + key { [ 6, ampersand, bracketright ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, braceleft, asciitilde ] }; + key { [ 9, parenright, braceright ] }; + key { [ 0, equal, braceright, degree ] }; + key { [ ssharp, question, backslash, questiondown ] }; + key { [ dead_acute, dead_grave, dead_cedilla ] }; + + key { [ q, Q, guillemotleft,guillemotright ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R, registered ] }; + key { [ t, T ] }; + key { [ z, Z ] }; + key { [ u, U, diaeresis, Aacute ] }; + key { [ i, I, slash, Ucircumflex ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ udiaeresis, Udiaeresis, periodcentered, degree ] }; + key { [ plus, asterisk, asciitilde ] }; + key { [ a, A, aring, Aring ] }; + key { [ f, F ] }; + key { [ g, G, copyright ] }; + key { [ h, H, ordfeminine ] }; + key { [ l, L, at ] }; + key { [ odiaeresis, Odiaeresis, dead_acute ] }; + key { [ adiaeresis, Adiaeresis, dead_circumflex ] }; + + key { [ less, greater, bar ] }; + key { [ y, Y, guillemotleft,less ] }; + key { [ n, N, asciitilde ] }; + key { [ m, M, mu ] }; + key { [ comma, semicolon ] }; + key { [ period, colon, periodcentered, division ] }; + key { [ minus, underscore ] }; + key { [ numbersign, apostrophe, dead_grave ] }; + + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + // modify the default German layout to use Sun dead keys + include "macintosh_vndr/de(basic)" + name[Group1]= "Germany - Mac, Sun dead keys"; + + key { [ SunFA_Circum, degree, notsign ] }; + key { [ SunFA_Acute, SunFA_Grave, SunFA_Cedilla ] }; + key { [ udiaeresis, Udiaeresis, SunFA_Diaeresis ] }; + key { [ plus, asterisk, SunFA_Tilde, dead_macron ] }; + key { [ odiaeresis, Odiaeresis, SunFA_Acute ] }; + key { [ adiaeresis, Adiaeresis, SunFA_Circum ] }; + + key { [ numbersign, acute, SunFA_Grave ] }; +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + include "macintosh_vndr/de(Sundeadkeys)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + // modify the default German layout to not have any dead keys + include "macintosh_vndr/de(basic)" + name[Group1]= "Germany - Mac, no dead keys"; + + key { [ asciicircum, degree, notsign ] }; + key { [ acute, grave, cedilla ] }; + key { [ udiaeresis, Udiaeresis, diaeresis ] }; + key { [ plus, asterisk, asciitilde, macron ] }; + key { [ odiaeresis, Odiaeresis, acute ] }; + key { [ adiaeresis, Adiaeresis, asciicircum ] }; + + key { [ numbersign, apostrophe, grave ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/dk b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/dk new file mode 100644 index 0000000..bcd63a3 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/dk @@ -0,0 +1,66 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple en_US + // keyboard and a Danish keyboard with dead key support + // and all of ISO-8859-1 characters available. + + include "latin" + name[Group1]= "Denmark - Mac"; + + key { [ onehalf, section, threequarters, paragraph ]}; + key { [ less, greater, backslash, notsign ]}; + key { [ space, space, nobreakspace, nobreakspace ]}; + key { [ 1, exclam, exclamdown, onesuperior ]}; + key { [ 2, quotedbl, at, twosuperior ]}; + key { [ 3, numbersign, sterling, threesuperior ]}; + key { [ 4, EuroSign, dollar, onequarter ]}; + key { [ 5, percent, NoSymbol, cent ]}; + key { [ 6, ampersand, yen, NoSymbol ]}; + key { [ 7, slash, braceleft, division ]}; + key { [ 8, parenleft, bracketleft, guillemotleft ]}; + key { [ 9, parenright, bracketright, guillemotright ]}; + key { [ 0, equal, braceright, degree ]}; + key { [ plus, question, plusminus, questiondown ]}; + key { [ dead_acute, dead_grave, bar, brokenbar ]}; + key { [ c, C, copyright, NoSymbol ]}; + key { [ comma, semicolon, dead_cedilla, dead_ogonek ]}; + key { [ period, colon, periodcentered, dead_abovedot ]}; + key { [ minus, underscore, hyphen, macron ]}; + key { [ a, A, ordfeminine, masculine ]}; + key { [ d, D, eth, ETH ]}; + key { [ ae, AE ]}; + key { [ oslash, Ooblique ]}; + key { [ e, E, EuroSign, cent ]}; + key { [ r, R, registered, NoSymbol ]}; + key { [ t, T, thorn, THORN ]}; + key { [ i, I, NoSymbol, NoSymbol ]}; + key { [ o, O, oe, OE ]}; + key { [ aring, Aring ]}; + key { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ]}; + key { [ apostrophe, asterisk, dead_doubleacute, multiply ]}; + + include "eurosign(e)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + include "macintosh_vndr/dk(basic)" + name[Group1]= "Denmark - Mac, no dead keys"; + + key { [ acute, grave, bar, ogonek ] }; + key { [ diaeresis, asciicircum, asciitilde, dead_macron ] }; +}; + +partial alphanumeric_keys +xkb_symbols "macbookpro" { + + include "level3(win_switch)" + include "macintosh_vndr/dk(basic)" + + name[Group1]= "Denmark - Mac, MacBook Pro"; + + key { [apostrophe, asterisk, at, at ] }; + key { [ dollar, section, dollar, dollar ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/fi b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/fi new file mode 100644 index 0000000..97fcbf5 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/fi @@ -0,0 +1,11 @@ +partial default alphanumeric_keys +xkb_symbols "basic" { + include "macintosh_vndr/se(basic)" // for consistent naming + name[Group1]= "Finland - Mac"; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + include "macintosh_vndr/se(basic)" // for consistent naming + name[Group1]= "Finland - Mac, no dead keys"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/fr b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/fr new file mode 100644 index 0000000..54aabfe --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/fr @@ -0,0 +1,108 @@ +// Marc.Shapiro@inria.fr 19-sep-1998 +// modifications : Etienne Herlent june 2000 +// adapted to the new input layer : +// Martin Costabel 3-jan-2001 +////////////////////////////////////////////////////////////////// +// Petites Modification le juillet 2005 par Bin Zhang : +// 1) La ligne 83 : remplacer les deux "VoidSymbol" par oe et OE +// 2) La ligne 89 : remplacer "VoidSymbol" par "EuroSign" +// ( 1) et 2) fonctionnent sous UTF-8, mais pas sous iso-8859-1. ) +// 3) Remplacer la ligne 148 par la ligne 149 pour que la touche Alt_L +// (la touche Apple-Pomme) fonctionne correctement sous Xorg, une idée +// motivée par http://www.linux-france.org/macintosh/clavier_gentoo.html +////////////////////////////////////////////////////////////////// +// This map is an almost-complete mapping of the standard French +// MacIntosh keyboard under Xwindows. I tried to remain as faithful +// as possible to the Mac meaning of each key. I did this entirely by +// hand and by intuition, relying on the Clavier (Keyboard?) Desktop +// Accessory for the Mac meaning of keys, and on reading keysymdef.h +// to intuit the corresponding X names. Lacking proper documentation, +// I may have made some mistakes. + +// Entries marked CHECK are particularly uncertain + +// Entries marked MISSING mark Mac characters for which I was unable +// to find a corresponding keysym. (Some for sure don't: e.g. the +// Apple mark and the oe/OE character; others I may have simply not +// found.) + +default +xkb_symbols "extended" { + + name[Group1]= "France - Mac"; + + key { [ Escape ] }; + + key { [ at, numbersign, periodcentered, Ydiaeresis ] }; + key { [ KP_Enter ] }; + key { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple + key { [ eacute, 2, ediaeresis, Eacute ] }; + key { [ quotedbl, 3, leftdoublequotemark, rightdoublequotemark ] }; + key { [ apostrophe, 4, leftsinglequotemark, rightsinglequotemark ] }; + key { [ parenleft, 5, braceleft, bracketleft ] }; + key { [ section, 6, paragraph, aring ] }; + key { [ egrave, 7, guillemotleft, guillemotright] }; + key { [ exclam, 8, exclamdown, Ucircumflex ] }; + key { [ ccedilla, 9, Ccedilla, Aacute ] }; + key { [ agrave, 0, oslash, Oslash ] }; + key { [ parenright, degree, braceright, bracketright ] }; + key { [ minus, underscore, emdash, endash ] }; + key { [ BackSpace, VoidSymbol, Delete, VoidSymbol ] }; + + key { [ Tab, ISO_Left_Tab ] }; + key { [ a, A, ae, AE ] }; + key { [ z, Z, Acircumflex, Aring ] }; + key { [ e, E, ecircumflex, Ecircumflex ] }; + key { [ r, R, registered, currency ] }; + key { [ t, T, dagger, trademark ] }; + key { [ y, Y, Uacute, Ydiaeresis ] }; + key { [ u, U, masculine, ordfeminine ] }; + key { [ i, I, icircumflex, idiaeresis ] }; + key { [ o, O, oe, OE ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [dead_circumflex,dead_diaeresis,ocircumflex, Ocircumflex ] }; + key { [ dollar, asterisk, EuroSign, yen ] }; + key { [ Caps_Lock ] }; + key { [ q, Q, doubledagger, Greek_OMEGA ] }; + key { [ s, S, Ograve, Greek_SIGMA ] }; + key { [ d, D, Greek_delta, Greek_DELTA ] }; + key { [ f, F, VoidSymbol, periodcentered ] }; + key { [ g, G, VoidSymbol, VoidSymbol ] }; // MISSING: ligature fi,fl + key { [ h, H, Igrave, Icircumflex ] }; + key { [ j, J, Idiaeresis, Iacute ] }; + key { [ k, K, Egrave, Ediaeresis ] }; + key { [ l, L, notsign, bar ] }; + key { [ m, M, mu, Oacute ] }; + key { [ ugrave, percent, Ugrave, 0x1002030 ] }; + key { [ dead_grave, sterling, at, numbersign ] }; + key { [ Return ] }; + + key { [ less, greater, lessthanequal, greaterthanequal ] }; + key { [ w, W, guilsinglleft, guilsinglright ] }; // MISSING: half-guillemot (single angle bracket) + key { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK: similarequal; MISSING: extra-slanted slash + key { [ c, C, copyright, cent ] }; + key { [ v, V, diamond, radical ] }; // CHECK diamond + key { [ b, B, ssharp, integral ] }; + key { [ n, N, dead_tilde, asciitilde ] }; + key { [ comma, question, infinity, questiondown ] }; + key { [ semicolon, period, ellipsis, periodcentered ] }; + key { [ colon, slash, division, backslash ] }; + key { [ equal, plus, notequal, plusminus ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + + + +xkb_symbols "nodeadkeys" { +include "macintosh_vndr/fr(extended)" + name[Group1]= "France - Mac, no dead keys"; + + key { [ ampersand, 1, VoidSymbol, acute ] }; // MISSING: Apple + key { [asciicircum,diaeresis,ocircumflex, Ocircumflex ] }; + key { [ grave, sterling, at, numbersign ] }; + + key { [ n, N, asciitilde, dead_tilde ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/gb b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/gb new file mode 100644 index 0000000..f85078a --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/gb @@ -0,0 +1,17 @@ +partial default alphanumeric_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple U.K. keyboard layout + + include "macintosh_vndr/us" + + name[Group1]= "United Kingdom - Mac"; + + key { [ 2, at, EuroSign ] }; + key { [ 3, sterling, numbersign ] }; + key { [ section, plusminus ] }; + key { [ grave, asciitilde ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/is b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/is new file mode 100644 index 0000000..569ea56 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/is @@ -0,0 +1,127 @@ +// +// This file describes the differences between a Macintosh US Extended +// keymap and an Icelandic keyboard layout in the style of Mac OS and Mac OS X +// +// Copyright (C) 2004, 2006 Ævar Arnfjörð Bjarmason +// +// Permission to use, copy, modify, distribute, and sell this software and its +// documentation for any purpose is hereby granted without fee, provided that +// the above copyright notice appear in all copies and that both that +// copyright notice and this permission notice appear in supporting +// documentation. +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder shall +// not be used in advertising or otherwise to promote the sale, use or +// other dealings in this Software without prior written authorization of +// the copyright holder. +// +// = HISTORY +// * 2004-09-28: +// Initial cleanroom writing of the keymap, I just booted Mac OS X, opened +// TextEdit.app and wrote down what the value produced by each key was when I +// pressed it, a for a, A for shift + a, å for lalt + a etc and made the +// keymap from that information +// +// * 2006-01-14: +// Revised the comments in the file +// +// = NOTES +// * 20 characters in this keymap have no named character defined in +// include/keysymdef.h and as a result their Unicode code points in +// hexadecimal are listed here, these can be generated with the following +// perl command: +// $ perl -CA -e 'printf "U%x\n", ord shift' Æ +// and converted back like: +// $ perl -CO -le '$_=shift;s/[^a-f0-9]//ig;print chr hex' Uc6 +// * The Apple logo appears twice on this keymap like the Mac OS and Mac OS X +// keymaps. In the MacRoman encoding it has the code point 0xF0 (240) but it +// has no assigned code point in Unicode, the code point Apple uses for it is +// U+F8FF (63743) which is in the BMP's Private Use Area (U+E000–U+F8FF) +// * This keymap has only been tested on a PowerBook6,5 (iBook G4) but it +// should work on other Apple laptop models which use the same keyboard +// layout. It will probably work on standard sized keyboards with little or +// no modification but it might not support them fully, please report if +// you're able to get it running with such a keyboard + +partial default alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Iceland - Mac"; + + //-- Row 5 (E) --// + key { [ sterling, section, UF8FF, apostrophe ] }; + key { [ 1, exclam, exclamdown, VoidSymbol ] }; + key { [ 2, quotedbl, at, VoidSymbol ] }; + key { [ 3, numbersign, U2122, sterling ] }; + key { [ 4, dollar, U00A2, EuroSign ] }; + key { [ 5, percent, U2030, infinity ] }; + key { [ 6, ampersand, asciicircum, U2044 ] }; + key { [ 7, slash, backslash, U00F7 ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal, U2260, U2248 ] }; + key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; + key { [ minus, underscore, endash, emdash ] }; + + + //-- Row 4 (D) --// + key { [ q, Q, paragraph, VoidSymbol ] }; + key { [ w, W, U2211, VoidSymbol ] }; + key { [ e, E, dead_grave, VoidSymbol ] }; + key { [ r, R, registered, VoidSymbol ] }; + key { [ t, T, degree, VoidSymbol ] }; + key { [ y, Y, yen, VoidSymbol ] }; + key { [ u, U, dead_diaeresis, VoidSymbol ] }; + key { [ i, I, U0131, U00AA ] }; + key { [ o, O, dead_circumflex,U00BA ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ eth, Eth, U201e, U201c ] }; + key { [ apostrophe, question, questiondown, U00B7 ] }; + + + //-- Row 3 (C) --// + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, abovedot ] }; + key { [ d, D, U2202, U2DA ] }; + key { [ f, F, U192, macron ] }; + key { [ g, G, copyright, breve ] }; + key { [ h, H, bar, VoidSymbol ] }; + key { [ j, J, U2206, U2dd ] }; + key { [ k, K, U00AC, VoidSymbol ] }; + key { [ l, L, U2026, caron ] }; + key { [ ae, AE, oe, OE ] }; + key { [ dead_acute, dead_diaeresis, U201A, U2018 ] }; + key { [ plus, asterisk, U2022, plusminus ] }; + + + //-- Row 2 (B) --// + key { [ less, greater, section, UF8FF ] }; + key { [ z, Z, U3A9, VoidSymbol ] }; + key { [ x, X, asciitilde, VoidSymbol ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, U221A, U25CA ] }; + key { [ b, B, U222B, VoidSymbol ] }; + key { [ n, N, dead_tilde, VoidSymbol ] }; + key { [ m, M, U00B5, VoidSymbol ] }; + key { [ comma, semicolon, lessthanequal, guillemotleft ] }; + key { [ period, colon, greaterthanequal,guillemotright ] }; + key { [ thorn, Thorn, U2019, U201d ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + include "macintosh_vndr/is(basic)" // for consistent naming + name[Group1]= "Iceland - Mac, no dead keys"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/it b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/it new file mode 100644 index 0000000..17f78e9 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/it @@ -0,0 +1,60 @@ +default +xkb_symbols "extended" { + + name[Group1]= "Italy - Mac"; + + key { [ less, greater ] }; + key { [ at, numbersign, periodcentered ] }; + key { [ ampersand, 1, guillemotleft,guillemotright ] }; + key { [ quotedbl, 2 ] }; + key { [ apostrophe, 3 ] }; + key { [ parenleft, 4, braceleft, bracketleft ] }; + key { [ ccedilla, 5, Ccedilla, Iacute ] }; + key { [ egrave, 6, paragraph, periodcentered] }; + key { [ parenright, 7, braceright, bracketright ] }; + key { [ sterling, 8, infinity ] }; + key { [ agrave, 9, acute, Ocircumflex ] }; + key { [ eacute, 0, grave, Oacute ] }; + key { [ minus, underscore ] }; + key { [ equal, plus, notequal, plusminus ] }; + + key { [ q, Q ] }; + key { [ z, Z ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R, registered ] }; + key { [ t, T ] }; + key { [ y, Y, Uacute, ydiaeresis ] }; + key { [ u, U ] }; + key { [ i, I, icircumflex, idiaeresis ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ igrave, asciicircum ] }; + key { [ dollar, asterisk ] }; + key { [ section, degree, at, numbersign ] }; + + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H, Igrave, Icircumflex ] }; + key { [ j, J, Idiaeresis, Iacute ] }; + key { [ k, K, Egrave, Ediaeresis ] }; + key { [ l, L, ssharp, bar ] }; + key { [ m, M, mu, Oacute ] }; + key { [ ugrave, percent, ae, AE ] }; + + key { [ w, W ] }; + key { [ x, X ] }; + key { [ c, C, copyright, copyright ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N, dead_tilde ] }; + key { [ comma, question, questiondown ] }; + key { [ semicolon, period ] }; + key { [ colon, slash, bar, backslash ] }; + key { [ ograve, exclam, exclamdown ] }; + + include "kpdl(dot)" + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/jp b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/jp new file mode 100644 index 0000000..4ca1fcc --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/jp @@ -0,0 +1,35 @@ +// JIS symbol mapping for Apple Aluminium +// (Damien Ciabrini ) +// +// The JIS version of the Aluminium Keyboard is made of +// QWERTY-like map for the latin part +// PC98-like map for the kana part +// EISU and KANA keys found on other Apple keyboards + +partial default alphanumeric_keys +xkb_symbols "usmac" { + name[Group1] = "Japan - Macintosh, US map"; + include "jp(common)" + + key { [ KP_Separator ] }; + key { [ yen, bar ] }; + replace key { [ 0 ] }; + replace key { [ underscore ] }; + replace key { [ Caps_Lock ] }; +}; + +partial alphanumeric_keys +xkb_symbols "mac" { + name[Group1] = "Japan - Macintosh"; + include "jp(kana)" + + replace key { [ Caps_Lock ] }; +}; + +partial alphanumeric_keys +xkb_symbols "alujiskeys" { + // On JIS USB keyboard, EISU and KANA replace Hangul and Hanja + // see keycodes macintosh(jisevdev) + replace key { [ Hiragana_Katakana ] }; + replace key { [ Eisu_toggle ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/latam b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/latam new file mode 100644 index 0000000..485f127 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/latam @@ -0,0 +1,35 @@ +partial default alphanumeric_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple mac_US + // keyboard and a very simple Spanish keyboard. + + include "latin" + name[Group1]= "Latin American - Mac"; + + key { [ bracketleft, bracketright, braceleft, braceright ] }; + key { [ less, greater, bracketleft, braceleft ] }; + key { [ 1, exclamdown ] }; + key { [ 2, exclam, at, oneeighth ] }; + key { [ 3, numbersign, guillemotleft, guillemotright ] }; + key { [ 4, dollar, yen, Icircumflex ] }; + key { [ 5, percent ] }; + key { [ 6, slash, backslash, Idiaeresis ] }; + key { [ 7, ampersand, bar, Iacute ] }; + key { [ 8, asterisk, degree ] }; + key { [ 9, parenleft, sterling, Ocircumflex ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus, plusminus ] }; + key { [ dead_grave, degree ] }; + key { [ dead_acute, dead_diaeresis, bar ] }; + + key { [ comma, questiondown ] }; + key { [ period, question ] }; + key { [ ccedilla, Ccedilla ] }; + key { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/nl b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/nl new file mode 100644 index 0000000..ad0ee4b --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/nl @@ -0,0 +1,9 @@ +partial default alphanumeric_keys +xkb_symbols "basic" { + + include "latin" + + name[Group1]= "Netherlands - Mac"; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/no b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/no new file mode 100644 index 0000000..277ab35 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/no @@ -0,0 +1,48 @@ +partial default alphanumeric_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple Norwegian keyboard. + + include "latin" + + name[Group1]= "Norway - Mac"; + + key { [ bar, section ] }; + key { [ 2, quotedbl, at, oneeighth ] }; + key { [ 3, numbersign, sterling, sterling ] }; + key { [ 4, currency, dollar, dollar ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal ] }; + key { [ plus, question ] }; + key { [ dead_grave, dead_acute, acute, dead_ogonek ] }; + + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + key { [ oslash, Ooblique, odiaeresis, Odiaeresis ] }; + key { [ ae, AE ] }; + key { [ aring, Aring ] }; + key { [ diaeresis, asciicircum, asciitilde, dead_macron ] }; + key { [ at, asterisk ] }; + key { [ less, greater ] }; + + include "eurosign(e)" + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // Modifies the basic Norwegian layout to no dead keys + include "macintosh_vndr/no(basic)" + name[Group1]= "Norway - Mac, no dead keys"; + + key { [ grave, acute, acute, ogonek ] }; + key { [ diaeresis, asciicircum, asciitilde, macron ] }; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/pt b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/pt new file mode 100644 index 0000000..78f47cf --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/pt @@ -0,0 +1,60 @@ +// mac version from Ricardo Cabral + +partial default alphanumeric_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple Portuguese keyboard. + + include "latin" + + name[Group1]= "Portugal - Mac"; + + key { [ less, greater, bar, brokenbar ] }; + key { [ 2, quotedbl, at, oneeighth ] }; + key { [ 3, numbersign, sterling, sterling ] }; + key { [ 4, dollar, section, dollar ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal ] }; + key { [ apostrophe, question ] }; + key { [ plus, asterisk, dead_diaeresis ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + key { [ ccedilla, Ccedilla ] }; + key { [ dead_tilde, dead_circumflex ] }; + key { [ backslash, bar ] }; + key { [ masculine, ordfeminine ] }; + key { [ dead_acute, dead_grave ] }; + + include "eurosign(e)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + include "macintosh_vndr/pt(basic)" // for consistent naming + name[Group1]= "Portugal - Mac, Sun dead keys"; + + key { [ plus, asterisk, SunFA_Diaeresis, SunFA_Diaeresis ] }; + key { [ SunFA_Tilde, SunFA_Circum ] }; + key { [ SunFA_Acute, SunFA_Grave ] }; +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + include "macintosh_vndr/pt(Sundeadkeys)" // for consistent naming +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + include "macintosh_vndr/pt(basic)" // for consistent naming + name[Group1]= "Portugal - Mac, no dead keys"; + + key { [ plus, asterisk, quotedbl, quotedbl ] }; + key { [ asciitilde, asciicircum ] }; + key { [ acute, grave ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/se b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/se new file mode 100644 index 0000000..8b823ae --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/se @@ -0,0 +1,44 @@ +partial default alphanumeric_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple Swedish(Sweden) keyboard. + + include "latin" + + name[Group1]= "Sweden - Mac"; + + key { [ section, degree ] }; + + key { [ 1, exclam, copyright, exclamdown ] }; + key { [ 2, quotedbl, at, oneeighth ] }; + key { [ 3, numbersign, sterling, yen ] }; + key { [ 4, currency, dollar, cent ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ comma, semicolon ] }; + key { [ 0, equal ] }; + key { [ plus, question ] }; + key { [ acute, grave ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; + key { [ adiaeresis, Adiaeresis, ae, AE ] }; + key { [ aring, Aring ] }; + key { [ diaeresis, asciicircum, asciitilde ] }; + key { [ apostrophe, asterisk, at ] }; + key { [ less, greater, bar, brokenbar ] }; + + include "kpdl(comma)" + include "eurosign(e)" + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + include "macintosh_vndr/se(basic)" // for consistent naming + name[Group1]= "Sweden - Mac, no dead keys"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/us b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/us new file mode 100644 index 0000000..58bfee5 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/macintosh_vndr/us @@ -0,0 +1,145 @@ +// symbols definition for a Macintosh "Extended" keyboard + +default xkb_symbols "extended" { + + name[Group1]= "USA"; + key { [ Escape ] }; + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ backslash, bar ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + + key { [ space ] }; + + include "eurosign(e)" + include "keypad(overlay)" + + key { [ equal ] }; +}; + +hidden +xkb_symbols "oldmac" { + + include "macintosh_vndr/us(extended)" + + // Begin "Function" section + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + key { [ F11 ] }; + key { [ F12 ] }; + key { [ Print ] }; + key { [ Scroll_Lock ] }; + key { [ Pause ] }; + // End "Function" section + + // Begin "Editing" section + key { [ Insert ] }; + key { [ Home ] }; + key { [ Prior ] }; + key { [ Delete ] }; + key { [ End ] }; + key { [ Next ] }; + + key { [ Up ] }; + key { [ Left ] }; + key { [ Down ] }; + key { [ Right ] }; + // End "Editing" section + + key { [ BackSpace ] }; + key { [ Tab, ISO_Left_Tab ] }; + key { [ Return ] }; + key { [ Caps_Lock ] }; + key { [ Num_Lock, Pointer_EnableKeys ] }; + + // Begin "Modifier" section + key { [ Shift_L ] }; + key { [ Shift_R ] }; + key { [ Control_L ] }; + key { [ Control_R ] }; + key { [ Alt_L, Meta_L ] }; + key { [ Alt_R, Meta_R ] }; + key { [ Super_L ] }; + key { [ Super_R ] }; + // End "Modifier" section + + // begin modifier mappings + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control{ Control_L, Control_R }; + modifier_map Mod2 { Num_Lock }; + + // Fake keys for virtual<->real modifiers mapping + key { [ ISO_Level3_Shift ] }; + key { [ Mode_switch ] }; + modifier_map Mod5 { , }; + + key { [ NoSymbol, Alt_L ] }; + modifier_map Mod1 { , }; + + key { [ NoSymbol, Meta_L ] }; + modifier_map Mod1 { }; + + key { [ NoSymbol, Super_L ] }; + modifier_map Mod4 { }; + + key { [ NoSymbol, Hyper_L ] }; + modifier_map Mod4 { }; + // end modifier mappings + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/mao b/squashfs-root/usr/share/X11/xkb/symbols/mao new file mode 100644 index 0000000..cc73d25 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/mao @@ -0,0 +1,22 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + // Adds the macrons needed for the Maori language to + // a simple US keyboard layout. + + include "latin" + + name[Group1]="Maori"; + + key { [ a, A, amacron, Amacron ] }; + key { [ e, E, emacron, Emacron ] }; + key { [ i, I, imacron, Imacron ] }; + + key { [ o, O, omacron, Omacron ] }; + key { [ u, U, umacron, Umacron ] }; + + key { type[Group1]="TWO_LEVEL", + [ ISO_Level3_Shift, Multi_key ] }; + + modifier_map Mod5 { }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/md b/squashfs-root/usr/share/X11/xkb/symbols/md new file mode 100644 index 0000000..f890233 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/md @@ -0,0 +1,90 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "ro" + + name[Group1]="Moldavian"; +}; + + +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ~ │ ! │ " │ # │ ; │ % │ : │ ? │ * │ ( ̣ │ ) │ -- │ + ┃ ⌫ Back ┃ +// │ ` │ 1 │ 2 @ │ 3 │ 4 $ │ 5 € │ 6 ^ │ 7 & │ 8 │ 9 │ 0 │ - │ = ┃ space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ Ţ Q │ Ê W │ E │ R │ T │ Y │ U │ İ │ O │ P │ Ö { │ Ü } ┃ Enter ┃ +// ┃Tab ↹ ┃ ţ q │ ê w │ e │ r │ t │ y │ u │ i │ o │ p │ ö [ │ ü ] ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ A │ S │ D │ F │ G │ H │ J │ K │ L │Ş │I │ / ┃ ┃ +// ┃Caps ⇬ ┃ a │ s │ d │ f │ g │ h │ j │ k │ l │ş │ı' │ \ ┃ ┃ +// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ │ Z │ Ç X │ C │ V │ B │ N │ M │Ä │< │> ┃ ┃ +// ┃Shift ⇧ │ z │ ç x │ c │ v │ b │ n │ m │ä │, │. ┃Shift ⇧ ┃ +// ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Space ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + + +// A, Ä, B, C, Ç, D, E, Ê, F, G, H, I, İ, J, K, L, M, N, O, Ö, P, R, S, Ş, T, Ţ, U, Ü, V, Y, Z. + +partial alphanumeric_keys +xkb_symbols "gag" { + + include "us(basic)" + + name[Group1]="Moldavian (Gagauz)"; + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, semicolon, dollar ] }; + key { [ 5, percent, EuroSign, cent ] }; + key { [ 6, colon, asciicircum ] }; + key { [ 7, question, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ tcedilla, Tcedilla, q, Q ] }; + key { [ ecircumflex, Ecircumflex, w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, Iabovedot, i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ odiaeresis, Odiaeresis, bracketleft, braceleft ] }; + key { [ udiaeresis, Udiaeresis, bracketright, braceright ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ scedilla, Scedilla ] }; + key { [ idotless, I, apostrophe ] }; + + key { [ z, Z ] }; + key { [ ccedilla, Ccedilla, x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ adiaeresis, Adiaeresis ] }; + key { [ comma, less ] }; + key { [ period, greater, slash ] }; + + key { [ backslash, bar ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/me b/squashfs-root/usr/share/X11/xkb/symbols/me new file mode 100644 index 0000000..2b01be7 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/me @@ -0,0 +1,66 @@ +// Montenegro keyboard mapping +// +// Initially, a copy of Serbian variants +// + +default partial alphanumeric_keys +xkb_symbols "basic" { + include "rs(latin)" + name[Group1]= "Montenegrin"; + + key { [ any, any, zacute, Zacute ] }; // z + key { [ any, any, sacute, Sacute ] }; // s +}; + +partial alphanumeric_keys +xkb_symbols "cyrillic" { + include "rs(basic)" + name[Group1]= "Montenegrin (Cyrillic)"; +}; + +partial alphanumeric_keys +xkb_symbols "cyrillicyz" { + include "rs(yz)" + name[Group1]= "Montenegrin (Cyrillic, ZE and ZHE swapped)"; +}; + +partial alphanumeric_keys +xkb_symbols "latinunicode" { + include "rs(latinunicode)" + name[Group1]= "Montenegrin (Latin, Unicode)"; + + key { [ any, any, zacute, Zacute ] }; // z + key { [ any, any, sacute, Sacute ] }; // s +}; + +partial alphanumeric_keys +xkb_symbols "latinyz" { + include "rs(latinyz)" + name[Group1]= "Montenegrin (Latin, QWERTY)"; + + key { [ any, any, zacute, Zacute ] }; // z + key { [ any, any, sacute, Sacute ] }; // s +}; + +partial alphanumeric_keys +xkb_symbols "latinunicodeyz" { + include "rs(latinunicodeyz)" + name[Group1]= "Montenegrin (Latin, Unicode, QWERTY)"; + + key { [ any, any, zacute, Zacute ] }; // z + key { [ any, any, sacute, Sacute ] }; // s +}; + +xkb_symbols "cyrillicalternatequotes" { + include "rs(alternatequotes)" + name[Group1]= "Montenegrin (Cyrillic with guillemets)"; +}; + +xkb_symbols "latinalternatequotes" { + include "rs(latinalternatequotes)" + name[Group1]= "Montenegrin (Latin with guillemets)"; + + key { [ any, any, zacute, Zacute ] }; // z + key { [ any, any, sacute, Sacute ] }; // s + key { [ any, any, guillemotleft, guillemotright ] }; // < +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/mk b/squashfs-root/usr/share/X11/xkb/symbols/mk new file mode 100644 index 0000000..ed87745 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/mk @@ -0,0 +1,65 @@ +// based on keyboard map: +// Author: Damjan Georgievski +// Revision: 1.5 + +default partial alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Macedonian"; + + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_lje, Cyrillic_LJE ] }; + key { [ Cyrillic_nje, Cyrillic_NJE ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_dzhe, Cyrillic_DZHE ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Macedonia_dse, Macedonia_DSE ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_je, Cyrillic_JE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Macedonia_kje, Macedonia_KJE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Macedonia_gje, Macedonia_GJE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ equal, plus ] }; + key { [ minus, underscore ] }; + key { [ dead_grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, doublelowquotemark ] }; + key { [ 3, leftdoublequotemark ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ slash, question ] }; + + include "kpdl(comma)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + include "mk(basic)" + name[Group1]= "Macedonian (no dead keys)"; + key { [ grave, asciitilde ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ml b/squashfs-root/usr/share/X11/xkb/symbols/ml new file mode 100644 index 0000000..dc388a8 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ml @@ -0,0 +1,83 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "fr(basic)" + + name[Group1]="Bambara"; + + key { [ n, N, U0272, U019D ] }; // n N ɲ Ɲ + key { [ s, S, U0161, U0160 ] }; // s S š Š + key { [ g, G, U0254, U0186 ] }; // g G ɔ Ɔ + key { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ + key { [ z, Z, U017E, U017d ] }; // z Z ž Ž + key { [ e, E, U025B, U0190 ] }; // e E ɛ Ɛ + +}; + +partial alphanumeric_keys +xkb_symbols "fr-oss" { + + include "fr(oss)" + + name[Group1]="French (Mali, alt.)"; + + // š Š on d replaces ë Ë + // ɲ Ɲ on j replaces ü Ü + // ŋ Ŋ on m replaces ö Ö + // ž Ž on z replaces â  + // ɛ Ɛ on r replaces ê Ê + // ɔ Ɔ on p replaces ô Ô + + key { [ d, D, U0161, U0160 ] }; // d D š Š + key { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ + key { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ + key { [ z, Z, U017E, U017d ] }; // z Z ž Ž + key { [ r, R, U025B, U0190 ] }; // r R ɛ Ɛ + key { [ p, P, U0254, U0186 ] }; // p P ɔ Ɔ +}; + +partial alphanumeric_keys +xkb_symbols "us-mac" { + + include "us(mac)" + + name[Group1]="English (Mali, US, Macintosh)"; + + // ž Ž on z replaces Ω ¸ + // ɛ Ɛ on a replaces å Å + // š Š on s replaces ß + // ɲ Ɲ on j replaces ∆ ½ + // ŋ Ŋ on k replaces °  + // ɔ Ɔ on o replaces ø Ø + + key { [ z, Z, U017E, U017d ] }; // z Z ž Ž + key { [ a, A, U025B, U0190 ] }; // a A ɛ Ɛ + key { [ s, S, U0161, U0160 ] }; // s S š Š + key { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ + key { [ k, K, U014B, U014A ] }; // k K ŋ Ŋ + key { [ o, O, U0254, U0186 ] }; // o O ɔ Ɔ + +}; + +partial alphanumeric_keys +xkb_symbols "us-intl" { + + include "us(intl)" + + name[Group1]="English (Mali, US, intl.)"; + + // ž Ž on x replaces + // š Š on s replaces ß § + // ɲ Ɲ on h replaces + // ŋ Ŋ on j replaces + // ɛ Ɛ on w replaces å Å + // ɔ Ɔ on o replaces ó Ó + + key { [ x, X, U017E, U017d ] }; // x X ž Ž + key { [ s, S, U0161, U0160 ] }; // s S š Š + key { [ h, H, U0272, U019D ] }; // h H ɲ Ɲ + key { [ j, J, U014B, U014A ] }; // j J ŋ Ŋ + key { [ w, W, U025B, U0190 ] }; // w W ɛ Ɛ + key { [ o, O, U0254, U0186 ] }; // o O ɔ Ɔ + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/mm b/squashfs-root/usr/share/X11/xkb/symbols/mm new file mode 100644 index 0000000..a680a31 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/mm @@ -0,0 +1,56 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Burmese"; + + key { [ U1050, U100E, grave, asciitilde ] }; + key { [ U1041, U100D, 1, exclam ] }; + key { [ U1042, U1052, 2, at ] }; + key { [ U1043, U100B, 3, numbersign ] }; + key { [ U1044, U1053, 4, dollar ] }; + key { [ U1045, U1054, 5, percent ] }; + key { [ U1046, U1055, 6, asciicircum ] }; + key { [ U1047, U101B, 7, ampersand ] }; + key { [ U1048, asterisk, 8, asterisk ] }; + key { [ U1049, parenleft, 9, parenleft ] }; + key { [ U1040, parenright, 0, parenright ] }; + key { [ minus, underscore, minus, underscore ] }; + key { [ equal, plus, equal, plus ] }; + + key { [ U1006, U1008, q, Q ] }; + key { [ U1010, U101D, w, W ] }; + key { [ U1014, U1023, e, E ] }; + key { [ U1019, U104E, r, R ] }; + key { [ U1021, U1024, t, T ] }; + key { [ U1015, U104C, y, Y ] }; + key { [ U1000, U1025, u, U ] }; + key { [ U1004, U104D, i, I ] }; + key { [ U101E, U103F, o, O ] }; + key { [ U1005, U100F, p, P ] }; + key { [ U101F, U1027, bracketleft, braceleft ] }; + key { [ U1029, U102A, bracketright, braceright ] }; + + key { [ U1031, U1017, a, A ] }; + key { [ U103B, U103E, s, S ] }; + key { [ U102D, U102E, d, D ] }; + key { [ U103A, U1039, f, F ] }; + key { [ U102B, U103D, g, G ] }; + key { [ U1037, U1036, h, H ] }; + key { [ U103C, U1032, j, J ] }; + key { [ U102F, U1012, k, K ] }; + key { [ U1030, U1013, l, L ] }; + key { [ U1038, U1002, semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ U1016, U1007, z, Z ] }; + key { [ U1011, U100C, x, X ] }; + key { [ U1001, U1003, c, C ] }; + key { [ U101C, U1020, v, V ] }; + key { [ U1018, U101A, b, B ] }; + key { [ U100A, U1009, n, N ] }; + key { [ U102C, U1026, m, M ] }; + key { [ comma, U104A, comma, less ] }; + key { [ period, U104B, period, greater ] }; + key { [ slash, question ] }; + + key { [ U104F, U1051, backslash, bar ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/mn b/squashfs-root/usr/share/X11/xkb/symbols/mn new file mode 100644 index 0000000..0f471d9 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/mn @@ -0,0 +1,80 @@ +// based on: +// Mongolian standard keyboard +// Author Sanlig Badral +// 2002/12/7 Version 1.0 + +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]= "Mongolian"; + + key { [ equal, plus, degree ] }; + key { [ 1, numerosign, multiply ] }; + key { [ 2, minus, division ] }; + key { [ 3, quotedbl, plusminus ] }; + key { [ 4, U20ae, notsign ] }; // Tugrik sign + key { [ 5, colon, NoSymbol ] }; + key { [ 6, period, notequal ] }; + key { [ 7, underscore, ampersand ] }; + key { [ 8, comma, asterisk ] }; + key { [ 9, percent, bracketleft ] }; + key { [ 0, question, bracketright ] }; + key { [ Cyrillic_ie, Cyrillic_IE, X ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, L ] }; + + key { [ Cyrillic_ef, Cyrillic_EF, apostrophe ] }; + key { [ Cyrillic_tse, Cyrillic_TSE, grave ] }; + key { [ Cyrillic_u, Cyrillic_U, EuroSign ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, registered ] }; + key { [ Cyrillic_e, Cyrillic_E, trademark ] }; + key { [ Cyrillic_en, Cyrillic_EN, yen ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, doublelowquotemark ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, leftdoublequotemark ] }; + key { [ Cyrillic_u_straight,Cyrillic_U_straight,rightdoublequotemark] }; + key { [ Cyrillic_ze, Cyrillic_ZE, NoSymbol ] }; + key { [ Cyrillic_ka, Cyrillic_KA, braceleft ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, braceright ] }; + + key { [ Cyrillic_shorti, Cyrillic_SHORTI, mu ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU, sterling ] }; + key { [ Cyrillic_be, Cyrillic_BE, dollar ] }; + key { [ Cyrillic_o_bar, Cyrillic_O_bar, rightdoublequotemark ] }; + key { [ Cyrillic_a, Cyrillic_A, Cyrillic_yeru ] }; + key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_YERU ] }; + key { [ Cyrillic_er, Cyrillic_ER, Cyrillic_e ] }; + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_E ] }; + key { [ Cyrillic_el, Cyrillic_EL, numerosign ] }; + key { [ Cyrillic_de, Cyrillic_DE, section ] }; + key { [ Cyrillic_pe, Cyrillic_PE, ellipsis ] }; + key { [ exclam, bar, bar ] }; + + key { [ parenleft, parenright, NoSymbol ] }; + key { [ Cyrillic_ya, Cyrillic_YA, emdash ] }; + key { [ Cyrillic_che, Cyrillic_CHE, endash ] }; + key { [ Cyrillic_io, Cyrillic_IO, copyright ] }; + key { [ Cyrillic_es, Cyrillic_ES, NoSymbol ] }; + key { [ Cyrillic_em, Cyrillic_EM, NoSymbol ] }; + key { [ Cyrillic_i, Cyrillic_I, less ] }; + key { [ Cyrillic_te, Cyrillic_TE, greater ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, guillemotleft ] }; + key { [ Cyrillic_ve, Cyrillic_VE, guillemotright ] }; + key { [ Cyrillic_yu, Cyrillic_YU, backslash ] }; + + key { [ space, space, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + +// Contact: Walter Bender + + include "mn(basic)" + + key { [ 7, semicolon, ampersand ] }; + + key { [ backslash, bar, exclam ] }; + + include "group(olpc)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/mt b/squashfs-root/usr/share/X11/xkb/symbols/mt new file mode 100644 index 0000000..f602747 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/mt @@ -0,0 +1,76 @@ +// Maltese keyboard map (based on MSA Standard DMS100) +// by Ramon Casha (ramon.casha@linux.org.mt) + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin" + + name[Group1]="Maltese"; + + // Copied from GB layout + key { [ 2, quotedbl, twosuperior, oneeighth ] }; + key { [ 4, dollar, EuroSign, onequarter ] }; + key { [apostrophe, at, dead_circumflex, dead_caron] }; + key { [numbersign, asciitilde, dead_grave, dead_breve ] }; + + // The following four sets are the four additional letters, with the UK + // equivalents + key { [ cabovedot, Cabovedot, grave, notsign ] }; + key { [ gabovedot, Gabovedot, bracketleft, braceleft ] }; + key { [ hstroke, Hstroke, bracketright, braceright ] }; + key { [ zabovedot, Zabovedot, backslash, bar ] }; + + // Euro symbol + key { [ 3, EuroSign, sterling ] }; + + // Long accent + key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; + + // Normal accented vowels + key { [ e, E, egrave, Egrave ] }; + key { [ u, U, ugrave, Ugrave ] }; + key { [ i, I, igrave, Igrave ] }; + key { [ o, O, ograve, Ograve ] }; + key { [ a, A, agrave, Agrave ] }; + + include "level3(ralt_switch)" +}; + +// Maltese keyboard map (based on MSA Standard DMS100, annex A) +// by Ramon Casha (ramon.casha@linux.org.mt) + +partial alphanumeric_keys +xkb_symbols "us" { + + include "latin" + + // Describes the differences between the mt + // keyboard and a US-based physical keyboard + + name[Group1]="Maltese (with US layout)"; + + // The following four sets are the four additional letters, with the US + // equivalents + key { [ cabovedot, Cabovedot, grave, asciitilde ] }; + key { [ gabovedot, Gabovedot, bracketleft, braceleft ] }; + key { [ hstroke, Hstroke, bracketright, braceright ] }; + key { [ zabovedot, Zabovedot, backslash, bar ] }; + key { [ zabovedot, Zabovedot, backslash, bar ] }; + + // Euro symbol + key { [ 3, EuroSign, numbersign ] }; + + // Long accent + key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; + + // Normal accented vowels + key { [ e, E, egrave, Egrave ] }; + key { [ u, U, ugrave, Ugrave ] }; + key { [ i, I, igrave, Igrave ] }; + key { [ o, O, ograve, Ograve ] }; + key { [ a, A, agrave, Agrave ] }; + + include "level3(ralt_switch)" + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/mv b/squashfs-root/usr/share/X11/xkb/symbols/mv new file mode 100644 index 0000000..e6836f3 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/mv @@ -0,0 +1,66 @@ +// Keymap for Thaana/Dhivehi script (Dhivehi language). + +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]="Dhivehi"; + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ 0x10007B0, 0x10007A4 ] }; + key { [ 0x1000787, 0x10007A2 ] }; + key { [ 0x10007AC, 0x10007AD ] }; + key { [ 0x1000783, 0x100079C ] }; + key { [ 0x100078C, 0x1000793 ] }; + key { [ 0x1000794, 0x10007A0 ] }; + key { [ 0x10007AA, 0x10007AB ] }; + key { [ 0x10007A8, 0x10007A9 ] }; + key { [ 0x10007AE, 0x10007AF ] }; + key { [ 0x1000795, division ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + key { [ 0x10007A6, 0x10007A7 ] }; + key { [ 0x1000790, 0x1000781 ] }; + key { [ 0x100078B, 0x1000791 ] }; + key { [ 0x100078A, 0x100fdf2 ] }; + key { [ 0x100078E, 0x10007A3 ] }; + key { [ 0x1000780, 0x1000799 ] }; + key { [ 0x1000796, 0x100079B ] }; + key { [ 0x1000786, 0x100079A ] }; + key { [ 0x100078D, 0x1000785 ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + key { [ backslash, bar ] }; + + key { [ bar, brokenbar ] }; + key { [ 0x1000792, 0x10007A1 ] }; + key { [ multiply, 0x1000798 ] }; + key { [ 0x1000797, 0x100079D ] }; + key { [ 0x1000788, 0x10007A5 ] }; + key { [ 0x1000784, 0x100079E ] }; + key { [ 0x1000782, 0x100078F ] }; + key { [ 0x1000789, 0x100079F ] }; + key { [ Arabic_comma, less ] }; + key { [ period, greater ] }; + key { [ slash, Arabic_question_mark ] }; + + modifier_map Shift { Shift_L }; + modifier_map Lock { Caps_Lock }; + modifier_map Control{ Control_L }; + modifier_map Mod3 { Mode_switch }; +}; + +// Any additional keys (if need be added) should appear and function exactly as it does on the US_en keyboard. diff --git a/squashfs-root/usr/share/X11/xkb/symbols/my b/squashfs-root/usr/share/X11/xkb/symbols/my new file mode 100644 index 0000000..01775ab --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/my @@ -0,0 +1,139 @@ +partial default alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Malay (Jawi, Arabic Keyboard)"; + +//Numbers + + key { [ 0x1000661, exclam, 1 ] }; + key { [ 0x1000662, at, 2 ] }; + key { [ 0x1000663, numbersign, 3 ] }; + key { [ 0x1000664, dollar, 4 ] }; + key { [ 0x1000665, Arabic_percent, 5 ] }; + key { [ 0x1000666, asciicircum, 6 ] }; + key { [ 0x1000667, ampersand, 7 ] }; + key { [ 0x1000668, asterisk, 8 ] }; + key { [ 0x1000669, parenright, 9 ] }; + key { [ 0x1000660, parenleft, 0 ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + +// Alphabets + + key { [ Arabic_dad, U0686 ] }; + key { [ Arabic_sad, U06A0 ] }; + key { [ Arabic_theh, U06AC ] }; + key { [ Arabic_qaf, U0640 ] }; + key { [ Arabic_feh, 0x100fef9, 0x10006a4 ] }; + key { [ Arabic_ghain, Arabic_hamzaunderalef ] }; + key { [ Arabic_ain, grave ] }; + key { [ Arabic_ha, division ] }; + key { [ Arabic_khah, multiply ] }; + key { [ U06A9, Arabic_semicolon ] }; + key { [ Arabic_jeem, less, 0x1000686 ] }; + key { [ Arabic_dal, greater ] }; + + key { [ Arabic_sheen, U06CF ] }; + key { [ Arabic_seen, U06A8 ] }; + key { [ Arabic_yeh, bracketright ] }; + key { [ Arabic_beh, bracketleft, 0x100067e ] }; + key { [ Arabic_lam, 0x100fef7 ] }; + key { [ Arabic_alef, Arabic_hamzaonalef ] }; + key { [ Arabic_teh, Arabic_tatweel ] }; + key { [ Arabic_noon, Arabic_comma ] }; + key { [ Arabic_meem, slash ] }; + key { [ U06A9, colon, 0x10006af ] }; + key { [ Arabic_tah, quotedbl ] }; + + key { [ bar, brokenbar ] }; + key { [Arabic_hamzaonyeh, asciitilde, guillemotright ] }; + key { [ Arabic_hamza, U06BD, guillemotleft ] }; + key { [Arabic_hamzaonwaw, braceright ] }; + key { [ Arabic_ra, braceleft ] }; + key { [ 0x100fefb, 0x100fef5 ] }; + key { [Arabic_alefmaksura, Arabic_maddaonalef ] }; + key { [Arabic_tehmarbuta, apostrophe ] }; + key { [ Arabic_waw, U200C, comma ] }; + key { [ Arabic_zain, period ] }; + key { [ Arabic_zah, Arabic_question_mark ] }; + +//others + + key { [ Escape ] }; + + include "level3(ralt_switch)" + + // End alphanumeric section +}; + + +// symbol names: see /usr/X11R6/include/X11/keysymdef.h (XFree86-devel.rpm) + +partial alphanumeric_keys +xkb_symbols "phonetic" +{ + name[Group1] = "Malay (Jawi, phonetic)"; + +//Numbers + + key { [ 0x1000661, exclam, 1 ] }; + key { [ 0x1000662, Arabic_hamza, 2 ] }; + key { [ 0x1000663, Arabic_hamzaonalef, 3 ] }; + key { [ 0x1000664, Arabic_maddaonalef, 4 ] }; + key { [ 0x1000665, Arabic_hamzaunderalef, 5 ] }; + key { [ 0x1000666, Arabic_hamzaonyeh, 6 ] }; + key { [ 0x1000667, Arabic_hamzaonwaw, 7 ] }; + key { [ 0x1000668, NoSymbol, 8 ] }; + key { [ 0x1000669, parenright, 9 ] }; + key { [ 0x1000660, parenleft, 0 ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + +// Alphabets + key { [ bar, brokenbar ] }; + key { [ Arabic_zain, Arabic_thal ] }; + key { [ Arabic_khah, Arabic_hah ] }; + key { [ Arabic_tcheh, UFEB9 ] }; + key { [ U06CF, Arabic_zah ] }; + key { [ Arabic_beh, Arabic_peh ] }; + key { [ Arabic_noon, U06BD ] }; + key { [ Arabic_meem, Arabic_madonalef ] }; + key { [ Arabic_comma, rightcaret ] }; + key { [ period, leftcaret ] }; + key { [ slash, Arabic_question_mark ] }; + + key { [ Arabic_alef, Arabic_maddaonalef ] }; + key { [ Arabic_seen, Arabic_sheen ] }; + key { [ Arabic_dal, Arabic_dad ] }; + key { [ Arabic_feh, Arabic_veh ] }; + key { [ U06AC, U06A0 ] }; + key { [ Arabic_ha, Arabic_hah ] }; + key { [ Arabic_jeem, Arabic_tcheh ] }; + key { [ Arabic_kaf, Arabic_qaf ] }; + key { [ Arabic_lam, UFEFB ] }; + key { [ Arabic_semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ Arabic_qaf, Arabic_veh ] }; + key { [ Arabic_waw, Arabic_shadda ] }; + key { [ Arabic_ain, Arabic_ghain ] }; + key { [ Arabic_ra, Arabic_ghain ] }; + key { [ Arabic_teh, Arabic_tehmarbuta ] }; + key { [ Arabic_yeh, Arabic_alefmaksura ] }; + key { [ Arabic_waw, Arabic_tah ] }; + key { [ Arabic_yeh, U0640 ] }; // U0640 - tatweel + key { [ Arabic_ain, U200C ] }; // U200C - ZWNJ + key { [ Arabic_veh, Arabic_teh ] }; + key { [ bracketright, braceright ] }; + key { [ bracketleft, braceleft ] }; + key { [ backslash, bar ] }; + + +//others + + key { [ Escape ] }; + + include "level3(ralt_switch)" + + // End alphanumeric section + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/nbsp b/squashfs-root/usr/share/X11/xkb/symbols/nbsp new file mode 100644 index 0000000..77b40df --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/nbsp @@ -0,0 +1,204 @@ +// Let Space key provide No-Break Space (NBSP), Narrow No-Break Space (NNBSP), +// Zero-Width Non-Joiner (ZWNJ), and Zero-Width Joiner (ZWJ) for the desired +// levels. + + +//////////////////////////////////////// +// Only Space + +partial +xkb_symbols "none" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1]= [ space ] + }; +}; + + +//////////////////////////////////////// +// No-Break Space + +partial +xkb_symbols "level2" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1]= [ space, nobreakspace ] + }; +}; + + +// level3 & level3ns provide no-breaking spaces starting from level3 +// This is good for typographers but experience shows many users accidently +// type no-breaking spaces on the CLI (resulting in errors) +// Used by fr(latin9) and lt(std) +partial +xkb_symbols "level3" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, nobreakspace ] + }; +}; + +// level3s kills fourth level +// Used by ca(multix) +partial +xkb_symbols "level3s" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, nobreakspace, NoSymbol ] + }; +}; + +// for this reason pushing no-breaking spaces to level4 is the safe default nowadays +partial +xkb_symbols "level4" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, space, nobreakspace ] + }; +}; + + +//////////////////////////////////////// +// Narrow No-Break Space + +// level3n provides narrow no-breaking space in addition to the normal one +partial +xkb_symbols "level3n" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, nobreakspace, 0x100202F ] + }; +}; + +// level4n provides narrow no-breaking space in addition to the normal one +partial +xkb_symbols "level4n" { + key { + type[Group1]="EIGHT_LEVEL", + symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ] + }; +}; + +// level4nl provides narrow no-breaking space in addition to the normal one +// without forcing the use of level5 for mostly four-level layouts +// Used by fr(oss), be(oss)… +partial +xkb_symbols "level4nl" { + key { + type[Group1]="LOCAL_EIGHT_LEVEL", + symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ] + }; +}; + + +//////////////////////////////////////// +// Zero-Width Non-Joiner & Zero-Width Joiner +// Author: Behnam Esfahbod + +// ZWNJ and ZWJ are widely used in Persian, Kurdinsh, Pashto, Uzbek and other +// languages that use PersoArabic script. + + +// ZWNJ on level 2 +partial +xkb_symbols "zwnj2" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1]= [ space, 0x100200c ] + }; +}; + + +// ZWNJ on level 2 +// ZWJ on level 3 +partial +xkb_symbols "zwnj2zwj3" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, 0x100200d ] + }; +}; + + +// ZWNJ on level 2 +// ZWJ on level 3 +// NBSP on level 4 +partial +xkb_symbols "zwnj2zwj3nb4" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, 0x100200d, nobreakspace ] + }; +}; + +// ZWNJ on level 2 +// NBSP on level 3 +// Used by ir(ku_ara), af(basic), af(ps), af(uz), af(olpc-fa), af(olpc-ps), af(olpc-uz) +partial +xkb_symbols "zwnj2nb3" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, nobreakspace ] + }; +}; + + +// ZWNJ on level 2 +// NBSP on level 3 +partial +xkb_symbols "zwnj2nb3s" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, nobreakspace, NoSymbol ] + }; +}; + + +// ZWNJ on level 2 +// NBSP on level 3 +// ZWJ on level 4 +partial +xkb_symbols "zwnj2nb3zwj4" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100200d ] + }; +}; + + +// ZWNJ on level 2 +// NBSP on level 3 +// NNBSP on level 4 +// Used by ir(pes) +partial +xkb_symbols "zwnj2nb3nnb4" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100202F ] + }; +}; + + +// ZWNJ on level 3 +// ZWJ on level 4 +// Used by in(deva), in(olpc) +partial +xkb_symbols "zwnj3zwj4" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, 0x100200c, 0x100200d ] + }; +}; + + +// NBSP on level 2 +// ZWNJ on level 3 +// Used by lk(sin_phonetic) +partial +xkb_symbols "nb2zwnj3s" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, nobreakspace, 0x100200c, NoSymbol ] + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/nec_vndr/jp b/squashfs-root/usr/share/X11/xkb/symbols/nec_vndr/jp new file mode 100644 index 0000000..2931f3a --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/nec_vndr/jp @@ -0,0 +1,161 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +// symbols for a NEC PC98 keyboard +default xkb_symbols "pc98" { + + key { [ Escape ] }; + + // Alphanumeric section + key { [ 1, exclam ], [ kana_NU ] }; + key { [ 2, quotedbl ], [ kana_FU ] }; + key { [ 3, numbersign ], [ kana_A, kana_a ] }; + key { [ 4, dollar ], [ kana_U, kana_u ] }; + key { [ 5, percent ], [ kana_E, kana_e ] }; + key { [ 6, ampersand ], [ kana_O, kana_o ] }; + key { [ 7, apostrophe ], [ kana_YA, kana_ya ] }; + key { [ 8, parenleft ], [ kana_YU, kana_yu ] }; + key { [ 9, parenright ], [ kana_YO, kana_yo ] }; + key { [ 0 ], [ kana_WA, kana_WO ] }; + key { [ minus, equal ], [ kana_HO ] }; + key { [ asciicircum, grave ], [ kana_HE ] }; + key { [ backslash, bar ], [ prolongedsound ] }; + key { [ BackSpace ] }; + + key { [ Tab, ISO_Left_Tab ] }; + key { [ q, Q ], [ kana_TA ] }; + key { [ w, W ], [ kana_TE ] }; + key { [ e, E ], [ kana_I, kana_i ] }; + key { [ r, R ], [ kana_SU ] }; + key { [ t, T ], [ kana_KA ] }; + key { [ y, Y ], [ kana_N ] }; + key { [ u, U ], [ kana_NA ] }; + key { [ i, I ], [ kana_NI ] }; + key { [ o, O ], [ kana_RA ] }; + key { [ p, P ], [ kana_SE ] }; + key { [ at, asciitilde ], [ voicedsound ] }; + key { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] }; + key { [ Return ] }; + + key { [ Control_L ] }; + key { [ Caps_Lock ] }; + key { [ a, A ], [ kana_CHI ] }; + key { [ s, S ], [ kana_TO ] }; + key { [ d, D ], [ kana_SHI ] }; + key { [ f, F ], [ kana_HA ] }; + key { [ g, G ], [ kana_KI ] }; + key { [ h, H ], [ kana_KU ] }; + key { [ j, J ], [ kana_MA ] }; + key { [ k, K ], [ kana_NO ] }; + key { [ l, L ], [ kana_RI ] }; + key { [ semicolon, plus ], [ kana_RE ] }; + key { [ colon, asterisk ], [ kana_KE ] }; + key { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] }; + + key { [ Shift_L ] }; + key { [ z, Z ], [ kana_TSU, kana_tsu ] }; + key { [ x, X ], [ kana_SA ] }; + key { [ c, C ], [ kana_SO ] }; + key { [ v, V ], [ kana_HI ] }; + key { [ b, B ], [ kana_KO ] }; + key { [ n, N ], [ kana_MI ] }; + key { [ m, M ], [ kana_MO ] }; + key { [ comma, less ], [ kana_NE, kana_comma ] }; + key { [ period, greater ], [ kana_RU, kana_fullstop ] }; + key { [ slash, question ], [ kana_ME, kana_middledot ] }; + key { [ NoSymbol, underscore ], [ kana_RO ] }; +// key { [ Shift_R ] }; + + key { [ Mode_switch ] }; + key { [ Alt_L ] }; + key { [ Muhenkan ] }; + key { [ space ] }; + key { [ Henkan, Kanji ] }; + // End alphanumeric section + + // Begin "Function" section + key { [ Break ] }; + key { [ Print ] }; + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + key { [ F11 ] }; + key { [ F12 ] }; + key { [ F13 ] }; + key { [ F14 ] }; + key { [ F15 ] }; + // End "Function" section + + // Begin "Editing" section + key { [ Insert ] }; + key { [ Delete ] }; + key { [ Prior ] }; + key { [ Next ] }; + key { [ Up ] }; + key { [ Left ] }; + key { [ Right ] }; + key { [ Down ] }; + // End "Editing" section + + // Begin "Keypad" section + key { [ Clear, Home ] }; + key { [ Help ] }; + key { [ KP_Subtract ] }; + key { [ KP_Divide ] }; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + key { [ KP_Multiply ] }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + key { [ KP_Add ] }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + key { [ KP_Equal ] }; + + key { [ KP_0 ] }; + key { [ KP_Separator ] }; + key { [ KP_Decimal ] }; +// key { [ KP_Enter ] }; + // End "Keypad" section + + modifier_map Shift { Shift_L }; + modifier_map Lock { Caps_Lock }; + modifier_map Control{ Control_L }; + modifier_map Mod1 { Alt_L }; + modifier_map Mod2 { Mode_switch }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ng b/squashfs-root/usr/share/X11/xkb/symbols/ng new file mode 100644 index 0000000..e52353d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ng @@ -0,0 +1,114 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "us" + + name[Group1]= "English (Nigeria)"; + key { [ 4, 0x010020A6, dollar, cent ] }; + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "yoruba" { + include "ng(basic)" + + name[Group1]= "Yoruba"; + + key { [ 0x01001EB9, 0x01001EB8, q, Q ] }; + key { [ 0x01001ECD, 0x01001ECC, x, X ] }; + key { [ 0x01001E63, 0x01001E62, v, V ] }; +}; + +partial alphanumeric_keys +xkb_symbols "igbo" { + include "ng(basic)" + + name[Group1]= "Igbo"; + + key { [ 0x01001ECB, 0x01001ECA, q, Q ] }; + key { [ 0x01001E45, 0x01001E44, x, X ] }; + key { [ 0x01001EE5, 0x01001EE4, semicolon, colon ] }; + key { [ 0x01001ECD, 0x01001ECC, bracketleft, braceleft ] }; +}; + +partial alphanumeric_keys +xkb_symbols "hausa" { + include "ng(basic)" + + name[Group1]= "Hausa (Nigeria)"; + + key { [ 0x01000071, 0x01000051, q, Q ] }; + key { [ udiaeresis, Udiaeresis, w, W ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ 0x010001B4, 0x010001B3,bracketleft, braceleft ] }; + key { [ gcaron, Gcaron,bracketright, braceright] }; + key { [ 0x01000257, 0x0100018A, d, D ] }; + key { [ 0x01000131, 0x01000130, semicolon, colon ] }; + key { [ 0x010001DD, 0x0100018E,apostrophe, quotedbl ] }; + key { [ 0x01000272, 0x0100019D, z, Z ] }; + key { [ ntilde, Ntilde, m, M ] }; + key { [ ccedilla, Ccedilla, period, greater ] }; + key { [ scedilla, Scedilla, slash, question ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + + include "ng(basic)" + + // OLPC West Africa keyboard layout + // See: http://wiki.laptop.org/go/Image:Nigeria-B3.png + + key { [ grave, asciitilde, exclamdown, exclamdown ] }; + key { [ 1, exclam, sterling, sterling ] }; + key { [ 2, at, EuroSign, EuroSign ] }; + key { [ 3, numbersign, dollar, dollar ] }; + key { [ 4, 0x10020A6, 0x1000301, 0x1000301 ] }; // Naira, combining acute + key { [ 5, percent, 0x1000300, 0x1000300 ] }; // combining grave + key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above + key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above + key { [ 8, asterisk, 0x1000324, 0x1000324 ] }; // combining caron above + key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above + key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above + key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above + key { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above + + key { [ w, W, 0x1001EB9, 0x1001EB8 ] }; // E with dot below + key { [ e, E, 0x10001DD, 0x100018E ] }; // reversed E + key { [ r, R, 0x10001B4, 0x10001B3 ] }; // Y with hook + key { [ t, T, 0x1000327, 0x1000327 ] }; // combining cedilla + key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below + key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below + key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below + key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below + key { [ p, P, 0x1000304, 0x1000304 ] }; // combining diaeresis below + key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below + key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below + + key { [ a, A, Greek_iota, Greek_IOTA ] }; + key { [ s, S, 0x1001E63, 0x1001E62 ] }; // S with dot below + key { [ d, D, 0x1000257, 0x100018A ] }; // D with hook + key { [ f, F, 0x1001E0D, 0x1001E0C ] }; // D with dot below + key { [ g, G, 0x1000272, 0x100019D ] }; // N with left hook + key { [ h, H, 0x1001EE5, 0x1001EE4 ] }; // U with dot below + key { [ j, J, 0x1001ECB, 0x1001ECA ] }; // I with dot below + key { [ k, K, 0x1000199, 0x1000198 ] }; // K with hook + key { [ l, L, 0x1001E37, 0x1001E36 ] }; // L with dot below + key { [ semicolon, colon, masculine, ordfeminine ] }; + key { [ apostrophe, quotedbl, currency, currency ] }; + key { [ backslash, bar, section, section ] }; + + key { [ c, C, 0x1000254, 0x1000186 ] }; // open O + key { [ v, V, 0x100028B, 0x10001B2 ] }; // V with hook + key { [ b, B, 0x1000253, 0x1000181 ] }; // B with hook + key { [ n, N, eng, ENG ] }; + key { [ m, M, 0x1001E45, 0x1001E44 ] }; // N with dot above + key { [ comma, less, guillemotleft, guillemotleft ] }; + key { [ period, greater, guillemotright, guillemotright ] }; + key { [ slash, question, questiondown, questiondown ] }; + + key { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/nl b/squashfs-root/usr/share/X11/xkb/symbols/nl new file mode 100644 index 0000000..0c6d805 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/nl @@ -0,0 +1,150 @@ +// Basic layout based on converted file, from keytable file to xkb/symbols/ file +// with mk_xkb by root@linux.chanae.stben.be Tue Sep 30 00:53:29 MET DST 1997 + +// Converted from the nl-latin.map of the Linux kbd package by +// Pablo Saratxaga + +// Official layout by Benno Schulenberg , January 2007, +// based on http://www.xs4all.nl/~koospol/public/Xmodmap-nl-deadkeys.gz + + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin" + + name[Group1]="Dutch"; + + key { [ 2, quotedbl, twosuperior, oneeighth ] }; + key { [ 6, ampersand, threequarters, fiveeighths ] }; + key { [ 7, underscore, sterling, seveneighths ] }; + key { [ 8, parenleft, braceleft, bracketleft ] }; + key { [ 9, parenright, braceright, bracketright ] }; + key { [ 0, apostrophe, degree, trademark ] }; + key { [ slash, question, backslash, questiondown ] }; + key { [ degree, dead_tilde, dead_cedilla, dead_ogonek ] }; + + key { [ e, E, EuroSign, cent ] }; + key { [ t, T, thorn, THORN ] }; + key { [ y, Y, ydiaeresis, yen ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, idiaeresis, Idiaeresis ] }; + key { [ o, O, ograve, Ograve ] }; + key { [ p, P, paragraph, THORN ] }; + key { [dead_diaeresis, dead_circumflex, asciitilde, asciicircum] }; + key { [ asterisk, bar, dead_tilde, dead_macron ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ f, F, ordfeminine, ordfeminine ] }; + key { [ plus, plusminus, dead_acute, dead_doubleacute ] }; + key { [dead_acute, dead_grave, apostrophe, grave ] }; + key { [ at, section, notsign, notsign ] }; + + key { [ less, greater, dead_grave, dead_breve ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, Greek_mu, masculine ] }; + key { [ comma, semicolon, cedilla, guillemotleft] }; + key { [ period, colon, periodcentered, guillemotright ] }; + key { [ minus, equal, hyphen, dead_abovedot] }; + + key { [bracketright, bracketleft, bar, brokenbar ] }; + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "std" { + + name[Group1]= "Dutch (standard)"; + + key { [ at, section, notsign ] }; + key { [ 1, exclam, onesuperior ] }; + key { [ 2, quotedbl, twosuperior ] }; + key { [ 3, numbersign, threesuperior ] }; + key { [ 4, dollar, onequarter ] }; + key { [ 5, percent, onehalf ] }; + key { [ 6, ampersand, threequarters ] }; + key { [ 7, underscore, sterling ] }; + key { [ 8, parenleft, braceleft ] }; + key { [ 9, parenright, braceright ] }; + key { [ 0, apostrophe ] }; + key { [ slash, question, backslash ] }; + key { [ degree, dead_tilde, dead_cedilla ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R, paragraph ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ dead_diaeresis, dead_circumflex ] }; + key { [ asterisk, bar ] }; + key { [ less, greater ] }; + + key { [ a, A ] }; + key { [ s, S, ssharp ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ plus, plusminus ] }; + key { [ dead_acute, dead_grave ] }; + + key { [ bracketright, bracketleft, bar ] }; + key { [ z, Z, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ c, C, cent ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M, mu ] }; + key { [ comma, semicolon ] }; + key { [ period, colon, periodcentered ] }; + key { [ minus, equal ] }; + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + + // For naming consistency + + include "nl(basic)" +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + + // For naming consistency + + include "nl(Sundeadkeys)" + name[Group1]="Dutch (with Sun dead keys)"; +}; + +// Copied from macintosh_vndr/nl +partial alphanumeric_keys +xkb_symbols "mac" { + + include "latin" + + name[Group1]= "Dutch (Macintosh)"; + + include "level3(ralt_switch)" +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/nl(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/no b/squashfs-root/usr/share/X11/xkb/symbols/no new file mode 100644 index 0000000..ee6546a --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/no @@ -0,0 +1,267 @@ +// based on a keyboard map from an 'xkb/symbols/no' file + +default partial alphanumeric_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple en_US + // keyboard and a Norwegian keyboard with dead key support + // and all of ISO-8859-1 characters available. + + include "latin(type2)" + + name[Group1]="Norwegian"; + + key { [ period, colon, ellipsis, periodcentered ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ r, R, registered, trademark ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ 5, percent, onehalf, 0x1002030 ] }; + + key { [ plus, question, plusminus, questiondown ] }; + key { [ backslash, dead_grave, dead_acute, notsign ] }; + + + key { [ oslash, Ooblique, dead_acute, dead_doubleacute ] }; + key { [ ae, AE, dead_circumflex, dead_caron] }; + key { [ bar, section, brokenbar, paragraph ] }; + + key { [apostrophe, asterisk, dead_doubleacute, multiply ] }; + key { [ less, greater, onehalf, threequarters] }; + + include "nbsp(level3n)" + include "keypad(ossmath)" + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // Modifies the basic Norwegian layout to no dead keys + + include "no(basic)" + + name[Group1]="Norwegian (no dead keys)"; + + key { [ backslash, grave, acute, ogonek ] }; + key { [ diaeresis, asciicircum, asciitilde, macron ] }; + key { [ oslash, Ooblique, acute, doubleacute ] }; + key { [ ae, AE, asciicircum, caron ] }; + key { [ comma, semicolon, cedilla, ogonek ] }; + key { [ period, colon, periodcentered, abovedot ] }; +}; + +partial alphanumeric_keys +xkb_symbols "winkeys" { + + include "no(basic)" + name[Group1]="Norwegian (Win keys)"; + include "eurosign(5)" +}; + +// Norwegian Dvorak +partial alphanumeric_keys +xkb_symbols "dvorak" { + include "us(dvorak)" + + name[Group1]="Norwegian (Dvorak)"; + + key { [ bar, section, brokenbar, paragraph ] }; + + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, quotedbl, at, twosuperior ] }; + key { [ 3, numbersign, sterling, threesuperior ] }; + key { [ 4, currency, dollar, onequarter ] }; + key { [ 5, percent, onehalf, onehalf ] }; + key { [ 6, ampersand, threequarters, threequarters ] }; + key { [ 7, slash, braceleft, division ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ plus, question, plusminus, questiondown ] }; + key { [ backslash, grave, dead_acute, dead_grave ] }; + + key { [ aring, Aring, braceright, bracketright ] }; + key { [ comma, semicolon, dead_cedilla, cedilla ] }; + key { [ period, colon, periodcentered ] }; + key { [ p, P, thorn, THORN ] }; + key { [ y, Y, yen ] }; + key { [ f, F, ordfeminine ] }; + key { [ c, C, ccedilla, copyright ] }; + key { [ r, R, registered ] }; + key { [ apostrophe, asterisk, dead_circumflex, acute ] }; + key { [dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] }; + + key { [ e, E, EuroSign, cent ] }; + key { [ i, I, idotless, Iabovedot] }; + key { [ d, D, eth, ETH ] }; + key { [ s, S, ssharp ] }; + key { [ minus, underscore, hyphen, diaeresis] }; + + key { [ ae, AE, braceleft, bracketleft] }; + key { [ x, X, multiply ] }; + key { [ m, M, mu ] }; + key { [ less, greater, guillemotleft, guillemotright ] }; + + key { [ space, space, nobreakspace, nobreakspace] }; + + key { [ oslash, Ooblique, bar, backslash ] }; + + // fixed https://bugs.freedesktop.org/show_bug.cgi?id=4397 + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "smi" { + + // Northern Sami keyboards for Finland, Norway and Sweden + // + // Describes the differences between a very simple en_US + // keyboard and a Norwegian Northern Sami keyboard (with + // dead-key support) according to the spec on + // http://www.hum.uit.no/a/trond/se-lat9-no-keys.html + // Written by Børre Gaup . + + include "latin" + + name[Group1]= "Northern Saami (Norway)"; + + key { [ 1, exclam, copyright, exclamdown ] }; + key { [ 2, quotedbl, at, registered ] }; + key { [ 3, numbersign, sterling, less ] }; + key { [ 4, dollar, dollar, greater ] }; + key { [ 5, percent, U2022, U2030 ] }; + key { [ 6, ampersand, section, paragraph ] }; + key { [ 7, slash, braceleft, bar ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal, braceright, notequal ] }; + key { [ plus, question, division, questiondown ] }; + key { [ backslash, grave, acute, asciitilde ] }; + + key { [ aacute, Aacute, q, Q ] }; + key { [ scaron, Scaron, w, W ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, registered, trademark ] }; + key { [ y, Y, yacute, Yacute ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, idiaeresis, Idiaeresis ] }; + key { [ o, O, oe, OE ] }; + key { [ aring, Aring, acircumflex, Acircumflex ] }; + key { [ eng, ENG, quotedbl, asciicircum ] }; + + key { [ a, A, agrave, Agrave ] }; + key { [ s, S, ssharp, apostrophe ] }; + key { [ f, F, ordfeminine, ordfeminine ] }; + key { [ g, G, gcaron, Gcaron ] }; + key { [ h, H, U01E5, U01E4 ] }; + key { [ j, J, notsign, multiply ] }; + key { [ k, K, U01E9, U01E8 ] }; + key { [ l, L, degree, hyphen ] }; + key { [ oslash, Ooblique, odiaeresis, Odiaeresis ] }; + key { [ ae, AE, adiaeresis, Adiaeresis ] }; + key { [ bar, section, brokenbar, paragraph ] }; + + key { [ dstroke, Dstroke, apostrophe, asterisk ] }; + key { [ z, Z, U0292, U01B7 ] }; + key { [ ccaron, Ccaron, x, X ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, lessthanequal, guillemotleft ] }; + key { [ b, B, greaterthanequal, guillemotright ] }; + key { [ n, N, leftsinglequotemark, leftdoublequotemark ] }; + key { [ m, M, rightsinglequotemark, rightdoublequotemark ] }; + key { [ comma, semicolon, singlelowquotemark, doublelowquotemark ] }; + key { [ period, colon, ellipsis, periodcentered ] }; + key { [ minus, underscore, endash, emdash ] }; + + key { type[Group1] = "FOUR_LEVEL", + [ zcaron, Zcaron, U01EF, U01EE ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "smi_nodeadkeys" { + + // Modifies the basic Norwegian layout to no dead keys + + include "no(smi)" + + name[Group1]= "Northern Saami (Norway, no dead keys)"; + + key { [ backslash, grave, acute, ogonek ] }; +}; + +// Copied from macintosh_vndr/no +partial alphanumeric_keys +xkb_symbols "mac" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple Norwegian keyboard. + + include "latin(type4)" + name[Group1]= "Norwegian (Macintosh)"; + + key { [ bar, section ] }; + key { [ 3, numbersign, sterling, sterling ] }; + key { [ 4, currency, dollar, dollar ] }; + key { [ 6, ampersand, threequarters, fiveeighths ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ oslash, Ooblique, odiaeresis, Odiaeresis ] }; + key { [ plus, question ] }; + key { [ ae, AE ] }; + key { [ aring, Aring ] }; + key { [ dead_grave, dead_acute, acute, dead_ogonek ] }; + key { [ diaeresis, asciicircum, asciitilde, dead_macron ] }; + key { [ at, asterisk ] }; +}; + +partial alphanumeric_keys +xkb_symbols "mac_nodeadkeys" { + + // Modifies the basic Norwegian layout to no dead keys + include "no(mac)" + name[Group1]= "Norwegian (Macintosh, no dead keys)"; + + key { [ grave, acute, acute, ogonek ] }; + key { [ diaeresis, asciicircum, asciitilde, macron ] }; +}; + +partial alphanumeric_keys +xkb_symbols "colemak" { + + // Colemak layout - http://colemak.com/ + // Q W F P G J L U Y Ø Å ¨ + // A R S T D H N E I O Æ ' + // < Z X C V B K M , . - + include "no(basic)" + name[Group1]= "Norwegian (Colemak)"; + + key { [ k, K, kra, ampersand ] }; + key { [ r, R, registered, trademark ] }; + key { [ s, S, ssharp, section ] }; + key { [ t, T, thorn, THORN ] }; + key { [ d, D, eth, ETH ] }; + key { [ n, N ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ i, I, rightarrow, idotless ] }; + key { [ o, O, oe, OE ] }; + key { [ f, F, dstroke, ordfeminine ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ g, G, eng, ENG ] }; + key { [ j, J ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ u, U, downarrow, uparrow ] }; + key { [ y, Y, leftarrow, yen ] }; + key { [ oslash, Ooblique, dead_acute, dead_doubleacute ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/no(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/nokia_vndr/rx-44 b/squashfs-root/usr/share/X11/xkb/symbols/nokia_vndr/rx-44 new file mode 100644 index 0000000..515b69e --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/nokia_vndr/rx-44 @@ -0,0 +1,303 @@ +partial alphanumeric_keys +xkb_symbols "us" { + name[Group1] = "U.S. English"; + + include "nokia_vndr/rx-44(base)" + + key { [ a, A, exclam, exclam ] }; + key { [ s, S, quotedbl, quotedbl ] }; + key { [ d, D, at, at ] }; + key { [ f, F, numbersign, numbersign ] }; + key { [ g, G, backslash, backslash ] }; + key { [ h, H, slash, slash ] }; + key { [ j, J, parenleft, parenleft ] }; + key { [ k, K, parenright, parenright ] }; + key { [ l, L, asterisk, asterisk ] }; + key { [ apostrophe, question, question, question ] }; + + key { [ z, Z, yen, yen ] }; + key { [ x, X, asciicircum, asciicircum ] }; + key { [ c, C, asciitilde, asciitilde ] }; + key { [ v, V, percent, percent ] }; + key { [ b, B, ampersand, ampersand ] }; + key { [ n, N, dollar, dollar ] }; + key { [ m, M, EuroSign, EuroSign ] }; + key { [ semicolon, colon, sterling, sterling ] }; + key { [ minus, underscore, underscore, underscore ] }; + key { [ plus, equal, equal, equal ] }; + + key { [ comma, less, comma, less ] }; + key { [ period, greater, period, greater ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "fisenoda" { + name[Group1] = "Finnish/Swedish/Norwegian/Danish"; + + include "nokia_vndr/rx-44(base)" + + key { [ a, A, exclam, exclam ] }; + key { [ s, S, quotedbl, quotedbl ] }; + key { [ d, D, at, at ] }; + key { [ f, F, numbersign, numbersign ] }; + key { [ g, G, asterisk, asterisk ] }; + key { [ h, H, backslash, backslash ] }; + key { [ j, J, slash, slash ] }; + key { [ k, K, parenleft, parenleft ] }; + key { [ l, L, parenright, parenright ] }; + key { [ aring, Aring, question, question ] }; + + key { [ z, Z, EuroSign, EuroSign ] }; + key { [ x, X, asciitilde, asciitilde ] }; + key { [ c, C, percent, percent ] }; + key { [ v, V, ampersand, ampersand ] }; + key { [ b, B, plus, plus ] }; + key { [ n, N, less, less ] }; + key { [ m, M, greater, greater ] }; + key { type="EIGHT_LEVEL", [ oslash, Oslash, equal, equal, odiaeresis, Odiaeresis, equal, equal ] }; + key { type="EIGHT_LEVEL", [ ae, AE, apostrophe, apostrophe, adiaeresis, Adiaeresis, apostrophe, apostrophe ] }; + key { [ minus, underscore, underscore, underscore ] }; + + key { [ comma, semicolon, comma, semicolon ] }; + key { [ period, colon, period, colon ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "ptes" { + name[Group1] = "Portuguese/Spanish"; + + include "nokia_vndr/rx-44(base)" + + key { [ a, A, exclam, exclam ] }; + key { [ s, S, quotedbl, quotedbl ] }; + key { [ d, D, at, at ] }; + key { [ f, F, numbersign, numbersign ] }; + key { [ g, G, asterisk, asterisk ] }; + key { [ h, H, backslash, backslash ] }; + key { [ j, J, slash, slash ] }; + key { [ k, K, parenleft, parenleft ] }; + key { [ l, L, parenright, parenright ] }; + key { [ dead_acute, dead_grave, dead_diaeresis, dead_diaeresis ] }; + + key { [ z, Z, EuroSign, EuroSign ] }; + key { [ x, X, percent, percent ] }; + key { [ c, C, ampersand, ampersand ] }; + key { [ v, V, exclamdown, exclamdown ] }; + key { [ b, B, apostrophe, apostrophe ] }; + key { [ n, N, plus, plus ] }; + key { [ m, M, equal, equal ] }; + key { [ ccedilla, Ccedilla, questiondown, questiondown ] }; + key { [ ntilde, Ntilde, question, question ] }; + key { [ dead_tilde, dead_circumflex, dead_circumflex, dead_circumflex ] }; + + key { [ comma, semicolon, minus, minus ] }; + key { [ period, colon, underscore, underscore ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "fr" { + name[Group1] = "French"; + + include "nokia_vndr/rx-44(base)" + + key { [ a, A, 1, 1 ] }; + key { [ z, Z, 2, 2 ] }; + + key { [ q, Q, at, at ] }; + key { [ s, S, percent, percent ] }; + key { [ d, D, ecircumflex, Ecircumflex ] }; + key { [ f, F, eacute, Eacute ] }; + key { [ g, G, egrave, Egrave ] }; + key { [ h, H, oe, OE ] }; + key { [ j, J, parenleft, parenleft ] }; + key { [ k, K, parenright, parenright ] }; + key { [ l, L, agrave, Agrave ] }; + key { [ m, M, ugrave, Ugrave ] }; + + key { [ w, w, EuroSign, EuroSign ] }; + key { [ x, X, numbersign, numbersign ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, plus, plus ] }; + key { [ b, B, equal, equal ] }; + key { [ n, N, quotedbl, quotedbl ] }; + key { [ comma, question, backslash, backslash ] }; + key { [ semicolon, period, minus, minus ] }; + key { [ colon, slash, underscore, underscore ] }; + key { [ apostrophe, apostrophe, mu, mu ] }; + + key { [ less, greater, less, greater ] }; + key { [ exclam, section, asterisk, asterisk ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "de" { + name[Group1] = "German"; + + include "nokia_vndr/rx-44(base)" + + key { [ z, Z, 6, 6 ] }; + + key { [ a, A, exclam, exclam ] }; + key { [ s, S, quotedbl, quotedbl ] }; + key { [ d, D, at, at ] }; + key { [ f, F, numbersign, numbersign ] }; + key { [ g, G, percent, percent ] }; + key { [ h, H, backslash, backslash ] }; + key { [ j, J, slash, slash ] }; + key { [ k, K, parenleft, parenleft ] }; + key { [ l, L, parenright, parenright ] }; + key { [ udiaeresis, Udiaeresis, question, question ] }; + + key { [ y, Y, EuroSign, EuroSign ] }; + key { [ x, X, asciitilde, asciitilde ] }; + key { [ c, C, asterisk, asterisk ] }; + key { [ v, V, ampersand, ampersand ] }; + key { [ b, B, plus, plus ] }; + key { [ n, N, less, less ] }; + key { [ m, M, greater, greater ] }; + key { [ odiaeresis, Odiaeresis, equal, equal ] }; + key { [ adiaeresis, Adiaeresis, apostrophe, apostrophe ] }; + key { [ minus, underscore, ssharp, ssharp ] }; + + key { [ comma, semicolon, comma, semicolon ] }; + key { [ period, colon, period, colon ] }; +}; + + +// Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons. +partial alphanumeric_keys +xkb_symbols "ru" { + name[Group1] = "Russian"; + + include "nokia_vndr/rx-44(base)" + + key { type="EIGHT_LEVEL", [ q, Q, 1, 1, Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] }; + key { type="EIGHT_LEVEL", [ w, W, 2, 2, Cyrillic_tse, Cyrillic_TSE, 2, 2 ] }; + key { type="EIGHT_LEVEL", [ e, E, 3, 3, Cyrillic_u, Cyrillic_U, 3, 3 ] }; + key { type="EIGHT_LEVEL", [ r, R, 4, 4, Cyrillic_ka, Cyrillic_KA, 4, 4 ] }; + key { type="EIGHT_LEVEL", [ t, T, 5, 5, Cyrillic_ie, Cyrillic_IE, 5, 5 ] }; + key { type="EIGHT_LEVEL", [ y, Y, 6, 6, Cyrillic_en, Cyrillic_EN, 6, 6 ] }; + key { type="EIGHT_LEVEL", [ u, U, 7, 7, Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] }; + key { type="EIGHT_LEVEL", [ i, I, 8, 8, Cyrillic_sha, Cyrillic_SHA, 8, 8 ] }; + key { type="EIGHT_LEVEL", [ o, O, 9, 9, Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] }; + key { type="EIGHT_LEVEL", [ p, P, 0, 0, Cyrillic_ze, Cyrillic_ZE, 0, 0 ] }; + + key { type="EIGHT_LEVEL", [ a, A, exclam, exclam, Cyrillic_ef, Cyrillic_EF, exclam, exclam ] }; + key { type="EIGHT_LEVEL", [ s, S, quotedbl, quotedbl, Cyrillic_yeru, Cyrillic_YERU, quotedbl, quotedbl ] }; + key { type="EIGHT_LEVEL", [ d, D, at, at, Cyrillic_ve, Cyrillic_VE, at, at ] }; + key { type="EIGHT_LEVEL", [ f, F, numbersign, numbersign, Cyrillic_a, Cyrillic_A, numbersign, numbersign ] }; + key { type="EIGHT_LEVEL", [ g, G, backslash, backslash, Cyrillic_pe, Cyrillic_PE, backslash, backslash ] }; + key { type="EIGHT_LEVEL", [ h, H, slash, slash, Cyrillic_er, Cyrillic_ER, slash, slash ] }; + key { type="EIGHT_LEVEL", [ j, J, parenleft, parenleft, Cyrillic_o, Cyrillic_O, parenleft, parenleft ] }; + key { type="EIGHT_LEVEL", [ k, K, parenright, parenright, Cyrillic_el, Cyrillic_EL, parenright, parenright ] }; + key { type="EIGHT_LEVEL", [ l, L, colon, colon, Cyrillic_de, Cyrillic_DE, colon, colon ] }; + key { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, semicolon, semicolon, Cyrillic_zhe, Cyrillic_ZHE, semicolon, semicolon ] }; + + key { type="EIGHT_LEVEL", [ z, Z, underscore, underscore, Cyrillic_ya, Cyrillic_YA, minus, minus ] }; + key { type="EIGHT_LEVEL", [ x, X, percent, percent, Cyrillic_che, Cyrillic_CHE, percent, percent ] }; + key { type="EIGHT_LEVEL", [ c, C, 0x1002116, 0x1002116, Cyrillic_es, Cyrillic_ES, 0x1002116, 0x1002116 ] }; + key { type="EIGHT_LEVEL", [ v, V, equal, equal, Cyrillic_em, Cyrillic_EM, equal, equal ] }; + key { type="EIGHT_LEVEL", [ b, B, ampersand, ampersand, Cyrillic_i, Cyrillic_I, ampersand, ampersand ] }; + key { type="EIGHT_LEVEL", [ n, N, asterisk, asterisk, Cyrillic_te, Cyrillic_TE, asterisk, asterisk ] }; + key { type="EIGHT_LEVEL", [ m, M, apostrophe, apostrophe, Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] }; + key { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, minus, minus, Cyrillic_be, Cyrillic_BE, minus, minus ] }; + key { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, question, question, Cyrillic_yu, Cyrillic_YU, question, question ] }; + key { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, Cyrillic_hardsign, Cyrillic_HARDSIGN, Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + + key { type="EIGHT_LEVEL", [ period, comma, period, comma, period, comma, period, comma ] }; + key { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, Cyrillic_io, Cyrillic_IO, Cyrillic_e, Cyrillic_E, Cyrillic_io, Cyrillic_IO ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "it" { + name[Group1] = "Italian"; + + include "nokia_vndr/rx-44(base)" + + key { [ a, A, exclam, exclam ] }; + key { [ s, S, quotedbl, quotedbl ] }; + key { [ d, D, at, at ] }; + key { [ f, F, numbersign, numbersign ] }; + key { [ g, G, asterisk, asterisk ] }; + key { [ h, H, backslash, backslash ] }; + key { [ j, J, slash, slash ] }; + key { [ k, K, parenleft, parenleft ] }; + key { [ l, L, parenright, parenright ] }; + key { [ apostrophe, question, igrave, Igrave ] }; + + key { [ z, Z, EuroSign, EuroSign ] }; + key { [ x, X, asciitilde, asciitilde ] }; + key { [ c, C, ampersand, ampersand ] }; + key { [ v, V, equal, equal ] }; + key { [ b, B, less, less ] }; + key { [ n, N, greater, greater ] }; + key { [ m, M, plus, plus ] }; + key { [ eacute, Eacute, ograve, Ograve ] }; + key { [ egrave, Egrave, agrave, Agrave ] }; + key { [ minus, underscore, ugrave, Ugrave ] }; + + key { [ comma, semicolon, comma, semicolon ] }; + key { [ period, colon, period, colon ] }; +}; + +partial default alphanumeric_keys +xkb_symbols "base" { + key { [ q, Q, 1, 1 ] }; + key { [ w, W, 2, 2 ] }; + key { [ e, E, 3, 3 ] }; + key { [ r, R, 4, 4 ] }; + key { [ t, T, 5, 5 ] }; + key { [ y, Y, 6, 6 ] }; + key { [ u, U, 7, 7 ] }; + key { [ i, I, 8, 8 ] }; + key { [ o, O, 9, 9 ] }; + key { [ p, P, 0, 0 ] }; + key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; + + // broken UI spec. + key { [ KP_Enter, KP_Enter, KP_Enter, KP_Enter ] }; + + key { [ Multi_key, Multi_key, Multi_key, Multi_key ] }; + key { [ Shift_L, Shift_L, Shift_L, Shift_L ] }; + key { [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Shift ] }; + key { [ space, space, space, space ] }; + key { [ Control_R, Control_R, Control_R, Control_R ] }; + key { [ Tab, Tab, Tab, Tab ] }; + + modifier_map Shift { Shift_L }; + modifier_map Mod5 { ISO_Level3_Shift }; + modifier_map Control { Control_R }; + + key { [ Return ] }; + key { [ Up ] }; + key { [ Down ] }; + key { [ Left ] }; + key { [ Right ] }; + + key { [ Escape ] }; + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + key { [ F11 ] }; + key { [ F12 ] }; + + // generated from the headset, must always be in the map. + key { [ XF86Phone ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/nokia_vndr/rx-51 b/squashfs-root/usr/share/X11/xkb/symbols/nokia_vndr/rx-51 new file mode 100644 index 0000000..28a0832 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/nokia_vndr/rx-51 @@ -0,0 +1,1388 @@ +default partial alphanumeric_keys +xkb_symbols "common" { + include "nokia_vndr/rx-51(common_keys)" + include "nokia_vndr/rx-51(modifiers)" + + key { [ BackSpace, Delete, BackSpace, Delete ] }; + + // This section should not be included by any other section. + // It's referenced only once by rule file to allow multiple layout configurations. + + // More than one layout at the same time could be set for instance as follows: + // setxkbmap -rules evdev \ + // -model nokiarx51 \ + // -option grp:ctrl_shift_toggle \ + // -layout us,cz \ + // -variant ",qwerty" + + // Notice the similarity: + // "pc+us+cz(qwerty):2+grp:XYZ" vs. + // "nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)+nokia_vndr/rx-51(cz_qwerty):2+grp:XYZ" + // where XYZ is one of xkb_symbols section usually located in file symbols/group. + + // Bear in mind that option XYZ could replace current keys configuration!!! + + // For instance using symbols/group(ctrl_shift_toggle) redefines LCTL and LFSH keys + // which may disallow opening of virtual symbol table (Multi_key). + // Fortunately the Multi_key is defined in 3rd and 4th level a ctrl_shift_toggle + // redefines first two levels only. But RX-51 has not right Ctrl nor Shift therefore + // pressing Ctrl+Shift will switch to previous layout, not to the next one. + + // For RX-51 device there is a lot of restrictions if more than one layout is + // is configured at the same time because some modifiers and special cases are + // handled by hildon layer (especially with eight-level layout): + // - settings may be done from terminal only (GUI does not and won't support it) + // - virtual symbol table is not updated according to current layout + // - for unknown reasons the eight-level layout (nordic,ru) works properly + // only if it's configured as first layout (e.g. "ru,us,cz" not "us,cz,ru") + // otherwise it's not possible to access levels 5-8 + // - Ctrl+Space related problems: + // - If eight-level layout is used as first layout one of eight-level layouts has to + // be also chosen in GUI - otherwise the Ctrl+Space "switch" is disabled + // - Ctrl+Space has no effect if only four-level layouts are chosen + // (don't forget the layout configured in GUI - despite of it's not reachable) + // - a few keys in 2nd layer could be mixed with other layouts when Ctrl+Space is "turned on" (why?) + // in case eight- and four-level layouts are configured simultaneously + // - Ctrl+Space is "turned on" by default and has to be "turned off" for four-level layouts + // in case eight- and four-level layouts are configured simultaneously + // - four-level layout on first place does not work at all when Ctrl+Space is "turned on" + // in case the 2nd, 3rd or 4th layout is eight-level layout +}; + +//////////////////////////////////////////////////////////////////////////////// + +partial alphanumeric_keys +xkb_symbols "us" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; +}; + + + +partial alphanumeric_keys +xkb_symbols "pl" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "Polish"; +}; + + + +partial alphanumeric_keys +xkb_symbols "fise" { + include "nokia_vndr/rx-51(nordic_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Finnish/Swedish"; + + // 2. row + key { [ odiaeresis, Odiaeresis, exclam, exclam ] }; + key { [ adiaeresis, Adiaeresis, question, question ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "dano" { + include "nokia_vndr/rx-51(nordic_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Danish/Norwegian"; + + // 2. row + key { [ oslash, Oslash, exclam, exclam ] }; + key { [ ae, AE, question, question ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "nordic" { + include "nokia_vndr/rx-51(nordic_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Danish/Finnish/Norwegian/Swedish"; + + key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + + // 2. row + key { [ odiaeresis, Odiaeresis, exclam, exclam, oslash, Oslash, exclam, exclam ] }; + key { [ adiaeresis, Adiaeresis, question, question, ae, AE, question, question ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "ptes" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Portuguese/Spanish"; + + // 1. row + key { [ dead_acute, dead_acute, dead_grave, dead_grave ] }; + + // 2. row + key { [ g, G, exclamdown, exclamdown ] }; + key { [ h, H, exclam, exclam ] }; + key { [ j, J, questiondown, questiondown ] }; + key { [ k, K, question, question ] }; + key { [ l, L, dead_diaeresis, dead_diaeresis ] }; + key { [ ntilde, Ntilde, dead_tilde, dead_tilde ] }; + key { [ ccedilla, Ccedilla, dead_circumflex,dead_circumflex ] }; + + // 3. row + key { [ z, Z, parenleft, parenleft ] }; + key { [ x, X, parenright, parenright ] }; + key { [ c, C, slash, slash ] }; + key { [ v, V, quotedbl, quotedbl ] }; + key { [ b, B, apostrophe, apostrophe ] }; + key { [ n, N, colon, colon ] }; + key { [ m, M, semicolon, semicolon ] }; + key { [ period, comma, comma, comma ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "fr" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "French"; + + // 1. row + key { [ a, A, 1, 1 ] }; + key { [ z, Z, 2, 2 ] }; + key { [ agrave, Agrave, ccedilla, Ccedilla ] }; + + // 2. row + key { [ q, Q, asterisk, asterisk ] }; + key { [ s, S, plus, plus ] }; + key { [ d, D, numbersign, numbersign ] }; + key { [ f, F, minus, minus ] }; + key { [ g, G, underscore, underscore ] }; + key { [ h, H, exclam, exclam ] }; + key { [ j, J, question, question ] }; + key { [ k, K, colon, colon ] }; + key { [ l, L, dead_circumflex,dead_circumflex ] }; + key { [ m, M, ugrave, Ugrave ] }; + key { [ eacute, Eacute, egrave, Egrave ] }; + + // 3. row + key { [ w, W, EuroSign, EuroSign ] }; + key { [ c, C, parenleft, parenleft ] }; + key { [ v, V, parenright, parenright ] }; + key { [ b, B, slash, slash ] }; + key { [ comma, comma, apostrophe, apostrophe ] }; + key { [ semicolon, period, period, period ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "de" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "German"; + + // 1. row + key { [ z, Z, 6, 6 ] }; + key { [ udiaeresis, Udiaeresis, ssharp, ssharp ] }; + + // 2. row + key { [ k, K, semicolon, semicolon ] }; + key { [ l, L, colon, colon ] }; + key { [ odiaeresis, Odiaeresis, exclam, exclam ] }; + key { [ adiaeresis, Adiaeresis, question, question ] }; + + // 3. row + key { [ y, Y, EuroSign, EuroSign ] }; + key { [ c, C, equal, equal ] }; + key { [ period, comma, comma, comma ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "ch" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Swiss"; + + // 1. row + key { [ z, Z, 6, 6 ] }; + key { [ udiaeresis, Udiaeresis, egrave, Egrave ] }; + + // 2. row + key { [ h, H, equal, equal ] }; + key { [ j, J, parenleft, parenleft ] }; + key { [ k, K, parenright, parenright ] }; + key { [ l, L, colon, colon ] }; + key { [ odiaeresis, Odiaeresis, eacute, Aacute ] }; + key { [ adiaeresis, Adiaeresis, agrave, Agrave ] }; + + // 3. row + key { [ y, Y, question, question ] }; + key { [ x, X, exclam, exclam ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ period, comma, comma, comma ] }; +}; + + + +// Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons. +partial alphanumeric_keys +xkb_symbols "ru" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Russian"; + + key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { [ q, Q, 1, 1, Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] }; + key { [ w, W, 2, 2, Cyrillic_tse, Cyrillic_TSE, 2, 2 ] }; + key { [ e, E, 3, 3, Cyrillic_u, Cyrillic_U, 3, 3 ] }; + key { [ r, R, 4, 4, Cyrillic_ka, Cyrillic_KA, 4, 4 ] }; + key { [ t, T, 5, 5, Cyrillic_ie, Cyrillic_IE, 5, 5 ] }; + key { [ y, Y, 6, 6, Cyrillic_en, Cyrillic_EN, 6, 6 ] }; + key { [ u, U, 7, 7, Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] }; + key { [ i, I, 8, 8, Cyrillic_sha, Cyrillic_SHA, 8, 8 ] }; + key { [ o, O, 9, 9, Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] }; + key { [ p, P, 0, 0, Cyrillic_ze, Cyrillic_ZE, 0, 0 ] }; + key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN, Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + + // 2. row + key { [ a, A, asterisk, asterisk, Cyrillic_ef, Cyrillic_EF, asterisk, asterisk ] }; + key { [ s, S, plus, plus, Cyrillic_yeru, Cyrillic_YERU, plus, plus ] }; + key { [ d, D, numbersign, numbersign, Cyrillic_ve, Cyrillic_VE, numbersign, numbersign ] }; + key { [ f, F, minus, minus, Cyrillic_a, Cyrillic_A, minus, minus ] }; + key { [ g, G, underscore, underscore, Cyrillic_pe, Cyrillic_PE, underscore, underscore ] }; + key { [ h, H, exclam, exclam, Cyrillic_er, Cyrillic_ER, exclam, exclam ] }; + key { [ j, J, question, question, Cyrillic_o, Cyrillic_O, question, question ] }; + key { [ k, K, semicolon, semicolon, Cyrillic_el, Cyrillic_EL, semicolon, semicolon ] }; + key { [ l, L, colon, colon, Cyrillic_de, Cyrillic_DE, colon, colon ] }; + key { [ comma, comma, comma, comma, Cyrillic_zhe, Cyrillic_ZHE, comma, comma ] }; + key { [ period, period, period, period, Cyrillic_e, Cyrillic_E, period, period ] }; + + // 3. row + key { [ z, Z, dollar, dollar, Cyrillic_ya, Cyrillic_YA, dollar, dollar ] }; + key { [ x, X, EuroSign, EuroSign, Cyrillic_che, Cyrillic_CHE, EuroSign, EuroSign ] }; + key { [ c, C, slash, slash, Cyrillic_es, Cyrillic_ES, slash, slash ] }; + key { [ v, V, parenleft, parenleft, Cyrillic_em, Cyrillic_EM, parenleft, parenleft ] }; + key { [ b, B, parenright, parenright, Cyrillic_i, Cyrillic_I, parenright, parenright ] }; + key { [ n, N, quotedbl, quotedbl, Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl ] }; + key { [ m, M, apostrophe, apostrophe, Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] }; + key { [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU, Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "it" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Italian"; + + // 1. row + key { [ egrave, Egrave, eacute, Eacute ] }; + + // 2. row + key { [ h, H, semicolon, semicolon ] }; + key { [ j, J, colon, colon ] }; + key { [ k, K, exclam, exclam ] }; + key { [ l, L, question, question ] }; + key { [ ograve, Ograve, igrave, Igrave ] }; + key { [ agrave, Agrave, ugrave, Ugrave ] }; + + // 3. row + key { [ z, Z, EuroSign, EuroSign ] }; + key { [ x, X, parenleft, parenleft ] }; + key { [ c, C, parenright, parenright ] }; + key { [ period, comma, comma, comma ] }; +}; + + + +partial alphanumeric_keys +xkb_symbols "cz" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Czech"; + + // 1. row + key { [ z, Z, 6, 6 ] }; + key { [ dead_acute, dead_acute, sterling, sterling ] }; + + // 2. row + key { [ k, K, semicolon, semicolon ] }; + key { [ l, L, colon, colon ] }; + key { [ uring, Uring, EuroSign, EuroSign ] }; + key { [ dead_caron, dead_caron, dollar, dollar ] }; + + // 3. row + key { [ y, Y, equal, equal ] }; + key { [ x, X, slash, slash ] }; + key { [ c, C, backslash, backslash ] }; + key { [ v, V, apostrophe, apostrophe ] }; + key { [ b, B, quotedbl, quotedbl ] }; + key { [ n, N, exclam, exclam ] }; + key { [ m, M, question, question ] }; + key { [ period, comma, comma, comma ] }; +}; + +partial alphanumeric_keys +xkb_symbols "cz_qwerty" { + include "nokia_vndr/rx-51(cz)" + + name[Group1] = "Czech - qwerty"; + + // Do not use the layout "cz_qwerty" directly if it is the only layout and compat rules enabled. + // There is one compat rule that converts "cz_qwerty" to "pc+cz(qwerty)" which is not correct for RX-51. + // Use either the layout "cz(qwerty)" or the general "cz" with variant "qwerty". + + // 1. row + key { [ y, Y, 6, 6 ] }; + + // 3. row + key { [ z, Z, percent, percent ] }; +}; + + + +//////////////////////////////////////////////////////////////////////////////// + +partial hidden alphanumeric_keys +xkb_symbols "nordic_base" { + include "nokia_vndr/rx-51(english_base)" + + // 1. row + key { [ aring, Aring, equal, equal ] }; + + // 2. row + key { [ k, K, semicolon, semicolon ] }; + key { [ l, L, colon, colon ] }; + + // 3. row + key { [ z, Z, EuroSign, EuroSign ] }; + key { [ c, C, sterling, sterling ] }; + key { [ period, comma, comma, comma ] }; +}; + +partial hidden alphanumeric_keys +xkb_symbols "english_base" { + + // 1. row + key { [ q, Q, 1, 1 ] }; + key { [ w, W, 2, 2 ] }; + key { [ e, E, 3, 3 ] }; + key { [ r, R, 4, 4 ] }; + key { [ t, T, 5, 5 ] }; + key { [ y, Y, 6, 6 ] }; + key { [ u, U, 7, 7 ] }; + key { [ i, I, 8, 8 ] }; + key { [ o, O, 9, 9 ] }; + key { [ p, P, 0, 0 ] }; + key { [ comma, semicolon, equal, equal ] }; + + // 2. row + key { [ a, A, asterisk, asterisk ] }; + key { [ s, S, plus, plus ] }; + key { [ d, D, numbersign, numbersign ] }; + key { [ f, F, minus, minus ] }; + key { [ g, G, underscore, underscore ] }; + key { [ h, H, parenleft, parenleft ] }; + key { [ j, J, parenright, parenright ] }; + key { [ k, K, ampersand, ampersand ] }; + key { [ l, L, exclam, exclam ] }; + key { [ period, colon, question, question ] }; + + // 3. row + key { [ z, Z, sterling, sterling ] }; + key { [ x, X, dollar, dollar ] }; + key { [ c, C, EuroSign, EuroSign ] }; + key { [ v, V, slash, slash ] }; + key { [ b, B, backslash, backslash ] }; + key { [ n, N, quotedbl, quotedbl ] }; + key { [ m, M, apostrophe, apostrophe ] }; + key { [ space, space, at, at ] }; +}; + +partial hidden alphanumeric_keys +xkb_symbols "common_keys" { + // all other common keys + + key { [ BackSpace ] }; + key { [ Tab ] }; + + // broken UI spec. + key { [ KP_Enter ] }; + + key { [ Return ] }; + key { [ Escape ] }; + + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + + // Swap +/- keys intentionally. The VOL+/VOL- keys are located physically + // on left/right and up/down in landscape/portrait orientation. This does + // not feel natural for the user and therefore we want the VOL+/VOL- keys + // map to -/+. + // + // The only exception is an active call in portrait mode where we want to + // use the real meanings of the keys. This special case and management of + // +/- keys in general is handled in maemo-statusmenu-volume. + key { [ F8 ] }; + key { [ F7 ] }; + + key { [ F9 ] }; + key { [ F10 ] }; + key { [ F11 ] }; +}; + +partial hidden alphanumeric_keys modifier_keys +xkb_symbols "modifiers" { + // Shift switches between current level and level+1 + key { + type[Group1] = "ONE_LEVEL", + symbols[Group1] = [ Shift_L ] + }; + modifier_map Shift { Shift_L }; + + // Fn+Ctrl virtual symbol table (Multi_key) + // Ctrl+Space switches between 1st and 5th level (hardcoded in hildon) + key { + type[Group1] = "FOUR_LEVEL", + symbols[Group1] = [ Control_L, Control_L, Multi_key, Multi_key ] + }; + modifier_map Control { Control_L }; + + // Fn key (right alt) switches to 3rd level + include "level3(ralt_switch)" +}; + +partial hidden alphanumeric_keys +xkb_symbols "arrows_2btns" { + // rx-51 specific arrows mapping + // normal 2nd level must not be enumerated to allow text selection with Shift key + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, Up ] }; + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, Down ] }; +}; + +partial hidden alphanumeric_keys +xkb_symbols "arrows_4btns" { + // standard arrows mapping + // normal 2nd level must not be enumerated to allow text selection with Shift key + key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Up ] }; + key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Left ] }; + key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Down ] }; + key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Right ] }; +}; + +// author: Roman Moravcik +xkb_symbols "sk" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Slovak QWERTZ (CZ HW)"; + + // 1. row + key { [ z, Z, 6, 6 ] }; + key { [ dead_acute, dead_acute, sterling, sterling ] }; + + // 2. row + key { [ k, K, semicolon, semicolon ] }; + key { [ l, L, colon, colon ] }; + key { [ ocircumflex, adiaeresis, EuroSign, EuroSign ] }; + key { [ dead_caron, bar, dollar, dollar ] }; + + // 3. row + key { [ y, Y, equal, equal ] }; + key { [ x, X, slash, slash ] }; + key { [ c, C, backslash, backslash ] }; + key { [ v, V, apostrophe, apostrophe ] }; + key { [ b, B, quotedbl, quotedbl ] }; + key { [ n, N, exclam, exclam ] }; + key { [ m, M, question, question ] }; + key { [ period, Tab, comma, comma ] }; +}; + +xkb_symbols "sk_qwerty" { + include "nokia_vndr/rx-51(sk)" + + name[Group1] = "Slovak QWERTY (CZ hw)"; + + // 1. row + key { [ y, Y, 6, 6 ] }; + + // 3. row + key { [ z, Z, equal, equal ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "aren" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Arabic"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Arabic_dad, Arabic_fatha, 0x1000661, 0x1000661 ] }; + key { symbols[Group2] = [ Arabic_sad, Arabic_fathatan, 0x1000662, 0x1000662 ] }; + key { symbols[Group2] = [ Arabic_theh, Arabic_damma, 0x1000663, 0x1000663 ] }; + key { symbols[Group2] = [ Arabic_qaf, Arabic_dammatan, 0x1000664, 0x1000664 ] }; + key { symbols[Group2] = [ Arabic_feh, 0x100fef9, 0x1000665, 0x1000665 ] }; + key { symbols[Group2] = [ Arabic_ghain, Arabic_hamzaunderalef, 0x1000666, 0x1000666 ] }; + key { symbols[Group2] = [ Arabic_ain, rightsinglequotemark, 0x1000667, 0x1000667 ] }; + key { symbols[Group2] = [ Arabic_ha, Arabic_tehmarbuta, 0x1000668, 0x1000668 ] }; + key { symbols[Group2] = [ Arabic_khah, division, 0x1000669, 0x1000669 ] }; + key { symbols[Group2] = [ Arabic_hah, multiply, 0x1000660, 0x1000660 ] }; + key { symbols[Group2] = [ Arabic_jeem, period, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ Arabic_sheen, Arabic_kasra, asterisk, asterisk ] }; + key { symbols[Group2] = [ Arabic_seen, Arabic_kasratan, plus, plus ] }; + key { symbols[Group2] = [ Arabic_yeh, Arabic_alefmaksura, numbersign, numbersign ] }; + key { symbols[Group2] = [ Arabic_beh, Arabic_hamzaonyeh, minus, minus ] }; + key { symbols[Group2] = [ Arabic_lam, 0x100fef7, underscore, underscore ] }; + key { symbols[Group2] = [ Arabic_alef, Arabic_hamzaonalef, parenright, parenright ] }; + key { symbols[Group2] = [ Arabic_teh, Arabic_tatweel, parenleft, parenleft ] }; + key { symbols[Group2] = [ Arabic_noon, Arabic_comma, ampersand, ampersand ] }; + key { symbols[Group2] = [ Arabic_meem, Arabic_semicolon, exclam, exclam ] }; + key { symbols[Group2] = [ Arabic_kaf, colon, Arabic_question_mark, Arabic_question_mark ] }; + + // 3. row + key { symbols[Group2] = [ Arabic_thal, Arabic_shadda, sterling, sterling ] }; + key { symbols[Group2] = [ Arabic_dal, Arabic_sukun, dollar, dollar ] }; + key { symbols[Group2] = [ Arabic_waw, Arabic_hamzaonwaw, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Arabic_ra, 0x100fef5, slash, slash ] }; + key { symbols[Group2] = [ Arabic_zain, 0x100fefb, backslash, backslash ] }; + key { symbols[Group2] = [ Arabic_tah, Arabic_maddaonalef, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Arabic_zah, Arabic_hamza, apostrophe, apostrophe ] }; +}; + +// author: Hessam Farhang +partial alphanumeric_keys +xkb_symbols "faen" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Persian"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Arabic_dad, Arabic_sukun, 0x10006f1, 0x1000661 ] }; + key { symbols[Group2] = [ Arabic_sad, Arabic_dammatan, 0x10006f2, 0x1000662 ] }; + key { symbols[Group2] = [ Arabic_theh, Arabic_kasratan, 0x10006f3, 0x1000663 ] }; + key { symbols[Group2] = [ Arabic_qaf, Arabic_fathatan, 0x10006f4, 0x1000664 ] }; + key { symbols[Group2] = [ Arabic_feh, Arabic_damma, 0x10006f5, 0x1000665 ] }; + key { symbols[Group2] = [ Arabic_ghain, Arabic_kasra, 0x10006f6, 0x1000666 ] }; + key { symbols[Group2] = [ Arabic_ain, Arabic_fatha, 0x10006f7, 0x1000667 ] }; + key { symbols[Group2] = [ Arabic_heh, Arabic_shadda, 0x10006f8, 0x1000668 ] }; + key { symbols[Group2] = [ Arabic_khah, 0x10006af, 0x10006f9, 0x1000669 ] }; + key { symbols[Group2] = [ Arabic_hah, 0x1000686, 0x10006f0, 0x1000660 ] }; + key { symbols[Group2] = [ Arabic_jeem, Arabic_comma, comma, Arabic_semicolon ] }; + + // 2. row + key { symbols[Group2] = [ Arabic_sheen, Arabic_hamzaonwaw, asterisk, asterisk ] }; + key { symbols[Group2] = [ Arabic_seen, Arabic_hamzaonyeh, plus, plus ] }; + key { symbols[Group2] = [ 0x10006cc, period, numbersign, numbersign ] }; + key { symbols[Group2] = [ Arabic_beh, colon, minus, minus ] }; + key { symbols[Group2] = [ Arabic_lam, Arabic_hamzaonalef, underscore, underscore ] }; + key { symbols[Group2] = [ Arabic_alef, Arabic_maddaonalef, parenleft, parenleft ] }; + key { symbols[Group2] = [ Arabic_teh, Arabic_tehmarbuta, parenright, parenright ] }; + key { symbols[Group2] = [ Arabic_noon, guillemotright, ampersand, ampersand ] }; + key { symbols[Group2] = [ Arabic_meem, guillemotleft, exclam, exclam ] }; + key { symbols[Group2] = [ 0x10006a9, Arabic_waw, Arabic_question_mark, colon ] }; + + // 3. row + key { symbols[Group2] = [ Arabic_zah, Arabic_kaf, sterling, period ] }; + key { symbols[Group2] = [ Arabic_tah, 0x1000653, dollar, dollar ] }; + key { symbols[Group2] = [ Arabic_zain, 0x1000698, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Arabic_ra, 0x1000670, slash, slash ] }; + key { symbols[Group2] = [ Arabic_thal, 0x100200c, backslash, backslash ] }; + key { symbols[Group2] = [ Arabic_dal, 0x1000654, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ 0x100067e, Arabic_hamza, apostrophe, apostrophe ] }; +}; + +// author: Jaroslav Poriz +xkb_symbols "dv" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "Dvorak"; + + // 1. row + key { [ colon, semicolon, 1, 1 ] }; + key { [ w, W, 2, 2 ] }; + key { [ v, V, 3, 3 ] }; + key { [ p, P, 4, 4 ] }; + key { [ y, Y, 5, 5 ] }; + key { [ f, F, 6, 6 ] }; + key { [ g, G, 7, 7 ] }; + key { [ c, C, 8, 8 ] }; + key { [ r, R, 9, 9 ] }; + key { [ l, L, 0, 0 ] }; + key { [ period, comma, equal, equal ] }; + + // 2. row + key { [ a, A, asterisk, asterisk ] }; + key { [ o, O, plus, plus ] }; + key { [ e, E, numbersign, numbersign ] }; + key { [ u, U, minus, minus ] }; + key { [ i, I, underscore, underscore ] }; + key { [ d, D, exclam, parenleft ] }; + key { [ h, H, question, parenright ] }; + key { [ t, T, ampersand, ampersand ] }; + key { [ n, N, less, exclam ] }; + key { [ s, S, greater, question ] }; + + // 3. row + key { [ z, Z, asciitilde, asciitilde ] }; + key { [ q, Q, dollar, dollar ] }; + key { [ j, J, backslash, bar ] }; + key { [ k, K, grave, slash ] }; + key { [ x, X, parenleft, backslash ] }; + key { [ b, B, parenright, quotedbl ] }; + key { [ m, M, apostrophe, apostrophe ] }; + key { [ space, slash, at, at ] }; +}; + +// author: Porfyras +// author: Roman Moravcik +// author: Faidon Liambotis +partial alphanumeric_keys +xkb_symbols "gr" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Greek"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ period, colon, 1, 1 ] }; + key { symbols[Group2] = [ Greek_finalsmallsigma, Greek_SIGMA, 2, 2 ] }; + key { symbols[Group2] = [ Greek_epsilon, Greek_EPSILON, 3, 3 ] }; + key { symbols[Group2] = [ Greek_rho, Greek_RHO, 4, 4 ] }; + key { symbols[Group2] = [ Greek_tau, Greek_TAU, 5, 5 ] }; + key { symbols[Group2] = [ Greek_upsilon, Greek_UPSILON, 6, 6 ] }; + key { symbols[Group2] = [ Greek_theta, Greek_THETA, 7, 7 ] }; + key { symbols[Group2] = [ Greek_iota, Greek_IOTA, 8, 8 ] }; + key { symbols[Group2] = [ Greek_omicron, Greek_OMICRON, 9, 9 ] }; + key { symbols[Group2] = [ Greek_pi, Greek_PI, 0, 0 ] }; + key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ Greek_alpha, Greek_ALPHA, asterisk, asterisk ] }; + key { symbols[Group2] = [ Greek_sigma, Greek_SIGMA, plus, plus ] }; + key { symbols[Group2] = [ Greek_delta, Greek_DELTA, numbersign, numbersign ] }; + key { symbols[Group2] = [ Greek_phi, Greek_PHI, minus, minus ] }; + key { symbols[Group2] = [ Greek_gamma, Greek_GAMMA, underscore, underscore ] }; + key { symbols[Group2] = [ Greek_eta, Greek_ETA, parenleft, parenleft ] }; + key { symbols[Group2] = [ Greek_xi, Greek_XI, parenright, parenright ] }; + key { symbols[Group2] = [ Greek_kappa, Greek_KAPPA, ampersand, ampersand ] }; + key { symbols[Group2] = [ Greek_lamda, Greek_LAMDA, exclam, exclam ] }; + key { symbols[Group2] = [ dead_acute, dead_diaeresis, question, question ] }; + + // 3. row + key { symbols[Group2] = [ Greek_zeta, Greek_ZETA, sterling, sterling ] }; + key { symbols[Group2] = [ Greek_chi, Greek_CHI, dollar, dollar ] }; + key { symbols[Group2] = [ Greek_psi, Greek_PSI, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Greek_omega, Greek_OMEGA, slash, slash ] }; + key { symbols[Group2] = [ Greek_beta, Greek_BETA, backslash, backslash ] }; + key { symbols[Group2] = [ Greek_nu, Greek_NU, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Greek_mu, Greek_MU, apostrophe, apostrophe ] }; +}; + +// author: Ognian Samokovliyski +// author: Kostadin Bashev +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "bg_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Bulgarian - Phonetic"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; + key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; + key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key { symbols[Group2] = [ Cyrillic_hardsign, Cyrillic_HARDSIGN, 6, 6 ] }; + key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; + key { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, parenright, parenright ] }; + key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; + key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; + key { symbols[Group2] = [ period, colon, question, question ] }; + key { symbols[Group2] = [ Cyrillic_yu, Cyrillic_YU, Up, Up ] }; + + // 3. row + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, sterling, sterling ] }; + key { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, dollar, dollar ] }; + key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, slash, slash ] }; + key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; + key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Left, Left ] }; + key { symbols[Group2] = [ Cyrillic_shcha, Cyrillic_SHCHA, Down, Down ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Right, Right ] }; +}; + +// author: Nikola Kovachevski +partial alphanumeric_keys +xkb_symbols "mk" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Macedonian"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Cyrillic_lje, Cyrillic_LJE, 1, 1 ] }; + key { symbols[Group2] = [ Cyrillic_nje, Cyrillic_NJE, 2, 2 ] }; + key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key { symbols[Group2] = [ Macedonia_dse, Macedonia_DSE, 6, 6 ] }; + key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; + key { symbols[Group2] = [ Cyrillic_je, Cyrillic_JE, parenright, parenright ] }; + key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; + key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; + key { symbols[Group2] = [ period, comma, question, question ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Up, Up ] }; + + // 3. row + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, colon, colon ] }; + key { symbols[Group2] = [ Cyrillic_dzhe, Cyrillic_DZHE, semicolon, semicolon ] }; + key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, slash, slash ] }; + key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; + key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Macedonia_kje, Macedonia_KJE, Left, Left ] }; + key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, Down, Down ] }; + key { symbols[Group2] = [ Macedonia_gje, Macedonia_GJE, Right, Right ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "ru_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Russian - Phonetic"; + name[Group2] = "U.S. English"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group1] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; + key { symbols[Group1] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; + key { symbols[Group1] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key { symbols[Group1] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key { symbols[Group1] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key { symbols[Group1] = [ Cyrillic_yeru, Cyrillic_YERU, 6, 6 ] }; + key { symbols[Group1] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key { symbols[Group1] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key { symbols[Group1] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key { symbols[Group1] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key { symbols[Group1] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + key { symbols[Group2] = [ q, Q, 1, 1 ] }; + key { symbols[Group2] = [ w, W, 2, 2 ] }; + key { symbols[Group2] = [ e, E, 3, 3 ] }; + key { symbols[Group2] = [ r, R, 4, 4 ] }; + key { symbols[Group2] = [ t, T, 5, 5 ] }; + key { symbols[Group2] = [ y, Y, 6, 6 ] }; + key { symbols[Group2] = [ u, U, 7, 7 ] }; + key { symbols[Group2] = [ i, I, 8, 8 ] }; + key { symbols[Group2] = [ o, O, 9, 9 ] }; + key { symbols[Group2] = [ p, P, 0, 0 ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + // 2. row + key { symbols[Group1] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key { symbols[Group1] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key { symbols[Group1] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key { symbols[Group1] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key { symbols[Group1] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key { symbols[Group1] = [ Cyrillic_ha, Cyrillic_HA, exclam, exclam ] }; + key { symbols[Group1] = [ Cyrillic_shorti, Cyrillic_SHORTI, question, question ] }; + key { symbols[Group1] = [ Cyrillic_ka, Cyrillic_KA, semicolon, semicolon ] }; + key { symbols[Group1] = [ Cyrillic_el, Cyrillic_EL, colon, colon ] }; + key { symbols[Group1] = [ Cyrillic_yu, Cyrillic_YU, comma, comma ] }; + key { symbols[Group1] = [ Cyrillic_e, Cyrillic_E, period, period ] }; + + key { symbols[Group2] = [ a, A, asterisk, asterisk ] }; + key { symbols[Group2] = [ s, S, plus, plus ] }; + key { symbols[Group2] = [ d, D, numbersign, numbersign ] }; + key { symbols[Group2] = [ f, F, minus, minus ] }; + key { symbols[Group2] = [ g, G, underscore, underscore ] }; + key { symbols[Group2] = [ h, H, exclam, exclam ] }; + key { symbols[Group2] = [ j, J, question, question ] }; + key { symbols[Group2] = [ k, K, semicolon, semicolon ] }; + key { symbols[Group2] = [ l, L, colon, colon ] }; + key { symbols[Group2] = [ comma, comma, comma, comma ] }; + key { symbols[Group2] = [ period, period, period, period ] }; + + // 3. row + key { symbols[Group1] = [ Cyrillic_ze, Cyrillic_ZE, dollar, dollar ] }; + key { symbols[Group1] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, EuroSign, EuroSign ] }; + key { symbols[Group1] = [ Cyrillic_tse, Cyrillic_TSE, slash, slash ] }; + key { symbols[Group1] = [ Cyrillic_zhe, Cyrillic_ZHE, parenleft, parenleft ] }; + key { symbols[Group1] = [ Cyrillic_be, Cyrillic_BE, parenright, parenright ] }; + key { symbols[Group1] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key { symbols[Group1] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key { symbols[Group1] = [ Cyrillic_che, Cyrillic_CHE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + + key { symbols[Group2] = [ z, Z, dollar, dollar ] }; + key { symbols[Group2] = [ x, X, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ c, C, slash, slash ] }; + key { symbols[Group2] = [ v, V, parenleft, parenleft ] }; + key { symbols[Group2] = [ b, B, parenright, parenright ] }; + key { symbols[Group2] = [ n, N, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ m, M, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "he_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Hebrew - Phonetic"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ hebrew_qoph, hebrew_qoph, 1, 1 ] }; + key { symbols[Group2] = [ hebrew_waw, hebrew_waw, 2, 2 ] }; + key { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, 3, 3 ] }; + key { symbols[Group2] = [ hebrew_resh, hebrew_resh, 4, 4 ] }; + key { symbols[Group2] = [ hebrew_taw, hebrew_tet, 5, 5 ] }; + key { symbols[Group2] = [ hebrew_ayin, hebrew_ayin, 6, 6 ] }; + key { symbols[Group2] = [ hebrew_waw, hebrew_waw, 7, 7 ] }; + key { symbols[Group2] = [ hebrew_yod, hebrew_yod, 8, 8 ] }; + key { symbols[Group2] = [ hebrew_samech, hebrew_samech, 9, 9 ] }; + key { symbols[Group2] = [ hebrew_pe, hebrew_finalpe, 0, 0 ] }; + key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, asterisk, asterisk ] }; + key { symbols[Group2] = [ hebrew_shin, hebrew_shin, plus, plus ] }; + key { symbols[Group2] = [ hebrew_dalet, hebrew_dalet, numbersign, numbersign ] }; + key { symbols[Group2] = [ hebrew_pe, hebrew_finalpe, minus, minus ] }; + key { symbols[Group2] = [ hebrew_gimel, hebrew_gimel, underscore, underscore ] }; + key { symbols[Group2] = [ hebrew_he, hebrew_he, parenleft, parenleft ] }; + key { symbols[Group2] = [ hebrew_yod, hebrew_yod, parenright, parenright ] }; + key { symbols[Group2] = [ hebrew_kaph, hebrew_finalkaph, ampersand, ampersand ] }; + key { symbols[Group2] = [ hebrew_lamed, hebrew_lamed, exclam, exclam ] }; + key { symbols[Group2] = [ period, colon, question, question ] }; + + // 3. row + key { symbols[Group2] = [ hebrew_zain, hebrew_zain, sterling, sterling ] }; + key { symbols[Group2] = [ hebrew_chet, hebrew_chet, dollar, dollar ] }; + key { symbols[Group2] = [ hebrew_zade, hebrew_finalzade, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ hebrew_waw, hebrew_waw, slash, slash ] }; + key { symbols[Group2] = [ hebrew_bet, hebrew_bet, backslash, backslash ] }; + key { symbols[Group2] = [ hebrew_nun, hebrew_finalnun, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ hebrew_mem, hebrew_finalmem, apostrophe, apostrophe ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "he" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Hebrew"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ hebrew_taw, hebrew_taw, 1, 1 ] }; + key { symbols[Group2] = [ hebrew_finalzade, hebrew_finalzade, 2, 2 ] }; + key { symbols[Group2] = [ hebrew_qoph, hebrew_qoph, 3, 3 ] }; + key { symbols[Group2] = [ hebrew_resh, hebrew_resh, 4, 4 ] }; + key { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, 5, 5 ] }; + key { symbols[Group2] = [ hebrew_tet, hebrew_tet, 6, 6 ] }; + key { symbols[Group2] = [ hebrew_waw, hebrew_waw, 7, 7 ] }; + key { symbols[Group2] = [ hebrew_finalnun, hebrew_finalnun, 8, 8 ] }; + key { symbols[Group2] = [ hebrew_finalmem, hebrew_finalmem, 9, 9 ] }; + key { symbols[Group2] = [ hebrew_pe, hebrew_pe, 0, 0 ] }; + key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ hebrew_shin, hebrew_shin, asterisk, asterisk ] }; + key { symbols[Group2] = [ hebrew_dalet, hebrew_dalet, plus, plus ] }; + key { symbols[Group2] = [ hebrew_gimel, hebrew_gimel, numbersign, numbersign ] }; + key { symbols[Group2] = [ hebrew_kaph, hebrew_kaph, minus, minus ] }; + key { symbols[Group2] = [ hebrew_ayin, hebrew_ayin, underscore, underscore ] }; + key { symbols[Group2] = [ hebrew_yod, hebrew_yod, parenleft, parenleft ] }; + key { symbols[Group2] = [ hebrew_chet, hebrew_chet, parenright, parenright ] }; + key { symbols[Group2] = [ hebrew_lamed, hebrew_lamed, ampersand, ampersand ] }; + key { symbols[Group2] = [ hebrew_finalkaph, period, exclam, exclam ] }; + key { symbols[Group2] = [ hebrew_finalpe, colon, question, question ] }; + + // 3. row + key { symbols[Group2] = [ hebrew_zain, hebrew_zain, sterling, sterling ] }; + key { symbols[Group2] = [ hebrew_samech, hebrew_samech, dollar, dollar ] }; + key { symbols[Group2] = [ hebrew_bet, hebrew_bet, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ hebrew_he, hebrew_he, slash, slash ] }; + key { symbols[Group2] = [ hebrew_nun, hebrew_nun, backslash, backslash ] }; + key { symbols[Group2] = [ hebrew_mem, hebrew_mem, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ hebrew_zade, hebrew_zade, apostrophe, apostrophe ] }; +}; + +// author: David Gegechkori +partial alphanumeric_keys +xkb_symbols "ge" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Georgian - Latin"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ 0x010010e5, Q, 1, 1 ] }; + key { symbols[Group2] = [ 0x010010ec, 0x010010ed, 2, 2 ] }; + key { symbols[Group2] = [ 0x010010d4, E, 3, 3 ] }; + key { symbols[Group2] = [ 0x010010e0, 0x010010e6, 4, 4 ] }; + key { symbols[Group2] = [ 0x010010e2, 0x010010d7, 5, 5 ] }; + key { symbols[Group2] = [ 0x010010e7, Y, 6, 6 ] }; + key { symbols[Group2] = [ 0x010010e3, U, 7, 7 ] }; + key { symbols[Group2] = [ 0x010010d8, I, 8, 8 ] }; + key { symbols[Group2] = [ 0x010010dd, O, 9, 9 ] }; + key { symbols[Group2] = [ 0x010010de, P, 0, 0 ] }; + key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ 0x010010d0, A, asterisk, asterisk ] }; + key { symbols[Group2] = [ 0x010010e1, 0x010010e8, plus, plus ] }; + key { symbols[Group2] = [ 0x010010d3, D, numbersign, numbersign ] }; + key { symbols[Group2] = [ 0x010010e4, F, minus, minus ] }; + key { symbols[Group2] = [ 0x010010d2, G, underscore, underscore ] }; + key { symbols[Group2] = [ 0x010010f0, H, parenleft, parenleft ] }; + key { symbols[Group2] = [ 0x010010ef, 0x010010df, parenright, parenright ] }; + key { symbols[Group2] = [ 0x010010d9, K, ampersand, ampersand ] }; + key { symbols[Group2] = [ 0x010010da, L, exclam, exclam ] }; + key { symbols[Group2] = [ period, colon, question, question ] }; + + // 3. row + key { symbols[Group2] = [ 0x010010d6, 0x010010eb, sterling, sterling ] }; + key { symbols[Group2] = [ 0x010010ee, X, dollar, dollar ] }; + key { symbols[Group2] = [ 0x010010ea, 0x010010e9, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ 0x010010d5, V, slash, slash ] }; + key { symbols[Group2] = [ 0x010010d1, B, backslash, backslash ] }; + key { symbols[Group2] = [ 0x010010dc, N, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ 0x010010db, M, apostrophe, apostrophe ] }; +}; + +// author: Eriks Jansons +partial alphanumeric_keys +xkb_symbols "lv" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Latvian"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ q, Q, 1, 1 ] }; + key { symbols[Group2] = [ w, W, 2, 2 ] }; + key { symbols[Group2] = [ emacron, Emacron, 3, 3 ] }; + key { symbols[Group2] = [ rcedilla, Rcedilla, 4, 4 ] }; + key { symbols[Group2] = [ t, T, 5, 5 ] }; + key { symbols[Group2] = [ y, Y, 6, 6 ] }; + key { symbols[Group2] = [ umacron, Umacron, 7, 7 ] }; + key { symbols[Group2] = [ imacron, Imacron, 8, 8 ] }; + key { symbols[Group2] = [ omacron, Omacron, 9, 9 ] }; + key { symbols[Group2] = [ p, P, 0, 0 ] }; + key { symbols[Group1] = [ ISO_Group_Latch, semicolon, equal, equal], + symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ amacron, Amacron, asterisk, asterisk ] }; + key { symbols[Group2] = [ scaron, Scaron, plus, plus ] }; + key { symbols[Group2] = [ d, D, numbersign, numbersign ] }; + key { symbols[Group2] = [ f, F, minus, minus ] }; + key { symbols[Group2] = [ gcedilla, Gcedilla, underscore, underscore ] }; + key { symbols[Group2] = [ h, H, parenleft, parenleft ] }; + key { symbols[Group2] = [ j, J, parenright, parenright ] }; + key { symbols[Group2] = [ kcedilla, Kcedilla, ampersand, ampersand ] }; + key { symbols[Group2] = [ lcedilla, Lcedilla, exclam, exclam ] }; + key { symbols[Group2] = [ period, colon, question, question ] }; + + // 3. row + key { symbols[Group2] = [ zcaron, Zcaron, sterling, sterling ] }; + key { symbols[Group2] = [ x, X, dollar, dollar ] }; + key { symbols[Group2] = [ ccaron, Ccaron, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ v, V, slash, slash ] }; + key { symbols[Group2] = [ b, B, backslash, backslash ] }; + key { symbols[Group2] = [ ncedilla, Ncedilla, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ m, M, apostrophe, apostrophe ] }; +}; + +// author: Aleksandar Urosevic +partial alphanumeric_keys +xkb_symbols "sr_cyrillic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Serbian - Cyrillic"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Cyrillic_lje, Cyrillic_LJE, 1, 1 ] }; + key { symbols[Group2] = [ Cyrillic_nje, Cyrillic_NJE, 2, 2 ] }; + key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, 6, 6 ] }; + key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; + key { symbols[Group2] = [ Cyrillic_je, Cyrillic_JE, parenright, parenright ] }; + key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; + key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; + key { symbols[Group2] = [ period, comma, question, question ] }; + key { symbols[Group2] = [ Serbian_dje, Serbian_DJE, Up, Up ] }; + + // 3. row + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, colon, colon ] }; + key { symbols[Group2] = [ Cyrillic_dzhe, Cyrillic_DZHE, semicolon, semicolon ] }; + key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, slash, slash ] }; + key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; + key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Left, Left ] }; + key { symbols[Group2] = [ Serbian_tshe, Serbian_TSHE, Down, Down ] }; + key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, Right, Right ] }; +}; + +// author: Roman Moravcik +// author: Tarick +partial alphanumeric_keys +xkb_symbols "ua_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Ukrainian - Phonetic"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group1] = [ q, Q, 1, 1 ] }; + key { symbols[Group1] = [ w, W, 2, 2 ] }; + key { symbols[Group1] = [ e, E, 3, 3 ] }; + key { symbols[Group1] = [ r, R, 4, 4 ] }; + key { symbols[Group1] = [ t, T, 5, 5 ] }; + key { symbols[Group1] = [ y, Y, 6, 6 ] }; + key { symbols[Group1] = [ u, U, 7, 7 ] }; + key { symbols[Group1] = [ i, I, 8, 8 ] }; + key { symbols[Group1] = [ o, O, 9, 9 ] }; + key { symbols[Group1] = [ p, P, 0, 0 ] }; + key { symbols[Group1] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + key { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; + key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; + key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 6, 6 ] }; + key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key { symbols[Group2] = [ Ukrainian_i, Ukrainian_I, 8, 8 ] }; + key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + // 2. row + key { symbols[Group1] = [ a, A, asterisk, asterisk ] }; + key { symbols[Group1] = [ s, S, plus, plus ] }; + key { symbols[Group1] = [ d, D, numbersign, numbersign ] }; + key { symbols[Group1] = [ f, F, minus, minus ] }; + key { symbols[Group1] = [ g, G, underscore, underscore ] }; + key { symbols[Group1] = [ h, H, exclam, exclam ] }; + key { symbols[Group1] = [ j, J, question, question ] }; + key { symbols[Group1] = [ k, K, semicolon, semicolon ] }; + key { symbols[Group1] = [ l, L, colon, colon ] }; + key { symbols[Group1] = [ comma, comma, comma, comma ] }; + key { symbols[Group1] = [ period, period, period, period ] }; + + key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, exclam, exclam ] }; + key { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, question, question ] }; + key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, semicolon, semicolon ] }; + key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, colon, colon ] }; + key { symbols[Group2] = [ Cyrillic_yu, Cyrillic_YU, comma, comma ] }; + key { symbols[Group2] = [ Ukrainin_ie, Ukrainian_IE, period, period ] }; + + // 3. row + key { symbols[Group1] = [ z, Z, dollar, dollar ] }; + key { symbols[Group1] = [ x, X, EuroSign, EuroSign ] }; + key { symbols[Group1] = [ c, C, slash, slash ] }; + key { symbols[Group1] = [ v, V, parenleft, parenleft ] }; + key { symbols[Group1] = [ b, B, parenright, parenright ] }; + key { symbols[Group1] = [ n, N, quotedbl, quotedbl ] }; + key { symbols[Group1] = [ m, M, apostrophe, apostrophe ] }; + key { symbols[Group1] = [ Cyrillic_che, Cyrillic_CHE, Ukrainian_yi, Ukrainian_YI ] }; + + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, dollar, dollar ] }; + key { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, slash, slash ] }; + key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, parenleft, parenleft ] }; + key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, parenright, parenright ] }; + key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Ukrainian_yi, Ukrainian_YI ] }; +}; + + +// author: Roman Moravcik +// author: Tarick +partial alphanumeric_keys +xkb_symbols "ua" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Ukrainian"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group1] = [ q, Q, 1, 1 ] }; + key { symbols[Group1] = [ w, W, 2, 2 ] }; + key { symbols[Group1] = [ e, E, 3, 3 ] }; + key { symbols[Group1] = [ r, R, 4, 4 ] }; + key { symbols[Group1] = [ t, T, 5, 5 ] }; + key { symbols[Group1] = [ y, Y, 6, 6 ] }; + key { symbols[Group1] = [ u, U, 7, 7 ] }; + key { symbols[Group1] = [ i, I, 8, 8 ] }; + key { symbols[Group1] = [ o, O, 9, 9 ] }; + key { symbols[Group1] = [ p, P, 0, 0 ] }; + key { symbols[Group1] = [ Cyrillic_ha, Cyrillic_HA, Ukrainian_yi, Ukrainian_YI ] }; + + key { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] }; + key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, 2, 2 ] }; + key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 3, 3 ] }; + key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, 4, 4 ] }; + key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 5, 5 ] }; + key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, 6, 6 ] }; + key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, 8, 8 ] }; + key { symbols[Group2] = [ Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] }; + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, 0, 0 ] }; + key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, Ukrainian_yi, Ukrainian_YI ] }; + + // 2. row + key { symbols[Group1] = [ a, A, asterisk, asterisk ] }; + key { symbols[Group1] = [ s, S, plus, plus ] }; + key { symbols[Group1] = [ d, D, numbersign, numbersign ] }; + key { symbols[Group1] = [ f, F, minus, minus ] }; + key { symbols[Group1] = [ g, G, underscore, underscore ] }; + key { symbols[Group1] = [ h, H, exclam, exclam ] }; + key { symbols[Group1] = [ j, J, question, question ] }; + key { symbols[Group1] = [ k, K, semicolon, semicolon ] }; + key { symbols[Group1] = [ l, L, colon, colon ] }; + key { symbols[Group1] = [ comma, comma, comma, comma ] }; + key { symbols[Group1] = [ period, period, period, period ] }; + + key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, asterisk, asterisk ] }; + key { symbols[Group2] = [ Ukrainian_i, Ukrainian_I, plus, plus ] }; + key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, numbersign, numbersign ] }; + key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, minus, minus ] }; + key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, underscore, underscore ] }; + key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, exclam, exclam ] }; + key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, question, question ] }; + key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, semicolon, semicolon ] }; + key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, colon, colon ] }; + key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, comma, comma ] }; + key { symbols[Group2] = [ Ukrainian_ie, Ukrainian_IE, period, period ] }; + + // 3. row + key { symbols[Group1] = [ z, Z, dollar, dollar ] }; + key { symbols[Group1] = [ x, X, EuroSign, EuroSign ] }; + key { symbols[Group1] = [ c, C, slash, slash ] }; + key { symbols[Group1] = [ v, V, parenleft, parenleft ] }; + key { symbols[Group1] = [ b, B, parenright, parenright ] }; + key { symbols[Group1] = [ n, N, quotedbl, quotedbl ] }; + key { symbols[Group1] = [ m, M, apostrophe, apostrophe ] }; + key { symbols[Group1] = [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] }; + + key { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, dollar, dollar ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, slash, slash ] }; + key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, parenleft, parenleft ] }; + key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, parenright, parenright ] }; + key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] }; +}; + +// author: Mihai C. +// created on 2010-10-31 +partial alphanumeric_keys +xkb_symbols "ro" { + include "nokia_vndr/rx-51(english_base)" + + name[Group1] = "Romanian"; + + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Up, abreve ] }; + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, 0x1000219 ] }; + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Down, 0x100021b ] }; + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, acircumflex ] }; + + key { [ z, Z, icircumflex, Icircumflex] }; +}; + +// author: Thanawit Lertruengpanya +partial alphanumeric_keys +xkb_symbols "th" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Thai Kedmanee"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Thai_maiyamok, Thai_leksun, Thai_lakkhangyao, plus ] }; + key { symbols[Group2] = [ Thai_saraaimaimalai, quotedbl, slash, Thai_leknung ] }; + key { symbols[Group2] = [ Thai_saraam, Thai_dochada, minus, Thai_leksong ] }; + key { symbols[Group2] = [ Thai_phophan, Thai_thonangmontho, Thai_phosamphao, Thai_leksam ] }; + key { symbols[Group2] = [ Thai_saraa, Thai_thothong, Thai_thothung, Thai_leksi ] }; + key { symbols[Group2] = [ Thai_maihanakat, Thai_nikhahit, Thai_sarau, Thai_sarauu ] }; + key { symbols[Group2] = [ Thai_saraii, Thai_maitri, Thai_saraue, Thai_baht ] }; + key { symbols[Group2] = [ Thai_rorua, Thai_nonen, Thai_khokhwai, Thai_lekha ] }; + key { symbols[Group2] = [ Thai_nonu, Thai_paiyannoi, Thai_totao, Thai_lekhok ] }; + key { symbols[Group2] = [ Thai_yoyak, Thai_yoying, Thai_chochan, Thai_lekchet ] }; + key { symbols[Group2] = [ Thai_bobaimai, Thai_thothan, Thai_khokhai, Thai_lekpaet ] }; + + // 2. row + key { symbols[Group2] = [ Thai_fofan, Thai_ru, Thai_chochang, Thai_lekkao ] }; + key { symbols[Group2] = [ Thai_hohip, Thai_khorakhang, plus, plus ] }; + key { symbols[Group2] = [ Thai_kokai, Thai_topatak, numbersign, numbersign ] }; + key { symbols[Group2] = [ Thai_dodek, Thai_sarao, minus, minus ] }; + key { symbols[Group2] = [ Thai_sarae, Thai_chochoe, underscore, underscore ] }; + key { symbols[Group2] = [ Thai_maitho, Thai_maitaikhu, Thai_ngongu, period ] }; + key { symbols[Group2] = [ Thai_maiek, Thai_maichattawa, Thai_loling, comma ] }; + key { symbols[Group2] = [ Thai_saraaa, Thai_sorusi, ampersand, ampersand ] }; + key { symbols[Group2] = [ Thai_sosua, Thai_sosala, exclam, exclam ] }; + key { symbols[Group2] = [ Thai_wowaen, Thai_soso, question, question ] }; + + // 3. row + key { symbols[Group2] = [ Thai_phophung, parenleft, Thai_moma, Thai_thophuthao ] }; + key { symbols[Group2] = [ Thai_popla, parenright, Thai_saraaimaimuan, Thai_lochula ] }; + key { symbols[Group2] = [ Thai_saraae, Thai_choching, Thai_fofa, Thai_lu ] }; + key { symbols[Group2] = [ Thai_oang, Thai_honokhuk, slash, slash ] }; + key { symbols[Group2] = [ Thai_sarai, Thai_phinthu, backslash, backslash ] }; + key { symbols[Group2] = [ Thai_sarauee, Thai_thanthakhat, Thai_khokhuat, Thai_khokhon ] }; + key { symbols[Group2] = [ Thai_thothahan, question, apostrophe, apostrophe ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/nokia_vndr/su-8w b/squashfs-root/usr/share/X11/xkb/symbols/nokia_vndr/su-8w new file mode 100644 index 0000000..029906d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/nokia_vndr/su-8w @@ -0,0 +1,485 @@ +partial alphanumeric_keys default +xkb_symbols "no" { + name[Group1]= "Norwegian/Danish"; + + include "nokia_vndr/su-8w(base)" + + key { [ 1, exclam, dead_circumflex ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numbersign, EuroSign ] }; + key { [ 4, currency, dollar ] }; + key { [ 5, percent, sterling ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ plus, question ] }; + key { [ dead_acute, dead_grave, backslash ] }; + + key { [ q, Q, dead_circumflex ] }; + key { [ w, W, at ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R, dollar ] }; + key { [ t, T, sterling ] }; + key { [ y, Y ] }; + key { [ u, U, braceleft ] }; + key { [ i, I, bracketleft ] }; + key { [ o, O, bracketright ] }; + key { [ p, P, braceright ] }; + key { [ aring, Aring ] }; + key { [ ssharp, ssharp, backslash ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ oslash, Ooblique ] }; + key { [ ae, AE ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, semicolon, less ] }; + key { [ period, colon, greater ] }; + key { [ minus, underscore, dead_diaeresis ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "no_nodeadkeys" { + name[Group1] = "Norwegian/Danish (no dead keys)"; + + include "nokia_vndr/su-8w(no)" + + key { [ 1, exclam, asciicircum ] }; + key { [ acute, grave, backslash ] }; + key { [ q, Q, asciicircum ] }; +}; + +partial alphanumeric_keys default +xkb_symbols "dk" { + include "nokia_vndr/su-8w(no)" +}; + +partial alphanumeric_keys default +xkb_symbols "dk_nodeadkeys" { + include "nokia_vndr/su-8w(no_nodeadkeys)" +}; + + + +partial alphanumeric_keys default +xkb_symbols "de" { + name[Group1]= "German"; + include "nokia_vndr/su-8w(base)" + + key { [ 1, exclam, dead_circumflex ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numbersign, EuroSign ] }; + key { [ 4, currency, dollar ] }; + key { [ 5, percent, sterling ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ plus, question ] }; + key { [ dead_acute, dead_grave, backslash ] }; + + key { [ q, Q, dead_circumflex ] }; + key { [ w, W, at ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R, dollar ] }; + key { [ t, T, sterling ] }; + key { [ z, Z ] }; + key { [ u, U, braceleft ] }; + key { [ i, I, bracketleft ] }; + key { [ o, O, bracketright ] }; + key { [ p, P, braceright ] }; + key { [ udiaeresis, Udiaeresis ] }; + key { [ ssharp, ssharp, backslash ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ odiaeresis, Odiaeresis ] }; + key { [ adiaeresis, Adiaeresis ] }; + + key { [ y, Y ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, semicolon, less ] }; + key { [ period, colon, greater ] }; + // XXX Inexplicably, the diaeresis is dead on other layouts, but not + // German. Go figure. + key { [ minus, underscore, diaeresis ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "de_nodeadkeys" { + name[Group1] = "German (no dead keys)"; + + include "nokia_vndr/su-8w(de)" + + key { [ 1, exclam, asciicircum ] }; + key { [ acute, grave, backslash ] }; + key { [ q, Q, asciicircum ] }; +}; + + + +partial alphanumeric_keys default +xkb_symbols "se" { + name[Group1]= "Finnish/Swedish"; + + include "nokia_vndr/su-8w(base)" + + key { [ 1, exclam, dead_circumflex ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numbersign, EuroSign ] }; + key { [ 4, currency, dollar ] }; + key { [ 5, percent, sterling ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ plus, question ] }; + key { [ dead_acute, dead_grave, backslash ] }; + + key { [ q, Q, dead_circumflex ] }; + key { [ w, W, at ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R, dollar ] }; + key { [ t, T, sterling ] }; + key { [ y, Y ] }; + key { [ u, U, braceleft ] }; + key { [ i, I, bracketleft ] }; + key { [ o, O, bracketright ] }; + key { [ p, P, braceright ] }; + key { [ aring, Aring ] }; + key { [ ssharp, ssharp, backslash ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ odiaeresis, Odiaeresis ] }; + key { [ adiaeresis, Adiaeresis ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, semicolon, less ] }; + key { [ period, colon, greater ] }; + key { [ minus, underscore, dead_diaeresis ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "se_nodeadkeys" { + name[Group1] = "Finnish/Swedish (no dead keys)"; + + include "nokia_vndr/su-8w(se)" + + key { [ 1, exclam, asciicircum ] }; + key { [ acute, grave, backslash ] }; + key { [ q, Q, asciicircum ] }; + key { [ minus, underscore, diaeresis ] }; +}; + +partial alphanumeric_keys default +xkb_symbols "fi" { + include "nokia_vndr/su-8w(se)" +}; + +xkb_symbols "fi_nodeadkeys" { + include "nokia_vndr/su-8w(se_nodeadkeys)" +}; + + + +// Russian layout on first two levels, US layout on third and fourth. +partial alphanumeric_keys default +xkb_symbols "ru" { + name[Group1]= "Russian"; + + include "nokia_vndr/su-8w(base)" + + // XXX Would be nice if this actually generated a tilde. + key { [ Cyrillic_io, Cyrillic_IO, grave ] }; + key { [ 1, exclam, exclam, exclam ] }; + key { [ 2, at, quotedbl, at ] }; + key { [ 3, numbersign, numbersign, numbersign ] }; + key { [ 4, dollar, currency, dollar ] }; + key { [ 5, percent, percent, percent ] }; + key { [ 6, dead_circumflex, ampersand, asciicircum ] }; + key { [ 7, ampersand, slash, ampersand ] }; + key { [ 8, asterisk, parenleft, asterisk ] }; + key { [ 9, parenleft, parenright, parenleft ] }; + key { [ 0, parenright, equal, parenright ] }; + key { [ minus, underscore, plus, question ] }; + key { [ equal, plus, equal, plus ] }; + + key { [ Cyrillic_shorti, Cyrillic_SHORTI, q, Q ] }; + key { [ Cyrillic_tse, Cyrillic_TSE, w, W ] }; + key { [ Cyrillic_u, Cyrillic_U, e, E ] }; + key { [ Cyrillic_ka, Cyrillic_KA, r, R ] }; + key { [ Cyrillic_ie, Cyrillic_IE, t, T ] }; + key { [ Cyrillic_en, Cyrillic_EN, y, Y ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, u, U ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, i, I ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, o, O ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, p, P ] }; + key { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright ] }; + + key { [ Cyrillic_ef, Cyrillic_EF, a, A ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU, s, S ] }; + key { [ Cyrillic_ve, Cyrillic_VE, d, D ] }; + key { [ Cyrillic_a, Cyrillic_A, f, F ] }; + key { [ Cyrillic_pe, Cyrillic_PE, g, G ] }; + key { [ Cyrillic_er, Cyrillic_ER, h, H ] }; + key { [ Cyrillic_o, Cyrillic_O, j, J ] }; + key { [ Cyrillic_el, Cyrillic_EL, k, K ] }; + key { [ Cyrillic_de, Cyrillic_DE, l, L ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, semicolon, colon ] }; + key { [ Cyrillic_e, Cyrillic_E, apostrophe, quotedbl ] }; + + key { [ Cyrillic_ya, Cyrillic_YA, z, Z ] }; + key { [ Cyrillic_che, Cyrillic_CHE, x, X ] }; + key { [ Cyrillic_es, Cyrillic_ES, c, C ] }; + key { [ Cyrillic_em, Cyrillic_EM, v, V ] }; + key { [ Cyrillic_i, Cyrillic_I, b, B ] }; + key { [ Cyrillic_te, Cyrillic_TE, n, N ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, m, M ] }; + key { [ Cyrillic_be, Cyrillic_BE, comma, less ] }; + key { [ Cyrillic_yu, Cyrillic_YU, period, greater ] }; + key { [ slash, question, slash, question ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "ru_nodeadkeys" { + name[Group1] = "Russian - no dead keys"; + + include "nokia_vndr/su-8w(ru)" + + key { [ 6, asciicircum, ampersand, asciicircum ] }; +}; + + + +partial alphanumeric_keys default +xkb_symbols "us" { + name[Group1]= "U.S. English - International"; + + include "nokia_vndr/su-8w(base)" + + // I can't believe it's not us(intl). + key { [ 1, exclam, exclamdown ] }; + key { [ 2, at, twosuperior ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar, currency ] }; + key { [ 5, percent, EuroSign ] }; + key { [ 6, asciicircum, onequarter ] }; + key { [ 7, ampersand, onehalf ] }; + key { [ 8, asterisk, threequarters ] }; + key { [ 9, parenleft, leftsinglequotemark ] }; + key { [ 0, parenright, rightsinglequotemark ] }; + key { [ minus, underscore, yen ] }; + key { [ equal, plus, multiply ] }; + + key { [ q, Q, adiaeresis, Adiaeresis ] }; + key { [ w, W, aring, Aring ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, registered ] }; + key { [ t, T, thorn, THORN ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ p, P, odiaeresis, Odiaeresis ] }; + key { [ bracketleft, braceleft, guillemotleft ] }; + key { [ bracketright, braceright, guillemotright ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L, oslash, Ooblique ] }; + key { [ semicolon, colon, paragraph, degree ] }; + // XXX Not entirely sure if fourth level is quotedbl or diaeresis. + // The former makes a lot more sense. + key { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; + + key { [ z, Z, ae, AE ] }; + key { [ x, X ] }; + key { [ c, C, copyright ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, mu ] }; + key { [ comma, less, ccedilla, Ccedilla ] }; + key { [ period, greater ] }; + key { [ slash, question, questiondown ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "us_nodeadkeys" { + name[Group1] = "U.S. English - no dead keys"; + + include "nokia_vndr/su-8w(us_intl)" + + // XXX Not entirely sure if second level is quotedbl or diaeresis. + // The former makes a lot more sense. + key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; +}; + + + +partial default alphanumeric_keys +xkb_symbols "base" { + // forked from from pc(pc105); madness. + key { [ Escape ] }; + + // the extra key on most European keyboards + key { [ less, greater, bar, brokenbar ] }; + + // these keys are common to all layouts + key { [ backslash, bar ] }; + key { [ space ] }; + + key { [ BackSpace ] }; + + key { [ Tab, ISO_Left_Tab ] }; + key { [ Return ] }; + // we don't ever generate this key, but the VKB needs it always. + key { [ KP_Enter ] }; + // generated from the headset, must always be in the map. + key { [ XF86Phone ] }; + + key { [ Caps_Lock ] }; + + key { [ Num_Lock, Pointer_EnableKeys ] }; + + key { [ Shift_L ] }; + key { [ Control_L ] }; + key { [ Alt_L, Meta_L ] }; + key { [ Super_L ] }; + + key { [ Shift_R ] }; + key { [ Control_R ] }; + key { [ Alt_R, Meta_R ] }; + key { [ Super_R ] }; + + key { [ Menu ] }; + + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F11 ] }; + key { [ F10 ] }; + key { [ F12 ] }; + + // Begin modifier mappings + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control{ Control_L, Control_R }; + modifier_map Mod2 { Num_Lock }; + + // Fake keys for virtual<->real modifiers mapping: + key { [ ISO_Level3_Shift ] }; + key { [ Mode_switch ] }; + modifier_map Mod5 { , }; + + key { [ NoSymbol, Alt_L ] }; + modifier_map Mod1 { , }; + + key { [ NoSymbol, Meta_L ] }; + modifier_map Mod1 { }; + + key { [ NoSymbol, Super_L ] }; + modifier_map Mod4 { }; + + key { [ NoSymbol, Hyper_L ] }; + modifier_map Mod4 { }; + // End modifier mappings + + key { [ Insert ] }; + key { [ Delete ] }; + key { [ End ] }; + key { [ Up ] }; + key { [ Left ] }; + key { [ Down ] }; + key { [ Right ] }; + + // True for all layouts (except for ru). + key { [ grave, asterisk, asciitilde ] }; + + // SU-8W uses 140 for Home, not the normal keycode. Very useful. + key { [ NoSymbol ] }; + // Ditto LWIN/RWIN and Page Up/Page Down. + key { [ none ] }; + key { [ NoSymbol ] }; + + // The LWIN & RWIN keys correspond to the 'select left' and + // 'select right' keys. + key { [ Prior ] }; + key { [ Next ] }; + + // = 140 ~ + key { [ Home ] }; + // = 138 ~ + key { [ Menu ] }; + key { [ XF86Mail ] }; + + // Power button. + key { [ Execute ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/np b/squashfs-root/usr/share/X11/xkb/symbols/np new file mode 100644 index 0000000..69175f5 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/np @@ -0,0 +1,121 @@ +// based on a keyboard map from an 'xkb/symbols/dev' file + +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]= "Nepali"; + +// `,1,2,3,4,5,6,7,8,9,0,-,= + + key { [ 0x100093D,0x100093C ] }; + key { [ 0x1000967 ] }; + key { [ 0x1000968 ] }; + key { [ 0x1000969 ] }; + key { [ 0x100096A ] }; + key { [ 0x100096B ] }; + key { [ 0x100096C ] }; + key { [ 0x100096D ] }; + key { [ 0x100096e ] }; + key { [ 0x100096F ] }; + key { [ 0x1000966,0x1000970 ] }; + key { [ minus, 0x1000952 ] }; + key { [ equal, 0x100200C ] }; + +// q,w,e,r,t,y,u,i,o,p,[,] + + key { [ 0x100091F, 0x1000920 ] }; + key { [ 0x100094C, 0x1000914 ] }; + key { [ 0x1000947, 0x1000948 ] }; + key { [ 0x1000930, 0x1000943 ] }; + key { [ 0x1000924, 0x1000925 ] }; + key { [ 0x100092F, 0x100091E ] }; + key { [ 0x1000941, 0x1000942 ] }; + key { [ 0x100093F, 0x1000940 ] }; + key { [ 0x100094B, 0x1000913 ] }; + key { [ 0x100092A, 0x100092B ] }; + key { [ 0x1000907, 0x1000908 ] }; + key { [ 0x100090F, 0x1000910 ] }; + +// a,s,d,f,g,h,j,k,l,;,',Backslash + key { [ 0x100093E, 0x1000906 ] }; + key { [ 0x1000938, 0x1000936 ] }; + key { [ 0x1000926, 0x1000927 ] }; + key { [ 0x1000909, 0x100090A ] }; + key { [ 0x1000917, 0x1000918 ] }; + key { [ 0x1000939, 0x1000905 ] }; + key { [ 0x100091C, 0x100091D ] }; + key { [ 0x1000915, 0x1000916 ] }; + key { [ 0x1000932, 0x1000933 ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + key { [ 0x1000950, 0x1000903 ] }; + + +// z,x,c,v,b,n,m,,,.,/ + key { [ 0x1000937, 0x100090B ] }; + key { [ 0x1000921, 0x1000922 ] }; + key { [ 0x100091B, 0x100091A ] }; + key { [ 0x1000935, 0x1000901 ] }; + key { [ 0x100092C, 0x100092D ] }; + key { [ 0x1000928, 0x1000923 ] }; + key { [ 0x100092E, 0x1000902 ] }; + key { [ comma, 0x1000919 ] }; + key { [ 0x1000964, 0x1000965 ] }; + key { [ 0x100094D, question ] }; +}; + +partial alphanumeric_keys + +xkb_symbols "olpc" { +// Contact: Walter Bender + + include "np" + key { [ 0x100091E, 0x1000965 ] }; // NYA; double danda + key { [ 0x1000967, 0x10FFFFD ] }; // Nepali digit one; U091C+U094D+U091E + key { [ 0x1000968, 0x1000908 ] }; // Nepali digit two; key { [ 0x1000969, 0x1000918 ] }; // Nepali digit three; + key { [ 0x100096A, 0x10FFFFC ] }; // Nepali digit four; U0926+U094D+U0927 + key { [ 0x100096B, 0x100091B ] }; // Nepali digit five + key { [ 0x100096C, 0x100091F ] }; // Nepali digit six + key { [ 0x100096D, 0x1000920 ] }; // Nepali digit seven + key { [ 0x100096e, 0x1000921 ] }; // Nepali digit eight + key { [ 0x100096F, 0x1000922 ] }; // Nepali digit nine + key { [ 0x1000966, 0x1000923 ] }; // Nepali digit zero + key { [ 0x1000914, 0x1000913 ] }; // O, AU + key { [ 0x100200C, 0x1000902 ] }; // ZERO-WIDTH-NON-JOINER (ZWNJ); SIGN ANUSVARA + key { [ 0x100094D, 0x100200D ] }; // SIGN VIRAMA; ZERO-WIDTH-JOINER (ZWJ) + key { [ 0x10FFFFB, 0x10FFFFA ] }; // U0924+U094D+U0930; U0924+U094D+U0924 + key { [ 0x1000927, 0x10FFFF9 ] }; // DHA; U0921+U094D+U0922 + key { [ 0x100092D, 0x1000910 ] }; // BHA, AI + key { [ 0x100091A, 0x10FFFF8 ] }; // CA; U0926+U094D+U0935 + key { [ 0x1000924, 0x10FFFF7 ] }; // TA; U091F+U094D+U091F + key { [ 0x1000925, 0x10FFFF6 ] }; // THA; U0920+U094D+U0920 + key { [ 0x1000917, 0x100090A ] }; // GA, UU + key { [ 0x1000937, 0x10FFFF5 ] }; // SSA; U0915+U094D+U0937 + key { [ 0x100092F, 0x1000907 ] }; // YA, I + key { [ 0x1000909, 0x100090F ] }; // U, E + key { [ 0x10FFFF4, 0x1000943 ] }; // U0928+U094D+ZWJ; VOWEL SIGN VOCALIC R + key { [ 0x1000947, 0x1000948 ] }; // SIGN E; SIGN AI + key { [ 0x100092C, 0x1000906 ] }; // BA, AA + key { [ 0x1000915, 0x10FFFF3 ] }; // KA; U0919+U094D+U0915 + key { [ 0x100092E, 0x10FFFF2 ] }; // MA; U0919+U094D+U0917 + key { [ 0x100093E, 0x1000901 ] }; // CANDRABINDU, VOWEL SIGN AA + key { [ 0x1000928, 0x10FFFF1 ] }; // NA; U0926+U094D+U0926 + key { [ 0x100091C, 0x100091D ] }; // JA, JHA + key { [ 0x1000935, 0x100094B ] }; // VA, VOWEL SIGN O + key { [ 0x100092A, 0x100092B ] }; // PA, PHA + key { [ 0x100093F, 0x1000940 ] }; // VOWEL SIGN I, VOWEL SIGN II + key { [ 0x1000938, 0x10FFFF0 ] }; // SA; U091F+U094D+U0920 + key { [ 0x1000941, 0x1000942 ] }; // VOWEL SIGN U, VOWEL SIGN UU + key { [ 0x1000936, 0x10FFFEF ] }; // SHA; U0915+U094D+U0915 + key { [ 0x1000939, 0x10FFFEE ] }; // HA; U0939+U094D+U092F + key { [ 0x1000905, 0x100090B ] }; // A; U0909+U090B + key { [ 0x1000916, 0x1000950 ] }; // KHA, OM + key { [ 0x1000926, 0x100094C ] }; // DA, VOWEL SIGN AU + key { [ 0x1000932, 0x10FFFED ] }; // LA; U0926+U094D+U092F + key { [ 0x1000903, 0x10FFFEC ] }; // SIGN VISARGA; U0921+U094D+U0921 + key { [ 0x100093D, 0x1000919 ] }; // SIGN AVAGRHA; NGA + key { [ 0x1000964, 0x10FFFEB ] }; // DANDA; U0936+U094D+U0930 + key { [ 0x1000930, 0x10FFFEA ] }; // RA; U0930+U0941 + + include "group(olpc)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/olpc b/squashfs-root/usr/share/X11/xkb/symbols/olpc new file mode 100644 index 0000000..250e2c5 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/olpc @@ -0,0 +1,21 @@ +// +// Created by Bernardo Innocenti +// +// Additional symbol definitions for the OLPC keyboards +// + +alphanumeric_keys modifier_keys +xkb_symbols "olpc" { + include "pc(pc105)" + + modifier_map Mod1 { KP_Home }; // KP_Home is the "square" game key + modifier_map Mod3 { KP_End }; // KP_End is the "tick" game key + modifier_map Mod4 { KP_Prior }; // KP_Prior is the "O" game key + modifier_map Mod5 { KP_Next }; // KP_Next is the "X" game key + + key { [ XF86Search ] }; // search key (unpopulated on olpcm, harmless) + key { [ XF86Meeting ] }; // fn+search key (unpopulated on olpcm, harmless) + key { [ XF86Start ] }; // gear key (fn+space) + key { [ XF86TaskPane ] }; // frame key (the top-right key) (unpopulated on olpcm, harmless) + key { [ XF86Messenger ] }; // overlay key (next to frame key) (unpopulated on olpcm, harmless) +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/parens b/squashfs-root/usr/share/X11/xkb/symbols/parens new file mode 100644 index 0000000..47af7ab --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/parens @@ -0,0 +1,8 @@ +// swap parentheses and square brackets +partial default +xkb_symbols "swap_brackets" { + replace key { [ 9, bracketleft ] }; + replace key { [ 0, bracketright ] }; + replace key { [ parenleft, braceleft ] }; + replace key { [ parenright, braceright ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/pc b/squashfs-root/usr/share/X11/xkb/symbols/pc new file mode 100644 index 0000000..0199713 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/pc @@ -0,0 +1,87 @@ +default partial alphanumeric_keys modifier_keys +xkb_symbols "pc105" { + + key { [ Escape ] }; + + // The extra key on many European keyboards: + key { [ less, greater, bar, brokenbar ] }; + + // The following keys are common to all layouts. + key { [ backslash, bar ] }; + key { [ space ] }; + + include "srvr_ctrl(fkey2vt)" + include "pc(editing)" + include "keypad(x11)" + + key { [ BackSpace, BackSpace ] }; + + key { [ Tab, ISO_Left_Tab ] }; + key { [ Return ] }; + + key { [ Caps_Lock ] }; + key { [ Num_Lock ] }; + + key { [ Shift_L ] }; + key { [ Control_L ] }; + key { [ Super_L ] }; + + key { [ Shift_R ] }; + key { [ Control_R ] }; + key { [ Super_R ] }; + key { [ Menu ] }; + + // Beginning of modifier mappings. + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control{ Control_L, Control_R }; + modifier_map Mod2 { Num_Lock }; + modifier_map Mod4 { Super_L, Super_R }; + + // Fake keys for virtual<->real modifiers mapping: + key { [ ISO_Level3_Shift ] }; + key { [ Mode_switch ] }; + modifier_map Mod5 { , }; + + key { [ NoSymbol, Alt_L ] }; + include "altwin(meta_alt)" + + key { [ NoSymbol, Meta_L ] }; + modifier_map Mod1 { }; + + key { [ NoSymbol, Super_L ] }; + modifier_map Mod4 { }; + + key { [ NoSymbol, Hyper_L ] }; + modifier_map Mod4 { }; + // End of modifier mappings. + + key { [ XF86Display ] }; + key { [ XF86KbdLightOnOff ] }; + key { [ XF86KbdBrightnessDown ] }; + key { [ XF86KbdBrightnessUp ] }; +}; + +hidden partial alphanumeric_keys +xkb_symbols "editing" { + key { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key { [ Scroll_Lock ] }; + key { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + key { [ Insert ] }; + key { [ Home ] }; + key { [ Prior ] }; + key { [ Delete ] }; + key { [ End ] }; + key { [ Next ] }; + + key { [ Up ] }; + key { [ Left ] }; + key { [ Down ] }; + key { [ Right ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ph b/squashfs-root/usr/share/X11/xkb/symbols/ph new file mode 100644 index 0000000..0c806ce --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ph @@ -0,0 +1,994 @@ +//////////////////////////////////////////////////////////////////////////////// +// Philippines National Keyboard Layout v1.0.0 (2010-10-23) // +// http://laibcoms.com/sandbox/the-philippines-national-keyboard-layout // +// // +// Loosely based on ISO/IEC 9995-3:2009 // +// * glyphs that are not used in Philippine Languages and // +// Philippine English were not included // +// * Additions/Changes that are not part of ISO/IEC 9995-3:2009 // +// were added // +// // +// http://en.wikipedia.org/wiki/ISO/IEC_9995 // +// http://www.fileformat.info/info/unicode/char/20B1/index.htm // +// // +// By: Ubuntu Philippines LoCo Team // +// Site: http://ubuntu-ph.org // +// // +// Project Contact: JC John Sese Cuneta / 謝施洗 / ᜑᜓᜏᜈ᜔ ᜃᜓᜈᜒᜆ // +// XMPP/Jabber: jcjohn.sesecuneta@talkr.im // +// Email: jcjohn.sesecuneta@laibcoms.com // +//////////////////////////////////////////////////////////////////////////////// + +// QWERTY (Latin) version +// http://en.wikipedia.org/wiki/QWERTY +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ +// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & ← │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃ +// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ +// ┃ ┃ Q │ W │ E Œ │ R ¶ │ T │ Y │ U │ I İ │ O Ø │ P │ { │ } │ | Ə │ +// ┃Tab ↹ ┃ q │ w │ e œ │ r ® │ t ™ │ y ¥ │ u │ i ı │ o ø │ p ₱ │ [ │ ] │ \ ə │ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ +// ┃ ┃ A Æ │ S │ D │ F ª │ G │ H │ J │ K │ L │ : │ " ̋◌ ┃ Enter ┃ +// ┃Caps ⇬ ┃ a æ │ s § │ d │ f │ g │ h │ j │ k │ l │ ; │ ' ́◌ ┃ ⏎ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ +// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ N Ñ │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃ +// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ n ñ │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ +// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ +// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]= "Filipino"; + +// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| +// Level1 Level2 Level3 Level4 +// Base Shift AltGr AltGr+Shift + + // E row; Numerals row, left side + key { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) + key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ + key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ + key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ + key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € + key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° + // E row; Numerals row, right side + key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) + key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← + key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → + key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ + key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ + key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ + key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ + + // D row; QWERTY row, left side + key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q + key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W + key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ + key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ + key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ + // D row; QWERTY row, right side + key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ + key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U + key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ + key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø + key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ + key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { + key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } + key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə + + // C row; Home row, left side + key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ + key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § + key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D + key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª + key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G + // C row; Home row, right side + key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H + key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J + key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K + key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L + key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : + key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ + key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » + key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · + key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ + key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ + key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ + // B row; Lower row, right side + key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ + key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º + key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) + key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ + key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ + + // A row + key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) + + include "level3(ralt_switch)" +}; + + +// QWERTY (Baybayin) version +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ +// ┃ ┃ │ │ ᜁ │ │ │ │ ᜂ │ ᜁ │ ᜂ │ │ │ │ │ +// ┃Tab ↹ ┃ │ ᜏ │ ◌ᜒ │ ᜍ │ ᜆ │ ᜌ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ᜉ │ │ │ │ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ Enter ┃ +// ┃Caps ⇬ ┃ ᜀ │ ᜐ │ ᜇ │ │ ᜄ │ ᜑ │ │ ᜃ │ ᜎ │ │ ┃ ⏎ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ ᜅ │ │ │ │ ┃ ┃ +// ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜈ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ +// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃ +// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// +partial alphanumeric_keys +xkb_symbols "qwerty-bay" { + + name[Group1]= "Filipino (QWERTY, Baybayin)"; + +// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| +// Level1 Level2 Level3 Level4 +// Base Shift AltGr AltGr+Shift + + // E row; Numerals row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // E row; Numerals row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) + + // D row; QWERTY row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) + key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) + // D row; QWERTY row, right side + key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // C row; Home row, left side + key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) + key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) + key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) + // C row; Home row, right side + key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) + key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) + // B row; Lower row, right side + key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) + key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) + key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) + key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // A row + key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) + + include "level3(ralt_switch)" +}; + + +// Capewell-Dvorak (Latin) version +// http://www.michaelcapewell.com/projects/keyboard/index.htm#The_Capewell-Dvorak_Layout +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ +// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ { │ } ┃ ⌫ Bak ┃ +// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ [ │ ] ┃ Space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ +// ┃ ┃ " ̋◌ │ < ̨◌ │ > ␣ │ P │ Y │ Q │ F ª │ G │ R ¶ │ K │ ? ¿ │ + ∓ │ | Ə │ +// ┃Tab ↹ ┃ ' ́◌ │ , ̧◌ │ . … │ p ₱ │ y ¥ │ q │ f │ g │ r ® │ k │ / ÷ │ = ± │ \ ə │ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ +// ┃ ┃ O Ø │ A Æ │ E Œ │ I İ │ U │ D │ H │ T │ N Ñ │ S │ _ ◌͠ ┃ Enter ┃ +// ┃Caps ⇬ ┃ o ø │ a æ │ e œ │ i ı │ u │ d │ h │ t ™ │ n ñ │ s § │ - ¬ ┃ ⏎ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ +// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ J │ L │ M º │ W │ B ’ │ : ┃ ┃ +// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ j │ l │ m µ │ w │ b ” │ ; ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ +// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ +// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// +partial alphanumeric_keys +xkb_symbols "capewell-dvorak" { + + name[Group1]= "Filipino (Capewell-Dvorak, Latin)"; + +// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| +// Level1 Level2 Level3 Level4 +// Base Shift AltGr AltGr+Shift + + // E row; Numerals row, left side + key { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) + key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ + key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ + key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ + key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € + key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° + // E row; Numerals row, right side + key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) + key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← + key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → + key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ + key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ + key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { + key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } + + // D row; Upper row, left side + key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) + key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) + key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ + key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ + key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ + // D row; Upper row, right side + key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q + key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª + key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G + key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ + key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K + key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ + key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ + key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə + + // C row; Home row, left side + key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø + key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ + key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ + key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ + key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U + // C row; Home row, right side + key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D + key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H + key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ + key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ + key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § + key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ + key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » + key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · + key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ + key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ + key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J + // B row; Lower row, right side + key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L + key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º + key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W + key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ + key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : + + // A row + key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) + + include "level3(ralt_switch)" +}; + + +// Capewell-Dvorak (Baybayin) version +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ │ │ +// ┃Tab ↹ ┃ │ ᜵ │ ᜶ │ ᜉ │ ᜌ │ │ │ ᜄ │ ᜍ │ ᜃ │ │ ◌᜔ │ │ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ +// ┃ ┃ ᜂ │ │ ᜁ │ ᜁ │ ᜂ │ │ │ │ ᜅ │ │ ┃ Enter ┃ +// ┃Caps ⇬ ┃ ◌ᜓ │ ᜀ │ ◌ᜒ │ ◌ᜒ │ ◌ᜓ │ ᜇ │ ᜑ │ ᜆ │ ᜈ │ ᜐ │ ┃ ⏎ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃Shift ⇧┃ │ │ │ │ │ │ ᜎ │ ᜋ │ ᜏ │ ᜊ │ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ +// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃ +// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// +partial alphanumeric_keys +xkb_symbols "capewell-dvorak-bay" { + + name[Group1]= "Filipino (Capewell-Dvorak, Baybayin)"; + +// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| +// Level1 Level2 Level3 Level4 +// Base Shift AltGr AltGr+Shift + + // E row; Numerals row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // E row; Numerals row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // D row; QWERTY row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) + key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) + key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) + key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) + // D row; QWERTY row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) + key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) + key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // C row; Home row, left side + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + // C row; Home row, right side + key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) + key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) + key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) + key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) + key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // B row; Lower row, right side + key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) + key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) + key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) + key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // A row + key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) + + include "level3(ralt_switch)" +}; + + +// Capewell-QWERF 2006 (Latin) version +// http://www.michaelcapewell.com/projects/keyboard/index.htm#The_QWERF_Layout +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ +// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃ +// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ +// ┃ ┃ Q │ W │ E Œ │ R ¶ │ F ª │ J │ Y │ K │ L │ : │ { │ } │ | Ə │ +// ┃Tab ↹ ┃ q │ w │ e œ │ r ® │ f │ j │ y ¥ │ k │ l │ ; │ [ │ ] │ \ ə │ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ +// ┃ ┃ A Æ │ S │ D │ T │ G │ H │ U │ I İ │ O Ø │ P │ " ̋◌ ┃ Enter ┃ +// ┃Caps ⇬ ┃ a æ │ s § │ d │ t ™ │ g │ h │ u │ i ı │ o ø │ p ₱ │ ' ́◌ ┃ ⏎ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ +// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ N Ñ │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃ +// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ n ñ │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ +// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ +// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// +partial alphanumeric_keys +xkb_symbols "capewell-qwerf2k6" { + + name[Group1]= "Filipino (Capewell-QWERF 2006, Latin)"; + +// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| +// Level1 Level2 Level3 Level4 +// Base Shift AltGr AltGr+Shift + + // E row; Numerals row, left side + key { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) + key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ + key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ + key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ + key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € + key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° + // E row; Numerals row, right side + key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) + key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← + key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → + key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ + key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ + key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ + key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ + + // D row; Upper row, left side + key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q + key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W + key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ + key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ + key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª + // D row; Upper row, right side + key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J + key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ + key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K + key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L + key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : + key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { + key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } + key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə + + // C row; Home row, left side + key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ + key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § + key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D + key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ + key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G + // C row; Home row, right side + key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H + key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U + key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ + key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø + key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ + key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ + key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » + key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · + key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ + key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ + key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ + // B row; Lower row, right side + key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ + key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º + key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) + key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ + key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ + + // A row + key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) + + include "level3(ralt_switch)" +}; + + +// Capewell-QWERF 2006 (Baybayin) version +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ +// ┃ ┃ │ │ ᜁ │ │ │ │ │ │ │ │ │ │ │ +// ┃Tab ↹ ┃ │ ᜏ │ ◌ᜒ │ ᜍ │ │ │ ᜌ │ ᜃ │ ᜎ │ │ │ │ │ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ +// ┃ ┃ │ │ │ │ │ │ ᜂ │ ᜁ │ ᜂ │ │ ┃ Enter ┃ +// ┃Caps ⇬ ┃ ᜀ │ ᜐ │ ᜇ │ ᜆ │ ᜄ │ ᜑ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ᜉ │ ┃ ⏎ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ ᜅ │ │ │ │ ┃ ┃ +// ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜈ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ +// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃ +// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// +partial alphanumeric_keys +xkb_symbols "capewell-qwerf2k6-bay" { + + name[Group1]= "Filipino (Capewell-QWERF 2006, Baybayin)"; + +// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| +// Level1 Level2 Level3 Level4 +// Base Shift AltGr AltGr+Shift + + // E row; Numerals row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // E row; Numerals row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) + + // D row; QWERTY row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // D row; QWERTY row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) + key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) + key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // C row; Home row, left side + key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) + key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) + key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) + key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) + key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) + // C row; Home row, right side + key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) + // B row; Lower row, right side + key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) + key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) + key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) + key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // A row + key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) + + include "level3(ralt_switch)" +}; + + +// Colemak (Latin) version +// http://colemak.com +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ +// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃ +// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ +// ┃ ┃ Q │ W │ F ª │ P │ G │ J │ L │ U │ Y │ : │ { │ } │ | Ə │ +// ┃Tab ↹ ┃ q │ w │ f │ p ₱ │ g │ j │ l │ u │ y ¥ │ ; │ [ │ ] │ \ ə │ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ +// ┃ ┃ A Æ │ R ¶ │ S │ T │ D │ H │ N Ñ │ E Œ │ I İ │ O Ø │ " ̋◌ ┃ Enter ┃ +// ┃Caps ⇬ ┃ a æ │ r ® │ s § │ t ™ │ d │ h │ n ñ │ e œ │ i ı │ o ø │ ' ́◌ ┃ ⏎ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ +// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ K │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃ +// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ k │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ +// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ +// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// +partial alphanumeric_keys +xkb_symbols "colemak" { + + name[Group1]= "Filipino (Colemak, Latin)"; + +// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| +// Level1 Level2 Level3 Level4 +// Base Shift AltGr AltGr+Shift + + // E row; Numerals row, left side + key { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) + key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ + key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ + key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ + key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € + key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° + // E row; Numerals row, right side + key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) + key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← + key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → + key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ + key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ + key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ + key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ + + // D row; Upper row, left side + key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q + key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W + key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª + key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ + key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G + // D row; Upper row, right side + key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J + key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L + key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U + key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ + key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : + key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { + key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } + key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə + + // C row; Home row, left side + key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ + key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ + key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § + key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ + key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D + // C row; Home row, right side + key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H + key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ + key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ + key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ + key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø + key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ + key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » + key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · + key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ + key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ + key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ + // B row; Lower row, right side + key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K + key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º + key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) + key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ + key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ + + // A row + key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) + + include "level3(ralt_switch)" +}; + + +// Colemak (Baybayin) version +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ +// ┃ ┃ │ │ │ │ │ │ │ ᜂ │ │ │ │ │ │ +// ┃Tab ↹ ┃ │ ᜏ │ │ ᜉ │ ᜄ │ │ ᜎ │ ◌ᜓ │ ᜌ │ │ │ │ │ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ +// ┃ ┃ │ │ │ │ │ │ ᜅ │ ᜁ │ ᜁ │ ᜂ │ ┃ Enter ┃ +// ┃Caps ⇬ ┃ ᜀ │ ᜍ │ ᜐ │ ᜆ │ ᜇ │ ᜑ │ ᜈ │ ◌ᜒ │ ◌ᜒ │ ◌ᜓ │ ┃ ⏎ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜃ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ +// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃ +// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// +partial alphanumeric_keys +xkb_symbols "colemak-bay" { + + name[Group1]= "Filipino (Colemak, Baybayin)"; + +// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| +// Level1 Level2 Level3 Level4 +// Base Shift AltGr AltGr+Shift + + // E row; Numerals row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // E row; Numerals row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) + + // D row; QWERTY row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) + key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) + // D row; QWERTY row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // C row; Home row, left side + key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) + key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) + key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) + key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) + key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) + // C row; Home row, right side + key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) + key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) + // B row; Lower row, right side + key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) + key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) + key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) + key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // A row + key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) + + include "level3(ralt_switch)" +}; + + +// Dvorak Simplified (Latin) version +// http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ +// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ { │ } ┃ ⌫ Bak ┃ +// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ [ │ ] ┃ Space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ +// ┃ ┃ " ̋◌ │ < ̨◌ │ > ␣ │ P │ Y │ F ª │ G │ C ¢ │ R ¶ │ L │ ? ¿ │ + ∓ │ | Ə │ +// ┃Tab ↹ ┃ ' ́◌ │ , ̧◌ │ . … │ p ₱ │ y ¥ │ f │ g │ c © │ r ® │ l │ / ÷ │ = ± │ \ ə │ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ +// ┃ ┃ A Æ │ O Ø │ E Œ │ U │ I İ │ D │ H │ T │ N Ñ │ S │ _ ◌͠ ┃ Enter ┃ +// ┃Caps ⇬ ┃ a æ │ o ø │ e œ │ u │ i ı │ d │ h │ t ™ │ n ñ │ s § │ - ¬ ┃ ⏎ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ +// ┃ ┃ ¦ │ : │ Q │ J │ K │ X · │ B ’ │ M º │ W │ V ‘ │ Z » ┃ ┃ +// ┃Shift ⇧┃ │ ; │ q │ j │ k │ x × │ b ” │ m µ │ w │ v “ │ z « ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ +// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ +// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// +partial alphanumeric_keys +xkb_symbols "dvorak" { + + name[Group1]= "Filipino (Dvorak, Latin)"; + +// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| +// Level1 Level2 Level3 Level4 +// Base Shift AltGr AltGr+Shift + + // E row; Numerals row, left side + key { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) + key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ + key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ + key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ + key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € + key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° + // E row; Numerals row, right side + key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) + key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← + key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → + key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ + key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ + key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { + key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } + + // D row; Upper row, left side + key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) + key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) + key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ + key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ + key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ + // D row; Upper row, right side + key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª + key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G + key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ + key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ + key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L + key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ + key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ + key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə + + // C row; Home row, left side + key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ + key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø + key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ + key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U + key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ + // C row; Home row, right side + key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D + key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H + key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ + key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ + key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § + key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ + key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : + key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q + key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J + key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K + key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · + // B row; Lower row, right side + key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ + key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º + key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W + key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ + key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » + + // A row + key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) + + include "level3(ralt_switch)" +}; + + +// Dvorak Simplified (Baybayin) version +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ │ │ +// ┃Tab ↹ ┃ │ ᜵ │ ᜶ │ ᜉ │ ᜌ │ │ ᜄ │ │ ᜍ │ ᜎ │ │ ◌᜔ │ │ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ +// ┃ ┃ │ ᜂ │ ᜁ │ ᜂ │ ᜁ │ │ │ │ ᜅ │ │ ┃ Enter ┃ +// ┃Caps ⇬ ┃ ᜀ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ◌ᜒ │ ᜇ │ ᜑ │ ᜆ │ ᜈ │ ᜐ │ ┃ ⏎ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃Shift ⇧┃ │ │ │ │ ᜃ │ │ ᜊ │ ᜋ │ ᜏ │ │ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ +// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃ +// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// +partial alphanumeric_keys +xkb_symbols "dvorak-bay" { + + name[Group1]= "Filipino (Dvorak, Baybayin)"; + +// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| +// Level1 Level2 Level3 Level4 +// Base Shift AltGr AltGr+Shift + + // E row; Numerals row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // E row; Numerals row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // D row; QWERTY row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) + key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) + key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) + key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) + // D row; QWERTY row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) + key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // C row; Home row, left side + key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + // C row; Home row, right side + key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) + key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) + key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) + key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) + key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // B row; Lower row, right side + key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) + key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) + key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // A row + key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) + + include "level3(ralt_switch)" +}; + + +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ │ │ +// ┃Tab ↹ ┃ │ │ │ │ │ │ │ │ │ │ │ │ │ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ Enter ┃ +// ┃Caps ⇬ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ⏎ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃Shift ⇧┃ │ │ │ │ │ │ │ │ │ │ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ +// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ +// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ +// diff --git a/squashfs-root/usr/share/X11/xkb/symbols/pk b/squashfs-root/usr/share/X11/xkb/symbols/pk new file mode 100644 index 0000000..8ab26ed --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/pk @@ -0,0 +1,383 @@ +// Urdu keymap +// Developed by: +// Zaeem Arshad +// Last update: 2004-03-12 +// Notice: +// Alt-key combinations are yet to be put in. The unavailable keys are +// those which do not have a corresponding glyph in Unicode. + +default partial alphanumeric_keys +xkb_symbols "urd-phonetic" { + + name[Group1]= "Urdu (Pakistan)"; + + key { [ 0x100064b , 0x100007E, 0x100200C ] }; + key { [ 0x1000031 , 0x1000021 ] }; + key { [ 0x1000032 , 0x1000040 ] }; + key { [ 0x1000033 , 0x1000023 ] }; + key { [ 0x1000034 , 0x1000024 ] }; + key { [ 0x1000035 , 0x1000025 ] }; + key { [ 0x1000036 , 0x100005E ] }; + key { [ 0x1000037 , 0x1000026 ] }; + key { [ 0x1000038 , 0x100002A ] }; + key { [ 0x1000039 , 0x1000029 ] }; + key { [ 0x1000030 , 0x1000028 ] }; + key { [ 0x100002D , 0x100005F ] }; + key { [ 0x100003D , 0x100002B ] }; + key { [ 0x1000642 , 0x1000652, 0x100200D ] }; + key { [ 0x1000648 , 0x1000624, 0x100200C ] }; + key { [ 0x1000639 , 0x1000670 ] }; + key { [ 0x1000631 , 0x1000691 ] }; + key { [ 0x100062a , 0x1000679 ] }; + key { [ 0x10006d2 , 0x100064E ] }; + key { [ 0x1000621 , 0x1000626 ] }; + key { [ 0x10006cc , 0x1000650 ] }; + key { [ 0x10006c1 , 0x10006c3 ] }; + key { [ 0x100067e , 0x100064f ] }; + key { [ 0x100005d , 0x100007D ] }; + key { [ 0x100005b , 0x100007B ] }; + + key { [ 0x1000627 , 0x1000622 ] }; + key { [ 0x1000633 , 0x1000635 ] }; + key { [ 0x100062f , 0x1000688 ] }; + key { [ 0x1000641 , 0x1000651 ] }; + key { [ 0x10006af , 0x100063a ] }; + key { [ 0x100062D , 0x10006BE ] }; + key { [ 0x100062c , 0x1000636 ] }; + key { [ 0x10006a9 , 0x100062e ] }; + key { [ 0x1000644 , 0x1000654 ] }; + key { [ 0x100061b , 0x100003a ] }; + key { [ 0x1000027 , 0x1000022 ] }; + key { [ 0x100005C , 0x100007C ] }; + + key { [ bar , brokenbar ] }; + key { [ 0x1000632 , 0x1000630, 0x100200E ] }; + key { [ 0x1000634 , 0x1000698, 0x100202A ] }; + key { [ 0x1000686 , 0x100062b, 0x100202D ] }; + key { [ 0x1000637 , 0x1000638, 0x100202C ] }; + key { [ 0x1000628 , 0x100002e, 0x100202E ] }; + key { [ 0x1000646 , 0x10006ba, 0x100202B ] }; + key { [ 0x1000645 , 0x1000658, 0x100200F ] }; + key { [ 0x100060c , 0x100003c ] }; + key { [ 0x10006d4 , 0x100003E ] }; + key { [ 0x100002f , 0x100061f ] }; + +// key { [ Mode_switch, Multi_key ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "urd-crulp" { + + name[Group1]= "Urdu (Pakistan, CRULP)"; +// www.crulp.org phonetic v1.1 + + key { [ 0x100007E , 0x100064B ] }; + key { [ 0x10006F1 , 0x1000031, 0x1000021 ] }; + key { [ 0x10006F2 , 0x1000032, 0x1000040 ] }; + key { [ 0x10006F3 , 0x1000033, 0x1000023 ] }; + key { [ 0x10006F4 , 0x1000034 ] }; + key { [ 0x10006F5 , 0x1000035, 0x100066A ] }; + key { [ 0x10006F6 , 0x1000036 ] }; + key { [ 0x10006F7 , 0x1000037, 0x1000026 ] }; + key { [ 0x10006F8 , 0x1000038, 0x100002A ] }; + key { [ 0x10006F9 , 0x1000039, 0x1000029 ] }; + key { [ 0x10006F0 , 0x1000030, 0x1000028 ] }; + + key { [ 0x100002D , 0x100005F ] }; + key { [ 0x100003D , 0x100002B ] }; + key { [ 0x1000642 , 0x1000652 ] }; + key { [ 0x1000648 , 0x1000651, 0x1000602 ] }; + key { [ 0x1000639 , 0x1000670, 0x1000656 ] }; + key { [ 0x1000631 , 0x1000691, 0x1000613 ] }; + key { [ 0x100062a , 0x1000679, 0x1000614 ] }; + key { [ 0x10006d2 , 0x100064E, 0x1000601 ] }; + key { [ 0x1000621 , 0x1000626, 0x1000654 ] }; + key { [ 0x10006cc , 0x1000650, 0x1000611 ] }; + key { [ 0x10006c1 , 0x10006c3 ] }; + key { [ 0x100067e , 0x100064f, 0x1000657 ] }; + key { [ 0x100005d , 0x100007D ] }; + key { [ 0x100005b , 0x100007B ] }; + + key { [ 0x1000627 , 0x1000622, 0x100FDF2 ] }; + key { [ 0x1000633 , 0x1000635, 0x1000610 ] }; + key { [ 0x100062f , 0x1000688, 0x100FDFA ] }; + key { [ 0x1000641 , 0x1000651 ] }; + key { [ 0x10006af , 0x100063a ] }; + key { [ 0x100062D , 0x10006BE, 0x1000612 ] }; + key { [ 0x100062c , 0x1000636, 0x100FDFB ] }; + key { [ 0x10006a9 , 0x100062e ] }; + key { [ 0x1000644 , 0x1000654 ] }; + key { [ 0x100061b , 0x100003a ] }; + key { [ 0x1000027 , 0x1000022 ] }; + key { [ 0x100005C , 0x100007C ] }; + + key { [ bar , brokenbar ] }; + key { [ 0x1000632 , 0x1000630, 0x100060F ] }; + key { [ 0x1000634 , 0x1000698, 0x100060E ] }; + key { [ 0x1000686 , 0x100062b, 0x1000603 ] }; + key { [ 0x1000637 , 0x1000638 ] }; + key { [ 0x1000628 , 0x100002e, 0x100FDFD ] }; + key { [ 0x1000646 , 0x10006ba, 0x1000600 ] }; + key { [ 0x1000645 , 0x1000658 ] }; + key { [ 0x100060c , 0x100003c, 0x100003C ] }; + key { [ 0x10006d4 , 0x100066B, 0x100003E ] }; + key { [ 0x100002f , 0x100061F ] }; + +// key { [ Mode_switch, Multi_key ] }; + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "urd-nla" { + name[Group1]= "Urdu (Pakistan, NLA)"; +// www.nla.gov.pk + + key { [ 0x1000060 , 0x100007E, 0x100200C ] }; + key { [ 0x1000031 , 0x1000021 ] }; + key { [ 0x1000032 , 0x1000040 ] }; + key { [ 0x1000033 , 0x1000023 ] }; + key { [ 0x1000034 , 0x1000024 ] }; + key { [ 0x1000035 , 0x100066A ] }; + key { [ 0x1000036 , 0x100005E ] }; + key { [ 0x1000037 , 0x10006D6 ] }; + key { [ 0x1000038 , 0x100066D ] }; + key { [ 0x1000039 , 0x1000029 ] }; + key { [ 0x1000030 , 0x1000028 ] }; + key { [ 0x100002D , 0x100005F ] }; + key { [ 0x100003D , 0x100002B ] }; + key { [ 0x1000637 , 0x1000638, 0x100200D ] }; + key { [ 0x1000635 , 0x1000636, 0x100200C ] }; + key { [ 0x10006BE , 0x1000630 ] }; + key { [ 0x100062F , 0x1000688 ] }; + key { [ 0x1000679 , 0x100062B ] }; + key { [ 0x100067E , 0x1000651 ] }; + key { [ 0x100062A , 0x10006C3 ] }; + key { [ 0x1000628 , 0x1000640 ] }; + key { [ 0x100062C , 0x1000686 ] }; + key { [ 0x100062D , 0x100062E ] }; + key { [ 0x100005d , 0x100007D ] }; + key { [ 0x100005b , 0x100007B ] }; + + key { [ 0x1000645 , 0x1000698 ] }; + key { [ 0x1000648 , 0x1000632 ] }; + key { [ 0x1000631 , 0x1000691 ] }; + key { [ 0x1000646 , 0x10006BA ] }; + key { [ 0x1000644 , 0x10006C2 ] }; + key { [ 0x10006C1 , 0x1000621 ] }; + key { [ 0x1000627 , 0x1000622 ] }; + key { [ 0x10006a9 , 0x10006AF ] }; + key { [ 0x10006CC , 0x100064A ] }; + key { [ 0x100061b , 0x100003a ] }; + key { [ 0x1000027 , 0x1000022 ] }; + key { [ 0x100005C , 0x100007C ] }; + + key { [ bar , brokenbar ] }; + key { [ 0x1000642 , 0x100200D, 0x100200E ] }; + key { [ 0x1000641 , 0x100200C, 0x100202A ] }; + key { [ 0x10006D2 , 0x10006D3, 0x100202D ] }; + key { [ 0x1000633 , 0x100200E, 0x100202C ] }; + key { [ 0x1000634 , 0x1000624, 0x100202E ] }; + key { [ 0x100063A , 0x1000626, 0x100202B ] }; + key { [ 0x1000639 , 0x100200F, 0x100200F ] }; + key { [ 0x100060c , 0x100003E ] }; + key { [ 0x10006d4 , 0x100003C ] }; + key { [ 0x100002F , 0x100061f ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "snd" { + name[Group1]= "Sindhi"; +// www.bhurgri.com + + key { [ 0x1002019, 0x1002018 ] }; + key { [ 1, exclam, 0x1000610 ] }; + key { [ 2, 0x1000670, 0x1000611 ] }; + key { [ 3, 0x1000621, 0x1000613 ] }; + key { [ 4, 0x1000621, 0x1000612 ] }; + key { [ 5, 0x1000621, 0x1002026 ] }; + key { [ 6, 0x1000621, 0x1002022 ] }; + key { [ 7, 0x10006FD ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenright ] }; + key { [ 0, parenleft ] }; + key { [ 0x100068F, 0x100005F, 0x100002D ] }; + key { [ 0x100068C, plus, 0x100003D ] }; + key { [ 0x100068D, 0x100067A, 0x100007C ] }; + + key { [ 0x1000642, 0x100064E, 0x100064B ] }; + key { [ 0x1000635, 0x1000636, 0x100FDFA ] }; + key { [ 0x100064A, 0x1000650, 0x1000656 ] }; + key { [ 0x1000631, 0x1000699, 0x100FDE6 ] }; + key { [ 0x100062A, 0x100067D, 0x1000629 ] }; + key { [ 0x100067F, 0x100062B, 0x100FDE5 ] }; + key { [ 0x1000639, 0x100063A, 0x100FDE3 ] }; + key { [ 0x10006B3, 0x10006BE, 0x100FDE4 ] }; + key { [ 0x1000648, 0x100064F, 0x1000657 ] }; + key { [ 0x100067E, 0x10006A6 ] }; + key { [ 0x1000687, 0x1000683 ] }; + key { [ 0x1000686, 0x1000684 ] }; + + key { [ 0x1000627, 0x1000622, 0x1000649 ] }; + key { [ 0x1000633, 0x1000634 ] }; + key { [ 0x100062F, 0x100068A ] }; + key { [ 0x1000641, 0x10006A6 ] }; + key { [ 0x10006AF, 0x10006AF ] }; + key { [ 0x1000647, 0x100062D, 0x10006C1 ] }; + key { [ 0x100062C, 0x100062C, 0x100FDFB ] }; + key { [ 0x10006AA, 0x10006E1 ] }; + key { [ 0x1000644, 0x100003A ] }; + key { [ 0x10006A9, 0x100061B ] }; + key { [ 0x10006B1, 0x1000640 ] }; + + key { [ 0x1000632, 0x1000630, 0x1000652 ] }; + key { [ 0x100062E, 0x1000651, 0x100200C ] }; + key { [ 0x1000637, 0x1000638, 0x100200D ] }; + key { [ 0x1000680, 0x1000621, 0x1000624 ] }; + key { [ 0x1000628, 0x100067B, 0x100FDE1 ] }; + key { [ 0x1000646, 0x10006BB, 0x100200E ] }; + key { [ 0x1000645, 0x10006FE, 0x100FDF4 ] }; + key { [ 0x100060C, 0x100201C, 0x100200F ] }; + key { [ period, 0x100201D, 0x10006D4 ] }; + key { [ 0x1000626, Arabic_question_mark, 0x100002F ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "ara" { + name[Group1]= "Arabic (Pakistan)"; + +// NOTES: +// +// there is also combined shadda diacritis in AltGr position of simple +// diacritics fatha, fathatan, damma, dammatan, kasra and kasratan +// should a third state be added to Group2 ? +// +// How is this different from ara(basic)? --bernie + + key { [ 0x100064d , 0x100064b ] }; + key { [ 0x10006F1 , 0x1000021 ] }; + key { [ 0x10006F2 , 0x1000003 ] }; + key { [ 0x10006F3 , 0x100002f ] }; + key { [ 0x10006F4 , 0x1000626 ] }; + key { [ 0x10006F5 , 0x1000003 ] }; + key { [ 0x10006F6 , 0x10006d6 ] }; + key { [ 0x10006F7 , 0x1000654 ] }; + key { [ 0x10006F8 , 0x100064c ] }; + key { [ 0x10006F9 , 0x1000029 ] }; + key { [ 0x10006F0 , 0x1000028 ] }; + key { [ 0x1000623 , 0x1000651 ] }; + key { [ 0x1000624 , 0x1000622 ] }; + key { [ 0x1000642 , 0x1000652 ] }; + key { [ 0x1000648 , 0x10000a3 ] }; + key { [ 0x1000639 , 0x10000a5 ] }; + key { [ 0x1000631 , 0x1000691 ] }; + key { [ 0x100062a , 0x1000679 ] }; + key { [ 0x10006d2 , 0x1000601 ] }; + key { [ 0x1000621 , 0x100060c ] }; + key { [ 0x10006cc , 0x1000670 ] }; + key { [ 0x10006c1 , 0x10006c3 ] }; + key { [ 0x100067e , 0x100064f ] }; + key { [ 0x100005d , 0x1000670 ] }; + key { [ 0x100005b , 0x1000670 ] }; + + key { [ 0x1000627 , 0x1000653 ] }; + key { [ 0x1000633 , 0x1000635 ] }; + key { [ 0x100062f , 0x1000688 ] }; + key { [ 0x1000641 , 0x1000003 ] }; + key { [ 0x10006af , 0x100063a ] }; + key { [ 0x10006be , 0x100062d ] }; + key { [ 0x100062c , 0x1000636 ] }; + key { [ 0x10006a9 , 0x100062e ] }; + key { [ 0x1000644 , 0x1000613 ] }; + key { [ 0x100061b , 0x100003a ] }; + key { [ 0x1000670 , 0x1000022 ] }; + key { [ 0x100060e , 0x1000614 ] }; + + key { [ bar , brokenbar ] }; + key { [ 0x1000632 , 0x1000630 ] }; + key { [ 0x1000634 , 0x1000698 ] }; + key { [ 0x1000686 , 0x100062b ] }; + key { [ 0x1000637 , 0x1000638 ] }; + key { [ 0x1000628 , 0x1000612 ] }; + key { [ 0x1000646 , 0x10006ba ] }; + key { [ 0x1000645 , 0x1000003 ] }; + key { [ 0x100060c , 0x1000650 ] }; + key { [ 0x10006d4 , 0x100064e ] }; + key { [ 0x1000003 , 0x100061f ] }; +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + +// Contact: Walter Bender + + include "pk(ara)" + + name[Group1]= "Urdu (Pakistan)"; + + // Keys '~' - '=' + key { [ 0x1000654, 0x100064B ] }; + key { [ 0x10006F1, 0x1000603 ] }; + key { [ 0x10006F2, 0x1000602 ] }; + key { [ 0x10006F3, 0x1000601 ] }; + key { [ 0x10006F4, 0x1000600 ] }; + key { [ 0x10006F5, 0x100060F ] }; + key { [ 0x10006F6, 0x100060E ] }; + key { [ 0x10006F7, 0x1000614 ] }; + key { [ 0x10006F8, 0x1000612 ] }; + key { [ 0x10006F9, 0x1000611 ] }; + key { [ 0x10006F0, 0x1000613 ] }; + key { [ minus, 0x1000610 ] }; + key { [ equal, plus ] }; + + //Keys 'Q' - ']' + key { [ 0x1000642, 0x1000652 ] }; + key { [ 0x1000648, 0x1000651 ] }; + key { [ 0x1000639, 0x1000670 ] }; + key { [ 0x1000631, 0x1000691 ] }; + key { [ 0x100062A, 0x1000679 ] }; + key { [ 0x10006D2, 0x100064E ] }; + key { [ 0x1000621, 0x1000626 ] }; + key { [ 0x10006CC, 0x1000650 ] }; + key { [ 0x10006C1, 0x10006C3 ] }; + key { [ 0x100067E, 0x100064F ] }; + key { [ 0x100FDFD, 0x100FDFA ] }; + key { [ 0x100FDF2, 0x100FDFB ] }; + + // Keys 'A' - ''' + key { [ 0x1000627, 0x1000622 ] }; + key { [ 0x1000633, 0x1000635 ] }; + key { [ 0x100062F, 0x1000688 ] }; + key { [ 0x1000641 ] }; //shift key not available + key { [ 0x10006AF, 0x100063A ] }; + key { [ 0x100062D, 0x10006BE ] }; + key { [ 0x100062C, 0x1000636 ] }; + key { [ 0x10006A9, 0x100062E ] }; + key { [ 0x1000644, 0x1000656 ] }; + key { [ 0x100061B, colon ] }; + key { [ quote, doublequote ] }; + + key { [ backslash, bar ] }; + key { [ space ] }; + + // Keys: 'Z' - '/' + key { [ 0x1000632, 0x1000622 ] }; + key { [ 0x1000634, 0x1000635 ] }; + key { [ 0x1000686, 0x1000688 ] }; + key { [ 0x1000637 ] }; //shift key unavailable + key { [ 0x1000628, 0x100063A ] }; + key { [ 0x1000646, 0x10006BE ] }; + key { [ 0x1000645, 0x1000636 ] }; + key { [ 0x100060C, 0x100062E ] }; + key { [ 0x10006D4, 0x1000656 ] }; + key { [ slash, 0x100061F ] }; + + include "group(olpc)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/pl b/squashfs-root/usr/share/X11/xkb/symbols/pl new file mode 100644 index 0000000..78752f6 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/pl @@ -0,0 +1,499 @@ +// based on a keyboard map from an 'xkb/symbols/pl' file + +default partial alphanumeric_keys +xkb_symbols "basic" { + + // Visualisation and description: http://podziemie.net/xkb/pl + // Contact: Michał Górny + + include "latin" + + name[Group1]="Polish"; + + key { [ 1, exclam, notequal, exclamdown ] }; + key { [ 2, at, twosuperior, questiondown ] }; + key { [ 4, dollar, cent, onequarter ] }; + key { [ 5, percent, EuroSign, U2030 ] }; + key { [ 6, asciicircum, onehalf, logicaland ] }; + key { [ 7, ampersand, section, U2248 ] }; + key { [ 8, asterisk, periodcentered, threequarters ] }; + key { [ 9, parenleft, guillemotleft, plusminus ] }; + key { [ 0, parenright, guillemotright, degree ] }; + key { [ minus, underscore, endash, emdash ] }; + + key { [ q, Q, Greek_pi, Greek_OMEGA ] }; + key { [ w, W, oe, OE ] }; + key { [ e, E, eogonek, Eogonek ] }; + key { [ r, R, copyright, registered ] }; + key { [ t, T, ssharp, trademark ] }; + key { [ i, I, rightarrow, U2194 ] }; + key { [ o, O, oacute, Oacute ] }; + + key { [ a, A, aogonek, Aogonek ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ f, F, ae, AE ] }; + key { [ h, H, rightsinglequotemark, U2022 ] }; + key { [ j, J, schwa, SCHWA ] }; + key { [ k, K, ellipsis, dead_stroke ] }; + key { [ grave, asciitilde, notsign, logicalor ] }; + + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ v, V, doublelowquotemark, leftsinglequotemark ] }; + key { [ b, B, rightdoublequotemark, leftdoublequotemark ] }; + key { [ n, N, nacute, Nacute ] }; + key { [ m, M, mu, infinity ] }; + key { [ comma, less, lessthanequal, multiply ] }; + key { [ period, greater, greaterthanequal, division ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "legacy" { + + include "latin" + + name[Group1]="Polish (legacy)"; + + key { [ e, E, eogonek, Eogonek ] }; + key { [ u, U, EuroSign, cent ] }; + key { [ o, O, oacute, Oacute ] }; + + key { [ a, A, aogonek, Aogonek ] }; + key { [ s, S, sacute, Sacute ] }; + + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ n, N, nacute, Nacute ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "qwertz" { + + include "latin(type3)" + + name[Group1]="Polish (QWERTZ)"; + + key { [ 1, exclam, asciitilde, exclamdown ] }; + key { [ 2, quotedbl, dead_caron, oneeighth ] }; + key { [ 3, numbersign, dead_circumflex, sterling ] }; + key { [ 4, dollar, dead_breve, dollar ] }; + key { [ 5, percent, degree, threeeighths ] }; + key { [ 6, ampersand, dead_ogonek, fiveeighths ] }; + key { [ 7, slash, dead_grave, seveneighths ] }; + key { [ 8, parenleft, dead_abovedot, trademark ] }; + key { [ 9, parenright, dead_acute, plusminus ] }; + key { [ 0, equal, dead_doubleacute, degree ] }; + key { [ plus, question, dead_diaeresis, questiondown ] }; + key { [apostrophe, asterisk, dead_cedilla, dead_ogonek ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ zabovedot, nacute, division, dead_abovering ] }; + key { [ sacute, cacute, multiply, dead_macron ] }; + + key { [ s, S, dstroke, section ] }; + key { [ d, D, Dstroke, ETH ] }; + key { [ f, F ] }; + key { [ k, K, kra, ampersand ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ lstroke, Lstroke, dollar, dead_doubleacute ] }; + key { [ aogonek, eogonek, ssharp, dead_caron ] }; + key { [ abovedot, dead_ogonek, notsign, notsign ] }; + + key { [ oacute, zacute, dead_grave, dead_breve ] }; + key { [ c, C, cent, copyright ] }; + key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +// Polish Dvorak keymaps +// by Rafal Rzepecki + +// The base keymap "pl" places Polish quotes on quotemark key and +// moves the dead symbols from there to "1/!" key. If you are used to common +// dead keys placement, you could use "pl_altquotes"; in this layout +// dead keys remain in the old place, whereas Polish quotes are placed on the +// "1/!" key. If you do not use Polish quotes at all, you can use "pl_basic" map. + +// Basic Polish keymap (without Polish quotes) +partial alphanumeric_keys +xkb_symbols "dvorak" { + include "us(dvorak)" + + name[Group1] = "Polish (Dvorak)"; + + key { [ c, C, cacute, Cacute ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ a, A, aogonek, Aogonek ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ e, E, eogonek, Eogonek ] }; + key { [ n, N, nacute, Nacute ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ v, V, zacute, Zacute ] }; + key { [ z, Z, zabovedot, Zabovedot ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +// Default Polish keymap with Polish quotes on quotemark key +partial alphanumeric_keys +xkb_symbols "dvorak_quotes" { + include "pl(dvorak)" + + name[Group1] = "Polish (Dvorak, with Polish quotes on quotemark key)"; + + key { [ apostrophe, quotedbl, doublelowquotemark, rightdoublequotemark ] }; + + // Dead symbols moved to this key + key { [ 1, exclam, dead_acute, dead_diaeresis ] }; +}; + +// Polish keymap with Polish quotes on key "1/!" +partial alphanumeric_keys +xkb_symbols "dvorak_altquotes" { + include "pl(dvorak)" + + name[Group1] = "Polish (Dvorak, with Polish quotes on key 1)"; + + key { [ 1, exclam, doublelowquotemark, rightdoublequotemark ] }; +}; + +// Polish programmer Dvorak keymap by Michal Nazarewicz +// based on programmer Dvorak by Roland Kaufmann +// and Polish Dvorak keymaps by Rafal Rzepecki { [ ampersand, percent, doublelowquotemark, rightdoublequotemark ] }; + + // symbols row, right side + + // upper row, left side + + // upper row, right side + key { [ c, C, cacute, Cacute ] }; + key { [ l, L, lstroke, Lstroke ] }; + + // home row, left side + key { [ a, A, aogonek, Aogonek ], type[Group1] = "EIGHT_LEVEL_ALPHABETIC" }; + key { [ o, O, oacute, Oacute ] }; + key { [ e, E, eogonek, Eogonek ] }; + + // home row, right side + key { [ n, N, nacute, Nacute ] }; + key { [ s, S, sacute, Sacute ] }; + + // lower row, left side + key { [ j, J, doublelowquotemark, rightdoublequotemark ] }; + key { [ k, K, leftdoublequotemark, leftsinglequotemark ] }; + key { [ x, X, zacute, Zacute ] }; + + // lower row, right side + key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; + key { [ v, V, zacute, Zacute ] }; + key { [ z, Z, zabovedot, Zabovedot ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +// Silesian keyboard layout by Grzegorz Kulik +// and Przemysław Buczkowski . +// See http://poslunsku.eu/2012/07/slonsko-slabikorzowo-klawiatura-na-windows-i-ubuntu/ +// for a description. + +partial alphanumeric_keys +xkb_symbols "szl" { + + include "latin" + + name[Group1]="Silesian"; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, atilde, Atilde ] }; + key { [ o, O, ocircumflex, Ocircumflex ] }; + key { [ u, U, omacron, Omacron ] }; + key { [ p, P, otilde, Otilde ] }; + + key { [ a, A, U014F, U014E ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ f, F ] }; + + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ n, N, nacute, Nacute ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "csb" { + + include "latin" + + name[Group1]="Kashubian"; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, ediaeresis, Ediaeresis ] }; + key { [ y, Y, EuroSign, cent ] }; + key { [ u, U, ugrave, Ugrave ] }; + key { [ i, I, ograve, Ograve ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ p, P, ocircumflex, Ocircumflex ] }; + + key { [ a, A, aogonek, Aogonek ] }; + key { [ s, S, atilde, Atilde ] }; + key { [ f, F ] }; + key { [ l, L, lstroke, Lstroke ] }; + + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ n, N, nacute, Nacute ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +// Russian Polish-phonetic Dvorak +// by Adrian Dziubek +// +// This layout aims to enable Polish Dvorak users to type with Russian +// Cyrillic alphabet by using the sound correspondence between Polish and +// Russian languages. +// +// This keyboard should be intuitive. Please let me know, if my intuition +// lets You down. +// +// The guidelines used: +// - no Cyrillic symbols are placed on punctuation symbols, +// - visual similarities are ignored if there is a sound correspondence: +// no Cyrillic_es on c, no Cyrillic_er on p, no Cyrillic_ha on x etc., +// - the Latin symbols that have close sound correspondence (as read in Polish) +// to Cyrillic symbols (as read in Russian) are mapped respectively: +// * j -> Cyrillic_shorti, +// * k -> Cyrillic_ka, +// * b -> Cyrillic_be, +// * m -> Cyrillic_em, +// * w -> Cyrillic_ve, +// * z -> Cyrillic_ze +// * a -> Cyrillic_a, +// * o -> Cyrillic_o, +// * u -> Cyrillic_u, +// * i -> Cyrillic_i, +// * d -> Cyrillic_de, +// * h -> Cyrillic_ha, +// * t -> Cyrillic_te, +// * n -> Cyrillic_en, +// * s -> Cyrillic_es, +// * p -> Cyrillic_pe, +// * y -> Cyrillic_yeru, +// * f -> Cyrillic_ef, +// * g -> Cyrillic_ghe, +// * c -> Cyrillic_tse, +// * r -> Cyrillic_er, +// * l -> Cyrillic_el, +// - ...and little more distant: +// * AltGr + s (sacute) -> Cyrillic_sha, +// * AltGr + z (zabovedot) -> Cyrillic_zhe, +// * AltGr + c (cacute) -> Cyrillic_che, +// - the soft versions of Russian vowels are accessible through AltGr + vowel: +// * AltGr + a -> Cyrillic_ya, +// * AltGr + o -> Cyrillic_io, +// * AltGr + u -> Cyrillic_yu, +// - ...except for Cyrillic_ie which is more frequently used than Cyrillic_e: +// * AltGr + e -> Cyrillic_e, +// * e -> Cyrillic_ie, +// - q is also mapped to Cyrillic_ya, following the US phonetic keyboard +// choice, as Cyrillic_ya and Cyrillic_a are both often used: +// * q -> Cyrillic_ya, +// - the soft and hard symbols that have no Polish counterparts are mapped +// to rarely used in Polish x character: +// * x -> Cyrillic_softsign +// * AltGr + x -> Cyrillic_hardsign, +// - the soft sign is additionally available as AltGr + consonant combination +// for every consonant that can be softened or separated by soft sign: +// * AltGr + l -> Cyrillic_softsign, +// * AltGr + d -> Cyrillic_softsign, +// * AltGr + n -> Cyrillic_softsign, +// * AltGr + r -> Cyrillic_softsign, +// * AltGr + t -> Cyrillic_softsign, +// * AltGr + p -> Cyrillic_softsign, +// - ...and also because of visual similarity under level3 b: +// * AltGr + b -> Cyrillic_softsign, +// * Shift + AltGr + b -> Cyrillic_hardsign, +// - the Cyrillic_shcha symbol is placed under AltGr + w (visual similarity): +// * AltGr + w -> Cyrillic_shcha +// - v, also rarely unused in Polish is mapped like w: +// * v -> Cyrillic_ve, +// +partial alphanumeric_keys +xkb_symbols "ru_phonetic_dvorak" { + include "us(dvorak)" + + name[Group1] = "Russian (Poland, phonetic Dvorak)"; + + // lower row + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_be, Cyrillic_BE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, Cyrillic_zhe, Cyrillic_ZHE ] }; + // home row + key { [ Cyrillic_a, Cyrillic_A, Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_de, Cyrillic_DE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_te, Cyrillic_TE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_es, Cyrillic_ES, Cyrillic_sha, Cyrillic_SHA ] }; + // upper row + key { [ Cyrillic_pe, Cyrillic_PE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_tse, Cyrillic_TSE, Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_er, Cyrillic_ER, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_el, Cyrillic_EL, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +// EXTRAS: + +// A Polish keymap with a comprehensive set of quotes, dashes, and dead accents +// +// See http://marcinwolinski.pl/keyboard/ for a description. +// +// ┌────┐ +// │ 2 4│ 2 = Shift, 4 = Level3 + Shift +// │ 1 3│ 1 = Normal, 3 = Level3 +// └────┘ +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ~ ~ │ ! ' │ @ " │ # ˝ │ $ ¸ │ % ˇ │ ^ ^ │ & ˘ │ * ˙ │ ( ̣ │ ) ° │ _ ¯ │ + ˛ ┃ ⌫ Back ┃ +// │ ` ` │ 1 ¡ │ 2 © │ 3 • │ 4 § │ 5 € │ 6 ¢ │ 7 − │ 8 × │ 9 ÷ │ 0 ° │ - – │ = — ┃ space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ Q │ W │ E Ę │ R │ T │ Y │ U │ I │ O Ó │ P │ { « │ } » ┃ Enter ┃ +// ┃Tab ↹ ┃ q │ w │ e ę │ r │ t │ y │ u │ i │ o ó │ p │ [ ‹ │ ] › ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ A Ą │ S Ś │ D │ F │ G │ H │ J │ K │ L Ł │ : “ │ " ” │ | ¶ ┃ ┃ +// ┃Caps ⇬ ┃ a ą │ s ś │ d │ f │ g │ h │ j │ k │ l ł │ ; ‘ │ ' ’ │ \ ┃ ┃ +// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ │ Z Ż │ X Ź │ C Ć │ V │ B │ N Ń │ M │ < „ │ > · │ ? ¿ ┃ ┃ +// ┃Shift ⇧ │ z ż │ x ź │ c ć │ v │ b │ n ń │ m │ , ‚ │ . … │ / ⁄ ┃Shift ⇧ ┃ +// ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Space ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial alphanumeric_keys +xkb_symbols "intl" { + + include "latin(intl)" + + name[Group1]="Polish (intl., with dead keys)"; + + key { [ e, E, eogonek, Eogonek ] }; + key { [ o, O, oacute, Oacute ] }; + + key { [ a, A, aogonek, Aogonek ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ l, L, lstroke, Lstroke ] }; + + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ n, N, nacute, Nacute ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +// Polish Colemak +// by Tomek Piotrowski +// +partial alphanumeric_keys +xkb_symbols "colemak" { + include "us(colemak)" + name[Group1]= "Polish (Colemak)"; + + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ a, A, aogonek, Aogonek ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ n, N, nacute, Nacute ] }; + key { [ e, E, eogonek, Eogonek ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ l, L, lstroke, Lstroke ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/pl(sun_type6)" +}; + diff --git a/squashfs-root/usr/share/X11/xkb/symbols/pt b/squashfs-root/usr/share/X11/xkb/symbols/pt new file mode 100644 index 0000000..96039a0 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/pt @@ -0,0 +1,213 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin(type4)" + name[Group1]="Portuguese"; + + key { [ backslash, bar, notsign, notsign ] }; + key { [ 3, numbersign, sterling, sterling ] }; + key { [ 4, dollar, section, dollar ] }; + key { [ apostrophe, question, backslash, questiondown ] }; + key { [ guillemotleft, guillemotright, dead_cedilla, dead_ogonek ] }; + + key { [ plus, asterisk, dead_diaeresis, dead_abovering ] }; + key { [ dead_acute, dead_grave, dead_tilde, dead_macron ] }; + key { [ dead_tilde, dead_circumflex, dead_grave, dead_breve ] }; + + key { [ ccedilla, Ccedilla, dead_acute, dead_doubleacute ] }; + key { [ masculine, ordfeminine,dead_circumflex, dead_caron ] }; + + key { [ less, greater, backslash, backslash ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + + include "pt(basic)" + + key { [ plus, asterisk, dead_diaeresis, dead_diaeresis ] }; + key { [ dead_acute, dead_grave ] }; + key { [ dead_tilde, dead_circumflex ] }; +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + include "pt(Sundeadkeys)" + name[Group1]="Portuguese (with Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + include "pt(basic)" + name[Group1]="Portuguese (no dead keys)"; + + key { [ guillemotleft, guillemotright, cedilla, ogonek ] }; + key { [ plus, asterisk, quotedbl, quotedbl ] }; + key { [ acute, grave ] }; + key { [ asciitilde, asciicircum ] }; + key { [ ccedilla, Ccedilla, acute, doubleacute ] }; + key { [ masculine, ordfeminine, asciicircum, caron ] }; + key { [ minus, underscore, dead_belowdot, abovedot ] }; +}; + +// Layout variant for Mac, by Ricardo Cabral . +partial alphanumeric_keys +xkb_symbols "mac" { + + include "pt" + name[Group1]= "Portuguese (Macintosh)"; + + key { [ grave, asciitilde, notsign, notsign ] }; + key { [ 6, ampersand, threequarters, fiveeighths ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ plus, asterisk, dead_diaeresis ] }; + key { [ masculine, ordfeminine ] }; + key { [ backslash, bar, dead_grave, dead_breve ] }; + key { [ dead_tilde, dead_circumflex ] }; +}; + +partial alphanumeric_keys +xkb_symbols "mac_sundeadkeys" { + + include "pt(mac)" + name[Group1]= "Portuguese (Macintosh, with Sun dead keys)"; + + key { [ plus, asterisk, dead_diaeresis, dead_diaeresis ] }; + key { [ dead_acute, dead_grave ] }; + key { [ dead_tilde, dead_circumflex ] }; +}; + +partial alphanumeric_keys +xkb_symbols "mac_nodeadkeys" { + + include "pt(mac)" + name[Group1]= "Portuguese (Macintosh, no dead keys)"; + + key { [ plus, asterisk, quotedbl, quotedbl ] }; + key { [ acute, grave ] }; + key { [ asciitilde, asciicircum ] }; +}; + + +// +// Portuguese Nativo layout. +// This is a Dvorak-based layout, designed for the Portuguese language. +// +// Ari Caldeira 2005-07-19 +// +partial alphanumeric_keys +xkb_symbols "nativo" { + + name[Group1]="Portuguese (Nativo)"; + +// Numeric row + key { [ plus, asterisk, dead_diaeresis, plusminus ] }; + key { [ 1, exclam, onesuperior, exclamdown ] }; + key { [ 2, quotedbl, at, twosuperior ] }; + key { [ 3, numbersign, sterling, threesuperior ] }; + key { [ 4, dollar, section, onequarter ] }; + key { [ 5, percent, cent, 0x01002030 ] }; + key { [ 6, ampersand, notsign, diaeresis ] }; + key { [ 7, slash, braceleft, 0x0100032D ] }; + key { [ 8, parenleft, bracketleft, 0x01000331 ] }; + key { [ 9, parenright, bracketright, dead_horn ] }; + key { [ 0, equal, braceright, dead_hook ] }; + key { [ masculine, ordfeminine, dead_ogonek, 0x01000326 ] }; + key { [ less, greater, dead_cedilla, dead_abovering ] }; + +// Upper row + key { [ apostrophe, question, degree, questiondown ] }; + key { [ comma, semicolon, 0x01000329, 0x01000315 ] }; + key { [ period, colon, 0x01002022, periodcentered ] }; + key { [ h, H, paragraph, paragraph ] }; + key { [ x, X, multiply, division ] }; + key { [ w, W, ubreve, Ubreve ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ t, T, trademark, trademark ] }; + key { [ c, C, copyright, copyright ] }; + key { [ p, P, thorn, THORN ] }; + key { [ dead_tilde, dead_circumflex, dead_caron, dead_doubleacute ] }; + key { [ minus, underscore, 0x01002015, 0x01000336 ] }; + +// Central row + key { [ i, I, idotless, Iabovedot ] }; + key { [ e, E, EuroSign, EuroSign ] }; + key { [ a, A, ae, AE ] }; + key { [ o, O, oe, OE ] }; + key { [ u, U, oslash, Ooblique ] }; + key { [ m, M, mu, mu ] }; + key { [ d, D, eth, ETH ] }; + key { [ s, S, ssharp, ssharp ] }; + key { [ r, R, registered, registered ] }; + key { [ n, N, eng, ENG ] }; + key { [ dead_acute, dead_grave, dead_macron, dead_breve ] }; + key { [ backslash, bar, dead_belowdot, dead_abovedot ] }; + +// Lower row + key { [ guillemotleft, guillemotright, 0x01002039, 0x0100203A ] }; + key { [ y, Y, yen, yen ] }; + key { [ ccedilla, Ccedilla ] }; + key { [ j, J, 0x01000292, 0x010001B7 ] }; + key { [ b, B, apostrophe, quotedbl ] }; + key { [ k, K, currency, brokenbar ] }; + key { [ q, Q, 0x01000259, 0x0100018F ] }; + key { [ v, V, doublelowquotemark, singlelowquotemark ] }; + key { [ g, G, leftdoublequotemark, leftsinglequotemark ] }; + key { [ f, F, rightdoublequotemark, rightsinglequotemark ] }; + key { [ z, Z, 0x0100201F, 0x0100201B ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; + +// Configures the use of the AltGr key + include "level3(ralt_switch)" +}; + + +// +// Portuguese Nativo layout for US keyboards. +// +// Ari Caldeira 2005-07-19 +// +partial alphanumeric_keys +xkb_symbols "nativo-us" { + + include "pt(nativo)" + + name[Group1]="Portuguese (Nativo for US keyboards)"; + + key { [ y, Y, ccedilla, Ccedilla ] }; + key { [ guillemotleft, guillemotright, 0x01002039, 0x0100203A ] }; +}; + + +// +// Portuguese Nativo layout for typing Esperanto. +// +// Ari Caldeira 2005-07-19 +// +partial alphanumeric_keys +xkb_symbols "nativo-epo" { + + include "pt(nativo)" + + name[Group1]="Esperanto (Portugal, Nativo)"; + + key { [ h, H, hcircumflex, Hcircumflex ] }; + key { [ ccircumflex, Ccircumflex, x, X ] }; + key { [ ubreve, Ubreve, w, W ] }; + + key { [ jcircumflex, Jcircumflex, y, Y ] }; + key { [ scircumflex, Scircumflex, ccedilla, Ccedilla ] }; + key { [ gcircumflex, Gcircumflex, q, Q ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/pt(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ro b/squashfs-root/usr/share/X11/xkb/symbols/ro new file mode 100644 index 0000000..cde63e1 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ro @@ -0,0 +1,236 @@ +// +// Complete set of Romanian keyboards as described in the new Romanian standard +// SR 13392:2004 adopted in December 2004 by ASRO, "Asociatia de Standardizare +// din Romania". +// +// The default mapping is the RO_US/Programmers layout because of the lack of +// Romanian hardware keyboards. The primary standard layout is implemented as +// the "std" variant. If you're determined to get cedillas as in ISO-8859-2 +// (and not commabelow accents as in ISO-8859-16) use the defined variants +// "cedilla" for the default layout or "std_cedilla" for the standard one. +// Pre-Vista MS compatible layout included (use the "winkeys" variant). +// +// Created by Cristian Gafton, (C) 2000 +// Modified by Marius Andreiana, (C) 2001 +// Completed by Misu Moldovan, (C) 2001, 2004-2008. +// v 1.4 + + +default partial alphanumeric_keys +xkb_symbols "basic" { +// This RO_US/Programmers layout, although the secondary layout in the +// Romanian standard, has always been the "de facto" standard in the +// Linux/Unix world. It is implemented here as the default layout and it's +// fully compatible with an US keyboard (Euro on AltGr+5 does not count). + + include "us" + + name[Group1]="Romanian"; + + key { [ 1, exclam, dead_tilde ] }; + key { [ 2, at, dead_caron ] }; + key { [ 3, numbersign, dead_circumflex ] }; + key { [ 4, dollar, dead_breve ] }; + key { [ 5, percent, dead_abovering ] }; + key { [ 6, asciicircum, dead_ogonek ] }; + key { [ 7, ampersand, dead_grave ] }; + key { [ 8, asterisk, dead_abovedot ] }; + key { [ 9, parenleft, dead_acute ] }; + key { [ 0, parenright, dead_doubleacute ] }; + key { [ minus, underscore, dead_diaeresis, endash ] }; + key { [ equal, plus, dead_cedilla, plusminus ] }; + key { [ q, Q, acircumflex, Acircumflex ] }; + key { [ w, W, ssharp ] }; + key { [ e, E, EuroSign ] }; + key { [ t, T, 0x100021b, 0x100021a ] }; + key { [ i, I, icircumflex, Icircumflex ] }; + key { [ p, P, section ] }; + key { [ bracketleft, braceleft, doublelowquotemark ] }; + key { [ bracketright, braceright, rightdoublequotemark ] }; + key { [ a, A, abreve, Abreve ] }; + key { [ s, S, 0x1000219, 0x1000218 ] }; + key { [ d, D, dstroke, Dstroke ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ backslash, bar ] }; + key { [ c, C, copyright ] }; + key { [ comma, less, guillemotleft ] }; + key { [ period, greater, guillemotright ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "cedilla" { + // Variant of the basic layout with cedillas. + // Implements S and T with cedilllas as in ISO-8859-2. + // Included for compatibility reasons (this used to be the def variant). + + include "ro(basic)" + + name[Group1]="Romanian (cedilla)"; + + key { [ t, T, tcedilla, Tcedilla ] }; + key { [ s, S, scedilla, Scedilla ] }; +}; + +partial alphanumeric_keys +xkb_symbols "std" { + // Primary layout in the new Romanian standard. + // Implemented here as a variant because of the lack of hardware + // Romanian keyboards and because of the predilection of Romanian + // X users towards the secondary layout from the new standard. + + include "us" + + name[Group1]="Romanian (standard)"; + + key { [ doublelowquotemark, rightdoublequotemark, grave, asciitilde ] }; + key { [ 1, exclam, dead_tilde ] }; + key { [ 2, at, dead_caron ] }; + key { [ 3, numbersign, dead_circumflex ] }; + key { [ 4, dollar, dead_breve ] }; + key { [ 5, percent, dead_abovering ] }; + key { [ 6, asciicircum, dead_ogonek ] }; + key { [ 7, ampersand, dead_grave ] }; + key { [ 8, asterisk, dead_abovedot ] }; + key { [ 9, parenleft, dead_acute ] }; + key { [ 0, parenright, dead_doubleacute ] }; + key { [ minus, underscore, dead_diaeresis, endash ] }; + key { [ equal, plus, dead_cedilla, plusminus ] }; + key { [ e, E, EuroSign ] }; + key { [ p, P, section ] }; + key { [ abreve, Abreve, bracketleft, braceleft ] }; + key { [ icircumflex, Icircumflex, bracketright, braceright ] }; + key { [ acircumflex, Acircumflex, backslash, bar ] }; + key { [ s, S, ssharp ] }; + key { [ d, D, dstroke, Dstroke ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ 0x1000219, 0x1000218, semicolon, colon ] }; + key { [ 0x100021b, 0x100021a, apostrophe, quotedbl ] }; + key { [ backslash, bar ] }; + key { [ c, C, copyright ] }; + key { [ comma, semicolon, less, guillemotleft ] }; + key { [ period, colon, greater, guillemotright ] }; + + key { [ KP_Delete, KP_Separator ] }; + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "std_cedilla" { + // Variant of the "std" layout using cedillas instead of commas. + // It implements S and T with cedillas as in ISO-8859-2. + // Included for compatibility reasons. + + include "ro(std)" + + name[Group1]="Romanian (standard cedilla)"; + + key { [ scedilla, Scedilla ] }; + key { [ tcedilla, Tcedilla ] }; +}; + + +partial alphanumeric_keys +xkb_symbols "winkeys" { + // Describes the differences between a very simple US/ASCII + // keyboard and a simple Romanian keyboard. + // Created by Manfred Pohler, (C) 2003 + + include "latin" + + name[Group1]="Romanian (Win keys)"; + + key { [ bracketright, bracketleft ] }; + + key { [ 1, exclam, asciitilde, asciitilde ] }; + key { [ 2, quotedbl, at, at ] }; + key { [ 3, numbersign, asciicircum,asciicircum ] }; + key { [ 4, currency ] }; + key { [ 5, percent, degree, degree ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, grave, grave ] }; + key { [ 8, parenleft ] }; + key { [ 9, parenright ] }; + key { [ 0, equal ] }; + key { [ plus, question ] }; + key { [ apostrophe, asterisk ] }; + + key { [ q, Q, backslash, backslash ] }; + key { [ w, W, bar, bar ] }; + key { [ e, E, EuroSign, EuroSign ] }; + key { [ t, T ] }; + key { [ z, Z ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ abreve, Abreve, division, division ] }; + key { [ icircumflex, Icircumflex, multiply, multiply ] }; + + key { [ f, F ] }; + key { [ g, G ] }; + key { [ scedilla, Scedilla, dollar, dollar ] }; + key { [ tcedilla, Tcedilla, ssharp, ssharp ] }; + + key { [ y, Y ] }; + key { [ b, B, braceleft, braceleft ] }; + key { [ n, N, braceright, braceright ] }; + key { [ m, M, section, section ] }; + key { [ comma, semicolon, less, less ] }; + key { [ period, colon, greater, greater ] }; + key { [ minus, underscore ] }; + + key { [ acircumflex, Acircumflex ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +partial +xkb_symbols "crh_dobruja" { + // Romania-specific Crimean Tatar (Crimean Turkish) Q layout. + // This layout is not yet standard. Common Alt-Q and F layouts are now also + // available right next to this layout in the new language-centric UI. + // Reşat SABIQ , 2009, 2011 + // Özgür Qarahan , 2009 + + include "tr(crh)" + + name[Group1]="Crimean Tatar (Dobruja Q)"; + + key { [ w, W, abreve, Abreve ] }; + key { [ t, T, 0x100021b, 0x100021a ] }; + key { [ p, P, section ] }; + key { [ s, S, 0x1000219, 0x1000218 ] }; + key { [ ibreve, Ibreve, j, J ] }; + key { [ m, M, trademark, masculine ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys +xkb_symbols "ergonomic" { + // This layout is optimized for fast touch-typing in Romanian on a + // US keyboard, and works by swapping out symbols infrequently used + // in written Romanian (q,w,y,k) in favor of native ones, thus reducing + // the need to use modifier keys. + // Created by Gabriel Somlo, (C) 2011 + + include "ro(basic)" + + name[Group1]="Romanian (ergonomic Touchtype)"; + + key { [ abreve, Abreve, q, Q ] }; + key { [ 0x1000219, 0x1000218, w, W ] }; + key { [ 0x100021b, 0x100021a, y, Y ] }; + key { [ a, A, acircumflex, Acircumflex ] }; + key { [ icircumflex, Icircumflex, k, K ] }; +}; + + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/ro(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/rs b/squashfs-root/usr/share/X11/xkb/symbols/rs new file mode 100644 index 0000000..42d5211 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/rs @@ -0,0 +1,329 @@ +// Bosnian, Croatian, Serbian and Slovenian XKB keyboard mappings. +// +// Derived from "Danube" D.2 from 2003-05-12, +// which is available at http://srpski.org/dunav/. +// +// Original authors: +// Danilo Segan (Данило Шеган) +// Chusslove Illich (Часлав Илић) +// +// Danilo Segan : +// - Modified for inclusion in XFree86. +// - Further modifications on 2005-08-18 to support Bosnian, +// Croatian and Slovenian in xkeyboard-config. + +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]= "Serbian"; + + include "rs(cyrlevel3)" + include "rs(common)" + include "rs(cyralpha)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "latin" { + + name[Group1]= "Serbian (Latin)"; + + include "latin(type3)" + include "rs(latalpha)" + include "rs(latlevel3)" + include "rs(common)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "yz" { + + include "rs(basic)" + name[Group1]= "Serbian (Cyrillic, ZE and ZHE swapped)"; + + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // y + key { [ Cyrillic_ze, Cyrillic_ZE ] }; // z +}; + +hidden partial alphanumeric_keys +xkb_symbols "common" { + // "Common" keys: keys that are the same + // for both latin and cyrillic keyboards. + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash ] }; + key { [ 8, parenleft ] }; + key { [ 9, parenright ] }; + key { [ 0, equal ] }; + key { [ apostrophe, question ] }; + key { [ plus, asterisk ] }; + + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "kpdl(comma)" +}; + +hidden partial alphanumeric_keys +xkb_symbols "cyralpha" { + + key { [ Cyrillic_lje, Cyrillic_LJE ] }; // q + key { [ Cyrillic_nje, Cyrillic_NJE ] }; // w + key { [ Cyrillic_ie, Cyrillic_IE ] }; // e + key { [ Cyrillic_er, Cyrillic_ER ] }; // r + key { [ Cyrillic_te, Cyrillic_TE ] }; // t + key { [ Cyrillic_ze, Cyrillic_ZE ] }; // y + key { [ Cyrillic_u, Cyrillic_U ] }; // u + key { [ Cyrillic_i, Cyrillic_I ] }; // i + key { [ Cyrillic_o, Cyrillic_O ] }; // o + key { [ Cyrillic_pe, Cyrillic_PE ] }; // p + key { [ Cyrillic_sha, Cyrillic_SHA ] }; // [ { + key { [ Serbian_dje, Serbian_DJE ] }; // ] } + + key { [ Cyrillic_a, Cyrillic_A ] }; // a + key { [ Cyrillic_es, Cyrillic_ES ] }; // s + key { [ Cyrillic_de, Cyrillic_DE ] }; // d + key { [ Cyrillic_ef, Cyrillic_EF ] }; // f + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; // g + key { [ Cyrillic_ha, Cyrillic_HA ] }; // h + key { [ Cyrillic_je, Cyrillic_JE ] }; // j + key { [ Cyrillic_ka, Cyrillic_KA ] }; // k + key { [ Cyrillic_el, Cyrillic_EL ] }; // l + key { [ Cyrillic_che, Cyrillic_CHE ] }; // ; : + key { [ Serbian_tshe, Serbian_TSHE ] }; // ' " + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // \ | + + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // z + key { [ Cyrillic_dzhe, Cyrillic_DZHE ] }; // x + key { [ Cyrillic_tse, Cyrillic_TSE ] }; // c + key { [ Cyrillic_ve, Cyrillic_VE ] }; // v + key { [ Cyrillic_be, Cyrillic_BE ] }; // b + key { [ Cyrillic_en, Cyrillic_EN ] }; // n + key { [ Cyrillic_em, Cyrillic_EM ] }; // m +}; + + +hidden partial alphanumeric_keys +xkb_symbols "latalpha" { + + key { [ scaron, Scaron ] }; // [ { + key { [ dstroke, Dstroke ] }; // ] } + + key { [ ccaron, Ccaron ] }; // ; : + key { [ cacute, Cacute ] }; // ' " + key { [ zcaron, Zcaron ] }; // \ | +}; + +hidden partial alphanumeric_keys +xkb_symbols "twoletter" { + + // Letters which are written in latin transcription with two characters. + key { type[Group1] = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC", + [ U1C9, U1C8, any, U1C7 ] }; // q + key { type[Group1] = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC", + [ U1CC, U1CB, any, U1CA ] }; // w + key { type[Group1] = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC", + [ U1C6, U1C5, any, U1C4 ] }; // x + + // Also replace letter Y with Zcaron, since Y is of no use any longer. + key { [ zcaron, Zcaron ] }; // z +}; + +hidden partial alphanumeric_keys +xkb_symbols "latlevel3" { + key { [ any, any, notsign, notsign ] }; // ` ~ + key { [ any, any, dead_tilde, asciitilde ] }; // 1 ! + key { [ any, any, dead_caron, caron ] }; // 2 @ + key { [ any, any, dead_circumflex, asciicircum ] }; // 3 # + key { [ any, any, dead_breve, breve ] }; // 4 $ + key { [ any, any, dead_abovering, degree ] }; // 5 % + key { [ any, any, dead_ogonek, ogonek ] }; // 6 ^ + key { [ any, any, dead_grave, grave ] }; // 7 & + key { [ any, any, dead_abovedot, abovedot ] }; // 8 * + key { [ any, any, dead_acute, apostrophe ] }; // 9 ( + key { [ any, any, dead_doubleacute, doubleacute ] }; // 0 ) + key { [ any, any, dead_diaeresis, diaeresis ] }; // - _ + key { [ any, any, dead_cedilla, cedilla ] }; // = + + + key { [ any, any, backslash, Greek_OMEGA ] }; // q + key { [ any, any, bar, Lstroke ] }; // w + key { [ any, any, EuroSign, EuroSign ] }; // e + key { [ any, any, paragraph, registered ] }; // r + key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", + [ any, any, tslash, Tslash ] }; // t + key { [ any, any, leftarrow, yen ] }; // y + key { [ any, any, downarrow, uparrow ] }; // u + key { [ any, any, rightarrow, idotless ] }; // i + key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", + [ any, any, oslash, Ooblique ] }; // o + key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", + [ any, any, thorn, THORN ] }; // p + key { [ any, any, division, dead_abovering ] }; // [ + key { [ any, any, multiply, dead_macron ] }; // ] + + key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", + [ any, any, ae, AE ] }; // a + key { [ any, any, doublelowquotemark, guillemotright ] }; // s + key { [ any, any, leftdoublequotemark, guillemotleft ] }; // d + key { [ any, any, bracketleft, ordfeminine ] }; // f + key { [ any, any, bracketright, ENG ] }; // g + key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", + [ any, any, hstroke, Hstroke ] }; // h + key { [ any, any, lstroke, ampersand ] }; // k + key { [ any, any, lstroke, Lstroke ] }; // l + key { [ any, any, dead_acute, dead_doubleacute ] }; // ; + key { [ any, any, ssharp, dead_caron ] }; // ' + key { [ any, any, currency, dead_breve ] }; // \ + + key { [ any, any, leftsinglequotemark, guillemotright ] }; // z + key { [ any, any, rightsinglequotemark,guillemotleft ] }; // x + key { [ any, any, cent, copyright ] }; // c + key { [ any, any, at, grave ] }; // v + key { [ any, any, braceleft, apostrophe ] }; // b + key { [ any, any, braceright, braceright ] }; // n + key { [ any, any, asciicircum, masculine ] }; // m + key { [ any, any, less, multiply ] }; // , < + key { [ any, any, greater, division ] }; // . > + key { [ any, any, emdash, endash ] }; // / ? +}; + +hidden partial alphanumeric_keys +xkb_symbols "cyrlevel3" { + key { [ any, any, degree, notsign ] }; // ` ~ + key { [ any, any, dead_circumflex ] }; // 3 # + key { [ any, any, dead_grave ] }; // 7 & + key { [ any, any, dead_doublegrave ] }; // 8 * + key { [ any, any, dead_acute ] }; // 9 ( + key { [ any, any, dead_invertedbreve ] }; // 0 ) + key { [ any, any, dead_macron ] }; // - _ + + key { [ any, any, backslash ] }; // q + key { [ any, any, bar ] }; // w + key { [ any, any, EuroSign, sterling ] }; // e + key { [ any, any, paragraph, registered ] }; // r + key { [ any, any, ellipsis ] }; // t + key { [ any, any, leftarrow, yen ] }; // y + key { [ any, any, downarrow, uparrow ] }; // u + key { [ any, any, rightarrow ] }; // i + key { [ any, any, section ] }; // o + key { [ any, any, division ] }; // [ + key { [ any, any, multiply ] }; // ] + + key { [ any, any, doublelowquotemark, guillemotright ] }; // s + key { [ any, any, leftdoublequotemark, guillemotleft ] }; // d + key { [ any, any, bracketleft ] }; // f + key { [ any, any, bracketright ] }; // g + key { [ any, any, currency ] }; // \ + + key { [ any, any, leftsinglequotemark ] }; // z + key { [ any, any, rightsinglequotemark ] }; // x + key { [ any, any, cent, copyright ] }; // c + key { [ any, any, at ] }; // v + key { [ any, any, braceleft ] }; // b + key { [ any, any, braceright ] }; // n + key { [ any, any, asciicircum ] }; // m + key { [ any, any, less ] }; // , < + key { [ any, any, greater ] }; // . > + key { [ any, any, emdash, endash ] }; // / ? +}; + +partial alphanumeric_keys +xkb_symbols "latinunicode" { + // This mapping supports the Unicode characters 0x1c4-0x1cc (dz, lj, and nj + // as single character). You get the title form with AltGr+Shift. + + include "rs(latin)" + name[Group1]= "Serbian (Latin, Unicode)"; + + include "rs(twoletter)" +}; + +partial alphanumeric_keys +xkb_symbols "latinyz" { + // For those who insist on using "english-position" Z and Y. + + include "rs(latin)" + name[Group1]= "Serbian (Latin, QWERTY)"; + + key { [ y, Y ] }; // y + key { [ z, Z ] }; // z +}; + +partial alphanumeric_keys +xkb_symbols "latinunicodeyz" { + // Unicode, ZHE and Z swapped. + + include "rs(latinunicode)" + name[Group1]= "Serbian (Latin, Unicode, QWERTY)"; + + key { [ zcaron, Zcaron ] }; // y + key { [ z, Z ] }; // z +}; + +xkb_symbols "alternatequotes" { + // Another acceptable »pair of quotes« for Serbian. + + include "rs(basic)" + name[Group1]= "Serbian (Cyrillic with guillemets)"; + + key { [ any, any, guillemotright ] }; // s + key { [ any, any, guillemotleft ] }; // d +}; + +xkb_symbols "latinalternatequotes" { + // Another acceptable »pair of quotes« for Serbian. + + include "rs(latin)" + name[Group1]= "Serbian (Latin with guillemets)"; + + key { [ any, any, guillemotright ] }; // s + key { [ any, any, guillemotleft ] }; // d +}; + +xkb_symbols "rue" { + // Layout for Pannonian Rusyn (spoken mainly in Serbia and Croatia + // by the Rusyn people), based on Serbian Cyrillic layout. + // Authors: + // Ljubomir J. Papuga (Любомир Я. Папуґа) + // Mihajlo Hornjak + + include "rs(basic)" + name[Group1]= "Pannonian Rusyn"; + + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; // ` + + key { [ Cyrillic_ya, Cyrillic_YA ] }; // q + key { [ Ukrainian_ie, Ukrainian_IE ] }; // w + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; // ] + + key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; // g + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // j + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; // ' + + key { [ Cyrillic_yu, Cyrillic_YU ] }; // z + key { [ Ukrainian_yi, Ukrainian_YI ] }; // x +}; + +// EXTRAS: + +xkb_symbols "combiningkeys" { + // Raw combining characters instead of dead keys, + // especially good for post-accenting texts. + + include "rs(basic)" + name[Group1]= "Serbian (combining accents instead of dead keys)"; + + key { [ any, any, U0302, dead_circumflex ] }; // 3, U0302 = COMBINING CIRCUMFLEX ACCENT + key { [ any, any, U0300 ] }; // 7, U0300 = COMBINING GRAVE ACCENT + key { [ any, any, U030F ] }; // 8, U030F = COMBINING DOUBLE GRAVE ACCENT + key { [ any, any, U0301 ] }; // 9, U0301 = COMBINING ACUTE ACCENT + key { [ any, any, U0311 ] }; // 0, U0311 = COMBINING INVERTED BREVE + key { [ any, any, U0304 ] }; // -, U0304 = COMBINING MACRON +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ru b/squashfs-root/usr/share/X11/xkb/symbols/ru new file mode 100644 index 0000000..964705c --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ru @@ -0,0 +1,961 @@ +// Keyboard layouts for Russia. +// AEN +// 2001/12/23 by Leon Kanter +// 2005/12/09 Valery Inozemtsev + +// Windows layout +default partial alphanumeric_keys +xkb_symbols "winkeys" { + + include "ru(common)" + name[Group1]= "Russian"; + + key { [ 3, numerosign ] }; + key { [ 4, semicolon ] }; + key { [ 5, percent ] }; + key { [ 6, colon ] }; + key { [ 7, question ] }; + key { [ 8, asterisk, U20BD ] }; + + key { [ period, comma ] }; + key { [ backslash, slash ] }; +}; + +hidden partial alphanumeric_keys +xkb_symbols "common" { + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numbersign ] }; + key { [ 4, asterisk ] }; + key { [ 5, colon ] }; + key { [ 6, comma ] }; + key { [ 7, period ] }; + key { [ 8, semicolon ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ backslash, bar ] }; + + key { [ slash, question ] }; + key { [ slash, bar ] }; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; + + include "kpdl(comma)" +}; + +partial alphanumeric_keys +xkb_symbols "legacy" { + + include "ru(common)" + name[Group1]= "Russian (legacy)"; +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + + include "ru(common)" + + key { [ 0x01000451, 0x01000401, grave ] }; // Ñ‘, Ð + key { [ 3, numbersign, 0x01002116 ] }; // â„– + key { [ 4, dollar, semicolon ] }; + key { [ 6, asciicircum, colon ] }; + key { [ 7, ampersand ] }; + key { [ 9, parenleft, acute ] }; + key { [ backslash, bar, slash ] }; + + include "group(olpc)" +}; + +partial alphanumeric_keys +xkb_symbols "typewriter" { + + include "ru(common)" + name[Group1]= "Russian (typewriter)"; + + key { [ bar, plus ] }; + key { [ numerosign, 1 ] }; + key { [ minus, 2 ] }; + key { [ slash, 3 ] }; + key { [ quotedbl, 4 ] }; + key { [ colon, 5 ] }; + key { [ comma, 6 ] }; + key { [ period, 7 ] }; + key { [ underscore, 8 ] }; + key { [ question, 9 ] }; + key { [ percent, 0 ] }; + key { [ exclam, equal ] }; + key { [ semicolon, backslash ] }; + + key { [ parenright, parenleft ] }; + + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; +}; + +partial alphanumeric_keys +xkb_symbols "typewriter-legacy" { + + include "ru(common)" + name[Group1]= "Russian (typewriter, legacy)"; + + key { [ apostrophe, quotedbl ] }; + key { [ exclam, 1 ] }; + key { [ numerosign, 2 ] }; + key { [ slash, 3 ] }; + key { [ semicolon, 4 ] }; + key { [ colon, 5 ] }; + key { [ comma, 6 ] }; + key { [ period, 7 ] }; + key { [ underscore, 8 ] }; + key { [ question, 9 ] }; + key { [ percent, 0 ] }; + + key { [ parenleft, parenright ] }; + + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; +}; + +partial alphanumeric_keys +xkb_symbols "phonetic" { + + name[Group1]= "Russian (phonetic)"; + + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, Cyrillic_io ] }; + key { [ 4, Cyrillic_IO ] }; + key { [ 5, Cyrillic_hardsign ] }; + key { [ 6, Cyrillic_HARDSIGN ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + + key { [ period, greater ] }; + key { [ slash, question ] }; + key { [ comma, less ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + key { [ bar, brokenbar ] }; + + key { [ Cyrillic_yu, Cyrillic_YU ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; +}; + +partial alphanumeric_keys +xkb_symbols "phonetic_winkeys" { + + include "ru(phonetic)" + name[Group1]= "Russian (phonetic, with Win keys)"; + + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; +}; + +partial alphanumeric_keys +xkb_symbols "tt" { + + include "ru(winkeys)" + name[Group1]= "Tatar"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ 0x010004bb, 0x010004ba, Cyrillic_io, Cyrillic_IO ] }; + key { [ 0x010004e9, 0x010004e8, Cyrillic_tse, Cyrillic_TSE ] }; + key { [ 0x010004d9, 0x010004d8, Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ 0x010004af, 0x010004ae, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ 0x010004a3, 0x010004a2, Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ 0x01000497, 0x01000496, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "os_legacy" { + + include "ru(common)" + name[Group1]= "Ossetian (legacy)"; + + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; + key { [ 0x010004D5, 0x010004D4 ] }; +}; + +partial alphanumeric_keys +xkb_symbols "os_winkeys" { + + include "ru(winkeys)" + name[Group1]= "Ossetian (Win keys)"; + + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; + key { [ 0x010004D5, 0x010004D4 ] }; +}; + +partial alphanumeric_keys +xkb_symbols "cv" { + + include "ru(winkeys)" + name[Group1]= "Chuvash"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ Cyrillic_u, Cyrillic_U, 0x010004f3, 0x010004f2 ] }; + key { [ Cyrillic_ie, Cyrillic_IE, 0x010004d7, 0x010004d6 ] }; + key { [ Cyrillic_a, Cyrillic_A, 0x010004d1, 0x010004d0 ] }; + key { [ Cyrillic_es, Cyrillic_ES, 0x010004ab, 0x010004aa ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "udm" { + + include "ru(winkeys)" + name[Group1]= "Udmurt"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ question, exclam, 1, 1 ] }; + key { [ parenleft, quotedbl, 2, 2 ] }; + key { [ parenright, numerosign, 3, 3 ] }; + key { [ colon, semicolon, 4, 4 ] }; + key { [ asterisk, percent, 5, 5 ] }; + key { [ 0x010004dd, 0x010004dc, 6, 6 ] }; + key { [ 0x010004e7, 0x010004e6, 7, 7 ] }; + key { [ 0x010004f5, 0x010004f4, 8, 8 ] }; + key { [ 0x010004e5, 0x010004e4, 9, 9 ] }; + key { [ 0x010004df, 0x010004de, 0, 0 ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "cv_latin" { + + include "us(alt-intl)" + name[Group1]= "Chuvash (Latin)"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ q, Q, 0x01000161, 0x01000160 ] }; + key { [ w, W, udiaeresis, Udiaeresis ] }; + key { [ e, E, 0x01000115, 0x01000114 ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, 0x0100012d, 0x0100012c ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ a, A, abreve, Abreve ] }; + key { [ s, S, scedilla, Scedilla ] }; + key { [ g, G, gbreve, Gbreve ] }; + key { [ j, J, 0x01000131, 0x01000130 ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + + include "level3(ralt_switch)" +}; + +// Komi language layout +// Vlad Shakhov +// last changes 2007/10/23 +partial alphanumeric_keys +xkb_symbols "kom" { + + include "ru(winkeys)" + name[Group1]= "Komi"; + + key.type[group1]="FOUR_LEVEL_ALPHABETIC"; + + // cyrilllic o with diaeresis + key { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] }; + + // hard I as additional key for soft Cyrillic_I + key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; + + include "level3(ralt_switch)" +}; + +// Yakut language layout +// 2008/04/23 Yakov Aleksandrov +// 2008/04/23 Anatoliy Zhozhikov +// 2008/04/23 Aleksandr Varlamov +partial alphanumeric_keys +xkb_symbols "sah" { + + include "ru(winkeys)" + name[Group1]= "Yakut"; + + key.type[group1]="FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_io, Cyrillic_IO, U04EB, U04EA ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, U048B, U048A ] }; + key { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] }; + key { [ Cyrillic_ka, Cyrillic_KA, U04C4, U04C3 ] }; + key { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, U0495, U0494 ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, U04E1, U04E0 ] }; + key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, U0461, U0460 ] }; + key { [ Cyrillic_che, Cyrillic_CHE, Cyrillic_u_macron, Cyrillic_U_macron ] }; + key { [ Cyrillic_em, Cyrillic_EM, U04C8, U04C7 ] }; + key { [ Cyrillic_i, Cyrillic_I, Cyrillic_i_macron, Cyrillic_I_macron ] }; + + include "level3(ralt_switch)" +}; + + +//Kalmyk language layout +//based on the Kalmyk language layout: http://soft.oyrat.org/ +//Nikolay Korneev +//Toli Miron +partial alphanumeric_keys +xkb_symbols "xal" { + + include "ru(winkeys)" + name[Group1]= "Kalmyk"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ question, exclam, 1 ] }; + key { [ numerosign, quotedbl, 2 ] }; + key { [ Cyrillic_u_straight, Cyrillic_U_straight, 3 ] }; + key { [ Cyrillic_schwa, Cyrillic_SCHWA, 4 ] }; + key { [ asterisk, percent, 5 ] }; + key { [ Cyrillic_en_descender, Cyrillic_EN_descender, 6 ] }; + key { [ Cyrillic_o_bar, Cyrillic_O_bar, 7 ] }; + key { [ Cyrillic_shha, Cyrillic_SHHA, 8 ] }; + key { [ Cyrillic_zhe_descender, Cyrillic_ZHE_descender, 9 ] }; + key { [ semicolon, colon, 0 ] }; + + key { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] }; + + key { [ Cyrillic_tse, Cyrillic_TSE, dollar ] }; + key { [ Cyrillic_u, Cyrillic_U, EuroSign ] }; + key { [ Cyrillic_ka, Cyrillic_KA, registered ] }; + key { [ Cyrillic_ie, Cyrillic_IE, trademark ] }; + key { [ Cyrillic_ha, Cyrillic_HA, bracketleft ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright ] }; + key { [ Cyrillic_e, Cyrillic_E, apostrophe ] }; + key { [ Cyrillic_es, Cyrillic_ES, copyright ] }; + key { [ Cyrillic_be, Cyrillic_BE, less ] }; + key { [ Cyrillic_yu, Cyrillic_YU, greater ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "dos" { + + include "ru(common)" + name[Group1]= "Russian (DOS)"; + + key { [ parenright, parenleft ] }; + key { [ 4, currency ] }; + key { [ 9, question ] }; + key { [ 0, percent ] }; + + key { [ Cyrillic_io, Cyrillic_IO ] }; +}; + +partial alphanumeric_keys +xkb_symbols "bak" { + + include "ru(winkeys)" + name[Group1]= "Bashkirian"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ 0x010004d9, 0x010004d8, Cyrillic_io, Cyrillic_IO ] }; + key { [ exclam, quotedbl, 1, 1 ] }; + key { [ 0x010004e9, 0x010004e8, 2, 2 ] }; + key { [ 0x010004a1, 0x010004a0, 3, 3 ] }; + key { [ 0x01000493, 0x01000492, 4, 4 ] }; + key { [ 0x010004ab, 0x010004aa, 5, 5 ] }; + key { [ colon, semicolon, 6, 6 ] }; + key { [ 0x01000499, 0x01000498, 7, 7 ] }; + key { [ 0x010004bb, 0x010004ba, 8, 8 ] }; + key { [ question, parenleft, 9, 9 ] }; + key { [ numerosign, parenright, 0, 0 ] }; + key { [ minus, percent, minus, underscore ] }; + key { [ 0x010004af, 0x010004ae, equal, plus ] }; + key { [ 0x010004a3, 0x010004a2, backslash, slash ] }; + + include "level3(ralt_switch)" +}; + +// Serbian characters are added as third-level symbols to Russian keyboard layout. +partial alphanumeric_keys +xkb_symbols "srp" { + + include "ru(common)" + name[Group1]= "Serbian (Russia)"; + + key { [ 3, numerosign ] }; + key { [ 4, semicolon ] }; + key { [ 5, percent ] }; + key { [ 6, colon ] }; + key { [ 7, question ] }; + key { [ 8, asterisk ] }; + key { [ period, comma ] }; + key { [ backslash, slash ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, U458, U408 ] }; + key { [ Cyrillic_en, Cyrillic_EN, U45A, U40A ] }; + key { [ Cyrillic_el, Cyrillic_EL, U459, U409 ] }; + key { [ Cyrillic_de, Cyrillic_DE, U45F, U40F ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, U452, U402 ] }; + key { [ Cyrillic_che, Cyrillic_CHE, U45B, U40B ] }; + + include "level3(ralt_switch)" +}; + +// Mari language layout +// http://www.marlamuter.com/ +// Last edit by Viatcheslav Kileev (slavakileev@yandex.ru) +partial alphanumeric_keys +xkb_symbols "chm" { + + include "ru(winkeys)" + name[Group1]= "Mari"; + + key.type[group1]="FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_a, Cyrillic_A, U04D3, U04D2 ] }; + key { [ Cyrillic_u, Cyrillic_U, U04F1, U04F0 ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU, U04F9, U04F8 ] }; + key { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] }; + key { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "phonetic_azerty" { + + include "level3(ralt_switch)" + + name[Group1]= "Russian (phonetic, AZERTY)"; + + key { [ ampersand, 1, onesuperior, exclamdown ] }; + key { [ eacute, 2, asciitilde, oneeighth ] }; + key { [ quotedbl, 3, numbersign, sterling ] }; + key { [apostrophe, 4, braceleft, dollar ] }; + key { [ parenleft, 5, bracketleft, threeeighths ] }; + key { [ minus, 6, bar, fiveeighths ] }; + key { [ egrave, 7, grave, seveneighths ] }; + key { [underscore, 8, backslash, trademark ] }; + key { [ ccedilla, 9, asciicircum, plusminus ] }; + key { [ agrave, 0, at, degree ] }; + key { [parenright, degree, bracketright, questiondown ] }; + key { [ equal, plus, braceright, dead_ogonek ] }; + + key { [ comma, question, acute, doubleacute ] }; + key { [ semicolon, period, horizconnector, multiply ] }; + key { [ colon, slash, periodcentered, division ] }; + key { [ exclam, section, dead_belowdot, dead_abovedot ] }; + + key { [ ugrave, percent, asciicircum, caron ] }; + key { [ bar, brokenbar ] }; + + key { [ Cyrillic_yu, Cyrillic_YU ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; // Q + key { [ Cyrillic_ze, Cyrillic_ZE ] }; // Z + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; // W + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; // M + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; +}; + +// Russian dvorak phonetic layout +// Oleg Zalizniak +partial alphanumeric_keys +xkb_symbols "phonetic_dvorak" { + include "level3(ralt_switch)" + + name[Group1]= "Russian (phonetic, Dvorak)"; + + key { [ Cyrillic_yu, Cyrillic_YU ] }; + + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, Cyrillic_io ] }; + key { [ 4, Cyrillic_IO ] }; + key { [ 5, Cyrillic_hardsign ] }; + key { [ 6, Cyrillic_HARDSIGN ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + + key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; + key { [ comma, less, dead_cedilla, dead_caron ] }; + key { [ period, greater, dead_abovedot, periodcentered ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ slash, question ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ minus, underscore ] }; + + key { [ semicolon, colon, dead_ogonek, dead_doubleacute ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; +}; + +partial alphanumeric_keys +xkb_symbols "phonetic_fr" { + + include "fr" + include "ru(phonetic_azerty)" + + name[Group1]= "Russian (phonetic, French)"; +}; + +// Rulemak, Colemak based Russian phonetic layout +// contact: Geert Hendrickx +// http://forum.colemak.com/viewtopic.php?id=519 + +partial alphanumeric_keys +xkb_symbols "rulemak" { + include "us(basic)" + + name[Group1]= "Russian (Rulemak, phonetic Colemak)"; + + key { [ Cyrillic_io, Cyrillic_IO, U0300, asciitilde ] }; + key { [ 1, exclam, U0301 ] }; + key { [ 2, at, U030B ] }; + key { [ 3, numerosign, numbersign ] }; + key { [ 4, dollar, cent ] }; + key { [ 5, percent, EuroSign ] }; + key { [ 6, asciicircum, U0306 ] }; + key { [ 7, ampersand, U0307 ] }; + key { [ 8, asterisk, U20BD ] }; + key { [ 9, parenleft, bracketleft ] }; + key { [ 0, parenright, bracketright ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] }; + + key { [ Cyrillic_ya, Cyrillic_YA, q, Q ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, w, W ] }; + key { [ Cyrillic_ef, Cyrillic_EF, f, F ] }; + key { [ Cyrillic_pe, Cyrillic_PE, p, P ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, g, G ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, j, J ] }; + key { [ Cyrillic_el, Cyrillic_EL, l, L ] }; + key { [ Cyrillic_u, Cyrillic_U, u, U ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU, y, Y ] }; + key { [ Cyrillic_yu, Cyrillic_YU, semicolon, colon ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, guillemotleft, braceleft ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, guillemotright, braceright ] }; + key { [ Cyrillic_e, Cyrillic_E, backslash, bar ] }; + + key { [ Cyrillic_a, Cyrillic_A, a, A ] }; + key { [ Cyrillic_er, Cyrillic_ER, r, R ] }; + key { [ Cyrillic_es, Cyrillic_ES, s, S ] }; + key { [ Cyrillic_te, Cyrillic_TE, t, T ] }; + key { [ Cyrillic_de, Cyrillic_DE, d, D ] }; + key { [ Cyrillic_che, Cyrillic_CHE, h, H ] }; + key { [ Cyrillic_en, Cyrillic_EN, n, N ] }; + key { [ Cyrillic_ie, Cyrillic_IE, e, E ] }; + key { [ Cyrillic_i, Cyrillic_I, i, I ] }; + key { [ Cyrillic_o, Cyrillic_O, o, O ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, quotedbl ] }; + + key { [ Cyrillic_ze, Cyrillic_ZE, z, Z ] }; + key { [ Cyrillic_ha, Cyrillic_HA, x, X ] }; + key { [ Cyrillic_tse, Cyrillic_TSE, c, C ] }; + key { [ Cyrillic_ve, Cyrillic_VE, v, V ] }; + key { [ Cyrillic_be, Cyrillic_BE, b, B ] }; + key { [ Cyrillic_ka, Cyrillic_KA, k, K ] }; + key { [ Cyrillic_em, Cyrillic_EM, m, M ] }; + key { [ comma, semicolon, less ] }; + key { [ period, colon, greater ] }; + key { [ slash, question ] }; + + key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; + key { [ U0301, asciitilde, grave ] }; + key { [ space, space, space, nobreakspace ] }; + key { [ Mode_switch, Multi_key ] }; + + include "level3(ralt_switch)" +}; + +// EXTRAS: + +// Church Slavonic language layout +// based on the Russian standard keyboard +// by Aleksandr Andreev and Yuri Shardt +// last changes 2010/08/01; contact +partial alphanumeric_keys +xkb_symbols "chu" { + + name[Group1]= "Church Slavonic"; + + key { [ U0457, U0407, U0482, U20DD ] }; // ї Ї ҂ e.g: а⃝ where the last is a combining ten thousands sign + key { [ U0461, U0460, U047D, U047C ] }; // ѡ Ѡ ѽ Ѽ + key { [ U0454, U0404, U0465, U0464 ] }; // є Є ѥ Ѥ + key { [ U046F, U046E, U0469, U0468 ] }; // ѯ Ѯ ѩ Ѩ + key { [ U0471, U0470, U046D, U046C ] }; // ѱ Ѱ ѭ Ѭ + key { [ U0473, U0472, UA657, UA656 ] }; // ѳ Ѳ iotified A + key { [ U0475, U0474, U0477, U0476 ] }; // ѵ Ѵ ѷ Ѷ + key { [ U047B, U047A, UA64D, UA64C ] }; // ѻ Ѻ ꙍ Ꙍ + key { [ U047F, U047E, U046B, U046A ] }; // ѿ Ѿ ѫ Ѫ + key { [ U0455, U0405,parenleft,U002A ] }; // ѕ Ѕ ( * + key { [Cyrillic_u,Cyrillic_U,parenright,U0488]}; // у У ) NB: for digraph Ouk, use Cyrillic_o + Cyrillic_u + key { [ U0483, U0486, U0487, U005F ] }; // а҃ а҆ а҇, _ (titlo, psili, pokrytie, underscore) + key { [ U0301, U0300, U0484, UA67E ] }; // а̀ а́ а҄ ꙾ (oxia, varia, kamora, kavyka) + + key { [ Cyrillic_shorti, Cyrillic_SHORTI, U0456 ] }; + key { [ Cyrillic_tse, Cyrillic_TSE, U2DF0 ] }; + key { [ UA64B, UA64A, U2DF9 ] }; // Cyrillic monograph Uk (not U)! + key { [ Cyrillic_ka, Cyrillic_KA, U2DE6 ] }; + key { [ Cyrillic_ie, Cyrillic_IE, U2DF7 ] }; + key { [ Cyrillic_en, Cyrillic_EN, U2DE9 ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, U2DE2 ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, U2DF2 ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, U2DF3 ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, U2DE5 ] }; + key { [ Cyrillic_ha, Cyrillic_HA, U2DEF ] }; + key { [Cyrillic_hardsign,Cyrillic_HARDSIGN, UA67D ] }; // Payerok + key { [ backslash, slash, colon, question ] }; // \ / : ? NB: for Slavonic question, use semicolon + + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ve, Cyrillic_VE, U2DE1 ] }; + key { [ Cyrillic_a, Cyrillic_A, U2DF6 ] }; + key { [ Cyrillic_pe, Cyrillic_PE, U2DEB ] }; + key { [ Cyrillic_er, Cyrillic_ER, U2DEC ] }; + key { [ Cyrillic_o, Cyrillic_O, U2DEA ] }; + key { [ Cyrillic_el, Cyrillic_EL, U2DE7 ] }; + key { [ Cyrillic_de, Cyrillic_DE, U2DE3 ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, U2DE4 ] }; + key { [ U0463, U0462, U2DFA ] }; // Yat + + key { [ U0467, U0466, U2DFD ] }; // Small Yus + key { [ Cyrillic_che, Cyrillic_CHE, U2DF1 ] }; + key { [ Cyrillic_es, Cyrillic_ES, U2DED ] }; + key { [ Cyrillic_em, Cyrillic_EM, U2DE8 ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_te, Cyrillic_TE, U2DEE ] }; + key { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE, U2DE0 ] }; + key { [ Cyrillic_yu, Cyrillic_YU, U2DFB ] }; + key { [ period, comma, semicolon, exclam ] }; +}; + + +// RUU (Russian-Ukrainian United keyboard layout). +// This is a modified Russian standard keyboard, with the third level containing +// Ukrainian and Belorusian alphabetic letters and commonly used Unicode symbols. +// For a description see http://wiki.opennet.ru/RUU [in Russian]. +// Vasyĺ V. Vercynśkyj +// last changes 2011/05/11 +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ' ~ │ ! ≈ │ " ∞ │ № ₴ │ ; € │ % ‰ │ : ≤ │ ? ≥ │ * × │ ( { │ ) } │ _ – │ + ± ┃ ⌫ ┃ +// │ ’ ́ │ 1 ÷ │ 2 ¤ │ 3 § │ 4 $ │ 5 ° │ 6 < │ 7 > │ 8 • │ 9 [ │ 0 ] │ - — │ = ≠ ┃Backspace┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ Й │ Ц │ У Ў │ К │ Е Ё │ Н │ Г Ґ │ Ш │ Щ │ З │ Х │ Ъ Ї ┃ Enter ┃ +// ┃ Tab ↹ ┃ й │ ц │ у ў │ к ® │ е ё │ н │ г ґ │ ш │ щ │ з │ х │ ъ ї ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ Caps ┃ Ф │ Ы І │ В │ А │ П │ Р │ О │ Л │ Д │ Ж │ Э Є │ | ¦ ┃ ┃ +// ┃ Lock ⇬ ┃ ф │ ы і │ в │ а │ п │ р │ о │ л │ д │ ж │ э є │ / \ ┃ ┃ +// ┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫ +// ┃ ┃ Я │ Ч │ С │ М │ И │ Т │ Ь │ Б „ │ Ю “ │ , … ┃ ┃ +// ┃ Shift ⇧ ┃ я │ ч │ с © │ м │ и │ т ™ │ ь µ │ б « │ ю » │ . / ┃ Shift ⇧ ┃ +// ┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┃ Ctrl ┃ Meta ┃ Alt ┃ Space ┃AltGr ⇮┃ Menu ┃ Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +partial alphanumeric_keys +xkb_symbols "ruu" { + + include "ru(common)" + name[Group1]= "Russian (with Ukrainian-Belorussian layout)"; + + key { [ U2019, apostrophe, U0301, asciitilde ] }; // Apostrophe and Stress symbol + key { [ 1, exclam, U00F7, U2248 ] }; // Division Sign and Almost Equal To + key { [ 2, quotedbl, currency, infinity ] }; + key { [ 3, numerosign, U00A7, U20B4 ] }; // Paragraph and Hryvnia sign + key { [ 4, semicolon, dollar, EuroSign ] }; + key { [ 5, percent, degree, U2030 ] }; // Per Mille Sign + key { [ 6, colon, less, U2264 ] }; // Less-Than Or Equal To + key { [ 7, question, greater, U2265 ] }; // Greater-Than Or Equal To + key { [ 8, asterisk, enfilledcircbullet, U00D7 ] }; // Multiplication Sign + key { [ 9, parenleft, bracketleft, braceleft ] }; + key { [ 0, parenright, bracketright, braceright ] }; + key { [ minus, underscore, emdash, endash ] }; + key { [ equal, plus, notequal, plusminus ] }; + + key { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] }; + key { [ Cyrillic_ka, Cyrillic_KA, registered ] }; // Registered tm + key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, U00B6 ] }; // Pilcrow Sign + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI ] }; + + key { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_i, Ukrainian_I ] }; + key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] }; + key { [ slash, bar, backslash, U00A6 ] }; // Broken Bar + + key { [ Cyrillic_es, Cyrillic_ES, copyright ] }; + key { [ Cyrillic_te, Cyrillic_TE, trademark ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, U00B5 ] }; // Micro Sign + key { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark ] }; + key { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark ] }; + key { [ period, comma, slash, ellipsis ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/ru(sun_type6)" +}; + +// Apple layout +partial alphanumeric_keys +xkb_symbols "mac" { + + include "ru(common)" + name[Group1]= "Russian (Macintosh)"; + + key { [ less, greater ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numerosign ] }; + key { [ 4, percent ] }; + key { [ 5, colon ] }; + key { [ 6, comma ] }; + key { [ 7, period ] }; + key { [ 8, semicolon ] }; + key { [ bracketright, bracketleft ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; + + key { [ Cyrillic_er, Cyrillic_ER, U20BD ] }; + + include "level3(ralt_switch)" +}; + +// eng: Russian-based polyglot and reactionary keyboard layout +// This keyboard layout covers Russian in Petrine 1708 and Bolshevik 1918 variant spelling, Ukrainian, Belorussian, Serbian in its modern and Slavenoserbian variants, and Bulgarian and Slavomacedonian in pre-1945 and post-1945 spelling, +// in short all in any dominion prevailing Cyrillic orthographies of modern secular Slavic literary languages, even with dictionary accentuation marks, +// but also the most-widespread Church Slavonic spellings, that is all Church-Slavonic in so far as variants can be replaced without loss of meaning – not to speak of Interslavic. +// Furthermore, it suffices Romanian Cyrillic, Moldovan Cyrillic, Abkhazian excluding the more clumsy obsoleted forms unlikely to find devotees, Tajik, all Turkic and Mongolic Cyrillic alphabets +// and virtually all overlooked languages in Cyrillic reigns at least by combining characters, taking advantage of eight key levels. +// This is withal a pan-Cyrillic keyboard layout, or a comprehensive Cyrillic keyboard layout, an universal Cyrillic keyboard layout, a generic Cyrillic keyboard layout. +// +// rus: Многоязыковая и реакціонная клавіатурная разкладка основана на русскихъ +// Сія разкладка покрываетъ русскій въ петровскомъ правописаніи 1708-го года и большевицкомъ 1918-го, украинскій, бѣлорусскій въ современномъ и славяносербскомъ видѣ, и булгарскій и славомацедонскій въ писаніи до и послѣ 1945-го года, +// короче всѣ въ какомъ-либо державствѣ преобладающія правописанія, то есть весь церкославянскій, поскольку какъ разные виды буквъ можно возмѣщать безъ потери значенія — не говоря о междуславянскомъ. +// Свѣрхъ этого, она подходитъ къ румынской кириллицѣ, къ молдавской кириллицѣ, къ абхазскому за изключеніемъ неуклюжихъ устарѣлыхъ образовъ, у которыхъ невѣроятно что они вообще найдутъ поклонниковъ, къ таджикскому, къ всѣмъ тюрксимъ и монголскимъ кириллицамъ, +// и по сути дѣла всѣмъ упущеннымъ языкамъ въ кириллическихъ правленіяхъ хотя бы соединящими сѵмволами, извлѣкая выгоду изъ восьми уровней клавишъ. +// Тѣмъ всѣмъ сё всекириллическая клавіатурная разкладка, или всеобъемлющая кириллическая разкладка, или универсальная кириллическая разкладка клавіатуры. +// +// srp: Многојезиков и реакционаран распоред тастера основан на рускима +// Овај распоред покрива руски у петровском правопису 1708-е године и бољшевичком 1918-е године, украјински, белоруски, српски у сувременом и славеносрпском виду, те бугарски и славомакедонски у писању до и после 1945-е године, +// укратко све у некој држави преовлађујуће правописе, то је читав црквенословенски, пошто је могуће разне видове слова замењивати без губитка значења — не говорећи о меџусловенском. +// Поврх овог, он одговара к румунској ћирилици, к молдавској ћирилици, к абхаскоме с изузетком гломазних застарелих ликова, уз које није вероватно да они најђу поклонике, к таџичкоме, к свим туркијским и монголским ћирилицима, +// те у спровођењу свим испуштеним језицима у ћириличким господарствима бар са спајајућим симболима, искориштавајући осам ступњева тастера. +// Тиме свим ово је свећирилички тастатуран распоред, или свеобухватан ћирилички распоред тастера, или свеопшти ћирилички тастатуран распоред. +partial alphanumeric_keys +xkb_symbols "prxn" { + + name[Group1]= "Russian (Polyglot and Reactionary)"; + + key.type[Group1]="EIGHT_LEVEL"; + key { [ U2019, apostrophe, U0301, U0300, U2053, U2015, U02BC, asciitilde ] }; // Typographic Apostrophe, Apostrophe, Combining Acute, Combining Grave, Swung Dash, Quotation Dash, Modifier Letter Apostrophe, Tilde + key { [ 1, exclam, U0304, U0306, U0308, U0311, U0307, U0313 ] }; // 1, !, Combining Macron, Combining Breve, Combining Diaresis, Combining Inverted Breve, Combining Dot Above, Combining Comma Above + key { [ 2,quotedbl,numerosign, U20BF, U20B8, U20AE, U00A3, U20B9 ] }; // 2 " № ₿ ₸ ₮ £ ₹ + key { [ 3, U00A7, U20B4, currency, U20BD, U20AA, U20BC, U20BE ] }; // 3 § ₴ ¤ ₽ ₪ ₼ ₾ + key { [ 4, semicolon, dollar, EuroSign, U0482, U20DD, U0488, U0489 ] }; // 4 ; $ € Thousands Sign, Combining Enclosing Circle, Combining Hundred Thousands, Combining Millions + key { [ 5, percent, degree, U2030, UA670, UA671, UA672, UA66F ] }; // 5, %, °, ‰, Combinining Ten Millions, Combining Hundred Millions, Combining Thousand Millions, Combining Vzmet + key { [ 6, colon, U0335, U0336, U0483, U0487, UFE2E, UFE2F ] }; // 6, :, Combining Short Stroke Overlay, Combining Long Stroke Overlay, Combining Titlo, Combining Pokrytie, Combining Titlo Left Half, Combining Titlo Right Half + key { [ 7, question, U030B, U030F, U030C, U0303, U032C, U0360 ] }; // 7, ?, Combining Double Acute, Combining Double Grave, Combining Caron/Háček, Combining Tilde, Combining Caron/Háček Below, Combining Double Tilde + key { [ 8, asterisk, U0331, U0332, U0333, U032F, U032D, U032E ] }; // 8, *, Combining Macron Below, Combining Low Line, Combining Double Low Line, Combining Inverted Breve Below, Combining Circumflex Accent, Combining Breve Below + key { [ 9,parenleft, bracketleft, braceleft, U035F, U035D, U035E, U035C ] }; // 9 ( [ { Combining Double Macron Below, Combining Double Breve, Combining Double Macron, Combining Double Breve Below + key { [ 0,parenright,bracketright, braceright, U27E8, U27E9, U04A7, U04A6 ] }; // 0 ) ] } ⟨⟩ ҧ Ҧ + key { [ minus, underscore, emdash, endash, U2011, U00AD, U2010, U2212 ] }; // Hyphen-Minus, Underscore, Em Dash, En Dash, Non-Breaking-Hyphen, Soft Hyphen, Hyphen, Minus Sign + key { [ equal, plus,notequal, U2248, U04FF, U04FE, U050D, U050C ] }; // = + ≠ ≈ ӿ Ӿ ԍ Ԍ + + key { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_je, Cyrillic_JE, U04CF, U04C0, U030A, U0325 ] }; // й Й ј Ј ӏ Ӏ, Combining Ring Above and Below + key { [ Cyrillic_tse, Cyrillic_TSE, U04B5, U04B4, Cyrillic_u_straight, Cyrillic_U_straight, U051B, U051A ] }; // ц Ц ҵ Ҵ ү Ү ԛ Ԛ + key { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU, Cyrillic_u_straight_bar,Cyrillic_U_straight_bar, Byelorussian_shortu, Byelorussian_SHORTU ] }; // у У ў Ў ұ Ұ ў Ў + key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender,Cyrillic_KA_descender, U049F, U049E, U046F, U046E ] }; // к К Қ қ ҟ Ҟ ѯ Ѯ + key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO, U0463, U0462, UA653, UA652 ] }; // е Е ё Ё ѣ Ѣ ꙓ Ꙓ + key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_nje, Cyrillic_NJE, Cyrillic_en_descender, Cyrillic_EN_descender, U04C8, U04C7 ] }; // н Н њ Њ ң Ң ӈ Ӈ + key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn,Ukrainian_GHE_WITH_UPTURN, Cyrillic_ghe_bar, Cyrillic_GHE_bar, U04F7, U04F6 ] }; // г Г Ґ ґ ғ Ғ ӷ Ӷ + key { [ Cyrillic_sha, Cyrillic_SHA, U04A1, U04A0, U04AB, U04AA, UA67D, UA67F ] }; // ш Ш ҡ Ҡ ҫ Ҫ Combining Payerok Payerok + key { [ Cyrillic_shcha, Cyrillic_SHCHA, U0505, U0504, UA68D, UA68C, U050F, U050E ] }; // щ Щ ԅ Ԅ ꚍ Ꚍ ԏ Ԏ + key { [ Cyrillic_ze, Cyrillic_ZE, U04E1, U04E0, U0499, U0498, U0507, U0506 ] }; // з З ӡ Ӡ ҙ Ҙ ԇ Ԇ + key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA, Cyrillic_ha_descender, Cyrillic_HA_descender, U04FD, U04FC ] }; // х Х һ Һ ҳ Ҳ ӽ Ӽ + key { [Cyrillic_hardsign,Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI, Macedonia_dse, Macedonia_DSE, U033E, U2E2F ] }; // ъ Ъ ї Ї ѕ Ѕ, Combining Yerok, Yerok + + key { [ Cyrillic_ef, Cyrillic_EF, U0473, U0472, U04C4, U04C3, U04FB, U04FA ] }; // ф Ф ѳ Ѳ ӄ Ӄ ӻ Ӻ + key { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_i, Ukrainian_I, U04D5, U04D4, U04A9, U04A8 ] }; // ы Ы і І ӕ Ӕ ҩ Ҩ + key { [ Cyrillic_ve, Cyrillic_VE, U051D, U051C, U0529, U0528, U0527, U0526 ] }; // в В ԝ Ԝ ԩ Ԩ ԧ Ԧ + key { [ Cyrillic_a, Cyrillic_A, U04D9, U04D8, UA657, UA656, UA655, UA654 ] }; // а А ә Ә ꙗ Ꙗ ꙕ Ꙕ + key { [ Cyrillic_pe, Cyrillic_PE, U0525, U0524, U0471, U0470, UA65F, UA65E ] }; // п П ԥ Ԥ ѱ Ѱ ꙟ Ꙟ + key { [ Cyrillic_er, Cyrillic_ER, U0481, U0480, U048F, U048E, U0521, U0520 ] }; // р Р ҁ Ҁ ҏ Ҏ ԡ Ԡ + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar, U047B, U047A, U0461, U0460 ] }; // о О ө Ө ѻ Ѻ ѡ Ѡ + key { [ Cyrillic_el, Cyrillic_EL, Cyrillic_lje, Cyrillic_LJE, U04C6, U04C5, U052F, U052E ] }; // л Л љ Љ ӆ Ӆ ԯ Ԯ + key { [ Cyrillic_de, Cyrillic_DE, Cyrillic_dzhe, Cyrillic_DZHE, U04BD, U04BC, U04BF, U04BE ] }; // д Д џ Џ ҽ Ҽ ҿ Ҿ + key { [ Cyrillic_zhe, Cyrillic_ZHE, Serbian_dje, Serbian_DJE, Cyrillic_zhe_descender, Cyrillic_ZHE_descender, U04C2, U04C1 ] }; // ж Ж ђ Ђ Җ җ ӂ Ӂ + key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE, U0465, U0464, U04CA, U04C9 ] }; // э Э є Є ѥ Ѥ ӊ Ӊ + key { [ slash, bar, backslash, U260E, UA65B, UA65A, U0513, U0512 ] }; // / | \ ☎ ꙛ Ꙛ ԓ Ԓ + + key { [ U0495, U0494, U0501, U0500, U0503, U0502, U0509, U0508 ] }; // ҕ Ҕ ԁ Ԁ ԃ Ԃ ԉ Ԉ + key { [ Cyrillic_ya, Cyrillic_YA, U0469, U0468, U0467, U0466, UA657, UA656 ] }; // я Я ѩ Ѩ ѧ Ѧ ꙗ Ꙗ + key { [ Cyrillic_che, Cyrillic_CHE, Serbian_tshe, Serbian_TSHE, U04B7, U04B6, U2016, U00A6 ] }; // ч Ч ћ Ћ ҷ Ҷ ‖ ¦ + key { [ Cyrillic_es, Cyrillic_ES, U046D, U046C, U046B, U046A, U04F7, U04F6 ] }; // с С ѭ Ѭ ѫ Ѫ ӷ Ӷ + key { [ Cyrillic_em, Cyrillic_EM, multiply, U00F7, U22C5, U2219, U04CE, U04CD ] }; // м М × ÷ ⋅ ∙ ӎ Ӎ + key { [ Cyrillic_i, Cyrillic_I, U0475, U0474, U048B, U048A, periodcentered, U261B ] }; // и И ѵ Ѵ ҋ Ҋ · ☛ + key { [ Cyrillic_te, Cyrillic_TE, U04AD, U04AC, U051F, U051E, Cyrillic_che_vertstroke,Cyrillic_CHE_vertstroke]}; // т Т ҭ Ҭ ԟ Ԟ ҹ Ҹ + key { [Cyrillic_softsign,Cyrillic_SOFTSIGN, U04A5, U04A4, UA64F, UA64E, U048D, U048C ] }; // ь Ь ҥ Ҥ ꙏ Ꙏ ҍ Ҍ + key { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark, singlelowquotemark, U2039, U0523, U0522 ] }; // б Б « „ ‚ ‹ ԣ Ԣ + key { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark, leftsinglequotemark, U203A, rightdoublequotemark, rightsinglequotemark]}; // ю Ю » “ ‘ › ” ’ + key { [ period, comma, ellipsis, enfilledcircbullet, U04CC, U04CB, UA649, UA648 ] }; // . , … • ӌ Ӌ ꙉ Ꙉ + +// eng: Maps Right Alt for reaching the third level +// rus: Составляетъ правую Alt для достиженія третьяго уровня +// srp: Саставља десни Alt за достизање трећег ступња + include "level3(ralt_switch)" + +// eng: Maps for reaching the fifth level +// rus: Составляетъ для достиженія пятаго уровня +// srp: Саставља за достизање петег ступња + + include "level5(caps_switch)" + +// eng: Offers pressing both shift keys for capslock +// rus: Предоставляетъ нажатие обѣихъ клавишъ Shift для защелкиванія прописности буквъ +// srp: Ставља на располагање притискивање обију тастера Shift за учвршћивање верзала + include "shift(both_shiftlock)" + +// eng: Makes return comma instead of dot, as the comma is decimal separator in Cyrillic written languages +// rus: Дѣлаетъ что отдаетъ запятую вмѣсто точки, такъ какъ запятая десятичный раздѣлитель въ языкахъ пишемыхъ кириллицей +// srp: Ради да враћа зарез уместо точке, будући да зарез је десетни разделитељ у језицима који се пишу ћирилицом + include "kpdl(comma)" + +// eng: Bug notice: One has to set lv5:rwin_switch_lock or one of the other level 5 locks for the caps switch to work! +// rus: Приходится ставить lv5:rwin_switch_lock либо одинъ изъ другихъ затворовъ пятаго уровня, чтобы работалъ переключатель Caps! +// srp: Потребно да се ставља lv5:rwin_switch_lock или једна из других брава петег ступња, да би шљакао пребацивач Caps! +// https://bugs.freedesktop.org/show_bug.cgi?id=102189 +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/rupeesign b/squashfs-root/usr/share/X11/xkb/symbols/rupeesign new file mode 100644 index 0000000..efde69c --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/rupeesign @@ -0,0 +1,5 @@ +// keyboards having the RupeeSign on the 4 key +partial +xkb_symbols "4" { + key { [ NoSymbol, NoSymbol, U20B9 ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/se b/squashfs-root/usr/share/X11/xkb/symbols/se new file mode 100644 index 0000000..53b4436 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/se @@ -0,0 +1,398 @@ +// based on a keyboard map from an 'xkb/symbols/se' file + +default partial alphanumeric_keys +xkb_symbols "basic" { + include "latin(type2)" + include "se(se)" +}; + +partial alphanumeric_keys +xkb_symbols "se" { + + name[Group1]="Swedish"; + + key { [ 5, percent, EuroSign, cent ] }; + key { [ plus, question, backslash, questiondown ] }; + key { [dead_acute, dead_grave, plusminus, notsign ] }; + + + key { [odiaeresis, Odiaeresis, oslash, Ooblique ] }; + key { [adiaeresis, Adiaeresis, ae, AE ] }; + key { [ section, onehalf, paragraph, threequarters] }; + + key { [apostrophe, asterisk, acute, multiply ] }; + + key { [ space, space, space, nobreakspace ] }; + + key { [ less, greater, bar, brokenbar ] }; + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // Modifies the basic Swedish layout to eliminate all dead keys + + include "latin(type2)" + include "latin(type2_nodeadkeys)" + include "se(se)" + + name[Group1]="Swedish (no dead keys)"; + + key { [ acute, grave, plusminus, notsign ] }; +}; + +// Swedish Dvorak +partial alphanumeric_keys +xkb_symbols "dvorak" { + + include "se(basic)" + + name[Group1]="Swedish (Dvorak)"; + + key { [ aring, Aring, backslash ] }; + key { [ adiaeresis, Adiaeresis, braceleft, bracketleft ] }; + key { [ odiaeresis, Odiaeresis, braceright, bracketright ] }; + key { [ p, P, thorn, THORN ] }; + key { [ y, Y, leftarrow, yen ] }; + key { [ f, F, dstroke, ordfeminine ] }; + key { [ g, G, eng, ENG ] }; + key { [ c, C, copyright, copyright ] }; + key { [ r, R, registered, registered ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ comma, semicolon, dead_cedilla, dead_ogonek ] }; + key { [ dead_diaeresis, dead_circumflex, dead_tilde, asciicircum ] }; + + key { [ a, A, ae, AE ] }; + key { [ o, O, oe, OE ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ u, U, downarrow, uparrow ] }; + key { [ i, I, rightarrow, idotless ] }; + key { [ d, D, eth, ETH ] }; + key { [ h, H, hstroke, Hstroke ] }; + key { [ t, T, tslash, Tslash ] }; + key { [ n, N ] }; + key { [ s, S, ssharp, section ] }; + key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; + + key { [ period, colon, periodcentered, dead_abovedot ] }; + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ j, J ] }; + key { [ k, K, kra, ampersand ] }; + key { [ x, X, guillemotright, greater ] }; + key { [ b, B, rightdoublequotemark, apostrophe ] }; + key { [ m, M, mu, masculine ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ v, V, leftdoublequotemark, grave ] }; + key { [ z, Z, guillemotleft, less ] }; +}; + +// Ivan Popov, 2005-07-17 +// phonetic layout for Russian cyrillic letters +// on Swedish (latin type2) keyboards + +// level3 modifier is a shortcut to the "se" meaning of the keys where +// we place cyrillic letters, handy for accessing the corresponding +// punctuation marks. +// It is important to have access to punctuation marks, and the rest of +// alphabetical keys are added for being consequent so that the users +// can expect the level3 modifier to give what the key label shows. + +partial alphanumeric_keys +xkb_symbols "rus" { + include "se(basic)" + + name[Group1]="Russian (Sweden, phonetic)"; + key.type[group1]="ALPHABETIC"; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; + + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; +}; + +partial alphanumeric_keys +xkb_symbols "rus_nodeadkeys" { + + include "se(nodeadkeys)" + include "se(rus)" + + name[Group1]="Russian (Sweden, phonetic, no dead keys)"; + + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; +}; + +xkb_symbols "smi" { + include "fi(smi)" + name[Group1]= "Northern Saami (Sweden)"; +}; + +// Copied from macintosh_vndr/se +partial alphanumeric_keys +xkb_symbols "mac" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple Swedish(Sweden) keyboard. + + include "latin" + name[Group1]= "Swedish (Macintosh)"; + + key { [ section, degree ] }; + key { [ 1, exclam, copyright, exclamdown ] }; + key { [ 2, quotedbl, at, oneeighth ] }; + key { [ 3, numbersign, sterling, yen ] }; + key { [ 4, currency, dollar, cent ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal ] }; + key { [ plus, question ] }; + key { [ acute, grave ] }; + key { [ aring, Aring ] }; + key { [ diaeresis, asciicircum, asciitilde ] }; + key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; + key { [ adiaeresis, Adiaeresis, ae, AE ] }; + key { [ apostrophe, asterisk, at ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + +// Svdvorak +// This version of Dvorak follows danish and norwegian style in hope for a +// Scandinavian standard. +partial alphanumeric_keys +xkb_symbols "svdvorak" { + + include "se(basic)" + + name[Group1]="Swedish (Svdvorak)"; + + key { [ aring, Aring, braceleft ] }; + key { [ comma, semicolon, bracketleft ] }; + key { [ period, colon, bracketright ] }; + key { [ p, P, braceright ] }; + key { [ y, Y ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ c, C ] }; + key { [ r, R ] }; + key { [ l, L ] }; + key { [ apostrophe, asterisk ] }; + + key { [ a, A ] }; + key { [ o, O, parenleft ] }; + key { [ e, E, parenright ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ d, D ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ n, N ] }; + key { [ s, S, ssharp ] }; + key { [ minus, underscore ] }; + key { [ less, greater, bar ] }; + + key { [ odiaeresis, Odiaeresis ] }; + key { [ adiaeresis, Adiaeresis ] }; + key { [ q, Q ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ x, X ] }; + key { [ b, B ] }; + key { [ m, M ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ z, Z ] }; +}; + +partial alphanumeric_keys +xkb_symbols "swl" { + +// +// Swedish Sign Language +// ISO_639-3 language code: swl +// (called “svenskt teckenspråk” in swedish) +// +// Author: Saašha Metsärantala saasha@acc.umu.se +// +// A sans-serif font is available at +// http://www.acc.umu.se/home/saasha/typsnitt/swl_sans.ttf +// + + include "se(basic)" + + name[Group1]="Swedish Sign Language"; + + key { [ 0x110c925, 0x110c95f, 0x110c940, 0x110c99a ] }; + key { [ 0x110c96b, 0x110c933, 0x110c920, 0x110c98e ] }; + key { [ 0x110c949, 0x110c94b, 0x110c921, 0x110c99f ] }; + key { [ 0x110c923, 0x110c92d, 0x110c95c, 0x110c96e ] }; + key { [ 0x110c93b, 0x110c927, 0x110c908, 0x110c9a6 ] }; + key { [ 0x110c93a, 0x110c94c, 0x110c93e, 0x110c9a7 ] }; + key { [ 0x110c95b, 0x110c93f, 0x110c907, 0x110c992 ] }; + key { [ 0x110c973, 0x110c924, 0x110c93c, 0x110c9a4 ] }; + key { [ 0x110c972, 0x110c945, 0x110c91a, 0x110c99c ] }; + key { [ 0x110c979, 0x110c929, 0x110c916, 0x110c999 ] }; + key { [ 0x110c976, 0x110c975, 0x110c917, 0x110c994 ] }; + key { [ 0x110c95a, 0x110c926, 0x110c918, 0x110c996 ] }; + key { [ 0x110c96f, 0x110c932, 0x110c915, 0x110c998 ] }; + key { [ 0x110c942, 0x110c922, 0x110c913, 0x110c9a2 ] }; + key { [ 0x110c985, 0x110c94e, 0x110c914, 0x110c97a ] }; + key { [ 0x110c928, 0x110c948, 0x110c919, 0x110c9a5 ] }; + key { [ 0x110c970, 0x110c92b, 0x110c905, 0x110c991 ] }; + key { [ 0x110c92e, 0x110c944, 0x110c904, VoidSymbol ] }; + key { [ 0x110c96c, 0x110c92a, 0x110c900, 0x110c9a1 ] }; + key { [ 0x110c971, 0x110c930, 0x110c903, 0x110c99e ] }; + key { [ 0x110c987, 0x110c947, 0x110c90c, 0x110c96d ] }; + key { [ 0x110c986, 0x110c92c, 0x110c91b, 0x110c993 ] }; + key { [ 0x110c939, 0x110c94a, 0x110c911, 0x110c995 ] }; + key { [ 0x110c952, 0x110c943, 0x110c912, 0x110c99b ] }; + key { [ 0x110c978, 0x110c977, 0x110c95e, 0x110c9a3 ] }; + key { [ 0x110c951, 0x110c931, 0x110c91e, 0x110c997 ] }; + key { [ 0x110c90e, 0x110c946, 0x110c906, 0x110c9a0 ] }; + key { [ 0x110c91f, 0x110c961, 0x110c91c, VoidSymbol ] }; + key { [ 0x110c93d, 0x110c92f, 0x110c902, VoidSymbol ] }; + key { [ 0x110c953, 0x110c936, 0x110c988, 0x110c962 ] }; + key { [ 0x110c954, 0x110c957, 0x110c97d, 0x110c963 ] }; + key { [ 0x110c934, 0x110c937, 0x110c97e, 0x110c983 ] }; + key { [ 0x110c955, 0x110c958, 0x110c98a, 0x110c984 ] }; + key { [ 0x110c935, 0x110c938, 0x110c97f, 0x110c966 ] }; + key { [ 0x110c956, 0x110c959, 0x110c980, 0x110c967 ] }; + key { [ 0x110c960, 0x110c969, 0x110c982, 0x110c96a ] }; + key { [ 0x110c97c, 0x110c90b, 0x110c989, 0x110c964 ] }; + key { [ 0x110c97b, 0x110c90a, 0x110c98b, 0x110c965 ] }; + key { [ 0x110c974, 0x110c909, 0x110c98c, 0x110c968 ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/se(sun_type6)" +}; + +partial alphanumeric_keys +xkb_symbols "dvorak_a5" { + + include "se(basic)" + + name[Group1]="Swedish (Dvorak A5)"; + + key { [ dead_acute, dead_grave, plusminus, none ] }; + + key { [ aring, Aring, braceleft, none ] }; + key { [ adiaeresis, Adiaeresis, braceright, none ] }; + key { [ odiaeresis, Odiaeresis, bracketleft, none ] }; + key { [ p, P, bracketright, none ] }; + key { [ y, Y, dollar, none ] }; + key { [ f, F, quotedbl, none ] }; + key { [ g, G, question, none ] }; + key { [ c, C, ampersand, none ] }; + key { [ r, R, less, none ] }; + key { [ l, L, greater, none ] }; + key { [ comma, semicolon, dead_cedilla, none ] }; + key { [ dead_diaeresis, dead_circumflex, dead_tilde, asciicircum ] }; + + key { [ a, A, semicolon, none ] }; + key { [ o, O, slash, none ] }; + key { [ e, E, parenleft, none ] }; + key { [ u, U, parenright, none ] }; + key { [ i, I, bar, none ] }; + key { [ d, D, numbersign, none ] }; + key { [ h, H, asciicircum, none ] }; + key { [ t, T, numbersign, none ] }; + key { [ n, N, quotedbl, none ] }; + key { [ s, S, asciitilde, none ] }; + key { [ minus, underscore, grave, none ] }; + + key { [ period, colon, colon, none ] }; + key { [ q, Q, equal, none ] }; + key { [ j, J, at, none ] }; + key { [ k, K, exclam, none ] }; + key { [ x, X, backslash, none ] }; + key { [ b, B, percent, none ] }; + key { [ m, M, grave, none ] }; + key { [ w, W, lstroke, none ] }; + key { [ v, V, leftdoublequotemark, none ] }; + key { [ z, Z, guillemotleft, none ] }; + + key { [ apostrophe, asterisk, asterisk, none ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "ovd" { + + // Adds combining ogonek (U0328) to the basic Swedish layout to facilitate + // typing of Ą ą Ę ę Į į Ų ų Y̨ y̨ Ą̊ ą̊. + // The character replaces which is considered dispensable + // since ä and ö have their own keys. is still available + // via + Å. + + include "se(basic)" + + name[Group1]="Elfdalian (Swedish, with combining ogonek)"; + + key { [ U0328, dead_circumflex, dead_tilde, dead_caron ] }; +}; + +// us_dvorak +// Author Thomas Lundqvist http://tlundqvist.org/sv_dvorak/ + +partial alphanumeric_keys +xkb_symbols "us_dvorak" { + include "us(dvorak-intl)" + name[Group1]="Swedish (based on US Intl. Dvorak)"; + + key { [ apostrophe, asciitilde, grave, dead_tilde ] }; + key { [ 2, quotedbl, at ] }; + key { [ 6, asciicircum, dead_circumflex ] }; + key { [ aring, Aring, dead_acute ] }; + key { [ minus, underscore, bar, dead_macron ] }; + key { [ adiaeresis, Adiaeresis, dead_grave, dead_ogonek ] }; + key { [ odiaeresis, Odiaeresis, dead_diaeresis, dead_belowdot ] }; + key { [ semicolon, colon, backslash ] }; + + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sgi_vndr/jp b/squashfs-root/usr/share/X11/xkb/symbols/sgi_vndr/jp new file mode 100644 index 0000000..f60c802 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sgi_vndr/jp @@ -0,0 +1,44 @@ +xkb_symbols "jp106" { + + name[group1]="Japan/ASCII"; + + key { [ Zenkaku_Hankaku ] }; + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, ampersand ] }; + key { [ 7, apostrophe ] }; + key { [ 8, parenleft ] }; + key { [ 9, parenright ] }; + key { [ 0, asciitilde ] }; + key { [ minus, equal ] }; + key { [ asciicircum, overbar ] }; + key { [ yen, bar ] }; + + // keys and - are identical to US/ASCII keyboard + key { [ at, grave ] }; + key { [ bracketleft, braceleft ] }; + + key { [ Eisu_Shift, Caps_Lock ] }; + // keys - are identical to US/ASCII keyboard + key { [ semicolon, plus ] }; + key { [ colon, asterisk ] }; + key { [ bracketright, braceright ] }; + + // keys and - are identical to US/ASCII keyboard + key { [ backslash, underscore ] }; + + key { [ Muhenkan ] }; + key { [ Kanji ] }; + key { [ Hiragana_Katakana ] }; +}; + +xkb_symbols "alternate106" { + key { [ 0, overbar ] }; + key { [ asciicircum, asciitilde] }; + key { [ backslash, bar ] }; + key { [ underbar, underscore ] }; + augment "sgi/jp(jp106)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/sl-c3x00 b/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/sl-c3x00 new file mode 100644 index 0000000..3123840 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/sl-c3x00 @@ -0,0 +1,71 @@ +// $NetBSD: sl-c3x00,v 1.1 2009/12/13 04:54:51 nonaka Exp $ +// $OpenBSD: zaurus,v 1.2 2008/03/05 17:24:55 matthieu Exp $ + +partial default alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Sharp SL-C3x00"; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, ampersand ] }; + key { [ 7, apostrophe ] }; + key { [ 8, parenleft ] }; + key { [ 9, parenright ] }; + key { [ 0, asciitilde ] }; + key { type="CTRL+ALT", + symbols[Group1]= [ BackSpace, Terminate_Server ] }; + + key { [ q, Q ] }; + key { [ w, W, asciicircum ] }; + key { [ e, E, equal ] }; + key { [ r, R, plus ] }; + key { [ t, T, bracketleft ] }; + key { [ y, Y, bracketright ] }; + key { [ u, U, braceleft ] }; + key { [ i, I, braceright ] }; + key { [ o, O ] }; + key { [ p, P ] }; + + key { [ Tab, ISO_Left_Tab, Caps_Lock ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D, grave ] }; + key { [ f, F, backslash ] }; + key { [ g, G, semicolon ] }; + key { [ h, H, colon ] }; + key { [ j, J, asterisk ] }; + key { [ k, K, yen ] }; + key { [ l, L, bar ] }; + + key { [ Shift_L ] }; + key { [ z, Z ] }; + key { [ x, X, SunCut ] }; + key { [ c, C, SunCopy ] }; + key { [ v, V, SunPaste ] }; + key { [ b, B, underscore ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ Shift_R ] }; + key { [ Return ] }; + + key { [ ISO_Level3_Shift ] }; + + key { [ Control_L ] }; + key { [ minus, minus, at ] }; + key { [ space ] }; + key { [ comma, slash, less ] }; + key { [ period, question, greater ] }; + + key { [ Up, Up, Prior ] }; + key { [ Left, Left, Home ] }; + key { [ Down, Down, Next ] }; + key { [ Right, Right, End ] }; + + key { [ Escape ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws003sh b/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws003sh new file mode 100644 index 0000000..25a55f1 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws003sh @@ -0,0 +1,70 @@ +// $NetBSD: ws003sh,v 1.1 2010/05/15 15:33:30 nonaka Exp $ + +partial default alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Sharp WS003SH"; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, ampersand ] }; + key { [ 7, apostrophe, grave ] }; + key { [ 8, parenleft, braceleft ] }; + key { [ 9, parenright, braceright ] }; + key { [ 0 ] }; + key { [ minus, equal, backslash ] }; + key { [ BackSpace, BackSpace, Delete ] }; + + key { [ q, Q ] }; + key { [ w, W, asciicircum ] }; + key { [ e, E, asciitilde ] }; + key { [ r, R, bar ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U, bracketleft ] }; + key { [ i, I, bracketright ] }; + key { [ o, O, underscore ] }; + key { [ p, P, at ] }; + + key { [ Tab, Tab, Escape ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K, plus ] }; + key { [ l, L, asterisk ] }; + + key { [ Shift_L ] }; + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, semicolon, less ] }; + key { [ period, colon, greater ] }; + key { [ slash, question ] }; + key { [ Shift_R ] }; + key { [ Return ] }; + + key { [ ISO_Level3_Shift ] }; + + key { [ Control_L ] }; + key { [ space ] }; + + key { [ Up, Up, Prior ] }; + key { [ Left, Left, Home ] }; + key { [ Down, Down, Next ] }; + key { [ Right, Right, End ] }; + + key { [ Escape ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws007sh b/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws007sh new file mode 100644 index 0000000..4dd08af --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws007sh @@ -0,0 +1,70 @@ +// $NetBSD: ws007sh,v 1.1 2010/05/15 15:33:30 nonaka Exp $ + +partial default alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Sharp WS007SH"; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, ampersand ] }; + key { [ 7, apostrophe, grave ] }; + key { [ 8, parenleft, braceleft ] }; + key { [ 9, parenright, braceright ] }; + key { [ 0 ] }; + key { [ minus, equal, backslash ] }; + key { [ BackSpace, BackSpace, Delete ] }; + + key { [ q, Q ] }; + key { [ w, W, asciicircum ] }; + key { [ e, E, asciitilde ] }; + key { [ r, R, bar ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U, bracketleft ] }; + key { [ i, I, bracketright ] }; + key { [ o, O, underscore ] }; + key { [ p, P, at ] }; + + key { [ Tab, Tab, Escape ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K, plus ] }; + key { [ l, L, asterisk ] }; + + key { [ Shift_L ] }; + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, semicolon, less ] }; + key { [ period, colon, greater ] }; + key { [ slash, question ] }; + key { [ Shift_R ] }; + key { [ Return ] }; + + key { [ ISO_Level3_Shift ] }; + + key { [ Control_L ] }; + key { [ space ] }; + + key { [ Up, Up, Prior ] }; + key { [ Left, Left, Home ] }; + key { [ Down, Down, Next ] }; + key { [ Right, Right, End ] }; + + key { [ Escape ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws011sh b/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws011sh new file mode 100644 index 0000000..df230f6 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws011sh @@ -0,0 +1,75 @@ +// $NetBSD: ws011sh,v 1.2 2010/05/30 10:10:20 nonaka Exp $ + +partial default alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Sharp WS011SH"; + + key { + type[Group1] = "THREE_LEVEL", + symbols[Group1] = [ Zenkaku_Hankaku, Zenkaku_Hankaku, exclam ] + }; + + key { [ q, Q, quotedbl ] }; + key { [ w, W, numbersign ] }; + key { [ e, E, dollar ] }; + key { [ r, R, percent ] }; + key { [ t, T, ampersand ] }; + key { [ y, Y, 1 ] }; + key { [ u, U, 2 ] }; + key { [ i, I, 3 ] }; + key { [ o, O, underscore ] }; + key { [ p, P, at ] }; + key { [ BackSpace, BackSpace, Delete ] }; + + key { [ Tab, Tab, Escape ] }; + key { [ a, A, bracketleft ] }; + key { [ s, S, apostrophe ] }; + key { [ d, D, parenleft ] }; + key { [ f, F, parenright ] }; + key { [ g, G, asterisk ] }; + key { [ h, H, 4 ] }; + key { [ j, J, 5 ] }; + key { [ k, K, 6 ] }; + key { [ l, L, plus ] }; + key { [ minus, equal, backslash ] }; + key { [ grave, braceleft, braceright ] }; + + key { [ Shift_L ] }; + key { [ z, Z, bracketright ] }; + key { [ x, X, asciicircum ] }; + key { [ c, C, asciitilde ] }; + key { [ v, V, bar ] }; + key { [ b, B, 7 ] }; + key { [ n, N, 8 ] }; + key { [ m, M, 9 ] }; + key { [ comma, less, semicolon ] }; + key { [ period, greater, colon ] }; + key { [ slash, question, 0 ] }; + key { [ Shift_R ] }; + key { [ Return ] }; + + key { [ ISO_Level3_Shift ] }; + + key { [ Control_L ] }; + key { [ space ] }; + + key { [ Up, Up, Prior ] }; + key { [ Left, Left, Home ] }; + key { [ Down, Down, Next ] }; + key { [ Right, Right, End ] }; + + key { [ Escape ] }; + + key { [ 1 ] }; + key { [ 2 ] }; + key { [ 3 ] }; + key { [ 4 ] }; + key { [ 5 ] }; + key { [ 6 ] }; + key { [ 7 ] }; + key { [ 8 ] }; + key { [ 9 ] }; + key { [ 0 ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws020sh b/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws020sh new file mode 100644 index 0000000..0bde5f0 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sharp_vndr/ws020sh @@ -0,0 +1,64 @@ +// $NetBSD: ws020sh,v 1.1 2010/05/25 13:12:51 nonaka Exp $ + +partial default alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Sharp WS020SH"; + + key { + type[Group1]="THREE_LEVEL", + symbols[Group1]= [ Zenkaku_Hankaku, Zenkaku_Hankaku, exclam ] + }; + + key { [ q, Q, quotedbl ] }; + key { [ w, W, numbersign ] }; + key { [ e, E, dollar ] }; + key { [ r, R, percent ] }; + key { [ t, T, ampersand ] }; + key { [ y, Y, underscore ] }; + key { [ u, U, 1 ] }; + key { [ i, I, 2 ] }; + key { [ o, O, 3 ] }; + key { [ p, P, at ] }; + key { [ BackSpace, BackSpace, Delete ] }; + + key { [ Tab, Tab, Escape ] }; + key { [ a, A, bracketleft ] }; + key { [ s, S, apostrophe ] }; + key { [ d, D, parenleft ] }; + key { [ f, F, parenright ] }; + key { [ g, G, asterisk ] }; + key { [ h, H, 4 ] }; + key { [ j, J, 5 ] }; + key { [ k, K, 6 ] }; + key { [ l, L, plus ] }; + key { [ minus, equal, backslash ] }; + key { [ grave, braceleft, braceright ] }; + + key { [ Shift_L ] }; + key { [ z, Z, bracketright ] }; + key { [ x, X, asciicircum ] }; + key { [ c, C, asciitilde ] }; + key { [ v, V, bar ] }; + key { [ b, B, 7 ] }; + key { [ n, N, 8 ] }; + key { [ m, M, 9 ] }; + key { [ comma, less, semicolon ] }; + key { [ period, greater, colon ] }; + key { [ slash, question, 0 ] }; + key { [ Shift_R ] }; + key { [ Return ] }; + + key { [ ISO_Level3_Shift ] }; + + key { [ Control_L ] }; + key { [ space ] }; + + key { [ Up, Up, Prior ] }; + key { [ Left, Left, Home ] }; + key { [ Down, Down, Next ] }; + key { [ Right, Right, End ] }; + + key { [ Escape ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/shift b/squashfs-root/usr/share/X11/xkb/symbols/shift new file mode 100644 index 0000000..8f90223 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/shift @@ -0,0 +1,87 @@ +// Cancel CapsLock when a Shift key is pressed. +partial modifier_keys +xkb_symbols "breaks_caps" { + key { + type = "ALPHABETIC", + actions [Group1] = [ + SetMods(modifiers=Shift), + SetMods(modifiers=Shift+Lock,clearLocks) + ] + }; + key { + type = "ALPHABETIC", + actions [Group1] = [ + SetMods(modifiers=Shift), + SetMods(modifiers=Shift+Lock,clearLocks) + ] + }; +}; + + +// Toggle CapsLock when pressed together with the other Shift key. +partial modifier_keys +xkb_symbols "lshift_both_capslock" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1] = [ Shift_L, Caps_Lock ] + }; +}; +// Toggle CapsLock when pressed together with the other Shift key. +partial modifier_keys +xkb_symbols "rshift_both_capslock" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1] = [ Shift_R, Caps_Lock ] + }; +}; +partial modifier_keys +xkb_symbols "both_capslock" { + include "shift(lshift_both_capslock)" + include "shift(rshift_both_capslock)" +}; + + +// Set CapsLock when pressed with the other Shift key, release it when pressed alone. +partial modifier_keys +xkb_symbols "lshift_both_capslock_cancel" { + key { + type[Group1]="ALPHABETIC", + symbols[Group1] = [ Shift_L, Caps_Lock ] + }; +}; +// Set CapsLock when pressed with the other Shift key, release it when pressed alone. +partial modifier_keys +xkb_symbols "rshift_both_capslock_cancel" { + key { + type[Group1]="ALPHABETIC", + symbols[Group1] = [ Shift_R, Caps_Lock ] + }; +}; +partial modifier_keys +xkb_symbols "both_capslock_cancel" { + include "shift(lshift_both_capslock_cancel)" + include "shift(rshift_both_capslock_cancel)" +}; + + +// Toggle ShiftLock when pressed together with the other Shift key. +partial modifier_keys +xkb_symbols "lshift_both_shiftlock" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1] = [ Shift_L, Shift_Lock ] + }; +}; +// Toggle ShiftLock when pressed together with the other Shift key. +partial modifier_keys +xkb_symbols "rshift_both_shiftlock" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1] = [ Shift_R, Shift_Lock ] + }; +}; +partial modifier_keys +xkb_symbols "both_shiftlock" { + include "shift(lshift_both_shiftlock)" + include "shift(rshift_both_shiftlock)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/si b/squashfs-root/usr/share/X11/xkb/symbols/si new file mode 100644 index 0000000..f8ea4d4 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/si @@ -0,0 +1,29 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "rs(latin)" + + name[Group1]="Slovenian"; + + key { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; +}; + +partial alphanumeric_keys +xkb_symbols "us" { + + include "rs(latinyz)" + + name[Group1]= "Slovenian (US, with Slovenian letters)"; + + key { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; +}; + +partial alphanumeric_keys +xkb_symbols "alternatequotes" { + + include "rs(latinalternatequotes)" + + name[Group1]= "Slovenian (with guillemets)"; + + key { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sk b/squashfs-root/usr/share/X11/xkb/symbols/sk new file mode 100644 index 0000000..ad03bd0 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sk @@ -0,0 +1,112 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + // This layout conforms to a new Slovak compromise standard + // designed to satisfy most Unix, Windows and Mac users. + // 2001 by Kamil Toman + + include "latin" + name[Group1] = "Slovak"; + + key { [ semicolon, dead_abovering, grave, asciitilde ] }; + key { [ plus, 1, exclam, dead_tilde ] }; + key { [ lcaron, 2, at, dead_caron ] }; + key { [ scaron, 3, numbersign, dead_circumflex ] }; + key { [ ccaron, 4, dollar, dead_breve ] }; + key { [ tcaron, 5, percent, dead_abovering]}; + key { [ zcaron, 6, asciicircum, dead_ogonek ] }; + key { [ yacute, 7, ampersand, dead_grave ] }; + key { [ aacute, 8, asterisk, dead_abovedot] }; + key { [ iacute, 9, braceleft, dead_acute ] }; + key { [ eacute, 0, braceright, dead_doubleacute ] }; + key { [ equal, percent, NoSymbol, dead_diaeresis]}; + key { [dead_acute, dead_caron, dead_macron, dead_cedilla ] }; + + key { [ q, Q, backslash, NoSymbol ] }; + key { [ w, W, bar, Nosymbol ] }; + key { [ e, E, EuroSign, NoSymbol ] }; + key { [ r, R, NoSymbol, NoSymbol ] }; + key { [ t, T, NoSymbol, NoSymbol ] }; + key { [ z, Z, NoSymbol, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol ] }; + key { [ i, I, NoSymbol, NoSymbol ] }; + key { [ o, O, NoSymbol, NoSymbol ] }; + key { [ p, P, NoSymbol, NoSymbol ] }; + + key { [ uacute, slash, bracketleft, division ] }; + key { [adiaeresis, parenleft, bracketright, multiply ] }; + + key { [ a, A, asciitilde, NoSymbol ] }; + key { [ s, S, dstroke, NoSymbol ] }; + key { [ d, D, Dstroke, NoSymbol ] }; + key { [ f, F, bracketleft, NoSymbol ] }; + key { [ g, G, bracketright, NoSymbol ] }; + key { [ h, H, grave, NoSymbol ] }; + key { [ j, J, apostrophe, NoSymbol ] }; + key { [ k, K, lstroke, NoSymbol ] }; + key { [ l, L, Lstroke, NoSymbol ] }; + + key { [ocircumflex, quotedbl, dollar, NoSymbol ] }; + key { [ section, exclam, apostrophe, ssharp ] }; + key { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] }; + key { [ ncaron, parenright, backslash, bar ] }; + + key { [ backslash, bar, slash, NoSymbol ] }; + key { [ y, Y, degree, NoSymbol ] }; + key { [ x, X, numbersign, Nosymbol ] }; + key { [ c, C, ampersand, NoSymbol ] }; + key { [ v, V, at, NoSymbol ] }; + key { [ b, B, braceleft, NoSymbol ] }; + key { [ n, N, braceright, NoSymbol ] }; + key { [ m, M, asciicircum, NoSymbol ] }; + key { [ comma, question, less, NoSymbol ] }; + key { [ period, colon, greater, NoSymbol ] }; + key { [ minus, underscore, asterisk, NoSymbol ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + +xkb_symbols "bksl" { + + // Use instead of (useful for keyboards without key). + + include "sk(basic)" + name[Group1] = "Slovak (extended backslash)"; + + key { [ backslash, bar, slash, parenright ] }; + key { [ backslash, parenleft, slash, NoSymbol ] }; +}; + +partial alphanumeric_keys +xkb_symbols "qwerty" { + + // This layout works exactly as the basic Slovak one with the exception + // of the 'Z' and 'Y' keys, which are in Qwerty style (i.e. swapped). + // 2001 by Kamil Toman + + include "sk(basic)" + name[Group1] = "Slovak (QWERTY)"; + + key { [ z, Z, degree, NoSymbol ] }; + key { [ y, Y, NoSymbol, NoSymbol ] }; +}; + +xkb_symbols "qwerty_bksl" { + + // Use instead of (useful for keyboards without key). + + include "sk(qwerty)" + name[Group1] = "Slovak (QWERTY, extended backslash)"; + + key { [ backslash, bar, slash, parenright ] }; + key { [ backslash, parenleft, slash, NoSymbol ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/sk(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sn b/squashfs-root/usr/share/X11/xkb/symbols/sn new file mode 100644 index 0000000..47c093b --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sn @@ -0,0 +1,42 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin" + + name[Group1]="Wolof"; + + key { [ ampersand, 1, bar, NoSymbol ] }; + key { [ eacute, 2, asciitilde, Eacute ] }; + key { [ quotedbl, 3, numbersign, cedilla ] }; + key { [apostrophe, 4, braceleft, acute ] }; + key { [ parenleft, 5, bracketleft, diaeresis ] }; + key { [ minus, 6, bar, brokenbar ] }; + key { [ egrave, 7, dead_grave, Egrave ] }; + key { [underscore, 8, backslash, macron ] }; + key { [ ccedilla, 9, asciicircum, Ccedilla ] }; + key { [ agrave, 0, at, Agrave ] }; + key { [parenright, degree, bracketright, ydiaeresis ] }; + key { [ equal, plus, braceright,threequarters ] }; + + key { [ a, A, ae, AE ] }; + key { [ z, Z, guillemotleft, less ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ eng, ENG, bracketleft, bracketright ] }; + key { [ dollar, sterling, currency, ecircumflex ] }; + + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ m, M, mu, masculine ] }; + key { [ ntilde, Ntilde, acute, dead_acute ] }; + key { [twosuperior, percent, notsign, notsign ] }; + + key { [ mu, sterling, grave, dead_grave ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ comma, question, questiondown, NoSymbol ] }; + key { [ semicolon, period, horizconnector, multiply ] }; + key { [ colon, slash, periodcentered, division ] }; + key { [ exclam, section, exclamdown, NoSymbol ] }; + + key { [ less, greater, bar, NoSymbol ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sony_vndr/us b/squashfs-root/usr/share/X11/xkb/symbols/sony_vndr/us new file mode 100644 index 0000000..69102bf --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sony_vndr/us @@ -0,0 +1,89 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +// US/ASCII layout for a nwp5461 keyboard +xkb_symbols "nwp5461" { + include "us(basic)" + + key { [ Alt_L, Meta_L ] }; + key { [ Shift_R ] }; + key { [ NoSymbol ] }; + + // Begin "Function" section + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + key { [ F11 ] }; + key { [ F12 ] }; + key { [ Help ] }; + key { [ Cancel ] }; + key { [ Select ] }; + key { [ Execute ] }; + key { [ Delete ] }; + key { [ Left ] }; + key { [ Right ] }; + key { [ Up ] }; + key { [ Down ] }; + key { [ Prior ] }; + key { [ Next ] }; + key { [ Insert ] }; + key { [ Clear ] }; + // End "Function" section + + // Begin "Keypad" section + key { [ KP_Multiply ] }; + key { [ KP_Divide ] }; + key { [ KP_Add ] }; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + key { [ KP_Subtract ] }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + key { [ KP_Separator ] }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + key { [ KP_Enter ] }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; + key { [ KP_Tab ] }; + // End "Keypad" section + + modifier_map Shift { Shift_R }; + modifier_map Mod3 { Alt_L }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/srvr_ctrl b/squashfs-root/usr/share/X11/xkb/symbols/srvr_ctrl new file mode 100644 index 0000000..902c51c --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/srvr_ctrl @@ -0,0 +1,110 @@ +// Actions which control the server's behavior. + +partial keypad_keys function_keys +xkb_symbols "xfree86" { + include "keypad(operators)" + include "srvr_ctrl(fkey2vt)" +}; + +partial function_keys +xkb_symbols "fkey2vt" { + + key { + type="CTRL+ALT", + symbols[Group1]= [ F1, F1, F1, F1, XF86_Switch_VT_1 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F2, F2, F2, F2, XF86_Switch_VT_2 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F3, F3, F3, F3, XF86_Switch_VT_3 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F4, F4, F4, F4, XF86_Switch_VT_4 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F5, F5, F5, F5, XF86_Switch_VT_5 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F6, F6, F6, F6, XF86_Switch_VT_6 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F7, F7, F7, F7, XF86_Switch_VT_7 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F8, F8, F8, F8, XF86_Switch_VT_8 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F9, F9, F9, F9, XF86_Switch_VT_9 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F10, F10, F10, F10, XF86_Switch_VT_10 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F11, F11, F11, F11, XF86_Switch_VT_11 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F12, F12, F12, F12, XF86_Switch_VT_12 ] + }; +}; + +partial function_keys keypad_keys +xkb_symbols "no_srvr_keys" { + + key.type="TWO_LEVEL"; + + key { [ F1, F1 ] }; + key { [ F2, F2 ] }; + key { [ F3, F3 ] }; + key { [ F4, F4 ] }; + key { [ F5, F5 ] }; + key { [ F6, F6 ] }; + key { [ F7, F7 ] }; + key { [ F8, F8 ] }; + key { [ F9, F9 ] }; + key { [ F10, F10 ] }; + key { [ F11, F11 ] }; + key { [ F12, F12 ] }; + + key { [ KP_Divide, KP_Divide ] }; + key { [ KP_Multiply, KP_Multiply ] }; + key { [ KP_Subtract, KP_Subtract ] }; + key { [ KP_Add, KP_Add ] }; +}; + +partial function_keys +xkb_symbols "grab_debug" { + + key { + type="CTRL+ALT", + symbols[Group1]= [ F11, F11, F11, F11, XF86LogGrabInfo ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F12, F12, F12, F12, XF86LogWindowTree ] + }; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ara b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ara new file mode 100644 index 0000000..53ad917 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ara @@ -0,0 +1,131 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +default partial alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]= "Arabic (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ Arabic_thal, Arabic_shadda, grave, asciitilde ] }; + key { [ 0x1000661, exclam, 1, exclam ] }; + key { [ 0x1000662, at, 2, at ] }; + key { [ 0x1000663, numbersign, 3, numbersign ] }; + key { [ 0x1000664, dollar, 4, dollar ] }; + key { [ 0x1000665, percent, 5, percent ] }; + key { [ 0x1000666, asciicircum, 6, asciicircum ] }; + key { [ 0x1000667, ampersand, 7, ampersand ] }; + key { [ 0x1000668, asterisk, 8, asterisk ] }; + key { [ 0x1000669, parenright, 9, parenright ] }; + key { [ 0x1000660, parenleft, 0, parenleft ] }; + key { [ minus, underscore, minus, underscore ] }; + key { [ equal, plus, equal, plus ] }; + + key { [ Arabic_dad, Arabic_fatha, q, Q ] }; + key { [ Arabic_sad, Arabic_fathatan, w, W ] }; + key { [ Arabic_theh, Arabic_damma, e, E ] }; + key { [ Arabic_qaf, Arabic_dammatan, r, R ] }; + key { [ Arabic_feh, 0x100fef9, t, T ] }; + key { [ Arabic_ghain, Arabic_hamzaunderalef, y, Y ] }; + key { [ Arabic_ain, grave, u, U ] }; + key { [ Arabic_ha, division, i, I ] }; + key { [ Arabic_khah, multiply, o, O ] }; + key { [ Arabic_hah, Arabic_semicolon, p, P ] }; + key { [ Arabic_jeem, greater, bracketleft, braceleft ] }; + key { [ Arabic_dal, less, bracketright, braceright ] }; + + key { [ Arabic_sheen, Arabic_kasra, a, A ] }; + key { [ Arabic_seen, Arabic_kasratan, s, S ] }; + key { [ Arabic_yeh, bracketright, d, D ] }; + key { [ Arabic_beh, bracketleft, f, F ] }; + key { [ Arabic_lam, 0x100fef7, g, G ] }; + key { [ Arabic_alef, Arabic_hamzaonalef, h, H ] }; + key { [ Arabic_teh, Arabic_tatweel, j, J ] }; + key { [ Arabic_noon, Arabic_comma, k, K ] }; + key { [ Arabic_meem, slash, l, L ] }; + key { [ Arabic_kaf, colon, semicolon, colon ] }; + key { [ Arabic_tah, quotedbl, apostrophe, quotedbl ] }; + key { [ backslash, bar, backslash, bar ] }; + + key { [ bar, brokenbar, bar, brokenbar ] }; + key { [ Arabic_hamzaonyeh, asciitilde, z, Z ] }; + key { [ Arabic_hamza, Arabic_sukun, x, X ] }; + key { [ Arabic_hamzaonwaw, braceright, c, C ] }; + key { [ Arabic_ra, braceleft, v, V ] }; + key { [ 0x100fefb, 0x100fef5, b, B ] }; + key { [ Arabic_alefmaksura, Arabic_maddaonalef, n, N ] }; + key { [ Arabic_tehmarbuta, apostrophe, m, M ] }; + key { [ Arabic_waw, comma, comma, less ] }; + key { [ Arabic_zain, period, period, greater ] }; + key { [ Arabic_zah, Arabic_question_mark, slash, question ] }; + + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/ara(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "qwerty" { + include "ara(qwerty)" +}; + +partial alphanumeric_keys + xkb_symbols "azerty" { + include "ara(azerty)" +}; + +partial alphanumeric_keys + xkb_symbols "digits" { + include "ara(digits)" +}; + +partial alphanumeric_keys + xkb_symbols "qwerty_digits" { + include "ara(qwerty_digits)" +}; + +partial alphanumeric_keys + xkb_symbols "azerty_digits" { + include "ara(azerty_digits)" +}; + +partial alphanumeric_keys + xkb_symbols "buckwalter" { + include "ara(buckwalter)" +}; + +partial alphanumeric_keys + xkb_symbols "olpc" { + include "ara(olpc)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/be b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/be new file mode 100644 index 0000000..5d66f34 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/be @@ -0,0 +1,127 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Belgium (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [twosuperior, threesuperior ] }; + key { [ ampersand, 1, bar ] }; + key { [ eacute, 2, at ] }; + key { [ quotedbl, 3, numbersign ] }; + key { [apostrophe, 4 ] }; + key { [ parenleft, 5 ] }; + key { [ section, 6, asciicircum ] }; + key { [ egrave, 7 ] }; + key { [ exclam, 8 ] }; + key { [ ccedilla, 9, braceleft ] }; + key { [ agrave, 0, braceright ] }; + key { [parenright, degree ] }; + key { [ minus, underscore ] }; + + key { [ a, A ] }; + key { [ z, Z ] }; + key { [ e, E, EuroSign ] }; + key { [ o, O ] }; + key { [dead_circumflex, dead_diaeresis, bracketleft ] }; + key { [ dollar, asterisk, bracketright ] }; + + key { [ q, Q ] }; + key { [ m, M ] }; + key { [ ugrave, percent, dead_acute ] }; + key { [ mu, sterling, dead_grave ] }; + + key { [ less, greater, backslash ] }; + key { [ w, W ] }; + key { [ comma, question ] }; + key { [ semicolon, period ] }; + key { [ colon, slash ] }; + key { [ equal, plus, dead_tilde ] }; + + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/be(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "oss" { + include "be(oss)" +}; + +partial alphanumeric_keys + xkb_symbols "oss_frbe" { + include "be(oss_frbe)" +}; + +partial alphanumeric_keys + xkb_symbols "oss_latin9" { + include "be(oss_latin9)" +}; + +partial alphanumeric_keys + xkb_symbols "oss_Sundeadkeys" { + include "be(oss_Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "oss_sundeadkeys" { + include "be(oss_sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "iso-alternate" { + include "be(iso-alternate)" +}; + +partial alphanumeric_keys + xkb_symbols "sundeadkeys" { + include "be(sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "Sundeadkeys" { + include "be(Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "be(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "wang" { + include "be(wang)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/br b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/br new file mode 100644 index 0000000..3651f9c --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/br @@ -0,0 +1,121 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]= "Portuguese (Brazil, Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ apostrophe, quotedbl, notsign ] }; + key { [ 1, exclam, onesuperior, exclamdown ] }; + key { [ 2, at, twosuperior, onehalf ] }; + key { [ 3, numbersign, threesuperior, threequarters ] }; + key { [ 4, dollar, sterling, onequarter ] }; + key { [ 5, percent, cent ] }; + key { [ 6, dead_diaeresis, notsign, diaeresis ] }; + key { [ 7, ampersand, braceleft ] }; + key { [ 8, asterisk, bracketleft ] }; + key { [ 9, parenleft, bracketright ] }; + key { [ 0, parenright, braceright ] }; + key { [ minus, underscore, backslash ] }; + key { [ equal, plus, section ] }; + + key { [ e, E, EuroSign ] }; + key { [ r, R, registered ] }; + key { [ dead_acute, dead_grave, acute, grave ] }; + key { [ bracketleft, braceleft, ordfeminine ] }; + + key { [ ccedilla, Ccedilla, exclamdown ] }; + key { [ dead_tilde, dead_circumflex, asciitilde, asciicircum ] }; + key { [ bracketright, braceright, masculine ] }; + key { [ bracketright, braceright, masculine ] }; + + key { [ slash, bar, degree ] }; + key { [ z, Z, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ c, C, copyright ] }; + key { [ m, M, mu ] }; + key { [ comma, less, question ] }; + key { [ period, greater, questiondown ] }; + key { [ semicolon, colon ] }; + key { [ slash, question, degree, questiondown ] }; + + key { [ KP_Decimal ] }; + key { [ KP_Delete, comma ] }; + + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/br(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "abnt2" { + include "br(abnt2)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "br(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "thinkpad" { + include "br(thinkpad)" +}; + +partial alphanumeric_keys + xkb_symbols "olpc" { + include "br(olpc)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "br(dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "nativo" { + include "br(nativo)" +}; + +partial alphanumeric_keys + xkb_symbols "nativo-us" { + include "br(nativo-us)" +}; + +partial alphanumeric_keys + xkb_symbols "nativo-epo" { + include "br(nativo-epo)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ca b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ca new file mode 100644 index 0000000..7e5a666 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ca @@ -0,0 +1,132 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Multilingual (Canada, Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ slash, bar, backslash ]}; + key { [ 1, exclam, plusminus ]}; + key { [ 2, at ]}; + key { [ 3, numbersign, sterling ]}; + key { [ 4, dollar, cent ]}; + key { [ 5, percent, currency ]}; + key { [ 6, question, notsign ]}; + key { [ 7, ampersand, braceleft ]}; + key { [ 8, asterisk, braceright ]}; + key { [ 9, parenleft, bracketleft ]}; + key { [ 0, parenright, bracketright ]}; + key { [ minus, underscore, onehalf ]}; + key { [ equal, plus, notsign ]}; + + key { [ e, E, EuroSign ]}; + key { [ o, O, section ]}; + key { [ p, P, paragraph ]}; + key { [ dead_circumflex, dead_diaeresis, dead_grave ]}; + key { [ ccedilla, Ccedilla, asciitilde ]}; + + key { [ semicolon, colon, degree ]}; + key { [ egrave, Egrave, braceleft ]}; + key { [ agrave, Agrave, braceright ]}; + key { [ agrave, Agrave, braceright ]}; + + key { [ uacute, Uacute ]}; + key { [ z, Z, guillemotleft ]}; + key { [ x, X, guillemotright ]}; + key { [ m, M, mu ]}; + key { [ comma, apostrophe, less ]}; + key { [ period, quotedbl, greater ]}; + key { [ eacute, Eacute, grave ]}; + + include "level3(ralt_switch)" + +}; + +alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/ca(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "fr" { + include "ca(fr)" +}; + +partial alphanumeric_keys + xkb_symbols "fr-dvorak" { + include "ca(fr-dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "fr-legacy" { + include "ca(fr-legacy)" +}; + +partial alphanumeric_keys + xkb_symbols "multi" { + include "ca(multi)" +}; + +partial alphanumeric_keys + xkb_symbols "multi-2gr" { + include "ca(multi-2gr)" +}; + +partial alphanumeric_keys + xkb_symbols "ike" { + include "ca(ike)" +}; + +partial alphanumeric_keys + xkb_symbols "multix" { + include "ca(multix)" +}; + +partial alphanumeric_keys + xkb_symbols "olpc" { + include "ca(olpc)" +}; + +partial alphanumeric_keys + xkb_symbols "eng" { + include "ca(eng)" +}; + +partial alphanumeric_keys + xkb_symbols "kut" { + include "ca(kut)" +}; + +partial alphanumeric_keys + xkb_symbols "shs" { + include "ca(shs)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ch b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ch new file mode 100644 index 0000000..b75c148 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ch @@ -0,0 +1,168 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6_de" { + + name[Group1]= "German (Switzerland, Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ section, degree ] }; + key { [ 1, plus, bar ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, asterisk, numbersign ] }; + key { [ 4, ccedilla, asciicircum ] }; + key { [ 5, percent, asciitilde ] }; + key { [ 6, ampersand, notsign ] }; + key { [ 7, slash, brokenbar ] }; + key { [ 8, parenleft, cent ] }; + key { [ 9, parenright ] }; + key { [ 0, equal, grave ] }; + key { [ apostrophe, question, dead_acute ] }; + key { [ dead_circumflex, dead_grave, dead_tilde ] }; + + key { [ e, E, EuroSign ] }; + key { [ z, Z ] }; + key { [ udiaeresis, egrave, bracketleft ] }; + key { [ dead_diaeresis, exclam, bracketright ] }; + + key { [ odiaeresis, eacute ] }; + key { [ adiaeresis, agrave, braceleft ] }; + key { [ dollar, sterling, braceright ] }; + + key { [ less, greater, backslash ] }; + key { [ y, Y ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys +xkb_symbols "sun_type6_fr" { + + name[Group1]= "French (Switzerland, Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ section, degree ] }; + key { [ 1, plus, bar ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, asterisk, numbersign ] }; + key { [ 4, ccedilla, asciicircum ] }; + key { [ 5, percent, asciitilde ] }; + key { [ 6, ampersand, notsign ] }; + key { [ 7, slash, brokenbar ] }; + key { [ 8, parenleft, cent ] }; + key { [ 9, parenright ] }; + key { [ 0, equal, grave ] }; + key { [ apostrophe, question, dead_acute ] }; + key { [ dead_circumflex, dead_grave, dead_tilde ] }; + + key { [ e, E, EuroSign ] }; + key { [ z, Z ] }; + key { [ egrave, udiaeresis, bracketleft ] }; + key { [ dead_diaeresis, exclam, bracketright ] }; + + key { [ eacute, odiaeresis ] }; + key { [ agrave, adiaeresis, braceleft ] }; + key { [ dollar, sterling, braceright ] }; + + key { [ less, greater, backslash ] }; + key { [ y, Y ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/ch(sun_type6_de)" +}; + +partial alphanumeric_keys + xkb_symbols "legacy" { + include "ch(legacy)" +}; + +partial alphanumeric_keys + xkb_symbols "de" { + include "ch(de)" +}; + +partial alphanumeric_keys + xkb_symbols "de_Sundeadkeys" { + include "ch(de_Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "de_sundeadkeys" { + include "ch(de_sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "de_nodeadkeys" { + include "ch(de_nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "fr" { + include "ch(fr)" +}; + +partial alphanumeric_keys + xkb_symbols "fr_Sundeadkeys" { + include "ch(fr_Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "fr_sundeadkeys" { + include "ch(fr_sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "fr_nodeadkeys" { + include "ch(fr_nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "de_mac" { + include "ch(de_mac)" +}; + +partial alphanumeric_keys + xkb_symbols "fr_mac" { + include "ch(fr_mac)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/cz b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/cz new file mode 100644 index 0000000..41fa9a9 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/cz @@ -0,0 +1,111 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Czech (Sun Type 6/7"; + + include "sun_vndr/us(sun_type6)" + + key { [ semicolon, dead_abovering, grave, asciitilde ] }; + key { [ plus, 1, exclam, asciitilde ] }; + key { [ ecaron, 2, at, dead_caron ] }; + key { [ scaron, 3, numbersign, dead_circumflex ] }; + key { [ ccaron, 4, dollar, dead_breve ] }; + key { [ rcaron, 5, percent, dead_abovering ] }; + key { [ zcaron, 6, asciicircum, dead_ogonek ] }; + key { [ yacute, 7, ampersand, grave ] }; + key { [ aacute, 8, asterisk, dead_abovedot ] }; + key { [ iacute, 9, parenleft, dead_acute ] }; + key { [ eacute, 0, parenright, dead_doubleacute ] }; + key { [ equal, percent, dead_diaeresis, backslash ] }; + key { [ dead_acute, dead_caron, dead_cedilla, minus ] }; + + key { [ q, Q, backslash ] }; + key { [ w, W, bar ] }; + key { [ e, E, EuroSign ] }; + key { [ z, Z ] }; + key { [ uacute, slash, division ] }; + key { [parenright, parenleft, multiply ] }; + + key { [ s, S, dstroke ] }; + key { [ d, D, Dstroke ] }; + key { [ f, F, bracketleft ] }; + key { [ g, G, bracketright ] }; + key { [ k, K, lstroke ] }; + key { [ l, L, Lstroke ] }; + key { [ uring, quotedbl, dollar ] }; + key { [ section, exclam, ssharp, currency ] }; + key { [ dead_diaeresis, apostrophe, backslash, bar ] }; + + key { [ backslash, asterisk, slash, brokenbar ] }; + key { [ y, Y, less ] }; + key { [ x, X, greater, numbersign ] }; + key { [ v, V, at ] }; + key { [ b, B, braceleft ] }; + key { [ n, N, braceright ] }; + key { [ comma, question, less ] }; + key { [ period, colon, greater ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/cz(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "bksl" { + include "cz(bksl)" +}; + +partial alphanumeric_keys + xkb_symbols "qwerty" { + include "cz(qwerty)" +}; + +partial alphanumeric_keys + xkb_symbols "qwerty_bksl" { + include "cz(qwerty_bksl)" +}; + +partial alphanumeric_keys + xkb_symbols "ucw" { + include "cz(ucw)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak-ucw" { + include "cz(dvorak-ucw)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/de b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/de new file mode 100644 index 0000000..d95b079 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/de @@ -0,0 +1,181 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="German (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ asciicircum, degree ] }; + key { [ 2, quotedbl, twosuperior ] }; + key { [ 3, section, threesuperior ] }; + key { [ 4, dollar ] }; + key { [ 6, ampersand, section ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ ssharp, question, backslash ] }; + key { [ dead_acute, dead_grave ] }; + key { [ q, Q, at ] }; + key { [ e, E, EuroSign ] }; + key { [ z, Z ] }; + key { [ udiaeresis, Udiaeresis ] }; + key { [ plus, asterisk, asciitilde ] }; + key { [ odiaeresis, Odiaeresis ] }; + key { [ adiaeresis, Adiaeresis ] }; + key { [ y, Y ] }; + key { [ m, M, mu ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + key { [ numbersign, apostrophe, grave ] }; + key { [ less, greater, bar ] }; + + include "level3(ralt_switch)" + include "kpdl(comma)" + +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/de(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "legacy" { + include "de(legacy)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "de(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "deadgraveacute" { + include "de(deadgraveacute)" +}; + +partial alphanumeric_keys + xkb_symbols "deadacute" { + include "de(deadacute)" +}; + +partial alphanumeric_keys + xkb_symbols "ro" { + include "de(ro)" +}; + +partial alphanumeric_keys + xkb_symbols "ro_nodeadkeys" { + include "de(ro_nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "de(dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "Sundeadkeys" { + include "de(Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "sundeadkeys" { + include "de(sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "neo_base" { + include "de(neo_base)" +}; + +partial alphanumeric_keys + xkb_symbols "adnw" { + include "de(adnw)" +}; + +partial alphanumeric_keys + xkb_symbols "adnw_base" { + include "de(adnw_base)" +}; + +partial alphanumeric_keys + xkb_symbols "neo" { + include "de(neo)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "de(mac)" +}; + +partial alphanumeric_keys + xkb_symbols "mac_nodeadkeys" { + include "de(mac_nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "dsb" { + include "de(dsb)" +}; + +partial alphanumeric_keys + xkb_symbols "dsb_qwertz" { + include "de(dsb_qwertz)" +}; + +partial alphanumeric_keys + xkb_symbols "qwerty" { + include "de(qwerty)" +}; + +partial alphanumeric_keys + xkb_symbols "ru" { + include "de(ru)" +}; + +partial alphanumeric_keys + xkb_symbols "htcdream" { + include "de(htcdream)" +}; + +partial alphanumeric_keys + xkb_symbols "us" { + include "de(us)" +}; + +partial alphanumeric_keys + xkb_symbols "hu" { + include "de(hu)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/dk b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/dk new file mode 100644 index 0000000..9975486 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/dk @@ -0,0 +1,88 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Danish (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ onehalf, section ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numbersign, sterling ] }; + key { [ 4, currency, dollar ] }; + key { [ 5, percent, asciitilde ] }; + key { [ 6, ampersand, asciicircum ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ plus, question ] }; + key { [ dead_acute, dead_grave, bar ] }; + key { [ e, E, EuroSign ] }; + key { [ aring, Aring ] }; + key { [ dead_diaeresis, dead_circumflex, dead_tilde ] }; + key { [ apostrophe, asterisk, grave ] }; + key { [ ae, AE ] }; + key { [ oslash, Ooblique ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + key { [ less, greater, backslash ] }; + + include "level3(ralt_switch)" + include "kpdl(comma)" + +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/dk(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "dk(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "dk(mac)" +}; + +partial alphanumeric_keys + xkb_symbols "mac_nodeadkeys" { + include "dk(mac_nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "dk(dvorak)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ee b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ee new file mode 100644 index 0000000..6f81133 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ee @@ -0,0 +1,111 @@ +// +// Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Estonian (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ dead_caron, dead_tilde, notsign, notsign ] }; + key { [ 1, exclam, onesuperior, exclamdown ] }; + key { [ 2, quotedbl, at, oneeighth ] }; + key { [ 3, numbersign, sterling, sterling ] }; + key { [ 4, currency, dollar, dollar ] }; + key { [ 5, percent, onehalf, threeeighths ] }; + key { [ 6, ampersand, notsign, fiveeighths ] }; + key { [ 7, slash, braceleft, seveneighths ] }; + key { [ 8, parenleft, bracketleft, trademark ] }; + key { [ 9, parenright, bracketright, plusminus ] }; + key { [ 0, equal, braceright, degree ] }; + key { [ plus, question, backslash, questiondown ] }; + key { [ dead_acute, dead_grave, grave, apostrophe ] }; + + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ r, R, paragraph, registered ] }; + key { [ t, T, tslash, Tslash ] }; + key { [ y, Y, leftarrow, yen ] }; + key { [ u, U, downarrow, uparrow ] }; + key { [ i, I, rightarrow, idotless ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, thorn, THORN ] }; + key { [ udiaeresis, Udiaeresis, dead_diaeresis,dead_abovering ] }; + key { [ otilde, Otilde, section, dead_macron ] }; + + key { [ a, A, ae, AE ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, dstroke, ordfeminine ] }; + key { [ g, G, eng, ENG ] }; + key { [ h, H, hstroke, Hstroke ] }; + key { [ j, J, j, J ] }; + key { [ k, K, kra, ampersand ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ odiaeresis, Odiaeresis, dead_acute, dead_doubleacute ] }; + key { [ adiaeresis, Adiaeresis, asciicircum, dead_caron ] }; + key { [ backslash, bar, degree, brokenbar ] }; + + key { [ apostrophe, asterisk, onehalf, dead_breve ] }; + key { [ z, Z, zcaron, Zcaron ] }; + key { [ x, X, guillemotright, greater ] }; + key { [ c, C, cent, copyright ] }; + key { [ v, V, leftdoublequotemark, leftsinglequotemark ] }; + key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; + key { [ n, N, ncedilla, Ncedilla ] }; + key { [ m, M, mu, masculine ] }; + key { [ comma, semicolon, less, multiply ] }; + key { [ period, colon, greater, division ] }; + key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; + + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/ee(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "ee(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "ee(dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "us" { + include "ee(us)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/es b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/es new file mode 100644 index 0000000..60557f5 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/es @@ -0,0 +1,117 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Spanish (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ masculine, ordfeminine, backslash ] }; + key { [ less, greater ] }; + key { [ 1, exclam, bar ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, periodcentered, numbersign ] }; + key { [ 4, dollar, asciicircum ] }; + key { [ 5, percent, asciitilde ] }; + key { [ 6, ampersand, notsign ] }; + key { [ 7, slash ] }; + key { [ 8, parenleft ] }; + key { [ 9, parenright ] }; + key { [ 0, equal ] }; + key { [ apostrophe, question, grave ] }; + key { [ exclamdown, questiondown ] }; + key { [ e, E, EuroSign ] }; + key { [ dead_grave, dead_circumflex, bracketleft ] }; + key { [ plus, asterisk, bracketright ] }; + key { [ ntilde, Ntilde ] }; + key { [ dead_acute, dead_diaeresis, braceleft ] }; + key { [ ccedilla, Ccedilla, braceright ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/es(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "Sundeadkeys" { + include "es(Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "sundeadkeys" { + include "es(sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "es(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "es(dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "cat" { + include "es(cat)" +}; + +partial alphanumeric_keys + xkb_symbols "ast" { + include "es(ast)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "es(mac)" +}; + +partial alphanumeric_keys + xkb_symbols "olpc" { + include "es(olpc)" +}; + +partial alphanumeric_keys + xkb_symbols "deadtilde" { + include "es(deadtilde)" +}; + +partial alphanumeric_keys + xkb_symbols "olpc2" { + include "es(olpc2)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/fi b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/fi new file mode 100644 index 0000000..c1ac117 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/fi @@ -0,0 +1,98 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Finnish (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ section, onehalf ] }; + key { [ 1, exclam ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numbersign, sterling ] }; + key { [ 4, currency, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ plus, question, backslash ] }; + key { [ dead_acute, dead_grave ] }; + key { [ e, E, EuroSign ] }; + key { [ aring, Aring ] }; + key { [ dead_diaeresis, asciicircum, asciitilde ] }; + key { [ odiaeresis, Odiaeresis ] }; + key { [ adiaeresis, Adiaeresis ] }; + key { [ apostrophe, asterisk, grave ] }; + key { [ less, greater, bar ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" + include "kpdl(comma)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/fi(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "kotoistus" { + include "fi(kotoistus)" +}; + +partial alphanumeric_keys + xkb_symbols "classic" { + include "fi(classic)" +}; + +partial alphanumeric_keys + xkb_symbols "fi" { + include "fi(fi)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "fi(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "smi" { + include "fi(smi)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "fi(mac)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/fr b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/fr new file mode 100644 index 0000000..f046c3f --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/fr @@ -0,0 +1,175 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="French (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ twosuperior ] }; + key { [ ampersand, 1 ] }; + key { [ eacute, 2, asciitilde ] }; + key { [ quotedbl, 3, numbersign ] }; + key { [ apostrophe, 4, braceleft ] }; + key { [ parenleft, 5, bracketleft ] }; + key { [ minus, 6, bar ] }; + key { [ egrave, 7, grave ] }; + key { [ underscore, 8, backslash ] }; + key { [ ccedilla, 9, asciicircum ] }; + key { [ agrave, 0, at ] }; + key { [ parenright, degree, bracketright ] }; + key { [ equal, plus, braceright ] }; + + key { [ a, A ] }; + key { [ z, Z ] }; + key { [ e, E, EuroSign ] }; + key { [ dead_circumflex, dead_diaeresis ] }; + key { [ dollar, sterling, currency ] }; + + key { [ q, Q ] }; + key { [ m, M ] }; + key { [ ugrave, percent ] }; + key { [ asterisk, mu ] }; + + key { [ less, greater ] }; + key { [ w, W ] }; + key { [ comma, question ] }; + key { [ semicolon, period ] }; + key { [ colon, slash ] }; + key { [ exclam, section ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/fr(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "olpc" { + include "fr(olpc)" +}; + +partial alphanumeric_keys + xkb_symbols "Sundeadkeys" { + include "fr(Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "sundeadkeys" { + include "fr(sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "fr(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "oss" { + include "fr(oss)" +}; + +partial alphanumeric_keys + xkb_symbols "oss_latin9" { + include "fr(oss_latin9)" +}; + +partial alphanumeric_keys + xkb_symbols "oss_Sundeadkeys" { + include "fr(oss_Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "oss_sundeadkeys" { + include "fr(oss_sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "oss_nodeadkeys" { + include "fr(oss_nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "latin9" { + include "fr(latin9)" +}; + +partial alphanumeric_keys + xkb_symbols "latin9_Sundeadkeys" { + include "fr(latin9_Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "latin9_sundeadkeys" { + include "fr(latin9_sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "latin9_nodeadkeys" { + include "fr(latin9_nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "bepo" { + include "fr(bepo)" +}; + +partial alphanumeric_keys + xkb_symbols "bepo_latin9" { + include "fr(bepo_latin9)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "fr(dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "bre" { + include "fr(bre)" +}; + +partial alphanumeric_keys + xkb_symbols "oci" { + include "fr(oci)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "fr(mac)" +}; + +partial alphanumeric_keys + xkb_symbols "geo" { + include "fr(geo)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/gb b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/gb new file mode 100644 index 0000000..20d50eb --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/gb @@ -0,0 +1,87 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="English (UK, Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ grave, notsign, brokenbar ] }; + + key { [ 2, quotedbl ] }; + key { [ 3, sterling ] }; + key { [ 4, dollar, EuroSign ] }; + key { [ numbersign, asciitilde ] }; + key { [ apostrophe, at ] }; + key { [ backslash, bar ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/gb(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "intl" { + include "gb(intl)" +}; + +partial alphanumeric_keys + xkb_symbols "extd" { + include "gb(extd)" +}; + +partial alphanumeric_keys + xkb_symbols "colemak" { + include "gb(colemak)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "gb(dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorakukp" { + include "gb(dvorakukp)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "gb(mac)" +}; + +partial alphanumeric_keys + xkb_symbols "mac_intl" { + include "gb(mac_intl)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/gr b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/gr new file mode 100644 index 0000000..218e950 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/gr @@ -0,0 +1,120 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Greek (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ grave, asciitilde, onehalf ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign, sterling ] }; + key { [ 4, dollar, EuroSign ] }; + key { [ 5, percent, EuroSign ] }; + key { [ 6, asciicircum, notsign ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright, degree ] }; + key { [ minus, underscore, plusminus ] }; + key { [ equal, plus ] }; + + key { [ semicolon, colon, periodcentered ] }; + key { [ Greek_finalsmallsigma, periodcentered, Greek_SIGMA ] }; + key { [ Greek_epsilon, Greek_EPSILON, EuroSign ] }; + key { [ Greek_rho, Greek_RHO, registered ] }; + key { [ Greek_tau, Greek_TAU ] }; + key { [ Greek_upsilon, Greek_UPSILON ] }; + key { [ Greek_theta, Greek_THETA ] }; + key { [ Greek_iota, Greek_IOTA ] }; + key { [ Greek_omicron, Greek_OMICRON ] }; + key { [ Greek_pi, Greek_PI ] }; + key { [ bracketleft, braceleft, guillemotleft ] }; + key { [ bracketright, braceright, guillemotright ] }; + + key { [ Greek_alpha, Greek_ALPHA ] }; + key { [ Greek_sigma, Greek_SIGMA ] }; + key { [ Greek_delta, Greek_DELTA ] }; + key { [ Greek_phi, Greek_PHI ] }; + key { [ Greek_gamma, Greek_GAMMA ] }; + key { [ Greek_eta, Greek_ETA ] }; + key { [ Greek_xi, Greek_XI ] }; + key { [ Greek_kappa, Greek_KAPPA ] }; + key { [ Greek_lamda, Greek_LAMDA ] }; + key { [ dead_acute, dead_diaeresis ] }; + key { [ apostrophe, quotedbl ] }; + key { [ backslash, bar, brokenbar ] }; + + key { [ guillemotleft, guillemotright, brokenbar ] }; + key { [ Greek_zeta, Greek_ZETA ] }; + key { [ Greek_chi, Greek_CHI ] }; + key { [ Greek_psi, Greek_PSI, copyright ] }; + key { [ Greek_omega, Greek_OMEGA ] }; + key { [ Greek_beta, Greek_BETA ] }; + key { [ Greek_nu, Greek_NU ] }; + key { [ Greek_mu, Greek_MU ] }; + key { [ comma, less, guillemotleft ] }; + key { [ period, greater, guillemotright ] }; + key { [ slash, question ] }; + + include "level3(ralt_switch)" +}; + +alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/gr(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "simple" { + include "gr(simple)" +}; + +partial alphanumeric_keys + xkb_symbols "bare" { + include "gr(bare)" +}; + +partial alphanumeric_keys + xkb_symbols "extended" { + include "gr(extended)" +}; + +partial alphanumeric_keys + xkb_symbols "polytonic" { + include "gr(polytonic)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "gr(nodeadkeys)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/it b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/it new file mode 100644 index 0000000..d73ef6e --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/it @@ -0,0 +1,99 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]= "Italian (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ less, greater ] }; + key { [ backslash, bar ] }; + key { [ 2, quotedbl ] }; + key { [ 3, sterling ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash ] }; + key { [ 8, parenleft, braceleft ] }; + key { [ 9, parenright, braceright ] }; + key { [ 0, equal ] }; + key { [ apostrophe, question, grave ] }; + key { [ igrave, asciicircum ] }; + key { [ e, E, EuroSign ] }; + key { [ egrave, eacute, bracketleft, dead_abovering ] }; + key { [ plus, asterisk, bracketright ] }; + key { [ ugrave, section, asciitilde ] }; + key { [ ograve, ccedilla, at ] }; + key { [ agrave, degree, numbersign ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/it(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "it(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "it(mac)" +}; + +partial alphanumeric_keys + xkb_symbols "geo" { + include "it(geo)" +}; + +partial alphanumeric_keys + xkb_symbols "olpc" { + include "it(olpc)" +}; + +partial alphanumeric_keys + xkb_symbols "us" { + include "it(us)" +}; + +partial alphanumeric_keys + xkb_symbols "htcdream" { + include "it(htcdream)" +}; + +partial alphanumeric_keys + xkb_symbols "ibm" { + include "it(ibm)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/jp b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/jp new file mode 100644 index 0000000..e72d843 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/jp @@ -0,0 +1,179 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys modifier_keys +xkb_symbols "sun_type6_suncompat" { + + include "inet(evdev)" + include "sun_vndr/us(sunbasic)" + + key { [ backslash, bar ], [ prolongedsound ] }; + key { [ 1, exclam ], [ kana_NU ] }; + key { [ 2, quotedbl ], [ kana_FU ] }; + key { [ 3, numbersign ], [ kana_A, kana_a ] }; + key { [ 4, dollar ], [ kana_U, kana_u ] }; + key { [ 5, percent ], [ kana_E, kana_e ] }; + key { [ 6, ampersand ], [ kana_O, kana_o ] }; + key { [ 7, apostrophe ], [ kana_YA, kana_ya ] }; + key { [ 8, parenleft ], [ kana_YU, kana_yu ] }; + key { [ 9, parenright ], [ kana_YO, kana_yo ] }; + key { [ 0 ], [ kana_WA, kana_WO ] }; + key { [ minus, equal ], [ kana_HO ] }; + key { [ asciicircum, asciitilde], [ kana_HE ] }; + + key { [ q, Q ], [ kana_TA ] }; + key { [ w, W ], [ kana_TE ] }; + key { [ e, E ], [ kana_I, kana_i ] }; + key { [ r, R ], [ kana_SU ] }; + key { [ t, T ], [ kana_KA ] }; + key { [ y, Y ], [ kana_N ] }; + key { [ u, U ], [ kana_NA ] }; + key { [ i, I ], [ kana_NI ] }; + key { [ o, O ], [ kana_RA ] }; + key { [ p, P ], [ kana_SE ] }; + key { [ at, grave ], [ voicedsound ] }; + key { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] }; + + key { [ a, A ], [ kana_CHI ] }; + key { [ s, S ], [ kana_TO ] }; + key { [ d, D ], [ kana_SHI ] }; + key { [ f, F ], [ kana_HA ] }; + key { [ g, G ], [ kana_KI ] }; + key { [ h, H ], [ kana_KU ] }; + key { [ j, J ], [ kana_MA ] }; + key { [ k, K ], [ kana_NO ] }; + key { [ l, L ], [ kana_RI ] }; + key { [ semicolon, plus ], [ kana_RE ] }; + key { [ colon, asterisk ], [ kana_KE ] }; + key { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] }; + + key { [ z, Z ], [ kana_TSU, kana_tsu ] }; + key { [ x, X ], [ kana_SA ] }; + key { [ c, C ], [ kana_SO ] }; + key { [ v, V ], [ kana_HI ] }; + key { [ b, B ], [ kana_KO ] }; + key { [ n, N ], [ kana_MI ] }; + key { [ m, M ], [ kana_MO ] }; + key { [ comma, less ], [ kana_NE, kana_comma ] }; + key { [ period, greater ], [ kana_RU, kana_fullstop ] }; + key { [ slash, question ], [ kana_ME, kana_conjunctive ]}; + key { [ backslash, underscore], [ kana_RO ] }; + key { [ backslash, underscore], [ kana_RO ] }; + + key { [ Execute ] }; + key { [ Kanji ] }; + key { [ Henkan_Mode ] }; + key { [ Kana_Lock, Mode_switch ] }; + + key { [ Multi_key ] }; + key { [ SunSys_Req ] }; + + modifier_map Mod3 { Kana_Lock }; + +}; + +partial alphanumeric_keys +xkb_symbols "sun_type6" { + + // include "jp" + // type6 based on "jp" should be provided later + + include "sun_vndr/jp(sun_type6_suncompat)" + +}; + +partial alphanumeric_keys +xkb_symbols "sun_type7_suncompat" { + + include "sun_vndr/jp(sun_type6_suncompat)" + + key { [ 0, asciitilde, kana_WA, kana_WO ] }; + key { [ Henkan_Mode ] }; + key { [ Kana_Lock, Mode_switch ] }; + key { [ Alt_R, Alt_R ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "suncompat" { + + include "sun_vndr/jp(sun_type7_suncompat)" +}; + +partial alphanumeric_keys +xkb_symbols "sun_type7" { + + include "jp" + +}; + +partial alphanumeric_keys + xkb_symbols "106" { + include "jp(106)" +}; + +partial alphanumeric_keys + xkb_symbols "common" { + include "jp(common)" +}; + +partial alphanumeric_keys + xkb_symbols "OADG109A" { + include "jp(OADG109A)" +}; + +partial alphanumeric_keys + xkb_symbols "kana86" { + include "jp(kana86)" +}; + +partial alphanumeric_keys + xkb_symbols "kana" { + include "jp(kana)" +}; + +partial alphanumeric_keys + xkb_symbols "nicola_f_bs" { + include "jp(nicola_f_bs)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "jp(mac)" +}; + +partial alphanumeric_keys + xkb_symbols "hztg_escape" { + include "jp(hztg_escape)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "jp(dvorak)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/kr b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/kr new file mode 100644 index 0000000..0cd6a86 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/kr @@ -0,0 +1,85 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]= "Korean (Sun Type 6/7)"; + + include "sun_vndr/us(sunbasic)" + + // A few keys are different + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; + key { [ backslash, bar, brokenbar ] }; + +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/kr(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "kr106" { + include "kr(kr106)" +}; + +partial alphanumeric_keys + xkb_symbols "kr104" { + include "kr(kr104)" +}; + +partial function_keys + xkb_symbols "hw_keys" { + include "kr(hw_keys)" +}; + +partial function_keys + xkb_symbols "ralt_hangul" { + include "kr(ralt_hangul)" +}; + +partial function_keys + xkb_symbols "rctrl_hangul" { + include "kr(rctrl_hangul)" +}; + +partial function_keys + xkb_symbols "ralt_hanja" { + include "kr(ralt_hanja)" +}; + +partial function_keys + xkb_symbols "rctrl_hanja" { + include "kr(rctrl_hanja)" +}; + diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/lt b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/lt new file mode 100644 index 0000000..7880049 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/lt @@ -0,0 +1,125 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Lithuanian (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ grave, asciitilde, notsign, brokenbar ] }; + key { [ aogonek, Aogonek, 1, exclam ] }; + key { [ ccaron, Ccaron, 2, at ] }; + key { [ eogonek, Eogonek, 3, numbersign ] }; + key { [ eabovedot, Eabovedot, 4, dollar ] }; + key { [ iogonek, Iogonek, 5, percent ] }; + key { [ scaron, Scaron, 6, asciicircum ] }; + key { [ uogonek, Uogonek, 7, ampersand ] }; + key { [ umacron, Umacron, 8, asterisk ] }; + key { [ doublelowquotemark, parenleft, 9, parenleft ] }; + key { [ leftdoublequotemark, parenright, 0, parenright ] }; + key { [ minus, underscore, backslash, questiondown ] }; + key { [ zcaron, Zcaron, equal, plus ] }; + + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R, paragraph, registered ] }; + key { [ t, T, tslash, Tslash ] }; + key { [ y, Y, leftarrow, yen ] }; + key { [ u, U, downarrow, uparrow ] }; + key { [ i, I, rightarrow, idotless ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, thorn, THORN ] }; + key { [ bracketleft, braceleft, dead_diaeresis, dead_abovering ] }; + key { [ bracketright, braceright, dead_tilde, dead_macron ] }; + + key { [ a, A, ae, AE ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, dstroke, ordfeminine ] }; + key { [ g, G, eng, ENG ] }; + key { [ h, H, hstroke, Hstroke ] }; + key { [ j, J ] }; + key { [ k, K, kra, ampersand ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ semicolon, colon, dead_acute, dead_doubleacute ] }; + key { [ apostrophe, quotedbl, dead_circumflex, dead_caron ] }; + key { [ backslash, bar, dead_grave, dead_breve ] }; + + key { [ backslash, bar, dead_grave, dead_breve ] }; + key { [ z, Z, guillemotleft, less ] }; + key { [ x, X, guillemotright, greater ] }; + key { [ c, C, cent, copyright ] }; + key { [ v, V, leftdoublequotemark, leftsinglequotemark ] }; + key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; + key { [ n, N ] }; + key { [ m, M, mu, masculine ] }; + key { [ comma, less, ampersand, multiply ] }; + key { [ period, greater, periodcentered, division ] }; + key { [ slash, question, dead_belowdot, dead_abovedot ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/lt(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "us" { + include "lt(us)" +}; + +partial alphanumeric_keys + xkb_symbols "std" { + include "lt(std)" +}; + +partial alphanumeric_keys + xkb_symbols "ibm" { + include "lt(ibm)" +}; + +partial alphanumeric_keys + xkb_symbols "lekp" { + include "lt(lekp)" +}; + +partial alphanumeric_keys + xkb_symbols "lekpa" { + include "lt(lekpa)" +}; + +partial alphanumeric_keys + xkb_symbols "us_dvorak" { + include "lt(us_dvorak)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/lv b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/lv new file mode 100644 index 0000000..998145e --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/lv @@ -0,0 +1,165 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Latvian (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ grave, asciitilde, acute, asciitilde ] }; + key { [ 1, exclam, onesuperior, exclamdown ] }; + key { [ 2, at, twosuperior, oneeighth ] }; + key { [ 3, numbersign, threesuperior, sterling ] }; + key { [ 4, dollar, EuroSign, cent ] }; + key { [ 5, percent, onehalf, threeeighths ] }; + key { [ 6, asciicircum, threequarters, fiveeighths ] }; + key { [ 7, ampersand, braceleft, seveneighths ] }; + key { [ 8, asterisk, bracketleft, trademark ] }; + key { [ 9, parenleft, bracketright, plusminus ] }; + key { [ 0, parenright, braceright, degree ] }; + key { [ minus, underscore, backslash, questiondown ] }; + key { [ equal, plus, endash, emdash ] }; + + key { [ q, Q, q, Q ] }; + key { [ w, W, w, W ] }; + key { [ e, E, emacron, Emacron ] }; + key { [ r, R, rcedilla, Rcedilla ] }; + key { [ t, T, t, T ] }; + key { [ y, Y, y, Y ] }; + key { [ u, U, umacron, Umacron ] }; + key { [ i, I, imacron, Imacron ] }; + key { [ o, O, omacron, Omacron ] }; + key { [ p, P, p, P ] }; + key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; + key { [ bracketright, braceright, guillemotright, rightdoublequotemark ] }; + + key { [ a, A, amacron, Amacron ] }; + key { [ s, S, scaron, Scaron ] }; + key { [ d, D, d, D ] }; + key { [ f, F, f, F ] }; + key { [ g, G, gcedilla, Gcedilla ] }; + key { [ h, H, h, H ] }; + key { [ j, J, j, J ] }; + key { [ k, K, kcedilla, Kcedilla ] }; + key { [ l, L, lcedilla, Lcedilla ] }; + key { [ semicolon, colon, semicolon, colon ] }; + key { [ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ] }; + key { [ backslash, bar, degree, brokenbar ] }; + + key { [ backslash, bar, grave, breve ] }; + key { [ z, Z, zcaron, Zcaron ] }; + key { [ x, X, x, X ] }; + key { [ c, C, ccaron, Ccaron ] }; + key { [ v, V, v, V ] }; + key { [ b, B, b, B ] }; + key { [ n, N, ncedilla, Ncedilla ] }; + key { [ m, M, m, M ] }; + key { [ comma, less, horizconnector, multiply ] }; + key { [ period, greater, periodcentered, division ] }; + key { [ slash, question, slash, abovedot ] }; + + include "level3(ralt_switch)" +}; + +alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/lv(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "apostrophe" { + include "lv(apostrophe)" +}; + +partial alphanumeric_keys + xkb_symbols "tilde" { + include "lv(tilde)" +}; + +partial alphanumeric_keys + xkb_symbols "fkey" { + include "lv(fkey)" +}; + +partial alphanumeric_keys + xkb_symbols "adapted" { + include "lv(adapted)" +}; + +partial alphanumeric_keys + xkb_symbols "ergonomic" { + include "lv(ergonomic)" +}; + +partial alphanumeric_keys + xkb_symbols "modern" { + include "lv(modern)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "lv(dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "ykeydvorak" { + include "lv(ykeydvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "minuskeydvorak" { + include "lv(minuskeydvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorakprogr" { + include "lv(dvorakprogr)" +}; + +partial alphanumeric_keys + xkb_symbols "ykeydvorakprogr" { + include "lv(ykeydvorakprogr)" +}; + +partial alphanumeric_keys + xkb_symbols "minuskeydvorakprogr" { + include "lv(minuskeydvorakprogr)" +}; + +partial alphanumeric_keys + xkb_symbols "colemak" { + include "lv(colemak)" +}; + +partial alphanumeric_keys + xkb_symbols "apostrophecolemak" { + include "lv(apostrophecolemak)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/nl b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/nl new file mode 100644 index 0000000..6d59bc2 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/nl @@ -0,0 +1,104 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +default partial alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Dutch (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ at, section, notsign ] }; + key { [ 1, exclam, onesuperior ] }; + key { [ 2, quotedbl, twosuperior ] }; + key { [ 3, numbersign, threesuperior ] }; + key { [ 4, dollar, onequarter ] }; + key { [ 5, percent, onehalf ] }; + key { [ 6, ampersand, threequarters ] }; + key { [ 7, underscore, sterling ] }; + key { [ 8, parenleft, braceleft ] }; + key { [ 9, parenright, braceright ] }; + key { [ 0, apostrophe, grave ] }; + key { [ slash, question, backslash ] }; + key { [ degree, dead_tilde, dead_cedilla ] }; + + key { [ e, E, EuroSign ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [dead_diaeresis, dead_circumflex ] }; + key { [ asterisk, bar, asciitilde ] }; + + key { [ a, A ] }; + key { [ s, S, ssharp ] }; + key { [ f, F ] }; + key { [ plus, plusminus ] }; + key { [dead_acute, dead_grave ] }; + key { [ less, greater, asciicircum ] }; + + key { [bracketright, bracketleft, brokenbar ] }; + key { [ z, Z, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ c, C, cent ] }; + key { [ n, N ] }; + key { [ m, M, mu ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, equal ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/nl(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "std" { + include "nl(std)" +}; + +partial alphanumeric_keys + xkb_symbols "Sundeadkeys" { + include "nl(Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "sundeadkeys" { + include "nl(sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "nl(mac)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/no b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/no new file mode 100644 index 0000000..1dde45f --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/no @@ -0,0 +1,102 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Norwegian (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ bar, section ] }; + key { [ less, greater ] }; + key { [ apostrophe, asterisk, grave ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numbersign, sterling ] }; + key { [ 4, currency, dollar ] }; + key { [ 5, percent, asciitilde ] }; + key { [ 6, ampersand, asciicircum ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ plus, question ] }; + key { [ backslash, dead_grave, dead_acute ] }; + key { [ e, E, EuroSign ] }; + key { [ aring, Aring ] }; + key { [ dead_diaeresis, dead_circumflex, dead_tilde ] }; + key { [ oslash, Oslash ] }; + key { [ ae, AE ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" + include "kpdl(comma)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/no(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "no(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "no(dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "smi" { + include "no(smi)" +}; + +partial alphanumeric_keys + xkb_symbols "smi_nodeadkeys" { + include "no(smi_nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "no(mac)" +}; + +partial alphanumeric_keys + xkb_symbols "mac_nodeadkeys" { + include "no(mac_nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "colemak" { + include "no(colemak)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/pl b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/pl new file mode 100644 index 0000000..15e96ef --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/pl @@ -0,0 +1,129 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Polish (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ e, E, eogonek, Eogonek ] }; + key { [ u, U, EuroSign ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + key { [ a, A, aogonek, Aogonek ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + key { [ backslash, bar, brokenbar ] }; + + key { [ less, greater, bar, brokenbar ] }; + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ n, N, nacute, Nacute ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/pl(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "legacy" { + include "pl(legacy)" +}; + +partial alphanumeric_keys + xkb_symbols "qwertz" { + include "pl(qwertz)" +}; + +partial alphanumeric_keys + xkb_symbols "intl" { + include "pl(intl)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "pl(dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak_quotes" { + include "pl(dvorak_quotes)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak_altquotes" { + include "pl(dvorak_altquotes)" +}; + +partial alphanumeric_keys + xkb_symbols "dvp" { + include "pl(dvp)" +}; + +partial alphanumeric_keys + xkb_symbols "szl" { + include "pl(szl)" +}; + +partial alphanumeric_keys + xkb_symbols "csb" { + include "pl(csb)" +}; + +partial alphanumeric_keys + xkb_symbols "ru_phonetic_dvorak" { + include "pl(ru_phonetic_dvorak)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/pt b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/pt new file mode 100644 index 0000000..4e00113 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/pt @@ -0,0 +1,111 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]= "Portuguese (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ less, greater ] }; + key { [ backslash, bar ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numbersign, sterling ] }; + key { [ 4, dollar, section ] }; + key { [ 5, percent, asciitilde ] }; + key { [ 6, ampersand, asciicircum ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ apostrophe, question, grave ] }; + key { [ guillemotleft, guillemotright ] }; + key { [ e, E, EuroSign ] }; + key { [ plus, asterisk, dead_diaeresis ] }; + key { [ dead_acute, dead_grave ] }; + key { [ dead_tilde, dead_circumflex ] }; + key { [ ccedilla, Ccedilla ] }; + key { [ masculine, ordfeminine ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/pt(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "Sundeadkeys" { + include "pt(Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "sundeadkeys" { + include "pt(sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "pt(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "pt(mac)" +}; + +partial alphanumeric_keys + xkb_symbols "mac_sundeadkeys" { + include "pt(mac_sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "mac_nodeadkeys" { + include "pt(mac_nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "nativo" { + include "pt(nativo)" +}; + +partial alphanumeric_keys + xkb_symbols "nativo-us" { + include "pt(nativo-us)" +}; + +partial alphanumeric_keys + xkb_symbols "nativo-epo" { + include "pt(nativo-epo)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ro b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ro new file mode 100644 index 0000000..1783db4 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ro @@ -0,0 +1,125 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Romanian (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ grave, asciitilde, grave, asciitilde ] }; + key { [ 1, exclam, dead_tilde ] }; + key { [ 2, at, dead_caron ] }; + key { [ 3, numbersign, dead_circumflex ] }; + key { [ 4, dollar, dead_breve ] }; + key { [ 5, percent, dead_abovering ] }; + key { [ 6, asciicircum, dead_ogonek ] }; + key { [ 7, ampersand, dead_grave ] }; + key { [ 8, asterisk, dead_abovedot ] }; + key { [ 9, parenleft, dead_acute ] }; + key { [ 0, parenright, dead_doubleacute ] }; + key { [ minus, underscore, dead_diaeresis, endash ] }; + key { [ equal, plus, dead_cedilla, plusminus ] }; + + key { [ q, Q, acircumflex, Acircumflex ] }; + key { [ w, W, ssharp ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R, r, R ] }; + key { [ t, T, 0x100021b, 0x100021a ] }; + key { [ y, Y, y, Y ] }; + key { [ u, U, u, U ] }; + key { [ i, I, icircumflex, Icircumflex ] }; + key { [ o, O, o, O ] }; + key { [ p, P, section ] }; + key { [ bracketleft, braceleft, doublelowquotemark ] }; + key { [ bracketright, braceright, rightdoublequotemark ] }; + + key { [ a, A, abreve, Abreve ] }; + key { [ s, S, 0x1000219, 0x1000218 ] }; + key { [ d, D, dstroke, Dstroke ] }; + key { [ f, F, f, F ] }; + key { [ g, G, g, G ] }; + key { [ h, H, h, H ] }; + key { [ j, J, j, J ] }; + key { [ k, K, k, K ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ semicolon, colon, semicolon, colon ] }; + key { [ apostrophe, quotedbl, apostrophe, quotedbl ] }; + key { [ backslash, bar, backslash, brokenbar ] }; + + key { [ backslash, bar, backslash, brokenbar ] }; + key { [ z, Z, z, Z ] }; + key { [ x, X, x, X ] }; + key { [ c, C, copyright ] }; + key { [ v, V, v, V ] }; + key { [ b, B, b, B ] }; + key { [ n, N, n, N ] }; + key { [ m, M, m, M ] }; + key { [ comma, less, guillemotleft, multiply ] }; + key { [ period, greater, guillemotright, division ] }; + key { [ slash, question, slash, question ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/ro(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "cedilla" { + include "ro(cedilla)" +}; + +partial alphanumeric_keys + xkb_symbols "std" { + include "ro(std)" +}; + +partial alphanumeric_keys + xkb_symbols "std_cedilla" { + include "ro(std_cedilla)" +}; + +partial alphanumeric_keys + xkb_symbols "winkeys" { + include "ro(winkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "crh_dobruja" { + include "ro(crh_dobruja)" +}; + +partial alphanumeric_keys + xkb_symbols "ergonomic" { + include "ro(ergonomic)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ru b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ru new file mode 100644 index 0000000..1ea5947 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ru @@ -0,0 +1,204 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]= "Russian (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key.type[group1]="FOUR_LEVEL"; + + key { [ 1, exclam, 1, exclam ] }; + key { [ 2, quotedbl, 2, at ] }; + key { [ 3, numerosign, 3, numbersign ] }; + key { [ 4, percent, 4, dollar ] }; + key { [ 5, colon, 5, percent ] }; + key { [ 7, period, 7, ampersand ] }; + key { [ 8, semicolon, 8, asterisk ] }; + key { [ slash, question, backslash, bar ] }; + key { [ ediaeresis, Ediaeresis, slash, question ] }; + key { [ backslash, bar, backslash, bar ] }; + + key { [ Cyrillic_shorti, Cyrillic_SHORTI, q, Q ] }; + key { [ Cyrillic_tse, Cyrillic_TSE, w, W ] }; + key { [ Cyrillic_u, Cyrillic_U, e, E ] }; + key { [ Cyrillic_ka, Cyrillic_KA, r, R ] }; + key { [ Cyrillic_ie, Cyrillic_IE, t, T ] }; + key { [ Cyrillic_en, Cyrillic_EN, y, Y ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, u, U ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, i, I ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, o, O ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, p, P ] }; + key { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] }; + key { [Cyrillic_hardsign,Cyrillic_HARDSIGN, bracketright, braceright ] }; + key { [ Cyrillic_ef, Cyrillic_EF, a, A ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU, s, S ] }; + key { [ Cyrillic_ve, Cyrillic_VE, d, D ] }; + key { [ Cyrillic_a, Cyrillic_A, f, F ] }; + key { [ Cyrillic_pe, Cyrillic_PE, g, G ] }; + key { [ Cyrillic_er, Cyrillic_ER, h, H ] }; + key { [ Cyrillic_o, Cyrillic_O, j, J ] }; + key { [ Cyrillic_el, Cyrillic_EL, k, K ] }; + key { [ Cyrillic_de, Cyrillic_DE, l, L ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, semicolon, colon ] }; + key { [ Cyrillic_e, Cyrillic_E, apostrophe, quotedbl ] }; + key { [ Cyrillic_ya, Cyrillic_YA, z, Z ] }; + key { [ Cyrillic_che, Cyrillic_CHE, x, X ] }; + key { [ Cyrillic_es, Cyrillic_ES, c, C ] }; + key { [ Cyrillic_em, Cyrillic_EM, v, V ] }; + key { [ Cyrillic_i, Cyrillic_I, b, B ] }; + key { [ Cyrillic_te, Cyrillic_TE, n, N ] }; + key { [Cyrillic_softsign,Cyrillic_SOFTSIGN, m, M ] }; + key { [ Cyrillic_be, Cyrillic_BE, comma, less ] }; + key { [ Cyrillic_yu, Cyrillic_YU, period, greater ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/ru(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "winkeys" { + include "ru(winkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "common" { + include "ru(common)" +}; + +partial alphanumeric_keys + xkb_symbols "legacy" { + include "ru(legacy)" +}; + +partial alphanumeric_keys + xkb_symbols "olpc" { + include "ru(olpc)" +}; + +partial alphanumeric_keys + xkb_symbols "typewriter" { + include "ru(typewriter)" +}; + +partial alphanumeric_keys + xkb_symbols "typewriter-legacy" { + include "ru(typewriter-legacy)" +}; + +partial alphanumeric_keys + xkb_symbols "phonetic" { + include "ru(phonetic)" +}; + +partial alphanumeric_keys + xkb_symbols "phonetic_winkeys" { + include "ru(phonetic_winkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "tt" { + include "ru(tt)" +}; + +partial alphanumeric_keys + xkb_symbols "os_legacy" { + include "ru(os_legacy)" +}; + +partial alphanumeric_keys + xkb_symbols "os_winkeys" { + include "ru(os_winkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "cv" { + include "ru(cv)" +}; + +partial alphanumeric_keys + xkb_symbols "udm" { + include "ru(udm)" +}; + +partial alphanumeric_keys + xkb_symbols "cv_latin" { + include "ru(cv_latin)" +}; + +partial alphanumeric_keys + xkb_symbols "kom" { + include "ru(kom)" +}; + +partial alphanumeric_keys + xkb_symbols "sah" { + include "ru(sah)" +}; + +partial alphanumeric_keys + xkb_symbols "xal" { + include "ru(xal)" +}; + +partial alphanumeric_keys + xkb_symbols "dos" { + include "ru(dos)" +}; + +partial alphanumeric_keys + xkb_symbols "bak" { + include "ru(bak)" +}; + +partial alphanumeric_keys + xkb_symbols "srp" { + include "ru(srp)" +}; + +partial alphanumeric_keys + xkb_symbols "chm" { + include "ru(chm)" +}; + +partial alphanumeric_keys + xkb_symbols "chu" { + include "ru(chu)" +}; + +partial alphanumeric_keys + xkb_symbols "ruu" { + include "ru(ruu)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/se b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/se new file mode 100644 index 0000000..506d9c3 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/se @@ -0,0 +1,111 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Swedish (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ section, onehalf ] }; + key { [ less, greater, bar ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numbersign, sterling ] }; + key { [ 4, currency, dollar ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ plus, question, backslash ] }; + key { [ dead_acute, dead_grave ] }; + key { [ e, E, EuroSign ] }; + key { [ aring, Aring ] }; + key { [ dead_diaeresis, asciicircum, asciitilde ] }; + key { [ odiaeresis, Odiaeresis ] }; + key { [ adiaeresis, Adiaeresis ] }; + key { [ apostrophe, asterisk, grave ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" + include "kpdl(comma)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/se(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "se" { + include "se(se)" +}; + +partial alphanumeric_keys + xkb_symbols "nodeadkeys" { + include "se(nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "se(dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "rus" { + include "se(rus)" +}; + +partial alphanumeric_keys + xkb_symbols "rus_nodeadkeys" { + include "se(rus_nodeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "smi" { + include "se(smi)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "se(mac)" +}; + +partial alphanumeric_keys + xkb_symbols "svdvorak" { + include "se(svdvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "swl" { + include "se(swl)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/sk b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/sk new file mode 100644 index 0000000..0d161a7 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/sk @@ -0,0 +1,103 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Slovak (Sun Type 6/7)"; + + include "sun_vndr/us(sun_type6)" + + key { [ semicolon, dead_abovering, grave, asciitilde ] }; + key { [ plus, 1, exclam, asciitilde ] }; + key { [ lcaron, 2, at, dead_caron ] }; + key { [ scaron, 3, numbersign, dead_circumflex ] }; + key { [ ccaron, 4, dollar, dead_breve ] }; + key { [ tcaron, 5, percent, dead_abovering ] }; + key { [ zcaron, 6, asciicircum, dead_ogonek ] }; + key { [ yacute, 7, ampersand, grave ] }; + key { [ aacute, 8, asterisk, dead_abovedot ] }; + key { [ iacute, 9, parenleft, apostrophe ] }; + key { [ eacute, 0, parenright, dead_doubleacute ] }; + key { [ equal, percent, dead_diaeresis, backslash ] }; + key { [ dead_acute, dead_caron, dead_cedilla, minus ] }; + + key { [ q, Q, backslash ] }; + key { [ w, W, bar ] }; + key { [ e, E, EuroSign ] }; + key { [ z, Z ] }; + key { [ p, P, apostrophe ] }; + key { [ uacute, slash, division ] }; + key { [ adiaeresis, parenleft, multiply ] }; + + key { [ s, S, dstroke ] }; + key { [ d, D, Dstroke ] }; + key { [ f, F, bracketleft ] }; + key { [ g, G, bracketright ] }; + key { [ k, K, lstroke ] }; + key { [ l, L, Lstroke ] }; + key { [ ocircumflex, quotedbl, dollar ] }; + key { [ section, exclam, ssharp ] }; + key { [ ncaron, parenright, currency, currency ] }; + key { [ ncaron, parenright, backslash, bar ] }; + + key { [ backslash, bar, slash, brokenbar ] }; + key { [ y, Y, less ] }; + key { [ x, X, greater, numbersign ] }; + key { [ c, C, ampersand ] }; + key { [ v, V, at ] }; + key { [ b, B, braceleft ] }; + key { [ n, N, braceright ] }; + key { [ comma, question, less ] }; + key { [ period, colon, greater ] }; + key { [ minus, underscore, asterisk ] }; + + include "level3(ralt_switch)" + +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/sk(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "bksl" { + include "sk(bksl)" +}; + +partial alphanumeric_keys + xkb_symbols "qwerty" { + include "sk(qwerty)" +}; + +partial alphanumeric_keys + xkb_symbols "qwerty_bksl" { + include "sk(qwerty_bksl)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/solaris b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/solaris new file mode 100644 index 0000000..d828950 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/solaris @@ -0,0 +1,112 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial +xkb_symbols "defaults_common" { + + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86PowerOff ] }; + key { [ Cancel ] }; + key { [ Redo ] }; + key { [ SunProps ] }; + key { [ Undo ] }; + key { [ SunFront ] }; + key { [ XF86Copy ] }; + key { [ SunOpen ] }; + key { [ XF86Paste ] }; + key { [ Find ] }; + key { [ XF86Cut ] }; + key { [ Help ] }; + key { [ Linefeed ] }; + + key { [ Alt_L, Alt_L ] }; + key { [ Meta_L ] }; + key { [ Meta_R ] }; + +// The following is needed for virtual hotkeys + + key { [ XF86Sleep ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86Display ] }; + +// Common Sun Modifiers + + modifier_map Shift { Shift_R, Shift_L }; + modifier_map Mod2 { Num_Lock }; + modifier_map Mod4 { Meta_L, Meta_R }; + +}; + +partial default +xkb_symbols "defaults" { + + include "sun_vndr/solaris(defaults_common)" + + modifier_map Mod1 { Alt_L }; + +}; + +partial +xkb_symbols "defaults_type7jp" { + + include "sun_vndr/solaris(defaults_common)" + + modifier_map Mod1 { Alt_L, Alt_R }; + +}; + +partial +xkb_symbols "sun_compat" { + + key { [ L1, L1, SunStop ] }; + key { [ L2, L2, SunAgain ] }; + key { [ L3, L3, SunProps ] }; + key { [ L4, L4, SunUndo ] }; + key { [ L5, L5, SunFront ] }; + key { [ L6, L6, SunCopy ] }; + key { [ L7, L7, SunOpen ] }; + key { [ L8, L8, SunPaste ] }; + key { [ L9, L9, SunFind ] }; + key { [ L10, L10, SunCut ] }; + +// F11 & F12 are mapped to SunF36 and SunF37 since they were added +// after F11-F35 were already assigned on Sun keyboards + key { [ SunF36 ], [ F11 ] }; + key { [ SunF37 ], [ F12 ] }; + +// These were added to the keyboard much later and simply got mapped +// to their logical names + key { [ Help ] }; + key { [ SunAudioMute, SunVideoDegauss ] }; + key { [ SunAudioLowerVolume, SunVideoLowerBrightness ] }; + key { [ SunAudioRaiseVolume, SunVideoRaiseBrightness ] }; + key { [ XF86Sleep, XF86Hibernate ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/tr b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/tr new file mode 100644 index 0000000..b926349 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/tr @@ -0,0 +1,131 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +default partial alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Turkish (Sun Type 6)"; + + include "sun_vndr/us(sun_type6)" + + key { [ quotedbl, eacute ] }; + key { [ 1, exclam ] }; + key { [ 2, apostrophe ] }; + key { [ 3, asciicircum, numbersign ] }; + key { [ 4, plus, dollar ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ asterisk, question, backslash ] }; + key { [ minus, underscore ] }; + + key { [ q, Q, at ] }; + key { [ e, E, EuroSign ] }; + key { [ idotless, I ] }; + key { [ gbreve, Gbreve ] }; + key { [udiaeresis, Udiaeresis, asciitilde ] }; + + key { [ scedilla, Scedilla, acute ] }; + key { [ i, Iabovedot ] }; + key { [ comma, semicolon, grave ] }; + + key { [ less, greater, bar ] }; + key { [odiaeresis, Odiaeresis ] }; + key { [ ccedilla, Ccedilla ] }; + key { [ period, colon ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/tr(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "f" { + include "tr(f)" +}; + +partial alphanumeric_keys + xkb_symbols "alt" { + include "tr(alt)" +}; + +partial alphanumeric_keys + xkb_symbols "Sundeadkeys" { + include "tr(Sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "sundeadkeys" { + include "tr(sundeadkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "ku" { + include "tr(ku)" +}; + +partial alphanumeric_keys + xkb_symbols "ku_f" { + include "tr(ku_f)" +}; + +partial alphanumeric_keys + xkb_symbols "ku_alt" { + include "tr(ku_alt)" +}; + +partial alphanumeric_keys + xkb_symbols "intl" { + include "tr(intl)" +}; + +partial alphanumeric_keys + xkb_symbols "olpc" { + include "tr(olpc)" +}; + +partial alphanumeric_keys + xkb_symbols "crh" { + include "tr(crh)" +}; + +partial alphanumeric_keys + xkb_symbols "crh_f" { + include "tr(crh_f)" +}; + +partial alphanumeric_keys + xkb_symbols "crh_alt" { + include "tr(crh_alt)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/tw b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/tw new file mode 100644 index 0000000..2296ad1 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/tw @@ -0,0 +1,60 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +default partial alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]= "Taiwanese (Sun Type 6/7)"; + + include "sun_vndr/us(sunbasic)" + + key { [ Henkan_Mode ] }; + key { [ backslash, bar, brokenbar ] }; + +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/tw(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "tw" { + include "tw(tw)" +}; + +partial alphanumeric_keys + xkb_symbols "indigenous" { + include "tw(indigenous)" +}; + +partial alphanumeric_keys + xkb_symbols "saisiyat" { + include "tw(saisiyat)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ua b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ua new file mode 100644 index 0000000..b53b0d8 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/ua @@ -0,0 +1,135 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]="Ukrainian (Sun Type 6)"; + + include "sun_vndr/us(sun_type6)" + + key { [ grave, asciitilde, apostrophe, asciitilde ] }; + key { [ 1, exclam, 1, exclam ] }; + key { [ 2, at, 2, quotedbl ] }; + key { [ 3, numbersign, 3, numbersign ] }; + key { [ 4, dollar, 4, asterisk ] }; + key { [ 5, percent, 5, colon ] }; + key { [ 6, asciicircum, 6, comma ] }; + key { [ 7, ampersand, 7, period ] }; + key { [ 8, asterisk, 8, semicolon ] }; + key { [ 9, parenleft, 9, parenleft ] }; + key { [ 0, parenright, 0, parenright ] }; + key { [ minus, underscore, minus, underscore ] }; + key { [ equal, plus, equal, plus ] }; + + key { [ q, Q, Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ w, W, Cyrillic_tse, Cyrillic_TSE ] }; + key { [ e, E, Cyrillic_u, Cyrillic_U ] }; + key { [ r, R, Cyrillic_ka, Cyrillic_KA ] }; + key { [ t, T, Cyrillic_ie, Cyrillic_IE ] }; + key { [ y, Y, Cyrillic_en, Cyrillic_EN ] }; + key { [ u, U, Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ i, I, Cyrillic_sha, Cyrillic_SHA ] }; + key { [ o, O, Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ p, P, Cyrillic_ze, Cyrillic_ZE ] }; + key { [ bracketleft, braceleft, Cyrillic_ha, Cyrillic_HA ] }; + key { [ bracketright, braceright, Ukrainian_yi, Ukrainian_YI ] }; + + key { [ a, A, Cyrillic_ef, Cyrillic_EF ] }; + key { [ s, S, Ukrainian_i, Ukrainian_I ] }; + key { [ d, D, Cyrillic_ve, Cyrillic_VE ] }; + key { [ f, F, Cyrillic_a, Cyrillic_A ] }; + key { [ g, G, Cyrillic_pe, Cyrillic_PE ] }; + key { [ h, H, Cyrillic_er, Cyrillic_ER ] }; + key { [ j, J, Cyrillic_o, Cyrillic_O ] }; + key { [ k, K, Cyrillic_el, Cyrillic_EL ] }; + key { [ l, L, Cyrillic_de, Cyrillic_DE ] }; + key { [ semicolon, colon, Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ apostrophe, quotedbl, Ukrainian_ie, Ukrainian_IE ] }; + key { [ backslash, bar, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; + + key { [ less, greater, slash, bar ] }; + key { [ z, Z, Cyrillic_ya, Cyrillic_YA ] }; + key { [ x, X, Cyrillic_che, Cyrillic_CHE ] }; + key { [ c, C, Cyrillic_es, Cyrillic_ES ] }; + key { [ v, V, Cyrillic_em, Cyrillic_EM ] }; + key { [ n, N, Cyrillic_te, Cyrillic_TE ] }; + key { [ b, B, Cyrillic_i, Cyrillic_I ] }; + key { [ m, M, Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; + key { [ comma, less, Cyrillic_be, Cyrillic_BE ] }; + key { [ period, greater, Cyrillic_yu, Cyrillic_YU ] }; + key { [ slash, question, slash, question ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/ua(sun_type6)" +}; + +partial alphanumeric_keys + xkb_symbols "unicode" { + include "ua(unicode)" +}; + +partial alphanumeric_keys + xkb_symbols "legacy" { + include "ua(legacy)" +}; + +partial alphanumeric_keys + xkb_symbols "winkeys" { + include "ua(winkeys)" +}; + +partial alphanumeric_keys + xkb_symbols "typewriter" { + include "ua(typewriter)" +}; + +partial alphanumeric_keys + xkb_symbols "phonetic" { + include "ua(phonetic)" +}; + +partial alphanumeric_keys + xkb_symbols "rstu" { + include "ua(rstu)" +}; + +partial alphanumeric_keys + xkb_symbols "rstu_ru" { + include "ua(rstu_ru)" +}; + +partial alphanumeric_keys + xkb_symbols "homophonic" { + include "ua(homophonic)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/us b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/us new file mode 100644 index 0000000..056936a --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sun_vndr/us @@ -0,0 +1,205 @@ +// +// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, provided that the above +// copyright notice(s) and this permission notice appear in all copies of +// the Software and that both the above copyright notice(s) and this +// permission notice appear in supporting documentation. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// Except as contained in this notice, the name of a copyright holder +// shall not be used in advertising or otherwise to promote the sale, use +// or other dealings in this Software without prior written authorization +// of the copyright holder. +// + +partial default alphanumeric_keys +xkb_symbols "sunbasic" { + + include "us(basic)" + include "capslock(capslock)" + include "srvr_ctrl(xfree86)" + +}; + +partial alphanumeric_keys +xkb_symbols "sun_type6" { + + name[Group1]= "English (US, Sun Type 6/7)"; + + include "sun_vndr/us(sunbasic)" + include "eurosign(4)" + include "level3(ralt_switch)" + + key { [ Multi_key ] }; + key { [ SunSys_Req ] }; +}; + +partial alphanumeric_keys + xkb_symbols "basic" { + include "sun_vndr/us(sunbasic)" +}; + +partial alphanumeric_keys + xkb_symbols "euro" { + include "us(euro)" +}; + +partial alphanumeric_keys + xkb_symbols "intl" { + include "us(intl)" +}; + +partial alphanumeric_keys + xkb_symbols "alt-intl" { + include "us(alt-intl)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak" { + include "us(dvorak)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak-intl" { + include "us(dvorak-intl)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak-alt-intl" { + include "us(dvorak-alt-intl)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak-l" { + include "us(dvorak-l)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak-r" { + include "us(dvorak-r)" +}; + +partial alphanumeric_keys + xkb_symbols "dvorak-classic" { + include "us(dvorak-classic)" +}; + +partial alphanumeric_keys + xkb_symbols "dvp" { + include "us(dvp)" +}; + +partial alphanumeric_keys + xkb_symbols "rus" { + include "us(rus)" +}; + +partial alphanumeric_keys + xkb_symbols "mac" { + include "us(mac)" +}; + +partial alphanumeric_keys + xkb_symbols "colemak" { + include "us(colemak)" +}; + +partial alphanumeric_keys + xkb_symbols "altgr-intl" { + include "us(altgr-intl)" +}; + +partial alphanumeric_keys + xkb_symbols "classmate" { + include "us(classmate)" +}; + +partial alphanumeric_keys + xkb_symbols "classmate-intl" { + include "us(classmate-intl)" +}; + +partial alphanumeric_keys + xkb_symbols "classmate-alt-intl" { + include "us(classmate-alt-intl)" +}; + +partial alphanumeric_keys + xkb_symbols "classmate-altgr-intl" { + include "us(classmate-altgr-intl)" +}; + +partial alphanumeric_keys + xkb_symbols "olpc" { + include "us(olpc)" +}; + +partial alphanumeric_keys + xkb_symbols "olpc2" { + include "us(olpc2)" +}; + +partial alphanumeric_keys + xkb_symbols "chr" { + include "us(chr)" +}; + +partial alphanumeric_keys + xkb_symbols "hbs" { + include "us(hbs)" +}; + +partial alphanumeric_keys + xkb_symbols "htcdream" { + include "us(htcdream)" +}; + +partial alphanumeric_keys + xkb_symbols "workman" { + include "us(workman)" +}; + +partial alphanumeric_keys + xkb_symbols "workman-intl" { + include "us(workman-intl)" +}; + +partial alphanumeric_keys + xkb_symbols "cz_sk_de" { + include "us(cz_sk_de)" +}; + +partial alphanumeric_keys + xkb_symbols "intl-unicode" { + include "us(intl-unicode)" +}; + +partial alphanumeric_keys + xkb_symbols "alt-intl-unicode" { + include "us(alt-intl-unicode)" +}; + +partial alphanumeric_keys + xkb_symbols "ats" { + include "us(ats)" +}; + +partial alphanumeric_keys + xkb_symbols "crd" { + include "us(crd)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/sy b/squashfs-root/usr/share/X11/xkb/symbols/sy new file mode 100644 index 0000000..fb4d45d --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/sy @@ -0,0 +1,151 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + include "ara(basic)" + name[Group1]= "Arabic (Syria)"; +}; + +partial alphanumeric_keys +xkb_symbols "syc" { + name[Group1]= "Syriac"; + + key { [ 0x100070F, 0x100032E, Arabic_shadda ] }; + key { [ 1, exclam, 0x1000701 ] }; + key { [ 2, 0x100030A, 0x1000702 ] }; + key { [ 3, 0x1000325, 0x1000703 ] }; + key { [ 4, 0x1000749, 0x1000704 ] }; + key { [ 5, 0x1002670, 0x1000705 ] }; + key { [ 6, 0x1002671, 0x1000708 ] }; + key { [ 7, 0x100070A, 0x1000709 ] }; + key { [ 8, 0x10000BB, 0x100070B ] }; + key { [ 9, parenright, 0x100070C ] }; + key { [ 0, parenleft, 0x100070D ] }; + key { [ minus, 0x10000AB, 0x100250C ] }; + key { [ equal, plus, 0x1002510 ] }; + + key { [ 0x1000714, 0x1000730, Arabic_fatha ] }; + key { [ 0x1000728, 0x1000733, Arabic_fathatan ] }; + key { [ 0x1000716, 0x1000736, Arabic_damma ] }; + key { [ 0x1000729, 0x100073A, Arabic_dammatan ] }; + key { [ 0x1000726, 0x100073D, Arabic_madda_above ] }; + key { [ 0x100071C, 0x1000740, Arabic_hamza_above ] }; + key { [ 0x1000725, 0x1000741, 0x1000747 ] }; + key { [ 0x1000717, 0x1000308, 0x1000743 ] }; + key { [ 0x100071E, 0x1000304, 0x1000745 ] }; + key { [ 0x100071A, 0x1000307, 0x100032D ] }; + key { [ 0x1000713, 0x1000303 ] }; + key { [ 0x1000715, 0x100074A ] }; + key { [ 0x1000706, colon ] }; + + key { [ 0x100072B, 0x1000731, Arabic_kasra ] }; + key { [ 0x1000723, 0x1000734, Arabic_kasratan ] }; + key { [ 0x100071D, 0x1000737 ] }; + key { [ 0x1000712, 0x100073B, Arabic_hamza ] }; + key { [ 0x1000720, 0x100073E, Arabic_hamza_below ] }; + key { [ 0x1000710, 0x1000711, Arabic_superscript_alef ] }; + key { [ 0x100072C, Arabic_tatweel, 0x1000748 ] }; + key { [ 0x1000722, 0x1000324, 0x1000744 ] }; + key { [ 0x1000721, 0x1000331, 0x1000746 ] }; + key { [ 0x100071F, 0x1000323 ] }; + key { [ 0x100071B, 0x1000330 ] }; + + key { [ bracketright, 0x1000732, Arabic_sukun ] }; + key { [ bracketleft, 0x1000735 ] }; + key { [ 0x1000724, 0x1000738, 0x100200D ] }; + key { [ 0x100072A, 0x100073C, 0x100200C ] }; + key { [ 0x1000727, 0x100073F, 0x100200E ] }; + key { [ 0x1000700, 0x1000739, 0x100200F ] }; + key { [ 0x100002E, 0x1000742 ] }; + key { [ 0x1000718, Arabic_comma ] }; + key { [ 0x1000719, Arabic_semicolon ] }; + key { [ 0x1000707, Arabic_question_mark ] }; + + // Space plus zero-width non-joiner: + include "nbsp(zwnj2)" + + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control{ Control_L, Control_R }; + modifier_map Mod1 { Alt_L, Alt_R }; + modifier_map Mod2 { Mode_switch }; +}; + +partial alphanumeric_keys +xkb_symbols "syc_phonetic" { + name[Group1]= "Syriac (phonetic)"; + + key { [ 0x100070F, 0x100032E, Arabic_shadda ] }; + key { [ 1, exclam, 0x1000701 ] }; + key { [ 2, 0x100030A, 0x1000702 ] }; + key { [ 3, 0x1000325, 0x1000703 ] }; + key { [ 4, 0x1000749, 0x1000704 ] }; + key { [ 5, 0x1002670, 0x1000705 ] }; + key { [ 6, 0x1002671, 0x1000708 ] }; + key { [ 7, 0x100070A, 0x1000709 ] }; + key { [ 8, 0x10000BB, 0x100070B ] }; + key { [ 9, parenright, 0x100070C ] }; + key { [ 0, parenleft, 0x100070D ] }; + key { [ minus, 0x10000AB, 0x100250C ] }; + key { [ equal, plus, 0x1002510 ] }; + + key { [ 0x1000729, 0x1000730, Arabic_fatha ] }; + key { [ 0x1000718, 0x1000733, Arabic_fathatan ] }; + key { [ 0x1000716, 0x1000736, Arabic_damma ] }; + key { [ 0x100072A, 0x100073A, Arabic_dammatan ] }; + key { [ 0x100072C, 0x100073D, Arabic_madda_above ] }; + key { [ 0x100071D, 0x1000740, Arabic_hamza_above ] }; + key { [ 0x100071C, 0x1000741, 0x1000747 ] }; + key { [ 0x1000725, 0x1000308, 0x1000743 ] }; + key { [ 0x1000727, 0x1000304, 0x1000745 ] }; + key { [ 0x1000726, 0x1000307, 0x100032D ] }; + key { [ bracketright, 0x1000303 ] }; + key { [ bracketleft, 0x100074A ] }; + key { [ 0x1000706, colon ] }; + + key { [ 0x1000710, 0x1000731, Arabic_kasra ] }; + key { [ 0x1000723, 0x1000734, Arabic_kasratan ] }; + key { [ 0x1000715, 0x1000737 ] }; + key { [ 0x1000714, 0x100073B, Arabic_hamza ] }; + key { [ 0x1000713, 0x100073E, Arabic_hamza_below ] }; + key { [ 0x1000717, 0x1000711, Arabic_superscript_alef ] }; + key { [ 0x100071B, Arabic_tatweel, 0x1000748 ] }; + key { [ 0x100071F, 0x1000324, 0x1000744 ] }; + key { [ 0x1000720, 0x1000331, 0x1000746 ] }; + key { [ 0x100071A, 0x1000323 ] }; + key { [ 0x100071E, 0x1000330 ] }; + + key { [ space, 0x100200c ] }; + key { [ 0x1000719, 0x1000732, Arabic_sukun ] }; + key { [ 0x1000728, 0x1000735 ] }; + key { [ 0x1000724, 0x1000738, 0x100200D ] }; + key { [ 0x100072B, 0x100073C, 0x100200C ] }; + key { [ 0x1000712, 0x100073F, 0x100200E ] }; + key { [ 0x1000722, 0x1000739, 0x100200F ] }; + key { [ 0x1000721, 0x1000742 ] }; + key { [ 0x1000700, Arabic_comma ] }; + key { [ 0x100002E, Arabic_semicolon ] }; + key { [ 0x1000707, Arabic_question_mark ] }; + + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control{ Control_L, Control_R }; + modifier_map Mod1 { Alt_L, Alt_R }; + modifier_map Mod2 { Mode_switch }; +}; + +partial alphanumeric_keys +xkb_symbols "ku" { + include "tr(ku)" + name[Group1]= "Kurdish (Syria, Latin Q)"; +}; + +partial alphanumeric_keys +xkb_symbols "ku_f" { + include "tr(ku_f)" + name[Group1]= "Kurdish (Syria, F)"; +}; + +partial alphanumeric_keys +xkb_symbols "ku_alt" { + include "tr(ku_alt)" + name[Group1]= "Kurdish (Syria, Latin Alt-Q)"; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/terminate b/squashfs-root/usr/share/X11/xkb/symbols/terminate new file mode 100644 index 0000000..a43f2b9 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/terminate @@ -0,0 +1,7 @@ +default partial modifier_keys +xkb_symbols "ctrl_alt_bksp" { + key { + type="CTRL+ALT", + symbols[Group1] = [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Terminate_Server ] + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/tg b/squashfs-root/usr/share/X11/xkb/symbols/tg new file mode 100644 index 0000000..9c037b7 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/tg @@ -0,0 +1,77 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "fr(azerty)" + + name[Group1]="French (Togo)"; + +// This is based on French AZERTY-Keyboard layout that is mostly used in Togo. +// It includes symbols used to write different local languages in Togo. +// Created 2015 by Globalbility Togo (www.globalbility.org) +// Authors: Issaka Ouro-Wétchiré, Caroline Riefstahl, Mats Blakstad +// +// LAYOUT OVERVIEW +// ____ +// | 1 3| 1 = Shift, 3 = AltGr + Shift (AltGr is the right side alt key) +// | 2 4| 2 = normal, 4 = AltGr +// ¯¯¯¯ +// ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ +// | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ° | + | <-- | +// | ² | & | é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | +// ======================================================================== +// | |<- | A | Z Ʒ| E | R Ɛ| T Ɗ| Y Ƴ| U Ʊ| I Ɩ| O Ɔ| P | ¨ | $ | , | +// | ->| | a | z ʒ| e €| r ɛ| t ɗ| y ƴ| u ʊ| i ɩ| o ɔ| p | ^ ̌| £ ¤| <-' | +// ===================================================================¬ | +// | | Q Ǝ| S | D Ɖ| F Ƒ| G Ɣ| H Ĥ | J Ɨ| K | L | M Ŋ| % | µ | | +// | MAJ | q ǝ| s | d ɖ| f ƒ| g ɣ| h ɦ| j ɨ | k | l | m ɲ| ù `| * ́| | +// ======================================================================== +// | ^ | > | W | X | C | V Ʋ| B Ɓ| N Ŋ| ? | . | / | § | | | +// | | | < | w | x | c | v ʋ| b ɓ| n ŋ| , | ; | : ¯| ! ~| | | +// ======================================================================== +// | | | | | | | | | +// | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | +// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ +// The different local languages in Togo uses all together 17 symbols not found in French language: +// Ʒ, ɛ, Ɗ, Ƴ, Ʊ, Ɩ, Ɔ, Ǝ, Ɖ, Ƒ, Ɣ, Ĥ, Ɨ, Ɲ, Ʋ, Ɓ, Ŋ. +// Togolese local languages use 9 tone markers: +// Acute ( ´ ), Grave ( ` ), Circumflex ( ˆ ), Caron ( ˇ ), Macron ( ¯ ), Tilde ( ~ ), Tilde + Acute ( ̃́ ), Tilde + Grave ( ̃̀ ), Diaeresis ( ¨ ) +// The vowels can use these tone markers except diaeresis. +// 'Y' is not used as a vowel in most local languages, and can only use diaeresis. +// Nasal consonants (m, n, ŋ) can only have have accent tones (acute and grave) + + // Modifications of the basic French Azerty layout to add symbols for Togolese local languages + + // Second row + key { [ z, Z, ezh, EZH ] }; // U0292 = ʒ (small), U01B7 = Ʒ (capital) + + key { [ r, R, U025B, U0190 ] }; // U025B = ɛ (small), U0190 = Ɛ (capital) + key { [ t, T, U0257, U018A ] }; // U0257 = ɗ (small), U018A = Ɗ (capital) + key { [ y, Y, U01B4, U01B3 ] }; // U01B4 = ƴ (small), U01B3 = Ƴ (capital) + key { [ u, U, U028A, U01B1 ] }; // U028A = ʊ (small), U01B1 = Ʊ (capital) + key { [ i, I, U0269, U0196 ] }; // U0269 = ɩ (small), U0196 = Ɩ (capital) + key { [ o, O, U0254, U0186 ] }; // U0254 = ɔ (small), U0186 = Ɔ (capital) + key { [ dead_circumflex,dead_diaeresis, dead_caron ] }; + + + // Third row + key { [ q, Q, U01DD, U018E ] }; // U01DD = ǝ (small), U018E = Ǝ (capital) + key { [ d, D, U0256, U0189 ] }; // U0256 = ɖ (small), U0189 = Ɖ (capital) + key { [ f, F, U0192, U0191 ] }; // U0192 = ƒ (small), U0191 = Ƒ (capital) + key { [ g, G, U0263, U0194 ] }; // U0263 = ɣ (small), U0194 = Ɣ (capital) + key { [ h, H, U0266, U0124 ] }; // U0266 = ɦ (small), U0124 = Ĥ (capital) + key { [ j, J, U0268, U0197 ] }; // U0268 = ɨ (small), U0197 = Ɨ (capital) + key { [ m, M, U0272, U019D ] }; // U0272 = ɲ (small), U019D = Ɲ (capital) + key { [ ugrave, percent, dead_grave ] }; + key { [ asterisk, mu, dead_acute ] }; + + + // Fourth row + key { [ v, V, U028B, U01B2 ] }; // U028B = ʋ (small), U01B2 = Ʋ (capital) + key { [ b, B, U0253, U0181 ] }; // U0253 = ɓ (small), U0181 = Ɓ (capital) + key { [ n, N, U014B, U014A ] }; // U014B = ŋ (small), U014A = Ŋ (capital) + key { [ colon, slash, dead_macron ] }; + key { [ exclam, section, dead_tilde ] }; + + + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/th b/squashfs-root/usr/share/X11/xkb/symbols/th new file mode 100644 index 0000000..c2390ff --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/th @@ -0,0 +1,245 @@ +// based on a keyboard map from an 'xkb/symbols/th' file + +default partial alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Thai"; + + // converted to THai keysysms - Pablo Saratxaga + + key { [ underscore, percent ] }; + key { [ Thai_lakkhangyao, plus ] }; + key { [ slash, Thai_leknung ] }; + key { [ minus, Thai_leksong ] }; + key { [ Thai_phosamphao, Thai_leksam ] }; + key { [ Thai_thothung, Thai_leksi ] }; + key { [ Thai_sarau, Thai_sarauu ] }; + key { [ Thai_saraue, Thai_baht ] }; + key { [ Thai_khokhwai, Thai_lekha ] }; + key { [ Thai_totao, Thai_lekhok ] }; + key { [ Thai_chochan, Thai_lekchet ] }; + key { [ Thai_khokhai, Thai_lekpaet ] }; + key { [ Thai_chochang, Thai_lekkao ] }; + + key { [ Thai_maiyamok, Thai_leksun ] }; + key { [ Thai_saraaimaimalai, quotedbl ] }; + key { [ Thai_saraam, Thai_dochada ] }; + key { [ Thai_phophan, Thai_thonangmontho ] }; + key { [ Thai_saraa, Thai_thothong ] }; + key { [ Thai_maihanakat, Thai_nikhahit ] }; + key { [ Thai_saraii, Thai_maitri ] }; + key { [ Thai_rorua, Thai_nonen ] }; + key { [ Thai_nonu, Thai_paiyannoi ] }; + key { [ Thai_yoyak, Thai_yoying ] }; + key { [ Thai_bobaimai, Thai_thothan ] }; + key { [ Thai_loling, comma ] }; + + key { [ Thai_fofan, Thai_ru ] }; + key { [ Thai_hohip, Thai_khorakhang ] }; + key { [ Thai_kokai, Thai_topatak ] }; + key { [ Thai_dodek, Thai_sarao ] }; + key { [ Thai_sarae, Thai_chochoe ] }; + key { [ Thai_maitho, Thai_maitaikhu ] }; + key { [ Thai_maiek, Thai_maichattawa ] }; + key { [ Thai_saraaa, Thai_sorusi ] }; + key { [ Thai_sosua, Thai_sosala ] }; + key { [ Thai_wowaen, Thai_soso ] }; + key { [ Thai_ngongu, period ] }; + + key { [ Thai_phophung, parenleft ] }; + key { [ Thai_popla, parenright ] }; + key { [ Thai_saraae, Thai_choching ] }; + key { [ Thai_oang, Thai_honokhuk ] }; + key { [ Thai_sarai, Thai_phinthu ] }; + key { [ Thai_sarauee, Thai_thanthakhat ] }; + key { [ Thai_thothahan, question ] }; + key { [ Thai_moma, Thai_thophuthao ] }; + key { [ Thai_saraaimaimuan, Thai_lochula ] }; + key { [ Thai_fofa, Thai_lu ] }; + + key { [ Thai_khokhuat, Thai_khokhon ] }; +}; + +partial alphanumeric_keys +xkb_symbols "pat" { + name[Group1]= "Thai (Pattachote)"; + // The thai layout defines a second keyboard group and changes + // the behavior of a few modifier keys. + + // converted to THai keysysms - Pablo Saratxaga pablo@mandrakesoft.com + // Pattachote modification by Visanu Euarchukiati -- visanu@inet.co.th + key { [ underscore, Thai_baht ] }; + key { [ equal, plus ] }; + key { [ Thai_leksong, quotedbl ] }; + key { [ Thai_leksam, slash ] }; + key { [ Thai_leksi, comma ] }; + key { [ Thai_lekha, question ] }; + key { [ Thai_sarauu, Thai_sarau ] }; + key { [ Thai_lekchet, underscore ] }; + key { [ Thai_lekpaet, period ] }; + key { [ Thai_lekkao, parenleft ] }; + key { [ Thai_leksun, parenright ] }; + key { [ Thai_leknung, minus ] }; + key { [ Thai_lekhok, percent ] }; + + key { [ Thai_maitaikhu, Thai_maitri ] }; + key { [ Thai_totao, Thai_ru ] }; + key { [ Thai_yoyak, Thai_maiyamok ] }; + key { [ Thai_oang, Thai_yoying ] }; + key { [ Thai_rorua, Thai_sorusi ] }; + key { [ Thai_maiek, Thai_saraue ] }; + key { [ Thai_dodek, Thai_fofa ] }; + key { [ Thai_moma, Thai_soso ] }; + key { [ Thai_wowaen, Thai_thothung ] }; + key { [ Thai_saraae, Thai_thophuthao ] }; + key { [ Thai_saraaimaimuan, Thai_paiyannoi ] }; + key { [ Thai_chochoe, Thai_lu ] }; + + key { [ Thai_maitho, Thai_maichattawa] }; + key { [ Thai_thothahan, Thai_thothong ] }; + key { [ Thai_ngongu, Thai_saraam ] }; + key { [ Thai_kokai, Thai_nonen ] }; + key { [ Thai_maihanakat, Thai_thanthakhat] }; + key { [ Thai_saraii, Thai_sarauee ] }; + key { [ Thai_saraaa, Thai_phophung ] }; + key { [ Thai_nonu, Thai_chochang ] }; + key { [ Thai_sarae, Thai_sarao ] }; + key { [ Thai_saraaimaimalai, Thai_khorakhang ] }; + key { [ Thai_khokhai, Thai_thonangmontho ] }; + + key { [ Thai_bobaimai, Thai_dochada ] }; + key { [ Thai_popla, Thai_topatak ] }; + key { [ Thai_loling, Thai_thothan ] }; + key { [ Thai_hohip, Thai_phosamphao ] }; + key { [ Thai_sarai, Thai_phinthu ] }; + key { [ Thai_khokhwai, Thai_sosala ] }; + key { [ Thai_sosua, Thai_honokhuk ] }; + key { [ Thai_saraa, Thai_fofan ] }; + key { [ Thai_chochan, Thai_choching ] }; + key { [ Thai_phophan, Thai_lochula ] }; + + key { [ Thai_lakkhangyao, Thai_nikhahit ] }; +}; + + +partial alphanumeric_keys +xkb_symbols "tis" { + name[Group1]= "Thai (TIS-820.2538)"; + // The thai layout defines a second keyboard group and changes + // the behavior of a few modifier keys. + + // converted to THai keysysms - Pablo Saratxaga + // modified to TIS-820.2538 - Theppitak Karoonboonyanan + key { [ 0x1000e4f, 0x1000e5b ] }; + key { [ Thai_baht, Thai_lakkhangyao] }; + key { [ slash, Thai_leknung ] }; + key { [ minus, Thai_leksong ] }; + key { [ Thai_phosamphao, Thai_leksam ] }; + key { [ Thai_thothung, Thai_leksi ] }; + key { [ Thai_sarau, Thai_sarauu ] }; + key { [ Thai_saraue, 0x1000e4e ] }; + key { [ Thai_khokhwai, Thai_lekha ] }; + key { [ Thai_totao, Thai_lekhok ] }; + key { [ Thai_chochan, Thai_lekchet ] }; + key { [ Thai_khokhai, Thai_lekpaet ] }; + key { [ Thai_chochang, Thai_lekkao ] }; + + key { [ Thai_maiyamok, Thai_leksun ] }; + key { [ Thai_saraaimaimalai, quotedbl ] }; + key { [ Thai_saraam, Thai_dochada ] }; + key { [ Thai_phophan, Thai_thonangmontho ] }; + key { [ Thai_saraa, Thai_thothong ] }; + key { [ Thai_maihanakat, Thai_nikhahit ] }; + key { [ Thai_saraii, Thai_maitri ] }; + key { [ Thai_rorua, Thai_nonen ] }; + key {type[Group1]="THREE_LEVEL", + [ Thai_nonu, Thai_paiyannoi, 0x1000e5a] }; + key { [ Thai_yoyak, Thai_yoying ] }; + key { [ Thai_bobaimai, Thai_thothan ] }; + key { [ Thai_loling, comma ] }; + + key { [ Thai_fofan, Thai_ru ] }; + key { [ Thai_hohip, Thai_khorakhang ] }; + key { [ Thai_kokai, Thai_topatak ] }; + key { [ Thai_dodek, Thai_sarao ] }; + key { [ Thai_sarae, Thai_chochoe ] }; + key { [ Thai_maitho, Thai_maitaikhu ] }; + key { [ Thai_maiek, Thai_maichattawa ] }; + key { [ Thai_saraaa, Thai_sorusi ] }; + key { [ Thai_sosua, Thai_sosala ] }; + key { [ Thai_wowaen, Thai_soso ] }; + key { [ Thai_ngongu, period ] }; + + key { [ Thai_phophung, parenleft ] }; + key { [ Thai_popla, parenright ] }; + key { [ Thai_saraae, Thai_choching ] }; + key { [ Thai_oang, Thai_honokhuk ] }; + key { [ Thai_sarai, Thai_phinthu ] }; + key { [ Thai_sarauee, Thai_thanthakhat ] }; + key { [ Thai_thothahan, question ] }; + key { [ Thai_moma, Thai_thophuthao ] }; + key { [ Thai_saraaimaimuan, Thai_lochula ] }; + key { [ Thai_fofa, Thai_lu ] }; + + key { [ Thai_khokhon, Thai_khokhuat ] }; +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + + name[Group1]= "Thai"; + // The OLPC thai layout + // walter@laptop.org + + key { [ 0x1000E4F, 0x1000E5B ] }; + key { [ 0x1000E3F, 0x1000E45 ] }; + key { [ slash, 0x1000E51 ] }; + key { [ minus, 0x1000E52 ] }; + key { [ 0x1000E20, 0x1000E53 ] }; + key { [ 0x1000E16, 0x1000E54 ] }; + key { [ 0x1000E38, 0x1000E39 ] }; + key { [ 0x1000E36, 0x1000E4E ] }; + key { [ 0x1000E04, 0x1000E55 ] }; + key { [ 0x1000E15, 0x1000E56 ] }; + key { [ 0x1000E08, 0x1000E57 ] }; + key { [ 0x1000E02, 0x1000E58 ] }; + key { [ 0x1000E0A, 0x1000E59 ] }; + + key { [ 0x1000E46, 0x1000E50 ] }; + key { [ 0x1000E44, quotedbl ] }; + key { [ 0x1000E33, 0x1000E0E ] }; + key { [ 0x1000E1E, 0x1000E11 ] }; + key { [ 0x1000E30, 0x1000E18 ] }; + key { [ 0x1000E31, 0x1000E4D ] }; + key { [ 0x1000E35, 0x1000E4A ] }; + key { [ 0x1000E23, 0x1000E13 ] }; + key { [ 0x1000E19, 0x1000E2F ] }; + key { [ 0x1000E22, 0x1000E0D ] }; + key { [ 0x1000E1A, 0x1000E10 ] }; + key { [ 0x1000E25, comma ] }; + + key { [ 0x1000E1F, 0x1000E24 ] }; + key { [ 0x1000E2B, 0x1000E06 ] }; + key { [ 0x1000E01, 0x1000E0F ] }; + key { [ 0x1000E14, 0x1000E42 ] }; + key { [ 0x1000E40, 0x1000E0C ] }; + key { [ 0x1000E49, 0x1000E47 ] }; + key { [ 0x1000E48, 0x1000E4B ] }; + key { [ 0x1000E32, 0x1000E29 ] }; + key { [ 0x1000E2A, 0x1000E28 ] }; + key { [ 0x1000E27, 0x1000E0B ] }; + key { [ 0x1000E07, period ] }; + key { [ 0x1000E05, 0x1000E03 ] }; + + key { [ 0x1000E1C, parenleft ] }; + key { [ 0x1000E1B, parenright ] }; + key { [ 0x1000E41, 0x1000E09 ] }; + key { [ 0x1000E2D, 0x1000E2E ] }; + key { [ 0x1000E34, 0x1000E3A ] }; + key { [ 0x1000E37, 0x1000E4C ] }; + key { [ 0x1000E17, question ] }; + key { [ 0x1000E21, 0x1000E12 ] }; + key { [ 0x1000E43, 0x1000E2C ] }; + key { [ 0x1000E1D, 0x1000E26 ] }; + + include "group(olpc)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/tj b/squashfs-root/usr/share/X11/xkb/symbols/tj new file mode 100644 index 0000000..e7816cb --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/tj @@ -0,0 +1,136 @@ +// 17/07/2008 +// ------------------------------------------------------------- +// Standard Tojiki Keyboard Layout, Official Standard +// ------------------------------------------------------------- +// Created by Victor Ibragimov +// Tajik Fedora & Software Localization Team +// ------------------------------------------------------------- +// DUAL INPUT METHOD +// -------------------------------------------------------------------- +// -------------- Tajiki Official Keyboard Layout---------------------- +// -------------------------------------------------------------------- +// + +default partial alphanumeric_keys +xkb_symbols "basic" +{ + name[Group1] = "Tajik"; + + include "kpdl(comma)" + include "level3(ralt_switch)" + + key { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я + key { [ Cyrillic_che, Cyrillic_CHE ] }; // ч Ч + key { [ Cyrillic_es, Cyrillic_ES ] }; // с С + key { [ Cyrillic_em, Cyrillic_EM ] }; // м М + key { [ Cyrillic_i, Cyrillic_I ] }; // и И + key { [ Cyrillic_te, Cyrillic_TE ] }; // т Т + key { [ 0x10004e3, 0x10004e2 ] }; // ӣ Ӣ + key { [ Cyrillic_be, Cyrillic_BE ] }; // б Б + key { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю + key { [ period, comma ] }; // . , + key { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф + key { [ 0x10004b7, 0x10004b6 ] }; // ҷ Ҷ + key { [ Cyrillic_ve, Cyrillic_VE ] }; // в В + key { [ Cyrillic_a, Cyrillic_A ] }; // а А + key { [ Cyrillic_pe, Cyrillic_PE ] }; // п П + key { [ Cyrillic_er, Cyrillic_ER ] }; // р Р + key { [ Cyrillic_o, Cyrillic_O ] }; // о О + key { [ Cyrillic_el, Cyrillic_EL ] }; // л Л + key { [ Cyrillic_de, Cyrillic_DE ] }; // д Д + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж + key { [ Cyrillic_e, Cyrillic_E ] }; // э Э + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й + key { [ 0x100049b, 0x100049a ] }; // қ Қ + key { [ Cyrillic_u, Cyrillic_U ] }; // у У + key { [ Cyrillic_ka, Cyrillic_KA ] }; // к К + key { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е + key { [ Cyrillic_en, Cyrillic_EN ] }; // н Н + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; // г Г + key { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш + key { [ 0x10004b3, 0x10004b2 ] }; // ҳ Ҳ + key { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З + key { [ Cyrillic_ha, Cyrillic_HA ] }; // х Х + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ + key { [ 1, exclam, 0x10000a7 ] }; // 1 ! § + key { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » + key { [ 3, numerosign ] }; // 3 № + key { [ 4, semicolon ] }; // 4 ; + key { [ 5, percent ] }; // 5 % + key { [ 6, colon, 0x1002013 ] }; // 6 : – + key { [ 7, question, ampersand ] }; // 7 ? & + key { [ 8, asterisk ] }; // 8 * + key { [ 9, parenleft ] }; // 9 ( + key { [ 0, parenright, 0x10000b0 ] }; // 0 ) ° + key { [ 0x1000493, 0x1000492, minus, underscore ] }; // ғ Ғ - _ + key { [ 0x10004ef, 0x10004ee, equal, plus ] }; // ӯ Ӯ = + + key { [ backslash, slash ] }; // \ / + key { [ slash, bar ] }; // / | + key { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё +}; + +// -------------------------------------------------------------------- +// -------------- Tojiki Rusi Keyboard Layout-------------------------- +// -------------------------------------------------------------------- +// AEN +// 2001/12/23 by Leon Kanter +// 2005/12/09 Valery Inozemtsev +// Pablo Saratxaga (for the dead keys changes) +// -------------------------------------------------------------------- + +xkb_symbols "legacy" +{ + name[Group1] = "Tajik (legacy)"; + + include "kpdl(comma)" + include "level3(ralt_switch)" + + key { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я + key { [ Cyrillic_che, Cyrillic_CHE, 0x10004b7, 0x10004b6 ] }; // ч Ч ҷ Ҷ + key { [ Cyrillic_es, Cyrillic_ES ] }; // с С + key { [ Cyrillic_em, Cyrillic_EM ] }; // м М + key { [ Cyrillic_i, Cyrillic_I, 0x10004e3, 0x10004e2 ] }; // и И ӣ Ӣ + key { [ Cyrillic_te, Cyrillic_TE ] }; // т Т + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; // ь Ь + key { [ Cyrillic_be, Cyrillic_BE ] }; // б Б + key { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю + key { [ period, comma ] }; // . , + key { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; // ы Ы + key { [ Cyrillic_ve, Cyrillic_VE ] }; // в В + key { [ Cyrillic_a, Cyrillic_A ] }; // а А + key { [ Cyrillic_pe, Cyrillic_PE ] }; // п П + key { [ Cyrillic_er, Cyrillic_ER ] }; // р Р + key { [ Cyrillic_o, Cyrillic_O ] }; // о О + key { [ Cyrillic_el, Cyrillic_EL ] }; // л Л + key { [ Cyrillic_de, Cyrillic_DE ] }; // д Д + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж + key { [ Cyrillic_e, Cyrillic_E ] }; // э Э + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й + key { [ Cyrillic_tse, Cyrillic_TSE ] }; // ц Ц + key { [ Cyrillic_u, Cyrillic_U, 0x10004ef, 0x10004ee ] }; // у У ӯ Ӯ + key { [ Cyrillic_ka, Cyrillic_KA, 0x100049b, 0x100049a ] }; // к К қ Қ + key { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е + key { [ Cyrillic_en, Cyrillic_EN ] }; // н Н + key { [ Cyrillic_ghe, Cyrillic_GHE, 0x1000493, 0x1000492 ] }; // г Г ғ Ғ + key { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; // щ Щ + key { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З + key { [ Cyrillic_ha, Cyrillic_HA, 0x10004b3, 0x10004b2 ] }; // х Х ҳ Ҳ + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ + key { [ 1, exclam, 0x10000a7 ] }; // 1 ! § + key { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » + key { [ 3, numerosign ] }; // 3 № + key { [ 4, semicolon ] }; // 4 ; + key { [ 5, percent ] }; // 5 % + key { [ 6, colon, 0x1002013 ] }; // 6 : – + key { [ 7, question, ampersand ] }; // 7 ? & + key { [ 8, asterisk ] }; // 8 * + key { [ 9, parenleft ] }; // 9 ( + key { [ 0, parenright ] }; // 0 ) + key { [ minus, underscore ] }; // - _ + key { [ equal, plus ] }; // = + + key { [ backslash, slash ] }; // \ / + key { [ slash, bar ] }; // / | + key { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/tm b/squashfs-root/usr/share/X11/xkb/symbols/tm new file mode 100644 index 0000000..6c71f48 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/tm @@ -0,0 +1,45 @@ +// Nazar Annagurban , 2009 + +// Default layout (based on Vista Turkmen layout) +default partial +xkb_symbols "basic" { + + include "us" + name[Group1]="Turkmen"; + + key { [ zcaron, Zcaron, grave, asciitilde ] }; + + key { [ adiaeresis, Adiaeresis, q, Q ] }; + key { [ ncaron, Ncaron, bracketleft, braceleft ] }; + key { [odiaeresis, Odiaeresis, bracketright, braceright ] }; + + key { [udiaeresis, Udiaeresis, x, X ] }; + key { [ ccedilla, Ccedilla, c, C ] }; + key { [ yacute, Yacute, v, V ] }; + + key { [ scedilla, Scedilla, backslash, bar ] }; + + include "level3(ralt_switch)" +}; + +// Turkmen Alt-Q Layout +// This layout provides turkmen letter via the AltGr key +partial +xkb_symbols "alt" { + + include "us" + name[Group1]="Turkmen (Alt-Q)"; + + key { [ y, Y, yacute, Yacute ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + + key { [ a, A, adiaeresis, Adiaeresis ] }; + key { [ s, S, scedilla, Scedilla ] }; + + key { [ z, Z, zcaron, Zcaron ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ n, N, ncaron, Ncaron ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/tr b/squashfs-root/usr/share/X11/xkb/symbols/tr new file mode 100644 index 0000000..c1689c5 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/tr @@ -0,0 +1,356 @@ +// Keyboard layouts for Turkey. +// This file distributed without any expressed or implied warranty. +// Nilgün Belma Bugüner , 2005 + +// Turkish Q layout +default partial +xkb_symbols "basic" { + + include "latin" + + name[Group1]="Turkish"; + + key { [ 1, exclam, greater, exclamdown ] }; + key { [ 2, apostrophe, sterling, twosuperior ] }; + key { [ 3,asciicircum, numbersign, threesuperior ] }; + key { [ 4, plus, dollar, onequarter ] }; + key { [ 6, ampersand, threequarters, VoidSymbol ] }; + key { [ 7, slash, braceleft, VoidSymbol ] }; + key { [ 8, parenleft, bracketleft, VoidSymbol ] }; + key { [ 9, parenright, bracketright, plusminus ] }; + key { [ 0, equal, braceright, degree ] }; + key { [ asterisk, question, backslash, questiondown ] }; + key { [ minus, underscore, bar, VoidSymbol ] }; + + key { [ w, W, VoidSymbol, VoidSymbol ] }; + key { [ e, E, EuroSign, VoidSymbol ] }; + key { [ t, T, U20BA, VoidSymbol ] }; + key { [ u, U, ucircumflex, Ucircumflex ] }; + key { type[group1] = "FOUR_LEVEL_ALPHABETIC", + [ idotless, I, icircumflex, Icircumflex ] }; + key { [ o, O, ocircumflex, Ocircumflex ] }; + key { [ p, P, VoidSymbol, VoidSymbol ] }; + key { [ gbreve, Gbreve ] }; + key { [udiaeresis, Udiaeresis, asciitilde, dead_macron ] }; + + key { [ a, A, acircumflex, Acircumflex ] }; + key { [ s, S, section, VoidSymbol ] }; + key { [ d, D, VoidSymbol, VoidSymbol ] }; + key { [ f, F, ordfeminine, VoidSymbol ] }; + key { [ g, G, VoidSymbol, VoidSymbol ] }; + key { [ h, H, VoidSymbol, VoidSymbol ] }; + key { [ k, K, VoidSymbol, VoidSymbol ] }; + key { [ l, L, VoidSymbol, VoidSymbol ] }; + key { [ scedilla, Scedilla, acute, dead_acute ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", + [ i, Iabovedot, apostrophe, dead_caron ] }; + key { [ quotedbl, eacute, less, degree ] }; + + key { [ comma, semicolon, grave, dead_grave ] }; + key { [ less, greater, bar, brokenbar ] }; + key { [odiaeresis, Odiaeresis, multiply, VoidSymbol ] }; + key { [ ccedilla, Ccedilla,periodcentered, division ] }; + key { [ period, colon, dead_abovedot, dead_abovedot ] }; + + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + + +// Turkish F layout +partial +xkb_symbols "f" { + + include "latin" + + name[Group1]="Turkish (F)"; + + key { [ 1, exclam, onesuperior, exclamdown ] }; + key { [ 2, quotedbl, twosuperior, VoidSymbol ] }; + key { [ 3,asciicircum, numbersign, threesuperior ] }; + key { [ 4, dollar, onequarter, VoidSymbol ] }; + key { [ 6, ampersand, threequarters, VoidSymbol ] }; + key { [ 7, apostrophe, braceleft, VoidSymbol ] }; + key { [ 8, parenleft, bracketleft, VoidSymbol ] }; + key { [ 9, parenright, bracketright, plusminus ] }; + key { [ 0, equal, braceright, degree ] }; + key { [ slash, question, backslash, questiondown ] }; + key { [ minus, underscore, bar, VoidSymbol ] }; + + key { [ f, F, at, VoidSymbol ] }; + key { [ g, G, VoidSymbol, VoidSymbol ] }; + key { [ gbreve, Gbreve, VoidSymbol, VoidSymbol ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", + [ idotless, I, paragraph, VoidSymbol ] }; + key { [ o, O, ocircumflex, Ocircumflex ] }; + key { [ d, D, yen, VoidSymbol ] }; + key { [ r, R, registered, VoidSymbol ] }; + key { [ n, N, VoidSymbol, VoidSymbol ] }; + key { [ h, H, degree, VoidSymbol ] }; + key { [ p, P, sterling, VoidSymbol ] }; + key { [ q, Q,dead_diaeresis,dead_abovering ] }; + key { [ w, W, asciitilde, dead_breve ] }; + + key { [ u, U, ucircumflex, Ucircumflex ] }; + key { type[group1] = "FOUR_LEVEL_ALPHABETIC", + [ i, Iabovedot, icircumflex, Icircumflex ] }; + key { [ e, E, EuroSign, VoidSymbol ] }; + key { [ a, A, acircumflex, Acircumflex ] }; + key { [udiaeresis, Udiaeresis, ucircumflex, Ucircumflex ] }; + key { [ t, T, U20BA, VoidSymbol ] }; + key { [ k, K, VoidSymbol, VoidSymbol ] }; + key { [ m, M, mu, VoidSymbol ] }; + key { [ l, L, VoidSymbol, VoidSymbol ] }; + key { [ y, Y, acute, dead_acute ] }; + key { [ scedilla, Scedilla, numbersign, dead_caron ] }; + key { [ plus, asterisk, notsign, plusminus ] }; + + key { [ x, X, grave, dead_grave ] }; + key { [ j, J, guillemotleft, VoidSymbol ] }; + key { [odiaeresis, Odiaeresis,guillemotright, VoidSymbol ] }; + key { [ v, V, leftdoublequotemark, VoidSymbol ] }; + key { [ c, C, cent, copyright ] }; + key { [ ccedilla, Ccedilla,rightdoublequotemark, VoidSymbol ] }; + key { [ z, Z, VoidSymbol, VoidSymbol ] }; + key { [ s, S, section, VoidSymbol ] }; + key { [ b, B, multiply, nobreakspace ] }; + key { [ period, colon, division, dead_abovedot ] }; + key { [ comma, semicolon,periodcentered, VoidSymbol ] }; + key { [ less, greater, bar, brokenbar ] }; + + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + +// Turkish Alt-Q layout +partial +xkb_symbols "alt" { + + include "latin" + + name[Group1]="Turkish (Alt-Q)"; + + key { [ 7, ampersand, lowleftcorner, upleftcorner ] }; + key { [ 8, asterisk, leftt, topt ] }; + key { [ 9, parenleft, rightt, bott ] }; + key { [ 0, parenright, lowrightcorner, uprightcorner ] }; + key { [ minus, underscore, horizlinescan5, vertbar ] }; + key { [ equal, plus, crossinglines ] }; + + key { [ e, E, EuroSign, VoidSymbol ] }; +// key { [ t, T, trademark, VoidSymbol > + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, idotless, Iabovedot ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ a, A, acircumflex, Acircumflex ] }; + key { [ s, S, scedilla, Scedilla ] }; + key { [ g, G, gbreve, Gbreve ] }; + + key { [ c, C, ccedilla, Ccedilla ] }; + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + include "tr(basic)" +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + include "tr(Sundeadkeys)" + name[Group1]="Turkish (with Sun dead keys)"; +}; + +// Kurdish Q layout +// Erdal Ronahi , 2006 +// http://ferheng.org +partial +xkb_symbols "ku" { + + include "tr(basic)" + + name[Group1]="Kurdish (Turkey, Latin Q)"; + + key { [ i, I, idotless, I ] }; + key { [ x, X, gbreve, Gbreve ] }; + key { [ucircumflex, Ucircumflex, asciitilde, dead_macron ] }; + key { [icircumflex, Icircumflex, apostrophe, dead_caron ] }; + key { [ecircumflex, Ecircumflex, odiaeresis, Odiaeresis ] }; +}; + +// Kurdish F layout +partial +xkb_symbols "ku_f" { + + include "tr(f)" + + name[Group1]="Kurdish (Turkey, F)"; + + key { [ x, X, gbreve, Gbreve ] }; + key { [ i, I, paragraph, VoidSymbol ] }; + key { [ o, O, ocircumflex, Ocircumflex ] }; + + key { [ucircumflex, Ucircumflex, udiaeresis, Udiaeresis ] }; + key { [icircumflex, Icircumflex, i, Iabovedot ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ecircumflex, Ecircumflex, odiaeresis, Odiaeresis ] }; +}; + +// Kurdish Alt-Q layout +partial +xkb_symbols "ku_alt" { + + include "tr(alt)" + + name[Group1]="Kurdish (Turkey, Latin Alt-Q)"; + + key { [ e, E, ecircumflex, Ecircumflex ] }; + key { [ u, U, ucircumflex, Ucircumflex ] }; + key { [ i, I, icircumflex, Icircumflex ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; +}; + +// Turkish international Q layout +// Alexis Pellicier , 2007 +partial +xkb_symbols "intl" { + + include "latin" + + name[Group1]="Turkish (intl., with dead keys)"; + + key { type[group1] = "FOUR_LEVEL", [ 1, exclam, onesuperior, exclamdown ] }; + key { type[group1] = "FOUR_LEVEL", [ 2, apostrophe, sterling, twosuperior ] }; + key { type[group1] = "FOUR_LEVEL", [ 3, dead_circumflex, numbersign, threesuperior ] }; + key { type[group1] = "FOUR_LEVEL", [ 4, plus, dollar, onequarter ] }; + key { type[group1] = "FOUR_LEVEL", [ 6, ampersand, threequarters, VoidSymbol ] }; + key { type[group1] = "FOUR_LEVEL", [ 7, slash, braceleft, VoidSymbol ] }; + key { type[group1] = "FOUR_LEVEL", [ 8, parenleft, bracketleft, VoidSymbol ] }; + key { type[group1] = "FOUR_LEVEL", [ 9, parenright, bracketright, plusminus ] }; + key { type[group1] = "FOUR_LEVEL", [ 0, equal, braceright, degree ] }; + key { type[group1] = "FOUR_LEVEL", [ asterisk, question, backslash, questiondown ] }; + key { type[group1] = "FOUR_LEVEL", [ minus, underscore, division, VoidSymbol ] }; + + key { [ w, W, VoidSymbol, VoidSymbol ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ t, T, U20BA, VoidSymbol ] }; + key { [ u, U, ucircumflex, Ucircumflex ] }; + key { [ idotless, I, icircumflex, Icircumflex ] }; + key { [ o, O, ocircumflex, Ocircumflex ] }; + key { [ p, P, VoidSymbol, VoidSymbol ] }; + key { [ gbreve, Gbreve, dead_diaeresis ] }; + key { [udiaeresis, Udiaeresis, dead_tilde, dead_macron ] }; + + key { [ a, A, acircumflex, Acircumflex ] }; + key { [ s, S, section, VoidSymbol ] }; + key { [ d, D, VoidSymbol, VoidSymbol ] }; + key { [ f, F, ordfeminine, VoidSymbol ] }; + key { [ g, G, VoidSymbol, VoidSymbol ] }; + key { [ h, H, VoidSymbol, VoidSymbol ] }; + key { [ k, K, VoidSymbol, VoidSymbol ] }; + key { [ l, L, VoidSymbol, VoidSymbol ] }; + key { [ scedilla, Scedilla, dead_acute, dead_acute ] }; + key { [ i, Iabovedot, apostrophe, dead_caron ] }; + + key { type[group1] = "FOUR_LEVEL", [ quotedbl, eacute, plusminus, degree ] }; + key { type[group1] = "FOUR_LEVEL", [ comma, semicolon, dead_grave, dead_grave ] }; + key { type[group1] = "FOUR_LEVEL", [ less, greater, bar, brokenbar ] }; + + key { [odiaeresis, Odiaeresis, multiply, VoidSymbol ] }; + key { [ ccedilla, Ccedilla, periodcentered, division ] }; + key { type[group1] = "FOUR_LEVEL", [ period, colon, dead_abovedot, dead_abovedot ] }; + + include "nbsp(level3)" + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "olpc" { + + include "tr(intl)" + + name[Group1]= "Turkish"; + + key { [ 1, exclam, VoidSymbol, VoidSymbol ] }; + key { [ 6, ampersand, VoidSymbol, VoidSymbol ] }; + key { type[group1] = "FOUR_LEVEL", + [ minus, underscore, bar, VoidSymbol ] }; + + key { [ c, C, leftdoublequotemark, VoidSymbol ] }; + key { [ v, V, rightdoublequotemark, VoidSymbol ] }; + key { [ b, B, VoidSymbol, VoidSymbol ] }; + key { [odiaeresis, Odiaeresis, VoidSymbol, VoidSymbol ] }; + key { [ ccedilla, Ccedilla, multiply, VoidSymbol ] }; + key { [ period, colon, division, dead_abovedot ] }; + + key { [ less, greater, VoidSymbol, VoidSymbol ] }; +}; + +// Crimean Tatar (Crimean Turkish) layouts. +// First released (by Ubuntu): 2009-02-24. +// These layouts are not yet standard. In particular, the mapping of +// the letter 'x' might change in the future. This letter is not used +// in the current official alphabet, but is included in the layouts for +// foreign words and for shortcuts. +// Reşat SABIQ , 2009 +// Özgür Qarahan , 2009 + +// Crimean Tatar (Crimean Turkish) Q layout +partial +xkb_symbols "crh" { + + include "tr(basic)" + + name[Group1]="Crimean Tatar (Turkish Q)"; + + key { [ x, X, asterisk, question ] }; + + key { [ f, F, iacute, Iacute ] }; + key { [ j, J, ibreve, Ibreve ] }; + key { [ quotedbl, backslash, less, degree ] }; + + key { [ ntilde, Ntilde, guillemotright, greater ] }; +}; + +// Crimean Tatar (Crimean Turkish) F layout +partial +xkb_symbols "crh_f" { + + include "tr(f)" + + name[Group1]="Crimean Tatar (Turkish F)"; + + key { [ x, X, slash, question ] }; + + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", + [ idotless, I, iacute, Iacute ] }; + + key { [ k, K, ibreve, Ibreve ] }; + key { [ plus, asterisk, backslash, plusminus ] }; + + key { [ ntilde, Ntilde, grave, dead_grave ] }; +}; + +// Crimean Tatar (Crimean Turkish) Alt-Q layout +partial +xkb_symbols "crh_alt" { + + include "tr(alt)" + + name[Group1]="Crimean Tatar (Turkish Alt-Q)"; + + key { [ f, F, iacute, Iacute ] }; + key { [ j, J, ibreve, Ibreve ] }; + + key { [ n, N, ntilde, Ntilde ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/tr(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/tw b/squashfs-root/usr/share/X11/xkb/symbols/tw new file mode 100644 index 0000000..3a22872 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/tw @@ -0,0 +1,78 @@ +default partial alphanumeric_keys +xkb_symbols "tw" { + + include "us(basic)" + + name[Group1]= "Taiwanese"; + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ 1, exclam, U030D, exclamdown ] }; + key { [ 2, at, U0358, twosuperior ] }; + key { [ 3, numbersign, section, threesuperior ] }; + key { [ 4, dollar, yen, sterling ] }; + key { [ 5, percent, EuroSign, cent ] }; + key { [ 6,asciicircum, dead_circumflex, dead_caron ] }; + key { [ 7, ampersand, dead_acute, NoSymbol ] }; + key { [ 8, asterisk, dead_cedilla, dead_horn ] }; + key { [ 9, parenleft, dead_ogonek, dead_breve ] }; + key { [ 0, parenright, dead_abovedot, dead_abovering ] }; + key { [ minus, underscore, dead_macron, plusminus ] }; + key { [ equal, plus, multiply, division ] }; + + key { [ q, Q, paragraph, degree ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, U1E5F, U1E5E ] }; + key { [ t, T, U1E6F, U1E6E ] }; + key { [ y, Y, U1E73, U1E72 ] }; + key { [ u, U, U0289, U0244 ] }; + key { [ i, I, U0268, U0197 ] }; + key { [ o, O, oslash, Ooblique ] }; + + key { [ s, S, ssharp, NoSymbol ] }; + key { [ d, D, U1E0F, U1E0E ] }; + key { [ g, G, eng, ENG ] }; + key { [ l, L, U1E3B, U1E3A ] }; + key { [ semicolon, colon, U02D0, dead_diaeresis ] }; + key { [apostrophe, quotedbl, U02BC, dead_doubleacute ] }; + + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, mu, mu ] }; + key { [ comma, less, dead_belowcomma, guillemotleft ] }; + key { [ period, greater, dead_belowdot, guillemotright ] }; + key { [ slash, question, questiondown, dead_hook ] }; + key { [ backslash, bar, notsign, brokenbar ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "indigenous" { + + include "tw(tw)" + + name[Group1]= "Taiwanese (indigenous)"; + + key { [ U02BC, quotedbl, apostrophe, dead_doubleacute ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "saisiyat" { + + include "tw(indigenous)" + + name[Group1]= "Saisiyat (Taiwan)"; + + key { [ U02D0, colon, semicolon, dead_diaeresis ] }; + + include "level3(ralt_switch)" +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/tw(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/typo b/squashfs-root/usr/share/X11/xkb/symbols/typo new file mode 100644 index 0000000..cce79f7 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/typo @@ -0,0 +1,67 @@ +// Typographic Keyboard +// Sergei Stolyarov + +// Initial contribution by Alexey Ten +// Additional contribution and code cleanup by Artur Dryomov + +// Mainly based on the layout proposed by Ilya Birman +// http://ilyabirman.ru/projects/typography-layout/ + +default partial +xkb_symbols "base" { + + // 1st keyboard row + key { [ NoSymbol, NoSymbol, NoSymbol, approxeq ] }; // "~" + key { [ NoSymbol, NoSymbol, onesuperior, exclamdown ] }; // "1" + key { [ NoSymbol, NoSymbol, twosuperior, onehalf ] }; // "2" + key { [ NoSymbol, NoSymbol, threesuperior, onethird ] }; // "3" + key { [ NoSymbol, NoSymbol, dollar, onequarter ] }; // "4" + key { [ NoSymbol, NoSymbol, U2030, NoSymbol ] }; // "5" + key { [ NoSymbol, NoSymbol, uparrow, NoSymbol ] }; // "6" + key { [ NoSymbol, NoSymbol, ampersand, questiondown ] }; // "7" + key { [ NoSymbol, NoSymbol, infinity, oneeighth ] }; // "8" + key { [ NoSymbol, NoSymbol, leftarrow, NoSymbol ] }; // "9" + key { [ NoSymbol, NoSymbol, rightarrow, NoSymbol ] }; // "0" + key { [ NoSymbol, NoSymbol, emdash, endash ] }; // "-" + key { [ NoSymbol, NoSymbol, notequal, plusminus ] }; // "=" + + // 2nd keyboard row + key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; // "e" + key { [ NoSymbol, NoSymbol, registered, NoSymbol ] }; // "r" + key { [ NoSymbol, NoSymbol, trademark, NoSymbol ] }; // "t" + key { [ NoSymbol, NoSymbol, yen, NoSymbol ] }; // "y" + key { [ NoSymbol, NoSymbol, acute, doubleacute ] }; // "p" + key { [ NoSymbol, NoSymbol, bracketleft, braceleft ] }; // "[" + key { [ NoSymbol, NoSymbol, bracketright, braceright ] }; // "]" + + // 3rd keyboard row + key { [ NoSymbol, NoSymbol, U0301, NoSymbol ] }; // "a" + key { [ NoSymbol, NoSymbol, section, NoSymbol ] }; // "s" + key { [ NoSymbol, NoSymbol, degree, division ] }; // "d" + key { [ NoSymbol, NoSymbol, sterling, NoSymbol ] }; // "f" + key { [ NoSymbol, NoSymbol, doublelowquotemark, singlelowquotemark ] }; // "j" + key { [ NoSymbol, NoSymbol, leftdoublequotemark, leftsinglequotemark ] }; // "k" + key { [ NoSymbol, NoSymbol, rightdoublequotemark, rightsinglequotemark ] }; // "l" + key { [ NoSymbol, NoSymbol, leftsinglequotemark, minutes ] }; // ";" + key { [ NoSymbol, NoSymbol, rightsinglequotemark, seconds ] }; // "'" + + // 4th keyboard row + key { [ NoSymbol, NoSymbol, multiply, U22C5 ] }; // "x" + key { [ NoSymbol, NoSymbol, copyright, cent ] }; // "c" + key { [ NoSymbol, NoSymbol, downarrow, U25CA ] }; // "v" + key { [ NoSymbol, NoSymbol, U2212, enfilledcircbullet ] }; // "m" + key { [ NoSymbol, NoSymbol, guillemotleft, less ] }; // "," + key { [ NoSymbol, NoSymbol, guillemotright, greater ] }; // "." + key { [ NoSymbol, NoSymbol, ellipsis, NoSymbol ] }; // "/" + + // 5th keyboard row + key { [ space, space, nobreakspace, nobreakspace ] }; // " " + + // Reference + // U+2030 PER MILLE SIGN + // U+0301 COMBINING ACUTE ACCENT + // U+22C5 DOT OPERATOR + // U+25CA LOZENGE + // U+2212 MINUS SIGN + +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/tz b/squashfs-root/usr/share/X11/xkb/symbols/tz new file mode 100644 index 0000000..7b57af6 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/tz @@ -0,0 +1,59 @@ +// Keyboard layout for Swahili in Arabic script. +// Based on Martin Vidner's Buckwalter transliteration variant of the Arabic keyboard +// Please notify any corrections or omissions to +// Kevin Donnelly (kevin@dotmon.com) + +default partial alphanumeric_keys +xkb_symbols "swa" { + name[Group1]= "Swahili (Tanzania)"; + + key { [ 0x1000670, VoidSymbol ] }; + + key { [ 0x1000661, VoidSymbol ] }; + key { [ 0x1000662, VoidSymbol ] }; + key { [ 0x1000663, VoidSymbol ] }; + key { [ 0x1000664, VoidSymbol ] }; + key { [ 0x1000665, Arabic_percent ] }; + key { [ 0x1000666, VoidSymbol ] }; + key { [ 0x1000667, VoidSymbol ] }; + key { [ 0x1000668, VoidSymbol ] }; + key { [ 0x1000669, 0x100fd3e ] }; + key { [ 0x1000660, 0x100fd3f ] }; + key { [ minus, Arabic_tatweel ] }; + key { [ equal, plus ] }; + + key { [ Arabic_qaf, Arabic_gaf ] }; + key { [ Arabic_waw, Arabic_hamzaonwaw ] }; + key { [ 0x1000656, Arabic_ain ] }; + key { [ Arabic_ra, Arabic_tteh ] }; + key { [ Arabic_teh, Arabic_tah ] }; + key { [ Arabic_yeh, Arabic_alefmaksura ] }; + key { [ Arabic_damma, Arabic_dammatan ] }; + key { [ Arabic_kasra, Arabic_hamzaonyeh ] }; + key { [ Arabic_sukun, 0x1000657 ] }; + key { [ Arabic_peh, Arabic_tehmarbuta ] }; + key { [ VoidSymbol, VoidSymbol ] }; + + key { [ Arabic_fatha, Arabic_alef ] }; + key { [ Arabic_seen, Arabic_sad ] }; + key { [ Arabic_dal, Arabic_dad ] }; + key { [ Arabic_feh, Arabic_fathatan ] }; + key { [ 0x10006A0, Arabic_ghain ] }; + key { [ Arabic_ha, Arabic_hah ] }; + key { [ Arabic_jeem, VoidSymbol ] }; + key { [ Arabic_kaf, Arabic_kasratan ] }; + key { [ Arabic_lam, Arabic_shadda ] }; + key { [ Arabic_semicolon, VoidSymbol ] }; + key { [ Arabic_hamza, VoidSymbol ] }; + + key { [ Arabic_zain, Arabic_zah ] }; + key { [ Arabic_khah, VoidSymbol ] }; + key { [ Arabic_tcheh, Arabic_sheen ] }; + key { [ 0x10006A8, Arabic_theh ] }; + key { [ Arabic_beh, Arabic_thal ] }; + key { [ Arabic_noon, VoidSymbol ] }; + key { [ Arabic_meem, VoidSymbol ] }; + key { [ Arabic_comma, Arabic_hamzaunderalef ] }; + key { [ 0x10006d4, Arabic_hamzaonalef ] }; + key { [ VoidSymbol, Arabic_question_mark ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/ua b/squashfs-root/usr/share/X11/xkb/symbols/ua new file mode 100644 index 0000000..89c9273 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/ua @@ -0,0 +1,315 @@ +// Keyboard layouts for the Ukraine. +// AEN & Leon Kanter +// last changes 2007/10/03 by Andriy Rysin + +// The legacy WinKeys layout extended on the third and fourth level with +// some Unicode symbols (typographic quotes, m-dash, n-dash, ...), some +// often-used Cyrillics from other Slavic languages, and some often-used +// ASCII symbols (slash, brackets, ...). +default partial alphanumeric_keys +xkb_symbols "unicode" { + + include "ua(winkeys)" + name[Group1]= "Ukrainian"; + + key { [ apostrophe, U02BC, U0301, asciitilde ] }; // Apostrophe and Stress symbol + key { [ 1, exclam, onesuperior ] }; + key { [ 2, quotedbl, twosuperior, U2019 ] }; // single quote used often as an apostrophe (deprecated) + key { [ 3, numerosign, U00A7, U20B4 ] }; // Paragraph and Hryvnia sign + key { [ 4, semicolon, dollar, EuroSign ] }; + key { [ 5, percent, degree ] }; + key { [ 6, colon, less ] }; + key { [ 7, question, greater ] }; + key { [ 8, asterisk, enfilledcircbullet ] }; + key { [ 9, parenleft, bracketleft, braceleft ] }; + key { [ 0, parenright, bracketright, braceright ] }; + key { [ minus, underscore, emdash, endash ] }; + key { [ equal, plus, notequal, plusminus ] }; + + key { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] }; + key { [ Cyrillic_ka, Cyrillic_KA, registered ] }; // Registered tm + key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; + key { [ Ukrainian_yi, Ukrainian_YI, Cyrillic_hardsign,Cyrillic_HARDSIGN ] }; + key { [ Ukrainian_i, Ukrainian_I, Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Ukrainian_ie, Ukrainian_IE, Cyrillic_e, Cyrillic_E ] }; + + key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN, backslash, bar ] }; + + key { [ Cyrillic_es, Cyrillic_ES, copyright ] }; + key { [ Cyrillic_te, Cyrillic_TE, trademark ] }; + key { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark ] }; + key { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark ] }; + key { [ period, comma, slash, ellipsis ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "legacy" { + + name[Group1]= "Ukrainian (legacy)"; + + key { [ apostrophe, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numbersign ] }; + key { [ 4, asterisk ] }; + key { [ 5, colon ] }; + key { [ 6, comma ] }; + key { [ 7, period ] }; + key { [ 8, semicolon ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Ukrainian_yi, Ukrainian_YI ] }; + key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; + + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Ukrainian_i, Ukrainian_I ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Ukrainian_ie, Ukrainian_IE ] }; + + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key {[Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; + key { [ slash, question ] }; + + key { [ slash, bar ] }; +}; + +partial alphanumeric_keys +xkb_symbols "winkeys" { + + include "ua(legacy)" + name[Group1]= "Ukrainian (Win keys)"; + + key { [ 3, numerosign ] }; + key { [ 4, semicolon ] }; + key { [ 5, percent ] }; + key { [ 6, colon ] }; + key { [ 7, question ] }; + key { [ 8, asterisk ] }; + key { [ period, comma ] }; +}; + +partial alphanumeric_keys +xkb_symbols "typewriter" { + + include "ua(legacy)" + name[Group1]= "Ukrainian (typewriter)"; + + key { [ apostrophe, quotedbl ] }; + key { [ exclam, 1 ] }; + key { [ numerosign, 2 ] }; + key { [ slash, 3 ] }; + key { [ semicolon, 4 ] }; + key { [ colon, 5 ] }; + key { [ comma, 6 ] }; + key { [ period, 7 ] }; + key { [ underscore, 8 ] }; + key { [ question, 9 ] }; + key { [ percent, 0 ] }; + + key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; + + key { [ Cyrillic_i, Cyrillic_I ] }; + + key { [ Ukrainian_i, Ukrainian_I ] }; + key { [ Ukrainian_yi, Ukrainian_YI ] }; + + key { [ parenleft, parenright ] }; +}; + +partial alphanumeric_keys +xkb_symbols "phonetic" { + + include "ua(legacy)" + name[Group1]= "Ukrainian (phonetic)"; + + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Ukrainian_i, Ukrainian_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; + + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Ukrainian_yi, Ukrainian_YI ] }; + key { [ Ukrainian_ie, Ukrainian_IE ] }; + key { [ slash, question ] }; +}; + +// Ukrainian RSTU 2019-91 keyboard layout (Respublikanskij STandart Ukrajiny). +// Andrew Porokhnyak +partial alphanumeric_keys +xkb_symbols "rstu" { + + include "ua(legacy)" + name[Group1]= "Ukrainian (standard RSTU)"; + + key { [ apostrophe, question ] }; + key { [ exclam, 1 ] }; + key { [ quotedbl, 2 ] }; + key { [ numbersign, 3 ] }; + key { [ semicolon, 4 ] }; + key { [ colon, 5 ] }; + key { [ comma, 6 ] }; + key { [ period, 7 ] }; + key { [ asterisk, 8 ] }; + key { [ parenleft, 9 ] }; + key { [ parenright, 0 ] }; + + key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; + + key { [ Cyrillic_i, Cyrillic_I ] }; + + key { [ Ukrainian_i, Ukrainian_I ] }; + key { [ Ukrainian_yi, Ukrainian_YI ] }; + + key { [ slash, percent ] }; +}; + +// Russian RSTU 2019-91 keyboard layout (Respublikanskij STandart Ukrajiny). +// Andrew Porokhnyak +partial alphanumeric_keys +xkb_symbols "rstu_ru" { + + include "ru(common)" + name[Group1]= "Russian (Ukraine, standard RSTU)"; + + key { [ apostrophe, question ] }; + key { [ exclam, 1 ] }; + key { [ quotedbl, 2 ] }; + key { [ numbersign, 3 ] }; + key { [ semicolon, 4 ] }; + key { [ colon, 5 ] }; + key { [ comma, 6 ] }; + key { [ period, 7 ] }; + key { [ asterisk, 8 ] }; + key { [ parenleft, 9 ] }; + key { [ parenright, 0 ] }; + key { [ slash, percent ] }; + + key.type[group1]="ALPHABETIC"; + + key { [ Cyrillic_io, Cyrillic_IO ] }; +}; + +// Homophonic keyboard layout (by Tomas Marko Miljenović), +// based on the Ukrainian National Transliteration, +// commonly used phonetic layouts for Mac and Win. +partial alphanumeric_keys +xkb_symbols "homophonic" { + + include "ua(legacy)" + name[Group1]= "Ukrainian (homophonic)"; + + key { [ grave, underscore ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, semicolon ] }; + key { [ 4, colon ] }; + key { [ 5, percent ] }; + key { [ 6, apostrophe ] }; + key { [ 7, quotedbl ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ Ukrainian_ie, Ukrainian_IE ] }; + key { [ Ukrainian_yi, Ukrainian_YI ] }; + + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Ukrainian_i, Ukrainian_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/ua(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/us b/squashfs-root/usr/share/X11/xkb/symbols/us new file mode 100644 index 0000000..f488a8e --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/us @@ -0,0 +1,1789 @@ +default partial alphanumeric_keys modifier_keys +xkb_symbols "basic" { + + name[Group1]= "English (US)"; + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + + key { [ backslash, bar ] }; +}; + +partial alphanumeric_keys +xkb_symbols "euro" { + + include "us(basic)" + name[Group1]= "English (US, euro on 5)"; + + include "eurosign(5)" + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "ibm238l" { + + include "us(basic)" + name[Group1]= "English (US, IBM Arabic 238_L)"; + + key { [ comma, comma ] }; + key { [ period, period ] }; + key { [ quoteleft, asciitilde ] }; + key { [ backslash, bar ] }; + key { [ leftcaret, rightcaret ] }; +}; + +partial alphanumeric_keys +xkb_symbols "intl" { + + include "us(basic)" + name[Group1]= "English (US, intl., with dead keys)"; + + key { [dead_grave, dead_tilde, grave, asciitilde ] }; + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, at, twosuperior, dead_doubleacute ] }; + key { [ 3, numbersign, threesuperior, dead_macron ] }; + key { [ 4, dollar, currency, sterling ] }; + key { [ 5, percent, EuroSign, dead_cedilla ] }; + key { [ 6, dead_circumflex, onequarter, asciicircum ] }; + key { [ 7, ampersand, onehalf, dead_horn ] }; + key { [ 8, asterisk, threequarters, dead_ogonek ] }; + key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; + key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; + key { [ minus, underscore, yen, dead_belowdot ] }; + key { [ equal, plus, multiply, division ] }; + + key { [ q, Q, adiaeresis, Adiaeresis ] }; + key { [ w, W, aring, Aring ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, registered, registered ] }; + key { [ t, T, thorn, THORN ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ p, P, odiaeresis, Odiaeresis ] }; + key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; + key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, f, F ] }; + key { [ g, G, g, G ] }; + key { [ h, H, h, H ] }; + key { [ j, J, j, J ] }; + key { [ k, K, oe, OE ] }; + + key { [ l, L, oslash, Ooblique ] }; + key { [ semicolon, colon, paragraph, degree ] }; + key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; + + key { [ z, Z, ae, AE ] }; + key { [ x, X, x, X ] }; + key { [ c, C, copyright, cent ] }; + key { [ v, V, v, V ] }; + key { [ b, B, b, B ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, mu, mu ] }; + key { [ comma, less, ccedilla, Ccedilla ] }; + key { [ period, greater, dead_abovedot, dead_caron ] }; + key { [ slash, question, questiondown, dead_hook ] }; + key { [ backslash, bar, notsign, brokenbar ] }; + + key { [ backslash, bar, backslash, bar ] }; + + include "level3(ralt_switch)" +}; + +// Based on symbols/us_intl keyboard map: +// Dead-keys definition for a very simple US/ASCII layout. +// by Conectiva (http://www.conectiva.com.br) +// modified by Ricardo Y. Igarashi (iga@that.com.br) + +// Added the following deadkeys, to make it truly international: +// +// dead_macron: on AltGr-minus +// dead_breve: on AltGr-parenleft +// dead_abovedot: on AltGr-period +// dead_abovering: on AltGr-0 +// dead_doubleacute: on AltGr-equal (as quotedbl is already used) +// dead_caron: on AltGr-less (AltGr-shift-comma) +// dead_cedilla: on AltGr-comma +// dead_ogonek: on AltGr-semicolon +// dead_belowdot: on AltGr-underscore (AltGr-shift-minus) +// dead_hook: on AltGr-question +// dead_horn: on AltGr-plus (AltGr-shift-equal) +// dead_diaeresis: on AltGr-colon (Alt-shift-semicolon) +// +// those were already there: +// dead_grave +// dead_acute +// dead_circumflex +// dead_tilde +// dead_diaeresis + +partial alphanumeric_keys +xkb_symbols "alt-intl" { + + include "us" + name[Group1]= "English (US, alt. intl.)"; + + key { [ dead_grave, dead_tilde, grave, asciitilde ] }; + key { [ 5, percent, EuroSign ] }; + key { [ 6, dead_circumflex, asciicircum, asciicircum ] }; + key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; + key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; + key { [ minus, underscore, dead_macron, dead_belowdot ] }; + key { [ equal, plus, dead_doubleacute, dead_horn ] }; + + key { [ e, E, EuroSign, cent ] }; + + key { [ semicolon, colon, dead_ogonek, dead_diaeresis ] }; + key { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; + + key { [ comma, less, dead_cedilla, dead_caron ] }; + key { [ period, greater, dead_abovedot, dead_circumflex ] }; + key { [ slash, question, dead_hook, dead_hook ] }; + + key { [ backslash, bar, backslash, bar ] }; + + include "level3(ralt_switch)" +}; + +// based on a keyboard map from an 'xkb/symbols/dk' file + +partial alphanumeric_keys +xkb_symbols "dvorak" { + + name[Group1]= "English (Dvorak)"; + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft, dead_grave] }; + key { [ 0, parenright ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright, dead_tilde] }; + + key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; + key { [ comma, less, dead_cedilla, dead_caron ] }; + key { [ period, greater, dead_abovedot, periodcentered ] }; + key { [ p, P ] }; + key { [ y, Y ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ c, C ] }; + key { [ r, R ] }; + key { [ l, L ] }; + key { [ slash, question ] }; + key { [ equal, plus ] }; + + key { [ a, A ] }; + key { [ o, O ] }; + key { [ e, E ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ d, D ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ n, N ] }; + key { [ s, S ] }; + key { [ minus, underscore ] }; + + key { [ semicolon, colon, dead_ogonek, dead_doubleacute ] }; + key { [ q, Q ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ x, X ] }; + key { [ b, B ] }; + key { [ m, M ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ z, Z ] }; + + key { [ backslash, bar ] }; +}; + +// Dvorak intl., with dead keys +// Olivier Mehani (shtrom-xorg@ssji.net) +// Reproduce the per-key mapping of us(intl) for the dvorak layout +// aka "I just swapped my keys over" +partial alphanumeric_keys +xkb_symbols "dvorak-intl" { + + include "us(dvorak)" + name[Group1]= "English (Dvorak, intl., with dead keys)"; + + key { [dead_grave, dead_tilde, grave, asciitilde ] }; + + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, at, twosuperior, dead_doubleacute ] }; + key { [ 3, numbersign, threesuperior, dead_macron ] }; + key { [ 4, dollar, currency, sterling ] }; + key { [ 5, percent, EuroSign, dead_cedilla ] }; + key { [ 6, dead_circumflex, onequarter, asciicircum ] }; + key { [ 7, ampersand, onehalf, dead_horn ] }; + key { [ 8, asterisk, threequarters, dead_ogonek ] }; + key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; + key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; + key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; + key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; + + key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; + key { [ comma, less, ccedilla, Ccedilla ] }; + key { [ period, greater, dead_abovedot, dead_caron ] }; + key { [ p, P, odiaeresis, Odiaeresis ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + // key { [ f, F ] }; + // key { [ g, G ] }; + key { [ c, C, copyright, cent ] }; + key { [ r, R, registered, registered ] }; + key { [ l, L, oslash, Ooblique ] }; + key { [ slash, question, questiondown, dead_hook ] }; + // key { [ equal, plus, multiply, division ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ d, D, eth, ETH ] }; + // key { [ h, H ] }; + key { [ t, T, thorn, THORN ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ s, S, ssharp, section ] }; + // key { [ minus, underscore, yen, dead_belowdot ] }; + + key { [ semicolon, colon, paragraph, degree ] }; + key { [ q, Q, adiaeresis, Adiaeresis ] }; + // key { [ j, J ] }; + key { [ k, K, oe, OE ] }; + // key { [ x, X ] }; + // key { [ b, B ] }; + key { [ m, M, mu, mu ] }; + key { [ w, W, aring, Aring ] }; + // key { [ v, V ] }; + key { [ z, Z, ae, AE ] }; + + key { [ backslash, bar, notsign, brokenbar ] }; + + include "level3(ralt_switch)" +}; + +// Dvorak international without dead keys +// Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net) +// Based on information from http://www.poupinou.org/dvorak/index.html +// +// ` 1 2 3 4 5 6 7 8 9 0 [ ] \ +// € +// +// ' , . p y f g c r l / = +// ä ê ë ü ç +// +// a o e u i d h t n s - +// à ô é û î ß +// +// ; q j k x b m w v z +// â ö è ù ï + +partial alphanumeric_keys +xkb_symbols "dvorak-alt-intl" { + + include "us(dvorak)" + name[Group1]= "English (Dvorak, alt. intl.)"; + + key { [ 4, dollar, EuroSign ] }; + + key { [ comma, less, adiaeresis, dead_caron ] }; + key { [ period, greater, ecircumflex, periodcentered ] }; + key { [ p, P, ediaeresis, dead_cedilla ] }; + key { [ y, Y, udiaeresis ] }; + key { [ c, C, ccedilla, dead_abovedot ] }; + + key { [ a, A, agrave ] }; + key { [ o, O, ocircumflex ] }; + key { [ e, E, eacute ] }; + key { [ u, U, ucircumflex ] }; + key { [ i, I, icircumflex ] }; + key { [ s, S, ssharp ] }; + + key { [ semicolon, colon, acircumflex ] }; + key { [ q, Q, odiaeresis, dead_ogonek ] }; + key { [ j, J, egrave, dead_doubleacute ] }; + key { [ k, K, ugrave ] }; + key { [ x, X, idiaeresis ] }; + + include "level3(ralt_switch)" +}; + +// Left and right handed dvorak layouts +// by sqweek 2006-01-30 +// Based on the corresponding layouts in the console-tools package. +partial alphanumeric_keys +xkb_symbols "dvorak-l" { + + include "us(dvorak)" + name[Group1]= "English (Dvorak, left-handed)"; + + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ slash, question ] }; + key { [ p, P ] }; + key { [ f, F ] }; + key { [ m, M ] }; + key { [ l, L ] }; + key { [ j, J ] }; + key { [ 4, dollar ] }; + key { [ 3, numbersign ] }; + key { [ 2, at ] }; + key { [ 1, exclam ] }; + + key { [ semicolon, colon ] }; + key { [ q, Q ] }; + key { [ b, B ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ r, R ] }; + key { [ s, S ] }; + key { [ o, O ] }; + key { [ period, greater ] }; + key { [ 6, asciicircum ] }; + key { [ 5, percent ] }; + key { [ equal, plus ] }; + + key { [ minus, underscore ] }; + key { [ k, K ] }; + key { [ c, C ] }; + key { [ d, D ] }; + key { [ t, T ] }; + key { [ h, H ] }; + key { [ e, E ] }; + key { [ a, A ] }; + key { [ z, Z ] }; + key { [ 8, asterisk ] }; + key { [ 7, ampersand ] }; + + key { [ apostrophe, quotedbl ] }; + key { [ x, X ] }; + key { [ g, G ] }; + key { [ v, V ] }; + key { [ w, W ] }; + key { [ n, N ] }; + key { [ i, I ] }; + key { [ comma, less ] }; + key { [ 0, parenright ] }; + key { [ 9, parenleft ] }; +}; + +partial alphanumeric_keys +xkb_symbols "dvorak-r" { + + include "us(dvorak)" + name[Group1]= "English (Dvorak, right-handed)"; + + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ j, J ] }; + key { [ l, L ] }; + key { [ m, M ] }; + key { [ f, F ] }; + key { [ p, P ] }; + key { [ slash, question ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ q, Q ] }; + key { [ period, greater ] }; + key { [ o, O ] }; + key { [ r, R ] }; + key { [ s, S ] }; + key { [ u, U ] }; + key { [ y, Y ] }; + key { [ b, B ] }; + key { [ semicolon, colon ] }; + key { [ equal, plus ] }; + + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ z, Z ] }; + key { [ a, A ] }; + key { [ e, E ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ d, D ] }; + key { [ c, C ] }; + key { [ k, K ] }; + key { [ minus, underscore ] }; + + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ x, X ] }; + key { [ comma, less ] }; + key { [ i, I ] }; + key { [ n, N ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ g, G ] }; + key { [ apostrophe, quotedbl ] }; +}; + +// Classic dvorak layout +// by Piter Punk - 2006-07-06 +// Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net +// on xorg list. +partial alphanumeric_keys +xkb_symbols "dvorak-classic" { + + name[Group1]= "English (classic Dvorak)"; + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + + key { [ bracketleft, braceleft ] }; + key { [ 7, ampersand ] }; + key { [ 5, percent ] }; + key { [ 3, numbersign ] }; + key { [ 1, exclam ] }; + key { [ 9, parenleft, dead_grave] }; + key { [ 0, parenright ] }; + key { [ 2, at ] }; + key { [ 4, dollar ] }; + key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; + key { [ 8, asterisk ] }; + key { [ bracketright, braceright, dead_tilde] }; + + key { [ slash, question ] }; + key { [ comma, less, dead_cedilla, dead_caron ] }; + key { [ period, greater, dead_abovedot, periodcentered ] }; + key { [ p, P ] }; + key { [ y, Y ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ c, C ] }; + key { [ r, R ] }; + key { [ l, L ] }; + key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; + key { [ equal, plus ] }; + + key { [ a, A ] }; + key { [ o, O ] }; + key { [ e, E ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ d, D ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ n, N ] }; + key { [ s, S ] }; + key { [ minus, underscore ] }; + + key { [ semicolon, colon, dead_ogonek, dead_doubleacute ] }; + key { [ q, Q ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ x, X ] }; + key { [ b, B ] }; + key { [ m, M ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ z, Z ] }; + key { [ backslash, bar ] }; +}; + +// programmer Dvorak, by Roland Kaufmann +// License: BSD, available at +// Main features: Numbers are in shift position (like French), symbols have been +// placed in locations that give good hand-alternation and finger rolling with +// symbols that usually follows, accented characters are possible for I18N. +// Patch suggestions should be sent upstream. +partial alphanumeric_keys +xkb_symbols "dvp" { + + include "us(dvorak)" + name[Group1] = "English (programmer Dvorak)"; + + // Unmodified Shift AltGr Shift+AltGr + // symbols row, left side + key { [ dollar, asciitilde, dead_tilde ] }; + key { [ ampersand, percent ] }; + key { [ bracketleft, 7, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ braceleft, 5, cent ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ braceright, 3, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ parenleft, 1, EuroSign ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ equal, 9, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + + // symbols row, right side + key { [ asterisk, 0 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ parenright, 2, onehalf ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ plus, 4 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ bracketright, 6 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ exclam, 8, exclamdown, U2E18 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; // reversed interrobang + key { [ numbersign, grave, dead_grave ] }; + key { [ BackSpace, BackSpace ] }; + + // upper row, left side + key { [ semicolon, colon, dead_diaeresis ] }; + key { [ comma, less, guillemotleft, U201C ] }; + key { [ period, greater, guillemotright, U201D ] }; + key { [ p, P, paragraph, section ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + + // upper row, right side + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ r, R, registered, trademark ] }; + key { [ slash, question, questiondown, U203D ] }; // interrobang + key { [ at, asciicircum, dead_circumflex, dead_caron ] }; + + // home row, left side + key { [ a, A, aring, Aring ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ e, E, ae, AE ] }; + key { [ u, U, eacute, Eacute ] }; + + // home row, right side + key { [ d, D, eth, ETH ] }; + key { [ h, H, dead_acute ] }; + key { [ t, T, thorn, THORN ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ s, S, ssharp ] }; + key { [ minus, underscore, hyphen, endash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ backslash, bar ] }; + + // lower row, left side + key { [ apostrophe, quotedbl, dead_acute ] }; + + // do NOT hardcode this switch; use lv3:ralt_switch option instead! + //include "level3(ralt_switch)" +}; + +// phonetic layout for Russian letters on an US keyboard +// by Ivan Popov 2005-07-17 + +// level3 modifier is a shortcut to the "us" meaning of the keys where +// we place cyrillic letters, handy for accessing the corresponding +// punctuation marks. +// It is important to have access to punctuation marks, and the rest of +// alphabetical keys are added for being consequent so that the users +// can expect the level3 modifier to give what the key label shows. + +partial alphanumeric_keys +xkb_symbols "rus" { + + include "us(basic)" + name[Group1]= "Russian (US, phonetic)"; + +key.type[group1]="FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_e, Cyrillic_E, backslash, bar ] }; + key { [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "mac" { + + include "us(basic)" + name[Group1]= "English (Macintosh)"; + key.type[group1]="FOUR_LEVEL"; + + // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg + key { [ section, plusminus, section, plusminus ] }; + key { [ grave, asciitilde, dead_grave, dead_horn ] }; + key { [ 1, exclam, exclamdown, U2044 ] }; + key { [ 2, at, trademark, EuroSign ] }; + key { [ 3, numbersign, sterling, U2039 ] }; + key { [ 4, dollar, cent, U203A ] }; + key { [ 5, percent, infinity, UFB01 ] }; + key { [ 6,asciicircum, section, UFB02 ] }; + key { [ 7, ampersand, paragraph, doubledagger ] }; + key { [ 8, asterisk, enfilledcircbullet, degree ] }; + key { [ 9, parenleft, ordfeminine, periodcentered ] }; + key { [ 0, parenright, masculine,singlelowquotemark] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ equal, plus, notequal, plusminus ] }; + + key { [ q, Q, oe, OE ] }; + key { [ w, W, U2211,doublelowquotemark] }; + key { [ e, E, dead_acute, acute ] }; + key { [ r, R, registered, U2030 ] }; + key { [ t, T, dagger, dead_caron ] }; + key { [ y, Y, yen, onequarter ] }; + key { [ u, U, dead_diaeresis, diaeresis ] }; + key { [ i, I, dead_circumflex, U02C6 ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, Greek_pi, U220F ] }; + key { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] }; + key { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] }; + key { [ backslash, bar, guillemotleft, guillemotright ] }; + + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, dead_stroke ] }; + key { [ d, D, partialderivative, eth ] }; + key { [ f, F, function, dead_hook ] }; + key { [ g, G, copyright, dead_doubleacute ] }; + key { [ h, H, dead_abovedot, dead_belowdot ] }; + key { [ j, J, U2206, onehalf ] }; + key { [ k, K,dead_abovering, UF8FF ] }; + + key { [ l, L, notsign, THORN ] }; + key { [ semicolon, colon, U2026, thorn ] }; + key { [apostrophe, quotedbl, ae, AE ] }; + + key { [ z, Z, Greek_OMEGA, dead_cedilla ] }; + key { [ x, X, U2248, dead_ogonek ] }; + // unclear whether "approxeq" is 2248 or 2245 + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, squareroot, U25CA ] }; + key { [ b, B, integral, idotless ] }; + key { [ n, N, dead_tilde, U02DC ] }; + key { [ m, M, mu, threequarters ] }; + key { [ comma, less, lessthanequal, dead_macron ] }; + key { [ period, greater, greaterthanequal, dead_breve ] }; + key { [ slash, question, division, questiondown ] }; + + include "level3(ralt_switch)" +}; + +// Colemak symbols for xkb on X.Org Server 7.x +// 2006-01-01 Shai Coleman, http://colemak.com/ + +partial alphanumeric_keys +xkb_symbols "colemak" { + + include "us" + name[Group1]= "English (Colemak)"; + + key { [ grave, asciitilde, dead_tilde, asciitilde ] }; + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, at, masculine, twosuperior ] }; + key { [ 3, numbersign, ordfeminine, threesuperior ] }; + key { [ 4, dollar, cent, sterling ] }; + key { [ 5, percent, EuroSign, yen ] }; + key { [ 6, asciicircum, hstroke, Hstroke ] }; + key { [ 7, ampersand, eth, ETH ] }; + key { [ 8, asterisk, thorn, THORN ] }; + key { [ 9, parenleft, leftsinglequotemark, leftdoublequotemark ] }; + key { [ 0, parenright, rightsinglequotemark, rightdoublequotemark ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ equal, plus, multiply, division ] }; + + key { [ q, Q, adiaeresis, Adiaeresis ] }; + key { [ w, W, aring, Aring ] }; + key { [ f, F, atilde, Atilde ] }; + key { [ p, P, oslash, Ooblique ] }; + key { [ g, G, dead_ogonek, asciitilde ] }; + key { [ j, J, dstroke, Dstroke ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; + key { [ bracketleft, braceleft, guillemotleft, 0x1002039 ] }; + key { [ bracketright, braceright, guillemotright, 0x100203a ] }; + key { [ backslash, bar, asciitilde, asciitilde ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ r, R, dead_grave, asciitilde ] }; + key { [ s, S, ssharp, asciitilde ] }; + key { [ t, T, dead_acute, dead_doubleacute ] }; + key { [ d, D, dead_diaeresis, asciitilde ] }; + key { [ h, H, dead_caron, asciitilde ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ apostrophe, quotedbl, otilde, Otilde ] }; + + key { [ z, Z, ae, AE ] }; + key { [ x, X, dead_circumflex, asciitilde ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, oe, OE ] }; + key { [ b, B, dead_breve, asciitilde ] }; + key { [ k, K, dead_abovering, asciitilde ] }; + key { [ m, M, dead_macron, asciitilde ] }; + key { [ comma, less, dead_cedilla, asciitilde ] }; + key { [ period, greater, dead_abovedot, asciitilde ] }; + key { [ slash, question, questiondown, asciitilde ] }; + + key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ space, space, space, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + +// I do NOT like dead-keys - the International keyboard as defined by Microsoft +// does not fit my needs. Why use two keystrokes for all simple characters (eg ' +// and generates a single ') just to have an é (eacute) in two strokes +// as well? I type ' more often than é (eacute). +// +// This file works just like a regular keyboard, BUT has all dead-keys +// accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+" +// followed by an e. In other words, this keyboard is not international as long +// as you leave the right Alt key alone. +// +// The original MS International keyboard was intended for Latin1 (iso8859-1). +// With the introduction of iso8859-15, the (important) ligature oe (and OE) +// became available. I added them next to ae. Because I write ediaeresis more +// often than registered, I moved registered to be next to copyright and added +// ediaeresis and idiaeresis. - Adriaan + +partial alphanumeric_keys +xkb_symbols "altgr-intl" { + + include "us(intl)" + name[Group1]= "English (intl., with AltGr dead keys)"; + +// five dead keys moved into level3: + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] }; + +// diversions from the MS Intl keyboard: + + key { [ 1, exclam, onesuperior, exclamdown ] }; + key { [ r, R, ediaeresis, Ediaeresis ] }; + key { [ j, J, idiaeresis, Idiaeresis ] }; + key { [ x, X, oe, OE ] }; + key { [ v, V, registered, registered ] }; + +// onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys: + + key { [ 6, asciicircum, dead_circumflex, onequarter ] }; + key { [ 7, ampersand, dead_horn, onehalf ] }; + key { [ 8, asterisk, dead_ogonek, threequarters ] }; + + include "level3(ralt_switch)" +}; + +// Intel ClassmatePC Keyboard Layout +// by Piter PUNK +// +// The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl) +// to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since +// the keyboard does not have AltGr key. The EuroSign is engraved at 5 key. + +// classmate - us(basic) +partial alphanumeric_keys +xkb_symbols "classmate" { + include "us(basic)" + name[Group1]= "English (US)"; + + key { [ backslash, bar, backslash, bar ] }; + + include "eurosign(5)" + include "level3(switch)" +}; + +// classmate-intl - us(intl) +// RCTL is generated by Fn+Alt, because that, when trying to access +// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got +// the keypad keycodes. The keypad is changed to make Fn+Alt+ +// generate the same symbol as the original key. +partial alphanumeric_keys +xkb_symbols "classmate-intl" { + include "us(intl)" + name[Group1]= "USA - ClassmatePC (International)"; + key.type[Group1]="FOUR_LEVEL"; + + key { [ backslash, bar, backslash, bar ] }; + + key { [ KP_Home, KP_7, + onehalf, dead_horn ] }; + key { [ KP_Up, KP_8, + threequarters, dead_ogonek ] }; + key { [ KP_Prior, KP_9, + leftsinglequotemark, dead_breve ] }; + key { [ KP_Multiply, KP_Multiply, + rightsinglequotemark, dead_abovering ] }; + + key { [ KP_Left, KP_4, + uacute, Uacute ] }; + key { [ KP_Begin, KP_5, + iacute, Iacute ] }; + key { [ KP_Right, KP_6, + oacute, Oacute ] }; + key { [ KP_Subtract, KP_Subtract, + odiaeresis, Odiaeresis ] }; + + key { [ KP_Down, KP_2, + oe, OE ] }; + key { [ KP_Next, KP_3, + oslash, Ooblique ] }; + key { [ KP_Add, KP_Add, + paragraph, degree ] }; + + key { [ KP_Insert, KP_0, + mu, mu ] }; + key { [ KP_Delete, KP_Decimal, + dead_abovedot, dead_caron ] }; + key { [ KP_Divide, KP_Divide, + questiondown, dead_hook ] }; + + include "level3(switch)" +}; + +// classmate-alt-intl - us(alt-intl) +// RCTL is generated by Fn+Alt, because that, when trying to access +// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got +// the keypad keycodes. The keypad is changed to make Fn+Alt+ +// generate the same symbol as the original key. +partial alphanumeric_keys +xkb_symbols "classmate-alt-intl" { + include "us(alt-intl)" + name[Group1]= "USA - ClassmatePC (Alternative international)"; + key.type[Group1]="FOUR_LEVEL"; + + key { [ backslash, bar, backslash, bar ] }; + + key { [ KP_Subtract, KP_Subtract ] }; + + key { [ KP_Prior, KP_9, + leftsinglequotemark, dead_breve ] }; + key { [ KP_Multiply, KP_Multiply, + rightsinglequotemark, dead_abovering ] }; + + key { [ KP_Add, KP_Add, + dead_ogonek, dead_diaeresis ] }; + + key { [ KP_Delete, KP_Decimal, + dead_abovedot, dead_circumflex ] }; + key { [ KP_Divide, KP_Divide, + dead_hook, dead_hook ] }; + + include "level3(switch)" +}; + +// classmate-altgr-intl - us(altgr-intl) +// RCTL is generated by Fn+Alt, because that, when trying to access +// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got +// the keypad keycodes. The keypad is changed to make Fn+Alt+ +// generate the same symbol as the original key. +partial alphanumeric_keys +xkb_symbols "classmate-altgr-intl" { + include "us(altgr-intl)" + name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)"; + key.type[Group1]="FOUR_LEVEL"; + + key { [ backslash, bar, backslash, bar ] }; + + key { [ KP_Home, KP_7, + dead_horn, dead_horn ] }; + key { [ KP_Up, KP_8, + dead_ogonek, dead_ogonek ] }; + key { [ KP_Prior, KP_9, + leftsinglequotemark, dead_breve ] }; + key { [ KP_Multiply, KP_Multiply, + rightsinglequotemark, dead_abovering ] }; + + key { [ KP_Left, KP_4, + uacute, Uacute ] }; + key { [ KP_Begin, KP_5, + iacute, Iacute ] }; + key { [ KP_Right, KP_6, + oacute, Oacute ] }; + key { [ KP_Subtract, KP_Subtract, + odiaeresis, Odiaeresis ] }; + + key { [ KP_End, KP_1, + idiaeresis, Idiaeresis ] }; + key { [ KP_Down, KP_2, + oe, OE ] }; + key { [ KP_Next, KP_3, + oslash, Ooblique ] }; + key { [ KP_Add, KP_Add, + paragraph, degree ] }; + + key { [ KP_Insert, KP_0, + mu, mu ] }; + key { [ KP_Delete, KP_Decimal, + dead_abovedot, dead_caron ] }; + key { [ KP_Divide, KP_Divide, + questiondown, dead_hook ] }; + + include "level3(switch)" +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + + include "us(basic)" + name[Group1]= "English (US)"; + + // OLPC international US English keyboard layout. + // It's a little different from the usual international layout. + // See: http://wiki.laptop.org/go/Image:Keyboard_english.png + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ 1, exclam, exclamdown, exclamdown ] }; + key { [ 2, at, notsign, notsign ] }; + key { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave + key { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute + key { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above + key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above + key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above + key { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above + key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above + key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above + key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above + key { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above + + key { [ q, Q, Greek_omega, Greek_OMEGA ] }; + key { [ w, W, oslash, Oslash ] }; + key { [ e, E, oe, OE ] }; + key { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla + key { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below + key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below + key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below + key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below + key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below + key { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below + key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below + key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below + + key { [ a, A, ae, AE ] }; + key { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp + key { [ d, D, eth, ETH ] }; + key { [ f, F, thorn, THORN ] }; + key { [ h, H, sterling, sterling ] }; + key { [ j, J, EuroSign, EuroSign ] }; + key { [ semicolon, colon, masculine, ordfeminine ] }; + key { [ apostrophe, quotedbl, currency, currency ] }; + key { [ backslash, bar, section, section ] }; + + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, mu, mu ] }; + key { [ comma, less, guillemotleft, guillemotleft ] }; + key { [ period, greater, guillemotright, guillemotright ] }; + key { [ slash, question, questiondown, questiondown ] }; + + key { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "olpc2" { + include "us(olpc)" + name[Group1]= "English (the divide/multiply keys toggle the layout)"; + include "group(olpc)" +}; + +xkb_symbols "olpcm" { + + include "us(basic)" + name[Group1]= "English (US)"; + + // Mechanical (non-membrane) OLPC int'l US English keyboard layout. + // See: http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ 1, exclam, exclamdown, exclamdown ] }; + key { [ 2, at, notsign, notsign ] }; + key { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave + key { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute + key { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above + key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above + key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above + key { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above + key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above + key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above + key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above + + key { [ q, Q, Greek_omega, Greek_OMEGA ] }; + key { [ w, W, oslash, Oslash ] }; + key { [ e, E, oe, OE ] }; + key { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla + key { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below + key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below + key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below + key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below + key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below + key { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below + key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below + key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below + + key { [ a, A, ae, AE ] }; + key { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp + key { [ d, D, eth, ETH ] }; + key { [ f, F, thorn, THORN ] }; + key { [ h, H, sterling, sterling ] }; + key { [ j, J, EuroSign, EuroSign ] }; + key { [ semicolon, colon, masculine, ordfeminine ] }; + // no AC11 or AC12 on olpcm + + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, mu, mu ] }; + key { [ comma, less, guillemotleft, guillemotleft ] }; + key { [ period, greater, guillemotright, guillemotright ] }; + key { [ slash, question, questiondown, questiondown ] }; + + key { [ backslash, bar, section, section ] }; + key { [ equal, plus, 0x1000303, 0x1000303 ] }; + key { [ apostrophe, quotedbl, currency, currency ] }; + + include "level3(ralt_switch)" +}; + +// Based on Cherokee Nation Official Layout +// http://www.cherokee.org/extras/downloads/font/Keyboard.htm + +partial alphanumeric_keys modifier_keys +xkb_symbols "chr" { + + name[Group1]= "Cherokee"; + key.type[group1]="ALPHABETIC"; + + key { [ grave, U13CA ] }; + key { [ 1, U13B1 ] }; + key { [ 2, U13C7 ] }; + key { [ 3, U13E7 ] }; + key { [ U13D9, U13B0 ] }; + key { [ U13E6, U13B9 ] }; + key { [ U13DC, U13DD ] }; + key { [ U13CB, U13E1 ] }; + key { [ U13D6, U13BA ] }; + key { [ U13D2, parenleft ] }; + key { [ U13C4, parenright ] }; + key { [ U13BF, U13BC ] }; + key { [ U13F3, U13BD ] }; + + key { [ U13AA, U13C6 ] }; + key { [ U13B3, U13EB ] }; + key { [ U13A1, U13E3 ] }; + key { [ U13DB, U13CF ] }; + key { [ U13D4, U13D8 ] }; + key { [ U13EF, U13F2 ] }; + key { [ U13A4, U13AD ] }; + key { [ U13A2, U13F1 ] }; + key { [ U13A3, U13EC ] }; + key { [ U13C1, U13EA ] }; + key { [ U13D5, U13D1 ] }; + key { [ U13B6, U13E4 ] }; + key { [ U13E9, U13EE ] }; + + key { [ U13A0, U13CC ] }; + key { [ U13CD, U13CE ] }; + key { [ U13D7, U13D0 ] }; + key { [ U13A9, U13C8 ] }; + key { [ U13A6, U13E5 ] }; + key { [ U13AF, U13B2 ] }; + key { [ U13DA, U13AB ] }; + key { [ U13B8, U13A7 ] }; + key { [ U13B5, U13AE ] }; + key { [ U13E8, U13E0 ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ U13AC, U13C3 ] }; + key { [ U13F4, U13ED ] }; + key { [ U13D3, U13DF ] }; + key { [ U13A5, U13DE ] }; + key { [ U13A8, U13F0 ] }; + key { [ U13BE, U13BB ] }; + key { [ U13C5, U13B7 ] }; + key { [ comma, U13E2 ] }; + key { [ period, U13B4 ] }; + key { [ U13C2, U13C9 ] }; +}; + +// Serbian charecters added as third level symbols to US keyboard layout. + +partial alphanumeric_keys +xkb_symbols "hbs" { + + include "us" + name[Group1]= "Serbo-Croatian (US)"; + + key { [ grave, asciitilde ] }; + key { [ 6, dead_caron, asciicircum, asciicircum ] }; + key { [ 8, asterisk, multiply, division ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ l, L, U1C9, U1C8 ] }; + key { [ n, N, U1CC, U1CB ] }; + key { [ z, Z, U1C6, U1C5 ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ d, D, dstroke, Dstroke ] }; + key { [ dead_acute, quotedbl, apostrophe, apostrophe ] }; + key { [ space, space, nobreakspace, nobreakspace ] }; + key { [ comma, less, U3003, guillemotright ] }; + key { [ period, greater, ellipsis, guillemotleft ] }; + + include "level3(ralt_switch)" +}; + +//based on http://upload.wikimedia.org/wikipedia/commons/1/18/T-Mobile_G1_launch_event_2.jpg +partial alphanumeric_keys +xkb_symbols "htcdream" { + include "inet(htcdream)" + name[Group1]= "English (US)"; + + //second row + key { [ q, Q, Tab, Tab ] }; + key { [ w, W, grave, grave ] }; + key { [ e, E, underscore, underscore ] }; + key { [ r, R, sterling, sterling ] }; + key { [ t, T, EuroSign, EuroSign ] }; + key { [ y, Y, division, division ] }; + key { [ u, U, multiply, multiply ] }; + key { [ i, I, minus, minus ] }; + key { [ o, O, plus, plus ] }; + key { [ p, P, equal, equal ] }; + + //third row + key { [ a, A, NoSymbol, NoSymbol ] }; + key { [ s, S, bar, bar ] }; + key { [ d ,D, backslash, backslash ] }; + key { [ f, F, braceleft, braceleft ] }; + key { [ g, G, braceright, braceright ] }; + key { [ h, H, colon, colon ] }; + key { [ j, J, semicolon, semicolon ] }; + key { [ k, K, quotedbl, quotedbl ] }; + key { [ l, L, apostrophe, apostrophe ] }; + + //forth row + key { [ z, Z, NoSymbol, NoSymbol ] }; + key { [ x, X, NoSymbol, NoSymbol ] }; + key { [ c, C, NoSymbol, NoSymbol ] }; + key { [ v, V, bracketleft, bracketleft ] }; + key { [ b, B, bracketright, bracketright ] }; + key { [ n, N, less, less ] }; + key { [ m, M, greater, greater ] }; + key { [ comma, comma, question, question ] }; + + //fifth row + key { [ at, at, asciitilde, asciitilde ] }; + + include "level3(alt_switch)" +}; + +// Workman Keyboard Layout symbols for xkb on X.Org Server 7.x +// 09-06-2010 OJ Bucao. http://www.workmanlayout.com + +partial alphanumeric_keys +xkb_symbols "workman" { + + include "us(basic)" + name[Group1]= "English (Workman)"; + + key { [ q, Q ] }; + key { [ d, D ] }; + key { [ r, R ] }; + key { [ w, W ] }; + key { [ b, B ] }; + key { [ j, J ] }; + key { [ f, F ] }; + key { [ u, U ] }; + key { [ p, P ] }; + key { [ semicolon, colon ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ g, G ] }; + key { [ y, Y ] }; + key { [ n, N ] }; + key { [ e, E ] }; + key { [ o, O ] }; + key { [ i, I ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ m, M ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ k, K ] }; + key { [ l, L ] }; + + key { [ BackSpace, Escape, BackSpace, BackSpace ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "workman-intl" { + + include "us(intl)" + name[Group1]= "English (Workman, intl., with dead keys)"; + + key { [ q, Q, adiaeresis, Adiaeresis ] }; + key { [ d, D, eth, ETH ] }; + key { [ r, R, registered, registered ] }; + key { [ w, W, aring, Aring ] }; + key { [ b, B, b, B ] }; + key { [ j, J, j, J ] }; + key { [ f, F, f, F ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ p, P, odiaeresis, Odiaeresis ] }; + key { [ semicolon, colon, paragraph, degree ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ s, S, ssharp, section ] }; + key { [ h, H, h, H ] }; + key { [ t, T, thorn, THORN ] }; + key { [ g, G, g, G ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ i, I, iacute, Iacute ] }; + + key { [ z, Z, ae, AE ] }; + key { [ x, X, x, X ] }; + key { [ m, M, mu, mu ] }; + key { [ c, C, copyright, cent ] }; + key { [ v, V, v, V ] }; + key { [ k, K, oe, OE ] }; + key { [ l, L, oslash, Ooblique ] }; + + key { [ BackSpace, Escape, BackSpace, BackSpace ] }; + + include "level3(ralt_switch)" +}; + +// Norman keyboard layout symbols for xkb on X.Org Server 7.x +// Written 11/23/2012, revised 3/7/2013 by David Norman http://normanlayout.info +// To the extent possible under law, the author(s) have dedicated all +// copyright and related and neighboring rights to this software to the +// public domain worldwide. This software is distributed without any warranty. + +partial alphanumeric_keys +xkb_symbols "norman" { + + include "us(basic)" + name[Group1]= "English (Norman)"; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ k, K ] }; + key { [ j, J ] }; + key { [ u, U ] }; + key { [ r, R ] }; + key { [ l, L ] }; + key { [ semicolon, colon ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ e, E ] }; + key { [ t, T ] }; + key { [ g, G ] }; + key { [ y, Y ] }; + key { [ n, N ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ h, H ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ p, P ] }; + key { [ m, M ] }; + + key { [ BackSpace ] }; + + include "level3(ralt_switch)" +}; + +// Carpalx layout created by Martin Krzywinski +// http://mkweb.bcgsc.ca/carpalx/ + +partial alphanumeric_keys +xkb_symbols "carpalx" { + + name[Group1]= "English (Carpalx)"; + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ q, Q ] }; + key { [ g, G ] }; + key { [ m, M ] }; + key { [ l, L ] }; + key { [ w, W ] }; + key { [ y, Y ] }; + key { [ f, F ] }; + key { [ u, U ] }; + key { [ b, B ] }; + key { [ semicolon, colon ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + key { [ d, D ] }; + key { [ s, S ] }; + key { [ t, T ] }; + key { [ n, N ] }; + key { [ r, R ] }; + key { [ i, I ] }; + key { [ a, A ] }; + key { [ e, E ] }; + key { [ o, O ] }; + key { [ h, H ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ p, P ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + + key { [ backslash, bar ] }; +}; + +// Carpalx layout created by Martin Krzywinski +// http://mkweb.bcgsc.ca/carpalx/ +// Merged with us(intl) and modified to move +// accented vowels closer to the plain vowels + +partial alphanumeric_keys +xkb_symbols "carpalx-intl" { + + include "us(carpalx)" + name[Group1]= "English (Carpalx, intl., with dead keys)"; + + key { [dead_grave, dead_tilde, grave, asciitilde ] }; + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, at, twosuperior, dead_doubleacute ] }; + key { [ 3, numbersign, threesuperior, dead_macron ] }; + key { [ 4, dollar, currency, sterling ] }; + key { [ 5, percent, EuroSign, dead_cedilla ] }; + key { [ 6, dead_circumflex, onequarter, asciicircum ] }; + key { [ 7, ampersand, onehalf, dead_horn ] }; + key { [ 8, asterisk, threequarters, dead_ogonek ] }; + key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; + key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; + key { [ minus, underscore, yen, dead_belowdot ] }; + key { [ equal, plus, multiply, division ] }; + + key { [ q, Q, degree, paragraph ] }; + key { [ g, G, U011F, U011E ] }; + key { [ m, M, mu, mu ] }; + key { [ l, L, copyright, cent ] }; + key { [ w, W, w, W ] }; + key { [ y, Y, idiaeresis, Idiaeresis ] }; + key { [ f, F, adiaeresis, Adiaeresis ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ b, B, odiaeresis, Odiaeresis ] }; + key { [ semicolon, colon, oslash, Ooblique ] }; + key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; + key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; + + key { [ d, D, eth, ETH ] }; + key { [ s, S, ssharp, section ] }; + key { [ t, T, thorn, THORN ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ r, R, registered, registered ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ a, A, aacute, Aacute ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ h, H, uacute, Uacute ] }; + key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; + + key { [ z, Z, z, Z ] }; + key { [ x, X, U015F, U015E ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, ae, AE ] }; + key { [ j, J, oe, OE ] }; + key { [ k, K, U0131, U0130 ] }; + key { [ p, P, aring, Aring ] }; + key { [ comma, less, ediaeresis, Ediaeresis ] }; + key { [ period, greater, dead_abovedot, dead_caron ] }; + key { [ slash, question, questiondown, dead_hook ] }; + key { [ backslash, bar, notsign, brokenbar ] }; + + key { [ backslash, bar, backslash, bar ] }; + + include "level3(ralt_switch)" +}; + +// Carpalx layout created by Martin Krzywinski +// http://mkweb.bcgsc.ca/carpalx/ +// Merged with us(intl) and us(altgr-intl) and modified to move +// accented vowels closer to the plain vowels + +partial alphanumeric_keys +xkb_symbols "carpalx-altgr-intl" { + + include "us(carpalx-intl)" + name[Group1]= "English (Carpalx, intl., with AltGr dead keys)"; + +// five dead keys moved into level3: + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] }; + +// diversions from the MS Intl keyboard: + + key { [ 1, exclam, onesuperior, exclamdown ] }; + +// onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys: + + key { [ 6, asciicircum, dead_circumflex, onequarter ] }; + key { [ 7, ampersand, dead_horn, onehalf ] }; + key { [ 8, asterisk, dead_ogonek, threequarters ] }; + + include "level3(ralt_switch)" +}; + +// Carpalx layout created by Martin Krzywinski +// Full optimization variant without fixed QWERTY-like ZXCV keys +// http://mkweb.bcgsc.ca/carpalx/ + +partial alphanumeric_keys +xkb_symbols "carpalx-full" { + + include "us(carpalx)" + name[Group1]= "English (Carpalx, full optimization)"; + + key { [ b, B ] }; + key { [ y, Y ] }; + key { [ v, V ] }; + + key { [ f, F ] }; +}; + +// Carpalx layout created by Martin Krzywinski +// Full optimization variant without fixed QWERTY-like ZXCV keys +// http://mkweb.bcgsc.ca/carpalx/ +// Merged with us(intl) and modified to move +// accented vowels closer to the plain vowels + +partial alphanumeric_keys +xkb_symbols "carpalx-full-intl" { + + include "us(carpalx-intl)" + name[Group1]= "English (Carpalx, full optimization, intl., with dead keys)"; + + key { [ b, B, idiaeresis, Idiaeresis ] }; + key { [ y, Y, adiaeresis, Adiaeresis ] }; + key { [ v, V, odiaeresis, Odiaeresis ] }; + + key { [ f, F, ae, AE ] }; +}; + +// Carpalx layout created by Martin Krzywinski +// Full optimization variant without fixed QWERTY-like ZXCV keys +// http://mkweb.bcgsc.ca/carpalx/ +// Merged with us(intl) and us(altgr-intl) and modified to move +// accented vowels closer to the plain vowels + +partial alphanumeric_keys +xkb_symbols "carpalx-full-altgr-intl" { + + include "us(carpalx-altgr-intl)" + name[Group1]= "English (Carpalx, full optimization, intl., with AltGr dead keys)"; + + key { [ b, B, idiaeresis, Idiaeresis ] }; + key { [ y, Y, adiaeresis, Adiaeresis ] }; + key { [ v, V, odiaeresis, Odiaeresis ] }; + + key { [ f, F, ae, AE ] }; +}; + +// EXTRAS: + +// Czech, Slovak and German charecters added as third level symbols to US keyboard layout. +partial alphanumeric_keys +xkb_symbols "cz_sk_de" { + + include "us" + name[Group1]="Czech Slovak and German (US)"; + + key { [grave, asciitilde, uring, Uring ] }; + key { [ 1, exclam, uacute, Uacute ] }; + key { [ 2, at, ecaron, Ecaron ] }; + key { [ 3, numbersign, scaron, Scaron ] }; + key { [ 4, dollar, ccaron, Ccaron ] }; + key { [ 5, percent, rcaron, Rcaron ] }; + key { [ 6, asciicircum, zcaron, Zcaron ] }; + key { [ 7, ampersand, yacute, Yacute ] }; + key { [ 8, asterisk, aacute, Aacute ] }; + key { [ 9, parenleft, iacute, Iacute ] }; + key { [ 0, parenright, eacute, Eacute ] }; + key { [minus, underscore, ssharp, 0x1001E9E ] }; + key { [equal, plus, dead_acute, dead_caron ] }; + + key { [ e, E, EuroSign, Eacute ] }; + + key { [bracketleft, braceleft, udiaeresis, Udiaeresis ] }; + key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; + key { [apostrophe, quotedbl,adiaeresis, Adiaeresis ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ y, Y, yacute, Yacute ] }; + key { [ u, U, uring, Uring ] }; + + key { [ s, S, scaron, Scaron ] }; + key { [ z, Z, zcaron, Zcaron ] }; + key { [ c, C, ccaron, Ccaron ] }; + key { [ r, R, rcaron, Rcaron ] }; + key { [ t, T, tcaron, Tcaron ] }; + key { [ d, D, dcaron, Dcaron ] }; + key { [ n, N, ncaron, Ncaron ] }; + key { [ l, L, lcaron, Lcaron ] }; + key { [ p, P,ocircumflex, Ocircumflex ] }; + + key { [ space, space, nobreakspace, nobreakspace] }; + + include "level3(ralt_switch)" +}; + +// XCompose is out! Unicode combining is in! For those of us who live +// on the edge: A keymap using Unicode combining characters instead of +// deadkeys. This variation does not deviate from the lame MS-style +// US-intl layout; but it uses AltGr for combining, like altgr-intl. +// +// This might break your font layout layout systems (because they +// suck), caveat emptor. Also, most of today's software will count +// individual combining marks for selection, deletion, character +// counting &c., and won't be smart enough to do canonical equivalence +// when searching, &c. +// +// With Unicode combining you use "handwriting order", not +// "typewriting order" as with deadkeys. That is, you first type the +// base character, then the diacritics/accents/modifiers. This has +// the advantage of avoiding hidden states --- each keypress changes +// something on screen. +// +// TODO: as of now, this duplicates all us(intl) functionality with +// combining. With care, perhaps we could add more combining marks +// not present in intl, and support all major languages. +partial alphanumeric_keys +xkb_symbols "intl-unicode" { + + name[Group1]= "English (US, international AltGr Unicode combining)"; + + include "us(intl)" + include "level3(ralt_switch)" + + // grave, tilde + key { [grave, asciitilde, U0300, U0303 ] }; + // double acute + key { [ 2, at, twosuperior, U030B ] }; + // macron + key { [ 3, numbersign, threesuperior, U0304 ] }; + // circumflex + key { [ 6, asciicircum, onequarter, U0302 ] }; + // horn + key { [ 7, ampersand, onehalf, U031B ] }; + // ogonek + key { [ 8, asterisk, threequarters, U0328 ] }; + // breve + key { [ 9, parenleft, leftsinglequotemark, U0306 ] }; + // abovering + key { [ 0, parenright, rightsinglequotemark, U030A ] }; + + // belowdot + key { [ minus, underscore, yen, U0323 ] }; + // acute, diaeresis + key { [apostrophe, quotedbl, U0301, U0308 ] }; + // abovedot, caron + key { [ period, greater, U0307, U030C ] }; + // hook + key { [ slash, question, questiondown, U0309 ] }; + + // alt-intl compatibility + // cedilla, caron + key { [ comma, less, U0327, U030C ] }; + // ogonek, diaeresis + key { [ semicolon, colon, U0328, U0308 ] }; + // doubleacute, horn + key { [ equal, plus, U030B, U031B ] }; + + // we don't do combining latin letters and combining enclosures + // because support for those is very rare. +}; + +// XCompose is out! Unicode combining is in! For those of us who live +// on the edge: A keymap using Unicode combining characters instead of +// deadkeys. This variation does break compatibility with us-intl, +// whenever I thought it would be more mnemonic or Unicodeish. +partial alphanumeric_keys +xkb_symbols "alt-intl-unicode" { + + name[Group1]= "English (US, international AltGr Unicode combining, alternative)"; + + include "us(intl-unicode)" + + // easier macron; em-dash. + // em-dash is available via compose, but I added here since it's such + // an important typographic character. + key { [ minus, underscore, U0304, U2014 ] }; + + // belowdot, abovedot (caron at coma/less key, per above) + key { [ period, greater, U0323, U0307 ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "ats" { + + include "us" + name[Group1]= "Atsina"; + + //Using Dead key to get COMBINING COMMA ABOVE for ejectives on + //q, l, t, s, m, g, k, p, w, y, r + //XCompose key is used for the other accute and grave. + + key { [ e, E, eacute, Eacute ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ bracketleft, braceleft, U03B8 ] }; + key { [ bracketright, braceright, U010D, U010C ] }; + //U+010C (uppercase Č) and U+010D (lowercase č). + + key { [ a, A, aacute, Aacute ] }; + + //Small letter Open use compose to key get acute accent + key { [ c, C, U0254, U0186 ] }; + key { [ comma, less, U0313 ] }; + key { [ slash, question, U0294 ] }; + + include "level3(ralt_switch)" + include "compose(rctrl)" +}; + +partial alphanumeric_keys +xkb_symbols "crd" { + + include "us" + name[Group1]= "Coeur d'Alene Salish"; + + key { [ w, W, U02B7, U02B7 ] }; + key { [ 7, ampersand, U0294 ] }; + key { [ q, Q, U221A ] }; + key { [ v, V, U0259 ] }; + key { [ backslash, bar, U026B ] }; + key { [ e, E, U025B ] }; + key { [ i, I, U026A ] }; + key { [ j, J, U01F0 ] }; + key { [ 6, asciicircum, U0295 ] }; + key { [ s, S, U0161 ] }; + key { [ c, C, U010D ] }; + key { [ o, O, U0254 ] }; + key { [ period, greater, U0323 ] }; + + include "level3(ralt_switch)" + include "compose(rctrl)" +}; + + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/us(sun_type6)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/uz b/squashfs-root/usr/share/X11/xkb/symbols/uz new file mode 100644 index 0000000..d76e3c9 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/uz @@ -0,0 +1,95 @@ +// Uzbek standard keyboard +// +// Mashrab Kuvatov +// +// History: +// +// Jun 2, 2003. Mashrab Kuvatov +// +// Created based on the Russian standard keyboard. AEN +// The following symbols of the Russian standard keyboard were replaced: +// minus (key ) with Byelorussian_shortu (U045e), +// equal (key ) with Cyrillic_ka_descender (U049b), +// Cyrillic_ha (key ) with Cyrillic_ghe_bar (U0493), +// Cyrillic_hardsign (key ) with Cyrillic_ha_descender (U04b3). +// The following symbols of the Russian standard keyboard were moved: +// Cyrillic_ze to key (English 's'), +// Cyrillic_sha to key (English 'i'), +// Cyrillic_ha to key (English 'o'), +// Cyrillic_hardsign to key (English 'p'). +// +// Feb 25, 2007. Mashrab Kuvatov +// +// Made cyrillic and latin variants. Default is cyrillic. +// Cyrillic variant is standard compliant. The standard +// was accepted by the official body of Uzbekistan. See +// http://www.uznet.net/index.php?option=com_content&task=view&id=288&Itemid=58 +// +// Latin variant is somewhat experimental, since there is no +// official standard for it. It is a copy of "us" layout, where +// apostrophe is replaced with U02BB. + +default partial alphanumeric_keys +xkb_symbols "cyrillic" { + + name[Group1]= "Uzbek"; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numerosign ] }; + key { [ 4, semicolon ] }; + key { [ 5, percent ] }; + key { [ 6, colon ] }; + key { [ 7, question ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ backslash, bar ] }; + key { [ period, comma ] }; + key { [ slash, bar ] }; + + key.type[group1]="ALPHABETIC"; + + key { [Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; + key { [Cyrillic_ha_descender, Cyrillic_HA_descender ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Byelorussian_shortu, Byelorussian_SHORTU ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [Cyrillic_ka_descender, Cyrillic_KA_descender ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; +}; + +partial alphanumeric_keys +xkb_symbols "latin" { + include "us" + name[Group1]= "Uzbek (Latin)"; + key { [0x010002BB, quotedbl] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/vn b/squashfs-root/usr/share/X11/xkb/symbols/vn new file mode 100644 index 0000000..1a002e6 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/vn @@ -0,0 +1,36 @@ +// based on: +// vn, TCVN 5712:1993 +// Le Hong Boi +// August 1999 +// Further modified by Ashley Clark +// July 2000 for X 4.0 +// Fix accents into combining marks by Samuel Thibault +// July 2009 + + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "us" + + name[Group1]= "Vietnamese"; + + key { [ grave, asciitilde ] }; + key { [ abreve, Abreve ] }; + key { [ acircumflex, Acircumflex ] }; + key { [ ecircumflex, Ecircumflex ] }; + key { [ ocircumflex, Ocircumflex ] }; + key { [ 0x1000300, percent, dead_grave, percent ] }; + key { [ 0x1000309, asciicircum, dead_hook, asciicircum ] }; + key { [ 0x1000303, ampersand, dead_tilde, ampersand ] }; + key { [ 0x1000301, asterisk, dead_acute, asterisk ] }; + key { [ 0x1000323, parenleft, dead_belowdot, parenleft ] }; + key { [ dstroke, Dstroke ] }; + key { [ minus, underscore ] }; + key { [ DongSign, plus ] }; + + key { [ uhorn, Uhorn ] }; + key { [ ohorn, Ohorn ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/xfree68_vndr/amiga b/squashfs-root/usr/share/X11/xkb/symbols/xfree68_vndr/amiga new file mode 100644 index 0000000..f785288 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/xfree68_vndr/amiga @@ -0,0 +1,125 @@ +default xkb_symbols "usa1" { + + name[Group1]= "usa1"; + key { [ Escape ] }; + + // Begin "Function" section + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + // End "Function" section + + // Alphanumeric section + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ backslash, bar ] }; + key { [ BackSpace ] }; + + key { [ Tab, ISO_Left_Tab ] }; + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ Return ] }; + + key { [ Control_L ] }; + key { [ Caps_Lock ] }; + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ Shift_L ] }; + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + key { [ Shift_R ] }; + + key { [ Alt_L, Meta_L ] }; + key { [ Mode_switch ] }; + key { [ space ] }; + key { [ Multi_key ] }; + key { [ Alt_R, Meta_R ] }; + // End alphanumeric section + + // Begin "Editing" section + key { [ Delete ] }; + key { [ Help ] }; + key { [ Up ] }; + key { [ Left ] }; + key { [ Down ] }; + key { [ Right ] }; + // End "Editing" section + + // Begin "Keypad" section + key { [ Num_Lock ] }; + key { [ Scroll_Lock ] }; + key { [ KP_Divide ] }; + key { [ KP_Multiply, Print ] }; + + key { [ KP_7, KP_Home ] }; + key { [ KP_8, KP_Up ] }; + key { [ KP_9, KP_Prior ] }; + key { [ KP_Subtract ] }; + + key { [ KP_4, KP_Left ] }; + key { [ KP_5 ] }; + key { [ KP_6, KP_Right ] }; + key { [ KP_Add ] }; + + key { [ KP_1, KP_End ] }; + key { [ KP_2, KP_Down ] }; + key { [ KP_3, KP_Next ] }; + + key { [ KP_0, KP_Insert ] }; + key { [ KP_Decimal, KP_Delete ] }; + key { [ KP_Enter ] }; + // End "Keypad" section + + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control{ Control_L }; + modifier_map Mod1 { Alt_L, Alt_R }; + modifier_map Mod2 { Mode_switch }; + modifier_map Mod3 { Meta_L, Meta_R }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/xfree68_vndr/ataritt b/squashfs-root/usr/share/X11/xkb/symbols/xfree68_vndr/ataritt new file mode 100644 index 0000000..0ceb3ed --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/xfree68_vndr/ataritt @@ -0,0 +1,154 @@ +default xkb_symbols "us" { + + name[Group1]= "US/ASCII"; + + key { [ Escape ] }; + + // Alphanumeric section + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ grave, asciitilde ] }; + key { [ BackSpace ] }; + + key { [ Tab, ISO_Left_Tab ] }; + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ Return ] }; + key { [ Delete ] }; + + key { [ Control_L ] }; + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + key { [ backslash, bar ] }; + + key { [ Shift_L ] }; + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + key { [ Shift_R ] }; + + key { [ Meta_L ] }; + key { [ space ] }; + key { [ Caps_Lock ] }; + // End alphanumeric section + + // Begin "Function" section + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + // End "Function" section + + // Begin "Editing" section + key { [ Help ] }; + key { [ Undo ] }; + key { [ Insert ] }; + key { [ Up ] }; + key { [ Home, Clear ] }; + key { [ Left ] }; + key { [ Down ] }; + key { [ Right ] }; + // End "Editing" section + + // Begin "Keypad" section + key { [ KP_F1 ] }; + key { [ KP_F2 ] }; + key { [ KP_Divide ] }; + key { [ KP_Multiply ] }; + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + key { [ KP_Subtract ] }; + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + key { [ KP_Add ] }; + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; + key { [ KP_Enter ] }; + // End "Keypad" section + + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control{ Control_L }; + modifier_map Mod1 { Meta_L }; +}; + +xkb_symbols "de" { + include "ataritt(us)" + + name[Group1]= "German"; + + key { [ 2, quotedbl ] }; + key { [ 3, section ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash ] }; + key { [ 8, parenleft ] }; + key { [ 9, parenright ] }; + key { [ 0, equal ] }; + key { [ ssharp, question ] }; + key { [ apostrophe, grave ] }; + key { [ numbersign, asciicircum ] }; + + key { [ z, Z ] }; + key { [ udiaeresis, Udiaeresis ], + [ at, backslash ] }; + key { [ plus, asterisk ] }; + + key { [ odiaeresis, Odiaeresis ], + [ bracketleft, braceleft ] }; + key { [ adiaeresis, Adiaeresis ], + [ bracketright, braceright ] }; + key { [ asciitilde, bar ] }; + + key { [ less, greater ] }; + key { [ y, Y ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/symbols/za b/squashfs-root/usr/share/X11/xkb/symbols/za new file mode 100644 index 0000000..aba9791 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/symbols/za @@ -0,0 +1,42 @@ +// Based on the Latvian and GB keyboard maps. + +default partial alphanumeric_keys modifier_keys +xkb_symbols "basic" { + + // Describes the differences between an en_US layout + // and a South African layout with dead keys. + // By Dwayne Bailey (dwayne@translate.org.za). + + include "latin" + + name[Group1]="English (South Africa)"; + + key { [ grave, asciitilde, dead_grave ] }; + key { [ 2, at, yen ] }; + key { [ 3, numbersign, sterling ] }; + key { [ 4, dollar, dollar ] }; + key { [ 5, percent, EuroSign ] }; + key { [ 6,asciicircum, dead_circumflex ] }; + + key { [ e, E, ediaeresis, Ediaeresis ] }; + key { [ r, R, ecircumflex, Ecircumflex ] }; + key { [ t, T, U1e71, U1e70 ] }; + key { [ y, Y, ucircumflex, Ucircumflex ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, idiaeresis, Idiaeresis ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ p, P, ocircumflex, Ocircumflex ] }; + + key { [ a, A, adiaeresis, Adiaeresis ] }; + key { [ s, S, scaron, Scaron ] }; + key { [ d, D, U1e13, U1e12 ] }; + key { [ l, L, U1e3d, U1e3c ] }; + key { [ semicolon, colon, dead_diaeresis ] }; + key { [apostrophe, quotedbl, dead_acute ] }; + + key { [ n, N, U1e4b, U1e4a ] }; + key { [ m, M, U1e45, U1e44 ] }; + key { [ period, greater, dead_abovedot ] }; + + include "level3(ralt_switch)" +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/README b/squashfs-root/usr/share/X11/xkb/types/README new file mode 100644 index 0000000..ff0f61b --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/README @@ -0,0 +1,4 @@ +The types component of a keyboard mapping specifies the key types that can be +associated with the various keyboard keys. The types component can optionally +contain also real modifier bindings and symbolic names for one or more virtual +modifiers. diff --git a/squashfs-root/usr/share/X11/xkb/types/basic b/squashfs-root/usr/share/X11/xkb/types/basic new file mode 100644 index 0000000..fff06be --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/basic @@ -0,0 +1,30 @@ +default xkb_types "basic" { + + // Fairly standard definitions for + // three of the four required key types. + // The fourth type "KEYPAD" is defined in the "numpad" file. + + virtual_modifiers NumLock; + + type "ONE_LEVEL" { + modifiers = None; + map[None] = Level1; + level_name[Level1]= "Any"; + }; + + type "TWO_LEVEL" { + modifiers = Shift; + map[Shift] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + }; + + type "ALPHABETIC" { + modifiers = Shift+Lock; + map[Shift] = Level2; + map[Lock] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Caps"; + }; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/cancel b/squashfs-root/usr/share/X11/xkb/types/cancel new file mode 100644 index 0000000..f738f06 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/cancel @@ -0,0 +1,11 @@ +partial default xkb_types "Shift_Cancels_Caps" { + +override type "TWO_LEVEL" { + modifiers = Shift+Lock; + map[Shift] = Level2; + preserve[Lock]= Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; +}; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/caps b/squashfs-root/usr/share/X11/xkb/types/caps new file mode 100644 index 0000000..7181630 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/caps @@ -0,0 +1,171 @@ +// CapsLock uses internal capitalization rules, +// Shift "pauses" CapsLock. +partial xkb_types "internal" { + type "ALPHABETIC" { + modifiers = Shift+Lock; + map[Shift] = Level2; + preserve[Lock] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Caps"; + }; + + type "FOUR_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + preserve[Lock] = Lock; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level3; + preserve[Lock+LevelThree] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + preserve[Lock] = Lock; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; +}; + +// CapsLock uses internal capitalization rules, +// Shift does not cancel CapsLock. +partial xkb_types "internal_nocancel" { + type "ALPHABETIC" { + modifiers = Shift; + map[Shift] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Caps"; + }; + + type "FOUR_LEVEL_ALPHABETIC" { + modifiers = Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_SEMIALPHABETIC" { + // the same as FOUR_LEVEL_ALPHABETIC + modifiers = Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; +}; + +// CapsLock acts as Shift with locking, +// Shift "pauses" CapsLock. +partial xkb_types "shift" { + type "ALPHABETIC" { + modifiers = Shift+Lock; + map[Shift] = Level2; + map[Lock] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Caps"; + }; + + type "FOUR_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Shift+Lock+LevelThree] = Level3; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; +}; + +// CapsLock acts as Shift with locking, +// Shift does not cancel CapsLock. +partial xkb_types "shift_nocancel" { + type "ALPHABETIC" { + modifiers = Shift+Lock; + map[Shift] = Level2; + map[Lock] = Level2; + map[Shift+Lock] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Caps"; + }; + + type "FOUR_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[Shift+Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Shift+Lock+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[Shift+Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/complete b/squashfs-root/usr/share/X11/xkb/types/complete new file mode 100644 index 0000000..3b59ca2 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/complete @@ -0,0 +1,9 @@ +default xkb_types "complete" { + include "basic" + include "mousekeys" + include "pc" + include "iso9995" + include "level5" + include "extra" + include "numpad" +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/default b/squashfs-root/usr/share/X11/xkb/types/default new file mode 100644 index 0000000..140208c --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/default @@ -0,0 +1,9 @@ +default xkb_types "default" { + include "basic" + include "pc" + include "iso9995" + include "extra" + include "numpad" + include "level5" + include "mousekeys" +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/extra b/squashfs-root/usr/share/X11/xkb/types/extra new file mode 100644 index 0000000..e7529f4 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/extra @@ -0,0 +1,158 @@ +partial default xkb_types "default" { + + // Defines a type with a four-level shift, similar to the three-level + // type used for iso9995, but it lets the Shift key behave "normally". + + virtual_modifiers LevelThree; + + type "FOUR_LEVEL" { + modifiers = Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Lock+Shift+LevelThree] = Level3; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + // A four-level keypad variant. The first two levels are controlled by + // NumLock (with active shifting like in KEYPAD). LevelThree overrides + // this mode, with two additional shifted levels. + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers = Shift+NumLock+LevelThree; + map[None] = Level1; + map[Shift+NumLock] = Level1; + map[NumLock] = Level2; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[NumLock+LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Shift+NumLock+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + // Base level, two shifted LevelThree levels, one Ctrl+Alt command level. + type "FOUR_LEVEL_X" { + modifiers = Shift+LevelThree+Control+Alt; + map[None] = Level1; + map[LevelThree] = Level2; + map[Shift+LevelThree] = Level3; + map[Control+Alt] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Alt Base"; + level_name[Level3] = "Shift Alt"; + level_name[Level4] = "Ctrl+Alt"; + }; + +// A special type for keys used in the Serbian Latin Unicode keymap. +// It makes it possible to use all three forms of latin letters +// present in Unicode that are made up of two separate letters +// (forms like LJ, Lj, and lj; NJ, Nj, and nj; etcetera). + + type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level4; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level3; + preserve[Lock]= Lock; + preserve[Lock+LevelThree]= Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "AltGr Base"; + level_name[Level4] = "Shift AltGr"; + }; + +// A key type for the German ssharp (for example), which is capitalized as SS. +// CHARACTERISTICS: +// It is FOUR_LEVEL with the exception that the fifth level is mapped to the +// Lock modifier. If other modifiers are used, the Lock state is ignored. +// DETAILS ABOUT GERMAN: +// The capital form of ssharp (called sharp s) only exists for completely +// capitalized text, not for words at the beginning of sentences nor for +// nouns (nouns in German normally start with a captial letter). +// The ssharp key, to the right of the zero key, takes this into account +// and has a questionmark mapped to Shift-ssharp since normally no capital +// version is needed. +// When typing with active CapsLock, this key type is needed to +// output two capital letters S because this is the only German key +// whose capital letter is not the same as the one typed with Shift. + + type "FOUR_LEVEL_PLUS_LOCK" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock] = Level5; + map[Lock+Shift] = Level2; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "Lock"; + }; +}; + +// This enables the four-level shifting also for the keypad. +partial xkb_types "keypad" { + virtual_modifiers LevelThree; + + type "FOUR_LEVEL_KEYPAD" { + modifiers = Shift+NumLock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[NumLock] = Level2; + map[Shift+NumLock] = Level1; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[NumLock+LevelThree] = Level4; + map[Shift+NumLock+LevelThree] = Level3; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Alt Number"; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/iso9995 b/squashfs-root/usr/share/X11/xkb/types/iso9995 new file mode 100644 index 0000000..d3c4e0b --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/iso9995 @@ -0,0 +1,18 @@ +partial default xkb_types "default" { + + // A key type which can be used to implement + // an ISO9995-style level-three shift. + + virtual_modifiers LevelThree; + + type "THREE_LEVEL" { + modifiers = Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level3; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Level3"; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/level5 b/squashfs-root/usr/share/X11/xkb/types/level5 new file mode 100644 index 0000000..0570725 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/level5 @@ -0,0 +1,214 @@ +partial default xkb_types "default" { + + // Defines a type with an eight-level shift, similar to the three-level + // type used for iso9995, but it lets the Shift key behave "normally". + + virtual_modifiers LevelThree,ScrollLock,LevelFive; + + type "EIGHT_LEVEL" { + modifiers = Shift+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Lock+Shift+LevelThree] = Level3; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level8; + map[Lock+Shift+LevelThree+LevelFive] = Level7; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" { + // Level5-Lock is implemented by using NumLock, because a real modifier + // is required. + + modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; + + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[LevelThree+Shift] = Level4; + + map[LevelFive] = Level5; + map[LevelFive+Shift] = Level6; + map[LevelFive+LevelThree] = Level7; + map[LevelFive+LevelThree+Shift] = Level8; + + map[NumLock] = Level5; + map[NumLock+Shift] = Level6; + map[NumLock+LevelThree] = Level7; + map[NumLock+LevelThree+Shift] = Level8; + + map[NumLock+LevelFive] = Level1; + map[NumLock+LevelFive+Shift] = Level2; + map[NumLock+LevelFive+LevelThree] = Level3; + map[NumLock+LevelFive+LevelThree+Shift] = Level4; + + // Lock has no effect + map[Lock] = Level1; + map[Lock+Shift] = Level2; + map[Lock+LevelThree] = Level3; + map[Lock+LevelThree+Shift] = Level4; + + map[Lock+LevelFive] = Level5; + map[Lock+LevelFive+Shift] = Level6; + map[Lock+LevelFive+LevelThree] = Level7; + map[Lock+LevelFive+LevelThree+Shift] = Level8; + + map[Lock+NumLock] = Level5; + map[Lock+NumLock+Shift] = Level6; + map[Lock+NumLock+LevelThree] = Level7; + map[Lock+NumLock+LevelThree+Shift] = Level8; + + map[Lock+NumLock+LevelFive] = Level1; + map[Lock+NumLock+LevelFive+Shift] = Level2; + map[Lock+NumLock+LevelFive+LevelThree] = Level3; + map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4; + + preserve[LevelFive+Shift] = Shift; + preserve[NumLock+Shift] = Shift; + preserve[Lock+LevelFive+Shift] = Shift; + preserve[Lock+NumLock+Shift] = Shift; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" { + // Level5-Lock is implemented by using NumLock, because a real modifier + // is required. + + modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; + + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[LevelThree+Shift] = Level4; + + map[LevelFive] = Level5; + map[LevelFive+Shift] = Level6; + map[LevelFive+LevelThree] = Level7; + map[LevelFive+LevelThree+Shift] = Level8; + + map[NumLock] = Level5; + map[NumLock+Shift] = Level6; + map[NumLock+LevelThree] = Level7; + map[NumLock+LevelThree+Shift] = Level8; + + map[NumLock+LevelFive] = Level1; + map[NumLock+LevelFive+Shift] = Level2; + map[NumLock+LevelFive+LevelThree] = Level3; + map[NumLock+LevelFive+LevelThree+Shift] = Level4; + + // Lock interchanges Level1 and Level2 + map[Lock] = Level2; + map[Lock+Shift] = Level1; + map[Lock+LevelThree] = Level3; + map[Lock+LevelThree+Shift] = Level4; + + map[Lock+LevelFive] = Level5; + map[Lock+LevelFive+Shift] = Level6; + map[Lock+LevelFive+LevelThree] = Level7; + map[Lock+LevelFive+LevelThree+Shift] = Level8; + + map[Lock+NumLock] = Level5; + map[Lock+NumLock+Shift] = Level6; + map[Lock+NumLock+LevelThree] = Level7; + map[Lock+NumLock+LevelThree+Shift] = Level8; + + map[Lock+NumLock+LevelFive] = Level2; + map[Lock+NumLock+LevelFive+Shift] = Level1; + map[Lock+NumLock+LevelFive+LevelThree] = Level4; + map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3; + + preserve[LevelFive+Shift] = Shift; + preserve[NumLock+Shift] = Shift; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[Lock+Shift+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level7; + map[Lock+Shift+LevelThree+LevelFive] = Level8; + + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + preserve[Lock+LevelFive] = Lock; + preserve[Lock+Shift+LevelFive] = Lock; + preserve[Lock+LevelThree+LevelFive] = Lock; + preserve[Lock+Shift+LevelThree+LevelFive] = Lock; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/mousekeys b/squashfs-root/usr/share/X11/xkb/types/mousekeys new file mode 100644 index 0000000..901848a --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/mousekeys @@ -0,0 +1,10 @@ +partial default xkb_types "default" { + virtual_modifiers Alt; + + type "SHIFT+ALT" { + modifiers = Shift+Alt; + map[Shift+Alt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift+Alt"; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/nokia b/squashfs-root/usr/share/X11/xkb/types/nokia new file mode 100644 index 0000000..300fe41 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/nokia @@ -0,0 +1,15 @@ +partial default xkb_types "default" { + + // A type that is used by Nokia devices and keyboards. + + virtual_modifiers LevelThree; + + type "PC_FN_LEVEL2" { + modifiers = LevelThree; + map[None] = Level1; + map[LevelThree] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Fn"; + }; + +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/numpad b/squashfs-root/usr/share/X11/xkb/types/numpad new file mode 100644 index 0000000..5861f11 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/numpad @@ -0,0 +1,67 @@ +partial default xkb_types "pc" { + type "KEYPAD" { + modifiers = Shift+NumLock; + map[None] = Level1; + map[Shift] = Level2; + map[NumLock] = Level2; + map[Shift+NumLock] = Level1; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + }; + include "extra(keypad)" +}; + +// On Mac keypads, level 1 and 2 are swapped. +partial xkb_types "mac" { + type "KEYPAD" { + modifiers = None; + map[None] = Level2; + level_name[Level2] = "Number"; + }; + include "extra(keypad)" +}; + +partial xkb_types "microsoft" { + type "KEYPAD" { + modifiers = Shift+NumLock; + map[None] = Level1; + preserve[Shift] = Shift; + map[NumLock] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + }; + include "extra(keypad)" +}; + +// Swiss-German style numeric keypad: Shift and NumLock operate as +// two independent modifiers; however, since we want shift state for +// the cursor keys, only three levels are used from the key mappings. +// Closest type is actually FOUR_LEVEL_X, but most numpad layouts use +// FOUR_LEVEL_MIXED_KEYPAD, so that's the one we are going to override. +partial xkb_types "shift3" { + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers = Shift+NumLock+Control+Alt; + + // NumLock Off => navigate using cursor keys + map[None] = Level1; + + // NumLock Off + Shift pressed => select using cursor keys + preserve[Shift] = Shift; + + // NumLock On => decimal digits + map[NumLock] = Level2; + + // NumLock On + Shift pressed => auxiliary symbols, + // e.g. hexadecimal digits + map[Shift+NumLock] = Level3; + + // Ctrl + Alt, regardless of NumLock and Shift => command keys + map[Control+Alt] = Level4; + + // reverse map from levels to modifiers + level_name[Level1] = "Base"; + level_name[Level2] = "NumLock"; + level_name[Level3] = "Shift+NumLock"; + level_name[Level4] = "Ctrl+Alt"; + }; +}; diff --git a/squashfs-root/usr/share/X11/xkb/types/pc b/squashfs-root/usr/share/X11/xkb/types/pc new file mode 100644 index 0000000..404e3c9 --- /dev/null +++ b/squashfs-root/usr/share/X11/xkb/types/pc @@ -0,0 +1,126 @@ +partial default xkb_types "default" { + + // Some types that are necessary + // for a full implementation of + // a PC-compatible keyboard. + + virtual_modifiers Alt; + virtual_modifiers LevelThree; + virtual_modifiers LAlt; + virtual_modifiers RAlt; + virtual_modifiers RControl; + virtual_modifiers LControl; + + type "PC_SUPER_LEVEL2" { + modifiers = Mod4; + map[None] = Level1; + map[Mod4] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Super"; + }; + + type "PC_CONTROL_LEVEL2" { + modifiers = Control; + map[None] = Level1; + map[Control] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Control"; + }; + + type "PC_LCONTROL_LEVEL2" { + modifiers = LControl; + map[None] = Level1; + map[LControl] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "LControl"; + }; + + type "PC_RCONTROL_LEVEL2" { + modifiers = RControl; + map[None] = Level1; + map[RControl] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "RControl"; + }; + + type "PC_ALT_LEVEL2" { + modifiers = Alt; + map[None] = Level1; + map[Alt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Alt"; + }; + + type "PC_LALT_LEVEL2" { + modifiers = LAlt; + map[None] = Level1; + map[LAlt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "LAlt"; + }; + + type "PC_RALT_LEVEL2" { + modifiers = RAlt; + map[None] = Level1; + map[RAlt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "RAlt"; + }; + + type "CTRL+ALT" { + modifiers = Control+Alt+Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Control+Alt] = Level5; + preserve[Shift] = Shift; + preserve[Shift+LevelThree] = Shift; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "Ctrl+Alt"; + }; + + // Local eight level. + // Needed when you want part of your layout eight-level but cannot use + // LevelFive as modifier, as this will take over the right Ctrl by default + // for the whole layout and is too invasive for the average four-level user. + // Needed to fix bug #9529. + // FIXME: Should really use RControl but it seems not to be enabled by + // default and touching this requires a lot of testing. + type "LOCAL_EIGHT_LEVEL" { + modifiers = Shift+Lock+LevelThree+Control; + + map[None] = Level1; + map[Lock+Shift] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + + map[LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + + map[Control] = Level5; + map[Lock+Shift+Control] = Level5; + map[Shift+Control] = Level6; + map[Lock+Control] = Level6; + + map[LevelThree+Control] = Level7; + map[Lock+Shift+LevelThree+Control] = Level7; + map[Shift+LevelThree+Control] = Level8; + map[Lock+LevelThree+Control] = Level8; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Level3"; + level_name[Level4] = "Shift Level3"; + level_name[Level5] = "Ctrl"; + level_name[Level6] = "Shift Ctrl"; + level_name[Level7] = "Level3 Ctrl"; + level_name[Level8] = "Shift Level3 Ctrl"; + }; + +}; diff --git a/squashfs-root/usr/share/alsa/alsa.conf b/squashfs-root/usr/share/alsa/alsa.conf new file mode 100644 index 0000000..97bc6d9 --- /dev/null +++ b/squashfs-root/usr/share/alsa/alsa.conf @@ -0,0 +1,636 @@ +# +# ALSA library configuration file +# + +# pre-load the configuration files + +@hooks [ + { + func load + files [ + { + @func concat + strings [ + { @func datadir } + "/alsa.conf.d/" + ] + } + "/etc/asound.conf" + "~/.asoundrc" + ] + errors false + } +] + +# load card-specific configuration files (on request) + +cards.@hooks [ + { + func load + files [ + { + @func concat + strings [ + { @func datadir } + "/cards/aliases.conf" + ] + } + ] + } + { + func load_for_all_cards + files [ + { + @func concat + strings [ + { @func datadir } + "/cards/" + { @func private_string } + ".conf" + ] + } + ] + errors false + } +] + +# +# defaults +# + +# show all name hints also for definitions without hint {} section +defaults.namehint.showall off +# show just basic name hints +defaults.namehint.basic on +# show extended name hints +defaults.namehint.extended off +# +defaults.ctl.card 0 +defaults.pcm.card 0 +defaults.pcm.device 0 +defaults.pcm.subdevice -1 +defaults.pcm.nonblock 1 +defaults.pcm.compat 0 +defaults.pcm.minperiodtime 5000 # in us +defaults.pcm.ipc_key 5678293 +defaults.pcm.ipc_gid audio +defaults.pcm.ipc_perm 0660 +defaults.pcm.dmix.max_periods 0 +defaults.pcm.dmix.rate 41000 +defaults.pcm.dmix.buffer_size 35280 +defaults.pcm.dmix.period_size 4410 +defaults.pcm.dmix.format "unchanged" +defaults.pcm.dmix.card defaults.pcm.card +defaults.pcm.dmix.device defaults.pcm.device +defaults.pcm.dsnoop.card defaults.pcm.card +defaults.pcm.dsnoop.device defaults.pcm.device +defaults.pcm.front.card defaults.pcm.card +defaults.pcm.front.device defaults.pcm.device +defaults.pcm.rear.card defaults.pcm.card +defaults.pcm.rear.device defaults.pcm.device +defaults.pcm.center_lfe.card defaults.pcm.card +defaults.pcm.center_lfe.device defaults.pcm.device +defaults.pcm.side.card defaults.pcm.card +defaults.pcm.side.device defaults.pcm.device +defaults.pcm.surround21.card defaults.pcm.card +defaults.pcm.surround21.device defaults.pcm.device +defaults.pcm.surround40.card defaults.pcm.card +defaults.pcm.surround40.device defaults.pcm.device +defaults.pcm.surround41.card defaults.pcm.card +defaults.pcm.surround41.device defaults.pcm.device +defaults.pcm.surround50.card defaults.pcm.card +defaults.pcm.surround50.device defaults.pcm.device +defaults.pcm.surround51.card defaults.pcm.card +defaults.pcm.surround51.device defaults.pcm.device +defaults.pcm.surround71.card defaults.pcm.card +defaults.pcm.surround71.device defaults.pcm.device +defaults.pcm.iec958.card defaults.pcm.card +defaults.pcm.iec958.device defaults.pcm.device +defaults.pcm.modem.card defaults.pcm.card +defaults.pcm.modem.device defaults.pcm.device +# truncate files via file or tee PCM +defaults.pcm.file_format "raw" +defaults.pcm.file_truncate true +defaults.rawmidi.card 0 +defaults.rawmidi.device 0 +defaults.rawmidi.subdevice -1 +defaults.hwdep.card 0 +defaults.hwdep.device 0 +defaults.timer.class 2 +defaults.timer.sclass 0 +defaults.timer.card 0 +defaults.timer.device 0 +defaults.timer.subdevice 0 + +# +# PCM interface +# + +# redirect to load-on-demand extended pcm definitions +pcm.cards cards.pcm + +pcm.default cards.pcm.default +pcm.sysdefault cards.pcm.default +pcm.front cards.pcm.front +pcm.rear cards.pcm.rear +pcm.center_lfe cards.pcm.center_lfe +pcm.side cards.pcm.side +pcm.surround21 cards.pcm.surround21 +pcm.surround40 cards.pcm.surround40 +pcm.surround41 cards.pcm.surround41 +pcm.surround50 cards.pcm.surround50 +pcm.surround51 cards.pcm.surround51 +pcm.surround71 cards.pcm.surround71 +pcm.iec958 cards.pcm.iec958 +pcm.spdif iec958 +pcm.hdmi cards.pcm.hdmi +pcm.dmix cards.pcm.dmix +pcm.dsnoop cards.pcm.dsnoop +pcm.modem cards.pcm.modem +pcm.phoneline cards.pcm.phoneline + +pcm.hw { + @args [ CARD DEV SUBDEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_PCM_DEVICE + ] + default { + @func refer + name defaults.pcm.device + } + } + } + @args.SUBDEV { + type integer + default { + @func refer + name defaults.pcm.subdevice + } + } + type hw + card $CARD + device $DEV + subdevice $SUBDEV + hint { + show { + @func refer + name defaults.namehint.extended + } + description "Direct hardware device without any conversions" + } +} + +pcm.plughw { + @args [ CARD DEV SUBDEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_PCM_DEVICE + ] + default { + @func refer + name defaults.pcm.device + } + } + } + @args.SUBDEV { + type integer + default { + @func refer + name defaults.pcm.subdevice + } + } + type plug + slave.pcm { + type hw + card $CARD + device $DEV + subdevice $SUBDEV + } + hint { + show { + @func refer + name defaults.namehint.extended + } + description "Hardware device with all software conversions" + } +} + +pcm.plug { + @args [ SLAVE ] + @args.SLAVE { + type string + } + type plug + slave.pcm $SLAVE +} + +pcm.shm { + @args [ SOCKET PCM ] + @args.SOCKET { + type string + } + @args.PCM { + type string + } + type shm + server $SOCKET + pcm $PCM +} + +pcm.tee { + @args [ SLAVE FILE FORMAT ] + @args.SLAVE { + type string + } + @args.FILE { + type string + } + @args.FORMAT { + type string + default { + @func refer + name defaults.pcm.file_format + } + } + type file + slave.pcm $SLAVE + file $FILE + format $FORMAT + truncate { + @func refer + name defaults.pcm.file_truncate + } +} + +pcm.file { + @args [ FILE FORMAT ] + @args.FILE { + type string + } + @args.FORMAT { + type string + default { + @func refer + name defaults.pcm.file_format + } + } + type file + slave.pcm null + file $FILE + format $FORMAT + truncate { + @func refer + name defaults.pcm.file_truncate + } +} + +pcm.null { + type null + hint { + show { + @func refer + name defaults.namehint.basic + } + description "Discard all samples (playback) or generate zero samples (capture)" + } +} + +# +# Control interface +# + +ctl.sysdefault { + type hw + card { + @func getenv + vars [ + ALSA_CTL_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.ctl.card + } + } + hint.description "Default control device" +} +ctl.default ctl.sysdefault + +ctl.hw { + @args [ CARD ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_CTL_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.ctl.card + } + } + } + type hw + card $CARD + hint.description "Direct control device" +} + +ctl.shm { + @args [ SOCKET CTL ] + @args.SOCKET { + type string + } + @args.CTL { + type string + } + type shm + server $SOCKET + ctl $CTL +} + +# +# RawMidi interface +# + +rawmidi.default { + type hw + card { + @func getenv + vars [ + ALSA_RAWMIDI_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.rawmidi.card + } + } + device { + @func igetenv + vars [ + ALSA_RAWMIDI_DEVICE + ] + default { + @func refer + name defaults.rawmidi.device + } + } + hint.description "Default raw MIDI device" +} + +rawmidi.hw { + @args [ CARD DEV SUBDEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_RAWMIDI_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.rawmidi.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_RAWMIDI_DEVICE + ] + default { + @func refer + name defaults.rawmidi.device + } + } + } + @args.SUBDEV { + type integer + default -1 + } + type hw + card $CARD + device $DEV + subdevice $SUBDEV + hint { + description "Direct rawmidi driver device" + device $DEV + } +} + +rawmidi.virtual { + @args [ MERGE ] + @args.MERGE { + type string + default 1 + } + type virtual + merge $MERGE +} + +# +# Sequencer interface +# + +seq.default { + type hw + hint.description "Default sequencer device" +} + +seq.hw { + type hw +} + +# +# HwDep interface +# + +hwdep.default { + type hw + card { + @func getenv + vars [ + ALSA_HWDEP_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.hwdep.card + } + } + device { + @func igetenv + vars [ + ALSA_HWDEP_DEVICE + ] + default { + @func refer + name defaults.hwdep.device + } + } + hint.description "Default hardware dependent device" +} + +hwdep.hw { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_HWDEP_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.hwdep.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_HWDEP_DEVICE + ] + default { + @func refer + name defaults.hwdep.device + } + } + } + type hw + card $CARD + device $DEV + hint { + description "Direct hardware dependent device" + device $DEV + } +} + +# +# Timer interface +# + +timer_query.default { + type hw +} + +timer_query.hw { + type hw +} + +timer.default { + type hw + class { + @func refer + name defaults.timer.class + } + sclass { + @func refer + name defaults.timer.sclass + } + card { + @func refer + name defaults.timer.card + } + device { + @func refer + name defaults.timer.device + } + subdevice { + @func refer + name defaults.timer.subdevice + } + hint.description "Default timer device" +} + +timer.hw { + @args [ CLASS SCLASS CARD DEV SUBDEV ] + @args.CLASS { + type integer + default { + @func refer + name defaults.timer.class + } + } + @args.SCLASS { + type integer + default { + @func refer + name defaults.timer.sclass + } + } + @args.CARD { + type string + default { + @func refer + name defaults.timer.card + } + } + @args.DEV { + type integer + default { + @func refer + name defaults.timer.device + } + } + @args.SUBDEV { + type integer + default { + @func refer + name defaults.timer.subdevice + } + } + type hw + class $CLASS + sclass $SCLASS + card $CARD + device $DEV + subdevice $SUBDEV + hint { + description "Direct timer device" + device $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/alsa.conf.d/README b/squashfs-root/usr/share/alsa/alsa.conf.d/README new file mode 100644 index 0000000..9997884 --- /dev/null +++ b/squashfs-root/usr/share/alsa/alsa.conf.d/README @@ -0,0 +1,2 @@ +You can place files named *.conf in this folder and they will be processed +when initialising alsa-lib. diff --git a/squashfs-root/usr/share/alsa/cards/AACI.conf b/squashfs-root/usr/share/alsa/cards/AACI.conf new file mode 100644 index 0000000..748586a --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/AACI.conf @@ -0,0 +1,47 @@ +# +# ALSA library configuration for ARM AACI Primecell PL-041 +# + + + +AACI.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +AACI.pcm.surround40.0 "cards.AACI.pcm.front.0" + + + +AACI.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.AACI.pcm.front.0:CARD=" $CARD + ] + } + channels 6 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 0 channel 3 } + { slave 0 channel 4 } + { slave 0 channel 2 } + { slave 0 channel 5 } + ] +} diff --git a/squashfs-root/usr/share/alsa/cards/ATIIXP-MODEM.conf b/squashfs-root/usr/share/alsa/cards/ATIIXP-MODEM.conf new file mode 100644 index 0000000..6e52af0 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/ATIIXP-MODEM.conf @@ -0,0 +1,22 @@ +# +# Configuration for the ATI IXP 150/200/250 modem controllers +# + + + +ATIIXP-MODEM.pcm.modem.0 { + @args [ CARD ] + @args.CARD { + type string + } + type route + slave.pcm { + type hw + card $CARD + } + slave.channels 2 + slave.format S16_LE + ttable.0.1 1 + ttable.1.0 0 + hint.show off +} diff --git a/squashfs-root/usr/share/alsa/cards/ATIIXP-SPDMA.conf b/squashfs-root/usr/share/alsa/cards/ATIIXP-SPDMA.conf new file mode 100644 index 0000000..42540d6 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/ATIIXP-SPDMA.conf @@ -0,0 +1,166 @@ +# +# Configuration for the ATI IXP 150/200/250 chips +# + + + +ATIIXP-SPDMA.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix/dsnoop +ATIIXP.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +ATIIXP-SPDMA.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + channels 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "4ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + ] + } +} + + + + + + +ATIIXP-SPDMA.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + channels 6 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "6ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Mic As Center/LFE" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + { + name "Center/LFE Down Mix" + preserve true + value off + lock true + optional true + } + ] + } +} + + + +ATIIXP-SPDMA.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type iec958 + slave { + pcm { + type hw + card $CARD + device 1 + } + format IEC958_SUBFRAME_LE + } + status [ $AES0 $AES1 $AES2 $AES3 ] +} diff --git a/squashfs-root/usr/share/alsa/cards/ATIIXP.conf b/squashfs-root/usr/share/alsa/cards/ATIIXP.conf new file mode 100644 index 0000000..c4d33ef --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/ATIIXP.conf @@ -0,0 +1,185 @@ +# +# Configuration for the ATI IXP 150/200/250 chips +# + + + +ATIIXP.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix/dsnoop +ATIIXP.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +ATIIXP.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + channels 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "4ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + ] + } +} + + + + + + +ATIIXP.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + channels 6 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "6ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Mic As Center/LFE" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + { + name "Center/LFE Down Mix" + preserve true + value off + lock true + optional true + } + ] + } +} + + + +ATIIXP.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Playback AC97-SPSA" + lock true + preserve true + value 3 + } + { + name "IEC958 Playback Default" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + lock true + preserve true + value true + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/AU8810.conf b/squashfs-root/usr/share/alsa/cards/AU8810.conf new file mode 100644 index 0000000..24d46c3 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/AU8810.conf @@ -0,0 +1,38 @@ +# +# Configuration for the AU8810 chip +# + + + +AU8810.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +AU8810.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hw + card $CARD + device 1 +} diff --git a/squashfs-root/usr/share/alsa/cards/AU8820.conf b/squashfs-root/usr/share/alsa/cards/AU8820.conf new file mode 100644 index 0000000..0789025 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/AU8820.conf @@ -0,0 +1,14 @@ +# +# Configuration for the AU8820 chip +# + + + +AU8820.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} diff --git a/squashfs-root/usr/share/alsa/cards/AU8830.conf b/squashfs-root/usr/share/alsa/cards/AU8830.conf new file mode 100644 index 0000000..39e66d5 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/AU8830.conf @@ -0,0 +1,42 @@ +# +# Configuration for the AU8830 chip +# + + + +AU8830.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +AU8830.pcm.surround40.0 "cards.AU8830.pcm.front.0" + + + +AU8830.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hw + card $CARD + device 1 +} diff --git a/squashfs-root/usr/share/alsa/cards/Audigy.conf b/squashfs-root/usr/share/alsa/cards/Audigy.conf new file mode 100644 index 0000000..1c92496 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/Audigy.conf @@ -0,0 +1,322 @@ +# +# Configuration for the Audigy chip +# + + + +Audigy.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "FL,FR" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + interface PCM + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 ] + } + + ] + } +} + + + +Audigy.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "RL,RR" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 0 0 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 0 0 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 ] + } + ] + } +} + + + +Audigy.pcm.center_lfe.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "FC,LFE" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + interface PCM + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 ] + } + ] + } +} + + + + + + +Audigy.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.Audigy.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Audigy.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + +Audigy.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.Audigy.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Audigy.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Audigy.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + { slave 2 channel 1 } + ] +} + + + +Audigy.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + # for compatibility with older drivers + name "IEC958 Playback Default" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Optical Raw Playback Switch" + lock true + preserve true + value [ 1 1 ] + } + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + interface PCM + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 ] + } + { + name "Audigy Analog/Digital Output Jack" + lock true + preserve true + value 1 + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/Audigy2.conf b/squashfs-root/usr/share/alsa/cards/Audigy2.conf new file mode 100644 index 0000000..cbec783 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/Audigy2.conf @@ -0,0 +1,430 @@ +# +# Configuration for the Audigy2 chip +# + + + +Audigy2.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "FL,FR" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + interface PCM + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 ] + } + + ] + } +} + + + +Audigy2.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "RL,RR" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 0 0 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 0 0 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 ] + } + ] + } +} + + + +Audigy2.pcm.center_lfe.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "FC,LFE" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + interface PCM + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 ] + } + ] + } +} + + + +Audigy2.pcm.side.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "SL,SR" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + interface PCM + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 14 15 0 0 0 0 0 0 14 15 0 0 0 0 0 0 14 15 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 14 15 0 0 0 0 0 0 14 15 0 0 0 0 0 0 14 15 0 0 0 0 0 0 ] + } + ] + } +} + + + + + + +Audigy2.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.Audigy2.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Audigy2.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + +Audigy2.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.Audigy2.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Audigy2.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Audigy2.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + { slave 2 channel 1 } + ] +} + + + +Audigy2.pcm.surround71.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.Audigy2.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Audigy2.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Audigy2.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Audigy2.pcm.side.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + { slave 2 channel 1 } + { slave 3 channel 0 } + { slave 3 channel 1 } + ] +} + + + +Audigy2.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + # for compatibility with older drivers + name "IEC958 Playback Default" + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Optical Raw Playback Switch" + lock true + preserve true + value [ 1 1 ] + } + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ] + } + { + interface PCM + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + lock true + optional true + value [ 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 ] + } + { + name "Audigy Analog/Digital Output Jack" + lock true + preserve true + value 1 + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/Aureon51.conf b/squashfs-root/usr/share/alsa/cards/Aureon51.conf new file mode 100644 index 0000000..07be4a7 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/Aureon51.conf @@ -0,0 +1,180 @@ +# +# Configuration for the Aureon51 (Envy24HT) chip +# + +# default with dmix & dsnoop +Aureon51.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] + } + } +} + + + +Aureon51.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +Aureon51.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 + subdevice 1 +} + + + +Aureon51.pcm.center_lfe.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 +} + + + +Aureon51.pcm.side.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 + subdevice 2 +} + + + +Aureon51.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + channels 4 +} + + + + + + +Aureon51.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + channels 6 +} + + + +Aureon51.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type asym + playback.pcm { + type linear + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface MIXER + name "IEC958 Output Switch" + lock true + preserve true + value true + } + { + interface PCM + name "IEC958 Playback Default" + device 1 + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } + } + slave.format S32_LE + } + capture.pcm { + type linear + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface MIXER + name "IEC958 Capture Switch" + lock true + preserve true + value true + } + ] + } + } + slave.format S32_LE + } +} diff --git a/squashfs-root/usr/share/alsa/cards/Aureon71.conf b/squashfs-root/usr/share/alsa/cards/Aureon71.conf new file mode 100644 index 0000000..a43ce2c --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/Aureon71.conf @@ -0,0 +1,191 @@ +# +# Configuration for the Aureon71 (Envy24HT) chip +# + +# default with dmix & dsnoop +Aureon71.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] + } + } +} + + + +Aureon71.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +Aureon71.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 +} + + + +Aureon71.pcm.center_lfe.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 + subdevice 1 +} + + + +Aureon71.pcm.side.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 + subdevice 2 +} + + + +Aureon71.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + channels 4 +} + + + + + + +Aureon71.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + channels 6 +} + + + +Aureon71.pcm.surround71.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +Aureon71.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type asym + playback.pcm { + type linear + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface MIXER + name "IEC958 Output Switch" + lock true + preserve true + value true + } + { + interface PCM + name "IEC958 Playback Default" + device 1 + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } + } + slave.format S32_LE + } + capture.pcm { + type linear + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface MIXER + name "IEC958 Capture Switch" + lock true + preserve true + value true + } + ] + } + } + slave.format S32_LE + } +} diff --git a/squashfs-root/usr/share/alsa/cards/CA0106.conf b/squashfs-root/usr/share/alsa/cards/CA0106.conf new file mode 100644 index 0000000..2f0eaf0 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/CA0106.conf @@ -0,0 +1,281 @@ +# +# Configuration for the CA0106 chip +# + +# default with dmix & dsnoop +CA0106.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +CA0106.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +CA0106.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 1 +} + + + +CA0106.pcm.center_lfe.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 +} + + + +CA0106.pcm.side.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 3 +} + + + +CA0106.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.CA0106.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.CA0106.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + + + + + +CA0106.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.CA0106.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.CA0106.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.CA0106.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + { slave 2 channel 1 } + ] +} + +CA0106.pcm.surround71.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.CA0106.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.CA0106.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.CA0106.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.CA0106.pcm.side.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + { slave 2 channel 1 } + { slave 3 channel 0 } + { slave 3 channel 1 } + ] +} + + + + + + +CA0106.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Front Playback Volume" + index 0 + lock true + preserve true + value [ 207 207 ] # Puts 0x30303030 in the Volume register. 0xff - 0x30 = 0xcf = 207 + } + { + name "IEC958 Playback Switch" + lock true + preserve true + value 1 + } + { + interface PCM + name "IEC958 Playback Default" + index 1 + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + # for compatibility with older drivers + name "IEC958 Playback Default" + index 1 + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/CMI8338-SWIEC.conf b/squashfs-root/usr/share/alsa/cards/CMI8338-SWIEC.conf new file mode 100644 index 0000000..af3a579 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/CMI8338-SWIEC.conf @@ -0,0 +1,129 @@ +# +# Configuration for the CMI8338/8738 chip (w/o multi-channel support) +# using software IEC958 subframe conversion +# + + + +CMI8338-SWIEC.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix/dsnoop +CMI8338-SWIEC.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +# 2nd DAC +# FIXME: we need a volume attenuator for rear channel. +CMI8338-SWIEC.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 1 +} + + + +# for the old CM8738 with 2nd DAC for rear +CMI8338-SWIEC.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + master 1 + slaves [ + { + pcm { + @func concat + strings [ + "cards.CMI8338-SWIEC.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.CMI8338-SWIEC.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + +CMI8338-SWIEC.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type asym + playback.pcm { + type iec958 + slave.pcm { + type hw + card $CARD + device 2 + } + status [ $AES0 $AES1 $AES2 $AES3 ] + preamble.z 3 + preamble.y 5 + preamble.x 9 + } + capture.pcm { + type hw + card $CARD + device 2 + } +} diff --git a/squashfs-root/usr/share/alsa/cards/CMI8338.conf b/squashfs-root/usr/share/alsa/cards/CMI8338.conf new file mode 100644 index 0000000..144fc9b --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/CMI8338.conf @@ -0,0 +1,143 @@ +# +# Configuration for the CMI8338/8738 chip (w/o multi-channel support) +# + + + +CMI8338.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix/dsnoop +CMI8338.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +# 2nd DAC +# FIXME: we need a volume attenuator for rear channel. +CMI8338.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 1 +} + + + +# for the old CM8738 with 2nd DAC for rear +CMI8338.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + master 1 + slaves [ + { + pcm { + @func concat + strings [ + "cards.CMI8338.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.CMI8338.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + +CMI8338.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type asym + playback.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 2 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback PCM Stream" + device 2 + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Loop" + lock true + preserve true + value off + } + ] + } + } + capture.pcm { + type hw + card $CARD + device 2 + } +} diff --git a/squashfs-root/usr/share/alsa/cards/CMI8738-MC6.conf b/squashfs-root/usr/share/alsa/cards/CMI8738-MC6.conf new file mode 100644 index 0000000..edc67d4 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/CMI8738-MC6.conf @@ -0,0 +1,162 @@ +# +# Configuration for the CMI8738 chip with 4/6 multi-channel support +# + + + +CMI8738-MC6.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix/dsnoop +CMI8738-MC6.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +# 2nd DAC +# FIXME: we need a volume attenuator for rear channel. +CMI8738-MC6.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 1 +} + + + +CMI8738-MC6.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + channels 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Four Channel Mode" + lock true + preserve true + value false + } + ] + } +} + + + + + + +CMI8738-MC6.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + channels 6 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Four Channel Mode" + lock true + preserve true + value false + } + ] + } +} + + + +CMI8738-MC6.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type asym + playback.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 2 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback PCM Stream" + device 2 + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Loop" + lock true + preserve true + value off + } + ] + } + } + capture.pcm { + type hw + card $CARD + device 2 + } +} diff --git a/squashfs-root/usr/share/alsa/cards/CMI8738-MC8.conf b/squashfs-root/usr/share/alsa/cards/CMI8738-MC8.conf new file mode 100644 index 0000000..ddff753 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/CMI8738-MC8.conf @@ -0,0 +1,231 @@ +# +# Configuration for the CMI8768 chip with 8 multi-channel support +# + + + +CMI8738-MC8.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hw + card $CARD + } + control { + name "PCM Playback Volume" + card $CARD + } +} + +# default with dmix+softvol & dsnoop +CMI8738-MC8.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + control { + name "PCM Playback Volume" + card $CARD + } + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +# 2nd DAC +CMI8738-MC8.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hw + card $CARD + device 1 + } + control { + name "PCM Playback Volume" + card $CARD + } +} + + + +CMI8738-MC8.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + channels 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Four Channel Mode" + lock true + preserve true + value false + } + ] + } + } + control { + name "PCM Playback Volume" + card $CARD + } +} + + + + + + + +CMI8738-MC8.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + channels 6 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Four Channel Mode" + lock true + preserve true + value false + } + ] + } + } + control { + name "PCM Playback Volume" + card $CARD + } +} + + + +CMI8738-MC8.pcm.surround71.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + channels 8 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Four Channel Mode" + lock true + preserve true + value false + } + ] + } + } + control { + name "PCM Playback Volume" + card $CARD + } +} + + + +CMI8738-MC8.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type asym + playback.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 2 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback PCM Stream" + device 2 + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Loop" + lock true + preserve true + value off + } + ] + } + } + capture.pcm { + type hw + card $CARD + device 2 + } +} diff --git a/squashfs-root/usr/share/alsa/cards/CMI8788.conf b/squashfs-root/usr/share/alsa/cards/CMI8788.conf new file mode 100644 index 0000000..edcb0c9 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/CMI8788.conf @@ -0,0 +1,126 @@ +# +# Configuration for the CMI8788 chip +# + + + +CMI8788.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix & dsnoop +CMI8788.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] + } + } +} + + + +CMI8788.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + channels 4 +} + + + + + + +CMI8788.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + channels 6 +} + + + +CMI8788.pcm.surround71.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + channels 8 +} + + + +CMI8788.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type asym + playback.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + device 1 + name "IEC958 Playback PCM Stream" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } + } + capture.pcm { + type hw + card $CARD + device 1 + } +} + +# vim: ft=alsaconf diff --git a/squashfs-root/usr/share/alsa/cards/CS46xx.conf b/squashfs-root/usr/share/alsa/cards/CS46xx.conf new file mode 100644 index 0000000..b71c30a --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/CS46xx.conf @@ -0,0 +1,219 @@ +# +# Configuration for the CS46xx chip +# + + + +CS46xx.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with plughw +# CS46xx supports multi-playback +CS46xx.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "hw:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "hw:" $CARD ] + } + } +} + + + +CS46xx.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Duplicate Front" + lock true + preserve true + value 0 + optional true + } + ] + } +} + + + +CS46xx.pcm.center_lfe.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 3 +} + + + +CS46xx.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.CS46xx.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.CS46xx.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + + + + +CS46xx.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.CS46xx.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.CS46xx.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.CS46xx.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + { slave 2 channel 1 } + ] +} + + + +CS46xx.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 2 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Output Switch" + lock true + preserve true + value 1 + } + { + interface PCM + name "IEC958 Playback PCM Stream" + device 2 + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + # for compatibility with older drivers + interface PCM + name "IEC958 Playback PCM Stream" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/EMU10K1.conf b/squashfs-root/usr/share/alsa/cards/EMU10K1.conf new file mode 100644 index 0000000..ef193fe --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/EMU10K1.conf @@ -0,0 +1,329 @@ +# +# Configuration for the EMU10K1 chip +# + + + +EMU10K1.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "FL,FR" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + # lock true + optional true + value [ 255 255 0 0 255 0 0 0 0 255 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + # lock true + optional true + value [ 255 255 0 0 255 0 0 0 0 255 0 0 ] + } + { + interface PCM + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + # lock true + optional true + value [ 8 9 0 0 8 9 0 0 8 9 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + # lock true + optional true + value [ 8 9 0 0 8 9 0 0 8 9 0 0 ] + } + ] + } + } + capture.pcm { + type hw + card $CARD + } +} + + + +EMU10K1.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "RL,RR" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + # lock true + optional true + value [ 0 0 255 255 0 0 255 0 0 0 0 255 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + # lock true + optional true + value [ 0 0 255 255 0 0 255 0 0 0 0 255 ] + } + ] + } + } +} + + + +EMU10K1.pcm.center_lfe.0 { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "FC,LFE" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Headphone Center Playback Switch" + index 1 + preserve true + # lock true + optional true + value true + } + { + name "Headphone LFE Playback Switch" + index 1 + preserve true + # lock true + optional true + value true + } +# if you have a creative's digital receiver, you can get surround/center/lfe +# output through the digital jack. so, the following is commented out. +# pay attention in case of analog output from the shared center/digital +# jack! +# { +# name "SB Live Analog/Digital Output Jack" +# preserve true +# lock true +# value 0 +# } + { + interface PCM + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + # lock true + optional true + value [ 255 255 0 0 255 0 0 0 0 255 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Volume" + index { @func private_pcm_subdevice } + # lock true + optional true + value [ 255 255 0 0 255 0 0 0 0 255 0 0 ] + } + { + interface PCM + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + # lock true + optional true + value [ 6 7 0 0 6 7 0 0 6 7 0 0 ] + } + { + # for compatibility with older drivers + name "EMU10K1 PCM Send Routing" + index { @func private_pcm_subdevice } + # lock true + optional true + value [ 6 7 0 0 6 7 0 0 6 7 0 0 ] + } + ] + } + } +} + + + +EMU10K1.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.EMU10K1.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.EMU10K1.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + + + + +EMU10K1.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.EMU10K1.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.EMU10K1.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.EMU10K1.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + { slave 2 channel 1 } + ] +} + + + +EMU10K1.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 2 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + device 2 + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + # for compatibility with older drivers + name "IEC958 Playback Default" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Optical Raw Playback Switch" + lock true + preserve true + value [ 1 1 ] + } + { + name "SB Live Analog/Digital Output Jack" + lock true + preserve true + value 1 + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/EMU10K1X.conf b/squashfs-root/usr/share/alsa/cards/EMU10K1X.conf new file mode 100644 index 0000000..f742863 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/EMU10K1X.conf @@ -0,0 +1,202 @@ +# +# Configuration for the EMU10K1X chip +# + +# default with dmix & dsnoop +EMU10K1X.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +EMU10K1X.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +EMU10K1X.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 1 +} + + + +EMU10K1X.pcm.center_lfe.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 +} + + + +EMU10K1X.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.EMU10K1X.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.EMU10K1X.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + + + + +EMU10K1X.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.EMU10K1X.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.EMU10K1X.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.EMU10K1X.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + { slave 2 channel 1 } + ] +} + + + +EMU10K1X.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Analog/Digital Output Jack" + lock true + preserve true + value 0 + } + { + interface PCM + name "IEC958 Playback Default" + index 0 + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + # for compatibility with older drivers + name "IEC958 Playback Default" + index 0 + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/ENS1370.conf b/squashfs-root/usr/share/alsa/cards/ENS1370.conf new file mode 100644 index 0000000..32e4782 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/ENS1370.conf @@ -0,0 +1,107 @@ +# +# Configuration for the ENS1370 chip +# + + + +ENS1370.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 1 +} + +# default with dmix/dsnoop +ENS1370.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +ENS1370.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface CARD + name "PCM 0 Output also on Line-In Jack" + preserve true + lock true + value true + } + { + name "PCM Switch" + preserve true + lock true + value [ false false ] + } + ] + } +} + + + +ENS1370.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + master 1 + slaves [ + { + pcm { + @func concat + strings [ + "cards.ENS1370.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.ENS1370.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} diff --git a/squashfs-root/usr/share/alsa/cards/ENS1371.conf b/squashfs-root/usr/share/alsa/cards/ENS1371.conf new file mode 100644 index 0000000..a6df425 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/ENS1371.conf @@ -0,0 +1,134 @@ +# +# Configuration for the ENS1370 chip +# + + + +ENS1371.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix/dsnoop +ENS1371.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +ENS1371.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface MIXER + name "AC97 2ch->4ch Copy Switch" + lock true + preserve true + value 0 + } + ] + } +} + + + +ENS1371.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ "cards.ENS1371.pcm.front.0:CARD=" $CARD ] + } + channels 2 + } + { + pcm { + @func concat + strings [ "cards.ENS1371.pcm.rear.0:CARD=" $CARD ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + +ENS1371.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback PCM Stream" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/ES1968.conf b/squashfs-root/usr/share/alsa/cards/ES1968.conf new file mode 100644 index 0000000..a6ee119 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/ES1968.conf @@ -0,0 +1,12 @@ +# configuration for ESS Maestro2 + + + +ES1968.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} diff --git a/squashfs-root/usr/share/alsa/cards/Echo_Echo3G.conf b/squashfs-root/usr/share/alsa/cards/Echo_Echo3G.conf new file mode 100644 index 0000000..766f13f --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/Echo_Echo3G.conf @@ -0,0 +1,318 @@ +# +# Configuration for the Echo3G driver +# + + +Echo_Echo3G.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 0 + subdevice 0 +} + + +Echo_Echo3G.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 0 + subdevice 4 +} + + +Echo_Echo3G.pcm.center_lfe.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 0 + subdevice 2 +} + + +Echo_Echo3G.pcm.side.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 0 + subdevice 6 +} + + +Echo_Echo3G.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + +Echo_Echo3G.pcm.surround41.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + ] +} + + +Echo_Echo3G.pcm.surround50.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 1 } + ] +} + + +Echo_Echo3G.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + { slave 2 channel 1 } + ] +} + + +Echo_Echo3G.pcm.surround71.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.center_lfe.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.Echo_Echo3G.pcm.side.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + { slave 2 channel 1 } + { slave 3 channel 0 } + { slave 3 channel 1 } + ] +} + + +Echo_Echo3G.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/FM801.conf b/squashfs-root/usr/share/alsa/cards/FM801.conf new file mode 100644 index 0000000..0ddf799 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/FM801.conf @@ -0,0 +1,88 @@ +# +# Configuration for the FM801 chip +# + + + +FM801.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix/dsnoop +FM801.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +FM801.pcm.surround40.0 "cards.FM801.pcm.front.0" + + + + + + +FM801.pcm.surround51.0 "cards.FM801.pcm.front.0" + + + +FM801.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + # { + # name "IEC958 Playback Default" + # value [ $AES0 $AES1 $AES2 $AES3 ] + # } + { + name "IEC958 Raw Data Playback Switch" + preserve true + value true + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/FWSpeakers.conf b/squashfs-root/usr/share/alsa/cards/FWSpeakers.conf new file mode 100644 index 0000000..cd6fa60 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/FWSpeakers.conf @@ -0,0 +1,26 @@ +# +# Configuration for the LaCie Firewire speakers +# + +FWSpeakers.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ",FORMAT=S32" ] + } +} + + + +FWSpeakers.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} diff --git a/squashfs-root/usr/share/alsa/cards/FireWave.conf b/squashfs-root/usr/share/alsa/cards/FireWave.conf new file mode 100644 index 0000000..fcfc83c --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/FireWave.conf @@ -0,0 +1,51 @@ +# +# Configuration for the Griffin FireWave Surround +# + +FireWave.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ",FORMAT=S32" ] + } +} + + + +FireWave.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + + + + +FireWave.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type route + ttable [ + [ 1 0 0 0 0 0 ] + [ 0 1 0 0 0 0 ] + [ 0 0 0 0 1 0 ] + [ 0 0 0 0 0 1 ] + [ 0 0 1 0 0 0 ] + [ 0 0 0 1 0 0 ] + ] + slave.pcm { + type hw + card $CARD + } +} diff --git a/squashfs-root/usr/share/alsa/cards/GUS.conf b/squashfs-root/usr/share/alsa/cards/GUS.conf new file mode 100644 index 0000000..d744c54 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/GUS.conf @@ -0,0 +1,19 @@ +# +# Configuration for the GUS soundcards +# + + + +GUS.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type route + ttable.0.0 1 + ttable.1.1 1 + slave.pcm { + type hw + card $CARD + } +} diff --git a/squashfs-root/usr/share/alsa/cards/HDA-Intel.conf b/squashfs-root/usr/share/alsa/cards/HDA-Intel.conf new file mode 100644 index 0000000..fa9f694 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/HDA-Intel.conf @@ -0,0 +1,412 @@ +# +# Configuration for the Intel HD audio (ICH6/ICH7) +# + + + +HDA-Intel.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type softvol + slave.pcm { + type hw + card $CARD + subdevice 0 + } + control { + name "PCM Playback Volume" + card $CARD + } + } + capture.pcm { + type hw + card $CARD + } +} + +# default with dmix+softvol & dsnoop +HDA-Intel.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + control { + name "PCM Playback Volume" + card $CARD + } + } + } + capture.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + control { + name "Digital Capture Volume" + card $CARD + } + min_dB -30.0 + max_dB 30.0 + resolution 121 + } + # to avoid possible phase inversions with digital mics + route_policy copy + } + hint.device 0 +} + + + + + + + + +HDA-Intel.pcm.surround40.0 cards.HDA-Intel.pcm.front.0 +HDA-Intel.pcm.surround51.0 cards.HDA-Intel.pcm.front.0 +HDA-Intel.pcm.surround71.0 cards.HDA-Intel.pcm.front.0 + + + +HDA-Intel.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type asym + playback.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Playback Default" + index 16 + optional true + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + index 16 + optional true + value true + # if this element is present, skip the rest + skip_rest true + } + { + name "IEC958 Playback Default" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + value true + } + ] + } + } + capture.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Capture Switch" + lock true + preserve true + value true + } + ] + } + } + hint.device 1 +} + + + +HDA-Intel.pcm.hdmi.common { + @args [ CARD DEVICE CTLINDEX AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.DEVICE { + type integer + } + @args.CTLINDEX { + type integer + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device $DEVICE + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Playback Default" + index $CTLINDEX + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + index $CTLINDEX + value true + } + ] + } + hint.device $DEVICE +} + +HDA-Intel.pcm.hdmi.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + @func refer + name { + @func concat + strings [ + "cards.HDA-Intel.pcm.hdmi.common:" + "CARD=" $CARD "," + "DEVICE=3," + "CTLINDEX=0," + "AES0=" $AES0 "," + "AES1=" $AES1 "," + "AES2=" $AES2 "," + "AES3=" $AES3 + ] + } +} + +HDA-Intel.pcm.hdmi.1 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + @func refer + name { + @func concat + strings [ + "cards.HDA-Intel.pcm.hdmi.common:" + "CARD=" $CARD "," + "DEVICE=7," + "CTLINDEX=1," + "AES0=" $AES0 "," + "AES1=" $AES1 "," + "AES2=" $AES2 "," + "AES3=" $AES3 + ] + } +} + +HDA-Intel.pcm.hdmi.2 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + @func refer + name { + @func concat + strings [ + "cards.HDA-Intel.pcm.hdmi.common:" + "CARD=" $CARD "," + "DEVICE=8," + "CTLINDEX=2," + "AES0=" $AES0 "," + "AES1=" $AES1 "," + "AES2=" $AES2 "," + "AES3=" $AES3 + ] + } +} + +HDA-Intel.pcm.hdmi.3 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + @func refer + name { + @func concat + strings [ + "cards.HDA-Intel.pcm.hdmi.common:" + "CARD=" $CARD "," + "DEVICE=9," + "CTLINDEX=3," + "AES0=" $AES0 "," + "AES1=" $AES1 "," + "AES2=" $AES2 "," + "AES3=" $AES3 + ] + } +} + +HDA-Intel.pcm.hdmi.4 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + @func refer + name { + @func concat + strings [ + "cards.HDA-Intel.pcm.hdmi.common:" + "CARD=" $CARD "," + "DEVICE=10," + "CTLINDEX=4," + "AES0=" $AES0 "," + "AES1=" $AES1 "," + "AES2=" $AES2 "," + "AES3=" $AES3 + ] + } +} + +HDA-Intel.pcm.hdmi.5 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + @func refer + name { + @func concat + strings [ + "cards.HDA-Intel.pcm.hdmi.common:" + "CARD=" $CARD "," + "DEVICE=11," + "CTLINDEX=5," + "AES0=" $AES0 "," + "AES1=" $AES1 "," + "AES2=" $AES2 "," + "AES3=" $AES3 + ] + } +} + +HDA-Intel.pcm.hdmi.6 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + @func refer + name { + @func concat + strings [ + "cards.HDA-Intel.pcm.hdmi.common:" + "CARD=" $CARD "," + "DEVICE=12," + "CTLINDEX=6," + "AES0=" $AES0 "," + "AES1=" $AES1 "," + "AES2=" $AES2 "," + "AES3=" $AES3 + ] + } +} + +HDA-Intel.pcm.hdmi.7 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + @func refer + name { + @func concat + strings [ + "cards.HDA-Intel.pcm.hdmi.common:" + "CARD=" $CARD "," + "DEVICE=13," + "CTLINDEX=7," + "AES0=" $AES0 "," + "AES1=" $AES1 "," + "AES2=" $AES2 "," + "AES3=" $AES3 + ] + } +} + + + +HDA-Intel.pcm.modem.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 6 + hint.show off +} diff --git a/squashfs-root/usr/share/alsa/cards/HdmiLpeAudio.conf b/squashfs-root/usr/share/alsa/cards/HdmiLpeAudio.conf new file mode 100644 index 0000000..a1e493d --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/HdmiLpeAudio.conf @@ -0,0 +1,118 @@ +# +# Configuration for the Intel HDMI/DP LPE audio +# + + + +HdmiLpeAudio.pcm.hdmi.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + device 0 + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} + +HdmiLpeAudio.pcm.hdmi.1 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + device 1 + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} + +HdmiLpeAudio.pcm.hdmi.2 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 2 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + device 2 + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/ICE1712.conf b/squashfs-root/usr/share/alsa/cards/ICE1712.conf new file mode 100644 index 0000000..db62684 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/ICE1712.conf @@ -0,0 +1,180 @@ +# +# Configuration for the ICE1712 (Envy24) chip +# + +# default with dmix & dsnoop +ICE1712.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] + } + } +} + + + +ICE1712.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type route + ttable.0.0 1 + ttable.1.1 1 + slave.pcm { + type hw + card $CARD + } + slave.channels 10 + } + capture.pcm { + type route + ttable.0.0 1 + ttable.1.1 1 + slave.pcm { + type hw + card $CARD + } + slave.channels 12 + } +} + + + +ICE1712.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.2 1 + ttable.3.3 1 + slave.pcm { + type hw + card $CARD + } + slave.channels 10 +} + + + + + + + +ICE1712.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.2 1 + ttable.3.3 1 + ttable.4.4 1 + ttable.5.5 1 + slave.pcm { + type hw + card $CARD + } + slave.channels 10 +} + +ICE1712.pcm.surround71.0 { + @args [ CARD ] + @args.CARD { + type string + } + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.2 1 + ttable.3.3 1 + ttable.4.4 1 + ttable.5.5 1 + ttable.6.6 1 + ttable.7.7 1 + slave.pcm { + type hw + card $CARD + } + slave.channels 10 +} + + + +ICE1712.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type asym + playback.pcm { + type hooks + slave.pcm { + type route + ttable.0.8 1 + ttable.1.9 1 + slave.pcm { + type hw + card $CARD + } + slave.format S32_LE + slave.channels 10 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback PCM Stream" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } + } + capture.pcm { + type route + ttable.0.8 1 + ttable.1.9 1 + slave.pcm { + type hw + card $CARD + } + slave.format S32_LE + slave.channels 12 + } +} diff --git a/squashfs-root/usr/share/alsa/cards/ICE1724.conf b/squashfs-root/usr/share/alsa/cards/ICE1724.conf new file mode 100644 index 0000000..61cac01 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/ICE1724.conf @@ -0,0 +1,225 @@ +# +# Configuration for the ICE1724 (Envy24HT) chip +# + +# default with dmix & dsnoop +ICE1724.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] + } + } +} + + + +ICE1724.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +ICE1724.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 + subdevice 1 +} + + + +ICE1724.pcm.center_lfe.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 +} + + + +ICE1724.pcm.side.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 + subdevice 2 +} + + + +ICE1724.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.4 1 + ttable.3.5 1 + slave { + channels 6 + pcm { + type hw + card $CARD + } + } +} + + + + + + +ICE1724.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.4 1 + ttable.3.5 1 + ttable.4.2 1 + ttable.5.3 1 + slave { + channels 6 + pcm { + type hw + card $CARD + } + } +} + + + +ICE1724.pcm.surround71.0 { + @args [ CARD ] + @args.CARD { + type string + } + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.4 1 + ttable.3.5 1 + ttable.4.2 1 + ttable.5.3 1 + ttable.6.6 1 + ttable.7.7 1 + slave { + channels 8 + pcm { + type hw + card $CARD + } + } +} + + + +ICE1724.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type asym + playback.pcm { + type linear + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface MIXER + name "IEC958 Output Switch" + lock true + preserve true + value true + } + { + interface PCM + name "IEC958 Playback Default" + device 1 + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } + } + slave.format S32_LE + } + capture.pcm { + type linear + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface MIXER + name "IEC958 Capture Switch" + lock true + preserve true + value true + } + ] + } + } + slave.format S32_LE + } +} diff --git a/squashfs-root/usr/share/alsa/cards/ICH-MODEM.conf b/squashfs-root/usr/share/alsa/cards/ICH-MODEM.conf new file mode 100644 index 0000000..b96b5aa --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/ICH-MODEM.conf @@ -0,0 +1,15 @@ +# +# Configuration for the Intel/AMD modem controllers +# + + + +ICH-MODEM.pcm.modem.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + hint.show off +} diff --git a/squashfs-root/usr/share/alsa/cards/ICH.conf b/squashfs-root/usr/share/alsa/cards/ICH.conf new file mode 100644 index 0000000..6fc9a5a --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/ICH.conf @@ -0,0 +1,223 @@ +# +# Configuration for the Intel ICH/ICH2/ICH3 chips +# + + + +ICH.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hw + card $CARD + } + control { + name "PCM Playback Volume" + card $CARD + } +} + +# default with dmix+softvol & dsnoop +ICH.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + control { + name "PCM Playback Volume" + card $CARD + } + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +ICH.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + channels 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "4ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + ] + } + } + control { + name "PCM Playback Volume" + card $CARD + } +} + + + + + + +ICH.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.4 1 + ttable.3.5 1 + ttable.4.2 1 + ttable.5.3 1 + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + channels 6 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "6ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Mic As Center/LFE" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + { + name "Center/LFE Down Mix" + preserve true + value off + lock true + optional true + } + ] + } + } + slave.channels 6 + } + control { + name "PCM Playback Volume" + card $CARD + } +} + + + +ICH.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Playback AC97-SPSA" + lock true + preserve true + value 0 + optional true + } + { + name "IEC958 Playback Default" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + lock true + preserve true + value true + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/ICH4.conf b/squashfs-root/usr/share/alsa/cards/ICH4.conf new file mode 100644 index 0000000..64ec883 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/ICH4.conf @@ -0,0 +1,214 @@ +# +# Configuration for the Intel ICH4/ICH5/ICH6 chips +# + + + +ICH4.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hw + card $CARD + } + control { + name "PCM Playback Volume" + card $CARD + } +} + +# default with dmix+softvol & dsnoop +ICH4.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + control { + name "PCM Playback Volume" + card $CARD + } + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +ICH4.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + channels 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "4ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + ] + } + } + control { + name "PCM Playback Volume" + card $CARD + } +} + + + + + + +ICH4.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + channels 6 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "6ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Mic As Center/LFE" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + { + name "Center/LFE Down Mix" + preserve true + value off + lock true + optional true + } + ] + } + } + control { + name "PCM Playback Volume" + card $CARD + } +} + + + +ICH4.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Playback AC97-SPSA" + lock true + preserve true + value 3 + optional true + } + { + name "IEC958 Playback Default" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + lock true + preserve true + value true + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/Loopback.conf b/squashfs-root/usr/share/alsa/cards/Loopback.conf new file mode 100644 index 0000000..1ae6d45 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/Loopback.conf @@ -0,0 +1,75 @@ +# +# Configuration for the virtual loopback driver (snd-aloop) +# + + + +Loopback.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hw + card $CARD + } + control { + name "PCM Playback Volume" + card $CARD + } +} + +# default with dmix+softvol & dsnoop +Loopback.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + control { + name "PCM Playback Volume" + card $CARD + } + } + } + capture.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + control { + name "Digital Capture Volume" + card $CARD + } + min_dB -30.0 + max_dB 30.0 + resolution 121 + } + # to avoid possible phase inversions with digital mics + route_policy copy + } + hint.device 0 +} + + + + + + + + +Loopback.pcm.surround40.0 cards.Loopback.pcm.front.0 +Loopback.pcm.surround51.0 cards.Loopback.pcm.front.0 +Loopback.pcm.surround71.0 cards.Loopback.pcm.front.0 diff --git a/squashfs-root/usr/share/alsa/cards/Maestro3.conf b/squashfs-root/usr/share/alsa/cards/Maestro3.conf new file mode 100644 index 0000000..9432322 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/Maestro3.conf @@ -0,0 +1,38 @@ +# configuration for ESS Maestro3 + + + +Maestro3.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix/dsnoop +Maestro3.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + # we need to specify device and subdevice numbers + # for a device with multiple substreams + @func concat + strings [ "dmix:" $CARD ",0,0" ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + diff --git a/squashfs-root/usr/share/alsa/cards/NFORCE.conf b/squashfs-root/usr/share/alsa/cards/NFORCE.conf new file mode 100644 index 0000000..64d1547 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/NFORCE.conf @@ -0,0 +1,296 @@ +# +# Configuration for the nVIDIA nForce/2/3 +# + + + +NFORCE.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hw + card $CARD + } + control { + name "PCM Playback Volume" + card $CARD + } +} + +# default with dmix+softvol & dsnoop +NFORCE.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + control { + name "PCM Playback Volume" + card $CARD + } + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +NFORCE.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + channels 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "4ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + ] + } + } + control { + name "PCM Playback Volume" + card $CARD + } +} + + + + + + +NFORCE.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.4 1 + ttable.3.5 1 + ttable.4.2 1 + ttable.5.3 1 + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + channels 6 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "6ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Mic As Center/LFE" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + { + name "Center/LFE Down Mix" + preserve true + value off + lock true + optional true + } + ] + } + } + slave.channels 6 + } + control { + name "PCM Playback Volume" + card $CARD + } +} + + + +NFORCE.pcm.surround71.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.4 1 + ttable.3.5 1 + ttable.4.2 1 + ttable.5.3 1 + ttable.6.6 1 + ttable.7.7 1 + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 0 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "8ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Mic As Center/LFE" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + { + name "Center/LFE Down Mix" + preserve true + value off + lock true + optional true + } + ] + } + } + slave.channels 8 + } + control { + name "PCM Playback Volume" + card $CARD + } +} + + + +NFORCE.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 2 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Playback AC97-SPSA" + lock true + preserve true + value 0 + } + { + name "IEC958 Playback Default" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + lock true + preserve true + value true + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/PC-Speaker.conf b/squashfs-root/usr/share/alsa/cards/PC-Speaker.conf new file mode 100644 index 0000000..c82654d --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/PC-Speaker.conf @@ -0,0 +1,52 @@ +# +# Configuration for PC-Speaker driver +# + + + +PC-Speaker.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hw + card $CARD + } + control { + name "Master Playback Volume" + card $CARD + } + min_dB -10.0 + max_dB 20.0 +} + +# default with dmix & null +PC-Speaker.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + type softvol + control { + name "Master Playback Volume" + card $CARD + } + min_dB -10.0 + max_dB 20.0 + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + } + capture.pcm { + type null + } +} + diff --git a/squashfs-root/usr/share/alsa/cards/PMac.conf b/squashfs-root/usr/share/alsa/cards/PMac.conf new file mode 100644 index 0000000..d1fdb17 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/PMac.conf @@ -0,0 +1,37 @@ +# +# Configuration for PMac +# + + + +PMac.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix/dsnoop +PMac.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:CARD=" $CARD ",FORMAT=S16_BE" ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:CARD=" $CARD ",FORMAT=S16_BE" ] + } + } +} diff --git a/squashfs-root/usr/share/alsa/cards/PMacToonie.conf b/squashfs-root/usr/share/alsa/cards/PMacToonie.conf new file mode 100644 index 0000000..1e0eb59 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/PMacToonie.conf @@ -0,0 +1,51 @@ +# +# Configuration for PMac Toonie +# + + + +PMacToonie.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hw + card $CARD + } + control { + name "PCM Playback Volume" + card $CARD + } +} + +# default with dmix+softvol & dsnoop +PMacToonie.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + @func concat + strings [ "dmix:CARD=" $CARD ",FORMAT=S16_BE" ] + } + control { + name "PCM Playback Volume" + card $CARD + } + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:CARD=" $CARD ",FORMAT=S16_BE" ] + } + } +} diff --git a/squashfs-root/usr/share/alsa/cards/PS3.conf b/squashfs-root/usr/share/alsa/cards/PS3.conf new file mode 100644 index 0000000..b642f0d --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/PS3.conf @@ -0,0 +1,85 @@ +# +# Configuration for PS3 +# + + + +PS3.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type softvol + slave.pcm { + type hw + card $CARD + device 0 + } + control { + name "PCM Playback Volume" + card $CARD + } +} + +# default with dmix+softvol +PS3.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + @func concat + #strings [ "dmix:CARD=" $CARD ] + strings [ "dmix:CARD=" $CARD ",FORMAT=S16" ] + } + control { + name "PCM Playback Volume" + card $CARD + } + } + } +} + + + +PS3.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/RME9636.conf b/squashfs-root/usr/share/alsa/cards/RME9636.conf new file mode 100644 index 0000000..e8dc5fa --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/RME9636.conf @@ -0,0 +1,61 @@ +# +# Configuration for the RME9636 +# + + + +RME9636.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# FIXME: This configuration is not valid for double-speed rates. + + + +RME9636.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type route + slave { + pcm { + type hw + card $CARD + } + channels 18 + } + ttable.0.16 1 + ttable.1.17 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback PCM Stream" + lock true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/RME9652.conf b/squashfs-root/usr/share/alsa/cards/RME9652.conf new file mode 100644 index 0000000..1147d81 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/RME9652.conf @@ -0,0 +1,61 @@ +# +# Configuration for the RME9652 +# + + + +RME9652.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# FIXME: This configuration is not valid for double-speed rates. + + + +RME9652.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type route + slave { + pcm { + type hw + card $CARD + } + channels 26 + } + ttable.0.24 1 + ttable.1.25 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback PCM Stream" + lock true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/SB-XFi.conf b/squashfs-root/usr/share/alsa/cards/SB-XFi.conf new file mode 100644 index 0000000..eb2218b --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/SB-XFi.conf @@ -0,0 +1,109 @@ +# +# Configuration for the SB X-Fi driver +# + + + +SB-XFi.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 0 +} + + + +SB-XFi.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 1 + hint.device 1 +} + + + +SB-XFi.pcm.center_lfe.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 + hint.device 2 +} + + + +SB-XFi.pcm.side.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 3 + hint.device 3 +} + + + + + + + + +SB-XFi.pcm.surround40.0 cards.SB-XFi.pcm.front.0 +SB-XFi.pcm.surround51.0 cards.SB-XFi.pcm.front.0 +SB-XFi.pcm.surround71.0 cards.SB-XFi.pcm.front.0 + + + +SB-XFi.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type asym + playback.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback PCM Stream" + device 4 + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } + } + hint.device 4 +} diff --git a/squashfs-root/usr/share/alsa/cards/SI7018.conf b/squashfs-root/usr/share/alsa/cards/SI7018.conf new file mode 100644 index 0000000..02b8fc8 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/SI7018.conf @@ -0,0 +1,169 @@ +# +# Configuration for the SI7018 chip +# +# This configuration does not reflect hardware. +# + + + +SI7018.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + chmap [ "UNKNOWN" "FL,FR" ] +} + + + +SI7018.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "RL,RR" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "PCM Playback Volume" + preserve true + lock true + value [ 24 24 ] + } + ] + } +} + + + +SI7018.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.SI7018.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.SI7018.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + + + + +SI7018.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.SI7018.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.SI7018.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.SI7018.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + { slave 2 channel 0 } + { slave 2 channel 1 } + ] +} + + + +SI7018.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback PCM Stream" + value [ $AES0 $AES1 $AES2 $AES3 ] + device 1 + lock true + preserve true + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/SI7018/sndoc-mixer.alisp b/squashfs-root/usr/share/alsa/cards/SI7018/sndoc-mixer.alisp new file mode 100644 index 0000000..ade1ea3 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/SI7018/sndoc-mixer.alisp @@ -0,0 +1,11 @@ +; +; SiS SI7018 mixer abstract layer +; +; Copyright (c) 2003 Jaroslav Kysela +; License: GPL v2 (http://www.gnu.org/licenses/gpl.html) +; + +(defun sndoc_mixer_open (hctl pcm) + (princ "sndoc_mixer_open: hctl=" hctl " pcm=" pcm "\n") + 0 +) diff --git a/squashfs-root/usr/share/alsa/cards/SI7018/sndop-mixer.alisp b/squashfs-root/usr/share/alsa/cards/SI7018/sndop-mixer.alisp new file mode 100644 index 0000000..285e289 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/SI7018/sndop-mixer.alisp @@ -0,0 +1,11 @@ +; +; SiS SI7018 mixer abstract layer +; +; Copyright (c) 2003 Jaroslav Kysela +; License: GPL v2 (http://www.gnu.org/licenses/gpl.html) +; + +(defun sndop_mixer_open (hctl pcm) + (princ "sndop_mixer_open: hctl=" hctl " pcm=" pcm "\n") + 0 +) diff --git a/squashfs-root/usr/share/alsa/cards/TRID4DWAVENX.conf b/squashfs-root/usr/share/alsa/cards/TRID4DWAVENX.conf new file mode 100644 index 0000000..717b140 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/TRID4DWAVENX.conf @@ -0,0 +1,131 @@ +# +# Configuration for the Trident 4D-Wave NX chip +# + + + +TRID4DWAVENX.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + chmap [ "UNKNOWN" "FL,FR" ] +} + + + +TRID4DWAVENX.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + chmap [ "UNKNOWN" "RL,RR" ] + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Rear Path" + lock true + preserve true + value true + } + { + name "PCM Front Playback Volume" + index { @func private_pcm_subdevice } + lock true + preserve true + value 0 + } + { + name "PCM Reverb Playback Volume" + index { @func private_pcm_subdevice } + lock true + preserve true + value 127 + } + ] + } +} + + + +TRID4DWAVENX.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.TRID4DWAVENX.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.TRID4DWAVENX.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + +TRID4DWAVENX.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 2 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback PCM Stream" + value [ $AES0 $AES1 $AES2 $AES3 ] + device 2 + lock true + preserve true + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/USB-Audio.conf b/squashfs-root/usr/share/alsa/cards/USB-Audio.conf new file mode 100644 index 0000000..cc8c718 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/USB-Audio.conf @@ -0,0 +1,485 @@ +# +# USB-Audio.conf - configuration for USB Audio devices +# +# +# DO NO EDIT; this is an internal ALSA file. +# If you want to add your own definitions, put them into /etc/asound.conf or +# ~/.asoundrc, with "cards." before the "USB-Audio", e.g.: +# +# cards.USB-Audio.pcm.use_dmix."NoiseBlaster 3000" no +# +# If your device requires such a definition to work correctly, please report it +# to . + + +# If a device has sample formats not supported by dmix, dmix can be disabled +# here. +USB-Audio.pcm.use_dmix { + "AudioPhile" no # uses big-endian 24-bit samples + "Audiophile USB (tm)" no +} + +# If a device does not have a four-channel mode for the front/rear outputs, +# other modes can be selected here. +# six_channels - for devices that route the last two of the four channels +# to the center/LFE outputs +# two_stereo_devices - for devices that have two stereo audio interfaces +USB-Audio.pcm.surround40_type { + "AudioPhile" two_stereo_devices + "Audiophile USB (tm)" two_stereo_devices + "OmniStudio" two_stereo_devices + "Quattro" two_stereo_devices + "SB Audigy 2 NX" six_channels + "USB AudioSport Quattro (tm)" two_stereo_devices +} + +# If a device does not use the first PCM device for digital data, the device +# number for the iec958 device can be changed here. +USB-Audio.pcm.iec958_device { + # "NoiseBlaster 3000" 42 + "USB Sound Blaster HD" 1 + + # The below don't have digital in/out, so prevent them from being opened. + "Andrea PureAudio USB-SA Headset" 999 + "Blue Snowball" 999 + "HP Digital Stereo Headset" 999 + "GN 9330" 999 + "Logitech Speaker Lapdesk N700" 999 + "Logitech G35 Headset" 999 + "Logitech USB Headset" 999 + "Logitech USB Headset H540" 999 + "Logitech Wireless Headset" 999 + "Plantronics GameCom 780" 999 + "Plantronics USB Headset" 999 + "Plantronics Wireless Audio" 999 + "SB WoW Headset" 999 + "Scarlett 2i2 USB" 999 + "Scarlett 2i4 USB" 999 + "Sennheiser USB headset" 999 + "SWTOR Gaming Headset by Razer" 999 + "USB Device 0x46d_0x821" 999 + "USB Device 0x46d_0x992" 999 +} + +# Second iec958 device number, if any. +USB-Audio.pcm.iec958_2_device { + "PHIREE U2" 1 # 0 = PCM S/PDIF, 1 = non-PCM S/PDIF +} + + +# If a device requires non-standard definitions for front, default, surround40, +# surround51, surround71 or iec958, they can be defined here. + +# M-Audio AudioPhile USB: +# device 0: analog output, digital input +# device 1: digital output, analog input +USB-Audio."AudioPhile".pcm.default "cards.USB-Audio.Audiophile USB (tm).pcm.default" +USB-Audio."Audiophile USB (tm)".pcm.default { + @args [ CARD ] + @args.CARD { type string } + type asym + playback.pcm { + type plug + slave.pcm { + type hw + card $CARD + device 0 + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:DEV=1,CARD=" $CARD ] + } + } +} +USB-Audio."AudioPhile".pcm.iec958 "cards.USB-Audio.Audiophile USB (tm).pcm.iec958" +USB-Audio."Audiophile USB (tm)".pcm.iec958 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + type asym + playback.pcm { + type hw + card $CARD + device 1 + } + capture.pcm { + type hw + card $CARD + device 0 + } +} + +# For this card we can (and must to get IEC61937) set AES bits +USB-Audio."MicroII".pcm.iec958 "cards.USB-Audio.Audio Advantage MicroII.pcm.iec958" +USB-Audio."Audio Advantage MicroII".pcm.iec958 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + + type hooks + slave.pcm { + type hw + card $CARD + } + + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + lock true + preserve true + value 1 + } + ] + } +} + +################################################################################ + + + +USB-Audio.pcm.front.0 { + @args [ CARD ] + @args.CARD { type string } + @func refer + name { + @func concat + strings [ + "cards.USB-Audio." + { @func card_name card $CARD } + ".pcm.front:CARD=" $CARD + ] + } + default { + # We could use softvol, but the driver might have guessed a + # wrong name for the real volume control. + type hw + card $CARD + device 0 + } +} + +USB-Audio.pcm.default { + @args [ CARD ] + @args.CARD { type string } + @func refer + name { + @func concat + strings [ + "cards.USB-Audio." + { @func card_name card $CARD } + ".pcm.default:CARD=" $CARD + ] + } + default { + type asym + playback.pcm { + type plug + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards.USB-Audio.pcm.default_playback_dmix_" + { + @func refer + name { + @func concat + strings [ + "cards.USB-Audio.pcm.use_dmix." + { @func card_name card $CARD } + ] + } + default yes + } + ":CARD=" $CARD + ] + } + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } + } +} + +USB-Audio.pcm.default_playback_dmix_yes { + @args [ CARD ] + @args.CARD { type string } + @func concat + strings [ "dmix:" $CARD ] +} + +USB-Audio.pcm.default_playback_dmix_no { + @args [ CARD ] + @args.CARD { type string } + type hw + card $CARD + device 0 +} + + + +USB-Audio.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { type string } + @func refer + name { + @func concat + strings [ + "cards.USB-Audio." + { @func card_name card $CARD } + ".pcm.surround40:CARD=" $CARD + ] + } + default { + @func refer + name { + @func concat + strings [ + "cards.USB-Audio.pcm.surround40_" + { + @func refer + name { + @func concat + strings [ + "cards.USB-Audio.pcm.surround40_type." + { @func card_name card $CARD } + ] + } + default default + } + ":CARD=" $CARD + ] + } + } +} + +USB-Audio.pcm.surround40_default { + @args [ CARD ] + @args.CARD { type string } + type hw + card $CARD + device 0 +} + +USB-Audio.pcm.surround40_six_channels { + @args [ CARD ] + @args.CARD { type string } + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.4 1 + ttable.3.5 1 + slave { + pcm { + type hw + card $CARD + device 0 + } + channels 6 + } +} + +USB-Audio.pcm.surround40_two_stereo_devices { + @args [ CARD ] + @args.CARD { type string } + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.2 1 + ttable.3.3 1 + slave.pcm { + type multi + slaves { + a { + pcm { + type hw + card $CARD + device 0 + } + channels 2 + } + b { + pcm { + type hw + card $CARD + device 1 + } + channels 2 + } + } + bindings [ + { slave a channel 0 } + { slave a channel 1 } + { slave b channel 0 } + { slave b channel 1 } + ] + } +} + + + + + + +USB-Audio.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { type string } + @func refer + name { + @func concat + strings [ + "cards.USB-Audio." + { @func card_name card $CARD } + ".pcm.surround51:CARD=" $CARD + ] + } + default { + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.4 1 + ttable.3.5 1 + ttable.4.2 1 + ttable.5.3 1 + slave { + pcm { + type hw + card $CARD + device 0 + } + channels 6 + } + } +} + + + +USB-Audio.pcm.surround71.0 { + @args [ CARD ] + @args.CARD { type string } + @func refer + name { + @func concat + strings [ + "cards.USB-Audio." + { @func card_name card $CARD } + ".pcm.surround71:CARD=" $CARD + ] + } + default { + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.4 1 + ttable.3.5 1 + ttable.4.2 1 + ttable.5.3 1 + ttable.6.6 1 + ttable.7.7 1 + slave { + pcm { + type hw + card $CARD + device 0 + } + channels 8 + } + } +} + + + +USB-Audio.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + @func refer + name { + @func concat + strings [ + "cards.USB-Audio." + { @func card_name card $CARD } + ".pcm.iec958:CARD=" $CARD + ",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3 + ] + } + default { + # FIXME: we cannot set the AES parameters + type hw + card $CARD + device { + @func refer + name { + @func concat + strings [ + "cards.USB-Audio.pcm.iec958_device." + { @func card_name card $CARD } + ] + } + default 0 + } + } +} + +USB-Audio.pcm.iec958.1 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { type string } + @args.AES0 { type integer } + @args.AES1 { type integer } + @args.AES2 { type integer } + @args.AES3 { type integer } + @func refer + name { + @func concat + strings [ + "cards.USB-Audio." + { @func card_name card $CARD } + ".pcm.iec958_2:CARD=" $CARD + ",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3 + ] + } + default { + # FIXME: we cannot set the AES parameters + type hw + card $CARD + device { + @func refer + name { + @func concat + strings [ + "cards.USB-Audio.pcm.iec958_2_device." + { @func card_name card $CARD } + ] + } + default 999 + } + } +} + +# vim: ft=alsaconf diff --git a/squashfs-root/usr/share/alsa/cards/VIA686A.conf b/squashfs-root/usr/share/alsa/cards/VIA686A.conf new file mode 100644 index 0000000..e4a06f2 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/VIA686A.conf @@ -0,0 +1,89 @@ +# +# Configuration for the VIA686A chip +# +# SPDIF support is not complete - it might not work, especially with AC3 +# passthru mode... +# + + + +VIA686A.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix/dsnoop +VIA686A.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +VIA686A.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Playback AC97-SPSA" + lock true + preserve true + value 0 + } + { + name "IEC958 Playback Default" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + lock true + preserve true + value true + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/VIA8233.conf b/squashfs-root/usr/share/alsa/cards/VIA8233.conf new file mode 100644 index 0000000..9ad321f --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/VIA8233.conf @@ -0,0 +1,201 @@ +# +# Configuration for the VIA8233/VIA8233C/VIA8235 chip with 4/6 multi-channel support +# + + + +VIA8233.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with softvol/dsnoop +# VIA8233 supports multi-playback +VIA8233.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + type hw + card $CARD + } + control { + name "PCM Playback Volume" + card $CARD + } + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +VIA8233.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + channels 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "4ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + ] + } +} + + + + + + +VIA8233.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + channels 6 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "6ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Mic As Center/LFE" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + { + name "Center/LFE Down Mix" + preserve true + value off + lock true + optional true + } + ] + } +} + + + +VIA8233.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + subdevice 3 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Playback AC97-SPSA" + lock true + preserve true + value 3 + } + { + name "IEC958 Playback Default" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + lock true + preserve true + value true + } + { + name "IEC958 Output Switch" + lock true + preserve true + value true + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/VIA8233A.conf b/squashfs-root/usr/share/alsa/cards/VIA8233A.conf new file mode 100644 index 0000000..679fccf --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/VIA8233A.conf @@ -0,0 +1,205 @@ +# +# Configuration for the VIA8233A chip with 4/6 multi-channel support +# + + + +VIA8233A.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix/dsnoop +VIA8233A.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +VIA8233A.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + channels 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Swap Surround Slot" + lock true + preserve true + value false + optional true + } + { + name "Channel Mode" + preserve true + value "4ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + ] + } +} + + + + + + +VIA8233A.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + channels 6 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Swap Surround Slot" + lock true + preserve true + value true + optional true + } + { + name "Channel Mode" + preserve true + value "6ch" + lock true + optional true + } + # for old drivers + { + name "Line-In As Surround" + preserve true + value true + optional true + } + { + name "Mic As Center/LFE" + preserve true + value true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + { + name "Center/LFE Down Mix" + preserve true + value off + lock true + optional true + } + ] + } +} + + + +VIA8233A.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Playback AC97-SPSA" + lock true + preserve true + value 3 + } + { + name "IEC958 Playback Default" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + lock true + preserve true + value true + } + { + name "IEC958 Output Switch" + lock true + preserve true + value true + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/VIA8237.conf b/squashfs-root/usr/share/alsa/cards/VIA8237.conf new file mode 100644 index 0000000..29d8e00 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/VIA8237.conf @@ -0,0 +1,191 @@ +# +# Configuration for the VIA8237 chip with 4/6 multi-channel support +# + + + +VIA8237.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with softvol/dsnoop +# VIA8237 supports multi-playback +VIA8237.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + type softvol + slave.pcm { + type hw + card $CARD + } + control { + name "PCM Playback Volume" + card $CARD + } + } + } + capture.pcm { + type plug + slave.pcm { + @func concat + strings [ "dsnoop:" $CARD ] + } + } +} + + + +VIA8237.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + channels 4 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "4ch" + lock true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + ] + } +} + + + + + + +VIA8237.pcm.surround51.0 { + @args [ CARD ] + @args.CARD { + type string + } + type route + ttable.0.0 1 + ttable.1.1 1 + ttable.2.4 1 + ttable.3.5 1 + ttable.4.2 1 + ttable.5.3 1 + slave.pcm { + type hooks + slave.pcm { + type hw + card $CARD + device 1 + channels 6 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Channel Mode" + preserve true + value "6ch" + lock true + optional true + } + { + name "Surround Down Mix" + preserve true + value off + lock true + optional true + } + { + name "Center/LFE Down Mix" + preserve true + value off + lock true + optional true + } + ] + } + } + slave.channels 6 +} + + + +VIA8237.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + subdevice 3 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Playback AC97-SPSA" + lock true + preserve true + value 3 + } + { + name "IEC958 Playback Default" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + name "IEC958 Playback Switch" + lock true + preserve true + value true + } + { + name "IEC958 Output Switch" + lock true + preserve true + value true + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/VX222.conf b/squashfs-root/usr/share/alsa/cards/VX222.conf new file mode 100644 index 0000000..3385f25 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/VX222.conf @@ -0,0 +1,61 @@ +# +# Configuration for Digigram VX222 +# + + + +VX222.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +VX222.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + # for compatibility with older drivers + name "IEC958 Playback Default" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/VXPocket.conf b/squashfs-root/usr/share/alsa/cards/VXPocket.conf new file mode 100644 index 0000000..fe44ff5 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/VXPocket.conf @@ -0,0 +1,61 @@ +# +# Configuration for Digigram VXpocket +# + + + +VXPocket.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +VXPocket.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + # for compatibility with older drivers + name "IEC958 Playback Default" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/VXPocket440.conf b/squashfs-root/usr/share/alsa/cards/VXPocket440.conf new file mode 100644 index 0000000..197c2d6 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/VXPocket440.conf @@ -0,0 +1,110 @@ +# +# Configuration for Digigram VXpocket440 +# + + + +VXPocket440.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +VXPocket440.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 1 +} + + + +VXPocket440.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + master 1 + slaves [ + { + pcm { + @func concat + strings [ + "cards.VXPocket440.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.VXPocket440.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + +VXPocket440.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + { + # for compatibility with older drivers + name "IEC958 Playback Default" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/YMF744.conf b/squashfs-root/usr/share/alsa/cards/YMF744.conf new file mode 100644 index 0000000..84dbcbe --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/YMF744.conf @@ -0,0 +1,108 @@ +# +# Configuration for the YMF744 chip +# + + + +YMF744.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + + + +YMF744.pcm.rear.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 2 +} + + + +YMF744.pcm.surround40.0 { + @args [ CARD ] + @args.CARD { + type string + } + type multi + slaves [ + { + pcm { + @func concat + strings [ + "cards.YMF744.pcm.front.0:CARD=" $CARD + ] + } + channels 2 + } + { + pcm { + @func concat + strings [ + "cards.YMF744.pcm.rear.0:CARD=" $CARD + ] + } + channels 2 + } + ] + bindings [ + { slave 0 channel 0 } + { slave 0 channel 1 } + { slave 1 channel 0 } + { slave 1 channel 1 } + ] +} + + + +YMF744.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + device 1 + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "IEC958 Playback Switch" + lock true + preserve true + value 1 + } + { + interface PCM + name "IEC958 Playback PCM Stream" + device 1 + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff --git a/squashfs-root/usr/share/alsa/cards/aliases.alisp b/squashfs-root/usr/share/alsa/cards/aliases.alisp new file mode 100644 index 0000000..1661caa --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/aliases.alisp @@ -0,0 +1,29 @@ +(setq snd_card_aliases_array + ( + ("YMF724" . "YMF744") + ("YMF724F" . "YMF744") + ("YMF740" . "YMF744") + ("YMF740C" . "YMF744") + ("YMF754" . "YMF744") + ("CMIPCI" . "CMI8338") + ("CMI8738" . "CMI8338") + ("CMI8738-MC4" . "CMI8738-MC6") + ("E-mu APS" . "EMU10K1") + ("GUS Max" . "GUS") + ("GUS ACE" . "GUS") + ("GUS Extreme" . "GUS") + ("AMD InterWave" . "GUS") + ("Dynasonic 3-D" . "GUS") + ("InterWave STB" . "GUS") + ) +) + +(defun snd_card_alias (cardname) + (setq r (assq cardname snd_card_aliases_array)) + (setq r (if (null r) cardname r)) + (unsetq r) +) + +(defun snd_card_alias_unset () + (unsetq snd_card_aliases_array snd_card_alias) +) diff --git a/squashfs-root/usr/share/alsa/cards/aliases.conf b/squashfs-root/usr/share/alsa/cards/aliases.conf new file mode 100644 index 0000000..18a920f --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/aliases.conf @@ -0,0 +1,63 @@ +# +# Define aliases for various drivers +# + +YMF724 cards.YMF744 +YMF724F cards.YMF744 +YMF740 cards.YMF744 +YMF740C cards.YMF744 +YMF754 cards.YMF744 +CMIPCI cards.CMI8338 +CMI8738 cards.CMI8338 +CMI8738-SWIEC cards.CMI8338-SWIEC +CMI8738-MC4 cards.CMI8738-MC6 +'E-mu APS' cards.EMU10K1 +'GUS MAX' cards.GUS +'GUS ACE' cards.GUS +'GUS Extreme' cards.GUS +'AMD InterWave' cards.GUS +'Dynasonic 3-D' cards.GUS +'InterWave STB' cards.GUS +au8810 cards.AU8810 +au8820 cards.AU8820 +au8830 cards.AU8830 +Prodigy71 cards.Aureon71 +Prodigy71LT cards.Aureon71 +Prodigy71HIFI cards.Aureon71 +Aureon71Univ cards.Aureon71 +VIA82XX-MODEM cards.ICH-MODEM +'MPU-401 UART' cards.MPU-401 +'VX222/Old' cards.VX222 +'VX222/v2' cards.VX222 +'VX222/Mic' cards.VX222 +'CMI8330/C3D' cards.CMI8330 +'SB AWE' cards.SBAWE +'SB Pro' cards.SBPro +'PMac Burgundy' cards.PMac +'PMac DACA' cards.PMac +'PMac Tumbler' cards.PMac +'PMac Snapper' cards.PMac +'PMac Screamer' cards.PMac +'PMac AWACS' cards.PMac +'PMac Toonie' cards.PMacToonie +AppleOnbdAudio cards.PMacToonie +'USB US-X2Y' cards.US-X2Y +'Serial MIDI' cards.SerialMIDI +'Prodif Plus' cards.ProdifPlus +ESM1 cards.ES1968 +ES1978 cards.ES1968 +Allegro cards.Maestro3 +Canyon3D-2 cards.Maestro3 +Azalia cards.HDA-Intel +aaci-pl041 cards.AACI +AV66 cards.CMI8788 +AV100 cards.CMI8788 +AV200 cards.CMI8788 +CMI8786 cards.CMI8788 +CMI8787 cards.CMI8788 +pistachio cards.pistachio-card +VC4-HDMI cards.vc4-hdmi + + + + diff --git a/squashfs-root/usr/share/alsa/cards/pistachio-card.conf b/squashfs-root/usr/share/alsa/cards/pistachio-card.conf new file mode 100644 index 0000000..59cd920 --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/pistachio-card.conf @@ -0,0 +1,58 @@ +# +# Configuration for the pistachio chip. +# +# The data sheet of the chip and technical reference manual can be +found at +https://docs.creatordev.io/ci40/guides/hardwaredocs/cXT200_datasheet2.p +df # and +https://docs.creatordev.io/ci40/guides/hardwaredocs/MIPS_Creator_cXT200_Technical_Reference_Manual_1.0.112.pdf. +# +# The list of hardware devices is as per below: +# +# root@OpenWrt:/# arecord -l +# **** List of CAPTURE Hardware Devices **** card 0: pistachiocard [pistachio-card], device 1: pistachio-spdif-in snd-soc-dummy-dai-1 [] +# Subdevices: 1/1 +# Subdevice #0: subdevice #0 +# card 0: pistachiocard [pistachio-card], device 4: pistachio-i2s-in-0 snd-soc-dummy-dai-4 [] +# Subdevices: 1/1 +# Subdevice #0: subdevice #0 +# +# root@OpenWrt:/# aplay -l +# **** List of PLAYBACK Hardware Devices **** card 0: pistachiocard [pistachio-card], device 0: pistachio-spdif-out snd-soc-dummy-dai-0 [] +# Subdevices: 1/1 +# Subdevice #0: subdevice #0 +# card 0: pistachiocard [pistachio-card], device 2: pistachio-parallel-out pistachio_internal_dac-2 [] +# Subdevices: 1/1 +# Subdevice #0: subdevice #0 +# card 0: pistachiocard [pistachio-card], device 3: pistachio-i2s-out snd-soc-dummy-dai-3 [] +# Subdevices: 1/1 +# Subdevice #0: subdevice #0 +# + +pistachio-card.pcm.default{ + @args [ CARD ] + @args.CARD { + type string + default "pistachio" + } + @args.DEVICE { + type integer + default 2 + } + + type asym + capture.pcm { + type multi + slaves.a.pcm "hw:0,4" + slaves.a.channels 12 + bindings.0.slave a + bindings.0.channel 4 + bindings.1.slave a + bindings.1.channel 5 + } + + playback.pcm { + type hw + card $CARD + device $DEVICE + diff --git a/squashfs-root/usr/share/alsa/cards/vc4-hdmi.conf b/squashfs-root/usr/share/alsa/cards/vc4-hdmi.conf new file mode 100644 index 0000000..027804a --- /dev/null +++ b/squashfs-root/usr/share/alsa/cards/vc4-hdmi.conf @@ -0,0 +1,64 @@ +# +# Configuration for the VC4-HDMI sound card using software IEC958 +# subframe conversion +# + + + +vc4-hdmi.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD +} + +# default with dmix +vc4-hdmi.pcm.default { + @args [ CARD ] + @args.CARD { + type string + } + type asym + playback.pcm { + type plug + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] + } + } +} + + + +vc4-hdmi.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type iec958 + slave { + format IEC958_SUBFRAME_LE + pcm { + type plug + slave.pcm { + type hw + card $CARD + } + } + } + status [ $AES0 $AES1 $AES2 $AES3 ] +} diff --git a/squashfs-root/usr/share/alsa/init/00main b/squashfs-root/usr/share/alsa/init/00main new file mode 100644 index 0000000..660df38 --- /dev/null +++ b/squashfs-root/usr/share/alsa/init/00main @@ -0,0 +1,49 @@ +# This is toplevel configuration for for 'alsactl init'. +# See 'man alsactl_init' for syntax. + +# set root device directory in sysfs for soundcard for ATTR{} command +CONFIG{sysfs_device}="/class/sound/card$cardinfo{card}/device" +ACCESS!="$sysfsroot$config{sysfs_device}", \ + CONFIG{sysfs_device}="/class/sound/controlC$cardinfo{card}/device" + +# test for extra commands +ENV{CMD}=="help", INCLUDE="help", GOTO="00main_end" +ENV{CMD}=="info", INCLUDE="info", GOTO="00main_end" +ENV{CMD}=="default", INCLUDE="default", GOTO="00main_end" +ENV{CMD}=="test", INCLUDE="test", GOTO="00main_end" +ENV{CMD}=="*", ERROR="Unknown command '$env{CMD}'\n", GOTO="00main_end" + +# include files with real configuration +# +# steps are: +# 1) look for preinit subdirectory and parse all files in it +# 2) if RESULT=="skip", skip ALSA standard configuration files +# 3) do ALSA standard configuration +# 4) look for postinit subdirectory and parse all files in it +# 5) if RESULT!="true", initialize hardware using a guess method, +# print an error message and return with exit code 99 +# 6) return with exit code 0 (success) +# + +RESULT="unknown" +ACCESS=="preinit", INCLUDE="preinit" +RESULT=="skip", GOTO="init_end" + +# real ALSA configuration database +CARDINFO{driver}=="HDA-Intel", INCLUDE="hda", GOTO="init_end" +CARDINFO{driver}=="CA0106", INCLUDE="ca0106", GOTO="init_end" +CARDINFO{driver}=="Test", INCLUDE="test", GOTO="init_end" + +LABEL="init_end" +ACCESS=="postinit", INCLUDE="postinit" +RESULT=="true", GOTO="00_mainend" +ERROR="Found hardware: \"$cardinfo{driver}\" \"$cardinfo{mixername}\" \"$cardinfo{components}\" \"$attr{subsystem_vendor}\" \"$attr{subsystem_device}\"\n" +ERROR="Hardware is initialized using a generic method\n" +INCLUDE="default" +EXIT="99" + +# +# label identifying end of main file +# + +LABEL="00main_end" diff --git a/squashfs-root/usr/share/alsa/init/ca0106 b/squashfs-root/usr/share/alsa/init/ca0106 new file mode 100644 index 0000000..45fc833 --- /dev/null +++ b/squashfs-root/usr/share/alsa/init/ca0106 @@ -0,0 +1,31 @@ +# Configuration for CA0106 driver + +CTL{reset}="mixer" +CTL{name}="Master Playback Volume", CTL{values}="-20dB" +CTL{name}="Master Playback Switch", CTL{values}="on" +CTL{name}="Analog Front Playback Volume", CTL{values}="0dB" +CTL{name}="Analog Front Playback Switch", CTL{values}="on" +CTL{name}="Analog Rear Playback Volume", CTL{values}="0dB" +CTL{name}="Analog Rear Playback Switch", CTL{values}="on" +CTL{name}="Analog Center/LFE Playback Volume", CTL{values}="0dB" +CTL{name}="Analog Center/LFE Playback Switch", CTL{values}="on" +CTL{name}="Analog Side Playback Volume", CTL{values}="0dB" +CTL{name}="Analog Side Playback Switch", CTL{values}="on" +CTL{name}="IEC958 Front Playback Volume", CTL{values}="0dB" +CTL{name}="IEC958 Rear Playback Volume", CTL{values}="0dB" +CTL{name}="IEC958 Center/LFE Playback Volume", CTL{values}="0dB" +# capture +CTL{name}="Analog Source Capture Enum", CTL{value}="Mic" +CTL{name}="Mic Capture Volume", CTL{values}="6dB" +CTL{name}="Shared Mic/Line in Capture Switch", CTL{values}="Mic in" + +# some variants have also AC97 mixer + +CTL{reset}="mixer" +CTL{name}="AC97 Line Capture Volume",PROGRAM!="__ctl_search",GOTO="ac97_end" +CTL{name}="Analog Source Capture Enum", CTL{value}="AC97 in" +CTL{name}="AC97 Mic Capture Switch", "on" +CTL{name}="AC97 Mic Capture Value", "6dB" +LABEL="ac97_end" + +RESULT="true", EXIT="return" diff --git a/squashfs-root/usr/share/alsa/init/default b/squashfs-root/usr/share/alsa/init/default new file mode 100644 index 0000000..1c84f3e --- /dev/null +++ b/squashfs-root/usr/share/alsa/init/default @@ -0,0 +1,284 @@ +# +# Default ALSA volume levels and setting when initialization database fails. +# +# Basic rules are: +# - keep volumes at minimal level, but sound should be hearable +# - enable standard outputs for playback and main microphone for recording +# + +# ************************************************************************** +# playback +# ************************************************************************** + +ENV{ppercent}:="75%" +ENV{cpercent}:="75%" +ENV{pvolume}:="-20dB" +ENV{cvolume}:="12dB" +ENV{has_pmaster_vol}:="false" + +CTL{reset}="mixer" +CTL{name}="Playback Volume",CTL{do_search}=="1", \ + CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +CTL{name}="Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Master Playback Volume",CTL{do_search}=="1", \ + ENV{has_pmaster_vol}:="true", \ + CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +CTL{name}="Master Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Master Front Playback Volume",CTL{do_search}=="1", \ + ENV{has_pmaster_vol}:="true", \ + CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +CTL{name}="Master Front Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Master Digital Playback Volume",CTL{do_search}=="1", \ + CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +CTL{name}="Master Digital Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Line Out Playback Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn line out volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="Line Out Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Front Playback Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn front volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="Front Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Surround Playback Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn front volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="Surround Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Center Playback Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn front volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="Center Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="LFE Playback Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn front volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="LFE Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Headphone Playback Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn headphone volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="Headphone Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Headphone Playback Volume",CTL{index}="1",PROGRAM!="__ctl_search",\ + GOTO="" +# if master volume control is present, turn headphone volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="Headphone Playback Switch",CTL{index}="1",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn speaker volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="Speaker Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Front Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn speaker volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="Front Speaker Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Surround Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn speaker volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="Surround Speaker Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Center Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn speaker volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="Center Speaker Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="LFE Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn speaker volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" +LABEL="" +CTL{name}="LFE Speaker Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="PC Speaker Playback Volume",CTL{do_search}=="1", \ + CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}" +CTL{name}="PC Speaker Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="PCM Playback Volume",PROGRAM!="__ctl_search", \ + CTL{name}="PCM Volume",PROGRAM!="__ctl_search", GOTO="" +# if master volume control is present, turn PCM volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +# exception - some HDA codecs have shifted dB range +CTL{dBmin}=="-34.50dB",CTL{dBmax}=="12.00dB",CTL{write}=="0dB",GOTO="" +CTL{dBmin}=="-30.00dB",CTL{dBmax}=="0dB",CTL{write}=="0dB",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="75%" +LABEL="" +CTL{name}="PCM Playback Switch",CTL{do_search}=="1", CTL{values}="on" +CTL{name}="PCM Switch",CTL{do_search}=="1",CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="PCM Playback Volume",CTL{index}="1",PROGRAM!="__ctl_search", \ + CTL{name}="PCM Volume",PROGRAM!="__ctl_search",GOTO="" +# if master volume control is present, turn PCM volume to max +ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" +ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" +# exception - some HDA codecs have shifted dB range +CTL{dBmin}=="-34.50dB",CTL{dBmax}=="12.00dB",CTL{write}=="0dB",GOTO="" +CTL{dBmin}=="-30.00dB",CTL{dBmax}=="0dB",CTL{write}=="0dB",GOTO="" +CTL{write}!="$env{pvolume}",CTL{values}="75%" +LABEL="" +CTL{name}="PCM Playback Switch",CTL{index}="1",CTL{do_search}=="1", \ + CTL{values}="on" +CTL{name}="PCM Switch",CTL{index}="1",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="DAC Playback Volume",CTL{do_search}=="1", \ + CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}" +CTL{name}="DAC Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Synth Playback Volume",CTL{do_search}=="1", \ + CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}" +CTL{name}="Synth Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Wave Playback Volume",CTL{do_search}=="1", \ + CTL{values}="100%" +CTL{name}="Wave Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Music Playback Volume",CTL{do_search}=="1", \ + CTL{values}="100%" +CTL{name}="Music Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="CD Playback Volume",CTL{do_search}=="1", \ + CTL{values}="0%" +CTL{name}="CD Playback Switch",CTL{do_search}=="1", \ + CTL{values}="off" + +CTL{reset}="mixer" +CTL{name}="Mono Playback Volume",CTL{do_search}=="1", \ + CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}" +CTL{name}="Mono Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="Master Mono Playback Volume",CTL{do_search}=="1", \ + CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}" +CTL{name}="Master Mono Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{reset}="mixer" +CTL{name}="AC97 Playback Volume",CTL{do_search}=="1", \ + CTL{values}="100%" +CTL{name}="AC97 Playback Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +# +# Powermacs +# + +CTL{reset}="mixer" +CTL{name}="DRC Range",CTL{do_search}=="1", \ + CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" + +# ************************************************************************** +# capture +# ************************************************************************** + +CTL{reset}="mixer" +CTL{name}="Capture Volume",CTL{do_search}=="1", \ + CTL{write}!="$env{cvolume}",CTL{values}="$env{cpercent}" +CTL{name}="Capture Switch",CTL{do_search}=="1", \ + CTL{values}="on" + +CTL{name}="Capture Source",PROGRAM!="__ctl_search", GOTO="" +CTL{enums}=="*|Internal Mic|*",CTL{values}="Internal Mic", GOTO="" +CTL{enums}=="*|Mic|*",CTL{values}="Mic" +LABEL="" + +CTL{name}="Input Source",PROGRAM!="__ctl_search", GOTO="" +CTL{enums}=="*|Internal Mic|*",CTL{values}="Internal Mic", GOTO="" +CTL{enums}=="*|Mic|*",CTL{values}="Mic" +LABEL="" + +CTL{name}="Digital Input Source",PROGRAM!="__ctl_search", GOTO="" +CTL{enums}=="*|Digital Mic 1|*",CTL{values}="Digital Mic 1", GOTO="" +CTL{enums}=="*|Mic|*",CTL{values}="Mic" +LABEL="" + +CTL{name}="Mic Boost",CTL{do_search}=="1", CTL{values}="on" +CTL{name}="Internal Mic Boost",CTL{do_search}=="1", CTL{values}="on" diff --git a/squashfs-root/usr/share/alsa/init/hda b/squashfs-root/usr/share/alsa/init/hda new file mode 100644 index 0000000..7581095 --- /dev/null +++ b/squashfs-root/usr/share/alsa/init/hda @@ -0,0 +1,39 @@ +# Configuration for HDA Intel driver (High Definition Audio - Azalia) + +CARDINFO{mixername}=="Realtek ALC880", \ + ATTR{subsystem_vendor}=="0x1025", ATTR{subsystem_device}=="0x0070", \ + GOTO="Acer Travelmate 8100" +CARDINFO{mixername}=="Analog Devices AD1984", \ + ATTR{subsystem_vendor}=="0x17aa", ATTR{subsystem_device}=="0x20ac", \ + GOTO="Lenovo T61" +RESULT="false", EXIT="return" + +LABEL="Acer Travelmate 8100" +# playback +CTL{reset}="mixer" +CTL{name}="Master Playback Volume", CTL{values}="-21dB" +CTL{name}="Master Playback Switch", CTL{values}="on" +CTL{name}="Headphone Playback Switch", CTL{values}="on" +CTL{name}="Front Playback Volume", CTL{values}="-29dB" +CTL{name}="Front Playback Switch", CTL{values}="on" +CTL{name}="PCM Playback Volume", CTL{values}="0dB" +# capture +CTL{name}="Input Source", CTL{value}="Mic" +CTL{name}="Capture Volume", CTL{values}="20dB" +CTL{name}="Capture Switch", CTL{values}="on" +RESULT="true", EXIT="return" + +LABEL="Lenovo T61" +# playback +CTL{reset}="mixer" +CTL{name}="Master Playback Volume", CTL{values}="-13.5dB" +CTL{name}="Master Playback Switch", CTL{values}="on" +CTL{name}="Headphone Playback Switch", CTL{values}="on" +CTL{name}="Speaker Playback Switch", CTL{values}="on" +CTL{name}="PCM Playback Volume", CTL{values}="0dB" +# capture +CTL{name}="Input Source", CTL{value}="Internal Mic" +CTL{name}="Internal Mic Boost", CTL{values}="1" +CTL{name}="Capture Volume", CTL{values}="9dB" +CTL{name}="Capture Switch", CTL{values}="on" +RESULT="true", EXIT="return" diff --git a/squashfs-root/usr/share/alsa/init/help b/squashfs-root/usr/share/alsa/init/help new file mode 100644 index 0000000..4f0ba70 --- /dev/null +++ b/squashfs-root/usr/share/alsa/init/help @@ -0,0 +1,8 @@ +# help page + +PRINT="Available commands (identified by the environment variable CMD):\n\n" +PRINT=" (not set) Do a soundcard initialization\n" +PRINT=" default Do a default (guess method) initialization\n" +PRINT=" help Show this information\n" +PRINT=" info Print all available hardware identification\n" +PRINT=" test Do alsactl utility parser tests\n" diff --git a/squashfs-root/usr/share/alsa/init/info b/squashfs-root/usr/share/alsa/init/info new file mode 100644 index 0000000..a4fea19 --- /dev/null +++ b/squashfs-root/usr/share/alsa/init/info @@ -0,0 +1,22 @@ +# show information about card + +PRINT="CARDINFO:\n" +PRINT=" CARDINFO{id}=\"$CARDINFO{id}\"\n" +PRINT=" CARDINFO{card}=\"$CARDINFO{card}\"\n" +PRINT=" CARDINFO{driver}=\"$CARDINFO{driver}\"\n" +PRINT=" CARDINFO{name}=\"$CARDINFO{name}\"\n" +PRINT=" CARDINFO{longname}=\"$CARDINFO{longname}\"\n" +PRINT=" CARDINFO{mixername}=\"$CARDINFO{mixername}\"\n" +PRINT=" CARDINFO{components}=\"$CARDINFO{components}\"\n" + +# sysfs stuff +PRINT="sysfs:\n" +ATTR{bus}=="*", PRINT=" ATTR{bus}=\"$ATTR{bus}\"\n" +ATTR{class}=="*", PRINT=" ATTR{class}=\"$ATTR{class}\"\n" +ATTR{driver}=="*", PRINT=" ATTR{driver}=\"$ATTR{driver}\"\n" +ATTR{vendor}=="*", PRINT=" ATTR{vendor}=\"$ATTR{vendor}\"\n" +ATTR{device}=="*", PRINT=" ATTR{device}=\"$ATTR{device}\"\n" +ATTR{subsystem_vendor}=="*", \ + PRINT=" ATTR{subsystem_vendor}=\"$ATTR{subsystem_vendor}\"\n" +ATTR{subsystem_device}=="*", \ + PRINT=" ATTR{subsystem_device}=\"$ATTR{subsystem_device}\"\n" diff --git a/squashfs-root/usr/share/alsa/init/test b/squashfs-root/usr/share/alsa/init/test new file mode 100644 index 0000000..56659f8 --- /dev/null +++ b/squashfs-root/usr/share/alsa/init/test @@ -0,0 +1,270 @@ +# Test code +# Just for debugging purposes + +PRINT="Default CTL:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" + +CTL{reset}="mixer" + +PRINT="After CTL{reset}=\"mixer\":\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" + +CTL{numid}="987" +CTL{iface}="sequencer" +CTL{device}="10" +CTL{subdevice}="20" +CTL{name}="Just Test" +CTL{index}="999" + +PRINT="After test sequence:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" + +ERROR="Ignore following error:\n " +PROGRAM="__just_test" + +PRINT="CTL{do_count} test:\n" +CTL{search}="mixer", CTL{name}="*Switch*", \ + PRINT=" *Switch* count result: $ctl{do_count}\n" + +PRINT="__ctl_search test:\n" +CTL{search}="mixer", CTL{name}="*Switch*", PROGRAM!="__ctl_search", GOTO="skip_switch_search" +PRINT=" *Switch 0* search result: $result\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" +CTL{search}="mixer", CTL{name}="*Switch*", PROGRAM!="__ctl_search 1", GOTO="skip_switch_search" +PRINT=" *Switch 1* search result: $result\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" + +PRINT="First ten elements:\n" +CTL{search}="mixer", CTL{name}="*", CTL{do_search 0}!="1", GOTO="skip_first_ten_search" +PRINT=" Element #0:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" +PRINT=" CTL{type}=\"$ctl{type}\"\n" +PRINT=" CTL{attr}=\"$ctl{attr}\"\n" +PRINT=" CTL{owner}=\"$ctl{owner}\"\n" +PRINT=" CTL{count}=\"$ctl{count}\"\n" +PRINT=" CTL{min}=\"$ctl{min}\"\n" +PRINT=" CTL{max}=\"$ctl{max}\"\n" +PRINT=" CTL{step}=\"$ctl{step}\"\n" +PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n" +PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n" +PRINT=" CTL{items}=\"$ctl{items}\"\n" +PRINT=" CTL{value}=\"$ctl{value}\"\n" +CTL{search}="mixer", CTL{name}="*", CTL{do_search 1}!="1", GOTO="skip_first_ten_search" +PRINT=" Element #1:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" +PRINT=" CTL{type}=\"$ctl{type}\"\n" +PRINT=" CTL{attr}=\"$ctl{attr}\"\n" +PRINT=" CTL{owner}=\"$ctl{owner}\"\n" +PRINT=" CTL{count}=\"$ctl{count}\"\n" +PRINT=" CTL{min}=\"$ctl{min}\"\n" +PRINT=" CTL{max}=\"$ctl{max}\"\n" +PRINT=" CTL{step}=\"$ctl{step}\"\n" +PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n" +PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n" +PRINT=" CTL{items}=\"$ctl{items}\"\n" +PRINT=" CTL{value}=\"$ctl{value}\"\n" +CTL{search}="mixer", CTL{name}="*", CTL{do_search 2}!="1", GOTO="skip_first_ten_search" +PRINT=" Element #2:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" +PRINT=" CTL{type}=\"$ctl{type}\"\n" +PRINT=" CTL{attr}=\"$ctl{attr}\"\n" +PRINT=" CTL{owner}=\"$ctl{owner}\"\n" +PRINT=" CTL{count}=\"$ctl{count}\"\n" +PRINT=" CTL{min}=\"$ctl{min}\"\n" +PRINT=" CTL{max}=\"$ctl{max}\"\n" +PRINT=" CTL{step}=\"$ctl{step}\"\n" +PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n" +PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n" +PRINT=" CTL{items}=\"$ctl{items}\"\n" +PRINT=" CTL{value}=\"$ctl{value}\"\n" +CTL{search}="mixer", CTL{name}="*", CTL{do_search 3}!="3", GOTO="skip_first_ten_search" +PRINT=" Element #3:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" +PRINT=" CTL{type}=\"$ctl{type}\"\n" +PRINT=" CTL{attr}=\"$ctl{attr}\"\n" +PRINT=" CTL{owner}=\"$ctl{owner}\"\n" +PRINT=" CTL{count}=\"$ctl{count}\"\n" +PRINT=" CTL{min}=\"$ctl{min}\"\n" +PRINT=" CTL{max}=\"$ctl{max}\"\n" +PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n" +PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n" +PRINT=" CTL{step}=\"$ctl{step}\"\n" +PRINT=" CTL{items}=\"$ctl{items}\"\n" +PRINT=" CTL{value}=\"$ctl{value}\"\n" +CTL{search}="mixer", CTL{name}="*", CTL{do_search 4}!="1", GOTO="skip_first_ten_search" +PRINT=" Element #4:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" +PRINT=" CTL{type}=\"$ctl{type}\"\n" +PRINT=" CTL{attr}=\"$ctl{attr}\"\n" +PRINT=" CTL{owner}=\"$ctl{owner}\"\n" +PRINT=" CTL{count}=\"$ctl{count}\"\n" +PRINT=" CTL{min}=\"$ctl{min}\"\n" +PRINT=" CTL{max}=\"$ctl{max}\"\n" +PRINT=" CTL{step}=\"$ctl{step}\"\n" +PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n" +PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n" +PRINT=" CTL{items}=\"$ctl{items}\"\n" +PRINT=" CTL{value}=\"$ctl{value}\"\n" +CTL{search}="mixer", CTL{name}="*", CTL{do_search 5}!="1", GOTO="skip_first_ten_search" +PRINT=" Element #5:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" +PRINT=" CTL{type}=\"$ctl{type}\"\n" +PRINT=" CTL{attr}=\"$ctl{attr}\"\n" +PRINT=" CTL{owner}=\"$ctl{owner}\"\n" +PRINT=" CTL{count}=\"$ctl{count}\"\n" +PRINT=" CTL{min}=\"$ctl{min}\"\n" +PRINT=" CTL{max}=\"$ctl{max}\"\n" +PRINT=" CTL{step}=\"$ctl{step}\"\n" +PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n" +PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n" +PRINT=" CTL{items}=\"$ctl{items}\"\n" +PRINT=" CTL{value}=\"$ctl{value}\"\n" +CTL{search}="mixer", CTL{name}="*", CTL{do_search 6}!="1", GOTO="skip_first_ten_search" +PRINT=" Element #6:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" +PRINT=" CTL{type}=\"$ctl{type}\"\n" +PRINT=" CTL{attr}=\"$ctl{attr}\"\n" +PRINT=" CTL{owner}=\"$ctl{owner}\"\n" +PRINT=" CTL{count}=\"$ctl{count}\"\n" +PRINT=" CTL{min}=\"$ctl{min}\"\n" +PRINT=" CTL{max}=\"$ctl{max}\"\n" +PRINT=" CTL{step}=\"$ctl{step}\"\n" +PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n" +PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n" +PRINT=" CTL{items}=\"$ctl{items}\"\n" +PRINT=" CTL{value}=\"$ctl{value}\"\n" +CTL{search}="mixer", CTL{name}="*", CTL{do_search 7}!="1", GOTO="skip_first_ten_search" +PRINT=" Element #7:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" +PRINT=" CTL{type}=\"$ctl{type}\"\n" +PRINT=" CTL{attr}=\"$ctl{attr}\"\n" +PRINT=" CTL{owner}=\"$ctl{owner}\"\n" +PRINT=" CTL{count}=\"$ctl{count}\"\n" +PRINT=" CTL{min}=\"$ctl{min}\"\n" +PRINT=" CTL{max}=\"$ctl{max}\"\n" +PRINT=" CTL{step}=\"$ctl{step}\"\n" +PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n" +PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n" +PRINT=" CTL{items}=\"$ctl{items}\"\n" +PRINT=" CTL{value}=\"$ctl{value}\"\n" +CTL{search}="mixer", CTL{name}="*", CTL{do_search 8}!="1", GOTO="skip_first_ten_search" +PRINT=" Element #8:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" +PRINT=" CTL{type}=\"$ctl{type}\"\n" +PRINT=" CTL{attr}=\"$ctl{attr}\"\n" +PRINT=" CTL{owner}=\"$ctl{owner}\"\n" +PRINT=" CTL{count}=\"$ctl{count}\"\n" +PRINT=" CTL{min}=\"$ctl{min}\"\n" +PRINT=" CTL{max}=\"$ctl{max}\"\n" +PRINT=" CTL{step}=\"$ctl{step}\"\n" +PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n" +PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n" +PRINT=" CTL{items}=\"$ctl{items}\"\n" +PRINT=" CTL{value}=\"$ctl{value}\"\n" +CTL{search}="mixer", CTL{name}="*", CTL{do_search 9}!="1", GOTO="skip_first_ten_search" +PRINT=" Element #9:\n" +PRINT=" CTL{numid}=\"$ctl{numid}\"\n" +PRINT=" CTL{iface}=\"$ctl{iface}\"\n" +PRINT=" CTL{device}=\"$ctl{device}\"\n" +PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n" +PRINT=" CTL{name}=\"$ctl{name}\"\n" +PRINT=" CTL{index}=\"$ctl{index}\"\n" +PRINT=" CTL{type}=\"$ctl{type}\"\n" +PRINT=" CTL{attr}=\"$ctl{attr}\"\n" +PRINT=" CTL{owner}=\"$ctl{owner}\"\n" +PRINT=" CTL{count}=\"$ctl{count}\"\n" +PRINT=" CTL{min}=\"$ctl{min}\"\n" +PRINT=" CTL{max}=\"$ctl{max}\"\n" +PRINT=" CTL{step}=\"$ctl{step}\"\n" +PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n" +PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n" +PRINT=" CTL{items}=\"$ctl{items}\"\n" +PRINT=" CTL{value}=\"$ctl{value}\"\n" +LABEL="skip_first_ten_search" + +PRINT="Elements write test #1:\n", \ + CTL{search}="mixer", CTL{name}="Front Playback Switch", \ + CTL{do_search}=="1", CTL{value}="on,on", \ + PRINT=" result=$result\n" +PRINT="Elements write test #2:\n", \ + CTL{search}="mixer", CTL{name}="Front Playback Volume", \ + CTL{do_search}=="1", CTL{value}="32,32", \ + PRINT=" result=$result\n" +PRINT="Elements write test #3:\n", \ + CTL{search}="mixer", CTL{name}="Front Playback Volume Error", \ + CTL{do_search}=="1", \ +PRINT=" result=$result\n" + +#CTL{reset}="mixer", CTL{name}="Input Source", PRINT="***$ctl{enums}\n" + +PRINT="\nAll tests done..\n" diff --git a/squashfs-root/usr/share/alsa/pcm/center_lfe.conf b/squashfs-root/usr/share/alsa/pcm/center_lfe.conf new file mode 100644 index 0000000..4ef6f49 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/center_lfe.conf @@ -0,0 +1,58 @@ +# +# Hardware output from center & lfe speakers +# + +pcm.!center_lfe { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_CENTER_LFE_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.center_lfe.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_CENTER_LFE_DEVICE + ] + default { + @func refer + name defaults.pcm.center_lfe.device + } + } + } + type empty + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.center_lfe." $DEV ":CARD=" $CARD + ] + } + } + hint { + show { + @func refer + name defaults.namehint.basic + } + description "Center and Subwoofer speakers" + device $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/default.conf b/squashfs-root/usr/share/alsa/pcm/default.conf new file mode 100644 index 0000000..864a903 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/default.conf @@ -0,0 +1,57 @@ +# +# Default output +# + +pcm.!default { + @args [ CARD ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.card + } + } + } + type empty + slave.pcm { + # use card-specific definition if exists + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.default:CARD=" $CARD + ] + } + default { + # use plughw as default + type plug + slave.pcm { + type hw + card $CARD + } + hint.device 0 + } + } + hint { + description "Default Audio Device" + device_output { + @func refer + name defaults.pcm.dmix.device + } + device_input { + @func refer + name defaults.pcm.dsnoop.device + } + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/dmix.conf b/squashfs-root/usr/share/alsa/pcm/dmix.conf new file mode 100644 index 0000000..7d0aa01 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/dmix.conf @@ -0,0 +1,115 @@ +# +# dmix output +# + +pcm.!dmix { + @args [ CARD DEV SUBDEV FORMAT RATE ] + @args.CARD { + type string + default { + @func refer + name defaults.pcm.dmix.card + } + } + @args.DEV { + type integer + default { + @func refer + name defaults.pcm.dmix.device + } + } + @args.SUBDEV { + type integer + default 0 + } + @args.FORMAT { + type string + default { + @func refer + name defaults.pcm.dmix.format + } + } + @args.RATE { + type integer + default { + @func refer + name defaults.pcm.dmix.rate + } + } + type dmix + ipc_key { + @func refer + name defaults.pcm.ipc_key + } + ipc_gid { + @func refer + name defaults.pcm.ipc_gid + } + ipc_perm { + @func refer + name defaults.pcm.ipc_perm + } + slave { + pcm { + type hw + card $CARD + device $DEV + subdevice $SUBDEV + } + format $FORMAT + rate $RATE + period_size { + @func refer + name { + @func concat + strings [ + "defaults.dmix." + { + @func card_driver + card $CARD + } + ".period_size" + ] + } + default 1024 + } + period_time { + @func refer + name { + @func concat + strings [ + "defaults.dmix." + { + @func card_driver + card $CARD + } + ".period_time" + ] + } + default -1 + } + periods { + @func refer + name { + @func concat + strings [ + "defaults.dmix." + { + @func card_driver + card $CARD + } + ".periods" + ] + } + default 16 + } + } + hint { + show { + @func refer + name defaults.namehint.extended + } + description "Direct sample mixing device" + device_output $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/dpl.conf b/squashfs-root/usr/share/alsa/pcm/dpl.conf new file mode 100644 index 0000000..1009bb3 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/dpl.conf @@ -0,0 +1,43 @@ +pcm.!dpl { + @args [ SLAVE ] + @args.SLAVE { + type string + } + type route + slave.pcm $SLAVE + slave.channels 2 + # input: FL/FR/SL/SR/C/LFE + # S=SL+SR, LFE not used + ttable.0.0 1 + ttable.1.1 1 + ttable.2.0 0.707 + ttable.2.1 -0.707 + ttable.3.0 0.707 + ttable.3.1 -0.707 + ttable.4.0 0.707 + ttable.4.1 0.707 + ttable.5.0 0 + ttable.5.1 0 +} + +pcm.!dpl2 { + @args [SLAVE] + @args.SLAVE { + type string + } + type route + slave.pcm $SLAVE + slave.channels 2 + # input: FL/FR/SL/SR/C/LFE + # LFE not used + ttable.0.0 1 + ttable.1.1 1 + ttable.2.0 0.866 + ttable.2.1 -0.5 + ttable.3.0 0.5 + ttable.3.1 -0.866 + ttable.4.0 0.707 + ttable.4.1 0.707 + ttable.5.0 0 + ttable.5.1 0 +} diff --git a/squashfs-root/usr/share/alsa/pcm/dsnoop.conf b/squashfs-root/usr/share/alsa/pcm/dsnoop.conf new file mode 100644 index 0000000..abbd44f --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/dsnoop.conf @@ -0,0 +1,115 @@ +# +# dsnoop +# + +pcm.!dsnoop { + @args [ CARD DEV SUBDEV FORMAT RATE ] + @args.CARD { + type string + default { + @func refer + name defaults.pcm.dsnoop.card + } + } + @args.DEV { + type integer + default { + @func refer + name defaults.pcm.dsnoop.device + } + } + @args.SUBDEV { + type integer + default 0 + } + @args.FORMAT { + type string + default { + @func refer + name defaults.pcm.dmix.format + } + } + @args.RATE { + type integer + default { + @func refer + name defaults.pcm.dmix.rate + } + } + type dsnoop + ipc_key { + @func refer + name defaults.pcm.ipc_key + } + ipc_gid { + @func refer + name defaults.pcm.ipc_gid + } + ipc_perm { + @func refer + name defaults.pcm.ipc_perm + } + slave { + pcm { + type hw + card $CARD + device $DEV + subdevice $SUBDEV + } + format $FORMAT + rate $RATE + period_size { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.dsnoop.period_size" + ] + } + default 1024 + } + period_time { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.dsnoop.period_time" + ] + } + default -1 + } + periods { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.dsnoop.periods" + ] + } + default 16 + } + } + hint { + show { + @func refer + name defaults.namehint.extended + } + description "Direct sample snooping device" + device_input $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/front.conf b/squashfs-root/usr/share/alsa/pcm/front.conf new file mode 100644 index 0000000..7aff0cb --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/front.conf @@ -0,0 +1,58 @@ +# +# Hardware output from front speakers +# + +pcm.!front { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_FRONT_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.front.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_FRONT_DEVICE + ] + default { + @func refer + name defaults.pcm.front.device + } + } + } + type empty + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.front." $DEV ":CARD=" $CARD + ] + } + } + hint { + show { + @func refer + name defaults.namehint.basic + } + description "Front speakers" + device $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/hdmi.conf b/squashfs-root/usr/share/alsa/pcm/hdmi.conf new file mode 100644 index 0000000..aad7065 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/hdmi.conf @@ -0,0 +1,83 @@ +# +# Hardware output from HDMI +# + +pcm.!hdmi { + @args [ CARD DEV AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_IEC958_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.iec958.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_IEC958_DEVICE + ] + default { + @func refer + name defaults.pcm.iec958.device + } + } + } + @args.AES0 { + type integer + # consumer, not-copyright, emphasis-none, mode=0 + default 0x04 + } + @args.AES1 { + type integer + # original, PCM coder + default 0x82 + } + @args.AES2 { + type integer + # source and channel + default 0x00 + } + @args.AES3 { + type integer + # fs=48000Hz, clock accuracy=1000ppm + default 0x02 + } + type empty + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.hdmi." $DEV ":" + "CARD=" $CARD "," + "AES0=" $AES0 "," + "AES1=" $AES1 "," + "AES2=" $AES2 "," + "AES3=" $AES3 + ] + } + } + hint { + show { + @func refer + name defaults.namehint.basic + } + description "HDMI Audio Output" + device $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/iec958.conf b/squashfs-root/usr/share/alsa/pcm/iec958.conf new file mode 100644 index 0000000..ac139b5 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/iec958.conf @@ -0,0 +1,83 @@ +# +# Hardware output from iec958 +# + +pcm.!iec958 { + @args [ CARD DEV AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_IEC958_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.iec958.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_IEC958_DEVICE + ] + default { + @func refer + name defaults.pcm.iec958.device + } + } + } + @args.AES0 { + type integer + # consumer, not-copyright, emphasis-none, mode=0 + default 0x04 + } + @args.AES1 { + type integer + # original, PCM coder + default 0x82 + } + @args.AES2 { + type integer + # source and channel + default 0x00 + } + @args.AES3 { + type integer + # fs=48000Hz, clock accuracy=1000ppm + default 0x02 + } + type empty + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.iec958." $DEV ":" + "CARD=" $CARD "," + "AES0=" $AES0 "," + "AES1=" $AES1 "," + "AES2=" $AES2 "," + "AES3=" $AES3 + ] + } + } + hint { + show { + @func refer + name defaults.namehint.basic + } + description "IEC958 (S/PDIF) Digital Audio Output" + device $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/modem.conf b/squashfs-root/usr/share/alsa/pcm/modem.conf new file mode 100644 index 0000000..0af0e72 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/modem.conf @@ -0,0 +1,106 @@ +# +# "raw" modem - phoneline +# + +pcm.!phoneline { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_MODEM_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.modem.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_MODEM_DEVICE + ] + default { + @func refer + name defaults.pcm.modem.device + } + } + } + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.modem." $DEV ":CARD=" $CARD + ] + } + hint.show off +} + +# +# "autohooked" modem +# + +pcm.!modem { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_MODEM_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.modem.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_MODEM_DEVICE + ] + default { + @func refer + name defaults.pcm.modem.device + } + } + } + type hooks + slave { + pcm { + @func concat + strings [ + "cards.pcm.phoneline:CARD=" $CARD ",DEV=" $DEV + ] + } + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Off-hook Switch" + preserve true + value "on" + lock false + optional true + } + ] + } + hint.show off +} diff --git a/squashfs-root/usr/share/alsa/pcm/rear.conf b/squashfs-root/usr/share/alsa/pcm/rear.conf new file mode 100644 index 0000000..85c70aa --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/rear.conf @@ -0,0 +1,58 @@ +# +# Hardware output from rear speakers +# + +pcm.!rear { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_REAR_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.rear.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_REAR_DEVICE + ] + default { + @func refer + name defaults.pcm.rear.device + } + } + } + type empty + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.rear." $DEV ":CARD=" $CARD + ] + } + } + hint { + show { + @func refer + name defaults.namehint.basic + } + description "Rear speakers" + device $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/side.conf b/squashfs-root/usr/share/alsa/pcm/side.conf new file mode 100644 index 0000000..4a81af0 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/side.conf @@ -0,0 +1,58 @@ +# +# Hardware output from side speakers +# + +pcm.!side { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_SIDE_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.side.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_SIDE_DEVICE + ] + default { + @func refer + name defaults.pcm.side.device + } + } + } + type empty + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.side." $DEV ":CARD=" $CARD + ] + } + } + hint { + show { + @func refer + name defaults.namehint.basic + } + description "Side speakers" + device $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/surround21.conf b/squashfs-root/usr/share/alsa/pcm/surround21.conf new file mode 100644 index 0000000..1cf1b7a --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/surround21.conf @@ -0,0 +1,61 @@ +# +# Hardware output from 2.1 speakers. +# Samples must be positioned: +# chn0 - front left +# chn1 - front right +# chn2 - LFE +# + +pcm.!surround21 { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_SURROUND21_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.surround21.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_SURROUND21_DEVICE + ] + default { + @func refer + name defaults.pcm.surround21.device + } + } + } + type route + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.surround51." $DEV ":CARD=" $CARD + ] + } + } + ttable.0.FL 1 + ttable.1.FR 1 + ttable.2.LFE 1 + hint { + description "2.1 Surround output to Front and Subwoofer speakers" + device_output $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/surround40.conf b/squashfs-root/usr/share/alsa/pcm/surround40.conf new file mode 100644 index 0000000..9788ad4 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/surround40.conf @@ -0,0 +1,59 @@ +# +# Hardware output from 4.0 speakers. +# Samples must be positioned: +# chn0 - front left +# chn1 - front right +# chn2 - rear left +# chn3 - rear right +# + +pcm.!surround40 { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_SURROUND40_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.surround40.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_SURROUND40_DEVICE + ] + default { + @func refer + name defaults.pcm.surround40.device + } + } + } + type empty + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.surround40." $DEV ":CARD=" $CARD + ] + } + } + hint { + description "4.0 Surround output to Front and Rear speakers" + device_output $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/surround41.conf b/squashfs-root/usr/share/alsa/pcm/surround41.conf new file mode 100644 index 0000000..7b4ef3b --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/surround41.conf @@ -0,0 +1,65 @@ +# +# Hardware output from 4.1 speakers. +# Samples must be positioned: +# chn0 - front left +# chn1 - front right +# chn2 - rear left +# chn3 - rear right +# chn4 - LFE +# + +pcm.!surround41 { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_SURROUND41_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.surround41.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_SURROUND41_DEVICE + ] + default { + @func refer + name defaults.pcm.surround41.device + } + } + } + type route + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.surround51." $DEV ":CARD=" $CARD + ] + } + } + ttable.0.FL 1 + ttable.1.FR 1 + ttable.2.RL 1 + ttable.3.RR 1 + ttable.4.LFE 1 + hint { + description "4.1 Surround output to Front, Rear and Subwoofer speakers" + device_output $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/surround50.conf b/squashfs-root/usr/share/alsa/pcm/surround50.conf new file mode 100644 index 0000000..7d9a9e7 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/surround50.conf @@ -0,0 +1,65 @@ +# +# Hardware output from 5.0 speakers. +# Samples must be positioned: +# chn0 - front left +# chn1 - front right +# chn2 - rear left +# chn3 - rear right +# chn4 - center +# + +pcm.!surround50 { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_SURROUND50_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.surround50.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_SURROUND50_DEVICE + ] + default { + @func refer + name defaults.pcm.surround50.device + } + } + } + type route + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.surround51." $DEV ":CARD=" $CARD + ] + } + } + ttable.0.FL 1 + ttable.1.FR 1 + ttable.2.RL 1 + ttable.3.RR 1 + ttable.4.FC 1 + hint { + description "5.0 Surround output to Front, Center and Rear speakers" + device_output $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/surround51.conf b/squashfs-root/usr/share/alsa/pcm/surround51.conf new file mode 100644 index 0000000..e67f007 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/surround51.conf @@ -0,0 +1,61 @@ +# +# Hardware output from 5.1 speakers +# Samples must be positioned: +# chn0 - front left +# chn1 - front right +# chn2 - rear left +# chn3 - rear right +# chn4 - center +# chn5 - lfe +# + +pcm.!surround51 { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_SURROUND51_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.surround51.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_SURROUND51_DEVICE + ] + default { + @func refer + name defaults.pcm.surround51.device + } + } + } + type empty + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.surround51." $DEV ":CARD=" $CARD + ] + } + } + hint { + description "5.1 Surround output to Front, Center, Rear and Subwoofer speakers" + device_output $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/pcm/surround71.conf b/squashfs-root/usr/share/alsa/pcm/surround71.conf new file mode 100644 index 0000000..a26c3f3 --- /dev/null +++ b/squashfs-root/usr/share/alsa/pcm/surround71.conf @@ -0,0 +1,63 @@ +# +# Hardware output from 7.1 speakers +# Samples must be positioned: +# chn0 - front left +# chn1 - front right +# chn2 - rear left +# chn3 - rear right +# chn4 - center +# chn5 - lfe +# chn6 - side left +# chn7 - side right +# + +pcm.!surround71 { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_SURROUND71_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.surround71.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_SURROUND71_DEVICE + ] + default { + @func refer + name defaults.pcm.surround71.device + } + } + } + type empty + slave.pcm { + @func refer + name { + @func concat + strings [ + "cards." + { + @func card_driver + card $CARD + } + ".pcm.surround71." $DEV ":CARD=" $CARD + ] + } + } + hint { + description "7.1 Surround output to Front, Center, Side, Rear and Woofer speakers" + device_output $DEV + } +} diff --git a/squashfs-root/usr/share/alsa/sndo-mixer.alisp b/squashfs-root/usr/share/alsa/sndo-mixer.alisp new file mode 100644 index 0000000..c8b03f0 --- /dev/null +++ b/squashfs-root/usr/share/alsa/sndo-mixer.alisp @@ -0,0 +1,115 @@ +; +; Toplevel configuration for the ALSA Ordinary Mixer Interface +; +; Copyright (c) 2003 Jaroslav Kysela +; License: GPL v2 (http://www.gnu.org/licenses/gpl.html) +; + +(defun sndo_include (hctl stream) + (setq info (Acall "ctl_card_info" (Acall "hctl_ctl" hctl))) + (if (= (Aerror info) 0) + (progn + (setq info (Aresult info)) + (setq driver (cdr (assq "driver" (unsetq info)))) + (setq file (concat (path "data") "/alsa/cards/" (snd_card_alias driver) "/sndo" stream "-mixer.alisp")) + (setq r (include file)) + (when (= r -2) (Asyserr "unable to find file " file)) + ) + (setq r (Aerror info)) + ) + (unsetq info driver file r) +) + +(defun sndo_mixer_open_fcn (hctl stream pcm) + (setq fcn (concat "sndo" stream "_mixer_open")) + (setq r (if (exfun fcn) (funcall fcn hctl pcm) 0)) + (when (= r 0) + (setq hctls (if hctls (cons hctls (cons hctl)) hctl)) + ) + (unsetq fcn r) +) + +(defun sndo_mixer_open_hctl (name stream pcm) + (setq hctl (Acall "hctl_open" name nil)) + (setq r (Aerror hctl)) + (when (= r 0) + (setq hctl (Aresult hctl)) + (setq r (sndo_include hctl stream)) + (if (= r 0) + (setq r (sndo_mixer_open_fcn hctl stream pcm)) + (Acall "hctl_close" hctl) + ) + ) + (unsetq hctl r) +) + +(defun sndo_mixer_open_virtual (name stream pcm) + (setq file (concat (path "data") "/alsa/virtual/" name "/sndo" stream "-mixer.alisp")) + (setq r (include file)) + (when (= r -2) (Asyserr "unable to find file " file)) + (when (= r 0) (setq r (sndo_mixer_open_fcn nil stream pcm))) + (unsetq file r) +) + +(defun sndo_mixer_open1 (name stream) + (if (compare-strings name 0 2 "hw:" 0 2) + (sndo_mixer_open_hctl name stream nil) + (sndo_mixer_open_virtual name stream nil) + ) +) + +(defun sndo_mixer_open (pname cname) + (setq r (sndo_mixer_open1 pname "p")) + (when (= r 0) (setq r (sndo_mixer_open1 cname "c"))) + (when (!= r 0) (sndo_mixer_close)) + (unsetq sndo_mixer_open + sndo_mixer_open_pcm sndo_mixer_open_pcm1 + sndo_mixer_open_virtual sndo_mixer_open_fcn + sndo_include r) +) + +(defun sndo_mixer_open_pcm1 (pcm stream) + (setq info (Acall "pcm_info" pcm)) + (setq r (Aerror info)) + (when (= r 0) + (setq info (Aresult info)) + (setq card (cdr (assq "card" info))) + (setq r + (if (< card 0) + (sndo_mixer_open_virtual (Acall "pcm_name" pcm) stream pcm) + (sndo_mixer_open_hctl (format "hw:%i" card) stream pcm) + ) + ) + ) + (unsetq info card r) +) + +(defun sndo_mixer_open_pcm (ppcm cpcm) + (setq r (sndo_mixer_open_pcm1 ppcm "p")) + (when (= r 0) (setq r (sndo_mixer_open_pcm1 cpcm "c"))) + (when (!= r 0) (sndo_mixer_close)) + (unsetq sndo_mixer_open + sndo_mixer_open_pcm sndo_mixer_open_pcm1 + sndo_mixer_open_virtual sndo_mixer_open_fcn + sndo_include r) +) + +(defun sndo_mixer_close1 (hctl stream) + (when hctl + (progn + (setq fcn (concat "sndo" stream "_mixer_close")) + (when (exfun fcn) (funcall fcn hctl)) + (unsetq fcn) + (Acall "hctl_close" hctl) + ) + ) +) + +(defun sndo_mixer_close nil + (sndo_mixer_close1 (nth 1 hctls) "c") + (sndo_mixer_close1 (nth 0 hctls) "p") + (snd_card_alias_unset) + (unsetq hctls) +) + +(include (concat (path "data") "/alsa/cards/aliases.alisp")) diff --git a/squashfs-root/usr/share/alsa/speaker-test/sample_map.csv b/squashfs-root/usr/share/alsa/speaker-test/sample_map.csv new file mode 100644 index 0000000..20d8ed2 --- /dev/null +++ b/squashfs-root/usr/share/alsa/speaker-test/sample_map.csv @@ -0,0 +1,2 @@ +0, "Front Left", "/usr/share/alsa/samples/Front_Left.wav" +1, "Front Right", "/usr/share/alsa/samples/Front_Right.wav" diff --git a/squashfs-root/usr/share/alsa/topology/broadwell/broadwell.conf b/squashfs-root/usr/share/alsa/topology/broadwell/broadwell.conf new file mode 100644 index 0000000..b8405d9 --- /dev/null +++ b/squashfs-root/usr/share/alsa/topology/broadwell/broadwell.conf @@ -0,0 +1,410 @@ +# Dynamic Firmware Configuration for Broadwell + +# TLV +SectionTLV."hsw_vol_tlv" { + Comment "TLV used by both global and stream volumes" + + scale { + min "-9000" + step "300" + mute "1" + } +} + +# Controls +SectionControlMixer."Master Playback Volume" { + Comment "Global DSP volume" + + # control belongs to this index group + index "1" + + # Channel register and shift for Front Left/Right + channel."FL" { + reg "0" + shift "0" + } + channel."FR" { + reg "0" + shift "8" + } + + # max control value and whether value is inverted + max "31" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "256" + put "256" + } + + # uses TLV data above + tlv "hsw_vol_tlv" +} + +SectionControlMixer."Media0 Playback Volume" { + Comment "Offload 0 volume" + + # control belongs to this index group + index "1" + + # Channel register and shift for Front Left/Right + channel."FL" { + reg "1" + shift "0" + } + channel."FR" { + reg "1" + shift "8" + } + + # max control value and whether value is inverted + max "31" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "257" + put "257" + } + + # uses TLV data above + tlv "hsw_vol_tlv" +} + +SectionControlMixer."Media1 Playback Volume" { + Comment "Offload 1 volume" + + # control belongs to this index group + index "1" + + # Channel register and shift for Front Left/Right + channel."FL" { + reg "2" + shift "0" + } + channel."FR" { + reg "2" + shift "8" + } + + # max control value and whether value is inverted + max "31" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "257" + put "257" + } + + # uses TLV data above + tlv "hsw_vol_tlv" +} + +SectionControlMixer."Mic Capture Volume" { + Comment "Mic Capture volume" + + # control belongs to this index group + index "1" + + # Channel register and shift for Front Left/Right + channel."FL" { + reg "0" + shift "0" + } + channel."FR" { + reg "0" + shift "8" + } + + # max control value and whether value is inverted + max "31" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "257" + put "257" + } + + # uses TLV data above + tlv "hsw_vol_tlv" +} + +SectionWidget."SSP0 CODEC IN" { + + index "1" + type "aif_in" + no_pm "true" + shift "0" + invert "0" +} + +SectionWidget."SSP0 CODEC OUT" { + + index "1" + type "aif_out" + no_pm "true" + shift "0" + invert "0" +} + +SectionWidget."SSP1 BT IN" { + + index "1" + type "aif_in" + no_pm "true" + shift "0" + invert "0" +} + +SectionWidget."SSP1 BT OUT" { + + index "1" + type "aif_out" + no_pm "true" + shift "0" + invert "0" +} + +SectionWidget."Playback VMixer" { + + index "1" + type "mixer" + no_pm "true" + shift "0" + invert "0" +} + +# PCM Configurations supported by FW +SectionPCMConfig."PCM 48k Stereo 24bit" { + + config."playback" { + format "S24_LE" + rate "48000" + channels "2" + tdm_slot "0xf" + } + + config."capture" { + format "S24_LE" + rate "48000" + channels "2" + tdm_slot "0xf" + } +} + +SectionPCMConfig."PCM 48k Stereo 16bit" { + + config."playback" { + format "S16_LE" + rate "48000" + channels "2" + tdm_slot "0xf" + } + + config."capture" { + format "S16_LE" + rate "48000" + channels "2" + tdm_slot "0xf" + } +} + +SectionPCMConfig."PCM 48k 2P/4C 16bit" { + + config."playback" { + format "S16_LE" + rate "48000" + channels "2" + tdm_slot "0xf" + } + + config."capture" { + format "S16_LE" + rate "48000" + channels "4" + tdm_slot "0xf" + } +} + +# PCM capabilities supported by FW +SectionPCMCapabilities."System Playback" { + + formats "S24_LE,S16_LE" + rate_min "48000" + rate_max "48000" + channels_min "2" + channels_max "2" +} + +SectionPCMCapabilities."Analog Capture" { + + formats "S24_LE,S16_LE" + rate_min "48000" + rate_max "48000" + channels_min "2" + channels_max "4" +} + +SectionPCMCapabilities."Loopback Capture" { + + formats "S24_LE,S16_LE" + rate_min "48000" + rate_max "48000" + channels_min "2" + channels_max "2" +} + +SectionPCMCapabilities."Offload0 Playback" { + formats "S24_LE,S16_LE" + rate_min "8000" + rate_max "192000" + channels_min "2" + channels_max "2" +} + +SectionPCMCapabilities."Offload1 Playback" { + formats "S24_LE,S16_LE" + rate_min "8000" + rate_max "192000" + channels_min "2" + channels_max "2" +} + +# PCM devices exported by Firmware +SectionPCM."System Playback/Capture" { + + index "1" + + # used for binding to the PCM + id "0" + + dai."System Pin" { + id "0" + } + + pcm."playback" { + + capabilities "System Playback" + + configs [ + "PCM 48k Stereo 24bit" + "PCM 48k Stereo 16bit" + ] + } + + pcm."capture" { + + capabilities "Analog Capture" + + configs [ + "PCM 48k Stereo 24bit" + "PCM 48k Stereo 16bit" + "PCM 48k 2P/4C 16bit" + ] + } +} + +SectionPCM."Offload0 Playback" { + + index "1" + + # used for binding to the PCM + id "1" + + dai."Offload0 Pin" { + id "1" + } + + pcm."playback" { + + capabilities "Offload0 Playback" + + configs [ + "PCM 48k Stereo 24bit" + "PCM 48k Stereo 16bit" + ] + } +} + +SectionPCM."Offload1 Playback" { + + index "1" + + # used for binding to the PCM + id "2" + + dai."Offload1 Pin" { + id "2" + } + + pcm."playback" { + + capabilities "Offload1 Playback" + + configs [ + "PCM 48k Stereo 24bit" + "PCM 48k Stereo 16bit" + ] + } +} + +SectionPCM."Loopback PCM" { + + index "1" + + # used for binding to the PCM + id "3" + + dai."Loopback Pin" { + id "3" + } + + pcm."capture" { + + capabilities "Loopback Capture" + + configs [ + "PCM 48k Stereo 24bit" + "PCM 48k Stereo 16bit" + ] + } +} + +SectionGraph."dsp" { + index "1" + + lines [ + "Playback VMixer, , System Playback" + "Playback VMixer, , Offload0 Playback" + "Playback VMixer, , Offload1 Playback" + "SSP0 CODEC OUT, , Playback VMixer" + "Loopback Capture, , Playback VMixer" + "Analog Capture, , SSP0 CODEC IN" + ] +} + +SectionHWConfig."CodecHWConfig" { + id "1" + format "I2S" # physical audio format. + bclk "master" # Platform is master of bit clock + fsync "master" # platform is master of fsync +} + +SectionLink."Codec" { + + # used for binding to the physical link + id "0" + + hw_configs [ + "CodecHWConfig" + ] + + default_hw_conf_id "1" +} diff --git a/squashfs-root/usr/share/alsa/topology/bxtrt298/bxt_i2s.conf b/squashfs-root/usr/share/alsa/topology/bxtrt298/bxt_i2s.conf new file mode 100644 index 0000000..6b38f4f --- /dev/null +++ b/squashfs-root/usr/share/alsa/topology/bxtrt298/bxt_i2s.conf @@ -0,0 +1,3323 @@ +SectionVendorTokens."skl_tokens" { + SKL_TKN_UUID "1" + SKL_TKN_U8_NUM_BLOCKS "2" + SKL_TKN_U8_BLOCK_TYPE "3" + SKL_TKN_U8_IN_PIN_TYPE "4" + SKL_TKN_U8_OUT_PIN_TYPE "5" + SKL_TKN_U8_DYN_IN_PIN "6" + SKL_TKN_U8_DYN_OUT_PIN "7" + SKL_TKN_U8_IN_QUEUE_COUNT "8" + SKL_TKN_U8_OUT_QUEUE_COUNT "9" + SKL_TKN_U8_TIME_SLOT "10" + SKL_TKN_U8_CORE_ID "11" + SKL_TKN_U8_MODULE_TYPE "12" + SKL_TKN_U8_CONN_TYPE "13" + SKL_TKN_U8_DEV_TYPE "14" + SKL_TKN_U8_HW_CONN_TYPE "15" + SKL_TKN_U16_MOD_INST_ID "16" + SKL_TKN_U16_BLOCK_SIZE "17" + SKL_TKN_U32_MAX_MCPS "18" + SKL_TKN_U32_MEM_PAGES "19" + SKL_TKN_U32_OBS "20" + SKL_TKN_U32_IBS "21" + SKL_TKN_U32_VBUS_ID "22" + SKL_TKN_U32_PARAMS_FIXUP "23" + SKL_TKN_U32_CONVERTER "24" + SKL_TKN_U32_PIPE_ID "25" + SKL_TKN_U32_PIPE_CONN_TYPE "26" + SKL_TKN_U32_PIPE_PRIORITY "27" + SKL_TKN_U32_PIPE_MEM_PGS "28" + SKL_TKN_U32_DIR_PIN_COUNT "29" + SKL_TKN_U32_FMT_CH "30" + SKL_TKN_U32_FMT_FREQ "31" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "33" + SKL_TKN_U32_FMT_CH_CONFIG "34" + SKL_TKN_U32_FMT_INTERLEAVE "35" + SKL_TKN_U32_FMT_SAMPLE_TYPE "36" + SKL_TKN_U32_FMT_CH_MAP "37" + SKL_TKN_U32_PIN_MOD_ID "38" + SKL_TKN_U32_PIN_INST_ID "39" + SKL_TKN_U32_MOD_SET_PARAMS "40" + SKL_TKN_U32_MOD_PARAM_ID "41" + SKL_TKN_U32_CAPS_SET_PARAMS "42" + SKL_TKN_U32_CAPS_PARAMS_ID "43" + SKL_TKN_U32_CAPS_SIZE "44" + SKL_TKN_U32_PROC_DOMAIN "45" + SKL_TKN_U32_LIB_COUNT "46" + SKL_TKN_STR_LIB_NAME "47" +} + +SectionVendorTuples."media0_in cpr 0 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."media0_in cpr 0_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."media0_in cpr 0" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "5" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "0" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "1" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."media0_in mi num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."media0_in mi_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "420" + } +} + +SectionVendorTuples."media0_in mi" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "178, 110, 101, 57, 113, 59, + 73, 64, 141, 63, 249, 44, 213, 196, 60, 9" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "0" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "1" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec0_in cpr 1 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec0_in cpr 1_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."codec0_in cpr 1" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "2" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "2" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "1" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0x5" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "2" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec0_in mi num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec0_in mi_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "420" + } +} + +SectionVendorTuples."codec0_in mi" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "178, 110, 101, 57, 113, 59, + 73, 64, 141, 63, 249, 44, 213, 196, 60, 9" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "1" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "2" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec0_out mo num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec0_out mo_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "1092" + } +} + +SectionVendorTuples."codec0_out mo" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "90, 80, 86, 60, 215, 36, + 143, 65, 189, 220, 193, 245, 163, 172, 42, 224" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "8" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "0" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "3" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec0_out cpr 2 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec0_out cpr 2_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."codec0_out cpr 2" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "2" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "2" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "2" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0x5" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "3" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."media0_out mo num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."media0_out mo_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "1092" + } +} + +SectionVendorTuples."media0_out mo" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "90, 80, 86, 60, 215, 36, + 143, 65, 189, 220, 193, 245, 163, 172, 42, 224" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "8" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "1" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "4" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."media0_out cpr 3 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."media0_out cpr 3_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."media0_out cpr 3" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "5" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "3" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "4" + SKL_TKN_U32_CONVERTER "4" + SKL_TKN_U32_PIPE_ID "4" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."dmic01_hifi_in cpr 4 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."dmic01_hifi_in cpr 4_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."dmic01_hifi_in cpr 4" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "2" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "1" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "4" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0x0" + SKL_TKN_U32_PARAMS_FIXUP "4" + SKL_TKN_U32_CONVERTER "4" + SKL_TKN_U32_PIPE_ID "5" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."dmic01_hifi_in mi num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."dmic01_hifi_in mi_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "420" + } +} + +SectionVendorTuples."dmic01_hifi_in mi" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "178, 110, 101, 57, 113, 59, + 73, 64, 141, 63, 249, 44, 213, 196, 60, 9" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "2" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "5" + SKL_TKN_U32_PIPE_CONN_TYPE "0" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec1_out mo num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec1_out mo_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "1092" + } +} + +SectionVendorTuples."codec1_out mo" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "90, 80, 86, 60, 215, 36, + 143, 65, 189, 220, 193, 245, 163, 172, 42, 224" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "8" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "2" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "6" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec1_out cpr 5 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec1_out cpr 5_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."codec1_out cpr 5" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "2" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "2" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "5" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0x5" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "6" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 6 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 6_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 6" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "5" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "6" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "7" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 7 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 7_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 7" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "4" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "7" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "7" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 8 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 8_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 8" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "5" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "8" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "8" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 9 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 9_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 9" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "4" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "9" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "8" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 10 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 10_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 10" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "5" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "10" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "9" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 11 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 11_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 11" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "4" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "11" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "9" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."mch_cap_in cpr 12 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."mch_cap_in cpr 12_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."mch_cap_in cpr 12" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "2" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "1" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "12" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "200000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "768" + SKL_TKN_U32_IBS "768" + SKL_TKN_U32_VBUS_ID "0x0" + SKL_TKN_U32_PARAMS_FIXUP "4" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "10" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "4" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffff4320" + SKL_TKN_U32_FMT_CH_CONFIG "0x5" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "4" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffff4320" + SKL_TKN_U32_FMT_CH_CONFIG "0x5" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "4" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffff4320" + SKL_TKN_U32_FMT_CH_CONFIG "0x5" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."mch_cap_in cpr 13 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."mch_cap_in cpr 13_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "516" + } +} + +SectionVendorTuples."mch_cap_in cpr 13" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "2" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "5" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "13" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "768" + SKL_TKN_U32_IBS "768" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "4" + SKL_TKN_U32_CONVERTER "4" + SKL_TKN_U32_PIPE_ID "10" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + SKL_TKN_U32_PROC_DOMAIN "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "4" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffff4320" + SKL_TKN_U32_FMT_CH_CONFIG "0x5" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "4" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffff4320" + SKL_TKN_U32_FMT_CH_CONFIG "0x5" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "4" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffff4320" + SKL_TKN_U32_FMT_CH_CONFIG "0x5" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."lib_data num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."lib_data_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "56" + } +} + +SectionVendorTuples."lib_data" { + tokens "skl_tokens" + + tuples."word.lib_name" { + SKL_TKN_U32_LIB_COUNT "1" + } + + tuples."string.lib_name_0" { + SKL_TKN_STR_LIB_NAME "base_fw" + } + +} + + +SectionData."media0_in cpr 0 num_desc" { + tuples "media0_in cpr 0 num_desc" +} + +SectionData."media0_in cpr 0_size_desc" { + tuples "media0_in cpr 0_size_desc" +} + +SectionData."media0_in cpr 0" { + tuples "media0_in cpr 0" +} + +SectionData."media0_in mi num_desc" { + tuples "media0_in mi num_desc" +} + +SectionData."media0_in mi_size_desc" { + tuples "media0_in mi_size_desc" +} + +SectionData."media0_in mi" { + tuples "media0_in mi" +} + +SectionData."codec0_in cpr 1 num_desc" { + tuples "codec0_in cpr 1 num_desc" +} + +SectionData."codec0_in cpr 1_size_desc" { + tuples "codec0_in cpr 1_size_desc" +} + +SectionData."codec0_in cpr 1" { + tuples "codec0_in cpr 1" +} + +SectionData."codec0_in mi num_desc" { + tuples "codec0_in mi num_desc" +} + +SectionData."codec0_in mi_size_desc" { + tuples "codec0_in mi_size_desc" +} + +SectionData."codec0_in mi" { + tuples "codec0_in mi" +} + +SectionData."codec0_out mo num_desc" { + tuples "codec0_out mo num_desc" +} + +SectionData."codec0_out mo_size_desc" { + tuples "codec0_out mo_size_desc" +} + +SectionData."codec0_out mo" { + tuples "codec0_out mo" +} + +SectionData."codec0_out cpr 2 num_desc" { + tuples "codec0_out cpr 2 num_desc" +} + +SectionData."codec0_out cpr 2_size_desc" { + tuples "codec0_out cpr 2_size_desc" +} + +SectionData."codec0_out cpr 2" { + tuples "codec0_out cpr 2" +} + +SectionData."media0_out mo num_desc" { + tuples "media0_out mo num_desc" +} + +SectionData."media0_out mo_size_desc" { + tuples "media0_out mo_size_desc" +} + +SectionData."media0_out mo" { + tuples "media0_out mo" +} + +SectionData."media0_out cpr 3 num_desc" { + tuples "media0_out cpr 3 num_desc" +} + +SectionData."media0_out cpr 3_size_desc" { + tuples "media0_out cpr 3_size_desc" +} + +SectionData."media0_out cpr 3" { + tuples "media0_out cpr 3" +} + +SectionData."dmic01_hifi_in cpr 4 num_desc" { + tuples "dmic01_hifi_in cpr 4 num_desc" +} + +SectionData."dmic01_hifi_in cpr 4_size_desc" { + tuples "dmic01_hifi_in cpr 4_size_desc" +} + +SectionData."dmic01_hifi_in cpr 4" { + tuples "dmic01_hifi_in cpr 4" +} + +SectionData."dmic01_hifi_in mi num_desc" { + tuples "dmic01_hifi_in mi num_desc" +} + +SectionData."dmic01_hifi_in mi_size_desc" { + tuples "dmic01_hifi_in mi_size_desc" +} + +SectionData."dmic01_hifi_in mi" { + tuples "dmic01_hifi_in mi" +} + +SectionData."codec1_out mo num_desc" { + tuples "codec1_out mo num_desc" +} + +SectionData."codec1_out mo_size_desc" { + tuples "codec1_out mo_size_desc" +} + +SectionData."codec1_out mo" { + tuples "codec1_out mo" +} + +SectionData."codec1_out cpr 5 num_desc" { + tuples "codec1_out cpr 5 num_desc" +} + +SectionData."codec1_out cpr 5_size_desc" { + tuples "codec1_out cpr 5_size_desc" +} + +SectionData."codec1_out cpr 5" { + tuples "codec1_out cpr 5" +} + +SectionData."hdmi1_pt_out cpr 6 num_desc" { + tuples "hdmi1_pt_out cpr 6 num_desc" +} + +SectionData."hdmi1_pt_out cpr 6_size_desc" { + tuples "hdmi1_pt_out cpr 6_size_desc" +} + +SectionData."hdmi1_pt_out cpr 6" { + tuples "hdmi1_pt_out cpr 6" +} + +SectionData."hdmi1_pt_out cpr 7 num_desc" { + tuples "hdmi1_pt_out cpr 7 num_desc" +} + +SectionData."hdmi1_pt_out cpr 7_size_desc" { + tuples "hdmi1_pt_out cpr 7_size_desc" +} + +SectionData."hdmi1_pt_out cpr 7" { + tuples "hdmi1_pt_out cpr 7" +} + +SectionData."hdmi2_pt_out cpr 8 num_desc" { + tuples "hdmi2_pt_out cpr 8 num_desc" +} + +SectionData."hdmi2_pt_out cpr 8_size_desc" { + tuples "hdmi2_pt_out cpr 8_size_desc" +} + +SectionData."hdmi2_pt_out cpr 8" { + tuples "hdmi2_pt_out cpr 8" +} + +SectionData."hdmi2_pt_out cpr 9 num_desc" { + tuples "hdmi2_pt_out cpr 9 num_desc" +} + +SectionData."hdmi2_pt_out cpr 9_size_desc" { + tuples "hdmi2_pt_out cpr 9_size_desc" +} + +SectionData."hdmi2_pt_out cpr 9" { + tuples "hdmi2_pt_out cpr 9" +} + +SectionData."hdmi3_pt_out cpr 10 num_desc" { + tuples "hdmi3_pt_out cpr 10 num_desc" +} + +SectionData."hdmi3_pt_out cpr 10_size_desc" { + tuples "hdmi3_pt_out cpr 10_size_desc" +} + +SectionData."hdmi3_pt_out cpr 10" { + tuples "hdmi3_pt_out cpr 10" +} + +SectionData."hdmi3_pt_out cpr 11 num_desc" { + tuples "hdmi3_pt_out cpr 11 num_desc" +} + +SectionData."hdmi3_pt_out cpr 11_size_desc" { + tuples "hdmi3_pt_out cpr 11_size_desc" +} + +SectionData."hdmi3_pt_out cpr 11" { + tuples "hdmi3_pt_out cpr 11" +} + +SectionData."mch_cap_in cpr 12 num_desc" { + tuples "mch_cap_in cpr 12 num_desc" +} + +SectionData."mch_cap_in cpr 12_size_desc" { + tuples "mch_cap_in cpr 12_size_desc" +} + +SectionData."mch_cap_in cpr 12" { + tuples "mch_cap_in cpr 12" +} + +SectionData."mch_cap_in cpr 13 num_desc" { + tuples "mch_cap_in cpr 13 num_desc" +} + +SectionData."mch_cap_in cpr 13_size_desc" { + tuples "mch_cap_in cpr 13_size_desc" +} + +SectionData."mch_cap_in cpr 13" { + tuples "mch_cap_in cpr 13" +} + +SectionData."lib_data num_desc" { + tuples "lib_data num_desc" +} + +SectionData."lib_data_size_desc" { + tuples "lib_data_size_desc" +} + +SectionData."lib_data" { + tuples "lib_data" +} + + +SectionControlMixer."media0_in mi Switch" { + index"0" + invert "false" + max "1" + min"0" + no_pm "true" + channel."fl" { + reg "-1" + shift "0" + } + channel."fr" { + reg "-1" + shift "0" + } + ops."ctl" { + get "64" + put "64" + info "64" + } +} +SectionControlMixer."dmic01_hifi_in mi Switch" { + index"0" + invert "false" + max "1" + min"0" + no_pm "true" + channel."fl" { + reg "-1" + shift "0" + } + channel."fr" { + reg "-1" + shift "0" + } + ops."ctl" { + get "64" + put "64" + info "64" + } +} +SectionControlMixer."codec0_in mi Switch" { + index"0" + invert "false" + max "1" + min"0" + no_pm "true" + channel."fl" { + reg "-1" + shift "0" + } + channel."fr" { + reg "-1" + shift "0" + } + ops."ctl" { + get "64" + put "64" + info "64" + } +} + + +SectionWidget."media0_in cpr 0" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "media0_in cpr 0 num_desc" + "media0_in cpr 0_size_desc" + "media0_in cpr 0" + ] +} +SectionWidget."media0_in mi" { + index"0" + type"pga" + no_pm "true" + event_type "4" + event_flags "9" + subseq "10" + data [ + "media0_in mi num_desc" + "media0_in mi_size_desc" + "media0_in mi" + ] +} +SectionWidget."codec0_in cpr 1" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "codec0_in cpr 1 num_desc" + "codec0_in cpr 1_size_desc" + "codec0_in cpr 1" + ] +} +SectionWidget."codec0_in mi" { + index"0" + type"pga" + no_pm "true" + event_type "4" + event_flags "9" + subseq "10" + data [ + "codec0_in mi num_desc" + "codec0_in mi_size_desc" + "codec0_in mi" + ] +} +SectionWidget."codec0_in" { + index"0" + type"aif_in" + no_pm "true" +} +SectionWidget."codec0_out mo" { + index"0" + type"mixer" + no_pm "true" + event_type "1" + event_flags "15" + subseq "10" + data [ + "codec0_out mo num_desc" + "codec0_out mo_size_desc" + "codec0_out mo" + ] + mixer [ + "media0_in mi Switch" + "dmic01_hifi_in mi Switch" + "codec0_in mi Switch" + ] +} +SectionWidget."codec0_out cpr 2" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "codec0_out cpr 2 num_desc" + "codec0_out cpr 2_size_desc" + "codec0_out cpr 2" + ] +} +SectionWidget."codec0_out" { + index"0" + type"aif_out" + no_pm "true" +} +SectionWidget."media0_out mo" { + index"0" + type"mixer" + no_pm "true" + event_type "1" + event_flags "15" + subseq "10" + data [ + "media0_out mo num_desc" + "media0_out mo_size_desc" + "media0_out mo" + ] + mixer [ + "media0_in mi Switch" + "dmic01_hifi_in mi Switch" + "codec0_in mi Switch" + ] +} +SectionWidget."media0_out cpr 3" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "media0_out cpr 3 num_desc" + "media0_out cpr 3_size_desc" + "media0_out cpr 3" + ] +} +SectionWidget."dmic01_hifi_in cpr 4" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "dmic01_hifi_in cpr 4 num_desc" + "dmic01_hifi_in cpr 4_size_desc" + "dmic01_hifi_in cpr 4" + ] +} +SectionWidget."dmic01_hifi_in mi" { + index"0" + type"pga" + no_pm "true" + event_type "4" + event_flags "9" + subseq "10" + data [ + "dmic01_hifi_in mi num_desc" + "dmic01_hifi_in mi_size_desc" + "dmic01_hifi_in mi" + ] +} +SectionWidget."dmic01_hifi" { + index"0" + type"aif_in" + no_pm "true" +} +SectionWidget."codec1_out mo" { + index"0" + type"mixer" + no_pm "true" + event_type "1" + event_flags "15" + subseq "10" + data [ + "codec1_out mo num_desc" + "codec1_out mo_size_desc" + "codec1_out mo" + ] + mixer [ + "media0_in mi Switch" + "dmic01_hifi_in mi Switch" + "codec0_in mi Switch" + ] +} +SectionWidget."codec1_out cpr 5" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "codec1_out cpr 5 num_desc" + "codec1_out cpr 5_size_desc" + "codec1_out cpr 5" + ] +} +SectionWidget."codec1_out" { + index"0" + type"aif_out" + no_pm "true" +} +SectionWidget."hdmi1_pt_out cpr 6" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "hdmi1_pt_out cpr 6 num_desc" + "hdmi1_pt_out cpr 6_size_desc" + "hdmi1_pt_out cpr 6" + ] +} +SectionWidget."hdmi1_pt_out cpr 7" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "hdmi1_pt_out cpr 7 num_desc" + "hdmi1_pt_out cpr 7_size_desc" + "hdmi1_pt_out cpr 7" + ] +} +SectionWidget."iDisp1_out" { + index"0" + type"aif_out" + no_pm "true" +} +SectionWidget."hdmi2_pt_out cpr 8" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "hdmi2_pt_out cpr 8 num_desc" + "hdmi2_pt_out cpr 8_size_desc" + "hdmi2_pt_out cpr 8" + ] +} +SectionWidget."hdmi2_pt_out cpr 9" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "hdmi2_pt_out cpr 9 num_desc" + "hdmi2_pt_out cpr 9_size_desc" + "hdmi2_pt_out cpr 9" + ] +} +SectionWidget."iDisp2_out" { + index"0" + type"aif_out" + no_pm "true" +} +SectionWidget."hdmi3_pt_out cpr 10" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "hdmi3_pt_out cpr 10 num_desc" + "hdmi3_pt_out cpr 10_size_desc" + "hdmi3_pt_out cpr 10" + ] +} +SectionWidget."hdmi3_pt_out cpr 11" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "hdmi3_pt_out cpr 11 num_desc" + "hdmi3_pt_out cpr 11_size_desc" + "hdmi3_pt_out cpr 11" + ] +} +SectionWidget."iDisp3_out" { + index"0" + type"aif_out" + no_pm "true" +} +SectionWidget."mch_cap_in cpr 12" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "mch_cap_in cpr 12 num_desc" + "mch_cap_in cpr 12_size_desc" + "mch_cap_in cpr 12" + ] +} +SectionWidget."mch_cap_in cpr 13" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "mch_cap_in cpr 13 num_desc" + "mch_cap_in cpr 13_size_desc" + "mch_cap_in cpr 13" + ] +} +SectionManifest."lib_data" { + data [ + "lib_data num_desc" + "lib_data_size_desc" + "lib_data" + ] +} + +SectionGraph."Pipeline 1 Graph" { + index"0" + lines [ + "media0_in mi, , media0_in cpr 0" + "media0_in cpr 0, , System Playback" + "codec0_in mi, , codec0_in cpr 1" + "codec0_in cpr 1, , codec0_in" + "codec0_out mo, media0_in mi Switch, media0_in mi" + "codec0_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi" + "codec0_out mo, codec0_in mi Switch, codec0_in mi" + "codec0_out cpr 2, , codec0_out mo" + "codec0_out, , codec0_out cpr 2" + "media0_out mo, media0_in mi Switch, media0_in mi" + "media0_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi" + "media0_out mo, codec0_in mi Switch, codec0_in mi" + "media0_out cpr 3, , media0_out mo" + "System Capture, , media0_out cpr 3" + "dmic01_hifi_in mi, , dmic01_hifi_in cpr 4" + "dmic01_hifi_in cpr 4, , dmic01_hifi" + "codec1_out mo, media0_in mi Switch, media0_in mi" + "codec1_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi" + "codec1_out mo, codec0_in mi Switch, codec0_in mi" + "codec1_out cpr 5, , codec1_out mo" + "codec1_out, , codec1_out cpr 5" + "hdmi1_pt_out cpr 7, , hdmi1_pt_out cpr 6" + "hdmi1_pt_out cpr 6, , HDMI1 Playback" + "iDisp1_out, , hdmi1_pt_out cpr 7" + "hdmi2_pt_out cpr 9, , hdmi2_pt_out cpr 8" + "hdmi2_pt_out cpr 8, , HDMI2 Playback" + "iDisp2_out, , hdmi2_pt_out cpr 9" + "hdmi3_pt_out cpr 11, , hdmi3_pt_out cpr 10" + "hdmi3_pt_out cpr 10, , HDMI3 Playback" + "iDisp3_out, , hdmi3_pt_out cpr 11" + "mch_cap_in cpr 13, , mch_cap_in cpr 12" + "DMIC Capture, , mch_cap_in cpr 13" + "mch_cap_in cpr 12, , dmic01_hifi" + ] +} + diff --git a/squashfs-root/usr/share/alsa/topology/sklrt286/skl_i2s.conf b/squashfs-root/usr/share/alsa/topology/sklrt286/skl_i2s.conf new file mode 100644 index 0000000..fbf041b --- /dev/null +++ b/squashfs-root/usr/share/alsa/topology/sklrt286/skl_i2s.conf @@ -0,0 +1,2964 @@ +SectionVendorTokens."skl_tokens" { + SKL_TKN_UUID "1" + SKL_TKN_U8_NUM_BLOCKS "2" + SKL_TKN_U8_BLOCK_TYPE "3" + SKL_TKN_U8_IN_PIN_TYPE "4" + SKL_TKN_U8_OUT_PIN_TYPE "5" + SKL_TKN_U8_DYN_IN_PIN "6" + SKL_TKN_U8_DYN_OUT_PIN "7" + SKL_TKN_U8_IN_QUEUE_COUNT "8" + SKL_TKN_U8_OUT_QUEUE_COUNT "9" + SKL_TKN_U8_TIME_SLOT "10" + SKL_TKN_U8_CORE_ID "11" + SKL_TKN_U8_MODULE_TYPE "12" + SKL_TKN_U8_CONN_TYPE "13" + SKL_TKN_U8_DEV_TYPE "14" + SKL_TKN_U8_HW_CONN_TYPE "15" + SKL_TKN_U16_MOD_INST_ID "16" + SKL_TKN_U16_BLOCK_SIZE "17" + SKL_TKN_U32_MAX_MCPS "18" + SKL_TKN_U32_MEM_PAGES "19" + SKL_TKN_U32_OBS "20" + SKL_TKN_U32_IBS "21" + SKL_TKN_U32_VBUS_ID "22" + SKL_TKN_U32_PARAMS_FIXUP "23" + SKL_TKN_U32_CONVERTER "24" + SKL_TKN_U32_PIPE_ID "25" + SKL_TKN_U32_PIPE_CONN_TYPE "26" + SKL_TKN_U32_PIPE_PRIORITY "27" + SKL_TKN_U32_PIPE_MEM_PGS "28" + SKL_TKN_U32_DIR_PIN_COUNT "29" + SKL_TKN_U32_FMT_CH "30" + SKL_TKN_U32_FMT_FREQ "31" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "33" + SKL_TKN_U32_FMT_CH_CONFIG "34" + SKL_TKN_U32_FMT_INTERLEAVE "35" + SKL_TKN_U32_FMT_SAMPLE_TYPE "36" + SKL_TKN_U32_FMT_CH_MAP "37" + SKL_TKN_U32_PIN_MOD_ID "38" + SKL_TKN_U32_PIN_INST_ID "39" + SKL_TKN_U32_MOD_SET_PARAMS "40" + SKL_TKN_U32_MOD_PARAM_ID "41" + SKL_TKN_U32_CAPS_SET_PARAMS "42" + SKL_TKN_U32_CAPS_PARAMS_ID "43" + SKL_TKN_U32_CAPS_SIZE "44" +} + +SectionVendorTuples."media0_in cpr 0 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."media0_in cpr 0_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."media0_in cpr 0" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "5" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "0" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "1" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."media0_in mi num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."media0_in mi_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "412" + } +} + +SectionVendorTuples."media0_in mi" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "178, 110, 101, 57, 113, 59, + 73, 64, 141, 63, 249, 44, 213, 196, 60, 9" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "0" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "1" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."media0_out mo num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."media0_out mo_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "1084" + } +} + +SectionVendorTuples."media0_out mo" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "90, 80, 86, 60, 215, 36, + 143, 65, 189, 220, 193, 245, 163, 172, 42, 224" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "8" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "2" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "2" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."media0_out cpr 6 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."media0_out cpr 6_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."media0_out cpr 6" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "5" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "6" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "2" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec0_out mo num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec0_out mo_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "1084" + } +} + +SectionVendorTuples."codec0_out mo" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "90, 80, 86, 60, 215, 36, + 143, 65, 189, 220, 193, 245, 163, 172, 42, 224" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "8" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "0" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "3" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "4" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec0_out cpr 4 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec0_out cpr 4_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."codec0_out cpr 4" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "2" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "2" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "4" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0x0" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "3" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "4" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec1_out mo num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec1_out mo_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "1084" + } +} + +SectionVendorTuples."codec1_out mo" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "90, 80, 86, 60, 215, 36, + 143, 65, 189, 220, 193, 245, 163, 172, 42, 224" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "8" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "1" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "4" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_fmt_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "16" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_2" { + SKL_TKN_U32_DIR_PIN_COUNT "32" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_3" { + SKL_TKN_U32_DIR_PIN_COUNT "48" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_4" { + SKL_TKN_U32_DIR_PIN_COUNT "64" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_5" { + SKL_TKN_U32_DIR_PIN_COUNT "80" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_6" { + SKL_TKN_U32_DIR_PIN_COUNT "96" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.in_pin_7" { + SKL_TKN_U32_DIR_PIN_COUNT "112" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec1_out cpr 5 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec1_out cpr 5_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."codec1_out cpr 5" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "2" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "2" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "2" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "5" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0x0" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "4" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec0_in cpr 1 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec0_in cpr 1_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."codec0_in cpr 1" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "2" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "2" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "1" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0x0" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "5" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."codec0_in mi num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."codec0_in mi_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "412" + } +} + +SectionVendorTuples."codec0_in mi" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "178, 110, 101, 57, 113, 59, + 73, 64, 141, 63, 249, 44, 213, 196, 60, 9" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "1" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "5" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."dmic01_hifi_in cpr 3 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."dmic01_hifi_in cpr 3_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."dmic01_hifi_in cpr 3" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "2" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "1" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "3" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0x0" + SKL_TKN_U32_PARAMS_FIXUP "4" + SKL_TKN_U32_CONVERTER "4" + SKL_TKN_U32_PIPE_ID "6" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."dmic01_hifi_in mi num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."dmic01_hifi_in mi_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "412" + } +} + +SectionVendorTuples."dmic01_hifi_in mi" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "178, 110, 101, 57, 113, 59, + 73, 64, 141, 63, 249, 44, 213, 196, 60, 9" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "1" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "0" + SKL_TKN_U8_CONN_TYPE "0" + SKL_TKN_U8_HW_CONN_TYPE "2" + SKL_TKN_U8_DEV_TYPE "6" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "3" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "0" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "6" + SKL_TKN_U32_PIPE_CONN_TYPE "2" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 7 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 7_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 7" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "5" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "7" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "7" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 8 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 8_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."hdmi1_pt_out cpr 8" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "4" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "8" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "7" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 9 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 9_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 9" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "5" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "9" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "8" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 10 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 10_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."hdmi2_pt_out cpr 10" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "4" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "10" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "8" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 11 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 11_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 11" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "5" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "11" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "9" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "32" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 12 num_desc" { + tokens "skl_tokens" + + tuples."byte.u8_num_blocks" { + SKL_TKN_U8_NUM_BLOCKS "1" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 12_size_desc" { + tokens "skl_tokens" + tuples."byte.u8_block_type"{ + SKL_TKN_U8_BLOCK_TYPE "0" + } + tuples."short.u16_size_desc"{ + SKL_TKN_U16_BLOCK_SIZE "508" + } +} + +SectionVendorTuples."hdmi3_pt_out cpr 12" { + tokens "skl_tokens" + + tuples."uuid" { + SKL_TKN_UUID "131, 12, 160, 155, 18, 202, + 131, 74, 148, 60, 31, 162, 232, 47, 157, 218" + } + + tuples."byte.u8_data" { + SKL_TKN_U8_IN_PIN_TYPE "0" + SKL_TKN_U8_OUT_PIN_TYPE "0" + SKL_TKN_U8_IN_QUEUE_COUNT "1" + SKL_TKN_U8_OUT_QUEUE_COUNT "2" + SKL_TKN_U8_DYN_IN_PIN "1" + SKL_TKN_U8_DYN_OUT_PIN "1" + SKL_TKN_U8_TIME_SLOT "0" + SKL_TKN_U8_CORE_ID "0" + SKL_TKN_U8_MODULE_TYPE "1" + SKL_TKN_U8_CONN_TYPE "1" + SKL_TKN_U8_HW_CONN_TYPE "1" + SKL_TKN_U8_DEV_TYPE "4" + } + + tuples."short.u16_data" { + SKL_TKN_U16_MOD_INST_ID "12" + } + + tuples."word.u32_data" { + SKL_TKN_U32_MAX_MCPS "100000" + SKL_TKN_U32_MEM_PAGES "1" + SKL_TKN_U32_OBS "384" + SKL_TKN_U32_IBS "384" + SKL_TKN_U32_VBUS_ID "0xffffffff" + SKL_TKN_U32_PARAMS_FIXUP "7" + SKL_TKN_U32_CONVERTER "0" + SKL_TKN_U32_PIPE_ID "9" + SKL_TKN_U32_PIPE_CONN_TYPE "1" + SKL_TKN_U32_PIPE_PRIORITY "0" + SKL_TKN_U32_PIPE_MEM_PGS "2" + SKL_TKN_U32_CAPS_SIZE "0" + } + + tuples."word.in_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.out_fmt_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_FMT_CH "2" + SKL_TKN_U32_FMT_FREQ "48000" + SKL_TKN_U32_FMT_BIT_DEPTH "32" + SKL_TKN_U32_FMT_SAMPLE_SIZE "24" + SKL_TKN_U32_FMT_INTERLEAVE "0" + SKL_TKN_U32_FMT_SAMPLE_TYPE "0" + SKL_TKN_U32_FMT_CH_MAP "0xffffff10" + SKL_TKN_U32_FMT_CH_CONFIG "0x1" + } + + tuples."word.in_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "0" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_0" { + SKL_TKN_U32_DIR_PIN_COUNT "1" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } + + tuples."word.out_pin_1" { + SKL_TKN_U32_DIR_PIN_COUNT "17" + SKL_TKN_U32_PIN_MOD_ID "0" + SKL_TKN_U32_PIN_INST_ID "0" + } +} + + +SectionData."media0_in cpr 0 num_desc" { + tuples "media0_in cpr 0 num_desc" +} + +SectionData."media0_in cpr 0_size_desc" { + tuples "media0_in cpr 0_size_desc" +} + +SectionData."media0_in cpr 0" { + tuples "media0_in cpr 0" +} + +SectionData."media0_in mi num_desc" { + tuples "media0_in mi num_desc" +} + +SectionData."media0_in mi_size_desc" { + tuples "media0_in mi_size_desc" +} + +SectionData."media0_in mi" { + tuples "media0_in mi" +} + +SectionData."media0_out mo num_desc" { + tuples "media0_out mo num_desc" +} + +SectionData."media0_out mo_size_desc" { + tuples "media0_out mo_size_desc" +} + +SectionData."media0_out mo" { + tuples "media0_out mo" +} + +SectionData."media0_out cpr 6 num_desc" { + tuples "media0_out cpr 6 num_desc" +} + +SectionData."media0_out cpr 6_size_desc" { + tuples "media0_out cpr 6_size_desc" +} + +SectionData."media0_out cpr 6" { + tuples "media0_out cpr 6" +} + +SectionData."codec0_out mo num_desc" { + tuples "codec0_out mo num_desc" +} + +SectionData."codec0_out mo_size_desc" { + tuples "codec0_out mo_size_desc" +} + +SectionData."codec0_out mo" { + tuples "codec0_out mo" +} + +SectionData."codec0_out cpr 4 num_desc" { + tuples "codec0_out cpr 4 num_desc" +} + +SectionData."codec0_out cpr 4_size_desc" { + tuples "codec0_out cpr 4_size_desc" +} + +SectionData."codec0_out cpr 4" { + tuples "codec0_out cpr 4" +} + +SectionData."codec1_out mo num_desc" { + tuples "codec1_out mo num_desc" +} + +SectionData."codec1_out mo_size_desc" { + tuples "codec1_out mo_size_desc" +} + +SectionData."codec1_out mo" { + tuples "codec1_out mo" +} + +SectionData."codec1_out cpr 5 num_desc" { + tuples "codec1_out cpr 5 num_desc" +} + +SectionData."codec1_out cpr 5_size_desc" { + tuples "codec1_out cpr 5_size_desc" +} + +SectionData."codec1_out cpr 5" { + tuples "codec1_out cpr 5" +} + +SectionData."codec0_in cpr 1 num_desc" { + tuples "codec0_in cpr 1 num_desc" +} + +SectionData."codec0_in cpr 1_size_desc" { + tuples "codec0_in cpr 1_size_desc" +} + +SectionData."codec0_in cpr 1" { + tuples "codec0_in cpr 1" +} + +SectionData."codec0_in mi num_desc" { + tuples "codec0_in mi num_desc" +} + +SectionData."codec0_in mi_size_desc" { + tuples "codec0_in mi_size_desc" +} + +SectionData."codec0_in mi" { + tuples "codec0_in mi" +} + +SectionData."dmic01_hifi_in cpr 3 num_desc" { + tuples "dmic01_hifi_in cpr 3 num_desc" +} + +SectionData."dmic01_hifi_in cpr 3_size_desc" { + tuples "dmic01_hifi_in cpr 3_size_desc" +} + +SectionData."dmic01_hifi_in cpr 3" { + tuples "dmic01_hifi_in cpr 3" +} + +SectionData."dmic01_hifi_in mi num_desc" { + tuples "dmic01_hifi_in mi num_desc" +} + +SectionData."dmic01_hifi_in mi_size_desc" { + tuples "dmic01_hifi_in mi_size_desc" +} + +SectionData."dmic01_hifi_in mi" { + tuples "dmic01_hifi_in mi" +} + +SectionData."hdmi1_pt_out cpr 7 num_desc" { + tuples "hdmi1_pt_out cpr 7 num_desc" +} + +SectionData."hdmi1_pt_out cpr 7_size_desc" { + tuples "hdmi1_pt_out cpr 7_size_desc" +} + +SectionData."hdmi1_pt_out cpr 7" { + tuples "hdmi1_pt_out cpr 7" +} + +SectionData."hdmi1_pt_out cpr 8 num_desc" { + tuples "hdmi1_pt_out cpr 8 num_desc" +} + +SectionData."hdmi1_pt_out cpr 8_size_desc" { + tuples "hdmi1_pt_out cpr 8_size_desc" +} + +SectionData."hdmi1_pt_out cpr 8" { + tuples "hdmi1_pt_out cpr 8" +} + +SectionData."hdmi2_pt_out cpr 9 num_desc" { + tuples "hdmi2_pt_out cpr 9 num_desc" +} + +SectionData."hdmi2_pt_out cpr 9_size_desc" { + tuples "hdmi2_pt_out cpr 9_size_desc" +} + +SectionData."hdmi2_pt_out cpr 9" { + tuples "hdmi2_pt_out cpr 9" +} + +SectionData."hdmi2_pt_out cpr 10 num_desc" { + tuples "hdmi2_pt_out cpr 10 num_desc" +} + +SectionData."hdmi2_pt_out cpr 10_size_desc" { + tuples "hdmi2_pt_out cpr 10_size_desc" +} + +SectionData."hdmi2_pt_out cpr 10" { + tuples "hdmi2_pt_out cpr 10" +} + +SectionData."hdmi3_pt_out cpr 11 num_desc" { + tuples "hdmi3_pt_out cpr 11 num_desc" +} + +SectionData."hdmi3_pt_out cpr 11_size_desc" { + tuples "hdmi3_pt_out cpr 11_size_desc" +} + +SectionData."hdmi3_pt_out cpr 11" { + tuples "hdmi3_pt_out cpr 11" +} + +SectionData."hdmi3_pt_out cpr 12 num_desc" { + tuples "hdmi3_pt_out cpr 12 num_desc" +} + +SectionData."hdmi3_pt_out cpr 12_size_desc" { + tuples "hdmi3_pt_out cpr 12_size_desc" +} + +SectionData."hdmi3_pt_out cpr 12" { + tuples "hdmi3_pt_out cpr 12" +} + + +SectionControlMixer."media0_in mi Switch" { + index"0" + invert "false" + max "1" + min"0" + no_pm "true" + channel."fl" { + reg "-1" + shift "0" + } + channel."fr" { + reg "-1" + shift "0" + } + ops."ctl" { + get "64" + put "64" + info "64" + } +} +SectionControlMixer."codec0_in mi Switch" { + index"0" + invert "false" + max "1" + min"0" + no_pm "true" + channel."fl" { + reg "-1" + shift "0" + } + channel."fr" { + reg "-1" + shift "0" + } + ops."ctl" { + get "64" + put "64" + info "64" + } +} +SectionControlMixer."dmic01_hifi_in mi Switch" { + index"0" + invert "false" + max "1" + min"0" + no_pm "true" + channel."fl" { + reg "-1" + shift "0" + } + channel."fr" { + reg "-1" + shift "0" + } + ops."ctl" { + get "64" + put "64" + info "64" + } +} + + +SectionWidget."media0_in cpr 0" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "media0_in cpr 0 num_desc" + "media0_in cpr 0_size_desc" + "media0_in cpr 0" + ] +} +SectionWidget."media0_in mi" { + index"0" + type"pga" + no_pm "true" + event_type "4" + event_flags "9" + subseq "10" + data [ + "media0_in mi num_desc" + "media0_in mi_size_desc" + "media0_in mi" + ] +} +SectionWidget."media0_out mo" { + index"0" + type"mixer" + no_pm "true" + event_type "1" + event_flags "15" + subseq "10" + data [ + "media0_out mo num_desc" + "media0_out mo_size_desc" + "media0_out mo" + ] + mixer [ + "media0_in mi Switch" + "codec0_in mi Switch" + "dmic01_hifi_in mi Switch" + ] +} +SectionWidget."media0_out cpr 6" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "media0_out cpr 6 num_desc" + "media0_out cpr 6_size_desc" + "media0_out cpr 6" + ] +} +SectionWidget."codec0_out mo" { + index"0" + type"mixer" + no_pm "true" + event_type "1" + event_flags "15" + subseq "10" + data [ + "codec0_out mo num_desc" + "codec0_out mo_size_desc" + "codec0_out mo" + ] + mixer [ + "media0_in mi Switch" + "codec0_in mi Switch" + "dmic01_hifi_in mi Switch" + ] +} +SectionWidget."codec0_out cpr 4" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "codec0_out cpr 4 num_desc" + "codec0_out cpr 4_size_desc" + "codec0_out cpr 4" + ] +} +SectionWidget."codec0_out" { + index"0" + type"aif_out" + no_pm "true" +} +SectionWidget."codec1_out mo" { + index"0" + type"mixer" + no_pm "true" + event_type "1" + event_flags "15" + subseq "10" + data [ + "codec1_out mo num_desc" + "codec1_out mo_size_desc" + "codec1_out mo" + ] + mixer [ + "media0_in mi Switch" + "codec0_in mi Switch" + "dmic01_hifi_in mi Switch" + ] +} +SectionWidget."codec1_out cpr 5" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "codec1_out cpr 5 num_desc" + "codec1_out cpr 5_size_desc" + "codec1_out cpr 5" + ] +} +SectionWidget."codec1_out" { + index"0" + type"aif_out" + no_pm "true" +} +SectionWidget."codec0_in cpr 1" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "codec0_in cpr 1 num_desc" + "codec0_in cpr 1_size_desc" + "codec0_in cpr 1" + ] +} +SectionWidget."codec0_in mi" { + index"0" + type"pga" + no_pm "true" + event_type "4" + event_flags "9" + subseq "10" + data [ + "codec0_in mi num_desc" + "codec0_in mi_size_desc" + "codec0_in mi" + ] +} +SectionWidget."codec0_in" { + index"0" + type"aif_in" + no_pm "true" +} +SectionWidget."dmic01_hifi_in cpr 3" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "dmic01_hifi_in cpr 3 num_desc" + "dmic01_hifi_in cpr 3_size_desc" + "dmic01_hifi_in cpr 3" + ] +} +SectionWidget."dmic01_hifi_in mi" { + index"0" + type"pga" + no_pm "true" + event_type "4" + event_flags "9" + subseq "10" + data [ + "dmic01_hifi_in mi num_desc" + "dmic01_hifi_in mi_size_desc" + "dmic01_hifi_in mi" + ] +} +SectionWidget."dmic01_hifi" { + index"0" + type"aif_in" + no_pm "true" +} +SectionWidget."hdmi1_pt_out cpr 7" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "hdmi1_pt_out cpr 7 num_desc" + "hdmi1_pt_out cpr 7_size_desc" + "hdmi1_pt_out cpr 7" + ] +} +SectionWidget."hdmi1_pt_out cpr 8" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "hdmi1_pt_out cpr 8 num_desc" + "hdmi1_pt_out cpr 8_size_desc" + "hdmi1_pt_out cpr 8" + ] +} +SectionWidget."iDisp1_out" { + index"0" + type"aif_out" + no_pm "true" +} +SectionWidget."hdmi2_pt_out cpr 9" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "hdmi2_pt_out cpr 9 num_desc" + "hdmi2_pt_out cpr 9_size_desc" + "hdmi2_pt_out cpr 9" + ] +} +SectionWidget."hdmi2_pt_out cpr 10" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "hdmi2_pt_out cpr 10 num_desc" + "hdmi2_pt_out cpr 10_size_desc" + "hdmi2_pt_out cpr 10" + ] +} +SectionWidget."iDisp2_out" { + index"0" + type"aif_out" + no_pm "true" +} +SectionWidget."hdmi3_pt_out cpr 11" { + index"0" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data [ + "hdmi3_pt_out cpr 11 num_desc" + "hdmi3_pt_out cpr 11_size_desc" + "hdmi3_pt_out cpr 11" + ] +} +SectionWidget."hdmi3_pt_out cpr 12" { + index"0" + type"pga" + no_pm "true" + event_type "4" + data [ + "hdmi3_pt_out cpr 12 num_desc" + "hdmi3_pt_out cpr 12_size_desc" + "hdmi3_pt_out cpr 12" + ] +} +SectionGraph."Pipeline 1 Graph" { + index"0" + lines [ + "media0_in mi, , media0_in cpr 0" + "media0_in cpr 0, , System Playback" + "media0_out mo, media0_in mi Switch, media0_in mi" + "media0_out mo, codec0_in mi Switch, codec0_in mi" + "media0_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi" + "media0_out cpr 6, , media0_out mo" + "System Capture, , media0_out cpr 6" + "codec0_out mo, media0_in mi Switch, media0_in mi" + "codec0_out mo, codec0_in mi Switch, codec0_in mi" + "codec0_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi" + "codec0_out cpr 4, , codec0_out mo" + "codec0_out, , codec0_out cpr 4" + "codec1_out mo, media0_in mi Switch, media0_in mi" + "codec1_out mo, codec0_in mi Switch, codec0_in mi" + "codec1_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi" + "codec1_out cpr 5, , codec1_out mo" + "codec1_out, , codec1_out cpr 5" + "codec0_in mi, , codec0_in cpr 1" + "codec0_in cpr 1, , codec0_in" + "dmic01_hifi_in mi, , dmic01_hifi_in cpr 3" + "dmic01_hifi_in cpr 3, , dmic01_hifi" + "hdmi1_pt_out cpr 8, , hdmi1_pt_out cpr 7" + "hdmi1_pt_out cpr 7, , HDMI1 Playback" + "iDisp1_out, , hdmi1_pt_out cpr 8" + "hdmi2_pt_out cpr 10, , hdmi2_pt_out cpr 9" + "hdmi2_pt_out cpr 9, , HDMI2 Playback" + "iDisp2_out, , hdmi2_pt_out cpr 10" + "hdmi3_pt_out cpr 12, , hdmi3_pt_out cpr 11" + "hdmi3_pt_out cpr 11, , HDMI3 Playback" + "iDisp1_out, , hdmi3_pt_out cpr 12" + ] +} + diff --git a/squashfs-root/usr/share/alsa/ucm/DAISY-I2S/DAISY-I2S.conf b/squashfs-root/usr/share/alsa/ucm/DAISY-I2S/DAISY-I2S.conf new file mode 100644 index 0000000..0f4b5fc --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/DAISY-I2S/DAISY-I2S.conf @@ -0,0 +1,6 @@ +Comment "Daisy internal card" + +SectionUseCase."HiFi" { + File "HiFi.conf" + Comment "Default" +} diff --git a/squashfs-root/usr/share/alsa/ucm/DAISY-I2S/HiFi.conf b/squashfs-root/usr/share/alsa/ucm/DAISY-I2S/HiFi.conf new file mode 100644 index 0000000..d8c06ad --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/DAISY-I2S/HiFi.conf @@ -0,0 +1,62 @@ +SectionVerb { + EnableSequence [ + cdev "hw:DAISYI2S" + cset "name='Left Speaker Mixer Left DAC1 Switch' on" + cset "name='Right Speaker Mixer Right DAC1 Switch' on" + cset "name='Left Headphone Mixer Left DAC1 Switch' on" + cset "name='Right Headphone Mixer Right DAC1 Switch' on" + cset "name='DMIC1 Left Capture Switch' on" + cset "name='DMIC1 Right Capture Switch' on" + cset "name='MIC2 External Mic Switch' on" + cset "name='Left ADC Mixer MIC2 Switch' on" + cset "name='Right ADC Mixer MIC2 Switch' on" + cset "name='EQ1 Mode' Default" + cset "name='DAI1 Filter Mode' Music" + ] + DisableSequence [ + ] +} + +SectionDevice."Headphone".0 { + Value { + JackName "DAISY-I2S Headphone Jack" + } + + EnableSequence [ + cdev "hw:DAISYI2S" + cset "name='EQ1 Switch' off" + cset "name='Left Headphone Mixer Left DAC1 Switch' on" + cset "name='Right Headphone Mixer Right DAC1 Switch' on" + ] + DisableSequence [ + cdev "hw:DAISYI2S" + cset "name='EQ1 Mode' Default" + cset "name='EQ1 Switch' on" + cset "name='Left Speaker Mixer Left DAC1 Switch' on" + cset "name='Right Speaker Mixer Right DAC1 Switch' on" + ] +} + +SectionDevice."Mic".0 { + Value { + JackName "DAISY-I2S Mic Jack" + } + + EnableSequence [ + cdev "hw:DAISYI2S" + + cset "name='DMIC1 Left Capture Switch' off" + cset "name='DMIC1 Right Capture Switch' off" + cset "name='Left ADC Mixer MIC2 Switch' on" + cset "name='Right ADC Mixer MIC2 Switch' on" + ] + + DisableSequence [ + cdev "hw:DAISYI2S" + + cset "name='Left ADC Mixer MIC2 Switch' off" + cset "name='Right ADC Mixer MIC2 Switch' off" + cset "name='DMIC1 Left Capture Switch' on" + cset "name='DMIC1 Right Capture Switch' on" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/DB410c/DB410c.conf b/squashfs-root/usr/share/alsa/ucm/DB410c/DB410c.conf new file mode 100644 index 0000000..590278f --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/DB410c/DB410c.conf @@ -0,0 +1,8 @@ +SectionUseCase."HiFi" { + File "HiFi" + Comment "Play HiFi quality Music." +} +SectionUseCase."HDMI" { + File "HDMI" + Comment "HDMI output." +} diff --git a/squashfs-root/usr/share/alsa/ucm/DB410c/HDMI b/squashfs-root/usr/share/alsa/ucm/DB410c/HDMI new file mode 100644 index 0000000..8112bc0 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/DB410c/HDMI @@ -0,0 +1,31 @@ +# Use case configuration for DB410c board. +# Author: Srinivas Kandagatla + +SectionVerb { + EnableSequence [ + ] + + DisableSequence [ + ] + Value { + TQ "HiFi" + PlaybackPCM "plughw:0,0" + } +} + +SectionDevice."HDMI-stereo" { + #Name "HDMI-stereo" + Comment "HDMI Digital Stereo Output" + + EnableSequence [ + cdev "hw:0" + ] + + DisableSequence [ + cdev "hw:0" + ] + + Value { + PlaybackChannels "2" + } +} diff --git a/squashfs-root/usr/share/alsa/ucm/DB410c/HiFi b/squashfs-root/usr/share/alsa/ucm/DB410c/HiFi new file mode 100644 index 0000000..dcb7ac9 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/DB410c/HiFi @@ -0,0 +1,189 @@ +# Use case configuration for DB410c board. +# Author: Srinivas Kandagatla + +SectionVerb { + + EnableSequence [ + ] + + DisableSequence [ + ] + + # ALSA PCM + Value { + # ALSA PCM device for HiFi + PlaybackPCM "plughw:0,1" + CapturePCM "plughw:0,2" + } +} + + +SectionDevice."Speaker" { + Comment "Speaker playback" + + ConflictingDevice [ + "Headphones" + "Earpiece" + ] + + EnableSequence [ + cdev "hw:0" + cset "name='SPK DAC Switch' 1" + cset "name='RX3 MIX1 INP1' RX1" + ## gain to 0dB + cset "name='RX3 Digital Volume' 128" + ] + + DisableSequence [ + cdev "hw:0" + cset "name='SPK DAC Switch' 0" + cset "name='RX3 MIX1 INP1' ZERO" + ] + + Value { + PlaybackChannels "2" + } +} + + +SectionDevice."Headphones" { + Comment "Headphones playback" + + ConflictingDevice [ + "Speaker" + "Earpiece" + ] + EnableSequence [ + cdev "hw:0" + cset "name='RX1 MIX1 INP1' RX1" + cset "name='RX2 MIX1 INP1' RX2" + cset "name='RDAC2 MUX' RX2" + cset "name='HPHL' 1" + cset "name='HPHR' 1" + ## gain to 0dB + cset "name='RX1 Digital Volume' 128" + ## gain to 0dB + cset "name='RX2 Digital Volume' 128" + ] + + DisableSequence [ + cdev "hw:0" + cset "name='RX1 Digital Volume' 0" + cset "name='RX2 Digital Volume' 0" + cset "name='HPHL' 0" + cset "name='HPHR' 0" + cset "name='RDAC2 MUX' ZERO" + cset "name='RX1 MIX1 INP1' ZERO" + cset "name='RX2 MIX1 INP1' ZERO" + ] + + Value { + PlaybackChannels "2" + } +} + +SectionDevice."Earpiece" { + Comment "Earpiece playback" + + ConflictingDevice [ + "Speaker" + "Headphones" + ] + EnableSequence [ + cdev "hw:0" + ] + + DisableSequence [ + cdev "hw:0" + ] + + Value { + PlaybackChannels "2" + } +} + +SectionDevice."Handset" { + Comment "Headset Microphone" + + EnableSequence [ + cdev "hw:0" + cset "name='DEC1 MUX' ADC2" + cset "name='CIC1 MUX' AMIC" + cset "name='ADC2 Volume' 8" + cset "name='ADC2 MUX' INP2" + ] + + DisableSequence [ + cdev "hw:0" + cset "name='ADC2 MUX' ZERO" + cset "name='ADC2 Volume' 0" + cset "name='DEC1 MUX' ZERO" + ] + + Value { + CaptureChannels "2" + } +} + +SectionDevice."Primarymic" { + Comment "Primary Microphone" + + EnableSequence [ + cdev "hw:0" + cset "name='DEC1 MUX' ADC1" + cset "name='CIC1 MUX' AMIC" + cset "name='ADC1 Volume' 8" + ] + + DisableSequence [ + cdev "hw:0" + cset "name='DEC1 MUX' ZERO" + cset "name='ADC1 Volume' 0" + ] + + Value { + CaptureChannels "2" + } +} + +SectionDevice."Secondarymic" { + Comment "Secondary Microphone" + + EnableSequence [ + cdev "hw:0" + cset "name='DEC1 MUX' ADC2" + cset "name='CIC1 MUX' AMIC" + cset "name='ADC2 Volume' 8" + cset "name='ADC2 MUX' INP2" + ] + + DisableSequence [ + cdev "hw:0" + cset "name='DEC1 MUX' ZERO" + cset "name='ADC2 Volume' 0" + cset "name='ADC2 MUX' ZERO" + ] + + Value { + CaptureChannels "2" + } +} + +SectionDevice."DMIC" { + Comment "Digital Microphone" + + EnableSequence [ + cdev "hw:0" + cset "name='DEC1 MUX' DMIC1" + cset "name='CIC1 MUX' DMIC" + ] + + DisableSequence [ + cdev "hw:0" + cset "name='DEC1 MUX' ZERO" + ] + + Value { + CaptureChannels "2" + } +} diff --git a/squashfs-root/usr/share/alsa/ucm/GoogleNyan/GoogleNyan.conf b/squashfs-root/usr/share/alsa/ucm/GoogleNyan/GoogleNyan.conf new file mode 100644 index 0000000..efe6ad8 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/GoogleNyan/GoogleNyan.conf @@ -0,0 +1,5 @@ +Comment "Nyan internal card" +SectionUseCase."HiFi" { + File "HiFi.conf" + Comment "Default" +} diff --git a/squashfs-root/usr/share/alsa/ucm/GoogleNyan/HiFi.conf b/squashfs-root/usr/share/alsa/ucm/GoogleNyan/HiFi.conf new file mode 100644 index 0000000..b28fe91 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/GoogleNyan/HiFi.conf @@ -0,0 +1,77 @@ +SectionVerb { + EnableSequence [ + cdev "hw:GoogleNyan" + cset "name='Left Speaker Mixer Left DAC Switch' on" + cset "name='Right Speaker Mixer Right DAC Switch' on" + cset "name='Headphone Left Switch' on" + cset "name='Headphone Right Switch' on" + cset "name='Digital EQ 3 Band Switch' off" + cset "name='Digital EQ 5 Band Switch' off" + cset "name='Digital EQ 7 Band Switch' off" + cset "name='Biquad Switch' off" + cset "name='Filter Mode' Music" + cset "name='ADC Oversampling Rate' 0" + cset "name='DMIC Mux' DMIC" + cset "name='MIC2 Mux' IN34" + cset "name='Right ADC Mixer MIC2 Switch' on" + cset "name='Left ADC Mixer MIC2 Switch' on" + cset "name='MIC2 Volume' 10" + cset "name='MIC2 Boost Volume' 0" + cset "name='Mic Jack Switch' off" + cset "name='Int Mic Switch' on" + cset "name='ADCR Boost Volume' 4" + cset "name='ADCL Boost Volume' 4" + cset "name='ADCR Volume' 11" + cset "name='ADCL Volume' 11" + cset "name='Left Speaker Mixer Left DAC Switch' on" + cset "name='Right Speaker Mixer Right DAC Switch' on" + cset "name='Speaker Left Mixer Volume' 2" + cset "name='Speaker Right Mixer Volume' 2" + cset "name='Record Path DC Blocking' on" + cset "name='Playback Path DC Blocking' on" + cset "name='Headphone Left Switch' on" + cset "name='Headphone Right Switch' on" + cset "name='Headphones Switch' off" + cset "name='Speaker Left Switch' on" + cset "name='Speaker Right Switch' on" + cset "name='Speakers Switch' on" + ] + DisableSequence [ + ] +} + +SectionDevice."Headphone".0 { + Value { + OutputDspName "" + } + EnableSequence [ + cdev "hw:GoogleNyan" + cset "name='Speakers Switch' off" + cset "name='Headphones Switch' on" + ] + DisableSequence [ + cdev "hw:GoogleNyan" + cset "name='Headphones Switch' off" + cset "name='Speakers Switch' on" + ] +} + +SectionDevice."Mic".0 { + Value { + CaptureControl "MIC2" + } + EnableSequence [ + cdev "hw:GoogleNyan" + cset "name='Int Mic Switch' off" + cset "name='DMIC Mux' ADC" + cset "name='Mic Jack Switch' on" + cset "name='Record Path DC Blocking' on" + ] + DisableSequence [ + cdev "hw:GoogleNyan" + cset "name='Mic Jack Switch' off" + cset "name='DMIC Mux' DMIC" + cset "name='Int Mic Switch' on" + cset "name='Record Path DC Blocking' off" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/PAZ00/HiFi.conf b/squashfs-root/usr/share/alsa/ucm/PAZ00/HiFi.conf new file mode 100644 index 0000000..275516d --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PAZ00/HiFi.conf @@ -0,0 +1,45 @@ +SectionVerb { + EnableSequence [ + cdev "hw:PAZ00" + + cset "name='Speaker Playback Switch' on" + cset "name='Int Spk Switch' on" + cset "name='Speaker Mix DAC2SPK Playback Switch' on" + ] + DisableSequence [ + cset "name='Speaker Playback Switch' off" + cset "name='Int Spk Switch' off" + cset "name='Speaker Mix DAC2SPK Playback Switch' off" + ] +} + +SectionDevice."Headset".0 { + Comment "3.5mm Headset" + + Value { + JackName "Paz00 Headset Jack" + } + + EnableSequence [ + cdev "hw:PAZ00" + + # Internal speaker + cset "name='Int Spk Switch' off" + + # Headphones + cset "name='Headphone Playback Switch' on" + cset "name='HPL Mix DACL2HP Playback Switch' on" + cset "name='HPR Mix DACR2HP Playback Switch' on" + ] + DisableSequence [ + cdev "hw:PAZ00" + + # Headphones + cset "name='Headphone Playback Switch' off" + cset "name='HPL Mix DACL2HP Playback Switch' off" + cset "name='HPR Mix DACR2HP Playback Switch' off" + + # Internal speaker + cset "name='Int Spk Switch' on" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/PAZ00/PAZ00.conf b/squashfs-root/usr/share/alsa/ucm/PAZ00/PAZ00.conf new file mode 100644 index 0000000..8b9d904 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PAZ00/PAZ00.conf @@ -0,0 +1,39 @@ +Comment "PAZ00 alc5632" + +ValueDefaults { + PlaybackCTL "hw:0" + CaptureCTL "hw:0" +} + +SectionDefaults [ + cdev "hw:PAZ00" + + cset "name='Master Playback Switch' on" + cset "name='Master Playback Volume' 44,44" + cset "name='Headphone Playback Volume' 21,21" + cset "name='Speaker Playback Volume' 21,21" + cset "name='SpeakerOut Mux' 2" + cset "name='SpeakerOut N Mux' LN/-R" + cset "name='AB-D Amp Mux' 0" + cset "name='Left Headphone Mux' 1" + cset "name='Right Headphone Mux' 1" + cset "name='DMIC Boost Capture Volume' 4" + cset "name='Rec Capture Volume' 24" + + # Fix external mic record volumes + cset "name='Mic 1 Boost Volume' 0" + cset "name='Mic 2 Boost Volume' 0" + cset "name='Mic1 Playback Volume' 0" + cset "name='Mic2 Playback Volume' 0" + cset "name='Rec Capture Volume' 0" +] + +SectionUseCase."HiFi" { + File "HiFi.conf" + Comment "Music playback" +} + +SectionUseCase."Record" { + File "Record.conf" + Comment "Playback and capture" +} diff --git a/squashfs-root/usr/share/alsa/ucm/PAZ00/Record.conf b/squashfs-root/usr/share/alsa/ucm/PAZ00/Record.conf new file mode 100644 index 0000000..568e2fb --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PAZ00/Record.conf @@ -0,0 +1,65 @@ +SectionVerb { + EnableSequence [ + cdev "hw:PAZ00" + + cset "name='Speaker Playback Switch' on" + cset "name='Int Spk Switch' on" + cset "name='Speaker Mix DAC2SPK Playback Switch' on" + + cset "name='DMICL Mix DMICL2ADC Capture Switch' on" + cset "name='DMIC En Capture Switch' on" + cset "name='DMIC PreFilter Capture Switch' on" + ] + DisableSequence [ + cset "name='Speaker Playback Switch' off" + cset "name='Int Spk Switch' off" + cset "name='Speaker Mix DAC2SPK Playback Switch' off" + + cset "name='DMICL Mix DMICL2ADC Capture Switch' off" + cset "name='DMIC En Capture Switch' off" + cset "name='DMIC PreFilter Capture Switch' off" + ] +} + +SectionDevice."Headset".0 { + Comment "3.5mm Headset" + + Value { + JackName "Paz00 Headset Jack" + } + + EnableSequence [ + cdev "hw:PAZ00" + + # Internal speaker + cset "name='Int Spk Switch' off" + + # Internal mic + cset "name='DMIC En Capture Switch' off" + + # Headphones + cset "name='Headphone Playback Switch' on" + cset "name='HPL Mix DACL2HP Playback Switch' on" + cset "name='HPR Mix DACR2HP Playback Switch' on" + + # External min + cset "name='Left Capture Mix MIC12REC_L Capture Switch' on" + ] + DisableSequence [ + cdev "hw:PAZ00" + + # Headphones + cset "name='Headphone Playback Switch' off" + cset "name='HPL Mix DACL2HP Playback Switch' off" + cset "name='HPR Mix DACR2HP Playback Switch' off" + + # External mic + cset "name='Left Capture Mix MIC12REC_L Capture Switch' on" + + # Internal speaker + cset "name='Int Spk Switch' on" + + # Internal mic + cset "name='DMIC En Capture Switch' on" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoard/FMAnalog b/squashfs-root/usr/share/alsa/ucm/PandaBoard/FMAnalog new file mode 100644 index 0000000..f1b4477 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoard/FMAnalog @@ -0,0 +1,46 @@ +# Use case Configurationfor TI PandaBoard HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoard" + cset "name='AMIC_UL PDM Switch' 1" + cset "name='MUX_UL00' 9" + cset "name='MUX_UL01' 10" + cset "name='Capture Volume' 4" + ] + + + DisableSequence [ + cdev "hw:PandaBoard" + cset "name='AMIC_UL PDM Switch' 0" + cset "name='MUX_UL00' 0" + cset "name='MUX_UL01' 0" + cset "name='Capture Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Music" + CapturePCM "hw:0,0" + } +} + +SectionDevice."Headset".0 { + Comment "PandaBoard 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoard" + cset "name='Analog Left Capture Route' 2" + cset "name='Analog Right Capture Route' 2" + cset "name='Capture Preamplifier Volume' 2" + ] + + DisableSequence [ + cdev "hw:PandaBoard" + cset "name='Analog Left Capture Route' 3" + cset "name='Analog Right Capture Route' 3" + cset "name='Capture Preamplifier Volume' 0" + ] +} + diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoard/PandaBoard.conf b/squashfs-root/usr/share/alsa/ucm/PandaBoard/PandaBoard.conf new file mode 100644 index 0000000..85b90b4 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoard/PandaBoard.conf @@ -0,0 +1,45 @@ +# UCM configuration for PandaBoard +SectionUseCase."Record" { + File "record" + Comment "Record." +} + +SectionUseCase."HiFi" { + File "hifi" + Comment "Play HiFi quality Music." +} + +SectionUseCase."HiFi_Low_Power" { + File "hifiLP" + Comment "Play HiFi quality Music in Low Power Mode." +} + +SectionUseCase."Voice" { + File "voice" + Comment "Playback Voice quality." +} + +SectionUseCase."Voice_Low_Power" { + File "voice" + Comment "Playback Voice quality in Low Power Mode." +} + +SectionUseCase."Voice_Call" { + File "voiceCall" + Comment "Capture and Playback in Voice quality." +} + +SectionUseCase."Voice_Call_IP" { + File "voiceCall" + Comment "Capture and Playback in Voice quality." +} + +SectionUseCase."FM_Analog_Radio" { + File "FMAnalog" + Comment "Capture FM Analog Radio." +} + +SectionDefaults [ + cdev "hw:PandaBoard" + exec "echo Im setting defaults" +] diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoard/hifi b/squashfs-root/usr/share/alsa/ucm/PandaBoard/hifi new file mode 100644 index 0000000..db405a4 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoard/hifi @@ -0,0 +1,83 @@ +# Use case Configuration for TI PandaBoard HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoard" + cset "name='DL1 Mixer Multimedia' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Media Playback Volume' 90,90" + cset "name='SDT DL Volume' 120" + + cset "name='Headset Left Playback' 1" + cset "name='Headset Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:PandaBoard" + cset "name='DL1 Mixer Multimedia' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Media Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + + cset "name='Headset Right Playback' 0" + cset "name='Headset Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] + + # Optional TQ and ALSA PCMs +# Value { +# TQ "Music" +# PlaybackPCM "hw:0,0" +# PlaybackVolume "name='DL1 Media Playback Volume' 90,90" +# PlaybackSwitch "name='DL1 PDM Switch' 1" +# } +} + +SectionDevice."Headset".0 { + Comment "PandaBoard 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoard" + cset "name='Headset Left Playback' 1" + cset "name='Headset Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:PandaBoard" + cset "name='Headset Right Playback' 0" + cset "name='Headset Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} + +#SectionModifier."RecordMedia".0 { +# SupportedDevice [ +# "Headset" +# ] + # EnableSequence [ + # .... + # ] + # + # DisableSequence [ + # ... + # ] + # + # TransitionSequence."ToModifierName" [ + # ... + # ] + # + # # Optional TQ and ALSA PCMs + # Value { + # TQ Voice + # CapturePCM "hw:1" + # PlaybackVolume "name='Master Playback Volume',index=2" + # PlaybackSwitch "name='Master Playback Switch',index=2" + # } +# +#} + diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoard/hifiLP b/squashfs-root/usr/share/alsa/ucm/PandaBoard/hifiLP new file mode 100644 index 0000000..7bbbd5d --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoard/hifiLP @@ -0,0 +1,46 @@ +# Use case Configuration for TI PandaBoard HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoard" + cset "name='DL1 Mixer Multimedia' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Media Playback Volume' 90,90" + cset "name='SDT DL Volume' 120" + ] + + DisableSequence [ + cdev "hw:PandaBoard" + cset "name='DL1 Mixer Multimedia' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Media Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Music" + PlaybackPCM "hw:0,6" + } +} + +SectionDevice."Headset".0 { + Comment "PandaBoard 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoard" + cset "name='Headset Left Playback' 1" + cset "name='Headset Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:PandaBoard" + cset "name='Headset Right Playback' 0" + cset "name='Headset Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoard/record b/squashfs-root/usr/share/alsa/ucm/PandaBoard/record new file mode 100644 index 0000000..0eaf117 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoard/record @@ -0,0 +1,47 @@ +# Use case Configuration for TI PandaBoard HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoard" + # No more AMIC PDM Switch in current kernels + #cset "name='AMIC_UL PDM Switch' 1" + cset "name='MUX_UL00' 9" + cset "name='MUX_UL01' 10" + cset "name='Capture Volume' 4" + ] + + DisableSequence [ + cdev "hw:PandaBoard" + # No more AMIC PDM Switch in current kernels + #cset "name='AMIC_UL PDM Switch' 0" + cset "name='MUX_UL00' 0" + cset "name='MUX_UL01' 0" + cset "name='Capture Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Music" + CapturePCM "hw:0,0" + } + +} + +SectionDevice."Headset".0 { + Comment "PandaBoard 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoard" + cset "name='Analog Left Capture Route' 0" + cset "name='Analog Right Capture Route' 0" + cset "name='Capture Preamplifier Volume' 2" + ] + + DisableSequence [ + cdev "hw:PandaBoard" + cset "name='Analog Left Capture Route' 3" + cset "name='Analog Right Capture Route' 3" + cset "name='Capture Preamplifier Volume' 0" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoard/voice b/squashfs-root/usr/share/alsa/ucm/PandaBoard/voice new file mode 100644 index 0000000..4861071 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoard/voice @@ -0,0 +1,46 @@ +# Use case Configuration for TI PandaBoard HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoard" + cset "name='DL1 Mixer Voice' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Voice Playback Volume' 90,90" + cset "name='SDT DL Volume' 120" + ] + + DisableSequence [ + cdev "hw:PandaBoard" + cset "name='DL1 Mixer Voice' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Voice Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Voice" + PlaybackPCM "hw:0,2" + } +} + +SectionDevice."Headset".0 { + Comment "PandaBoard 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoard" + cset "name='Headset Left Playback' 1" + cset "name='Headset Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:PandaBoard" + cset "name='Headset Right Playback' 0" + cset "name='Headset Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoard/voiceCall b/squashfs-root/usr/share/alsa/ucm/PandaBoard/voiceCall new file mode 100644 index 0000000..d3c9501 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoard/voiceCall @@ -0,0 +1,67 @@ +# Use case Configuration for TI PandaBoard HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoard" + cset "name='AMIC_UL PDM Switch' 1" + cset "name='Sidetone Mixer Capture' 1" + cset "name='MUX_VX0' 9" + cset "name='MUX_VX1' 10" + cset "name='DL1 Mixer Voice' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Voice Playback Volume' 90,90" + cset "name='Capture Volume' 4" + cset "name='Capture Mixer Voice Capture' 90,90" + cset "name='SDT DL Volume' 120" + ] + + + DisableSequence [ + cdev "hw:PandaBoard" + cset "name='AMIC_UL PDM Switch' 0" + cset "name='Sidetone Mixer Capture' 0" + cset "name='MUX_VX0' 0" + cset "name='MUX_VX1' 0" + cset "name='DL1 Mixer Voice' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Voice Playback Volume' 0,0" + cset "name='Capture Volume' 0" + cset "name='DL1 Voice Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Voice" + CapturePCM "hw:0,2" + PlaybackPCM "hw:0,2" + } +} + +SectionDevice."Headset".0 { + Comment "PandaBoard 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoard" + cset "name='Analog Left Capture Route' 0" + cset "name='Analog Right Capture Route' 0" + cset "name='Capture Preamplifier Volume' 2" + cset "name='Headset Left Playback' 1" + cset "name='Headset Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:PandaBoard" + cset "name='Analog Left Capture Route' 3" + cset "name='Analog Right Capture Route' 3" + cset "name='Capture Preamplifier Volume' 0" + cset "name='Headset Right Playback' 0" + cset "name='Headset Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} + diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoardES/FMAnalog b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/FMAnalog new file mode 100644 index 0000000..6885cc8 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/FMAnalog @@ -0,0 +1,46 @@ +# Use case Configurationfor TI PandaBoardES HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoardES" + cset "name='AMIC_UL PDM Switch' 1" + cset "name='MUX_UL00' 9" + cset "name='MUX_UL01' 10" + cset "name='Capture Volume' 4" + ] + + + DisableSequence [ + cdev "hw:PandaBoardES" + cset "name='AMIC_UL PDM Switch' 0" + cset "name='MUX_UL00' 0" + cset "name='MUX_UL01' 0" + cset "name='Capture Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Music" + CapturePCM "hw:0,0" + } +} + +SectionDevice."Headset".0 { + Comment "PandaBoardES 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoardES" + cset "name='Analog Left Capture Route' 2" + cset "name='Analog Right Capture Route' 2" + cset "name='Capture Preamplifier Volume' 2" + ] + + DisableSequence [ + cdev "hw:PandaBoardES" + cset "name='Analog Left Capture Route' 3" + cset "name='Analog Right Capture Route' 3" + cset "name='Capture Preamplifier Volume' 0" + ] +} + diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoardES/PandaBoardES.conf b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/PandaBoardES.conf new file mode 100644 index 0000000..4fe6d0b --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/PandaBoardES.conf @@ -0,0 +1,45 @@ +# UCM configuration for PandaBoardES +SectionUseCase."Record" { + File "record" + Comment "Record." +} + +SectionUseCase."HiFi" { + File "hifi" + Comment "Play HiFi quality Music." +} + +SectionUseCase."HiFi_Low_Power" { + File "hifiLP" + Comment "Play HiFi quality Music in Low Power Mode." +} + +SectionUseCase."Voice" { + File "voice" + Comment "Playback Voice quality." +} + +SectionUseCase."Voice_Low_Power" { + File "voice" + Comment "Playback Voice quality in Low Power Mode." +} + +SectionUseCase."Voice_Call" { + File "voiceCall" + Comment "Capture and Playback in Voice quality." +} + +SectionUseCase."Voice_Call_IP" { + File "voiceCall" + Comment "Capture and Playback in Voice quality." +} + +SectionUseCase."FM_Analog_Radio" { + File "FMAnalog" + Comment "Capture FM Analog Radio." +} + +SectionDefaults [ + cdev "hw:PandaBoardES" + exec "echo Im setting PandaBoardES defaults" +] diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoardES/hifi b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/hifi new file mode 100644 index 0000000..be00e60 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/hifi @@ -0,0 +1,83 @@ +# Use case Configuration for TI PandaBoardES HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoardES" + cset "name='DL1 Mixer Multimedia' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Media Playback Volume' 90,90" + cset "name='SDT DL Volume' 120" + + cset "name='Headset Left Playback' 1" + cset "name='Headset Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:PandaBoardES" + cset "name='DL1 Mixer Multimedia' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Media Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + + cset "name='Headset Right Playback' 0" + cset "name='Headset Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] + + # Optional TQ and ALSA PCMs +# Value { +# TQ "Music" +# PlaybackPCM "hw:0,0" +# PlaybackVolume "name='DL1 Media Playback Volume' 90,90" +# PlaybackSwitch "name='DL1 PDM Switch' 1" +# } +} + +SectionDevice."Headset".0 { + Comment "PandaBoardES 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoardES" + cset "name='Headset Left Playback' 1" + cset "name='Headset Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:PandaBoardES" + cset "name='Headset Right Playback' 0" + cset "name='Headset Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} + +#SectionModifier."RecordMedia".0 { +# SupportedDevice [ +# "Headset" +# ] + # EnableSequence [ + # .... + # ] + # + # DisableSequence [ + # ... + # ] + # + # TransitionSequence."ToModifierName" [ + # ... + # ] + # + # # Optional TQ and ALSA PCMs + # Value { + # TQ Voice + # CapturePCM "hw:1" + # PlaybackVolume "name='Master Playback Volume',index=2" + # PlaybackSwitch "name='Master Playback Switch',index=2" + # } +# +#} + diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoardES/hifiLP b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/hifiLP new file mode 100644 index 0000000..c817a58 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/hifiLP @@ -0,0 +1,46 @@ +# Use case Configuration for TI PandaBoardES HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoardES" + cset "name='DL1 Mixer Multimedia' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Media Playback Volume' 90,90" + cset "name='SDT DL Volume' 120" + ] + + DisableSequence [ + cdev "hw:PandaBoardES" + cset "name='DL1 Mixer Multimedia' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Media Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Music" + PlaybackPCM "hw:0,6" + } +} + +SectionDevice."Headset".0 { + Comment "PandaBoardES 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoardES" + cset "name='Headset Left Playback' 1" + cset "name='Headset Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:PandaBoardES" + cset "name='Headset Right Playback' 0" + cset "name='Headset Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoardES/record b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/record new file mode 100644 index 0000000..4f272a9 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/record @@ -0,0 +1,47 @@ +# Use case Configuration for TI PandaBoardES HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoardES" + # No more AMIC PDM Switch in current kernels + #cset "name='AMIC_UL PDM Switch' 1" + cset "name='MUX_UL00' 9" + cset "name='MUX_UL01' 10" + cset "name='Capture Volume' 4" + ] + + DisableSequence [ + cdev "hw:PandaBoardES" + # No more AMIC PDM Switch in current kernels + #cset "name='AMIC_UL PDM Switch' 0" + cset "name='MUX_UL00' 0" + cset "name='MUX_UL01' 0" + cset "name='Capture Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Music" + CapturePCM "hw:0,0" + } + +} + +SectionDevice."Headset".0 { + Comment "PandaBoardES 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoardES" + cset "name='Analog Left Capture Route' 0" + cset "name='Analog Right Capture Route' 0" + cset "name='Capture Preamplifier Volume' 2" + ] + + DisableSequence [ + cdev "hw:PandaBoardES" + cset "name='Analog Left Capture Route' 3" + cset "name='Analog Right Capture Route' 3" + cset "name='Capture Preamplifier Volume' 0" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoardES/voice b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/voice new file mode 100644 index 0000000..e2b3f79 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/voice @@ -0,0 +1,46 @@ +# Use case Configuration for TI PandaBoardES HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoardES" + cset "name='DL1 Mixer Voice' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Voice Playback Volume' 90,90" + cset "name='SDT DL Volume' 120" + ] + + DisableSequence [ + cdev "hw:PandaBoardES" + cset "name='DL1 Mixer Voice' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Voice Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Voice" + PlaybackPCM "hw:0,2" + } +} + +SectionDevice."Headset".0 { + Comment "PandaBoardES 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoardES" + cset "name='Headset Left Playback' 1" + cset "name='Headset Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:PandaBoardES" + cset "name='Headset Right Playback' 0" + cset "name='Headset Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/PandaBoardES/voiceCall b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/voiceCall new file mode 100644 index 0000000..57b1c80 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/PandaBoardES/voiceCall @@ -0,0 +1,67 @@ +# Use case Configuration for TI PandaBoardES HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:PandaBoardES" + cset "name='AMIC_UL PDM Switch' 1" + cset "name='Sidetone Mixer Capture' 1" + cset "name='MUX_VX0' 9" + cset "name='MUX_VX1' 10" + cset "name='DL1 Mixer Voice' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Voice Playback Volume' 90,90" + cset "name='Capture Volume' 4" + cset "name='Capture Mixer Voice Capture' 90,90" + cset "name='SDT DL Volume' 120" + ] + + + DisableSequence [ + cdev "hw:PandaBoardES" + cset "name='AMIC_UL PDM Switch' 0" + cset "name='Sidetone Mixer Capture' 0" + cset "name='MUX_VX0' 0" + cset "name='MUX_VX1' 0" + cset "name='DL1 Mixer Voice' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Voice Playback Volume' 0,0" + cset "name='Capture Volume' 0" + cset "name='DL1 Voice Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Voice" + CapturePCM "hw:0,2" + PlaybackPCM "hw:0,2" + } +} + +SectionDevice."Headset".0 { + Comment "PandaBoardES 3.5mm Headset" + + EnableSequence [ + cdev "hw:PandaBoardES" + cset "name='Analog Left Capture Route' 0" + cset "name='Analog Right Capture Route' 0" + cset "name='Capture Preamplifier Volume' 2" + cset "name='Headset Left Playback' 1" + cset "name='Headset Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:PandaBoardES" + cset "name='Analog Left Capture Route' 3" + cset "name='Analog Right Capture Route' 3" + cset "name='Capture Preamplifier Volume' 0" + cset "name='Headset Right Playback' 0" + cset "name='Headset Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} + diff --git a/squashfs-root/usr/share/alsa/ucm/SDP4430/FMAnalog b/squashfs-root/usr/share/alsa/ucm/SDP4430/FMAnalog new file mode 100644 index 0000000..876527a --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/SDP4430/FMAnalog @@ -0,0 +1,46 @@ +# Use case Configurationfor TI SDP4430 HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:SDP4430" + cset "name='AMIC_UL PDM Switch' 1" + cset "name='MUX_UL00' 9" + cset "name='MUX_UL01' 10" + cset "name='Capture Volume' 4" + ] + + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='AMIC_UL PDM Switch' 0" + cset "name='MUX_UL00' 0" + cset "name='MUX_UL01' 0" + cset "name='Capture Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Music" + CapturePCM "hw:0,0" + } +} + +SectionDevice."Headset".0 { + Comment "SDP4430 3.5mm Headset" + + EnableSequence [ + cdev "hw:SDP4430" + cset "name='Analog Left Capture Route' 2" + cset "name='Analog Right Capture Route' 2" + cset "name='Capture Preamplifier Volume' 2" + ] + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='Analog Left Capture Route' 3" + cset "name='Analog Right Capture Route' 3" + cset "name='Capture Preamplifier Volume' 0" + ] +} + diff --git a/squashfs-root/usr/share/alsa/ucm/SDP4430/SDP4430.conf b/squashfs-root/usr/share/alsa/ucm/SDP4430/SDP4430.conf new file mode 100644 index 0000000..2fa2ab8 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/SDP4430/SDP4430.conf @@ -0,0 +1,45 @@ +# UCM configuration for SDP4430 +SectionUseCase."Record" { + File "record" + Comment "Record." +} + +SectionUseCase."HiFi" { + File "hifi" + Comment "Play HiFi quality Music." +} + +SectionUseCase."HiFi_Low_Power" { + File "hifiLP" + Comment "Play HiFi quality Music in Low Power Mode." +} + +SectionUseCase."Voice" { + File "voice" + Comment "Playback Voice quality." +} + +SectionUseCase."Voice_Low_Power" { + File "voice" + Comment "Playback Voice quality in Low Power Mode." +} + +SectionUseCase."Voice_Call" { + File "voiceCall" + Comment "Capture and Playback in Voice quality." +} + +SectionUseCase."Voice_Call_IP" { + File "voiceCall" + Comment "Capture and Playback in Voice quality." +} + +SectionUseCase."FM_Analog_Radio" { + File "FMAnalog" + Comment "Capture FM Analog Radio." +} + +SectionDefaults [ + cdev "hw:SDP4430" + exec "echo Im setting defaults" +] diff --git a/squashfs-root/usr/share/alsa/ucm/SDP4430/hifi b/squashfs-root/usr/share/alsa/ucm/SDP4430/hifi new file mode 100644 index 0000000..a3293c5 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/SDP4430/hifi @@ -0,0 +1,83 @@ +# Use case Configuration for TI SDP4430 HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:SDP4430" + cset "name='DL1 Mixer Multimedia' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Media Playback Volume' 90,90" + cset "name='SDT DL Volume' 120" + + cset "name='HS Left Playback' 1" + cset "name='HS Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='DL1 Mixer Multimedia' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Media Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + + cset "name='HS Right Playback' 0" + cset "name='HS Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] + + # Optional TQ and ALSA PCMs +# Value { +# TQ "Music" +# PlaybackPCM "hw:0,0" +# PlaybackVolume "name='DL1 Media Playback Volume' 90,90" +# PlaybackSwitch "name='DL1 PDM Switch' 1" +# } +} + +SectionDevice."Headset".0 { + Comment "SDP4430 3.5mm Headset" + + EnableSequence [ + cdev "hw:SDP4430" + cset "name='HS Left Playback' 1" + cset "name='HS Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='HS Right Playback' 0" + cset "name='HS Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} + +#SectionModifier."RecordMedia".0 { +# SupportedDevice [ +# "Headset" +# ] + # EnableSequence [ + # .... + # ] + # + # DisableSequence [ + # ... + # ] + # + # TransitionSequence."ToModifierName" [ + # ... + # ] + # + # # Optional TQ and ALSA PCMs + # Value { + # TQ Voice + # CapturePCM "hw:1" + # PlaybackVolume "name='Master Playback Volume',index=2" + # PlaybackSwitch "name='Master Playback Switch',index=2" + # } +# +#} + diff --git a/squashfs-root/usr/share/alsa/ucm/SDP4430/hifiLP b/squashfs-root/usr/share/alsa/ucm/SDP4430/hifiLP new file mode 100644 index 0000000..ccf3d87 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/SDP4430/hifiLP @@ -0,0 +1,46 @@ +# Use case Configuration for TI SDP4430 HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:SDP4430" + cset "name='DL1 Mixer Multimedia' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Media Playback Volume' 90,90" + cset "name='SDT DL Volume' 120" + ] + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='DL1 Mixer Multimedia' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Media Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Music" + PlaybackPCM "hw:0,6" + } +} + +SectionDevice."Headset".0 { + Comment "SDP4430 3.5mm Headset" + + EnableSequence [ + cdev "hw:SDP4430" + cset "name='HS Left Playback' 1" + cset "name='HS Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='HS Right Playback' 0" + cset "name='HS Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/SDP4430/record b/squashfs-root/usr/share/alsa/ucm/SDP4430/record new file mode 100644 index 0000000..d680f25 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/SDP4430/record @@ -0,0 +1,45 @@ +# Use case Configuration for TI SDP4430 HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:SDP4430" + cset "name='AMIC_UL PDM Switch' 1" + cset "name='MUX_UL00' 9" + cset "name='MUX_UL01' 10" + cset "name='Capture Volume' 4" + ] + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='AMIC_UL PDM Switch' 0" + cset "name='MUX_UL00' 0" + cset "name='MUX_UL01' 0" + cset "name='Capture Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Music" + CapturePCM "hw:0,0" + } + +} + +SectionDevice."Headset".0 { + Comment "SDP4430 3.5mm Headset" + + EnableSequence [ + cdev "hw:SDP4430" + cset "name='Analog Left Capture Route' 0" + cset "name='Analog Right Capture Route' 0" + cset "name='Capture Preamplifier Volume' 2" + ] + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='Analog Left Capture Route' 3" + cset "name='Analog Right Capture Route' 3" + cset "name='Capture Preamplifier Volume' 0" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/SDP4430/voice b/squashfs-root/usr/share/alsa/ucm/SDP4430/voice new file mode 100644 index 0000000..8bea89c --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/SDP4430/voice @@ -0,0 +1,46 @@ +# Use case Configuration for TI SDP4430 HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:SDP4430" + cset "name='DL1 Mixer Voice' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Voice Playback Volume' 90,90" + cset "name='SDT DL Volume' 120" + ] + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='DL1 Mixer Voice' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Voice Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Voice" + PlaybackPCM "hw:0,2" + } +} + +SectionDevice."Headset".0 { + Comment "SDP4430 3.5mm Headset" + + EnableSequence [ + cdev "hw:SDP4430" + cset "name='HS Left Playback' 1" + cset "name='HS Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='HS Right Playback' 0" + cset "name='HS Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/SDP4430/voiceCall b/squashfs-root/usr/share/alsa/ucm/SDP4430/voiceCall new file mode 100644 index 0000000..4c06106 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/SDP4430/voiceCall @@ -0,0 +1,67 @@ +# Use case Configuration for TI SDP4430 HiFi Music +# By Liam Girdwood + +SectionVerb { + EnableSequence [ + cdev "hw:SDP4430" + cset "name='AMIC_UL PDM Switch' 1" + cset "name='Sidetone Mixer Capture' 1" + cset "name='MUX_VX0' 9" + cset "name='MUX_VX1' 10" + cset "name='DL1 Mixer Voice' 1" + cset "name='Sidetone Mixer Playback' 1" + cset "name='DL1 PDM Switch' 1" + cset "name='DL1 Voice Playback Volume' 90,90" + cset "name='Capture Volume' 4" + cset "name='Capture Mixer Voice Capture' 90,90" + cset "name='SDT DL Volume' 120" + ] + + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='AMIC_UL PDM Switch' 0" + cset "name='Sidetone Mixer Capture' 0" + cset "name='MUX_VX0' 0" + cset "name='MUX_VX1' 0" + cset "name='DL1 Mixer Voice' 0" + cset "name='Sidetone Mixer Playback' 0" + cset "name='DL1 PDM Switch' 0" + cset "name='DL1 Voice Playback Volume' 0,0" + cset "name='Capture Volume' 0" + cset "name='DL1 Voice Playback Volume' 0,0" + cset "name='SDT DL Volume' 0" + ] + + # Optional TQ and ALSA PCMs + Value { + TQ "Voice" + CapturePCM "hw:0,2" + PlaybackPCM "hw:0,2" + } +} + +SectionDevice."Headset".0 { + Comment "SDP4430 3.5mm Headset" + + EnableSequence [ + cdev "hw:SDP4430" + cset "name='Analog Left Capture Route' 0" + cset "name='Analog Right Capture Route' 0" + cset "name='Capture Preamplifier Volume' 2" + cset "name='HS Left Playback' 1" + cset "name='HS Right Playback' 1" + cset "name='Headset Playback Volume' 13" + ] + + DisableSequence [ + cdev "hw:SDP4430" + cset "name='Analog Left Capture Route' 3" + cset "name='Analog Right Capture Route' 3" + cset "name='Capture Preamplifier Volume' 0" + cset "name='HS Right Playback' 0" + cset "name='HS Left Playback' 0" + cset "name='Headset Playback Volume' 0" + ] +} + diff --git a/squashfs-root/usr/share/alsa/ucm/VEYRON-I2S/HiFi.conf b/squashfs-root/usr/share/alsa/ucm/VEYRON-I2S/HiFi.conf new file mode 100644 index 0000000..292b8fc --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/VEYRON-I2S/HiFi.conf @@ -0,0 +1,94 @@ +SectionVerb { + Value { + OutputDspName "speaker_eq" + MinBufferLevel "512" + } + + EnableSequence [ + cdev "hw:VEYRONI2S" + + cset "name='Left Speaker Mixer Left DAC Switch' on" + cset "name='Right Speaker Mixer Right DAC Switch' on" + cset "name='Headphone Left Switch' off" + cset "name='Headphone Right Switch' off" + cset "name='Digital EQ 3 Band Switch' off" + cset "name='Digital EQ 5 Band Switch' off" + cset "name='Digital EQ 7 Band Switch' off" + cset "name='Biquad Switch' off" + cset "name='Filter Mode' Music" + cset "name='ADC Oversampling Rate' 0" + + cset "name='DMIC Mux' DMIC" + cset "name='MIC2 Mux' IN34" + cset "name='Right ADC Mixer MIC2 Switch' on" + cset "name='Left ADC Mixer MIC2 Switch' on" + cset "name='MIC2 Volume' 20" + cset "name='Headset Mic Switch' off" + cset "name='Int Mic Switch' on" + + cset "name='ADCR Boost Volume' 4" + cset "name='ADCL Boost Volume' 4" + cset "name='ADCR Volume' 11" + cset "name='ADCL Volume' 11" + + cset "name='Left Speaker Mixer Left DAC Switch' on" + cset "name='Right Speaker Mixer Right DAC Switch' on" + cset "name='Speaker Left Mixer Volume' 2" + cset "name='Speaker Right Mixer Volume' 2" + cset "name='Record Path DC Blocking' on" + cset "name='Playback Path DC Blocking' on" + + cset "name='Speaker Left Switch' on" + cset "name='Speaker Right Switch' on" + cset "name='Speaker Switch' on" + ] + + DisableSequence [ + ] +} + +SectionDevice."Headphone".0 { + Value { + JackName "VEYRON-I2S Headset Jack" + OutputDspName "" + } + + EnableSequence [ + cdev "hw:VEYRONI2S" + + cset "name='Speaker Switch' off" + cset "name='Headphone Left Switch' on" + cset "name='Headphone Right Switch' on" + ] + DisableSequence [ + cdev "hw:VEYRONI2S" + + cset "name='Headphone Left Switch' off" + cset "name='Headphone Right Switch' off" + cset "name='Speaker Switch' on" + ] +} + +SectionDevice."Mic".0 { + Value { + JackName "VEYRON-I2S Headset Jack" + } + + EnableSequence [ + cdev "hw:VEYRONI2S" + + cset "name='Int Mic Switch' off" + cset "name='DMIC Mux' ADC" + cset "name='Headset Mic Switch' on" + cset "name='Record Path DC Blocking' on" + ] + + DisableSequence [ + cdev "hw:VEYRONI2S" + + cset "name='Headset Mic Switch' off" + cset "name='DMIC Mux' DMIC" + cset "name='Int Mic Switch' on" + cset "name='Record Path DC Blocking' off" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/VEYRON-I2S/VEYRON-I2S.conf b/squashfs-root/usr/share/alsa/ucm/VEYRON-I2S/VEYRON-I2S.conf new file mode 100644 index 0000000..2a92b6f --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/VEYRON-I2S/VEYRON-I2S.conf @@ -0,0 +1,6 @@ +Comment "Rockchip Veyron card" + +SectionUseCase."HiFi" { + File "HiFi.conf" + Comment "Default" +} diff --git a/squashfs-root/usr/share/alsa/ucm/broadwell-rt286/HiFi b/squashfs-root/usr/share/alsa/ucm/broadwell-rt286/HiFi new file mode 100644 index 0000000..c09a01c --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/broadwell-rt286/HiFi @@ -0,0 +1,133 @@ +# Use case Configuration for Nexus 7 +# Adapted to Ubuntu Touch by David Henningsson + +SectionVerb { + + EnableSequence [ + ] + + DisableSequence [ + ] + + # ALSA PCM + Value { + # ALSA PCM device for HiFi + PlaybackPCM "hw:broadwellrt286" + CapturePCM "hw:broadwellrt286" + } +} + +SectionDevice."Headphones" { + Comment "Headphones playback" + + ConflictingDevice [ + "Speaker" + ] + + EnableSequence [ + cdev "hw:broadwellrt286" + cset "name='Master Playback Volume' 30" + cset "name='HPO L Switch' on" + cset "name='HPO R Switch' on" + cset "name='Headphone Jack Switch' on" + cset "name='DAC0 Playback Volume' 100" + ] + + DisableSequence [ + cdev "hw:broadwellrt286" + cset "name='Headphone Jack Switch' off" + cset "name='HPO L Switch' off" + cset "name='HPO R Switch' off" + ] + + Value { + PlaybackChannels "2" + JackDev "rt286-jack" + JackControl "Headphone Jack" + JackHWMute "Speaker" + } +} + +SectionDevice."Speaker" { + Comment "Speaker playback" + + ConflictingDevice [ + "Headphones" + ] + + EnableSequence [ + cdev "hw:broadwellrt286" + cset "name='Master Playback Volume' 30" + cset "name='DAC0 Playback Volume' 127" + cset "name='SPO Switch' on" + cset "name='Speaker Playback Switch' on" + cset "name='Speaker Switch' on" + ] + + DisableSequence [ + cdev "hw:broadwellrt286" + cset "name='Speaker Switch' off" + cset "name='Speaker Playback Switch' off" + cset "name='SPO Switch' 0" + ] + + Value { + PlaybackChannels "2" + } +} + +SectionDevice."Handset" { + Comment "Handset Microphone" + + ConflictingDevice [ + "Mainmic" + ] + + EnableSequence [ + cdev "hw:broadwellrt286" + + cset "name='Mic Capture Volume' 28" + cset "name='ADC 0 Mux' 0" + cset "name='ADC0 Capture Switch' on" + cset "name='ADC0 Capture Volume' 127" + cset "name='AMIC Volume' 1" + ] + + DisableSequence [ + cdev "hw:broadwellrt286" + cset "name='ADC0 Capture Switch' off" + ] + + Value { + CaptureChannels "2" + JackDev "rt286-jack" + JackControl "Mic Jack" + JackHWMute "Mainmic" + } +} + +SectionDevice."Mainmic" { + Comment "Main Microphone" + + ConflictingDevice [ + "Handset" + ] + + EnableSequence [ + cdev "hw:broadwellrt286" + + cset "name='Mic Capture Volume' 30" + cset "name='ADC 0 Mux' 2" + cset "name='ADC0 Capture Switch' on" + cset "name='ADC0 Capture Volume' 127" + ] + + DisableSequence [ + cdev "hw:broadwellrt286" + cset "name='ADC0 Capture Switch' off" + ] + + Value { + CaptureChannels "2" + } +} diff --git a/squashfs-root/usr/share/alsa/ucm/broadwell-rt286/broadwell-rt286.conf b/squashfs-root/usr/share/alsa/ucm/broadwell-rt286/broadwell-rt286.conf new file mode 100644 index 0000000..4a176cd --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/broadwell-rt286/broadwell-rt286.conf @@ -0,0 +1,8 @@ +SectionUseCase."HiFi" { + File "HiFi" + Comment "Play HiFi quality Music" +} + +SectionDefaults [ + cdev "hw:broadwellrt286" +] diff --git a/squashfs-root/usr/share/alsa/ucm/broxton-rt298/Hdmi1 b/squashfs-root/usr/share/alsa/ucm/broxton-rt298/Hdmi1 new file mode 100644 index 0000000..48514f4 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/broxton-rt298/Hdmi1 @@ -0,0 +1,22 @@ +# Usecase for device HDMI1/Display Port stereo playback on Intel SKYLAKE/KABYLAKE platforms +# For Audio in I2S mode + +SectionDevice."Hdmi1" { + Comment "HDMI/Display Port 1 Stereo" + + EnableSequence [ + exec "echo Hdmi1 EnableSequnece" + ] + + DisableSequence [ + exec "echo Hdmi1 DisableSequnece" + ] + + Value { + PlaybackPCM "hw:broxtonrt298,4" + PlaybackChannels "2" + PlaybackPriority "3" + JackControl "HDMI/DP, pcm=4 Jack" + } +} + diff --git a/squashfs-root/usr/share/alsa/ucm/broxton-rt298/Hdmi2 b/squashfs-root/usr/share/alsa/ucm/broxton-rt298/Hdmi2 new file mode 100644 index 0000000..764f8b9 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/broxton-rt298/Hdmi2 @@ -0,0 +1,14 @@ +# Usecase for device HDMI2/Display Port stereo playback on Intel Broxton platforms +# For Audio in I2S mode + +SectionDevice."Hdmi2" { + Comment "HDMI/Display Port 2 Stereo" + + Value { + PlaybackPCM "hw:broxtonrt298,5" + PlaybackChannels "2" + PlaybackPriority "4" + JackControl "HDMI/DP, pcm=5 Jack" + } +} + diff --git a/squashfs-root/usr/share/alsa/ucm/broxton-rt298/HiFi b/squashfs-root/usr/share/alsa/ucm/broxton-rt298/HiFi new file mode 100644 index 0000000..2e2d6fe --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/broxton-rt298/HiFi @@ -0,0 +1,129 @@ +# Usecase for stereo playback Speaker and Headset, Recording on DMIC and Headset MIC. +# For Audio in I2S mode on Intel Broxton platforms + +SectionVerb { + + EnableSequence [ + cdev "hw:broxtonrt298" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 1" + ] + + DisableSequence [ + cdev "hw:broxtonrt298" + ] + + Value { + TQ "HiFi" + CapturePCM "hw:broxtonrt298,1" + PlaybackPCM "hw:broxtonrt298,0" + } +} + +SectionDevice."dmiccap" { + Comment "DMIC Stereo" + + ConflictingDevice [ + "Headset" + ] + + EnableSequence [ + + cdev "hw:broxtonrt298" + exec "echo broxtonrt298 dmiccap called" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 1" + cset "name='media0_out mo codec0_in mi Switch' 0" + cset "name='Mic Jack Switch' 0" + + ] + + DisableSequence [ + cdev "hw:broxtonrt298" + cset "name='media0_out mo codec0_in mi Switch' 1" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 0" + cset "name='Mic Jack Switch' 1" + cset "name='ADC 0 Mux' 0" + ] + Value { + CaptureChannels "2" + CapturePriority "2" + } +} + +SectionDevice."Headphones" { + Comment "Headphones" + + ConflictingDevice [ + "Speaker" + ] + EnableSequence [ + cdev "hw:broxtonrt298" + exec "echo broxtonrt298 Headphone called" + cset "name='HPO L Switch' 1" + cset "name='HPO R Switch' 1" + cset "name='Headphone Jack Switch' 1" + cset "name='Speaker Playback Switch' 0,0" + ] + + DisableSequence [ + cdev "hw:broxtonrt298" + ] + Value { + PlaybackChannels "2" + PlaybackPriority "1" + JackControl "Headphone Jack" + JackHWMute "Speaker" + } +} + +SectionDevice."Speaker" { + Comment "Speaker" + + ConflictingDevice [ + "Headphones" + ] + EnableSequence [ + cdev "hw:broxtonrt298" + exec "echo broxtonrt298 speaker called" + cset "name='SPO Switch' 1" + cset "name='Speaker Playback Switch' 1,1" + cset "name='Speaker Switch' 1" + cset "name='HPO L Switch' 0" + cset "name='HPO R Switch' 0" + ] + + DisableSequence [ + ] + Value { + PlaybackChannels "2" + PlaybackPriority "1" + JackHWMute "Headphones" + } +} + +SectionDevice."Headset" { + Comment "Headset Mic" + + ConflictingDevice [ + "dmiccap" + ] + EnableSequence [ + cdev "hw:broxtonrt298" + exec "echo broxtonrt298 Headset called" + cset "name='media0_out mo codec0_in mi Switch' 1" + cset "name='ADC0 Capture Volume' 105,105" + cset "name='ADC 0 Mux' 0" + cset "name='Mic Jack Switch' 1" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 0" + ] + + DisableSequence [ + cdev "hw:broxtonrt298" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 1" + cset "name='media0_out mo codec0_in mi Switch' 0" + ] + Value { + CaptureChannels "2" + CapturePriority "2" + JackControl "Mic Jack" + } +} diff --git a/squashfs-root/usr/share/alsa/ucm/broxton-rt298/broxton-rt298.conf b/squashfs-root/usr/share/alsa/ucm/broxton-rt298/broxton-rt298.conf new file mode 100644 index 0000000..3f3d0be --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/broxton-rt298/broxton-rt298.conf @@ -0,0 +1,58 @@ +# UCM for Intel Broxton platforms +# For Audio in I2S mode + +SectionUseCase."HiFi" { + File "HiFi" + Comment "Play and record HiFi quality Music" +} + +SectionUseCase."Hdmi1" { + File "Hdmi1" + Comment "Play on Hdmi/DP 1" +} + +SectionUseCase."Hdmi2" { + File "Hdmi2" + Comment "Play on Hdmi/DP 2" +} + +ValueDefaults { + PlaybackCTL "hw:broxtonrt298" + CaptureCTL "hw:broxtonrt298" + CaptureChannels "2" + CapturePriority "2" +} + +SectionDefaults [ + cdev "hw:broxtonrt298" + exec "echo broxtonrt298 CONF Defaults" + cset "name='Headphone Jack Switch' 1" + cset "name='Speaker Switch' 1" + cset "name='Speaker Playback Switch' 0,0" + cset "name='Front DAC Switch' 1" + cset "name='Front RECMIX Switch' 0" + cset "name='Mic Jack Switch' 1" + cset "name='ADC 0 Mux' 2" + cset "name='ADC 1 Mux' 0" + cset "name='DAC0 Playback Volume' 100,100" + cset "name='HPO L Switch' 0" + cset "name='HPO Mux' 0" + cset "name='HPO R Switch' 0" + cset "name='Pin 5 Mux' 1" + cset "name='Pin 6 Mux' 2" + cset "name='Pin 7 Mux' 3" + cset "name='RECMIX Beep Switch' 0" + cset "name='RECMIX Line1 Switch' 0" + cset "name='RECMIX Mic1 Switch' 0" + cset "name='SPK Mux' 0" + cset "name='SPO Switch' 1" + cset "name='codec0_out mo codec0_in mi Switch' 0" + cset "name='codec0_out mo dmic01_hifi_in mi Switch' 0" + cset "name='codec0_out mo media0_in mi Switch' 1" + cset "name='codec1_out mo codec0_in mi Switch' 0" + cset "name='codec1_out mo dmic01_hifi_in mi Switch' 0" + cset "name='codec1_out mo media0_in mi Switch' 0" + cset "name='media0_out mo codec0_in mi Switch' 1" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 1" + cset "name='media0_out mo media0_in mi Switch' 0" +] diff --git a/squashfs-root/usr/share/alsa/ucm/bytcr-rt5651/HiFi.conf b/squashfs-root/usr/share/alsa/ucm/bytcr-rt5651/HiFi.conf new file mode 100644 index 0000000..8ded2d5 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/bytcr-rt5651/HiFi.conf @@ -0,0 +1,127 @@ +# Adapted from https://github.com/plbossart/UCM/tree/master/bytcr-rt5651 + +SectionVerb { + EnableSequence [ + cdev "hw:bytcrrt5651" + exec "echo HiFi enable sequence" + ] + + DisableSequence [ + cdev "hw:bytcrrt5651" + exec "echo HiFi disable sequence" + ] + + Value { + PlaybackPCM "hw:bytcrrt5651" + CapturePCM "hw:bytcrrt5651" + } +} + +SectionDevice."Headphones" { + Comment "Headphones playback" + + ConflictingDevice [ + "Speaker" + ] + + EnableSequence [ + cdev "hw:bytcrrt5651" + exec "echo Headphones playback enable sequence" + cset "name='Headphone Switch' on" + cset "name='HPO L Playback Switch' on" + cset "name='HPO R Playback Switch' on" + cset "name='HP Playback Volume' 100" + ] + + DisableSequence [ + cdev "hw:bytcrrt5651" + exec "echo Headphones playback disable sequence" + cset "name='Headphone Switch' off" + cset "name='HPO L Playback Switch' off" + cset "name='HPO R Playback Switch' off" + cset "name='HP Playback Volume' 0" + ] + + Value { + PlaybackChannels "2" + JackControl "Headphone Jack" + } +} + +SectionDevice."Speaker" { + Comment "Speaker playback" + + ConflictingDevice [ + "Headphones" + ] + + EnableSequence [ + cdev "hw:bytcrrt5651" + exec "echo Speaker enable sequence" + cset "name='Speaker Switch' on" + ] + + DisableSequence [ + cdev "hw:bytcrrt5651" + exec "echo Speaker disable sequence" + cset "name='Speaker Switch' off" + ] + + Value { + PlaybackChannels "2" + } +} + +SectionDevice."Handset" { + Comment "Handset Microphone" + + ConflictingDevice [ + "Mainmic" + ] + + EnableSequence [ + cdev "hw:bytcrrt5651" + exec "echo Handset Microphone enable sequence" + cset "name='RECMIXL BST1 Switch' on" + cset "name='RECMIXR BST1 Switch' on" + ] + + DisableSequence [ + cdev "hw:bytcrrt5651" + exec "echo Handset Microphone disable sequence" + cset "name='RECMIXL BST1 Switch' off" + cset "name='RECMIXR BST1 Switch' off" + ] + + Value { + CaptureChannels "2" + JackControl "Headset Mic Jack" + } +} + + +SectionDevice."Mainmic" { + Comment "Main Microphone" + + ConflictingDevice [ + "Handset" + ] + + EnableSequence [ + cdev "hw:bytcrrt5651" + exec "echo Main Microphone enable sequence" + cset "name='RECMIXL BST2 Switch' on" + cset "name='RECMIXR BST2 Switch' on" + ] + + DisableSequence [ + cdev "hw:bytcrrt5651" + exec "echo Main Microphone disable sequence" + cset "name='RECMIXL BST2 Switch' off" + cset "name='RECMIXR BST2 Switch' off" + ] + + Value { + CaptureChannels "2" + } +} diff --git a/squashfs-root/usr/share/alsa/ucm/bytcr-rt5651/bytcr-rt5651.conf b/squashfs-root/usr/share/alsa/ucm/bytcr-rt5651/bytcr-rt5651.conf new file mode 100644 index 0000000..069427b --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/bytcr-rt5651/bytcr-rt5651.conf @@ -0,0 +1,140 @@ +# Adapted from https://github.com/plbossart/UCM/tree/master/bytcr-rt5651 + +SectionUseCase."HiFi" { + File "HiFi.conf" + Comment "Play HiFi quality Music" +} + +SectionDefaults [ + cdev "hw:bytcrrt5651" + + # media mixer settings + # compress + cset "name='media0_in Gain 0 Switch' on" + cset "name='media0_in Gain 0 Volume' 0" + # normal + cset "name='media1_in Gain 0 Switch' on" + cset "name='media1_in Gain 0 Volume' 0" + # swm loopback + cset "name='media2_in Gain 0 Switch' off" + cset "name='media2_in Gain 0 Volume' 0%" + # deep buffer + cset "name='media3_in Gain 0 Switch' on" + cset "name='media3_in Gain 0 Volume' 0" + cset "name='media0_out mix 0 media0_in Switch' on" + cset "name='media0_out mix 0 media1_in Switch' on" + cset "name='media0_out mix 0 media2_in Switch' off" + cset "name='media0_out mix 0 media3_in Switch' on" + cset "name='media1_out mix 0 media0_in Switch' off" + cset "name='media1_out mix 0 media1_in Switch' off" + cset "name='media1_out mix 0 media2_in Switch' off" + cset "name='media1_out mix 0 media3_in Switch' off" + cset "name='pcm0_in Gain 0 Switch' on" + cset "name='pcm0_in Gain 0 Volume' 0" + cset "name='pcm1_in Gain 0 Switch' off" + cset "name='pcm1_in Gain 0 Volume' 0%" + + # codec0_out settings + cset "name='codec_out0 mix 0 codec_in0 Switch' off" + cset "name='codec_out0 mix 0 codec_in1 Switch' off" + cset "name='codec_out0 mix 0 media_loop1_in Switch' off" + cset "name='codec_out0 mix 0 media_loop2_in Switch' off" + cset "name='codec_out0 mix 0 pcm0_in Switch' on" + cset "name='codec_out0 mix 0 pcm1_in Switch' off" + cset "name='codec_out0 mix 0 sprot_loop_in Switch' off" + cset "name='codec_out0 Gain 0 Switch' on" + cset "name='codec_out0 Gain 0 Volume' 0" + + # input settings + # pcm1_out settings + cset "name='codec_in0 Gain 0 Switch' on" + cset "name='codec_in0 Gain 0 Volume' 0" + cset "name='pcm1_out mix 0 codec_in0 Switch' on" + cset "name='pcm1_out mix 0 codec_in1 Switch' off" + cset "name='pcm1_out mix 0 media_loop1_in Switch' off" + cset "name='pcm1_out mix 0 media_loop2_in Switch' off" + cset "name='pcm1_out mix 0 pcm0_in Switch' off" + cset "name='pcm1_out mix 0 pcm1_in Switch' off" + cset "name='pcm1_out mix 0 sprot_loop_in Switch' off" + cset "name='pcm1_out Gain 0 Switch' on" + cset "name='pcm1_out Gain 0 Volume' 0" + + # disable codec_out1 + cset "name='codec_out1 mix 0 codec_in0 Switch' off" + cset "name='codec_out1 mix 0 codec_in1 Switch' off" + cset "name='codec_out1 mix 0 media_loop1_in Switch' off" + cset "name='codec_out1 mix 0 media_loop2_in Switch' off" + cset "name='codec_out1 mix 0 pcm0_in Switch' off" + cset "name='codec_out1 mix 0 pcm1_in Switch' off" + cset "name='codec_out1 mix 0 sprot_loop_in Switch' off" + cset "name='codec_out1 Gain 0 Switch' off" + cset "name='codec_out1 Gain 0 Volume' 0%" + + # disable codec_in1 + cset "name='codec_in1 Gain 0 Switch' off" + cset "name='codec_in1 Gain 0 Volume' 0%" + + # disable all loops + cset "name='media_loop1_out mix 0 codec_in0 Switch' off" + cset "name='media_loop1_out mix 0 codec_in1 Switch' off" + cset "name='media_loop1_out mix 0 media_loop1_in Switch' off" + cset "name='media_loop1_out mix 0 media_loop2_in Switch' off" + cset "name='media_loop1_out mix 0 pcm0_in Switch' off" + cset "name='media_loop1_out mix 0 pcm1_in Switch' off" + cset "name='media_loop1_out mix 0 sprot_loop_in Switch' off" + cset "name='media_loop2_out mix 0 codec_in0 Switch' off" + cset "name='media_loop2_out mix 0 codec_in1 Switch' off" + cset "name='media_loop2_out mix 0 media_loop1_in Switch' off" + cset "name='media_loop2_out mix 0 media_loop2_in Switch' off" + cset "name='media_loop2_out mix 0 pcm0_in Switch' off" + cset "name='media_loop2_out mix 0 pcm1_in Switch' off" + cset "name='media_loop2_out mix 0 sprot_loop_in Switch' off" + cset "name='sprot_loop_out mix 0 codec_in0 Switch' off" + cset "name='sprot_loop_out mix 0 codec_in1 Switch' off" + cset "name='sprot_loop_out mix 0 media_loop1_in Switch' off" + cset "name='sprot_loop_out mix 0 media_loop2_in Switch' off" + cset "name='sprot_loop_out mix 0 pcm0_in Switch' off" + cset "name='sprot_loop_out mix 0 pcm1_in Switch' off" + cset "name='sprot_loop_out mix 0 sprot_loop_in Switch' off" + + # default state + cset "name='ADC Capture Volume' 126" + cset "name='HP Playback Volume' 0" + cset "name='HPO L Playback Switch' off" + cset "name='HPO MIX DAC1 Switch' on" + cset "name='HPO MIX HPVOL Switch' on" + cset "name='HPO R Playback Switch' off" + cset "name='HPOVOL L Switch' on" + cset "name='HPOVOL R Switch' on" + cset "name='IF1 ASRC Switch' on" + cset "name='IN Capture Volume' 27" + cset "name='IN2 Boost' 1" + cset "name='IN1 Boost' 1" + cset "name='LOUT L Playback Switch' on" + cset "name='LOUT MIX DAC L1 Switch' on" + cset "name='LOUT MIX DAC R1 Switch' on" + cset "name='LOUT R Playback Switch' on" + cset "name='OUT Playback Volume' 33" + cset "name='Stereo DAC MIXL DAC L1 Switch' on" + cset "name='Stereo DAC MIXR DAC R1 Switch' on" + cset "name='Stereo1 ADC MIXR ADC1 Switch' on" + cset "name='Stereo1 ADC MIXR ADC2 Switch' on" + cset "name='Stereo2 ADC MIXL ADC1 Switch' on" + cset "name='Stereo2 ADC MIXL ADC2 Switch' on" + cset "name='Stereo2 ADC MIXR ADC1 Switch' on" + cset "name='Stereo2 ADC MIXR ADC2 Switch' on" + cset "name='Headphone Switch' off" + cset "name='Speaker Switch' off" + + # input + cset "name='Stereo1 ADC L1 Mux' ADC" + cset "name='Stereo1 ADC R1 Mux' ADC" + cset "name='Stereo1 ADC MIXL ADC1 Switch' on" + cset "name='Stereo1 ADC MIXR ADC1 Switch' on" + cset "name='RECMIXL BST1 Switch' off" + cset "name='RECMIXR BST1 Switch' off" + cset "name='RECMIXL BST3 Switch' off" + cset "name='RECMIXR BST3 Switch' off" + cset "name='RECMIXL BST2 Switch' off" + cset "name='RECMIXR BST2 Switch' off" +] diff --git a/squashfs-root/usr/share/alsa/ucm/chtrt5645/HiFi.conf b/squashfs-root/usr/share/alsa/ucm/chtrt5645/HiFi.conf new file mode 100644 index 0000000..0c2c83c --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/chtrt5645/HiFi.conf @@ -0,0 +1,209 @@ +SectionVerb { + # ALSA PCM + Value { + TQ "HiFi" + + # ALSA PCM device for HiFi + PlaybackPCM "hw:chtrt5645,0" + CapturePCM "hw:chtrt5645,0" + } + + EnableSequence [ + cdev "hw:chtrt5645" + + # Enable audio output path + cset "name='codec_out1 mix 0 pcm0_in Switch' on" + cset "name='media0_out mix 0 media1_in Switch' on" + + cset "name='media1_in Gain 0 Ramp Delay' 50" + cset "name='media1_in Gain 0 Switch' on" + cset "name='media1_in Gain 0 Volume' 80% 80%" + + cset "name='pcm0_in Gain 0 Ramp Delay' 50" + cset "name='pcm0_in Gain 0 Switch' on" + cset "name='pcm0_in Gain 0 Volume' 80% 80%" + + cset "name='codec_out1 Gain 0 Ramp Delay' 50" + cset "name='codec_out1 Gain 0 Switch' on" + cset "name='codec_out1 Gain 0 Volume' 70% 70%" + + # Enable audio input path + cset "name='pcm1_out mix 0 media_loop2_in Switch' on" + cset "name='media_loop2_out mix 0 codec_in0 Switch' on" + + cset "name='codec_in0 Gain 0 Ramp Delay' 50" + cset "name='codec_in0 Gain 0 Switch' on" + cset "name='codec_in0 Gain 0 Volume' 80% 80%" + + cset "name='media_loop2_out Gain 0 Ramp Delay' 50" + cset "name='media_loop2_out Gain 0 Switch' on" + cset "name='media_loop2_out Gain 0 Volume' 80% 80%" + + cset "name='pcm1_out Gain 0 Ramp Delay' 50" + cset "name='pcm1_out Gain 0 Switch' on" + cset "name='pcm1_out Gain 0 Volume' 80% 80%" + + # Output Configuration + cset "name='DAC L2 Mux' 'IF1 DAC'" + cset "name='DAC R2 Mux' 'IF1 DAC'" + cset "name='Mono DAC MIXL DAC L2 Switch' on" + cset "name='Mono DAC MIXR DAC R2 Switch' on" + cset "name='DAC2 Playback Switch' on" + + cset "name='HPOVOL MIXL DAC2 Switch' on" + cset "name='HPOVOL MIXR DAC2 Switch' on" + cset "name='HPO MIX HPVOL Switch' on" + cset "name='HPOVOL L Switch' on" + cset "name='HPOVOL R Switch' on" + + cset "name='SPK MIXL DAC L2 Switch' on" + cset "name='SPK MIXR DAC R2 Switch' on" + cset "name='SPOL MIX SPKVOL L Switch' on" + cset "name='SPOR MIX SPKVOL R Switch' on" + cset "name='SPKVOL L Switch' on" + cset "name='SPKVOL R Switch' on" + + # Input Configuration + cset "name='Stereo1 DMIC Mux' 0" + cset "name='Stereo1 ADC2 Mux' 1" + cset "name='ADC Capture Switch' on" + cset "name='ADC Capture Volume' 31" + cset "name='ADC Boost Capture Volume' 3" + cset "name='Mono ADC Capture Volume' 63" + cset "name='Mono ADC Boost Capture Volume' 2" + cset "name='IN Capture Volume' 63" + cset "name='I2S2 Func Switch' on" + + ] + + DisableSequence [ + cdev "hw:chtrt5645" + + # Disable audio output path + cset "name='codec_out1 mix 0 pcm0_in Switch' off" + cset "name='media0_out mix 0 media1_in Switch' off" + + cset "name='media1_in Gain 0 Switch' off" + cset "name='pcm0_in Gain 0 Switch' off" + cset "name='codec_out1 Gain 0 Switch' off" + + # Disable audio input path + cset "name='pcm1_out mix 0 media_loop2_in Switch' off" + cset "name='media_loop2_out mix 0 codec_in0 Switch' off" + + cset "name='media_loop2_out Gain 0 Switch' off" + cset "name='pcm1_out Gain 0 Switch' off" + cset "name='codec_in0 Gain 0 Switch' off" + ] +} + +SectionDevice."Speaker" { + Comment "Speaker" + + Value { + PlaybackChannels "2" + } + + ConflictingDevice [ + "Headphone" + ] + + EnableSequence [ + cdev "hw:chtrt5645" + + cset "name='Ext Spk Switch' on" + cset "name='Speaker Channel Switch' on" + cset "name='Speaker Playback Volume' 39" + ] + + DisableSequence [ + cdev "hw:chtrt5645" + + cset "name='Ext Spk Switch' off" + cset "name='Speaker Channel Switch' off" + ] +} + +SectionDevice."Headphone".0 { + Comment "Headphones" + + Value { + PlaybackChannels "2" + JackControl "Headphone Jack" + JackHWMute "Speaker" + } + + ConflictingDevice [ + "Speaker" + ] + + EnableSequence [ + cdev "hw:chtrt5645" + + cset "name='Headphone Switch' on" + cset "name='Headphone Channel Switch' on" + cset "name='Headphone Playback Volume' 39" + ] + + DisableSequence [ + cdev "hw:chtrt5645" + + cset "name='Headphone Switch' off" + cset "name='Headphone Channel Switch' off" + ] +} + +SectionDevice."Mic".0 { + Comment "Internal Microphone" + + Value { + CaptureChannels "2" + CapturePriority "150" + } + + EnableSequence [ + cdev "hw:chtrt5645" + + cset "name='Int Mic Switch' on" + cset "name='Sto1 ADC MIXL ADC2 Switch' on" + cset "name='Sto1 ADC MIXR ADC2 Switch' on" + ] + + DisableSequence [ + cdev "hw:chtrt5645" + + cset "name='Sto1 ADC MIXL ADC2 Switch' off" + cset "name='Sto1 ADC MIXR ADC2 Switch' off" + cset "name='Int Mic Switch' off" + ] +} + +SectionDevice."HSMic".0 { + Comment "Headset Microphone" + + Value { + CaptureChannels "2" + JackControl "Headset Mic Jack" + JackHWMute "Mic" + } + + EnableSequence [ + cdev "hw:chtrt5645" + + cset "name='Headset Mic Switch' on" + cset "name='RECMIXL BST1 Switch' on" + cset "name='RECMIXR BST1 Switch' on" + cset "name='Sto1 ADC MIXL ADC1 Switch' on" + cset "name='Sto1 ADC MIXR ADC1 Switch' on" + ] + + DisableSequence [ + cdev "hw:chtrt5645" + + cset "name='Headset Mic Switch' off" + cset "name='RECMIXL BST1 Switch' off" + cset "name='RECMIXR BST1 Switch' off" + cset "name='Sto1 ADC MIXL ADC1 Switch' off" + cset "name='Sto1 ADC MIXR ADC1 Switch' off" + ] +} diff --git a/squashfs-root/usr/share/alsa/ucm/chtrt5645/chtrt5645.conf b/squashfs-root/usr/share/alsa/ucm/chtrt5645/chtrt5645.conf new file mode 100644 index 0000000..dfc36c8 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/chtrt5645/chtrt5645.conf @@ -0,0 +1,5 @@ +Comment "Intel SoC Audio Device" +SectionUseCase."HiFi" { + File "HiFi.conf" + Comment "Default" +} diff --git a/squashfs-root/usr/share/alsa/ucm/skylake-rt286/Hdmi1 b/squashfs-root/usr/share/alsa/ucm/skylake-rt286/Hdmi1 new file mode 100644 index 0000000..0e00fc8 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/skylake-rt286/Hdmi1 @@ -0,0 +1,20 @@ +# Usecase for device HDMI1/Display Port stereo playback on Intel SKYLAKE/KABYLAKE platforms +# For Audio in I2S mode + +SectionDevice."Hdmi1" { + Comment "HDMI/Display Port 1 Stereo" + + EnableSequence [ + ] + + DisableSequence [ + ] + + Value { + PlaybackPCM "hw:skylakert286,4" + PlaybackChannels "2" + PlaybackPriority "3" + JackControl "HDMI/DP, pcm=4 Jack" + } +} + diff --git a/squashfs-root/usr/share/alsa/ucm/skylake-rt286/Hdmi2 b/squashfs-root/usr/share/alsa/ucm/skylake-rt286/Hdmi2 new file mode 100644 index 0000000..89b31aa --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/skylake-rt286/Hdmi2 @@ -0,0 +1,20 @@ +# Usecase for device HDMI2/Display Port stereo playback on Intel SKYLAKE/KABYLAKE platforms +# For Audio in I2S mode + +SectionDevice."Hdmi2" { + Comment "HDMI/Display Port 2 Stereo" + + EnableSequence [ + ] + + DisableSequence [ + ] + + Value { + PlaybackPCM "hw:skylakert286,5" + PlaybackChannels "2" + PlaybackPriority "4" + JackControl "HDMI/DP, pcm=5 Jack" + } +} + diff --git a/squashfs-root/usr/share/alsa/ucm/skylake-rt286/HiFi b/squashfs-root/usr/share/alsa/ucm/skylake-rt286/HiFi new file mode 100644 index 0000000..41638f4 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/skylake-rt286/HiFi @@ -0,0 +1,129 @@ +# Usecase for stereo playback Speaker and Headset, Recording on DMIC and Headset MIC. +# For Audio in I2S mode on Intel SKYLAKE/KABYLAKE platforms + +SectionVerb { + + EnableSequence [ + cdev "hw:skylakert286" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 1" + ] + + DisableSequence [ + cdev "hw:skylakert286" + ] + + Value { + TQ "HiFi" + CapturePCM "hw:skylakert286,1" + PlaybackPCM "hw:skylakert286,0" + } +} + +SectionDevice."Headphones" { + Comment "Headphones" + + ConflictingDevice [ + "Speaker" + ] + EnableSequence [ + cdev "hw:skylakert286" + cset "name='HPO L Switch' 1" + cset "name='HPO R Switch' 1" + cset "name='Headphone Jack Switch' 1" + cset "name='Speaker Playback Switch' 0,0" + ] + + DisableSequence [ + ] + Value { + PlaybackChannels "2" + PlaybackPriority "1" + JackControl "Headphone Jack" + JackHWMute "Speaker" + } +} + +SectionDevice."Speaker" { + Comment "Speaker" + + ConflictingDevice [ + "Headphones" + ] + EnableSequence [ + cdev "hw:skylakert286" + cset "name='SPO Switch' 1" + cset "name='Speaker Playback Switch' 1,1" + cset "name='Speaker Switch' 1" + cset "name='HPO L Switch' 0" + cset "name='HPO R Switch' 0" + ] + + DisableSequence [ + ] + Value { + PlaybackChannels "2" + PlaybackPriority "1" + JackHWMute "Headphones" + } +} + +SectionDevice."Headset" { + Comment "Headset Mic" + + ConflictingDevice [ + "dmiccap" + ] + EnableSequence [ + cdev "hw:skylakert286" + cset "name='media0_out mo codec0_in mi Switch' 1" + cset "name='ADC0 Capture Switch' 1,1" + cset "name='ADC 0 Mux' 0" + cset "name='Mic Jack Switch' 1" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 0" + ] + + DisableSequence [ + cdev "hw:skylakert286" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 1" + cset "name='media0_out mo codec0_in mi Switch' 0" + ] + Value { + CaptureChannels "2" + CapturePriority "2" + JackControl "Mic Jack" + } +} + + +SectionDevice."dmiccap" { + Comment "DMIC Stereo" + + ConflictingDevice [ + "Headpset" + ] + + EnableSequence [ + + cdev "hw:skylakert286" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 1" + cset "name='media0_out mo codec0_in mi Switch' 0" + cset "name='ADC0 Capture Switch' 0,0" + cset "name='Mic Jack Switch' 0" + cset "name='ADC 0 Mux' 0" + + ] + + DisableSequence [ + cdev "hw:skylakert286" + cset "name='media0_out mo codec0_in mi Switch' 1" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 0" + cset "name='ADC0 Capture Switch' 1,1" + cset "name='Mic Jack Switch' 1" + cset "name='ADC 0 Mux' 2" + ] + Value { + CaptureChannels "2" + CapturePriority "2" + } +} + diff --git a/squashfs-root/usr/share/alsa/ucm/skylake-rt286/skylake-rt286.conf b/squashfs-root/usr/share/alsa/ucm/skylake-rt286/skylake-rt286.conf new file mode 100644 index 0000000..3e43228 --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/skylake-rt286/skylake-rt286.conf @@ -0,0 +1,60 @@ +# UCM for Intel SKYLAKE/KABYLAKE platforms +# For Audio in I2S mode + +SectionUseCase."HiFi" { + File "HiFi" + Comment "Play and record HiFi quality Music" +} + +SectionUseCase."Hdmi1" { + File "Hdmi1" + Comment "Play on Hdmi/DP 1" +} + +SectionUseCase."Hdmi2" { + File "Hdmi2" + Comment "Play on Hdmi/DP 2" +} + +ValueDefaults { + PlaybackCTL "hw:skylakert286" + CaptureCTL "hw:skylakert286" + CaptureChannels "2" + CapturePriority "2" +} + +SectionDefaults [ + cdev "hw:skylakert286" + cset "name='Headphone Jack Switch' 1" + cset "name='Speaker Switch' 1" + cset "name='Speaker Playback Switch' 0,0" + cset "name='Front DAC Switch' 1" + cset "name='Front RECMIX Switch' 0" + cset "name='Mic Jack Switch' 1" + cset "name='ADC 0 Mux' 2" + cset "name='ADC 1 Mux' 0" + cset "name='ADC0 Capture Volume' 105,105" + cset "name='ADC0 Capture Switch' 1,1" + cset "name='AMIC Volume' 3" + cset "name='DAC0 Playback Volume' 100,100" + cset "name='HPO L Switch' 0" + cset "name='HPO Mux' 0" + cset "name='HPO R Switch' 0" + cset "name='Pin 5 Mux' 1" + cset "name='Pin 6 Mux' 2" + cset "name='Pin 7 Mux' 3" + cset "name='RECMIX Beep Switch' 0" + cset "name='RECMIX Line1 Switch' 0" + cset "name='RECMIX Mic1 Switch' 0" + cset "name='SPK Mux' 0" + cset "name='SPO Switch' 1" + cset "name='codec0_out mo codec0_in mi Switch' 0" + cset "name='codec0_out mo dmic01_hifi_in mi Switch' 0" + cset "name='codec0_out mo media0_in mi Switch' 1" + cset "name='codec1_out mo codec0_in mi Switch' 0" + cset "name='codec1_out mo dmic01_hifi_in mi Switch' 0" + cset "name='codec1_out mo media0_in mi Switch' 0" + cset "name='media0_out mo codec0_in mi Switch' 1" + cset "name='media0_out mo dmic01_hifi_in mi Switch' 1" + cset "name='media0_out mo media0_in mi Switch' 0" +] diff --git a/squashfs-root/usr/share/alsa/ucm/tegraalc5632/tegraalc5632.conf b/squashfs-root/usr/share/alsa/ucm/tegraalc5632/tegraalc5632.conf new file mode 100644 index 0000000..958fade --- /dev/null +++ b/squashfs-root/usr/share/alsa/ucm/tegraalc5632/tegraalc5632.conf @@ -0,0 +1,30 @@ +# UCM configuration for tegra-alc5632 + +ValueDefaults { + PlaybackCTL "hw:0" + CaptureCTL "hw:0" +} + +SectionDefaults [ + exec "echo Im setting defaults for tegra-alc5632" + cdev "hw:tegraalc5632" + cset "name='Master Playback Switch' on" + cset "name='Master Playback Volume' 44,44" + cset "name='Headphone Playback Switch' on" + cset "name='Headphone Playback Volume' 21,21" + cset "name='Speaker Playback Switch' on" + cset "name='Speaker Playback Volume' 21,21" + cset "name='Speaker Mix DAC2SPK Playback Switch' on" + cset "name='SpeakerOut Mux' 2" + cset "name='SpeakerOut N Mux' LN/-R" + cset "name='AB-D Amp Mux' 0" + cset "name='HPL Mix DACL2HP Playback Switch' on" + cset "name='HPR Mix DACR2HP Playback Switch' on" + cset "name='Int Spk Switch' on" + cset "name='Left Headphone Mux' 1" + cset "name='Right Headphone Mux' 1" + cset "name='DMIC En Capture Switch' on" + cset "name='DMIC PreFilter Capture Switch' on" + cset "name='DMIC Boost Capture Volume' 4" + cset "name='Rec Capture Volume' 24" +] diff --git a/squashfs-root/usr/share/dbus-1/session.conf b/squashfs-root/usr/share/dbus-1/session.conf new file mode 100644 index 0000000..323aad4 --- /dev/null +++ b/squashfs-root/usr/share/dbus-1/session.conf @@ -0,0 +1,80 @@ + + + + + + session + + + + + unix:tmpdir=/tmp + + + EXTERNAL + + + + + + + + + + + + + + /etc/dbus-1/session.conf + + + session.d + + /etc/dbus-1/session.d + + + /etc/dbus-1/session-local.conf + + contexts/dbus_contexts + + + + + 1000000000 + 250000000 + 1000000000 + 250000000 + 1000000000 + + 120000 + 240000 + 150000 + 100000 + 10000 + 100000 + 10000 + 50000 + 50000 + 50000 + + diff --git a/squashfs-root/usr/share/dbus-1/system.conf b/squashfs-root/usr/share/dbus-1/system.conf new file mode 100644 index 0000000..fc5fde3 --- /dev/null +++ b/squashfs-root/usr/share/dbus-1/system.conf @@ -0,0 +1,140 @@ + + + + + + + + + system + + + dbus + + + + + + + + + /usr/libexec/dbus-daemon-launch-helper + + + /var/run/messagebus.pid + + + + + + EXTERNAL + + + unix:path=/var/run/dbus/system_bus_socket + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /etc/dbus-1/system.conf + + + + + + + + + + + + + + + + + + + + + system.d + + /etc/dbus-1/system.d + + + /etc/dbus-1/system-local.conf + + contexts/dbus_contexts + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-autohint.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-autohint.conf new file mode 100644 index 0000000..f9032ba --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-autohint.conf @@ -0,0 +1,14 @@ + + + + + + + true + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-full.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-full.conf new file mode 100644 index 0000000..27d8229 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-full.conf @@ -0,0 +1,13 @@ + + + + + + hintfull + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-medium.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-medium.conf new file mode 100644 index 0000000..e34ab5b --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-medium.conf @@ -0,0 +1,13 @@ + + + + + + hintmedium + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-none.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-none.conf new file mode 100644 index 0000000..0b3810d --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-none.conf @@ -0,0 +1,13 @@ + + + + + + hintnone + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-slight.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-slight.conf new file mode 100644 index 0000000..c244ac0 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-hinting-slight.conf @@ -0,0 +1,13 @@ + + + + + + hintslight + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-no-sub-pixel.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-no-sub-pixel.conf new file mode 100644 index 0000000..635847c --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-no-sub-pixel.conf @@ -0,0 +1,14 @@ + + + + + + + none + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf new file mode 100644 index 0000000..b4e9cb4 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf @@ -0,0 +1,83 @@ + + + + + + + + false + + + + pixelsize + pixelsize + + + + + + + false + + + false + + + true + + + + + pixelsizefixupfactor + 1.2 + + + pixelsizefixupfactor + 0.8 + + + + + + + true + + + 1.0 + + + + + + false + + + 1.0 + + + + matrix + + pixelsizefixupfactor 0 + 0 pixelsizefixupfactor + + + + + + size + pixelsizefixupfactor + + + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-bgr.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-bgr.conf new file mode 100644 index 0000000..1378195 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-bgr.conf @@ -0,0 +1,14 @@ + + + + + + + bgr + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf new file mode 100644 index 0000000..757c3b6 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf @@ -0,0 +1,14 @@ + + + + + + + rgb + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-vbgr.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-vbgr.conf new file mode 100644 index 0000000..c807e5c --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-vbgr.conf @@ -0,0 +1,14 @@ + + + + + + + vbgr + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-vrgb.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-vrgb.conf new file mode 100644 index 0000000..b5985e0 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-sub-pixel-vrgb.conf @@ -0,0 +1,14 @@ + + + + + + + vrgb + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/10-unhinted.conf b/squashfs-root/usr/share/fontconfig/conf.avail/10-unhinted.conf new file mode 100644 index 0000000..a25e3b1 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/10-unhinted.conf @@ -0,0 +1,14 @@ + + + + + + + false + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf b/squashfs-root/usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf new file mode 100644 index 0000000..9d7d11f --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf @@ -0,0 +1,16 @@ + + + + + + + + lcddefault + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/11-lcdfilter-legacy.conf b/squashfs-root/usr/share/fontconfig/conf.avail/11-lcdfilter-legacy.conf new file mode 100644 index 0000000..7e2b256 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/11-lcdfilter-legacy.conf @@ -0,0 +1,16 @@ + + + + + + + + lcdlegacy + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/11-lcdfilter-light.conf b/squashfs-root/usr/share/fontconfig/conf.avail/11-lcdfilter-light.conf new file mode 100644 index 0000000..0dd0a90 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/11-lcdfilter-light.conf @@ -0,0 +1,16 @@ + + + + + + + + lcdlight + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf b/squashfs-root/usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf new file mode 100644 index 0000000..c9505ca --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf @@ -0,0 +1,48 @@ + + + + + + + + Bitstream Vera Sans + + + 7.5 + + + false + + + + + + Bitstream Vera Serif + + + 7.5 + + + false + + + + + + Bitstream Vera Sans Mono + + + 7.5 + + + false + + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/25-unhint-nonlatin.conf b/squashfs-root/usr/share/fontconfig/conf.avail/25-unhint-nonlatin.conf new file mode 100644 index 0000000..9adffa7 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/25-unhint-nonlatin.conf @@ -0,0 +1,128 @@ + + + + + + + + + Kochi Mincho + + + false + + + + + Kochi Gothic + + + false + + + + + Sazanami Mincho + + + false + + + + + Sazanami Gothic + + + false + + + + + Baekmuk Batang + + + false + + + + + Baekmuk Dotum + + + false + + + + + Baekmuk Gulim + + + false + + + + + Baekmuk Headline + + + false + + + + + AR PL Mingti2L Big5 + + + false + + + + + AR PL ShanHeiSun Uni + + + false + + + + + AR PL KaitiM Big5 + + + false + + + + + AR PL ZenKai Uni + + + false + + + + + AR PL SungtiL GB + + + false + + + + + AR PL KaitiM GB + + + false + + + + + ZYSong18030 + + + false + + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/30-metric-aliases.conf b/squashfs-root/usr/share/fontconfig/conf.avail/30-metric-aliases.conf new file mode 100644 index 0000000..1f0778d --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/30-metric-aliases.conf @@ -0,0 +1,652 @@ + + + + + + + + + + + Nimbus Sans L + + Helvetica + + + + + Nimbus Sans + + Helvetica + + + + + TeX Gyre Heros + + Helvetica + + + + + Nimbus Sans Narrow + + Helvetica Narrow + + + + + TeX Gyre Heros Cn + + Helvetica Narrow + + + + + Nimbus Roman No9 L + + Times + + + + + Nimbus Roman + + Times + + + + + TeX Gyre Termes + + Times + + + + + Nimbus Mono L + + Courier + + + + + Nimbus Mono + + Courier + + + + + Nimbus Mono PS + + Courier + + + + + TeX Gyre Cursor + + Courier + + + + + Avant Garde + + ITC Avant Garde Gothic + + + + + URW Gothic L + + ITC Avant Garde Gothic + + + + + URW Gothic + + ITC Avant Garde Gothic + + + + + TeX Gyre Adventor + + ITC Avant Garde Gothic + + + + + Bookman + + ITC Bookman + + + + + URW Bookman L + + ITC Bookman + + + + + Bookman URW + + ITC Bookman + + + + + URW Bookman + + ITC Bookman + + + + + TeX Gyre Bonum + + ITC Bookman + + + + + Bookman Old Style + + ITC Bookman + + + + + Zapf Chancery + + ITC Zapf Chancery + + + + + URW Chancery L + + ITC Zapf Chancery + + + + + Chancery URW + + ITC Zapf Chancery + + + + + Z003 + + ITC Zapf Chancery + + + + + TeX Gyre Chorus + + ITC Zapf Chancery + + + + + URW Palladio L + + Palatino + + + + + Palladio URW + + Palatino + + + + + P052 + + Palatino + + + + + TeX Gyre Pagella + + Palatino + + + + + Palatino Linotype + + Palatino + + + + + Century Schoolbook L + + New Century Schoolbook + + + + + Century SchoolBook URW + + New Century Schoolbook + + + + + C059 + + New Century Schoolbook + + + + + TeX Gyre Schola + + New Century Schoolbook + + + + + Century Schoolbook + + New Century Schoolbook + + + + + + + Arimo + + Arial + + + + + Liberation Sans + + Arial + + + + + Liberation Sans Narrow + + Arial Narrow + + + + + Albany + + Arial + + + + + Albany AMT + + Arial + + + + + Tinos + + Times New Roman + + + + + Liberation Serif + + Times New Roman + + + + + Thorndale + + Times New Roman + + + + + Thorndale AMT + + Times New Roman + + + + + Cousine + + Courier New + + + + + Liberation Mono + + Courier New + + + + + Cumberland + + Courier New + + + + + Cumberland AMT + + Courier New + + + + + Gelasio + + Georgia + + + + + Caladea + + Cambria + + + + + Carlito + + Calibri + + + + + SymbolNeu + + Symbol + + + + + + + + Helvetica + + Arial + + + + + Helvetica Narrow + + Arial Narrow + + + + + Times + + Times New Roman + + + + + Courier + + Courier New + + + + + + + Arial + + Helvetica + + + + + Arial Narrow + + Helvetica Narrow + + + + + Times New Roman + + Times + + + + + Courier New + + Courier + + + + + + + + + + Helvetica + + TeX Gyre Heros + Nimbus Sans + Nimbus Sans L + + + + + Helvetica Narrow + + TeX Gyre Heros Cn + Nimbus Sans Narrow + + + + + Times + + TeX Gyre Termes + Nimbus Roman + Nimbus Roman No9 L + + + + + Courier + + TeX Gyre Cursor + Nimbus Mono PS + Nimbus Mono + Nimbus Mono L + + + + + ITC Avant Garde Gothic + + TeX Gyre Adventor + URW Gothic + URW Gothic L + + + + + ITC Bookman + + Bookman Old Style + TeX Gyre Bonum + URW Bookman + Bookman URW + URW Bookman L + + + + + ITC Zapf Chancery + + TeX Gyre Chorus + Z003 + Chancery URW + URW Chancery L + + + + + Palatino + + Palatino Linotype + TeX Gyre Pagella + P052 + Palladio URW + URW Palladio L + + + + + New Century Schoolbook + + Century Schoolbook + TeX Gyre Schola + C059 + Century SchoolBook URW + Century Schoolbook L + + + + + + Arial + + Arimo + Liberation Sans + Albany + Albany AMT + + + + + Arial Narrow + + Liberation Sans Narrow + + + + + Times New Roman + + Tinos + Liberation Serif + Thorndale + Thorndale AMT + + + + + Courier New + + Cousine + Liberation Mono + Cumberland + Cumberland AMT + + + + + Georgia + + Gelasio + + + + + Cambria + + Caladea + + + + + Calibri + + Carlito + + + + + Symbol + + SymbolNeu + + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/30-urw-aliases.conf b/squashfs-root/usr/share/fontconfig/conf.avail/30-urw-aliases.conf new file mode 100644 index 0000000..cfde071 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/30-urw-aliases.conf @@ -0,0 +1,33 @@ + + + + + + Zapf Dingbats + + D050000L + Dingbats + + + + ITC Zapf Dingbats + + D050000L + Dingbats + + + + + Symbol + + + Standard Symbols PS + + + Standard Symbols L + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/40-nonlatin.conf b/squashfs-root/usr/share/fontconfig/conf.avail/40-nonlatin.conf new file mode 100644 index 0000000..c900fd4 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/40-nonlatin.conf @@ -0,0 +1,231 @@ + + + + + + + + Nazli + serif + + + Lotoos + serif + + + Mitra + serif + + + Ferdosi + serif + + + Badr + serif + + + Zar + serif + + + Titr + serif + + + Jadid + serif + + + Kochi Mincho + serif + + + AR PL SungtiL GB + serif + + + AR PL Mingti2L Big5 + serif + + + MS 明朝 + serif + + + NanumMyeongjo + serif + + + UnBatang + serif + + + Baekmuk Batang + serif + + + MgOpen Canonica + serif + + + Sazanami Mincho + serif + + + AR PL ZenKai Uni + serif + + + ZYSong18030 + serif + + + FreeSerif + serif + + + SimSun + serif + + + + Arshia + sans-serif + + + Elham + sans-serif + + + Farnaz + sans-serif + + + Nasim + sans-serif + + + Sina + sans-serif + + + Roya + sans-serif + + + Koodak + sans-serif + + + Terafik + sans-serif + + + Kochi Gothic + sans-serif + + + AR PL KaitiM GB + sans-serif + + + AR PL KaitiM Big5 + sans-serif + + + MS ゴシック + sans-serif + + + NanumGothic + sans-serif + + + UnDotum + sans-serif + + + Baekmuk Dotum + sans-serif + + + MgOpen Modata + sans-serif + + + Sazanami Gothic + sans-serif + + + AR PL ShanHeiSun Uni + sans-serif + + + ZYSong18030 + sans-serif + + + FreeSans + sans-serif + + + + NSimSun + monospace + + + ZYSong18030 + monospace + + + NanumGothicCoding + monospace + + + FreeMono + monospace + + + + + Homa + fantasy + + + Kamran + fantasy + + + Fantezi + fantasy + + + Tabassom + fantasy + + + + + IranNastaliq + cursive + + + Nafees Nastaleeq + cursive + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/45-latin.conf b/squashfs-root/usr/share/fontconfig/conf.avail/45-latin.conf new file mode 100644 index 0000000..c6696f8 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/45-latin.conf @@ -0,0 +1,273 @@ + + + + + + + + Bitstream Vera Serif + serif + + + Cambria + serif + + + Constantia + serif + + + DejaVu Serif + serif + + + Elephant + serif + + + Garamond + serif + + + Georgia + serif + + + Liberation Serif + serif + + + Luxi Serif + serif + + + MS Serif + serif + + + Nimbus Roman No9 L + serif + + + Nimbus Roman + serif + + + Palatino Linotype + serif + + + Thorndale AMT + serif + + + Thorndale + serif + + + Times New Roman + serif + + + Times + serif + + + + Albany AMT + sans-serif + + + Albany + sans-serif + + + Arial Unicode MS + sans-serif + + + Arial + sans-serif + + + Bitstream Vera Sans + sans-serif + + + Britannic + sans-serif + + + Calibri + sans-serif + + + Candara + sans-serif + + + Century Gothic + sans-serif + + + Corbel + sans-serif + + + DejaVu Sans + sans-serif + + + Helvetica + sans-serif + + + Haettenschweiler + sans-serif + + + Liberation Sans + sans-serif + + + MS Sans Serif + sans-serif + + + Nimbus Sans L + sans-serif + + + Nimbus Sans + sans-serif + + + Luxi Sans + sans-serif + + + Tahoma + sans-serif + + + Trebuchet MS + sans-serif + + + Twentieth Century + sans-serif + + + Verdana + sans-serif + + + + Andale Mono + monospace + + + Bitstream Vera Sans Mono + monospace + + + Consolas + monospace + + + Courier New + monospace + + + Courier + monospace + + + Cumberland AMT + monospace + + + Cumberland + monospace + + + DejaVu Sans Mono + monospace + + + Fixedsys + monospace + + + Inconsolata + monospace + + + Liberation Mono + monospace + + + Luxi Mono + monospace + + + Nimbus Mono L + monospace + + + Nimbus Mono + monospace + + + Nimbus Mono PS + monospace + + + Terminal + monospace + + + + Bauhaus Std + fantasy + + + Cooper Std + fantasy + + + Copperplate Gothic Std + fantasy + + + Impact + fantasy + + + + Comic Sans MS + cursive + + + ITC Zapf Chancery Std + cursive + + + Zapfino + cursive + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/49-sansserif.conf b/squashfs-root/usr/share/fontconfig/conf.avail/49-sansserif.conf new file mode 100644 index 0000000..c6209a7 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/49-sansserif.conf @@ -0,0 +1,21 @@ + + + + + + + sans-serif + + + serif + + + monospace + + + sans-serif + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/50-user.conf b/squashfs-root/usr/share/fontconfig/conf.avail/50-user.conf new file mode 100644 index 0000000..07c9182 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/50-user.conf @@ -0,0 +1,15 @@ + + + + + fontconfig/conf.d + fontconfig/fonts.conf + + ~/.fonts.conf.d + ~/.fonts.conf + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/51-local.conf b/squashfs-root/usr/share/fontconfig/conf.avail/51-local.conf new file mode 100644 index 0000000..ca9fbe1 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/51-local.conf @@ -0,0 +1,6 @@ + + + + + local.conf + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/60-latin.conf b/squashfs-root/usr/share/fontconfig/conf.avail/60-latin.conf new file mode 100644 index 0000000..23ee91b --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/60-latin.conf @@ -0,0 +1,74 @@ + + + + + serif + + Bitstream Vera Serif + DejaVu Serif + Times New Roman + Thorndale AMT + Luxi Serif + Nimbus Roman No9 L + Nimbus Roman + Times + + + + sans-serif + + Bitstream Vera Sans + DejaVu Sans + Verdana + Arial + Albany AMT + Luxi Sans + Nimbus Sans L + Nimbus Sans + Helvetica + Lucida Sans Unicode + BPG Glaho International + Tahoma + + + + monospace + + Bitstream Vera Sans Mono + DejaVu Sans Mono + Inconsolata + Andale Mono + Courier New + Cumberland AMT + Luxi Mono + Nimbus Mono L + Nimbus Mono + Nimbus Mono PS + Courier + + + + + fantasy + + Impact + Copperplate Gothic Std + Cooper Std + Bauhaus Std + + + + + cursive + + ITC Zapf Chancery Std + Zapfino + Comic Sans MS + + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/65-fonts-persian.conf b/squashfs-root/usr/share/fontconfig/conf.avail/65-fonts-persian.conf new file mode 100644 index 0000000..ea00661 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/65-fonts-persian.conf @@ -0,0 +1,419 @@ + + + + + + + + + + + Nesf + Nesf2 + + + Nesf2 + Persian_sansserif_default + + + + + + Nazanin + Nazli + + + Lotus + Lotoos + + + Yaqut + Yaghoot + + + Yaghut + Yaghoot + + + Traffic + Terafik + + + Ferdowsi + Ferdosi + + + Fantezy + Fantezi + + + + + + + + Jadid + Persian_title + + + Titr + Persian_title + + + + + Kamran + + Persian_fantasy + Homa + + + + Homa + + Persian_fantasy + Kamran + + + + Fantezi + Persian_fantasy + + + Tabassom + Persian_fantasy + + + + + Arshia + Persian_square + + + Nasim + Persian_square + + + Elham + + Persian_square + Farnaz + + + + Farnaz + + Persian_square + Elham + + + + Sina + Persian_square + + + + + + + Persian_title + + Titr + Jadid + Persian_serif + + + + + + Persian_fantasy + + Homa + Kamran + Fantezi + Tabassom + Persian_square + + + + + + Persian_square + + Arshia + Elham + Farnaz + Nasim + Sina + Persian_serif + + + + + + + + Elham + + + farsiweb + + + + + + Homa + + + farsiweb + + + + + + Koodak + + + farsiweb + + + + + + Nazli + + + farsiweb + + + + + + Roya + + + farsiweb + + + + + + Terafik + + + farsiweb + + + + + + Titr + + + farsiweb + + + + + + + + + + TURNED-OFF + + + farsiweb + + + + roman + + + + roman + + + + + matrix + 1-0.2 + 01 + + + + + + oblique + + + + + + + + + farsiweb + + + false + + + false + + + false + + + + + + + + + serif + + Nazli + Lotoos + Mitra + Ferdosi + Badr + Zar + + + + + + sans-serif + + Roya + Koodak + Terafik + + + + + + monospace + + + Terafik + + + + + + fantasy + + Homa + Kamran + Fantezi + Tabassom + + + + + + cursive + + IranNastaliq + Nafees Nastaleeq + + + + + + + + + serif + + + 200 + + + 24 + + + Titr + + + + + + + sans-serif + + + 200 + + + 24 + + + Titr + + + + + + + Persian_sansserif_default + + + 200 + + + 24 + + + Titr + + + + + + + + + Persian_sansserif_default + + + Roya + + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/65-khmer.conf b/squashfs-root/usr/share/fontconfig/conf.avail/65-khmer.conf new file mode 100644 index 0000000..f9d06f2 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/65-khmer.conf @@ -0,0 +1,16 @@ + + + + + serif + + Khmer OS" + + + + sans-serif + + Khmer OS" + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/65-nonlatin.conf b/squashfs-root/usr/share/fontconfig/conf.avail/65-nonlatin.conf new file mode 100644 index 0000000..9306f74 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/65-nonlatin.conf @@ -0,0 +1,196 @@ + + + + + serif + + Artsounk + BPG UTF8 M + Kinnari + Norasi + Frank Ruehl + Dror + JG LaoTimes + Saysettha Unicode + Pigiarniq + B Davat + B Compset + Kacst-Qr + Urdu Nastaliq Unicode + Raghindi + Mukti Narrow + malayalam + Sampige + padmaa + Hapax Berbère + MS Mincho + SimSun + PMingLiu + WenQuanYi Zen Hei + WenQuanYi Bitmap Song + AR PL ShanHeiSun Uni + AR PL New Sung + ZYSong18030 + HanyiSong + MgOpen Canonica + Sazanami Mincho + IPAMonaMincho + IPAMincho + Kochi Mincho + AR PL SungtiL GB + AR PL Mingti2L Big5 + AR PL Zenkai Uni + MS 明朝 + ZYSong18030 + NanumMyeongjo + UnBatang + Baekmuk Batang + KacstQura + Frank Ruehl CLM + Lohit Bengali + Lohit Gujarati + Lohit Hindi + Lohit Marathi + Lohit Maithili + Lohit Kashmiri + Lohit Konkani + Lohit Nepali + Lohit Sindhi + Lohit Punjabi + Lohit Tamil + Meera + Lohit Malayalam + Lohit Kannada + Lohit Telugu + Lohit Oriya + LKLUG + + + + sans-serif + + Nachlieli + Lucida Sans Unicode + Yudit Unicode + Kerkis + ArmNet Helvetica + Artsounk + BPG UTF8 M + Waree + Loma + Garuda + Umpush + Saysettha Unicode + JG Lao Old Arial + GF Zemen Unicode + Pigiarniq + B Davat + B Compset + Kacst-Qr + Urdu Nastaliq Unicode + Raghindi + Mukti Narrow + malayalam + Sampige + padmaa + Hapax Berbère + MS Gothic + UmePlus P Gothic + + SimSun + PMingLiu + WenQuanYi Zen Hei + WenQuanYi Bitmap Song + AR PL ShanHeiSun Uni + AR PL New Sung + MgOpen Modata + VL Gothic + IPAMonaGothic + IPAGothic + Sazanami Gothic + Kochi Gothic + AR PL KaitiM GB + AR PL KaitiM Big5 + AR PL ShanHeiSun Uni + AR PL SungtiL GB + AR PL Mingti2L Big5 + MS ゴシック + ZYSong18030 + TSCu_Paranar + NanumGothic + UnDotum + Baekmuk Dotum + Baekmuk Gulim + KacstQura + Lohit Bengali + Lohit Gujarati + Lohit Hindi + Lohit Marathi + Lohit Maithili + Lohit Kashmiri + Lohit Konkani + Lohit Nepali + Lohit Sindhi + Lohit Punjabi + Lohit Tamil + Meera + Lohit Malayalam + Lohit Kannada + Lohit Telugu + Lohit Oriya + LKLUG + + + + monospace + + Miriam Mono + VL Gothic + IPAMonaGothic + IPAGothic + Sazanami Gothic + Kochi Gothic + AR PL KaitiM GB + MS Gothic + UmePlus Gothic + NSimSun + MingLiu + AR PL ShanHeiSun Uni + AR PL New Sung Mono + HanyiSong + AR PL SungtiL GB + AR PL Mingti2L Big5 + ZYSong18030 + NanumGothicCoding + NanumGothic + UnDotum + Baekmuk Dotum + Baekmuk Gulim + TlwgTypo + TlwgTypist + TlwgTypewriter + TlwgMono + Hasida + Mitra Mono + GF Zemen Unicode + Hapax Berbère + Lohit Bengali + Lohit Gujarati + Lohit Hindi + Lohit Marathi + Lohit Maithili + Lohit Kashmiri + Lohit Konkani + Lohit Nepali + Lohit Sindhi + Lohit Punjabi + Lohit Tamil + Meera + Lohit Malayalam + Lohit Kannada + Lohit Telugu + Lohit Oriya + LKLUG + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/69-unifont.conf b/squashfs-root/usr/share/fontconfig/conf.avail/69-unifont.conf new file mode 100644 index 0000000..177dec5 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/69-unifont.conf @@ -0,0 +1,28 @@ + + + + + serif + + FreeSerif + Code2000 + Code2001 + + + + sans-serif + + FreeSans + Arial Unicode MS + Arial Unicode + Code2000 + Code2001 + + + + monospace + + FreeMono + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/70-no-bitmaps.conf b/squashfs-root/usr/share/fontconfig/conf.avail/70-no-bitmaps.conf new file mode 100644 index 0000000..6b506e8 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/70-no-bitmaps.conf @@ -0,0 +1,12 @@ + + + + + + + + false + + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/70-yes-bitmaps.conf b/squashfs-root/usr/share/fontconfig/conf.avail/70-yes-bitmaps.conf new file mode 100644 index 0000000..c153aeb --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/70-yes-bitmaps.conf @@ -0,0 +1,12 @@ + + + + + + + + false + + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/80-delicious.conf b/squashfs-root/usr/share/fontconfig/conf.avail/80-delicious.conf new file mode 100644 index 0000000..845647b --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/80-delicious.conf @@ -0,0 +1,19 @@ + + + + + + + + + Delicious + + + Heavy + + + heavy + + + + diff --git a/squashfs-root/usr/share/fontconfig/conf.avail/90-synthetic.conf b/squashfs-root/usr/share/fontconfig/conf.avail/90-synthetic.conf new file mode 100644 index 0000000..b8d1e85 --- /dev/null +++ b/squashfs-root/usr/share/fontconfig/conf.avail/90-synthetic.conf @@ -0,0 +1,64 @@ + + + + + + + + + roman + + + + roman + + + + + matrix + 10.2 + 01 + + + + + + oblique + + + + false + + + + + + + + + medium + + + + medium + + + + true + + + + bold + + + diff --git a/squashfs-root/usr/share/fonts/X11/100dpi/fonts.alias b/squashfs-root/usr/share/fonts/X11/100dpi/fonts.alias new file mode 100644 index 0000000..9a4c461 --- /dev/null +++ b/squashfs-root/usr/share/fonts/X11/100dpi/fonts.alias @@ -0,0 +1,36 @@ +lucidasans-bolditalic-8 -b&h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-1 +lucidasans-bolditalic-10 -b&h-lucida-bold-i-normal-sans-14-100-100-100-p-90-iso8859-1 +lucidasans-bolditalic-12 -b&h-lucida-bold-i-normal-sans-17-120-100-100-p-108-iso8859-1 +lucidasans-bolditalic-14 -b&h-lucida-bold-i-normal-sans-20-140-100-100-p-127-iso8859-1 +lucidasans-bolditalic-18 -b&h-lucida-bold-i-normal-sans-25-180-100-100-p-159-iso8859-1 +lucidasans-bolditalic-24 -b&h-lucida-bold-i-normal-sans-34-240-100-100-p-215-iso8859-1 +lucidasans-bold-8 -b&h-lucida-bold-r-normal-sans-11-80-100-100-p-70-iso8859-1 +lucidasans-bold-10 -b&h-lucida-bold-r-normal-sans-14-100-100-100-p-89-iso8859-1 +lucidasans-bold-12 -b&h-lucida-bold-r-normal-sans-17-120-100-100-p-108-iso8859-1 +lucidasans-bold-14 -b&h-lucida-bold-r-normal-sans-20-140-100-100-p-127-iso8859-1 +lucidasans-bold-18 -b&h-lucida-bold-r-normal-sans-25-180-100-100-p-158-iso8859-1 +lucidasans-bold-24 -b&h-lucida-bold-r-normal-sans-34-240-100-100-p-216-iso8859-1 +lucidasans-italic-8 -b&h-lucida-medium-i-normal-sans-11-80-100-100-p-62-iso8859-1 +lucidasans-italic-10 -b&h-lucida-medium-i-normal-sans-14-100-100-100-p-80-iso8859-1 +lucidasans-italic-12 -b&h-lucida-medium-i-normal-sans-17-120-100-100-p-97-iso8859-1 +lucidasans-italic-14 -b&h-lucida-medium-i-normal-sans-20-140-100-100-p-114-iso8859-1 +lucidasans-italic-18 -b&h-lucida-medium-i-normal-sans-25-180-100-100-p-141-iso8859-1 +lucidasans-italic-24 -b&h-lucida-medium-i-normal-sans-34-240-100-100-p-192-iso8859-1 +lucidasans-8 -b&h-lucida-medium-r-normal-sans-11-80-100-100-p-63-iso8859-1 +lucidasans-10 -b&h-lucida-medium-r-normal-sans-14-100-100-100-p-80-iso8859-1 +lucidasans-12 -b&h-lucida-medium-r-normal-sans-17-120-100-100-p-96-iso8859-1 +lucidasans-14 -b&h-lucida-medium-r-normal-sans-20-140-100-100-p-114-iso8859-1 +lucidasans-18 -b&h-lucida-medium-r-normal-sans-25-180-100-100-p-142-iso8859-1 +lucidasans-24 -b&h-lucida-medium-r-normal-sans-34-240-100-100-p-191-iso8859-1 +lucidasanstypewriter-bold-8 -b&h-lucidatypewriter-bold-r-normal-sans-11-80-100-100-m-70-iso8859-1 +lucidasanstypewriter-bold-10 -b&h-lucidatypewriter-bold-r-normal-sans-14-100-100-100-m-80-iso8859-1 +lucidasanstypewriter-bold-12 -b&h-lucidatypewriter-bold-r-normal-sans-17-120-100-100-m-100-iso8859-1 +lucidasanstypewriter-bold-14 -b&h-lucidatypewriter-bold-r-normal-sans-20-140-100-100-m-120-iso8859-1 +lucidasanstypewriter-bold-18 -b&h-lucidatypewriter-bold-r-normal-sans-25-180-100-100-m-150-iso8859-1 +lucidasanstypewriter-bold-24 -b&h-lucidatypewriter-bold-r-normal-sans-34-240-100-100-m-200-iso8859-1 +lucidasanstypewriter-8 -b&h-lucidatypewriter-medium-r-normal-sans-11-80-100-100-m-70-iso8859-1 +lucidasanstypewriter-10 -b&h-lucidatypewriter-medium-r-normal-sans-14-100-100-100-m-80-iso8859-1 +lucidasanstypewriter-12 -b&h-lucidatypewriter-medium-r-normal-sans-17-120-100-100-m-100-iso8859-1 +lucidasanstypewriter-14 -b&h-lucidatypewriter-medium-r-normal-sans-20-140-100-100-m-120-iso8859-1 +lucidasanstypewriter-18 -b&h-lucidatypewriter-medium-r-normal-sans-25-180-100-100-m-150-iso8859-1 +lucidasanstypewriter-24 -b&h-lucidatypewriter-medium-r-normal-sans-34-240-100-100-m-200-iso8859-1 diff --git a/squashfs-root/usr/share/fonts/X11/75dpi/fonts.alias b/squashfs-root/usr/share/fonts/X11/75dpi/fonts.alias new file mode 100644 index 0000000..a3d464f --- /dev/null +++ b/squashfs-root/usr/share/fonts/X11/75dpi/fonts.alias @@ -0,0 +1,36 @@ +lucidasans-bolditalic-8 -b&h-lucida-bold-i-normal-sans-8-80-75-75-p-49-iso8859-1 +lucidasans-bolditalic-10 -b&h-lucida-bold-i-normal-sans-10-100-75-75-p-67-iso8859-1 +lucidasans-bolditalic-12 -b&h-lucida-bold-i-normal-sans-12-120-75-75-p-79-iso8859-1 +lucidasans-bolditalic-14 -b&h-lucida-bold-i-normal-sans-14-140-75-75-p-92-iso8859-1 +lucidasans-bolditalic-18 -b&h-lucida-bold-i-normal-sans-18-180-75-75-p-119-iso8859-1 +lucidasans-bolditalic-24 -b&h-lucida-bold-i-normal-sans-24-240-75-75-p-151-iso8859-1 +lucidasans-bold-8 -b&h-lucida-bold-r-normal-sans-8-80-75-75-p-50-iso8859-1 +lucidasans-bold-10 -b&h-lucida-bold-r-normal-sans-10-100-75-75-p-66-iso8859-1 +lucidasans-bold-12 -b&h-lucida-bold-r-normal-sans-12-120-75-75-p-79-iso8859-1 +lucidasans-bold-14 -b&h-lucida-bold-r-normal-sans-14-140-75-75-p-92-iso8859-1 +lucidasans-bold-18 -b&h-lucida-bold-r-normal-sans-18-180-75-75-p-120-iso8859-1 +lucidasans-bold-24 -b&h-lucida-bold-r-normal-sans-24-240-75-75-p-152-iso8859-1 +lucidasans-italic-8 -b&h-lucida-medium-i-normal-sans-8-80-75-75-p-45-iso8859-1 +lucidasans-italic-10 -b&h-lucida-medium-i-normal-sans-10-100-75-75-p-59-iso8859-1 +lucidasans-italic-12 -b&h-lucida-medium-i-normal-sans-12-120-75-75-p-71-iso8859-1 +lucidasans-italic-14 -b&h-lucida-medium-i-normal-sans-14-140-75-75-p-82-iso8859-1 +lucidasans-italic-18 -b&h-lucida-medium-i-normal-sans-18-180-75-75-p-105-iso8859-1 +lucidasans-italic-24 -b&h-lucida-medium-i-normal-sans-24-240-75-75-p-136-iso8859-1 +lucidasans-8 -b&h-lucida-medium-r-normal-sans-8-80-75-75-p-45-iso8859-1 +lucidasans-10 -b&h-lucida-medium-r-normal-sans-10-100-75-75-p-58-iso8859-1 +lucidasans-12 -b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-1 +lucidasans-14 -b&h-lucida-medium-r-normal-sans-14-140-75-75-p-81-iso8859-1 +lucidasans-18 -b&h-lucida-medium-r-normal-sans-18-180-75-75-p-106-iso8859-1 +lucidasans-24 -b&h-lucida-medium-r-normal-sans-24-240-75-75-p-136-iso8859-1 +lucidasanstypewriter-bold-8 -b&h-lucidatypewriter-bold-r-normal-sans-8-80-75-75-m-50-iso8859-1 +lucidasanstypewriter-bold-10 -b&h-lucidatypewriter-bold-r-normal-sans-10-100-75-75-m-60-iso8859-1 +lucidasanstypewriter-bold-12 -b&h-lucidatypewriter-bold-r-normal-sans-12-120-75-75-m-70-iso8859-1 +lucidasanstypewriter-bold-14 -b&h-lucidatypewriter-bold-r-normal-sans-14-140-75-75-m-90-iso8859-1 +lucidasanstypewriter-bold-18 -b&h-lucidatypewriter-bold-r-normal-sans-18-180-75-75-m-110-iso8859-1 +lucidasanstypewriter-bold-24 -b&h-lucidatypewriter-bold-r-normal-sans-24-240-75-75-m-140-iso8859-1 +lucidasanstypewriter-8 -b&h-lucidatypewriter-medium-r-normal-sans-8-80-75-75-m-50-iso8859-1 +lucidasanstypewriter-10 -b&h-lucidatypewriter-medium-r-normal-sans-10-100-75-75-m-60-iso8859-1 +lucidasanstypewriter-12 -b&h-lucidatypewriter-medium-r-normal-sans-12-120-75-75-m-70-iso8859-1 +lucidasanstypewriter-14 -b&h-lucidatypewriter-medium-r-normal-sans-14-140-75-75-m-90-iso8859-1 +lucidasanstypewriter-18 -b&h-lucidatypewriter-medium-r-normal-sans-18-180-75-75-m-110-iso8859-1 +lucidasanstypewriter-24 -b&h-lucidatypewriter-medium-r-normal-sans-24-240-75-75-m-140-iso8859-1 diff --git a/squashfs-root/usr/share/fonts/X11/cyrillic/fonts.alias b/squashfs-root/usr/share/fonts/X11/cyrillic/fonts.alias new file mode 100644 index 0000000..f7d42df --- /dev/null +++ b/squashfs-root/usr/share/fonts/X11/cyrillic/fonts.alias @@ -0,0 +1,55 @@ +! Copyright (C) 1994-95 Cronyx Ltd. +! Author: Serge Vakulenko, +! +! This software may be used, modified, copied, distributed, and sold, +! in both source and binary form provided that the above copyright +! and these terms are retained. Under no circumstances is the author +! responsible for the proper functioning of this software, nor does +! the author assume any responsibility for damages incurred with its use. +! +! $XFree86$ +! +fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r +variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-koi8-r +5x8 -misc-fixed-medium-r-normal--8-80-75-75-c-50-koi8-r +6x9 -misc-fixed-medium-r-normal--9-90-75-75-c-60-koi8-r +6x10 -cronyx-fixed-medium-r-normal--10-100-75-75-c-60-koi8-r +6x13 -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r +6x13bold -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-koi8-r +7x14 -misc-fixed-medium-r-normal--14-130-75-75-c-70-koi8-r +7x14b -misc-fixed-bold-r-normal--14-130-75-75-c-70-koi8-r +8x13 -misc-fixed-medium-r-normal--13-120-75-75-c-80-koi8-r +8x16 -misc-fixed-medium-r-normal--16-160-75-75-c-80-koi8-r +8x16bold -misc-fixed-bold-r-normal--16-160-75-75-c-80-koi8-r +9x15 -misc-fixed-medium-r-normal--15-140-75-75-c-90-koi8-r +9x15bold -misc-fixed-bold-r-normal--15-140-75-75-c-90-koi8-r +9x18 -misc-fixed-medium-r-normal--18-120-100-100-c-90-koi8-r +9x18bold -misc-fixed-bold-r-normal--18-120-100-100-c-90-koi8-r +10x16bold -cronyx-fixed-bold-r-normal--16-120-100-100-c-80-koi8-r +10x20 -cronyx-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r +12x24 -misc-fixed-medium-r-normal--24-170-100-100-c-120-koi8-r +12x24bold -misc-fixed-bold-r-normal--24-170-100-100-c-120-koi8-r +nil2 -cronyx-nil-medium-r-normal--2-20-75-75-c-10-koi8-r +koi-fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r +koi-variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-koi8-r +koi5x8 -misc-fixed-medium-r-normal--8-80-75-75-c-50-koi8-r +koi6x9 -misc-fixed-medium-r-normal--9-90-75-75-c-60-koi8-r +koi6x10 -cronyx-fixed-medium-r-normal--10-100-75-75-c-60-koi8-r +koi6x13 -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r +koi6x13bold -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-koi8-r +koi7x14 -misc-fixed-medium-r-normal--14-130-75-75-c-70-koi8-r +koi7x14b -misc-fixed-bold-r-normal--14-130-75-75-c-70-koi8-r +koi8x13 -misc-fixed-medium-r-normal--13-120-75-75-c-80-koi8-r +koi8x16 -misc-fixed-medium-r-normal--16-160-75-75-c-80-koi8-r +koi8x16bold -misc-fixed-bold-r-normal--16-160-75-75-c-80-koi8-r +koi9x15 -misc-fixed-medium-r-normal--15-140-75-75-c-90-koi8-r +koi9x15bold -misc-fixed-bold-r-normal--15-140-75-75-c-90-koi8-r +koi9x18 -misc-fixed-medium-r-normal--18-120-100-100-c-90-koi8-r +koi9x18bold -misc-fixed-bold-r-normal--18-120-100-100-c-90-koi8-r +koi10x16bold -cronyx-fixed-bold-r-normal--16-120-100-100-c-80-koi8-r +koi10x20 -cronyx-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r +koi12x24 -misc-fixed-medium-r-normal--24-170-100-100-c-120-koi8-r +koi12x24bold -misc-fixed-bold-r-normal--24-170-100-100-c-120-koi8-r +koinil2 -cronyx-nil-medium-r-normal--2-20-75-75-c-10-koi8-r +screen8x16 -screen-fixed-medium-r-normal--16-120-100-100-c-80-koi8-r +screen8x16b -screen-fixed-bold-r-normal--16-120-100-100-c-80-koi8-r diff --git a/squashfs-root/usr/share/fonts/X11/encodings/adobe-dingbats.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/adobe-dingbats.enc.gz new file mode 100644 index 0000000..2a261c4 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/adobe-dingbats.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/adobe-standard.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/adobe-standard.enc.gz new file mode 100644 index 0000000..9605053 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/adobe-standard.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/adobe-symbol.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/adobe-symbol.enc.gz new file mode 100644 index 0000000..66b0657 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/adobe-symbol.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/armscii-8.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/armscii-8.enc.gz new file mode 100644 index 0000000..3686557 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/armscii-8.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/ascii-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/ascii-0.enc.gz new file mode 100644 index 0000000..658ba3c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/ascii-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/dec-special.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/dec-special.enc.gz new file mode 100644 index 0000000..6337802 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/dec-special.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/encodings.dir b/squashfs-root/usr/share/fonts/X11/encodings/encodings.dir new file mode 100644 index 0000000..715b852 --- /dev/null +++ b/squashfs-root/usr/share/fonts/X11/encodings/encodings.dir @@ -0,0 +1,129 @@ +128 +adobe-dingbats ./adobe-dingbats.enc +adobe-dingbats ./adobe-dingbats.enc.gz +adobe-standard ./adobe-standard.enc +adobe-standard ./adobe-standard.enc.gz +adobe-symbol ./adobe-symbol.enc +adobe-symbol ./adobe-symbol.enc.gz +armscii-8 ./armscii-8.enc +armscii-8 ./armscii-8.enc.gz +ascii-0 ./ascii-0.enc +ascii-0 ./ascii-0.enc.gz +big5-0 large/big5.eten-0.enc +big5-0 large/big5.eten-0.enc.gz +big5.cp950-0 large/big5.eten-0.enc +big5.cp950-0 large/big5.eten-0.enc.gz +big5.eten-0 large/big5.eten-0.enc +big5.eten-0 large/big5.eten-0.enc.gz +big5hkscs-0 large/big5hkscs-0.enc +big5hkscs-0 large/big5hkscs-0.enc.gz +cns11643-1 large/cns11643-1.enc +cns11643-1 large/cns11643-1.enc +cns11643-1 large/cns11643-1.enc.gz +cns11643-1 large/cns11643-1.enc.gz +cns11643-2 large/cns11643-2.enc +cns11643-2 large/cns11643-2.enc +cns11643-2 large/cns11643-2.enc.gz +cns11643-2 large/cns11643-2.enc.gz +cns11643-3 large/cns11643-3.enc +cns11643-3 large/cns11643-3.enc +cns11643-3 large/cns11643-3.enc.gz +cns11643-3 large/cns11643-3.enc.gz +dec-special ./dec-special.enc +dec-special ./dec-special.enc.gz +gb18030-0 large/gb18030-0.enc +gb18030-0 large/gb18030-0.enc.gz +gb18030.2000-0 large/gb18030.2000-0.enc +gb18030.2000-0 large/gb18030.2000-0.enc.gz +gb18030.2000-1 large/gb18030.2000-1.enc +gb18030.2000-1 large/gb18030.2000-1.enc.gz +gb2312.1980-0 large/gb2312.1980-0.enc +gb2312.1980-0 large/gb2312.1980-0.enc.gz +gbk-0 large/gbk-0.enc +gbk-0 large/gbk-0.enc.gz +ibm-cp437 ./ibm-cp437.enc +ibm-cp437 ./ibm-cp437.enc.gz +ibm-cp850 ./ibm-cp850.enc +ibm-cp850 ./ibm-cp850.enc.gz +ibm-cp852 ./ibm-cp852.enc +ibm-cp852 ./ibm-cp852.enc.gz +ibm-cp866 ./ibm-cp866.enc +ibm-cp866 ./ibm-cp866.enc.gz +iso8859-11 ./iso8859-11.enc +iso8859-11 ./iso8859-11.enc.gz +iso8859-13 ./iso8859-13.enc +iso8859-13 ./iso8859-13.enc.gz +iso8859-16 ./iso8859-16.enc +iso8859-16 ./iso8859-16.enc.gz +iso8859-6.16 ./iso8859-6.16.enc +iso8859-6.16 ./iso8859-6.16.enc.gz +iso8859-6.8x ./iso8859-6.8x.enc +iso8859-6.8x ./iso8859-6.8x.enc.gz +jisx0201.1976-0 large/jisx0201.1976-0.enc +jisx0201.1976-0 large/jisx0201.1976-0.enc.gz +jisx0208.1983-0 large/jisx0208.1990-0.enc +jisx0208.1983-0 large/jisx0208.1990-0.enc.gz +jisx0208.1990-0 large/jisx0208.1990-0.enc +jisx0208.1990-0 large/jisx0208.1990-0.enc.gz +jisx0212.1990-0 large/jisx0212.1990-0.enc +jisx0212.1990-0 large/jisx0212.1990-0.enc.gz +ksc5601.1987-0 large/ksc5601.1987-0.enc +ksc5601.1987-0 large/ksc5601.1987-0.enc.gz +ksc5601.1992-3 large/ksc5601.1992-3.enc +ksc5601.1992-3 large/ksc5601.1992-3.enc.gz +ksx1001.1997-0 large/ksc5601.1987-0.enc +ksx1001.1997-0 large/ksc5601.1987-0.enc.gz +ksx1001.1998-0 large/ksc5601.1987-0.enc +ksx1001.1998-0 large/ksc5601.1987-0.enc.gz +ksx1001.1998-3 large/ksc5601.1992-3.enc +ksx1001.1998-3 large/ksc5601.1992-3.enc.gz +ksxjohab-1 large/ksc5601.1992-3.enc +ksxjohab-1 large/ksc5601.1992-3.enc.gz +microsoft-ansi ./microsoft-cp1252.enc +microsoft-ansi ./microsoft-cp1252.enc.gz +microsoft-cp1250 ./microsoft-cp1250.enc +microsoft-cp1250 ./microsoft-cp1250.enc.gz +microsoft-cp1251 ./microsoft-cp1251.enc +microsoft-cp1251 ./microsoft-cp1251.enc.gz +microsoft-cp1252 ./microsoft-cp1252.enc +microsoft-cp1252 ./microsoft-cp1252.enc.gz +microsoft-cp1253 ./microsoft-cp1253.enc +microsoft-cp1253 ./microsoft-cp1253.enc.gz +microsoft-cp1254 ./microsoft-cp1254.enc +microsoft-cp1254 ./microsoft-cp1254.enc.gz +microsoft-cp1255 ./microsoft-cp1255.enc +microsoft-cp1255 ./microsoft-cp1255.enc.gz +microsoft-cp1256 ./microsoft-cp1256.enc +microsoft-cp1256 ./microsoft-cp1256.enc.gz +microsoft-cp1257 ./microsoft-cp1257.enc +microsoft-cp1257 ./microsoft-cp1257.enc.gz +microsoft-cp1258 ./microsoft-cp1258.enc +microsoft-cp1258 ./microsoft-cp1258.enc.gz +microsoft-win3.1 ./microsoft-win3.1.enc +microsoft-win3.1 ./microsoft-win3.1.enc.gz +mulearabic-0 ./mulearabic-0.enc +mulearabic-0 ./mulearabic-0.enc.gz +mulearabic-1 ./mulearabic-1.enc +mulearabic-1 ./mulearabic-1.enc.gz +mulearabic-2 ./mulearabic-2.enc +mulearabic-2 ./mulearabic-2.enc.gz +mulelao-1 ./mulelao-1.enc +mulelao-1 ./mulelao-1.enc.gz +sun.unicode.india-0 large/sun.unicode.india-0.enc +sun.unicode.india-0 large/sun.unicode.india-0.enc.gz +suneu-greek ./suneu-greek.enc +suneu-greek ./suneu-greek.enc.gz +tcvn-0 ./tcvn-0.enc +tcvn-0 ./tcvn-0.enc.gz +tis620-0 ./iso8859-11.enc +tis620-0 ./iso8859-11.enc.gz +tis620-2 ./tis620-2.enc +tis620-2 ./tis620-2.enc.gz +tis620.2529-1 ./iso8859-11.enc +tis620.2529-1 ./iso8859-11.enc.gz +tis620.2533-0 ./iso8859-11.enc +tis620.2533-0 ./iso8859-11.enc.gz +tis620.2533-1 ./iso8859-11.enc +tis620.2533-1 ./iso8859-11.enc.gz +viscii1.1-1 ./viscii1.1-1.enc +viscii1.1-1 ./viscii1.1-1.enc.gz diff --git a/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp437.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp437.enc.gz new file mode 100644 index 0000000..2db72a5 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp437.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp850.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp850.enc.gz new file mode 100644 index 0000000..7f00ca2 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp850.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp852.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp852.enc.gz new file mode 100644 index 0000000..737b664 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp852.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp866.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp866.enc.gz new file mode 100644 index 0000000..7e026e1 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/ibm-cp866.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/iso8859-11.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/iso8859-11.enc.gz new file mode 100644 index 0000000..315197c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/iso8859-11.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/iso8859-13.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/iso8859-13.enc.gz new file mode 100644 index 0000000..2af6845 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/iso8859-13.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/iso8859-16.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/iso8859-16.enc.gz new file mode 100644 index 0000000..f878cbf Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/iso8859-16.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/iso8859-6.16.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/iso8859-6.16.enc.gz new file mode 100644 index 0000000..56a8218 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/iso8859-6.16.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/iso8859-6.8x.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/iso8859-6.8x.enc.gz new file mode 100644 index 0000000..a00515f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/iso8859-6.8x.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/big5.eten-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/big5.eten-0.enc.gz new file mode 100644 index 0000000..83aef01 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/big5.eten-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/big5hkscs-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/big5hkscs-0.enc.gz new file mode 100644 index 0000000..60af87d Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/big5hkscs-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/cns11643-1.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/cns11643-1.enc.gz new file mode 100644 index 0000000..d7075e2 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/cns11643-1.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/cns11643-2.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/cns11643-2.enc.gz new file mode 100644 index 0000000..7ecbfbb Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/cns11643-2.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/cns11643-3.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/cns11643-3.enc.gz new file mode 100644 index 0000000..7d9215b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/cns11643-3.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/encodings.dir b/squashfs-root/usr/share/fonts/X11/encodings/large/encodings.dir new file mode 100644 index 0000000..d6d26c8 --- /dev/null +++ b/squashfs-root/usr/share/fonts/X11/encodings/large/encodings.dir @@ -0,0 +1,53 @@ +52 +big5-0 ./big5.eten-0.enc +big5-0 ./big5.eten-0.enc.gz +big5.cp950-0 ./big5.eten-0.enc +big5.cp950-0 ./big5.eten-0.enc.gz +big5.eten-0 ./big5.eten-0.enc +big5.eten-0 ./big5.eten-0.enc.gz +big5hkscs-0 ./big5hkscs-0.enc +big5hkscs-0 ./big5hkscs-0.enc.gz +cns11643-1 ./cns11643-1.enc +cns11643-1 ./cns11643-1.enc +cns11643-1 ./cns11643-1.enc.gz +cns11643-1 ./cns11643-1.enc.gz +cns11643-2 ./cns11643-2.enc +cns11643-2 ./cns11643-2.enc +cns11643-2 ./cns11643-2.enc.gz +cns11643-2 ./cns11643-2.enc.gz +cns11643-3 ./cns11643-3.enc +cns11643-3 ./cns11643-3.enc +cns11643-3 ./cns11643-3.enc.gz +cns11643-3 ./cns11643-3.enc.gz +gb18030-0 ./gb18030-0.enc +gb18030-0 ./gb18030-0.enc.gz +gb18030.2000-0 ./gb18030.2000-0.enc +gb18030.2000-0 ./gb18030.2000-0.enc.gz +gb18030.2000-1 ./gb18030.2000-1.enc +gb18030.2000-1 ./gb18030.2000-1.enc.gz +gb2312.1980-0 ./gb2312.1980-0.enc +gb2312.1980-0 ./gb2312.1980-0.enc.gz +gbk-0 ./gbk-0.enc +gbk-0 ./gbk-0.enc.gz +jisx0201.1976-0 ./jisx0201.1976-0.enc +jisx0201.1976-0 ./jisx0201.1976-0.enc.gz +jisx0208.1983-0 ./jisx0208.1990-0.enc +jisx0208.1983-0 ./jisx0208.1990-0.enc.gz +jisx0208.1990-0 ./jisx0208.1990-0.enc +jisx0208.1990-0 ./jisx0208.1990-0.enc.gz +jisx0212.1990-0 ./jisx0212.1990-0.enc +jisx0212.1990-0 ./jisx0212.1990-0.enc.gz +ksc5601.1987-0 ./ksc5601.1987-0.enc +ksc5601.1987-0 ./ksc5601.1987-0.enc.gz +ksc5601.1992-3 ./ksc5601.1992-3.enc +ksc5601.1992-3 ./ksc5601.1992-3.enc.gz +ksx1001.1997-0 ./ksc5601.1987-0.enc +ksx1001.1997-0 ./ksc5601.1987-0.enc.gz +ksx1001.1998-0 ./ksc5601.1987-0.enc +ksx1001.1998-0 ./ksc5601.1987-0.enc.gz +ksx1001.1998-3 ./ksc5601.1992-3.enc +ksx1001.1998-3 ./ksc5601.1992-3.enc.gz +ksxjohab-1 ./ksc5601.1992-3.enc +ksxjohab-1 ./ksc5601.1992-3.enc.gz +sun.unicode.india-0 ./sun.unicode.india-0.enc +sun.unicode.india-0 ./sun.unicode.india-0.enc.gz diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/gb18030-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/gb18030-0.enc.gz new file mode 100644 index 0000000..43d7347 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/gb18030-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/gb18030.2000-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/gb18030.2000-0.enc.gz new file mode 100644 index 0000000..f1ba3c8 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/gb18030.2000-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/gb18030.2000-1.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/gb18030.2000-1.enc.gz new file mode 100644 index 0000000..342a36d Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/gb18030.2000-1.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/gb2312.1980-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/gb2312.1980-0.enc.gz new file mode 100644 index 0000000..1be5707 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/gb2312.1980-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/gbk-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/gbk-0.enc.gz new file mode 100644 index 0000000..ac088e4 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/gbk-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/jisx0201.1976-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/jisx0201.1976-0.enc.gz new file mode 100644 index 0000000..f96cd2a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/jisx0201.1976-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/jisx0208.1990-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/jisx0208.1990-0.enc.gz new file mode 100644 index 0000000..b33e5e1 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/jisx0208.1990-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/jisx0212.1990-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/jisx0212.1990-0.enc.gz new file mode 100644 index 0000000..077f442 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/jisx0212.1990-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/ksc5601.1987-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/ksc5601.1987-0.enc.gz new file mode 100644 index 0000000..6bf3744 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/ksc5601.1987-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/ksc5601.1992-3.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/ksc5601.1992-3.enc.gz new file mode 100644 index 0000000..6fd3f93 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/ksc5601.1992-3.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/large/sun.unicode.india-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/large/sun.unicode.india-0.enc.gz new file mode 100644 index 0000000..b091c2f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/large/sun.unicode.india-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1250.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1250.enc.gz new file mode 100644 index 0000000..dddb27a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1250.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1251.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1251.enc.gz new file mode 100644 index 0000000..b055d6e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1251.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1252.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1252.enc.gz new file mode 100644 index 0000000..99e4df1 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1252.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1253.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1253.enc.gz new file mode 100644 index 0000000..b1d962c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1253.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1254.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1254.enc.gz new file mode 100644 index 0000000..f30e449 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1254.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1255.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1255.enc.gz new file mode 100644 index 0000000..ec4e839 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1255.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1256.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1256.enc.gz new file mode 100644 index 0000000..a5c1adc Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1256.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1257.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1257.enc.gz new file mode 100644 index 0000000..c400bed Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1257.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1258.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1258.enc.gz new file mode 100644 index 0000000..4213999 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-cp1258.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/microsoft-win3.1.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-win3.1.enc.gz new file mode 100644 index 0000000..9d2948c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/microsoft-win3.1.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/mulearabic-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/mulearabic-0.enc.gz new file mode 100644 index 0000000..837c899 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/mulearabic-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/mulearabic-1.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/mulearabic-1.enc.gz new file mode 100644 index 0000000..64366df Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/mulearabic-1.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/mulearabic-2.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/mulearabic-2.enc.gz new file mode 100644 index 0000000..fa507c9 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/mulearabic-2.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/mulelao-1.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/mulelao-1.enc.gz new file mode 100644 index 0000000..1ec7bf3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/mulelao-1.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/suneu-greek.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/suneu-greek.enc.gz new file mode 100644 index 0000000..3ed9f26 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/suneu-greek.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/tcvn-0.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/tcvn-0.enc.gz new file mode 100644 index 0000000..3457780 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/tcvn-0.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/tis620-2.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/tis620-2.enc.gz new file mode 100644 index 0000000..1f2c00d Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/tis620-2.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/encodings/viscii1.1-1.enc.gz b/squashfs-root/usr/share/fonts/X11/encodings/viscii1.1-1.enc.gz new file mode 100644 index 0000000..eef771c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/encodings/viscii1.1-1.enc.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-1.pcf.gz new file mode 100644 index 0000000..bf11183 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-10.pcf.gz new file mode 100644 index 0000000..63ddd79 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-11.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-11.pcf.gz new file mode 100644 index 0000000..82aa6b7 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-11.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-13.pcf.gz new file mode 100644 index 0000000..ca9f10b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-14.pcf.gz new file mode 100644 index 0000000..95dd714 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-15.pcf.gz new file mode 100644 index 0000000..39527e7 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-16.pcf.gz new file mode 100644 index 0000000..b361592 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-2.pcf.gz new file mode 100644 index 0000000..cf05d04 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-3.pcf.gz new file mode 100644 index 0000000..5d9322a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-4.pcf.gz new file mode 100644 index 0000000..c139c95 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-5.pcf.gz new file mode 100644 index 0000000..9c3ad5c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-7.pcf.gz new file mode 100644 index 0000000..07968ed Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-8.pcf.gz new file mode 100644 index 0000000..6a5ffd7 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-9.pcf.gz new file mode 100644 index 0000000..87ea30c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20-KOI8-R.pcf.gz new file mode 100644 index 0000000..f357406 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/10x20.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/10x20.pcf.gz new file mode 100644 index 0000000..6b7ad31 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/10x20.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/12x13ja.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/12x13ja.pcf.gz new file mode 100644 index 0000000..28ecb18 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/12x13ja.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/18x18ja.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/18x18ja.pcf.gz new file mode 100644 index 0000000..0eba685 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/18x18ja.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/18x18ko.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/18x18ko.pcf.gz new file mode 100644 index 0000000..293d046 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/18x18ko.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-1.pcf.gz new file mode 100644 index 0000000..498d769 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-10.pcf.gz new file mode 100644 index 0000000..1944e7d Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-13.pcf.gz new file mode 100644 index 0000000..c1a3ed6 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-14.pcf.gz new file mode 100644 index 0000000..8650c74 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-15.pcf.gz new file mode 100644 index 0000000..7adb220 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-16.pcf.gz new file mode 100644 index 0000000..17bcec3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-2.pcf.gz new file mode 100644 index 0000000..36977f6 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-3.pcf.gz new file mode 100644 index 0000000..734644c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-4.pcf.gz new file mode 100644 index 0000000..efd5589 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-5.pcf.gz new file mode 100644 index 0000000..bb8ba60 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-7.pcf.gz new file mode 100644 index 0000000..71f6c5a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-8.pcf.gz new file mode 100644 index 0000000..e4fdc01 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-9.pcf.gz new file mode 100644 index 0000000..7df4630 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6-KOI8-R.pcf.gz new file mode 100644 index 0000000..9eb0220 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/4x6.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/4x6.pcf.gz new file mode 100644 index 0000000..5a0f6ae Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/4x6.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-1.pcf.gz new file mode 100644 index 0000000..8038405 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-10.pcf.gz new file mode 100644 index 0000000..14c4ba2 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-13.pcf.gz new file mode 100644 index 0000000..cfc8c88 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-14.pcf.gz new file mode 100644 index 0000000..6f2d6c2 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-15.pcf.gz new file mode 100644 index 0000000..31545a2 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-16.pcf.gz new file mode 100644 index 0000000..8666f01 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-2.pcf.gz new file mode 100644 index 0000000..c867283 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-3.pcf.gz new file mode 100644 index 0000000..857d429 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-4.pcf.gz new file mode 100644 index 0000000..d669783 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-5.pcf.gz new file mode 100644 index 0000000..ac9d878 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-7.pcf.gz new file mode 100644 index 0000000..087eef2 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-8.pcf.gz new file mode 100644 index 0000000..c42d551 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-9.pcf.gz new file mode 100644 index 0000000..7498f0f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7-KOI8-R.pcf.gz new file mode 100644 index 0000000..a98dd23 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x7.pcf.gz new file mode 100644 index 0000000..972170f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-1.pcf.gz new file mode 100644 index 0000000..1f95673 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-10.pcf.gz new file mode 100644 index 0000000..fbfb200 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-13.pcf.gz new file mode 100644 index 0000000..5d885d5 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-14.pcf.gz new file mode 100644 index 0000000..f7fdf6c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-15.pcf.gz new file mode 100644 index 0000000..4feee48 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-16.pcf.gz new file mode 100644 index 0000000..9d4fba1 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-2.pcf.gz new file mode 100644 index 0000000..0917af3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-3.pcf.gz new file mode 100644 index 0000000..d4920c2 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-4.pcf.gz new file mode 100644 index 0000000..2aa99bc Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-5.pcf.gz new file mode 100644 index 0000000..ad3af9a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-7.pcf.gz new file mode 100644 index 0000000..d1807ad Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-8.pcf.gz new file mode 100644 index 0000000..385dcf9 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-9.pcf.gz new file mode 100644 index 0000000..bb72c2b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8-KOI8-R.pcf.gz new file mode 100644 index 0000000..7976d55 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/5x8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/5x8.pcf.gz new file mode 100644 index 0000000..68d59d5 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/5x8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-1.pcf.gz new file mode 100644 index 0000000..2622b12 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-10.pcf.gz new file mode 100644 index 0000000..550e34c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-13.pcf.gz new file mode 100644 index 0000000..88108df Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-14.pcf.gz new file mode 100644 index 0000000..3ce82df Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-15.pcf.gz new file mode 100644 index 0000000..20de9da Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-16.pcf.gz new file mode 100644 index 0000000..e038770 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-2.pcf.gz new file mode 100644 index 0000000..50efe31 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-3.pcf.gz new file mode 100644 index 0000000..8b8eb49 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-4.pcf.gz new file mode 100644 index 0000000..e26eb79 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-5.pcf.gz new file mode 100644 index 0000000..0381117 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-7.pcf.gz new file mode 100644 index 0000000..5c56fb0 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-8.pcf.gz new file mode 100644 index 0000000..369611a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-9.pcf.gz new file mode 100644 index 0000000..6609e96 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10-KOI8-R.pcf.gz new file mode 100644 index 0000000..8f69529 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x10.pcf.gz new file mode 100644 index 0000000..cbceb16 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-1.pcf.gz new file mode 100644 index 0000000..0e8aa5d Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-10.pcf.gz new file mode 100644 index 0000000..9a43c42 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-13.pcf.gz new file mode 100644 index 0000000..c6264aa Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-14.pcf.gz new file mode 100644 index 0000000..efda3ac Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-15.pcf.gz new file mode 100644 index 0000000..70cff87 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-16.pcf.gz new file mode 100644 index 0000000..1b201f5 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-2.pcf.gz new file mode 100644 index 0000000..d72c6f7 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-3.pcf.gz new file mode 100644 index 0000000..84efe47 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-4.pcf.gz new file mode 100644 index 0000000..77b3d3a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-5.pcf.gz new file mode 100644 index 0000000..c96eb88 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-7.pcf.gz new file mode 100644 index 0000000..9f819fb Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-8.pcf.gz new file mode 100644 index 0000000..308e77a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-9.pcf.gz new file mode 100644 index 0000000..e8d8e32 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12-KOI8-R.pcf.gz new file mode 100644 index 0000000..94aebc7 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x12.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x12.pcf.gz new file mode 100644 index 0000000..ad0fe45 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x12.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-1.pcf.gz new file mode 100644 index 0000000..c4da9d3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-10.pcf.gz new file mode 100644 index 0000000..95ed219 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-11.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-11.pcf.gz new file mode 100644 index 0000000..5731295 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-11.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-13.pcf.gz new file mode 100644 index 0000000..8efb613 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-14.pcf.gz new file mode 100644 index 0000000..41c592e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-15.pcf.gz new file mode 100644 index 0000000..45c576e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-16.pcf.gz new file mode 100644 index 0000000..9b27f83 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-2.pcf.gz new file mode 100644 index 0000000..c9a48de Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-3.pcf.gz new file mode 100644 index 0000000..0c8d33d Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-4.pcf.gz new file mode 100644 index 0000000..626fbd0 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-5.pcf.gz new file mode 100644 index 0000000..61b82b5 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-7.pcf.gz new file mode 100644 index 0000000..8d0831b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-8.pcf.gz new file mode 100644 index 0000000..f12d500 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-9.pcf.gz new file mode 100644 index 0000000..0b7237b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13-KOI8-R.pcf.gz new file mode 100644 index 0000000..31b685d Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13.pcf.gz new file mode 100644 index 0000000..b08f454 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-1.pcf.gz new file mode 100644 index 0000000..2f7a668 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-10.pcf.gz new file mode 100644 index 0000000..826e23b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-13.pcf.gz new file mode 100644 index 0000000..3f9d2bf Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-14.pcf.gz new file mode 100644 index 0000000..ce9e96f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-15.pcf.gz new file mode 100644 index 0000000..2276232 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-16.pcf.gz new file mode 100644 index 0000000..c1c4af8 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-2.pcf.gz new file mode 100644 index 0000000..16eef99 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-3.pcf.gz new file mode 100644 index 0000000..c6b0ac5 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-4.pcf.gz new file mode 100644 index 0000000..1383610 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-5.pcf.gz new file mode 100644 index 0000000..a3eea29 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-7.pcf.gz new file mode 100644 index 0000000..1ce2f6e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-8.pcf.gz new file mode 100644 index 0000000..e94a4fc Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-9.pcf.gz new file mode 100644 index 0000000..003cfb7 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13B.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13B.pcf.gz new file mode 100644 index 0000000..d93ef78 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13B.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-1.pcf.gz new file mode 100644 index 0000000..c4ec713 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-10.pcf.gz new file mode 100644 index 0000000..9b00c79 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-13.pcf.gz new file mode 100644 index 0000000..de8fd74 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-14.pcf.gz new file mode 100644 index 0000000..0546b79 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-15.pcf.gz new file mode 100644 index 0000000..c072be6 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-16.pcf.gz new file mode 100644 index 0000000..3fb1a3c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-2.pcf.gz new file mode 100644 index 0000000..89f891f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-3.pcf.gz new file mode 100644 index 0000000..3176454 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-4.pcf.gz new file mode 100644 index 0000000..208a65c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-5.pcf.gz new file mode 100644 index 0000000..1eeb597 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-7.pcf.gz new file mode 100644 index 0000000..81cb19f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-9.pcf.gz new file mode 100644 index 0000000..2c99484 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x13O.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x13O.pcf.gz new file mode 100644 index 0000000..559d09e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x13O.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-1.pcf.gz new file mode 100644 index 0000000..92e6a06 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-10.pcf.gz new file mode 100644 index 0000000..4de2cf3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-13.pcf.gz new file mode 100644 index 0000000..871e5b0 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-14.pcf.gz new file mode 100644 index 0000000..ad3bd56 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-15.pcf.gz new file mode 100644 index 0000000..250a3a0 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-16.pcf.gz new file mode 100644 index 0000000..7c37f0e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-2.pcf.gz new file mode 100644 index 0000000..68c1330 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-3.pcf.gz new file mode 100644 index 0000000..eef45ea Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-4.pcf.gz new file mode 100644 index 0000000..b71c921 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-5.pcf.gz new file mode 100644 index 0000000..ba83043 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-7.pcf.gz new file mode 100644 index 0000000..8ec0f1c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-8.pcf.gz new file mode 100644 index 0000000..7df3f1a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-9.pcf.gz new file mode 100644 index 0000000..9ea56ad Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9-KOI8-R.pcf.gz new file mode 100644 index 0000000..068330c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/6x9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/6x9.pcf.gz new file mode 100644 index 0000000..24afc05 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/6x9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-1.pcf.gz new file mode 100644 index 0000000..a8c8e31 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-10.pcf.gz new file mode 100644 index 0000000..e1d9d3c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-11.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-11.pcf.gz new file mode 100644 index 0000000..6d2f53e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-11.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-13.pcf.gz new file mode 100644 index 0000000..168ff71 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-14.pcf.gz new file mode 100644 index 0000000..4135bd8 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-15.pcf.gz new file mode 100644 index 0000000..ed136c8 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-16.pcf.gz new file mode 100644 index 0000000..a74092b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-2.pcf.gz new file mode 100644 index 0000000..8542d38 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-3.pcf.gz new file mode 100644 index 0000000..19820ed Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-4.pcf.gz new file mode 100644 index 0000000..ee98627 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-5.pcf.gz new file mode 100644 index 0000000..2c8ad4b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-7.pcf.gz new file mode 100644 index 0000000..395c519 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-8.pcf.gz new file mode 100644 index 0000000..04a899c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-9.pcf.gz new file mode 100644 index 0000000..6f061ee Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13-KOI8-R.pcf.gz new file mode 100644 index 0000000..42cbc68 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13.pcf.gz new file mode 100644 index 0000000..d9154bf Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-1.pcf.gz new file mode 100644 index 0000000..edbd85f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-10.pcf.gz new file mode 100644 index 0000000..5d8777a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-11.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-11.pcf.gz new file mode 100644 index 0000000..d62e2bd Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-11.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-13.pcf.gz new file mode 100644 index 0000000..06fc7c5 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-14.pcf.gz new file mode 100644 index 0000000..269a88b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-15.pcf.gz new file mode 100644 index 0000000..e727e3b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-16.pcf.gz new file mode 100644 index 0000000..76e5976 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-2.pcf.gz new file mode 100644 index 0000000..2c93f51 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-3.pcf.gz new file mode 100644 index 0000000..3e7c3c8 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-4.pcf.gz new file mode 100644 index 0000000..de75a39 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-5.pcf.gz new file mode 100644 index 0000000..9f43c7c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-7.pcf.gz new file mode 100644 index 0000000..e781f91 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-8.pcf.gz new file mode 100644 index 0000000..a3acbfc Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-9.pcf.gz new file mode 100644 index 0000000..cc2ccf6 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13B.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13B.pcf.gz new file mode 100644 index 0000000..a9fa664 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13B.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-1.pcf.gz new file mode 100644 index 0000000..871d8b9 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-10.pcf.gz new file mode 100644 index 0000000..f05dcbe Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-11.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-11.pcf.gz new file mode 100644 index 0000000..99abb44 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-11.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-13.pcf.gz new file mode 100644 index 0000000..0d082ce Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-14.pcf.gz new file mode 100644 index 0000000..d63c9b3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-15.pcf.gz new file mode 100644 index 0000000..8bf83dc Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-16.pcf.gz new file mode 100644 index 0000000..c385ffa Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-2.pcf.gz new file mode 100644 index 0000000..beee87e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-3.pcf.gz new file mode 100644 index 0000000..8b08b6c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-4.pcf.gz new file mode 100644 index 0000000..b5d8c97 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-5.pcf.gz new file mode 100644 index 0000000..8bd9dd5 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-7.pcf.gz new file mode 100644 index 0000000..7e18153 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-9.pcf.gz new file mode 100644 index 0000000..ca82310 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x13O.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x13O.pcf.gz new file mode 100644 index 0000000..cca7a41 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x13O.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-1.pcf.gz new file mode 100644 index 0000000..9a07016 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-10.pcf.gz new file mode 100644 index 0000000..57de97f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-11.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-11.pcf.gz new file mode 100644 index 0000000..9665f7c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-11.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-13.pcf.gz new file mode 100644 index 0000000..519bd69 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-14.pcf.gz new file mode 100644 index 0000000..b3d393a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-15.pcf.gz new file mode 100644 index 0000000..c2baa02 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-16.pcf.gz new file mode 100644 index 0000000..632c80e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-2.pcf.gz new file mode 100644 index 0000000..8cfdb35 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-3.pcf.gz new file mode 100644 index 0000000..b8ba0ae Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-4.pcf.gz new file mode 100644 index 0000000..cfd5806 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-5.pcf.gz new file mode 100644 index 0000000..6d7da7e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-7.pcf.gz new file mode 100644 index 0000000..1c428b9 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-8.pcf.gz new file mode 100644 index 0000000..fa9e87f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-9.pcf.gz new file mode 100644 index 0000000..e3f633c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-JISX0201.1976-0.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-JISX0201.1976-0.pcf.gz new file mode 100644 index 0000000..acd0f60 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-JISX0201.1976-0.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14-KOI8-R.pcf.gz new file mode 100644 index 0000000..46343c9 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14.pcf.gz new file mode 100644 index 0000000..4f20ce6 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-1.pcf.gz new file mode 100644 index 0000000..d1270f2 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-10.pcf.gz new file mode 100644 index 0000000..3f099b8 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-11.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-11.pcf.gz new file mode 100644 index 0000000..2f4efe5 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-11.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-13.pcf.gz new file mode 100644 index 0000000..6351169 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-14.pcf.gz new file mode 100644 index 0000000..6f8dca7 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-15.pcf.gz new file mode 100644 index 0000000..7eb58f1 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-16.pcf.gz new file mode 100644 index 0000000..a92d3b6 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-2.pcf.gz new file mode 100644 index 0000000..bc013ad Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-3.pcf.gz new file mode 100644 index 0000000..5a0f811 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-4.pcf.gz new file mode 100644 index 0000000..23443ed Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-5.pcf.gz new file mode 100644 index 0000000..88e261d Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-7.pcf.gz new file mode 100644 index 0000000..f7add78 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-8.pcf.gz new file mode 100644 index 0000000..3e58b79 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-9.pcf.gz new file mode 100644 index 0000000..5940db3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/7x14B.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/7x14B.pcf.gz new file mode 100644 index 0000000..51fa998 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/7x14B.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-1.pcf.gz new file mode 100644 index 0000000..ae958dc Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-10.pcf.gz new file mode 100644 index 0000000..d0cb730 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-13.pcf.gz new file mode 100644 index 0000000..a54fd05 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-14.pcf.gz new file mode 100644 index 0000000..75ff32c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-15.pcf.gz new file mode 100644 index 0000000..46fcfca Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-16.pcf.gz new file mode 100644 index 0000000..0616402 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-2.pcf.gz new file mode 100644 index 0000000..cb2c98d Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-3.pcf.gz new file mode 100644 index 0000000..a3a7e93 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-4.pcf.gz new file mode 100644 index 0000000..eb8a201 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-5.pcf.gz new file mode 100644 index 0000000..17206e1 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-7.pcf.gz new file mode 100644 index 0000000..204af27 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-8.pcf.gz new file mode 100644 index 0000000..b61754e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-9.pcf.gz new file mode 100644 index 0000000..2cccab7 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13-KOI8-R.pcf.gz new file mode 100644 index 0000000..c2e07e2 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13.pcf.gz new file mode 100644 index 0000000..ead4c1a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-1.pcf.gz new file mode 100644 index 0000000..a26ffea Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-10.pcf.gz new file mode 100644 index 0000000..f42a427 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-13.pcf.gz new file mode 100644 index 0000000..39b2857 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-14.pcf.gz new file mode 100644 index 0000000..45671be Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-15.pcf.gz new file mode 100644 index 0000000..205cbb4 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-16.pcf.gz new file mode 100644 index 0000000..43c20c7 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-2.pcf.gz new file mode 100644 index 0000000..4559f90 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-3.pcf.gz new file mode 100644 index 0000000..1627d2c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-4.pcf.gz new file mode 100644 index 0000000..316303e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-5.pcf.gz new file mode 100644 index 0000000..daeaf73 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-7.pcf.gz new file mode 100644 index 0000000..53e4e2f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-8.pcf.gz new file mode 100644 index 0000000..712bf49 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-9.pcf.gz new file mode 100644 index 0000000..9733153 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13B.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13B.pcf.gz new file mode 100644 index 0000000..9342fb5 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13B.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-1.pcf.gz new file mode 100644 index 0000000..eb2d86b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-10.pcf.gz new file mode 100644 index 0000000..e593a5d Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-13.pcf.gz new file mode 100644 index 0000000..c0c54ca Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-14.pcf.gz new file mode 100644 index 0000000..f5d00a5 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-15.pcf.gz new file mode 100644 index 0000000..3284657 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-16.pcf.gz new file mode 100644 index 0000000..d03454b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-2.pcf.gz new file mode 100644 index 0000000..a951ff3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-3.pcf.gz new file mode 100644 index 0000000..67e200a Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-4.pcf.gz new file mode 100644 index 0000000..cded7ae Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-5.pcf.gz new file mode 100644 index 0000000..bdf7d8c Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-7.pcf.gz new file mode 100644 index 0000000..45a3719 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-9.pcf.gz new file mode 100644 index 0000000..fcad9be Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/8x13O.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/8x13O.pcf.gz new file mode 100644 index 0000000..131d4cc Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/8x13O.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-1.pcf.gz new file mode 100644 index 0000000..021a243 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-10.pcf.gz new file mode 100644 index 0000000..ae3354f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-11.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-11.pcf.gz new file mode 100644 index 0000000..5f3d8ac Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-11.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-13.pcf.gz new file mode 100644 index 0000000..d77a477 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-14.pcf.gz new file mode 100644 index 0000000..89cc6e1 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-15.pcf.gz new file mode 100644 index 0000000..b1c5aae Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-16.pcf.gz new file mode 100644 index 0000000..f8d9b21 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-2.pcf.gz new file mode 100644 index 0000000..02386a1 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-3.pcf.gz new file mode 100644 index 0000000..072efd2 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-4.pcf.gz new file mode 100644 index 0000000..ca3b8ac Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-5.pcf.gz new file mode 100644 index 0000000..06ec405 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-7.pcf.gz new file mode 100644 index 0000000..279e7c7 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-8.pcf.gz new file mode 100644 index 0000000..ff903ec Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-9.pcf.gz new file mode 100644 index 0000000..83bdb83 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15-KOI8-R.pcf.gz new file mode 100644 index 0000000..42a3913 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15.pcf.gz new file mode 100644 index 0000000..d7d2304 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-1.pcf.gz new file mode 100644 index 0000000..ddc4db3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-10.pcf.gz new file mode 100644 index 0000000..62af124 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-11.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-11.pcf.gz new file mode 100644 index 0000000..e04c8b9 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-11.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-13.pcf.gz new file mode 100644 index 0000000..32b19fd Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-14.pcf.gz new file mode 100644 index 0000000..eda1a4e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-15.pcf.gz new file mode 100644 index 0000000..d2a1c11 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-16.pcf.gz new file mode 100644 index 0000000..5a5ca87 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-2.pcf.gz new file mode 100644 index 0000000..7bd45f0 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-3.pcf.gz new file mode 100644 index 0000000..4c81c99 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-4.pcf.gz new file mode 100644 index 0000000..3dcd7bb Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-5.pcf.gz new file mode 100644 index 0000000..c703690 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-7.pcf.gz new file mode 100644 index 0000000..fa5eabb Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-8.pcf.gz new file mode 100644 index 0000000..353bda7 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-9.pcf.gz new file mode 100644 index 0000000..79c59e3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x15B.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x15B.pcf.gz new file mode 100644 index 0000000..afee33d Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x15B.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-1.pcf.gz new file mode 100644 index 0000000..fe067de Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-10.pcf.gz new file mode 100644 index 0000000..7f8d6c8 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-11.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-11.pcf.gz new file mode 100644 index 0000000..53b71d0 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-11.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-13.pcf.gz new file mode 100644 index 0000000..3157757 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-14.pcf.gz new file mode 100644 index 0000000..b65c7ba Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-15.pcf.gz new file mode 100644 index 0000000..c5b3fda Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-16.pcf.gz new file mode 100644 index 0000000..4283e3e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-2.pcf.gz new file mode 100644 index 0000000..8cf6dc3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-3.pcf.gz new file mode 100644 index 0000000..45afd44 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-4.pcf.gz new file mode 100644 index 0000000..8ffac55 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-5.pcf.gz new file mode 100644 index 0000000..02a4f0e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-7.pcf.gz new file mode 100644 index 0000000..679ed2e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-8.pcf.gz new file mode 100644 index 0000000..64eef3f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-9.pcf.gz new file mode 100644 index 0000000..3d0cd18 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18-KOI8-R.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18-KOI8-R.pcf.gz new file mode 100644 index 0000000..5123982 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18-KOI8-R.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18.pcf.gz new file mode 100644 index 0000000..636e378 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-1.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-1.pcf.gz new file mode 100644 index 0000000..f38cc59 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-1.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-10.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-10.pcf.gz new file mode 100644 index 0000000..d90a30f Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-10.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-13.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-13.pcf.gz new file mode 100644 index 0000000..6faa74b Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-13.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-14.pcf.gz new file mode 100644 index 0000000..7539141 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-15.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-15.pcf.gz new file mode 100644 index 0000000..135eb58 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-15.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-16.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-16.pcf.gz new file mode 100644 index 0000000..0bf3f36 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-16.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-2.pcf.gz new file mode 100644 index 0000000..07e43d3 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-2.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-3.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-3.pcf.gz new file mode 100644 index 0000000..a93e874 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-3.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-4.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-4.pcf.gz new file mode 100644 index 0000000..0dfbec2 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-4.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-5.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-5.pcf.gz new file mode 100644 index 0000000..c7a5162 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-5.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-7.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-7.pcf.gz new file mode 100644 index 0000000..3afab02 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-7.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-8.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-8.pcf.gz new file mode 100644 index 0000000..2a619f1 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-8.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-9.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-9.pcf.gz new file mode 100644 index 0000000..465caf4 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B-ISO8859-9.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/9x18B.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/9x18B.pcf.gz new file mode 100644 index 0000000..5170a5e Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/9x18B.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/cursor.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/cursor.pcf.gz new file mode 100644 index 0000000..3db2827 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/cursor.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/fonts.alias b/squashfs-root/usr/share/fonts/X11/misc/fonts.alias new file mode 100644 index 0000000..0398476 --- /dev/null +++ b/squashfs-root/usr/share/fonts/X11/misc/fonts.alias @@ -0,0 +1,77 @@ +! $Xorg: fonts.alias,v 1.3 2000/08/21 16:42:31 coskrey Exp $ +fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 +variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-1 +5x7 -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1 +5x8 -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-1 +6x9 -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-1 +6x10 -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1 +6x12 -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-1 +6x13 -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 +6x13bold -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-1 +7x13 -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1 +7x13bold -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-1 +7x13euro -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-15 +7x13eurobold -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-15 +7x14 -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1 +7x14bold -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-1 +8x13 -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1 +8x13bold -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-1 +8x16 -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1 +9x15 -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1 +9x15bold -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1 +10x20 -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1 +12x24 -sony-fixed-medium-r-normal--24-170-100-100-c-120-iso8859-1 +nil2 -misc-nil-medium-r-normal--2-20-75-75-c-10-misc-fontspecific + +heb6x13 -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-8 +heb8x13 -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-8 + +k14 -misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0208.1983-0 +a14 -misc-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1 +r14 -misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0201.1976-0 +rk14 -misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0201.1976-0 +r16 -sony-fixed-medium-r-normal--16-*-*-*-*-*-jisx0201.1976-0 +rk16 -sony-fixed-medium-r-normal--16-*-*-*-*-*-jisx0201.1976-0 +r24 -sony-fixed-medium-r-normal--24-*-*-*-*-*-jisx0201.1976-0 +rk24 -sony-fixed-medium-r-normal--24-*-*-*-*-*-jisx0201.1976-0 +kana14 -misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0201.1976-0 +8x16kana -sony-fixed-medium-r-normal--16-120-100-100-c-80-jisx0201.1976-0 +8x16romankana -sony-fixed-medium-r-normal--16-120-100-100-c-80-jisx0201.1976-0 +12x24kana -sony-fixed-medium-r-normal--24-170-100-100-c-120-jisx0201.1976-0 +12x24romankana -sony-fixed-medium-r-normal--24-170-100-100-c-120-jisx0201.1976-0 +kanji16 -jis-fixed-medium-r-normal--16-*-*-*-*-*-jisx0208.1983-0 +kanji24 -jis-fixed-medium-r-normal--24-*-*-*-*-*-jisx0208.1983-0 + +hanzigb16st "-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0" +hanzigb24st "-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0" +hanzigb16fs "-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0" + +olcursor "-sun-open look cursor-----12-120-75-75-p-160-sunolcursor-1" +olglyph-10 "-sun-open look glyph-----10-100-75-75-p-101-sunolglyph-1" +olglyph-12 "-sun-open look glyph-----12-120-75-75-p-113-sunolglyph-1" +olglyph-14 "-sun-open look glyph-----14-140-75-75-p-128-sunolglyph-1" +olglyph-19 "-sun-open look glyph-----19-190-75-75-p-154-sunolglyph-1" + +-misc-fixed-medium-r-normal--7-50-100-100-c-50-iso8859-1 -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1 +-misc-fixed-medium-r-normal--8-60-100-100-c-50-iso8859-1 -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-1 +-misc-fixed-medium-r-normal--9-80-100-100-c-60-iso8859-1 -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-1 +-misc-fixed-medium-r-normal--10-70-100-100-c-60-iso8859-1 -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1 +-misc-fixed-medium-r-semicondensed--12-90-100-100-c-60-iso8859-1 -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-1 +-misc-fixed-medium-r-semicondensed--13-100-100-100-c-60-iso8859-1 -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 +-misc-fixed-bold-r-semicondensed--13-100-100-100-c-60-iso8859-1 -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-1 +-misc-fixed-medium-r-normal--13-100-100-100-c-70-iso8859-1 -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1 +-misc-fixed-bold-r-normal--13-100-100-100-c-70-iso8859-1 -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-1 +-misc-fixed-medium-r-normal--13-100-100-100-c-80-iso8859-1 -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1 +-misc-fixed-bold-r-normal--13-100-100-100-c-80-iso8859-1 -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-1 +-misc-fixed-medium-r-normal--14-110-100-100-c-70-iso8859-1 -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1 +-misc-fixed-medium-r-normal--15-120-100-100-c-90-iso8859-1 -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1 +-misc-fixed-bold-r-normal--15-120-100-100-c-90-iso8859-1 -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1 +-misc-fixed-medium-r-normal--20-140-100-100-c-100-iso8859-1 -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1 +-misc-fixed-medium-r-semicondensed--13-100-100-100-c-60-iso8859-8 -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-8 +-misc-fixed-medium-r-normal--13-100-100-100-c-80-iso8859-8 -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-8 +-sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1 -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1 +-sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0 -sony-fixed-medium-r-normal--16-120-100-100-c-80-jisx0201.1976-0 +-sony-fixed-medium-r-normal--24-230-75-75-c-120-iso8859-1 -sony-fixed-medium-r-normal--24-170-100-100-c-120-iso8859-1 +-sony-fixed-medium-r-normal--24-230-75-75-c-120-jisx0201.1976-0 -sony-fixed-medium-r-normal--24-170-100-100-c-120-jisx0201.1976-0 +-jis-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1983-0 -jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0 +-jis-fixed-medium-r-normal--24-170-100-100-c-240-jisx0208.1983-0 -jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0 diff --git a/squashfs-root/usr/share/fonts/X11/misc/fonts.dir b/squashfs-root/usr/share/fonts/X11/misc/fonts.dir new file mode 100644 index 0000000..4b2ea11 --- /dev/null +++ b/squashfs-root/usr/share/fonts/X11/misc/fonts.dir @@ -0,0 +1,336 @@ +335 +10x20-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1 +10x20-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-10 +10x20-ISO8859-11.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-11 +10x20-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-13 +10x20-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-14 +10x20-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-15 +10x20-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-16 +10x20-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-2 +10x20-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-3 +10x20-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-4 +10x20-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-5 +10x20-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-7 +10x20-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-8 +10x20-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-9 +10x20-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r +10x20.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1 +12x13ja.pcf.gz -misc-fixed-medium-r-normal-ja-13-120-75-75-c-120-iso10646-1 +18x18ja.pcf.gz -misc-fixed-medium-r-normal-ja-18-120-100-100-c-180-iso10646-1 +18x18ko.pcf.gz -misc-fixed-medium-r-normal-ko-18-120-100-100-c-180-iso10646-1 +4x6-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-1 +4x6-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-10 +4x6-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-13 +4x6-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-14 +4x6-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-15 +4x6-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-16 +4x6-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-2 +4x6-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-3 +4x6-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-4 +4x6-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-5 +4x6-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-7 +4x6-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-8 +4x6-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-9 +4x6-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-koi8-r +4x6.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso10646-1 +5x7-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1 +5x7-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-10 +5x7-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-13 +5x7-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-14 +5x7-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-15 +5x7-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-16 +5x7-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-2 +5x7-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-3 +5x7-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-4 +5x7-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-5 +5x7-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-7 +5x7-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-8 +5x7-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-9 +5x7-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-koi8-r +5x7.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso10646-1 +5x8-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-1 +5x8-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-10 +5x8-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-13 +5x8-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-14 +5x8-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-15 +5x8-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-16 +5x8-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-2 +5x8-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-3 +5x8-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-4 +5x8-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-5 +5x8-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-7 +5x8-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-8 +5x8-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-9 +5x8-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-koi8-r +5x8.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1 +6x10-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1 +6x10-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-10 +6x10-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-13 +6x10-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-14 +6x10-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-15 +6x10-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-16 +6x10-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-2 +6x10-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-3 +6x10-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-4 +6x10-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-5 +6x10-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-7 +6x10-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-8 +6x10-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-9 +6x10-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-koi8-r +6x10.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso10646-1 +6x12-ISO8859-1.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-1 +6x12-ISO8859-10.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-10 +6x12-ISO8859-13.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-13 +6x12-ISO8859-14.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-14 +6x12-ISO8859-15.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-15 +6x12-ISO8859-16.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-16 +6x12-ISO8859-2.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-2 +6x12-ISO8859-3.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-3 +6x12-ISO8859-4.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-4 +6x12-ISO8859-5.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-5 +6x12-ISO8859-7.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-7 +6x12-ISO8859-8.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-8 +6x12-ISO8859-9.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-9 +6x12-KOI8-R.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-koi8-r +6x12.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso10646-1 +6x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 +6x13-ISO8859-10.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-10 +6x13-ISO8859-11.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-11 +6x13-ISO8859-13.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-13 +6x13-ISO8859-14.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-14 +6x13-ISO8859-15.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15 +6x13-ISO8859-16.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-16 +6x13-ISO8859-2.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-2 +6x13-ISO8859-3.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-3 +6x13-ISO8859-4.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-4 +6x13-ISO8859-5.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-5 +6x13-ISO8859-7.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-7 +6x13-ISO8859-8.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-8 +6x13-ISO8859-9.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-9 +6x13-KOI8-R.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r +6x13.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1 +6x13B-ISO8859-1.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-1 +6x13B-ISO8859-10.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-10 +6x13B-ISO8859-13.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-13 +6x13B-ISO8859-14.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-14 +6x13B-ISO8859-15.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-15 +6x13B-ISO8859-16.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-16 +6x13B-ISO8859-2.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-2 +6x13B-ISO8859-3.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-3 +6x13B-ISO8859-4.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-4 +6x13B-ISO8859-5.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-5 +6x13B-ISO8859-7.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-7 +6x13B-ISO8859-8.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-8 +6x13B-ISO8859-9.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-9 +6x13B.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso10646-1 +6x13O-ISO8859-1.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-1 +6x13O-ISO8859-10.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-10 +6x13O-ISO8859-13.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-13 +6x13O-ISO8859-14.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-14 +6x13O-ISO8859-15.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-15 +6x13O-ISO8859-16.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-16 +6x13O-ISO8859-2.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-2 +6x13O-ISO8859-3.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-3 +6x13O-ISO8859-4.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-4 +6x13O-ISO8859-5.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-5 +6x13O-ISO8859-7.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-7 +6x13O-ISO8859-9.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-9 +6x13O.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso10646-1 +6x9-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-1 +6x9-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-10 +6x9-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-13 +6x9-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-14 +6x9-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-15 +6x9-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-16 +6x9-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-2 +6x9-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-3 +6x9-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-4 +6x9-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-5 +6x9-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-7 +6x9-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-8 +6x9-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-9 +6x9-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-koi8-r +6x9.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso10646-1 +7x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1 +7x13-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-10 +7x13-ISO8859-11.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-11 +7x13-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-13 +7x13-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-14 +7x13-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-15 +7x13-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-16 +7x13-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-2 +7x13-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-3 +7x13-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-4 +7x13-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-5 +7x13-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-7 +7x13-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-8 +7x13-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-9 +7x13-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-koi8-r +7x13.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso10646-1 +7x13B-ISO8859-1.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-1 +7x13B-ISO8859-10.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-10 +7x13B-ISO8859-11.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-11 +7x13B-ISO8859-13.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-13 +7x13B-ISO8859-14.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-14 +7x13B-ISO8859-15.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-15 +7x13B-ISO8859-16.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-16 +7x13B-ISO8859-2.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-2 +7x13B-ISO8859-3.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-3 +7x13B-ISO8859-4.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-4 +7x13B-ISO8859-5.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-5 +7x13B-ISO8859-7.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-7 +7x13B-ISO8859-8.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-8 +7x13B-ISO8859-9.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-9 +7x13B.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso10646-1 +7x13O-ISO8859-1.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-1 +7x13O-ISO8859-10.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-10 +7x13O-ISO8859-11.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-11 +7x13O-ISO8859-13.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-13 +7x13O-ISO8859-14.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-14 +7x13O-ISO8859-15.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-15 +7x13O-ISO8859-16.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-16 +7x13O-ISO8859-2.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-2 +7x13O-ISO8859-3.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-3 +7x13O-ISO8859-4.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-4 +7x13O-ISO8859-5.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-5 +7x13O-ISO8859-7.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-7 +7x13O-ISO8859-9.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-9 +7x13O.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso10646-1 +7x14-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1 +7x14-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-10 +7x14-ISO8859-11.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-11 +7x14-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-13 +7x14-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-14 +7x14-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-15 +7x14-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-16 +7x14-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-2 +7x14-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-3 +7x14-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-4 +7x14-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-5 +7x14-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-7 +7x14-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-8 +7x14-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-9 +7x14-JISX0201.1976-0.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0 +7x14-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-koi8-r +7x14.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1 +7x14B-ISO8859-1.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-1 +7x14B-ISO8859-10.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-10 +7x14B-ISO8859-11.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-11 +7x14B-ISO8859-13.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-13 +7x14B-ISO8859-14.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-14 +7x14B-ISO8859-15.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-15 +7x14B-ISO8859-16.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-16 +7x14B-ISO8859-2.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-2 +7x14B-ISO8859-3.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-3 +7x14B-ISO8859-4.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-4 +7x14B-ISO8859-5.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-5 +7x14B-ISO8859-7.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-7 +7x14B-ISO8859-8.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-8 +7x14B-ISO8859-9.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-9 +7x14B.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso10646-1 +8x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1 +8x13-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-10 +8x13-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-13 +8x13-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-14 +8x13-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-15 +8x13-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-16 +8x13-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-2 +8x13-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-3 +8x13-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-4 +8x13-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-5 +8x13-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-7 +8x13-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-8 +8x13-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-9 +8x13-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-koi8-r +8x13.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1 +8x13B-ISO8859-1.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-1 +8x13B-ISO8859-10.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-10 +8x13B-ISO8859-13.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-13 +8x13B-ISO8859-14.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-14 +8x13B-ISO8859-15.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-15 +8x13B-ISO8859-16.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-16 +8x13B-ISO8859-2.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-2 +8x13B-ISO8859-3.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-3 +8x13B-ISO8859-4.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-4 +8x13B-ISO8859-5.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-5 +8x13B-ISO8859-7.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-7 +8x13B-ISO8859-8.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-8 +8x13B-ISO8859-9.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-9 +8x13B.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso10646-1 +8x13O-ISO8859-1.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-1 +8x13O-ISO8859-10.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-10 +8x13O-ISO8859-13.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-13 +8x13O-ISO8859-14.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-14 +8x13O-ISO8859-15.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-15 +8x13O-ISO8859-16.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-16 +8x13O-ISO8859-2.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-2 +8x13O-ISO8859-3.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-3 +8x13O-ISO8859-4.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-4 +8x13O-ISO8859-5.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-5 +8x13O-ISO8859-7.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-7 +8x13O-ISO8859-9.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-9 +8x13O.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso10646-1 +9x15-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1 +9x15-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-10 +9x15-ISO8859-11.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-11 +9x15-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-13 +9x15-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-14 +9x15-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-15 +9x15-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-16 +9x15-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-2 +9x15-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-3 +9x15-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-4 +9x15-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-5 +9x15-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-7 +9x15-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-8 +9x15-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-9 +9x15-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-koi8-r +9x15.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1 +9x15B-ISO8859-1.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1 +9x15B-ISO8859-10.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-10 +9x15B-ISO8859-11.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-11 +9x15B-ISO8859-13.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-13 +9x15B-ISO8859-14.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-14 +9x15B-ISO8859-15.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-15 +9x15B-ISO8859-16.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-16 +9x15B-ISO8859-2.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-2 +9x15B-ISO8859-3.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-3 +9x15B-ISO8859-4.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-4 +9x15B-ISO8859-5.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-5 +9x15B-ISO8859-7.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-7 +9x15B-ISO8859-8.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-8 +9x15B-ISO8859-9.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-9 +9x15B.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso10646-1 +9x18-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-1 +9x18-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-10 +9x18-ISO8859-11.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-11 +9x18-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-13 +9x18-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-14 +9x18-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-15 +9x18-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-16 +9x18-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-2 +9x18-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-3 +9x18-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-4 +9x18-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-5 +9x18-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-7 +9x18-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-8 +9x18-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-9 +9x18-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-koi8-r +9x18.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1 +9x18B-ISO8859-1.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-1 +9x18B-ISO8859-10.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-10 +9x18B-ISO8859-13.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-13 +9x18B-ISO8859-14.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-14 +9x18B-ISO8859-15.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-15 +9x18B-ISO8859-16.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-16 +9x18B-ISO8859-2.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-2 +9x18B-ISO8859-3.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-3 +9x18B-ISO8859-4.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-4 +9x18B-ISO8859-5.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-5 +9x18B-ISO8859-7.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-7 +9x18B-ISO8859-8.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-8 +9x18B-ISO8859-9.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-9 +9x18B.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso10646-1 +cursor.pcf.gz cursor +k14.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0 +nil2.pcf.gz -misc-nil-medium-r-normal--2-20-75-75-c-10-misc-fontspecific diff --git a/squashfs-root/usr/share/fonts/X11/misc/k14.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/k14.pcf.gz new file mode 100644 index 0000000..c1812eb Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/k14.pcf.gz differ diff --git a/squashfs-root/usr/share/fonts/X11/misc/nil2.pcf.gz b/squashfs-root/usr/share/fonts/X11/misc/nil2.pcf.gz new file mode 100644 index 0000000..1dc9c58 Binary files /dev/null and b/squashfs-root/usr/share/fonts/X11/misc/nil2.pcf.gz differ diff --git a/squashfs-root/usr/share/gettext/its/gschema.its b/squashfs-root/usr/share/gettext/its/gschema.its new file mode 100644 index 0000000..344c54b --- /dev/null +++ b/squashfs-root/usr/share/gettext/its/gschema.its @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/gettext/its/gschema.loc b/squashfs-root/usr/share/gettext/its/gschema.loc new file mode 100644 index 0000000..8945230 --- /dev/null +++ b/squashfs-root/usr/share/gettext/its/gschema.loc @@ -0,0 +1,10 @@ + + + + + + + diff --git a/squashfs-root/usr/share/glib-2.0/valgrind/glib.supp b/squashfs-root/usr/share/glib-2.0/valgrind/glib.supp new file mode 100644 index 0000000..e3ce6bc --- /dev/null +++ b/squashfs-root/usr/share/glib-2.0/valgrind/glib.supp @@ -0,0 +1,503 @@ +# GLib Valgrind suppressions file +# +# This provides a list of suppressions for all of GLib (including GIO), for all +# Valgrind tools (memcheck, drd, helgrind, etc.) for the false positives and +# deliberate one-time leaks which GLib causes to be reported when running under +# Valgrind. +# +# When running an application which links to GLib under Valgrind, you can pass +# this suppression file to Valgrind using --suppressions=/path/to/glib-2.0.supp. +# +# http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress +# +# Note that there is currently no way for Valgrind to load this automatically +# (https://bugs.kde.org/show_bug.cgi?id=160905), so the best GLib can currently +# do is to install this file as part of its development package. +# +# This file should be updated if GLib introduces a new deliberate one-time leak, +# or another false race positive in Valgrind: please file bugs at: +# +# https://bugzilla.gnome.org/enter_bug.cgi?product=glib + +{ + gnutls-init-calloc + Memcheck:Leak + fun:calloc + ... + fun:gtls_gnutls_init +} + +{ + gnutls-init-realloc + Memcheck:Leak + fun:realloc + ... + fun:gtls_gnutls_init +} + +{ + g-tls-backend-gnutls-init + Memcheck:Leak + fun:g_once_impl + fun:g_tls_backend_gnutls_init +} + +{ + p11-tokens-init + Memcheck:Leak + fun:calloc + ... + fun:create_tokens_inlock + fun:initialize_module_inlock_reentrant +} + +{ + gobject-init-malloc + Memcheck:Leak + fun:malloc + ... + fun:gobject_init_ctor +} + +{ + gobject-init-realloc + Memcheck:Leak + fun:realloc + ... + fun:gobject_init_ctor +} + +{ + gobject-init-calloc + Memcheck:Leak + fun:calloc + ... + fun:gobject_init_ctor +} + +{ + g-type-register-dynamic + Memcheck:Leak + fun:malloc + ... + fun:g_type_register_dynamic +} + +{ + g-type-register-static + Memcheck:Leak + fun:malloc + ... + fun:g_type_register_static +} + +{ + g-type-register-static-realloc + Memcheck:Leak + fun:realloc + ... + fun:g_type_register_static +} + +{ + g-type-register-static-calloc + Memcheck:Leak + fun:calloc + ... + fun:g_type_register_static +} + +{ + g-type-add-interface-dynamic + Memcheck:Leak + fun:malloc + ... + fun:g_type_add_interface_dynamic +} + +{ + g-type-add-interface-static + Memcheck:Leak + fun:malloc + ... + fun:g_type_add_interface_static +} + +{ + g-test-rand-init + Memcheck:Leak + fun:calloc + ... + fun:g_rand_new_with_seed_array + fun:test_run_seed + ... + fun:g_test_run +} + +{ + g-test-rand-init2 + Memcheck:Leak + fun:calloc + ... + fun:g_rand_new_with_seed_array + ... + fun:get_global_random + ... + fun:g_test_init +} + +{ + g-quark-table-new + Memcheck:Leak + fun:g_hash_table_new + ... + fun:quark_new +} + +{ + g-quark-table-resize + Memcheck:Leak + fun:g_hash_table_resize + ... + fun:quark_new +} + +{ + g-type-interface-init + Memcheck:Leak + fun:malloc + ... + fun:type_iface_vtable_base_init_Wm +} + +{ + g-type-class-init + Memcheck:Leak + fun:calloc + ... + fun:type_class_init_Wm +} + +{ + g-io-module-default-singleton-malloc + Memcheck:Leak + fun:malloc + ... + fun:g_type_create_instance + ... + fun:_g_io_module_get_default +} + +{ + g-io-module-default-singleton-module + Memcheck:Leak + fun:calloc + ... + fun:g_module_open + ... + fun:_g_io_module_get_default +} + +{ + g-get-language-names + Memcheck:Leak + fun:malloc + ... + fun:g_get_language_names +} + +{ + g-static-mutex + Memcheck:Leak + fun:malloc + ... + fun:g_static_mutex_get_mutex_impl +} + +{ + g-system-thread-init + Memcheck:Leak + fun:calloc + ... + fun:g_system_thread_new +} + +{ + g-io-module-default-proxy-resolver-gnome + Memcheck:Leak + fun:calloc + ... + fun:g_proxy_resolver_gnome_init + ... + fun:_g_io_module_get_default +} + +# memcheck checks that the third argument to ioctl() is a valid pointer, but +# some ioctls use that argument as an integer +{ + ioctl-with-non-pointer-param + Memcheck:Param + ioctl(generic) + fun:ioctl + fun:btrfs_reflink_with_progress +} + +{ + g-private-get + drd:ConflictingAccess + fun:g_private_get +} +{ + g-private-get-helgrind + Helgrind:Race + fun:g_private_get +} + + +{ + g-private-set + drd:ConflictingAccess + fun:g_private_set +} +{ + g-private-set-helgrind + Helgrind:Race + fun:g_private_set +} + +{ + g-type-construct-free + drd:ConflictingAccess + fun:g_type_free_instance +} +{ + g-type-construct-free-helgrind + Helgrind:Race + fun:g_type_free_instance +} + +{ + g-variant-unref + drd:ConflictingAccess + fun:g_variant_unref +} +{ + g-variant-unref-helgrind + Helgrind:Race + fun:g_variant_unref +} + +{ + g-unix-signals-main + drd:ConflictingAccess + fun:_g_main_create_unix_signal_watch +} +{ + g-unix-signals-dispatch + drd:ConflictingAccess + ... + fun:dispatch_unix_signals* +} +{ + g-unix-signals-dispatch-helgrind + Helgrind:Race + ... + fun:dispatch_unix_signals* +} +{ + g-unix-signals-other + drd:ConflictingAccess + fun:g_unix_signal_watch* +} +{ + g-unix-signals-other-helgrind + Helgrind:Race + fun:g_unix_signal_watch* +} +{ + g-unix-signals-handler + drd:ConflictingAccess + fun:g_unix_signal_handler* +} +{ + g-unix-signals-handler-helgrind + Helgrind:Race + fun:g_unix_signal_handler* +} +{ + g-unix-signals-worker + drd:ConflictingAccess + fun:glib_worker_main +} +{ + g-unix-signals-worker-helgrind + Helgrind:Race + fun:glib_worker_main +} + +{ + g-wakeup-acknowledge + drd:ConflictingAccess + fun:read + fun:g_wakeup_acknowledge +} + +{ + g-type-fundamental + drd:ConflictingAccess + fun:g_type_fundamental +} +{ + g-type-fundamental-helgrind + Helgrind:Race + fun:g_type_fundamental +} +{ + g-type-class-peek-static + drd:ConflictingAccess + fun:g_type_class_peek_static +} +{ + g-type-class-peek-static-helgrind + Helgrind:Race + fun:g_type_class_peek_static +} +{ + g-type-is-a + drd:ConflictingAccess + ... + fun:g_type_is_a +} +{ + g-type-is-a-helgrind + Helgrind:Race + ... + fun:g_type_is_a +} + +{ + g-inet-address-get-type + drd:ConflictingAccess + fun:g_inet_address_get_type +} +{ + g-inet-address-get-type-helgrind + Helgrind:Race + fun:g_inet_address_get_type +} + +# From: https://github.com/fredericgermain/valgrind/blob/master/glibc-2.X-drd.supp +{ + drd-libc-stdio + drd:ConflictingAccess + obj:*/lib*/libc-* +} +{ + drd-libc-recv + drd:ConflictingAccess + fun:recv +} +{ + drd-libc-send + drd:ConflictingAccess + fun:send +} + +# GSources do an opportunistic ref count check +{ + g-source-set-ready-time + drd:ConflictingAccess + fun:g_source_set_ready_time +} +{ + g-source-set-ready-time-helgrind + Helgrind:Race + fun:g_source_set_ready_time +} + +{ + g-source-iter-next + Helgrind:Race + fun:g_source_iter_next + fun:g_main_context_* + fun:g_main_context_iterate +} + +{ + g-object-instance-private + drd:ConflictingAccess + fun:*_get_instance_private +} +{ + g-object-instance-private-helgrind + Helgrind:Race + fun:*_get_instance_private +} + +# GLib legitimately calls pthread_cond_signal without a mutex held +{ + g-task-thread-complete + drd:CondErr + ... + fun:g_cond_signal + fun:g_task_thread_complete +} +{ + g-task-thread-complete + Helgrind:Misc + ... + fun:g_cond_signal + fun:g_task_thread_complete +} + +# False positive, but I can't explain how (FIXME) +{ + g-task-cond + Helgrind:Misc + ... + fun:g_cond_clear + fun:g_task_finalize +} + +# Real race, but is_cancelled() is an opportunistic function anyway +{ + g-cancellable-is-cancelled + Helgrind:Race + fun:g_cancellable_is_cancelled +} + +# False positive +{ + g-main-context-cond + Helgrind:Misc + ... + fun:g_cond_clear + fun:g_main_context_unref +} + +# False positives +{ + g-source-unlocked + Helgrind:Race + fun:g_source_*_unlocked +} +{ + g-source-internal + Helgrind:Race + fun:g_source_*_internal +} + +# False positive +{ + g_object_real_dispose + Helgrind:Race + fun:g_object_real_dispose +} + +# False positive +{ + g_object_new_valist + Helgrind:Race + ... + fun:g_object_new_valist +} diff --git a/squashfs-root/usr/share/gst-plugins-base/license-translations.dict b/squashfs-root/usr/share/gst-plugins-base/license-translations.dict new file mode 100644 index 0000000..1fa8ce4 Binary files /dev/null and b/squashfs-root/usr/share/gst-plugins-base/license-translations.dict differ diff --git a/squashfs-root/usr/share/libdrm/amdgpu.ids b/squashfs-root/usr/share/libdrm/amdgpu.ids new file mode 100644 index 0000000..1828e41 --- /dev/null +++ b/squashfs-root/usr/share/libdrm/amdgpu.ids @@ -0,0 +1,187 @@ +# List of AMDGPU IDs +# +# Syntax: +# device_id, revision_id, product_name <-- single tab after comma + +1.0.0 +6600, 0, AMD Radeon HD 8600/8700M +6600, 81, AMD Radeon (TM) R7 M370 +6601, 0, AMD Radeon (TM) HD 8500M/8700M +6604, 0, AMD Radeon R7 M265 Series +6604, 81, AMD Radeon (TM) R7 M350 +6605, 0, AMD Radeon R7 M260 Series +6605, 81, AMD Radeon (TM) R7 M340 +6606, 0, AMD Radeon HD 8790M +6607, 0, AMD Radeon (TM) HD8530M +6608, 0, AMD FirePro W2100 +6610, 0, AMD Radeon HD 8600 Series +6610, 81, AMD Radeon (TM) R7 350 +6610, 83, AMD Radeon (TM) R5 340 +6611, 0, AMD Radeon HD 8500 Series +6613, 0, AMD Radeon HD 8500 series +6617, C7, AMD Radeon R7 240 Series +6640, 0, AMD Radeon HD 8950 +6640, 80, AMD Radeon (TM) R9 M380 +6646, 0, AMD Radeon R9 M280X +6646, 80, AMD Radeon (TM) R9 M470X +6647, 0, AMD Radeon R9 M270X +6647, 80, AMD Radeon (TM) R9 M380 +6649, 0, AMD FirePro W5100 +6658, 0, AMD Radeon R7 200 Series +665C, 0, AMD Radeon HD 7700 Series +665D, 0, AMD Radeon R7 200 Series +665F, 81, AMD Radeon (TM) R7 300 Series +6660, 0, AMD Radeon HD 8600M Series +6660, 81, AMD Radeon (TM) R5 M335 +6660, 83, AMD Radeon (TM) R5 M330 +6663, 0, AMD Radeon HD 8500M Series +6663, 83, AMD Radeon (TM) R5 M320 +6664, 0, AMD Radeon R5 M200 Series +6665, 0, AMD Radeon R5 M200 Series +6665, 83, AMD Radeon (TM) R5 M320 +6667, 0, AMD Radeon R5 M200 Series +666F, 0, AMD Radeon HD 8500M +6780, 0, ATI FirePro V (FireGL V) Graphics Adapter +678A, 0, ATI FirePro V (FireGL V) Graphics Adapter +6798, 0, AMD Radeon HD 7900 Series +679A, 0, AMD Radeon HD 7900 Series +679B, 0, AMD Radeon HD 7900 Series +679E, 0, AMD Radeon HD 7800 Series +67A0, 0, AMD Radeon FirePro W9100 +67A1, 0, AMD Radeon FirePro W8100 +67B0, 0, AMD Radeon R9 200 Series +67B0, 80, AMD Radeon (TM) R9 390 Series +67B1, 0, AMD Radeon R9 200 Series +67B1, 80, AMD Radeon (TM) R9 390 Series +67B9, 0, AMD Radeon R9 200 Series +67DF, C1, Radeon RX 580 Series +67DF, C2, Radeon RX 570 Series +67DF, C3, Radeon RX 580 Series +67DF, C4, AMD Radeon (TM) RX 480 Graphics +67DF, C5, AMD Radeon (TM) RX 470 Graphics +67DF, C6, Radeon RX 570 Series +67DF, C7, AMD Radeon (TM) RX 480 Graphics +67DF, CF, AMD Radeon (TM) RX 470 Graphics +67DF, D7, Radeon(TM) RX 470 Graphics +67DF, E3, Radeon RX Series +67DF, E7, Radeon RX 580 Series +67DF, EF, Radeon RX 570 Series +67C2, 01, AMD Radeon (TM) Pro V7350x2 +67C2, 02, AMD Radeon (TM) Pro V7300X +67C4, 00, AMD Radeon (TM) Pro WX 7100 Graphics +67C7, 00, AMD Radeon (TM) Pro WX 5100 Graphics +67C0, 00, AMD Radeon (TM) Pro WX 7100 Graphics +67D0, 01, AMD Radeon (TM) Pro V7350x2 +67D0, 02, AMD Radeon (TM) Pro V7300X +67E0, 00, AMD Radeon (TM) Pro WX Series +67E3, 00, AMD Radeon (TM) Pro WX 4100 +67E8, 00, AMD Radeon (TM) Pro WX Series +67E8, 01, AMD Radeon (TM) Pro WX Series +67E8, 80, AMD Radeon (TM) E9260 Graphics +67EB, 00, AMD Radeon (TM) Pro V5300X +67EF, C0, AMD Radeon (TM) RX Graphics +67EF, C1, AMD Radeon (TM) RX 460 Graphics +67EF, C3, Radeon RX Series +67EF, C5, AMD Radeon (TM) RX 460 Graphics +67EF, C7, AMD Radeon (TM) RX Graphics +67EF, CF, AMD Radeon (TM) RX 460 Graphics +67EF, E0, Radeon RX 560 Series +67EF, E1, Radeon RX Series +67EF, E3, Radeon RX Series +67EF, E5, Radeon RX 560 Series +67EF, EF, AMD Radeon (TM) RX Graphics +67EF, FF, Radeon(TM) RX 460 Graphics +67FF, C0, AMD Radeon (TM) RX Graphics +67FF, C1, AMD Radeon (TM) RX Graphics +67FF, CF, Radeon RX 560 Series +67FF, EF, Radeon RX 560 Series +67FF, FF, Radeon RX 550 Series +6800, 0, AMD Radeon HD 7970M +6801, 0, AMD Radeon(TM) HD8970M +6808, 0, ATI FirePro V(FireGL V) Graphics Adapter +6809, 0, ATI FirePro V(FireGL V) Graphics Adapter +6810, 0, AMD Radeon(TM) HD 8800 Series +6810, 81, AMD Radeon (TM) R7 370 Series +6811, 0, AMD Radeon(TM) HD8800 Series +6811, 81, AMD Radeon (TM) R7 300 Series +6818, 0, AMD Radeon HD 7800 Series +6819, 0, AMD Radeon HD 7800 Series +6820, 0, AMD Radeon HD 8800M Series +6820, 81, AMD Radeon (TM) R9 M375 +6820, 83, AMD Radeon (TM) R9 M375X +6821, 0, AMD Radeon HD 8800M Series +6821, 87, AMD Radeon (TM) R7 M380 +6821, 83, AMD Radeon R9 (TM) M370X +6822, 0, AMD Radeon E8860 +6823, 0, AMD Radeon HD 8800M Series +6825, 0, AMD Radeon HD 7800M Series +6827, 0, AMD Radeon HD 7800M Series +6828, 0, ATI FirePro V(FireGL V) Graphics Adapter +682B, 0, AMD Radeon HD 8800M Series +682B, 87, AMD Radeon (TM) R9 M360 +682C, 0, AMD FirePro W4100 +682D, 0, AMD Radeon HD 7700M Series +682F, 0, AMD Radeon HD 7700M Series +6835, 0, AMD Radeon R7 Series / HD 9000 Series +6837, 0, AMD Radeon HD7700 Series +683D, 0, AMD Radeon HD 7700 Series +683F, 0, AMD Radeon HD 7700 Series +6860, 00, Radeon Instinct MI25 +6860, 01, Radeon Pro V320 +6860, 02, Radeon Instinct MI25 +6860, 03, Radeon Pro V340 +6860, 04, Radeon Instinct MI25x2 +6861, 00, Radeon(TM) Pro WX9100 +6862, 00, Radeon Pro SSG +6863, 00, Radeon Vega Frontier Edition +6864, 03, Radeon Pro V340 +6864, 04, Instinct MI25x2 +6868, 00, Radeon(TM) Pro WX8100 +686C, 00, GLXT (Radeon Instinct MI25) MxGPU VFID +686C, 01, GLXT (Radeon Pro V320) MxGPU +686C, 02, GLXT (Radeon Instinct MI25) MxGPU +686C, 03, GLXT (Radeon Pro V340) MxGPU +686C, 04, GLXT (Radeon Instinct MI25x2) MxGPU +687F, C0, Radeon RX Vega +687F, C1, Radeon RX Vega +687F, C3, Radeon RX Vega +6900, 0, AMD Radeon R7 M260 +6900, 81, AMD Radeon (TM) R7 M360 +6900, 83, AMD Radeon (TM) R7 M340 +6901, 0, AMD Radeon R5 M255 +6907, 0, AMD Radeon R5 M255 +6907, 87, AMD Radeon (TM) R5 M315 +6920, 0, AMD RADEON R9 M395X +6920, 1, AMD RADEON R9 M390X +6921, 0, AMD Radeon R9 M295X +6929, 0, AMD FirePro S7150 +692B, 0, AMD FirePro W7100 +6938, 0, AMD Radeon R9 200 Series +6938, F0, AMD Radeon R9 200 Series +6938, F1, AMD Radeon (TM) R9 380 Series +6939, F0, AMD Radeon R9 200 Series +6939, 0, AMD Radeon R9 200 Series +6939, F1, AMD Radeon (TM) R9 380 Series +6980, 00, Radeon Pro WX3100 +6985, 00, AMD Radeon Pro WX3100 +6987, 80, AMD Embedded Radeon E9171 +6995, 00, AMD Radeon Pro WX2100 +6997, 00, Radeon Pro WX2100 +699F, 81, AMD Embedded Radeon E9170 Series +699F, C0, Radeon 500 Series +699F, C3, Radeon 500 Series +699F, C7, Radeon RX 550 Series +7300, C1, AMD FirePro (TM) S9300 x2 +7300, C8, AMD Radeon (TM) R9 Fury Series +7300, C9, Radeon (TM) Pro Duo +7300, CB, AMD Radeon (TM) R9 Fury Series +7300, CA, AMD Radeon (TM) R9 Fury Series +9874, C4, AMD Radeon R7 Graphics +9874, C5, AMD Radeon R6 Graphics +9874, C6, AMD Radeon R6 Graphics +9874, C7, AMD Radeon R5 Graphics +9874, C8, AMD Radeon R7 Graphics +9874, 81, AMD Radeon R6 Graphics +9874, 87, AMD Radeon R5 Graphics +9874, 85, AMD Radeon R6 Graphics +9874, 84, AMD Radeon R7 Graphics diff --git a/squashfs-root/usr/share/libtool/COPYING.LIB b/squashfs-root/usr/share/libtool/COPYING.LIB new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/squashfs-root/usr/share/libtool/COPYING.LIB @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library 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 library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/squashfs-root/usr/share/libtool/Makefile.am b/squashfs-root/usr/share/libtool/Makefile.am new file mode 100644 index 0000000..2329004 --- /dev/null +++ b/squashfs-root/usr/share/libtool/Makefile.am @@ -0,0 +1,159 @@ +## ltdl.mk -- includable Makefile snippet +## +## Copyright (C) 2003-2005, 2007, 2011-2015 Free Software Foundation, +## Inc. +## Written by Gary V. Vaughan, 2003 +## +## NOTE: The canonical source of this file is maintained with the +## GNU Libtool package. Report bugs to bug-libtool@gnu.org. +## +## GNU Libltdl 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 of the License, or (at your option) any later version. +## +## As a special exception to the GNU Lesser General Public License, +## if you distribute this file as part of a program or library that +## is built using GNU libtool, you may include this file under the +## same distribution terms that you use for the rest of that program. +## +## GNU Libltdl is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU Lesser General Public License for more details. +## +## You should have received a copy of the GNU LesserGeneral Public +## License along with GNU Libltdl; see the file COPYING.LIB. If not, a +## copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +## or obtained by writing to the Free Software Foundation, Inc., +## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +##### + +ACLOCAL_AMFLAGS = -I ../m4 +AUTOMAKE_OPTIONS = foreign +AM_CPPFLAGS = +AM_LDFLAGS = +BUILT_SOURCES = +include_HEADERS = +noinst_LTLIBRARIES = +lib_LTLIBRARIES = +EXTRA_LTLIBRARIES = +EXTRA_DIST = +CLEANFILES = +MOSTLYCLEANFILES = + +# -I$(srcdir) is needed for user that built libltdl with a sub-Automake +# (not as a sub-package!) using 'nostdinc': +AM_CPPFLAGS += -DLT_CONFIG_H='<$(LT_CONFIG_H)>' \ + -DLTDL -I. -I$(srcdir) -Ilibltdl \ + -I$(srcdir)/libltdl +AM_LDFLAGS += -no-undefined +LTDL_VERSION_INFO = -version-info 10:1:3 + +noinst_LTLIBRARIES += $(LT_DLLOADERS) + +if INSTALL_LTDL +ltdlincludedir = $(includedir)/libltdl +ltdlinclude_HEADERS = libltdl/lt_system.h \ + libltdl/lt_error.h \ + libltdl/lt_dlloader.h +include_HEADERS += ltdl.h +lib_LTLIBRARIES += libltdl.la +endif + +if CONVENIENCE_LTDL +noinst_LTLIBRARIES += libltdlc.la +endif + +libltdl_la_SOURCES = libltdl/lt__alloc.h \ + libltdl/lt__dirent.h \ + libltdl/lt__glibc.h \ + libltdl/lt__private.h \ + libltdl/lt__strl.h \ + libltdl/lt_dlloader.h \ + libltdl/lt_error.h \ + libltdl/lt_system.h \ + libltdl/slist.h \ + loaders/preopen.c \ + lt__alloc.c \ + lt_dlloader.c \ + lt_error.c \ + ltdl.c \ + ltdl.h \ + slist.c + +EXTRA_DIST += lt__dirent.c \ + lt__strl.c + +libltdl_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN) $(AM_CPPFLAGS) +libltdl_la_LDFLAGS = $(AM_LDFLAGS) $(LTDL_VERSION_INFO) $(LT_DLPREOPEN) +libltdl_la_LIBADD = $(LTLIBOBJS) +libltdl_la_DEPENDENCIES = $(LT_DLLOADERS) $(LTLIBOBJS) + +libltdlc_la_SOURCES = $(libltdl_la_SOURCES) +libltdlc_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN)c $(AM_CPPFLAGS) +libltdlc_la_LDFLAGS = $(AM_LDFLAGS) $(LT_DLPREOPEN) +libltdlc_la_LIBADD = $(libltdl_la_LIBADD) +libltdlc_la_DEPENDENCIES= $(libltdl_la_DEPENDENCIES) + +## The loaders are preopened by libltdl, itself always built from +## pic-objects (either as a shared library, or a convenience library), +## so the loaders themselves must be made from pic-objects too. We +## use convenience libraries for that purpose: +EXTRA_LTLIBRARIES += dlopen.la \ + dld_link.la \ + dyld.la \ + load_add_on.la \ + loadlibrary.la \ + shl_load.la + +dlopen_la_SOURCES = loaders/dlopen.c +dlopen_la_LDFLAGS = -module -avoid-version +dlopen_la_LIBADD = $(LIBADD_DLOPEN) + +dld_link_la_SOURCES = loaders/dld_link.c +dld_link_la_LDFLAGS = -module -avoid-version +dld_link_la_LIBADD = -ldld + +dyld_la_SOURCES = loaders/dyld.c +dyld_la_LDFLAGS = -module -avoid-version + +load_add_on_la_SOURCES = loaders/load_add_on.c +load_add_on_la_LDFLAGS = -module -avoid-version + +loadlibrary_la_SOURCES = loaders/loadlibrary.c +loadlibrary_la_LDFLAGS = -module -avoid-version + +shl_load_la_SOURCES = loaders/shl_load.c +shl_load_la_LDFLAGS = -module -avoid-version +shl_load_la_LIBADD = $(LIBADD_SHL_LOAD) + +## Make sure these will be cleaned even when they're not built by default: +CLEANFILES += libltdl.la \ + libltdlc.la \ + libdlloader.la + +## Automake-1.9.6 doesn't clean subdir AC_LIBOBJ compiled objects +## automatically: +CLEANFILES += $(LIBOBJS) $(LTLIBOBJS) + +EXTRA_DIST += COPYING.LIB \ + README + +## --------------------------- ## +## Gnulib Makefile.am snippets ## +## --------------------------- ## + +BUILT_SOURCES += libltdl/$(LT_ARGZ_H) +EXTRA_DIST += libltdl/lt__argz_.h \ + lt__argz.c + +# We need the following in order to create an when the system +# doesn't have one that works with the given compiler. +all-local $(lib_OBJECTS): $(LT_ARGZ_H) +libltdl/lt__argz.h: libltdl/lt__argz_.h + $(AM_V_at)$(mkinstalldirs) . libltdl + $(AM_V_GEN)cp $(srcdir)/libltdl/lt__argz_.h $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += libltdl/lt__argz.h \ + libltdl/lt__argz.h-t diff --git a/squashfs-root/usr/share/libtool/Makefile.in b/squashfs-root/usr/share/libtool/Makefile.in new file mode 100644 index 0000000..81d17bf --- /dev/null +++ b/squashfs-root/usr/share/libtool/Makefile.in @@ -0,0 +1,1215 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +##### + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@INSTALL_LTDL_TRUE@am__append_1 = ltdl.h +@INSTALL_LTDL_TRUE@am__append_2 = libltdl.la +@CONVENIENCE_LTDL_TRUE@am__append_3 = libltdlc.la +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/../m4/libtool.m4 \ + $(top_srcdir)/../m4/ltargz.m4 $(top_srcdir)/../m4/ltdl.m4 \ + $(top_srcdir)/../m4/ltoptions.m4 \ + $(top_srcdir)/../m4/ltsugar.m4 \ + $(top_srcdir)/../m4/ltversion.m4 \ + $(top_srcdir)/../m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__include_HEADERS_DIST) \ + $(am__ltdlinclude_HEADERS_DIST) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \ + "$(DESTDIR)$(ltdlincludedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) +dld_link_la_DEPENDENCIES = +am__dirstamp = $(am__leading_dot)dirstamp +am_dld_link_la_OBJECTS = loaders/dld_link.lo +dld_link_la_OBJECTS = $(am_dld_link_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +dld_link_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(dld_link_la_LDFLAGS) $(LDFLAGS) -o $@ +am__DEPENDENCIES_1 = +dlopen_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am_dlopen_la_OBJECTS = loaders/dlopen.lo +dlopen_la_OBJECTS = $(am_dlopen_la_OBJECTS) +dlopen_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(dlopen_la_LDFLAGS) $(LDFLAGS) -o $@ +dyld_la_LIBADD = +am_dyld_la_OBJECTS = loaders/dyld.lo +dyld_la_OBJECTS = $(am_dyld_la_OBJECTS) +dyld_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(dyld_la_LDFLAGS) $(LDFLAGS) -o $@ +am_libltdl_la_OBJECTS = loaders/libltdl_la-preopen.lo \ + libltdl_la-lt__alloc.lo libltdl_la-lt_dlloader.lo \ + libltdl_la-lt_error.lo libltdl_la-ltdl.lo libltdl_la-slist.lo +libltdl_la_OBJECTS = $(am_libltdl_la_OBJECTS) +libltdl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libltdl_la_LDFLAGS) $(LDFLAGS) -o $@ +@INSTALL_LTDL_TRUE@am_libltdl_la_rpath = -rpath $(libdir) +am__objects_1 = loaders/libltdlc_la-preopen.lo \ + libltdlc_la-lt__alloc.lo libltdlc_la-lt_dlloader.lo \ + libltdlc_la-lt_error.lo libltdlc_la-ltdl.lo \ + libltdlc_la-slist.lo +am_libltdlc_la_OBJECTS = $(am__objects_1) +libltdlc_la_OBJECTS = $(am_libltdlc_la_OBJECTS) +libltdlc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libltdlc_la_LDFLAGS) $(LDFLAGS) -o $@ +@CONVENIENCE_LTDL_TRUE@am_libltdlc_la_rpath = +load_add_on_la_LIBADD = +am_load_add_on_la_OBJECTS = loaders/load_add_on.lo +load_add_on_la_OBJECTS = $(am_load_add_on_la_OBJECTS) +load_add_on_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(load_add_on_la_LDFLAGS) $(LDFLAGS) -o \ + $@ +loadlibrary_la_LIBADD = +am_loadlibrary_la_OBJECTS = loaders/loadlibrary.lo +loadlibrary_la_OBJECTS = $(am_loadlibrary_la_OBJECTS) +loadlibrary_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(loadlibrary_la_LDFLAGS) $(LDFLAGS) -o \ + $@ +shl_load_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am_shl_load_la_OBJECTS = loaders/shl_load.lo +shl_load_la_OBJECTS = $(am_shl_load_la_OBJECTS) +shl_load_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(shl_load_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/../build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(dld_link_la_SOURCES) $(dlopen_la_SOURCES) \ + $(dyld_la_SOURCES) $(libltdl_la_SOURCES) \ + $(libltdlc_la_SOURCES) $(load_add_on_la_SOURCES) \ + $(loadlibrary_la_SOURCES) $(shl_load_la_SOURCES) +DIST_SOURCES = $(dld_link_la_SOURCES) $(dlopen_la_SOURCES) \ + $(dyld_la_SOURCES) $(libltdl_la_SOURCES) \ + $(libltdlc_la_SOURCES) $(load_add_on_la_SOURCES) \ + $(loadlibrary_la_SOURCES) $(shl_load_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__include_HEADERS_DIST = ltdl.h +am__ltdlinclude_HEADERS_DIST = libltdl/lt_system.h libltdl/lt_error.h \ + libltdl/lt_dlloader.h +HEADERS = $(include_HEADERS) $(ltdlinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config-h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +AM_RECURSIVE_TARGETS = cscope +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config-h.in \ + $(top_srcdir)/../build-aux/compile \ + $(top_srcdir)/../build-aux/config.guess \ + $(top_srcdir)/../build-aux/config.sub \ + $(top_srcdir)/../build-aux/depcomp \ + $(top_srcdir)/../build-aux/install-sh \ + $(top_srcdir)/../build-aux/ltmain.sh \ + $(top_srcdir)/../build-aux/missing ../build-aux/compile \ + ../build-aux/config.guess ../build-aux/config.sub \ + ../build-aux/depcomp ../build-aux/install-sh \ + ../build-aux/ltmain.sh \ + ../build-aux/missing COPYING.LIB \ + README lt__argz.c lt__dirent.c lt__strl.c +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +DIST_TARGETS = dist-gzip +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBADD_DL = @LIBADD_DL@ +LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ +LIBADD_DLOPEN = @LIBADD_DLOPEN@ +LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTDLOPEN = @LTDLOPEN@ +LTLIBOBJS = @LTLIBOBJS@ +LT_ARGZ_H = @LT_ARGZ_H@ +LT_CONFIG_H = @LT_CONFIG_H@ +LT_DLLOADERS = @LT_DLLOADERS@ +LT_DLPREOPEN = @LT_DLPREOPEN@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sys_symbol_underscore = @sys_symbol_underscore@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ACLOCAL_AMFLAGS = -I ../m4 +AUTOMAKE_OPTIONS = foreign + +# -I$(srcdir) is needed for user that built libltdl with a sub-Automake +# (not as a sub-package!) using 'nostdinc': +AM_CPPFLAGS = -DLT_CONFIG_H='<$(LT_CONFIG_H)>' -DLTDL -I. -I$(srcdir) \ + -Ilibltdl -I$(srcdir)/libltdl +AM_LDFLAGS = -no-undefined +BUILT_SOURCES = libltdl/$(LT_ARGZ_H) +include_HEADERS = $(am__append_1) +noinst_LTLIBRARIES = $(LT_DLLOADERS) $(am__append_3) +lib_LTLIBRARIES = $(am__append_2) +EXTRA_LTLIBRARIES = dlopen.la dld_link.la dyld.la load_add_on.la \ + loadlibrary.la shl_load.la +EXTRA_DIST = lt__dirent.c lt__strl.c COPYING.LIB README \ + libltdl/lt__argz_.h lt__argz.c +CLEANFILES = libltdl.la libltdlc.la libdlloader.la $(LIBOBJS) \ + $(LTLIBOBJS) +MOSTLYCLEANFILES = libltdl/lt__argz.h libltdl/lt__argz.h-t +LTDL_VERSION_INFO = -version-info 10:1:3 +@INSTALL_LTDL_TRUE@ltdlincludedir = $(includedir)/libltdl +@INSTALL_LTDL_TRUE@ltdlinclude_HEADERS = libltdl/lt_system.h \ +@INSTALL_LTDL_TRUE@ libltdl/lt_error.h \ +@INSTALL_LTDL_TRUE@ libltdl/lt_dlloader.h + +libltdl_la_SOURCES = libltdl/lt__alloc.h \ + libltdl/lt__dirent.h \ + libltdl/lt__glibc.h \ + libltdl/lt__private.h \ + libltdl/lt__strl.h \ + libltdl/lt_dlloader.h \ + libltdl/lt_error.h \ + libltdl/lt_system.h \ + libltdl/slist.h \ + loaders/preopen.c \ + lt__alloc.c \ + lt_dlloader.c \ + lt_error.c \ + ltdl.c \ + ltdl.h \ + slist.c + +libltdl_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN) $(AM_CPPFLAGS) +libltdl_la_LDFLAGS = $(AM_LDFLAGS) $(LTDL_VERSION_INFO) $(LT_DLPREOPEN) +libltdl_la_LIBADD = $(LTLIBOBJS) +libltdl_la_DEPENDENCIES = $(LT_DLLOADERS) $(LTLIBOBJS) +libltdlc_la_SOURCES = $(libltdl_la_SOURCES) +libltdlc_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN)c $(AM_CPPFLAGS) +libltdlc_la_LDFLAGS = $(AM_LDFLAGS) $(LT_DLPREOPEN) +libltdlc_la_LIBADD = $(libltdl_la_LIBADD) +libltdlc_la_DEPENDENCIES = $(libltdl_la_DEPENDENCIES) +dlopen_la_SOURCES = loaders/dlopen.c +dlopen_la_LDFLAGS = -module -avoid-version +dlopen_la_LIBADD = $(LIBADD_DLOPEN) +dld_link_la_SOURCES = loaders/dld_link.c +dld_link_la_LDFLAGS = -module -avoid-version +dld_link_la_LIBADD = -ldld +dyld_la_SOURCES = loaders/dyld.c +dyld_la_LDFLAGS = -module -avoid-version +load_add_on_la_SOURCES = loaders/load_add_on.c +load_add_on_la_LDFLAGS = -module -avoid-version +loadlibrary_la_SOURCES = loaders/loadlibrary.c +loadlibrary_la_LDFLAGS = -module -avoid-version +shl_load_la_SOURCES = loaders/shl_load.c +shl_load_la_LDFLAGS = -module -avoid-version +shl_load_la_LIBADD = $(LIBADD_SHL_LOAD) +all: $(BUILT_SOURCES) config.h + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config-h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config-h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +loaders/$(am__dirstamp): + @$(MKDIR_P) loaders + @: > loaders/$(am__dirstamp) +loaders/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) loaders/$(DEPDIR) + @: > loaders/$(DEPDIR)/$(am__dirstamp) +loaders/dld_link.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + +dld_link.la: $(dld_link_la_OBJECTS) $(dld_link_la_DEPENDENCIES) $(EXTRA_dld_link_la_DEPENDENCIES) + $(AM_V_CCLD)$(dld_link_la_LINK) $(dld_link_la_OBJECTS) $(dld_link_la_LIBADD) $(LIBS) +loaders/dlopen.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + +dlopen.la: $(dlopen_la_OBJECTS) $(dlopen_la_DEPENDENCIES) $(EXTRA_dlopen_la_DEPENDENCIES) + $(AM_V_CCLD)$(dlopen_la_LINK) $(dlopen_la_OBJECTS) $(dlopen_la_LIBADD) $(LIBS) +loaders/dyld.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + +dyld.la: $(dyld_la_OBJECTS) $(dyld_la_DEPENDENCIES) $(EXTRA_dyld_la_DEPENDENCIES) + $(AM_V_CCLD)$(dyld_la_LINK) $(dyld_la_OBJECTS) $(dyld_la_LIBADD) $(LIBS) +loaders/libltdl_la-preopen.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + +libltdl.la: $(libltdl_la_OBJECTS) $(libltdl_la_DEPENDENCIES) $(EXTRA_libltdl_la_DEPENDENCIES) + $(AM_V_CCLD)$(libltdl_la_LINK) $(am_libltdl_la_rpath) $(libltdl_la_OBJECTS) $(libltdl_la_LIBADD) $(LIBS) +loaders/libltdlc_la-preopen.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + +libltdlc.la: $(libltdlc_la_OBJECTS) $(libltdlc_la_DEPENDENCIES) $(EXTRA_libltdlc_la_DEPENDENCIES) + $(AM_V_CCLD)$(libltdlc_la_LINK) $(am_libltdlc_la_rpath) $(libltdlc_la_OBJECTS) $(libltdlc_la_LIBADD) $(LIBS) +loaders/load_add_on.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + +load_add_on.la: $(load_add_on_la_OBJECTS) $(load_add_on_la_DEPENDENCIES) $(EXTRA_load_add_on_la_DEPENDENCIES) + $(AM_V_CCLD)$(load_add_on_la_LINK) $(load_add_on_la_OBJECTS) $(load_add_on_la_LIBADD) $(LIBS) +loaders/loadlibrary.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + +loadlibrary.la: $(loadlibrary_la_OBJECTS) $(loadlibrary_la_DEPENDENCIES) $(EXTRA_loadlibrary_la_DEPENDENCIES) + $(AM_V_CCLD)$(loadlibrary_la_LINK) $(loadlibrary_la_OBJECTS) $(loadlibrary_la_LIBADD) $(LIBS) +loaders/shl_load.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + +shl_load.la: $(shl_load_la_OBJECTS) $(shl_load_la_DEPENDENCIES) $(EXTRA_shl_load_la_DEPENDENCIES) + $(AM_V_CCLD)$(shl_load_la_LINK) $(shl_load_la_OBJECTS) $(shl_load_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f loaders/*.$(OBJEXT) + -rm -f loaders/*.lo + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lt__argz.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lt__dirent.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lt__strl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt__alloc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt_dlloader.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt_error.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-ltdl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-slist.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt__alloc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt_dlloader.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt_error.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-ltdl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-slist.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/dld_link.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/dlopen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/dyld.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/libltdl_la-preopen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/libltdlc_la-preopen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/load_add_on.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/loadlibrary.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/shl_load.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +loaders/libltdl_la-preopen.lo: loaders/preopen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loaders/libltdl_la-preopen.lo -MD -MP -MF loaders/$(DEPDIR)/libltdl_la-preopen.Tpo -c -o loaders/libltdl_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) loaders/$(DEPDIR)/libltdl_la-preopen.Tpo loaders/$(DEPDIR)/libltdl_la-preopen.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/preopen.c' object='loaders/libltdl_la-preopen.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loaders/libltdl_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c + +libltdl_la-lt__alloc.lo: lt__alloc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt__alloc.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt__alloc.Tpo -c -o libltdl_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt__alloc.Tpo $(DEPDIR)/libltdl_la-lt__alloc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt__alloc.c' object='libltdl_la-lt__alloc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c + +libltdl_la-lt_dlloader.lo: lt_dlloader.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt_dlloader.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt_dlloader.Tpo -c -o libltdl_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt_dlloader.Tpo $(DEPDIR)/libltdl_la-lt_dlloader.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_dlloader.c' object='libltdl_la-lt_dlloader.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c + +libltdl_la-lt_error.lo: lt_error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt_error.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt_error.Tpo -c -o libltdl_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt_error.Tpo $(DEPDIR)/libltdl_la-lt_error.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_error.c' object='libltdl_la-lt_error.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c + +libltdl_la-ltdl.lo: ltdl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-ltdl.lo -MD -MP -MF $(DEPDIR)/libltdl_la-ltdl.Tpo -c -o libltdl_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-ltdl.Tpo $(DEPDIR)/libltdl_la-ltdl.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ltdl.c' object='libltdl_la-ltdl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c + +libltdl_la-slist.lo: slist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-slist.lo -MD -MP -MF $(DEPDIR)/libltdl_la-slist.Tpo -c -o libltdl_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-slist.Tpo $(DEPDIR)/libltdl_la-slist.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='slist.c' object='libltdl_la-slist.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c + +loaders/libltdlc_la-preopen.lo: loaders/preopen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loaders/libltdlc_la-preopen.lo -MD -MP -MF loaders/$(DEPDIR)/libltdlc_la-preopen.Tpo -c -o loaders/libltdlc_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) loaders/$(DEPDIR)/libltdlc_la-preopen.Tpo loaders/$(DEPDIR)/libltdlc_la-preopen.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/preopen.c' object='loaders/libltdlc_la-preopen.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loaders/libltdlc_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c + +libltdlc_la-lt__alloc.lo: lt__alloc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt__alloc.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt__alloc.Tpo -c -o libltdlc_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt__alloc.Tpo $(DEPDIR)/libltdlc_la-lt__alloc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt__alloc.c' object='libltdlc_la-lt__alloc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c + +libltdlc_la-lt_dlloader.lo: lt_dlloader.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt_dlloader.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt_dlloader.Tpo -c -o libltdlc_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt_dlloader.Tpo $(DEPDIR)/libltdlc_la-lt_dlloader.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_dlloader.c' object='libltdlc_la-lt_dlloader.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c + +libltdlc_la-lt_error.lo: lt_error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt_error.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt_error.Tpo -c -o libltdlc_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt_error.Tpo $(DEPDIR)/libltdlc_la-lt_error.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_error.c' object='libltdlc_la-lt_error.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c + +libltdlc_la-ltdl.lo: ltdl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-ltdl.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-ltdl.Tpo -c -o libltdlc_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-ltdl.Tpo $(DEPDIR)/libltdlc_la-ltdl.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ltdl.c' object='libltdlc_la-ltdl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c + +libltdlc_la-slist.lo: slist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-slist.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-slist.Tpo -c -o libltdlc_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-slist.Tpo $(DEPDIR)/libltdlc_la-slist.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='slist.c' object='libltdlc_la-slist.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf loaders/.libs loaders/_libs + +distclean-libtool: + -rm -f libtool config.lt +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) +install-ltdlincludeHEADERS: $(ltdlinclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(ltdlinclude_HEADERS)'; test -n "$(ltdlincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(ltdlincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(ltdlincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(ltdlincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(ltdlincludedir)" || exit $$?; \ + done + +uninstall-ltdlincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(ltdlinclude_HEADERS)'; test -n "$(ltdlincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(ltdlincludedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(ltdlincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f loaders/$(DEPDIR)/$(am__dirstamp) + -rm -f loaders/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(DEPDIR) ./$(DEPDIR) loaders/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-includeHEADERS install-ltdlincludeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf $(DEPDIR) ./$(DEPDIR) loaders/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \ + uninstall-ltdlincludeHEADERS + +.MAKE: all check install install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-am clean \ + clean-cscope clean-generic clean-libLTLIBRARIES clean-libtool \ + clean-noinstLTLIBRARIES cscope cscopelist-am ctags ctags-am \ + dist dist-all dist-bzip2 dist-gzip dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-compile distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-includeHEADERS install-info \ + install-info-am install-libLTLIBRARIES \ + install-ltdlincludeHEADERS install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-includeHEADERS \ + uninstall-libLTLIBRARIES uninstall-ltdlincludeHEADERS + +.PRECIOUS: Makefile + + +# We need the following in order to create an when the system +# doesn't have one that works with the given compiler. +all-local $(lib_OBJECTS): $(LT_ARGZ_H) +libltdl/lt__argz.h: libltdl/lt__argz_.h + $(AM_V_at)$(mkinstalldirs) . libltdl + $(AM_V_GEN)cp $(srcdir)/libltdl/lt__argz_.h $@-t + $(AM_V_at)mv $@-t $@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/squashfs-root/usr/share/libtool/README b/squashfs-root/usr/share/libtool/README new file mode 100644 index 0000000..c9629ed --- /dev/null +++ b/squashfs-root/usr/share/libtool/README @@ -0,0 +1,20 @@ +This is GNU libltdl, a system independent dlopen wrapper for GNU libtool. + +It supports the following dlopen interfaces: +* dlopen (POSIX) +* shl_load (HP-UX) +* LoadLibrary (Win16 and Win32) +* load_add_on (BeOS) +* GNU DLD (emulates dynamic linking for static libraries) +* dyld (darwin/Mac OS X) +* libtool's dlpreopen +-- + Copyright (C) 1999, 2003, 2011-2015 Free Software Foundation, Inc. + Written by Thomas Tanner, 1999 + + This file is part of GNU Libtool. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. diff --git a/squashfs-root/usr/share/libtool/aclocal.m4 b/squashfs-root/usr/share/libtool/aclocal.m4 new file mode 100644 index 0000000..6beb61f --- /dev/null +++ b/squashfs-root/usr/share/libtool/aclocal.m4 @@ -0,0 +1,1159 @@ +# generated automatically by aclocal 1.15 -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.15' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.15], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.15])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([../m4/libtool.m4]) +m4_include([../m4/ltargz.m4]) +m4_include([../m4/ltdl.m4]) +m4_include([../m4/ltoptions.m4]) +m4_include([../m4/ltsugar.m4]) +m4_include([../m4/ltversion.m4]) +m4_include([../m4/lt~obsolete.m4]) diff --git a/squashfs-root/usr/share/libtool/build-aux/compile b/squashfs-root/usr/share/libtool/build-aux/compile new file mode 100755 index 0000000..69fad9c --- /dev/null +++ b/squashfs-root/usr/share/libtool/build-aux/compile @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2015 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/squashfs-root/usr/share/libtool/build-aux/config.guess b/squashfs-root/usr/share/libtool/build-aux/config.guess new file mode 100755 index 0000000..c4bd827 --- /dev/null +++ b/squashfs-root/usr/share/libtool/build-aux/config.guess @@ -0,0 +1,1456 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2016 Free Software Foundation, Inc. + +timestamp='2016-05-15' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2016 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = hppa2.0w ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; +esac + +cat >&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/squashfs-root/usr/share/libtool/build-aux/config.sub b/squashfs-root/usr/share/libtool/build-aux/config.sub new file mode 100755 index 0000000..6d86a1e --- /dev/null +++ b/squashfs-root/usr/share/libtool/build-aux/config.sub @@ -0,0 +1,1815 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2016 Free Software Foundation, Inc. + +timestamp='2016-05-10' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2016 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -ios) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/squashfs-root/usr/share/libtool/build-aux/depcomp b/squashfs-root/usr/share/libtool/build-aux/depcomp new file mode 100755 index 0000000..fda2463 --- /dev/null +++ b/squashfs-root/usr/share/libtool/build-aux/depcomp @@ -0,0 +1,756 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2013-05-30.07; # UTC + +# Copyright (C) 1999-2015 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/squashfs-root/usr/share/libtool/build-aux/install-sh b/squashfs-root/usr/share/libtool/build-aux/install-sh new file mode 100755 index 0000000..0b0fdcb --- /dev/null +++ b/squashfs-root/usr/share/libtool/build-aux/install-sh @@ -0,0 +1,501 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2013-12-25.23; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/squashfs-root/usr/share/libtool/build-aux/ltmain.sh b/squashfs-root/usr/share/libtool/build-aux/ltmain.sh new file mode 100644 index 0000000..e312641 --- /dev/null +++ b/squashfs-root/usr/share/libtool/build-aux/ltmain.sh @@ -0,0 +1,11151 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 + +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION=2.4.6 +package_revision=2.4.6 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname (GNU libtool) 2.4.6 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "defaulting to \`CC'" + func_echo "if this is not correct, specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + + # + # This breaks install into our staging area. -PB + # + #test "$inst_prefix_dir" = "$destdir" && \ + # func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + # Make -static behave like -all-static -GZ + -all-static | -static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + # Make -static behave like -all-static -GZ + -all-static | -static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -stdlib=* select c++ std lib with clang + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=no + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + # Replacing uninstalled with installed can easily break crosscompilation, + # since the installed path is generally the wrong architecture. -CL + newdependency_libs="$newdependency_libs $deplib" + continue + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/squashfs-root/usr/share/libtool/build-aux/missing b/squashfs-root/usr/share/libtool/build-aux/missing new file mode 100755 index 0000000..f62bbae --- /dev/null +++ b/squashfs-root/usr/share/libtool/build-aux/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2013-10-28.13; # UTC + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/squashfs-root/usr/share/libtool/config-h.in b/squashfs-root/usr/share/libtool/config-h.in new file mode 100644 index 0000000..3061cbe --- /dev/null +++ b/squashfs-root/usr/share/libtool/config-h.in @@ -0,0 +1,180 @@ +/* config-h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the `argz_add' function. */ +#undef HAVE_ARGZ_ADD + +/* Define to 1 if you have the `argz_append' function. */ +#undef HAVE_ARGZ_APPEND + +/* Define to 1 if you have the `argz_count' function. */ +#undef HAVE_ARGZ_COUNT + +/* Define to 1 if you have the `argz_create_sep' function. */ +#undef HAVE_ARGZ_CREATE_SEP + +/* Define to 1 if you have the header file. */ +#undef HAVE_ARGZ_H + +/* Define to 1 if you have the `argz_insert' function. */ +#undef HAVE_ARGZ_INSERT + +/* Define to 1 if you have the `argz_next' function. */ +#undef HAVE_ARGZ_NEXT + +/* Define to 1 if you have the `argz_stringify' function. */ +#undef HAVE_ARGZ_STRINGIFY + +/* Define to 1 if you have the `closedir' function. */ +#undef HAVE_CLOSEDIR + +/* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if + you don't. */ +#undef HAVE_DECL_CYGWIN_CONV_PATH + +/* Define to 1 if you have the header file. */ +#undef HAVE_DIRENT_H + +/* Define if you have the GNU dld library. */ +#undef HAVE_DLD + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLD_H + +/* Define to 1 if you have the `dlerror' function. */ +#undef HAVE_DLERROR + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DL_H + +/* Define if you have the _dyld_func_lookup function. */ +#undef HAVE_DYLD + +/* Define to 1 if the system has the type `error_t'. */ +#undef HAVE_ERROR_T + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define if you have the libdl library or equivalent. */ +#undef HAVE_LIBDL + +/* Define if libdlloader will be built on this platform */ +#undef HAVE_LIBDLLOADER + +/* Define to 1 if you have the header file. */ +#undef HAVE_MACH_O_DYLD_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `opendir' function. */ +#undef HAVE_OPENDIR + +/* Define if libtool can extract symbol lists from object files. */ +#undef HAVE_PRELOADED_SYMBOLS + +/* Define to 1 if you have the `readdir' function. */ +#undef HAVE_READDIR + +/* Define if you have the shl_load function. */ +#undef HAVE_SHL_LOAD + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the `strlcat' function. */ +#undef HAVE_STRLCAT + +/* Define to 1 if you have the `strlcpy' function. */ +#undef HAVE_STRLCPY + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_DL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* This value is set to 1 to indicate that the system argz facility works */ +#undef HAVE_WORKING_ARGZ + +/* Define if the OS needs help to load dependent libraries for dlopen(). */ +#undef LTDL_DLOPEN_DEPLIBS + +/* Define to the system default library search path. */ +#undef LT_DLSEARCH_PATH + +/* The archive extension */ +#undef LT_LIBEXT + +/* The archive prefix */ +#undef LT_LIBPREFIX + +/* Define to the extension used for runtime loadable modules, say, ".so". */ +#undef LT_MODULE_EXT + +/* Define to the name of the environment variable that determines the run-time + module search path. */ +#undef LT_MODULE_PATH_VAR + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Define to the shared library suffix, say, ".dylib". */ +#undef LT_SHARED_EXT + +/* Define to the shared archive member specification, say "(shr.o)". */ +#undef LT_SHARED_LIB_MEMBER + +/* Define if dlsym() requires a leading underscore in symbol names. */ +#undef NEED_USCORE + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Define so that glibc/gnulib argp.h does not typedef error_t. */ +#undef __error_t_defined + +/* Define to a type to use for 'error_t' if it is not otherwise available. */ +#undef error_t diff --git a/squashfs-root/usr/share/libtool/configure b/squashfs-root/usr/share/libtool/configure new file mode 100755 index 0000000..4d0e892 --- /dev/null +++ b/squashfs-root/usr/share/libtool/configure @@ -0,0 +1,15518 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for libltdl 2.4.3a. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: bug-libtool@gnu.org about your system, including any +$0: error possibly output before this message. Then install +$0: a modern shell, or manually run the script under such a +$0: shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='libltdl' +PACKAGE_TARNAME='libltdl' +PACKAGE_VERSION='2.4.3a' +PACKAGE_STRING='libltdl 2.4.3a' +PACKAGE_BUGREPORT='bug-libtool@gnu.org' +PACKAGE_URL='' + +ac_unique_file="ltdl.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LTDLOPEN +LT_CONFIG_H +CONVENIENCE_LTDL_FALSE +CONVENIENCE_LTDL_TRUE +INSTALL_LTDL_FALSE +INSTALL_LTDL_TRUE +LT_ARGZ_H +LIBOBJS +sys_symbol_underscore +LIBADD_DL +LT_DLPREOPEN +LIBADD_DLD_LINK +LIBADD_SHL_LOAD +LIBADD_DLOPEN +LT_DLLOADERS +CPP +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +OBJDUMP +DLLTOOL +AS +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_shared +enable_static +with_pic +enable_fast_install +with_aix_soname +enable_dependency_tracking +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_ltdl_install +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +LT_SYS_LIBRARY_PATH +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures libltdl 2.4.3a to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/libltdl] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of libltdl 2.4.3a:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-ltdl-install install libltdl + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +libltdl configure 2.4.3a +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_decl + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by libltdl $as_me 2.4.3a, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_config_headers="$ac_config_headers config.h:config-h.in" + + +ac_aux_dir= +for ac_dir in ../build-aux "$srcdir"/../build-aux; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../build-aux \"$srcdir\"/../build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + + + + + + # I am me! + + +## ------------------------ ## +## Automake Initialisation. ## +## ------------------------ ## + +am__api_version='1.15' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='libltdl' + VERSION='2.4.3a' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + + +## ------------------------------- ## +## Libtool specific configuration. ## +## ------------------------------- ## +pkgdatadir='$datadir'"/$PACKAGE" + + +## ----------------------- ## +## Libtool initialisation. ## +## ----------------------- ## +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.6' +macro_revision='2.4.6' + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +$as_echo "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +$as_echo_n "checking for a working dd... " >&6; } +if ${ac_cv_path_lt_DD+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in dd; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +$as_echo "$ac_cv_path_lt_DD" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +$as_echo_n "checking how to truncate binary pipes... " >&6; } +if ${lt_cv_truncate_bin+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +$as_echo "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options +enable_dlopen=yes +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AS+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AS="${ac_tool_prefix}as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 +$as_echo "$AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AS+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AS="as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 +$as_echo "$ac_ct_AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + pic_mode=default +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test "${with_aix_soname+set}" = set; then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else + if ${lt_cv_with_aix_soname+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +$as_echo "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen=shl_load +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen=dlopen +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report what library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what extension is used for runtime loadable modules" >&5 +$as_echo_n "checking what extension is used for runtime loadable modules... " >&6; } +if ${libltdl_cv_shlibext+:} false; then : + $as_echo_n "(cached) " >&6 +else + +module=yes +eval libltdl_cv_shlibext=$shrext_cmds +module=no +eval libltdl_cv_shrext=$shrext_cmds + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_shlibext" >&5 +$as_echo "$libltdl_cv_shlibext" >&6; } +if test -n "$libltdl_cv_shlibext"; then + +cat >>confdefs.h <<_ACEOF +#define LT_MODULE_EXT "$libltdl_cv_shlibext" +_ACEOF + +fi +if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then + +cat >>confdefs.h <<_ACEOF +#define LT_SHARED_EXT "$libltdl_cv_shrext" +_ACEOF + +fi +if test -n "$shared_archive_member_spec"; then + +cat >>confdefs.h <<_ACEOF +#define LT_SHARED_LIB_MEMBER "($shared_archive_member_spec.o)" +_ACEOF + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what variable specifies run-time module search path" >&5 +$as_echo_n "checking what variable specifies run-time module search path... " >&6; } +if ${lt_cv_module_path_var+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_module_path_var=$shlibpath_var +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_module_path_var" >&5 +$as_echo "$lt_cv_module_path_var" >&6; } +if test -n "$lt_cv_module_path_var"; then + +cat >>confdefs.h <<_ACEOF +#define LT_MODULE_PATH_VAR "$lt_cv_module_path_var" +_ACEOF + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the default library search path" >&5 +$as_echo_n "checking for the default library search path... " >&6; } +if ${lt_cv_sys_dlsearch_path+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sys_dlsearch_path=$sys_lib_dlsearch_path_spec +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_dlsearch_path" >&5 +$as_echo "$lt_cv_sys_dlsearch_path" >&6; } +if test -n "$lt_cv_sys_dlsearch_path"; then + sys_dlsearch_path= + for dir in $lt_cv_sys_dlsearch_path; do + if test -z "$sys_dlsearch_path"; then + sys_dlsearch_path=$dir + else + sys_dlsearch_path=$sys_dlsearch_path$PATH_SEPARATOR$dir + fi + done + +cat >>confdefs.h <<_ACEOF +#define LT_DLSEARCH_PATH "$sys_dlsearch_path" +_ACEOF + +fi + + +LT_DLLOADERS= + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +lt_dlload_save_LIBS=$LIBS + +LIBADD_DLOPEN= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +$as_echo "#define HAVE_LIBDL 1" >>confdefs.h + + if test "$ac_cv_search_dlopen" != "none required"; then + LIBADD_DLOPEN=-ldl + fi + libltdl_cv_lib_dl_dlopen=yes + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if HAVE_DLFCN_H +# include +#endif + +int +main () +{ +dlopen(0, 0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +$as_echo "#define HAVE_LIBDL 1" >>confdefs.h + + libltdl_cv_func_dlopen=yes + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + +$as_echo "#define HAVE_LIBDL 1" >>confdefs.h + + LIBADD_DLOPEN=-lsvld libltdl_cv_func_dlopen=yes + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" +fi + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + +if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen" +then + lt_save_LIBS=$LIBS + LIBS="$LIBS $LIBADD_DLOPEN" + for ac_func in dlerror +do : + ac_fn_c_check_func "$LINENO" "dlerror" "ac_cv_func_dlerror" +if test "x$ac_cv_func_dlerror" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLERROR 1 +_ACEOF + +fi +done + + LIBS=$lt_save_LIBS +fi + + +LIBADD_SHL_LOAD= +ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + +$as_echo "#define HAVE_SHL_LOAD 1" >>confdefs.h + + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + +$as_echo "#define HAVE_SHL_LOAD 1" >>confdefs.h + + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" + LIBADD_SHL_LOAD=-ldld +fi + +fi + + + +case $host_os in +darwin[1567].*) +# We only want this for pre-Mac OS X 10.4. + ac_fn_c_check_func "$LINENO" "_dyld_func_lookup" "ac_cv_func__dyld_func_lookup" +if test "x$ac_cv_func__dyld_func_lookup" = xyes; then : + +$as_echo "#define HAVE_DYLD 1" >>confdefs.h + + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la" +fi + + ;; +beos*) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" + ;; +cygwin* | mingw* | pw32*) + ac_fn_c_check_decl "$LINENO" "cygwin_conv_path" "ac_cv_have_decl_cygwin_conv_path" "#include +" +if test "x$ac_cv_have_decl_cygwin_conv_path" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_CYGWIN_CONV_PATH $ac_have_decl +_ACEOF + + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + +$as_echo "#define HAVE_DLD 1" >>confdefs.h + + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la" +fi + + + + +LT_DLPREOPEN= +if test -n "$LT_DLLOADERS" +then + for lt_loader in $LT_DLLOADERS; do + LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " + done + +$as_echo "#define HAVE_LIBDLLOADER 1" >>confdefs.h + +fi + + +LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" + + +LIBS=$lt_dlload_save_LIBS +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _ prefix in compiled symbols" >&5 +$as_echo_n "checking for _ prefix in compiled symbols... " >&6; } +if ${lt_cv_sys_symbol_underscore+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sys_symbol_underscore=no + cat > conftest.$ac_ext <<_LT_EOF +void nm_test_func(){} +int main(){nm_test_func;return 0;} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + ac_nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$ac_nlist"; then + # See whether the symbols have a leading underscore. + if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then + lt_cv_sys_symbol_underscore=yes + else + if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then + : + else + echo "configure: cannot find nm_test_func in $ac_nlist" >&5 + fi + fi + else + echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "configure: failed program was:" >&5 + cat conftest.c >&5 + fi + rm -rf conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_symbol_underscore" >&5 +$as_echo "$lt_cv_sys_symbol_underscore" >&6; } + sys_symbol_underscore=$lt_cv_sys_symbol_underscore + + +if test yes = "$lt_cv_sys_symbol_underscore"; then + if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we have to add an underscore for dlsym" >&5 +$as_echo_n "checking whether we have to add an underscore for dlsym... " >&6; } +if ${libltdl_cv_need_uscore+:} false; then : + $as_echo_n "(cached) " >&6 +else + libltdl_cv_need_uscore=unknown + dlsym_uscore_save_LIBS=$LIBS + LIBS="$LIBS $LIBADD_DLOPEN" + libname=conftmod # stay within 8.3 filename limits! + cat >$libname.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif +int fnord () { return 42; } +_LT_EOF + + # ltfn_module_cmds module_cmds + # Execute tilde-delimited MODULE_CMDS with environment primed for + # $module_cmds or $archive_cmds type content. + ltfn_module_cmds () + {( # subshell avoids polluting parent global environment + module_cmds_save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$module_cmds_save_ifs + libobjs=$libname.$ac_objext; lib=$libname$libltdl_cv_shlibext + rpath=/not-exists; soname=$libname$libltdl_cv_shlibext; output_objdir=. + major=; versuffix=; verstring=; deplibs= + ECHO=echo; wl=$lt_prog_compiler_wl; allow_undefined_flag= + eval $cmd + done + IFS=$module_cmds_save_ifs + )} + + # Compile a loadable module using libtool macro expansion results. + $CC $pic_flag -c $libname.$ac_ext + ltfn_module_cmds "${module_cmds:-$archive_cmds}" + + # Try to fetch fnord with dlsym(). + libltdl_dlunknown=0; libltdl_dlnouscore=1; libltdl_dluscore=2 + cat >conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" +#if HAVE_DLFCN_H +#include +#endif +#include +#ifndef RTLD_GLOBAL +# ifdef DL_GLOBAL +# define RTLD_GLOBAL DL_GLOBAL +# else +# define RTLD_GLOBAL 0 +# endif +#endif +#ifndef RTLD_NOW +# ifdef DL_NOW +# define RTLD_NOW DL_NOW +# else +# define RTLD_NOW 0 +# endif +#endif +int main () { + void *handle = dlopen ("`pwd`/$libname$libltdl_cv_shlibext", RTLD_GLOBAL|RTLD_NOW); + int status = $libltdl_dlunknown; + if (handle) { + if (dlsym (handle, "fnord")) + status = $libltdl_dlnouscore; + else { + if (dlsym (handle, "_fnord")) + status = $libltdl_dluscore; + else + puts (dlerror ()); + } + dlclose (handle); + } else + puts (dlerror ()); + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + libltdl_status=$? + case x$libltdl_status in + x$libltdl_dlnouscore) libltdl_cv_need_uscore=no ;; + x$libltdl_dluscore) libltdl_cv_need_uscore=yes ;; + x*) libltdl_cv_need_uscore=unknown ;; + esac + fi + rm -rf conftest* $libname* + LIBS=$dlsym_uscore_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_need_uscore" >&5 +$as_echo "$libltdl_cv_need_uscore" >&6; } + fi +fi + +if test yes = "$libltdl_cv_need_uscore"; then + +$as_echo "#define NEED_USCORE 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether deplibs are loaded by dlopen" >&5 +$as_echo_n "checking whether deplibs are loaded by dlopen... " >&6; } +if ${lt_cv_sys_dlopen_deplibs+:} false; then : + $as_echo_n "(cached) " >&6 +else + # PORTME does your system automatically load deplibs for dlopen? + # or its logical equivalent (e.g. shl_load for HP-UX < 11) + # For now, we just catch OSes we know something about -- in the + # future, we'll try test this programmatically. + lt_cv_sys_dlopen_deplibs=unknown + case $host_os in + aix3*|aix4.1.*|aix4.2.*) + # Unknown whether this is true for these versions of AIX, but + # we want this 'case' here to explicitly catch those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + aix[4-9]*) + lt_cv_sys_dlopen_deplibs=yes + ;; + amigaos*) + case $host_cpu in + powerpc) + lt_cv_sys_dlopen_deplibs=no + ;; + esac + ;; + bitrig*) + lt_cv_sys_dlopen_deplibs=yes + ;; + darwin*) + # Assuming the user has installed a libdl from somewhere, this is true + # If you are looking for one http://www.opendarwin.org/projects/dlcompat + lt_cv_sys_dlopen_deplibs=yes + ;; + freebsd* | dragonfly*) + lt_cv_sys_dlopen_deplibs=yes + ;; + gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) + # GNU and its variants, using gnu ld.so (Glibc) + lt_cv_sys_dlopen_deplibs=yes + ;; + hpux10*|hpux11*) + lt_cv_sys_dlopen_deplibs=yes + ;; + interix*) + lt_cv_sys_dlopen_deplibs=yes + ;; + irix[12345]*|irix6.[01]*) + # Catch all versions of IRIX before 6.2, and indicate that we don't + # know how it worked for any of those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + irix*) + # The case above catches anything before 6.2, and it's known that + # at 6.2 and later dlopen does load deplibs. + lt_cv_sys_dlopen_deplibs=yes + ;; + netbsd*) + lt_cv_sys_dlopen_deplibs=yes + ;; + openbsd*) + lt_cv_sys_dlopen_deplibs=yes + ;; + osf[1234]*) + # dlopen did load deplibs (at least at 4.x), but until the 5.x series, + # it did *not* use an RPATH in a shared library to find objects the + # library depends on, so we explicitly say 'no'. + lt_cv_sys_dlopen_deplibs=no + ;; + osf5.0|osf5.0a|osf5.1) + # dlopen *does* load deplibs and with the right loader patch applied + # it even uses RPATH in a shared library to search for shared objects + # that the library depends on, but there's no easy way to know if that + # patch is installed. Since this is the case, all we can really + # say is unknown -- it depends on the patch being installed. If + # it is, this changes to 'yes'. Without it, it would be 'no'. + lt_cv_sys_dlopen_deplibs=unknown + ;; + osf*) + # the two cases above should catch all versions of osf <= 5.1. Read + # the comments above for what we know about them. + # At > 5.1, deplibs are loaded *and* any RPATH in a shared library + # is used to find them so we can finally say 'yes'. + lt_cv_sys_dlopen_deplibs=yes + ;; + qnx*) + lt_cv_sys_dlopen_deplibs=yes + ;; + solaris*) + lt_cv_sys_dlopen_deplibs=yes + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + libltdl_cv_sys_dlopen_deplibs=yes + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_dlopen_deplibs" >&5 +$as_echo "$lt_cv_sys_dlopen_deplibs" >&6; } +if test yes != "$lt_cv_sys_dlopen_deplibs"; then + +$as_echo "#define LTDL_DLOPEN_DEPLIBS 1" >>confdefs.h + +fi + + +for ac_header in argz.h +do : + ac_fn_c_check_header_compile "$LINENO" "argz.h" "ac_cv_header_argz_h" "$ac_includes_default +" +if test "x$ac_cv_header_argz_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ARGZ_H 1 +_ACEOF + +fi + +done + + +ac_fn_c_check_type "$LINENO" "error_t" "ac_cv_type_error_t" "#if defined(HAVE_ARGZ_H) +# include +#endif +" +if test "x$ac_cv_type_error_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_ERROR_T 1 +_ACEOF + + +else + +$as_echo "#define error_t int" >>confdefs.h + + +$as_echo "#define __error_t_defined 1" >>confdefs.h + +fi + + +LT_ARGZ_H= +for ac_func in argz_add argz_append argz_count argz_create_sep argz_insert \ + argz_next argz_stringify +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + LT_ARGZ_H=lt__argz.h; case " $LIBOBJS " in + *" lt__argz.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS lt__argz.$ac_objext" + ;; +esac + +fi +done + + +if test -z "$LT_ARGZ_H"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if argz actually works" >&5 +$as_echo_n "checking if argz actually works... " >&6; } +if ${lt_cv_sys_argz_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host_os in #( + *cygwin*) + lt_cv_sys_argz_works=no + if test no != "$cross_compiling"; then + lt_cv_sys_argz_works="guessing no" + else + lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' + save_IFS=$IFS + IFS=-. + set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` + IFS=$save_IFS + lt_os_major=${2-0} + lt_os_minor=${3-0} + lt_os_micro=${4-0} + if test 1 -lt "$lt_os_major" \ + || { test 1 -eq "$lt_os_major" \ + && { test 5 -lt "$lt_os_minor" \ + || { test 5 -eq "$lt_os_minor" \ + && test 24 -lt "$lt_os_micro"; }; }; }; then + lt_cv_sys_argz_works=yes + fi + fi + ;; #( + *) lt_cv_sys_argz_works=yes ;; + esac +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_argz_works" >&5 +$as_echo "$lt_cv_sys_argz_works" >&6; } + if test yes = "$lt_cv_sys_argz_works"; then : + +$as_echo "#define HAVE_WORKING_ARGZ 1" >>confdefs.h + +else + LT_ARGZ_H=lt__argz.h + case " $LIBOBJS " in + *" lt__argz.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS lt__argz.$ac_objext" + ;; +esac + +fi +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libtool supports -dlopen/-dlpreopen" >&5 +$as_echo_n "checking whether libtool supports -dlopen/-dlpreopen... " >&6; } +if ${libltdl_cv_preloaded_symbols+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$lt_cv_sys_global_symbol_pipe"; then + libltdl_cv_preloaded_symbols=yes + else + libltdl_cv_preloaded_symbols=no + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_preloaded_symbols" >&5 +$as_echo "$libltdl_cv_preloaded_symbols" >&6; } +if test yes = "$libltdl_cv_preloaded_symbols"; then + +$as_echo "#define HAVE_PRELOADED_SYMBOLS 1" >>confdefs.h + +fi + + + +# Check whether --enable-ltdl-install was given. +if test "${enable_ltdl_install+set}" = set; then : + enableval=$enable_ltdl_install; +fi + + +case ,$enable_ltdl_install,$enable_ltdl_convenience in + *yes*) ;; + *) enable_ltdl_convenience=yes ;; +esac + + if test no != "${enable_ltdl_install-no}"; then + INSTALL_LTDL_TRUE= + INSTALL_LTDL_FALSE='#' +else + INSTALL_LTDL_TRUE='#' + INSTALL_LTDL_FALSE= +fi + + if test no != "${enable_ltdl_convenience-no}"; then + CONVENIENCE_LTDL_TRUE= + CONVENIENCE_LTDL_FALSE='#' +else + CONVENIENCE_LTDL_TRUE='#' + CONVENIENCE_LTDL_FALSE= +fi + + + + + + +# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS +# the user used. This is so that ltdl.h can pick up the parent projects +# config.h file, The first file in AC_CONFIG_HEADERS must contain the +# definitions required by ltdl.c. +# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). + + + +for ac_header in unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_func in closedir opendir readdir +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + case " $LIBOBJS " in + *" lt__dirent.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS lt__dirent.$ac_objext" + ;; +esac + +fi +done + +for ac_func in strlcat strlcpy +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + case " $LIBOBJS " in + *" lt__strl.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS lt__strl.$ac_objext" + ;; +esac + +fi +done + + + +cat >>confdefs.h <<_ACEOF +#define LT_LIBEXT "$libext" +_ACEOF + + +name= +eval "lt_libprefix=\"$libname_spec\"" + +cat >>confdefs.h <<_ACEOF +#define LT_LIBPREFIX "$lt_libprefix" +_ACEOF + + +name=ltdl +eval "LTDLOPEN=\"$libname_spec\"" + + + + +## -------- ## +## Outputs. ## +## -------- ## +ac_config_files="$ac_config_files Makefile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${INSTALL_LTDL_TRUE}" && test -z "${INSTALL_LTDL_FALSE}"; then + as_fn_error $? "conditional \"INSTALL_LTDL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CONVENIENCE_LTDL_TRUE}" && test -z "${CONVENIENCE_LTDL_FALSE}"; then + as_fn_error $? "conditional \"CONVENIENCE_LTDL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +LT_CONFIG_H=config.h + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by libltdl $as_me 2.4.3a, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +libltdl config.status 2.4.3a +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in AS \ +DLLTOOL \ +OBJDUMP \ +SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config-h.in" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Assembler program. +AS=$lt_AS + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Object dumper program. +OBJDUMP=$lt_OBJDUMP + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + diff --git a/squashfs-root/usr/share/libtool/configure.ac b/squashfs-root/usr/share/libtool/configure.ac new file mode 100644 index 0000000..33ca077 --- /dev/null +++ b/squashfs-root/usr/share/libtool/configure.ac @@ -0,0 +1,76 @@ +# Process this file with autoconf to create configure. -*- autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# NOTE: The canonical source of this file is maintained with the +# GNU Libtool package. Report bugs to bug-libtool@gnu.org. +# +# GNU Libltdl 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 of the License, or (at your option) any later version. +# +# As a special exception to the GNU Lesser General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libltdl is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU LesserGeneral Public +# License along with GNU Libltdl; see the file COPYING.LIB. If not, a +# copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#### + +# This configure.ac is not used at all by the libtool bootstrap, but +# is copied to the ltdl subdirectory if you libtoolize --ltdl your own +# project. Adding LT_WITH_LTDL to your project configure.ac will then +# configure this directory if your user doesn't want to use the installed +# libltdl. + +AC_PREREQ(2.59)dnl We use AS_HELP_STRING + + +## ------------------------ ## +## Autoconf initialisation. ## +## ------------------------ ## +AC_INIT([libltdl], [2.4.3a], [bug-libtool@gnu.org]) +AC_CONFIG_HEADERS([config.h:config-h.in]) +AC_CONFIG_SRCDIR([ltdl.c]) +AC_CONFIG_AUX_DIR([../build-aux]) +LT_CONFIG_LTDL_DIR([.]) # I am me! + + +## ------------------------ ## +## Automake Initialisation. ## +## ------------------------ ## + +AM_INIT_AUTOMAKE([gnu subdir-objects]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + + +## ------------------------------- ## +## Libtool specific configuration. ## +## ------------------------------- ## +pkgdatadir='$datadir'"/$PACKAGE" + + +## ----------------------- ## +## Libtool initialisation. ## +## ----------------------- ## +LT_INIT([dlopen win32-dll]) +_LTDL_SETUP + + +## -------- ## +## Outputs. ## +## -------- ## +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT diff --git a/squashfs-root/usr/share/libtool/libltdl/lt__alloc.h b/squashfs-root/usr/share/libtool/libltdl/lt__alloc.h new file mode 100644 index 0000000..db1a989 --- /dev/null +++ b/squashfs-root/usr/share/libtool/libltdl/lt__alloc.h @@ -0,0 +1,58 @@ +/* lt__alloc.h -- internal memory management interface + + Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. + Written by Gary V. Vaughan, 2004 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#if !defined LT__ALLOC_H +#define LT__ALLOC_H 1 + +#include "lt_system.h" + +LT_BEGIN_C_DECLS + +#define MALLOC(tp, n) (tp*) lt__malloc((n) * sizeof(tp)) +#define REALLOC(tp, mem, n) (tp*) lt__realloc((mem), (n) * sizeof(tp)) +#define FREE(mem) LT_STMT_START { \ + free (mem); mem = NULL; } LT_STMT_END +#define MEMREASSIGN(p, q) LT_STMT_START { \ + if ((p) != (q)) { free (p); (p) = (q); (q) = 0; } \ + } LT_STMT_END + +/* If set, this function is called when memory allocation has failed. */ +LT_SCOPE void (*lt__alloc_die) (void); + +LT_SCOPE void *lt__malloc (size_t n); +LT_SCOPE void *lt__zalloc (size_t n); +LT_SCOPE void *lt__realloc (void *mem, size_t n); +LT_SCOPE void *lt__memdup (void const *mem, size_t n); + +LT_SCOPE char *lt__strdup (const char *string); + +LT_END_C_DECLS + +#endif /*!defined LT__ALLOC_H*/ diff --git a/squashfs-root/usr/share/libtool/libltdl/lt__argz_.h b/squashfs-root/usr/share/libtool/libltdl/lt__argz_.h new file mode 100644 index 0000000..e0d3b18 --- /dev/null +++ b/squashfs-root/usr/share/libtool/libltdl/lt__argz_.h @@ -0,0 +1,69 @@ +/* lt__argz.h -- internal argz interface for non-glibc systems + + Copyright (C) 2004, 2007-2008, 2011-2015 Free Software Foundation, + Inc. + Written by Gary V. Vaughan, 2004 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#if !defined LT__ARGZ_H +#define LT__ARGZ_H 1 + +#include +#define __need_error_t +#include +#include + +#if defined LTDL +# include "lt__glibc.h" +# include "lt_system.h" +#else +# define LT_SCOPE +#endif + +#if defined __cplusplus +extern "C" { +#endif + +LT_SCOPE error_t argz_append (char **pargz, size_t *pargz_len, + const char *buf, size_t buf_len); +LT_SCOPE error_t argz_create_sep(const char *str, int delim, + char **pargz, size_t *pargz_len); +LT_SCOPE error_t argz_insert (char **pargz, size_t *pargz_len, + char *before, const char *entry); +LT_SCOPE char * argz_next (char *argz, size_t argz_len, + const char *entry); +LT_SCOPE void argz_stringify (char *argz, size_t argz_len, int sep); + +#if defined __cplusplus +} +#endif + +#if !defined LTDL +# undef LT_SCOPE +#endif + +#endif /*!defined LT__ARGZ_H*/ diff --git a/squashfs-root/usr/share/libtool/libltdl/lt__dirent.h b/squashfs-root/usr/share/libtool/libltdl/lt__dirent.h new file mode 100644 index 0000000..9b6aaea --- /dev/null +++ b/squashfs-root/usr/share/libtool/libltdl/lt__dirent.h @@ -0,0 +1,88 @@ +/* lt__dirent.h -- internal directory entry scanning interface + + Copyright (C) 2001, 2004, 2006, 2011-2015 Free Software Foundation, + Inc. + Written by Bob Friesenhahn, 2001 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#if !defined LT__DIRENT_H +#define LT__DIRENT_H 1 + +#if defined LT_CONFIG_H +# include LT_CONFIG_H +#else +# include +#endif + +#include "lt_system.h" + +#ifdef HAVE_DIRENT_H +/* We have a fully operational dirent subsystem. */ +# include +# define D_NAMLEN(dirent) (strlen((dirent)->d_name)) + +#elif defined __WINDOWS__ +/* Use some wrapper code to emulate dirent on windows.. */ +# define WINDOWS_DIRENT_EMULATION 1 + +# include + +# define D_NAMLEN(dirent) (strlen((dirent)->d_name)) +# define dirent lt__dirent +# define DIR lt__DIR +# define opendir lt__opendir +# define readdir lt__readdir +# define closedir lt__closedir + +LT_BEGIN_C_DECLS + +struct dirent +{ + char d_name[LT_FILENAME_MAX]; + int d_namlen; +}; + +typedef struct +{ + HANDLE hSearch; + WIN32_FIND_DATA Win32FindData; + BOOL firsttime; + struct dirent file_info; +} DIR; + + +LT_SCOPE DIR * opendir (const char *path); +LT_SCOPE struct dirent *readdir (DIR *entry); +LT_SCOPE void closedir (DIR *entry); + +LT_END_C_DECLS + +#else /* !defined __WINDOWS__*/ +ERROR - cannot find dirent +#endif /*!defined __WINDOWS__*/ + +#endif /*!defined LT__DIRENT_H*/ diff --git a/squashfs-root/usr/share/libtool/libltdl/lt__glibc.h b/squashfs-root/usr/share/libtool/libltdl/lt__glibc.h new file mode 100644 index 0000000..80ee450 --- /dev/null +++ b/squashfs-root/usr/share/libtool/libltdl/lt__glibc.h @@ -0,0 +1,89 @@ +/* lt__glibc.h -- support for non glibc environments + + Copyright (C) 2004, 2006-2007, 2011-2015 Free Software Foundation, + Inc. + Written by Gary V. Vaughan, 2004 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#if !defined LT__GLIBC_H +#define LT__GLIBC_H 1 + +#if defined LT_CONFIG_H +# include LT_CONFIG_H +#else +# include +#endif + +#if !defined HAVE_ARGZ_H || !defined HAVE_WORKING_ARGZ +/* Redefine any glibc symbols we reimplement to import the + implementations into our lt__ namespace so we don't ever + clash with the system library if our clients use argz_* + from there in addition to libltdl. */ +# undef argz_append +# define argz_append lt__argz_append +# undef argz_create_sep +# define argz_create_sep lt__argz_create_sep +# undef argz_insert +# define argz_insert lt__argz_insert +# undef argz_next +# define argz_next lt__argz_next +# undef argz_stringify +# define argz_stringify lt__argz_stringify + +# include + +#else + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#ifdef __cplusplus +} +#endif + +#endif /*!defined HAVE_ARGZ_H || !defined HAVE_WORKING_ARGZ*/ + +# define slist_concat lt__slist_concat +# define slist_cons lt__slist_cons +# define slist_delete lt__slist_delete +# define slist_remove lt__slist_remove +# define slist_reverse lt__slist_reverse +# define slist_sort lt__slist_sort +# define slist_tail lt__slist_tail +# define slist_nth lt__slist_nth +# define slist_find lt__slist_find +# define slist_length lt__slist_length +# define slist_foreach lt__slist_foreach +# define slist_box lt__slist_box +# define slist_unbox lt__slist_unbox + +#include + +#endif /*!defined LT__GLIBC_H*/ diff --git a/squashfs-root/usr/share/libtool/libltdl/lt__private.h b/squashfs-root/usr/share/libtool/libltdl/lt__private.h new file mode 100644 index 0000000..a91849b --- /dev/null +++ b/squashfs-root/usr/share/libtool/libltdl/lt__private.h @@ -0,0 +1,149 @@ +/* lt__private.h -- internal apis for libltdl + + Copyright (C) 2004-2008, 2011-2015 Free Software Foundation, Inc. + Written by Gary V. Vaughan, 2004 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +This library 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy con be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#if !defined LT__PRIVATE_H +#define LT__PRIVATE_H 1 + +#if defined LT_CONFIG_H +# include LT_CONFIG_H +#else +# include +#endif + +#include +#include +#include +#include +#include + +#if defined HAVE_UNISTD_H +# include +#endif + +/* Import internal interfaces... */ +#include "lt__alloc.h" +#include "lt__dirent.h" +#include "lt__strl.h" +#include "lt__glibc.h" + +/* ...and all exported interfaces. */ +#include "ltdl.h" + +#if defined WITH_DMALLOC +# include +#endif + +/* DLL building support on win32 hosts; mostly to workaround their + ridiculous implementation of data symbol exporting. */ +#ifndef LT_GLOBAL_DATA +# if defined __WINDOWS__ || defined __CYGWIN__ +# if defined DLL_EXPORT /* defined by libtool (if required) */ +# define LT_GLOBAL_DATA __declspec(dllexport) +# endif +# endif +# ifndef LT_GLOBAL_DATA +# define LT_GLOBAL_DATA /* static linking or !__WINDOWS__ */ +# endif +#endif + +#ifndef __attribute__ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ +# define __attribute__(x) +# endif +#endif + +#ifndef LT__UNUSED +# define LT__UNUSED __attribute__ ((__unused__)) +#endif + + +LT_BEGIN_C_DECLS + +#if !defined errno +extern int errno; +#endif + +LT_SCOPE void lt__alloc_die_callback (void); + + +/* For readability: */ +#define STRNEQ(s1, s2) (strcmp((s1), (s2)) != 0) +#define STREQ(s1, s2) (strcmp((s1), (s2)) == 0) + + + +/* --- OPAQUE STRUCTURES DECLARED IN LTDL.H --- */ + +/* This type is used for the array of interface data sets in each handler. */ +typedef struct { + lt_dlinterface_id key; + void * data; +} lt_interface_data; + +struct lt__handle { + lt_dlhandle next; + const lt_dlvtable * vtable; /* dlopening interface */ + lt_dlinfo info; /* user visible fields */ + int depcount; /* number of dependencies */ + lt_dlhandle * deplibs; /* dependencies */ + lt_module module; /* system module handle */ + void * system; /* system specific data */ + lt_interface_data * interface_data; /* per caller associated data */ + int flags; /* various boolean stats */ +}; + +struct lt__advise { + unsigned int try_ext:1; /* try system library extensions. */ + unsigned int is_resident:1; /* module can't be unloaded. */ + unsigned int is_symglobal:1; /* module symbols can satisfy + subsequently loaded modules. */ + unsigned int is_symlocal:1; /* module symbols are only available + locally. */ + unsigned int try_preload_only:1;/* only preloaded modules will be tried. */ +}; + +/* --- ERROR HANDLING --- */ + +/* Extract the diagnostic strings from the error table macro in the same + order as the enumerated indices in lt_error.h. */ + +#define LT__STRERROR(name) lt__error_string(LT_CONC(LT_ERROR_,name)) + +#define LT__GETERROR(lvalue) (lvalue) = lt__get_last_error() +#define LT__SETERRORSTR(errormsg) lt__set_last_error(errormsg) +#define LT__SETERROR(errorcode) LT__SETERRORSTR(LT__STRERROR(errorcode)) + +LT_SCOPE const char *lt__error_string (int errorcode); +LT_SCOPE const char *lt__get_last_error (void); +LT_SCOPE const char *lt__set_last_error (const char *errormsg); + +LT_END_C_DECLS + +#endif /*!defined LT__PRIVATE_H*/ diff --git a/squashfs-root/usr/share/libtool/libltdl/lt__strl.h b/squashfs-root/usr/share/libtool/libltdl/lt__strl.h new file mode 100644 index 0000000..a1db2e6 --- /dev/null +++ b/squashfs-root/usr/share/libtool/libltdl/lt__strl.h @@ -0,0 +1,53 @@ +/* lt__strl.h -- size-bounded string copying and concatenation + + Copyright (C) 2004, 2006, 2011-2015 Free Software Foundation, Inc. + Written by Bob Friesenhahn, 2004 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#if !defined LT__STRL_H +#define LT__STRL_H 1 + +#if defined LT_CONFIG_H +# include LT_CONFIG_H +#else +# include +#endif + +#include +#include "lt_system.h" + +#if !defined HAVE_STRLCAT +# define strlcat(dst,src,dstsize) lt_strlcat(dst,src,dstsize) +LT_SCOPE size_t lt_strlcat(char *dst, const char *src, const size_t dstsize); +#endif /* !defined HAVE_STRLCAT */ + +#if !defined HAVE_STRLCPY +# define strlcpy(dst,src,dstsize) lt_strlcpy(dst,src,dstsize) +LT_SCOPE size_t lt_strlcpy(char *dst, const char *src, const size_t dstsize); +#endif /* !defined HAVE_STRLCPY */ + +#endif /*!defined LT__STRL_H*/ diff --git a/squashfs-root/usr/share/libtool/libltdl/lt_dlloader.h b/squashfs-root/usr/share/libtool/libltdl/lt_dlloader.h new file mode 100644 index 0000000..66cf047 --- /dev/null +++ b/squashfs-root/usr/share/libtool/libltdl/lt_dlloader.h @@ -0,0 +1,91 @@ +/* lt_dlloader.h -- dynamic library loader interface + + Copyright (C) 2004, 2007-2008, 2011-2015 Free Software Foundation, + Inc. + Written by Gary V. Vaughan, 2004 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#if !defined LT_DLLOADER_H +#define LT_DLLOADER_H 1 + +#include + +LT_BEGIN_C_DECLS + +typedef void * lt_dlloader; +typedef void * lt_module; +typedef void * lt_user_data; +typedef struct lt__advise * lt_dladvise; + +/* Function pointer types for module loader vtable entries: */ +typedef lt_module lt_module_open (lt_user_data data, + const char *filename, + lt_dladvise advise); +typedef int lt_module_close (lt_user_data data, + lt_module module); +typedef void * lt_find_sym (lt_user_data data, lt_module module, + const char *symbolname); +typedef int lt_dlloader_init (lt_user_data data); +typedef int lt_dlloader_exit (lt_user_data data); + +/* Default priority is LT_DLLOADER_PREPEND if none is explicitly given. */ +typedef enum { + LT_DLLOADER_PREPEND = 0, LT_DLLOADER_APPEND +} lt_dlloader_priority; + +/* This structure defines a module loader, as populated by the get_vtable + entry point of each loader. */ +typedef struct { + const char * name; + const char * sym_prefix; + lt_module_open * module_open; + lt_module_close * module_close; + lt_find_sym * find_sym; + lt_dlloader_init * dlloader_init; + lt_dlloader_exit * dlloader_exit; + lt_user_data dlloader_data; + lt_dlloader_priority priority; +} lt_dlvtable; + +LT_SCOPE int lt_dlloader_add (const lt_dlvtable *vtable); +LT_SCOPE lt_dlloader lt_dlloader_next (const lt_dlloader loader); + +LT_SCOPE lt_dlvtable * lt_dlloader_remove (const char *name); +LT_SCOPE const lt_dlvtable *lt_dlloader_find (const char *name); +LT_SCOPE const lt_dlvtable *lt_dlloader_get (lt_dlloader loader); + + +/* Type of a function to get a loader's vtable: */ +typedef const lt_dlvtable *lt_get_vtable (lt_user_data data); + +#ifdef LT_DEBUG_LOADERS +LT_SCOPE void lt_dlloader_dump (void); +#endif + +LT_END_C_DECLS + +#endif /*!defined LT_DLLOADER_H*/ diff --git a/squashfs-root/usr/share/libtool/libltdl/lt_error.h b/squashfs-root/usr/share/libtool/libltdl/lt_error.h new file mode 100644 index 0000000..367c36b --- /dev/null +++ b/squashfs-root/usr/share/libtool/libltdl/lt_error.h @@ -0,0 +1,86 @@ +/* lt_error.h -- error propagation interface + + Copyright (C) 1999-2001, 2004, 2007, 2011-2015 Free Software + Foundation, Inc. + Written by Thomas Tanner, 1999 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +/* Only include this header file once. */ +#if !defined LT_ERROR_H +#define LT_ERROR_H 1 + +#include + +LT_BEGIN_C_DECLS + +/* Defining error strings alongside their symbolic names in a macro in + this way allows us to expand the macro in different contexts with + confidence that the enumeration of symbolic names will map correctly + onto the table of error strings. \0 is appended to the strings to + expilicitely initialize the string terminator. */ +#define lt_dlerror_table \ + LT_ERROR(UNKNOWN, "unknown error\0") \ + LT_ERROR(DLOPEN_NOT_SUPPORTED, "dlopen support not available\0") \ + LT_ERROR(INVALID_LOADER, "invalid loader\0") \ + LT_ERROR(INIT_LOADER, "loader initialization failed\0") \ + LT_ERROR(REMOVE_LOADER, "loader removal failed\0") \ + LT_ERROR(FILE_NOT_FOUND, "file not found\0") \ + LT_ERROR(DEPLIB_NOT_FOUND, "dependency library not found\0") \ + LT_ERROR(NO_SYMBOLS, "no symbols defined\0") \ + LT_ERROR(CANNOT_OPEN, "can't open the module\0") \ + LT_ERROR(CANNOT_CLOSE, "can't close the module\0") \ + LT_ERROR(SYMBOL_NOT_FOUND, "symbol not found\0") \ + LT_ERROR(NO_MEMORY, "not enough memory\0") \ + LT_ERROR(INVALID_HANDLE, "invalid module handle\0") \ + LT_ERROR(BUFFER_OVERFLOW, "internal buffer overflow\0") \ + LT_ERROR(INVALID_ERRORCODE, "invalid errorcode\0") \ + LT_ERROR(SHUTDOWN, "library already shutdown\0") \ + LT_ERROR(CLOSE_RESIDENT_MODULE, "can't close resident module\0") \ + LT_ERROR(INVALID_MUTEX_ARGS, "internal error (code withdrawn)\0")\ + LT_ERROR(INVALID_POSITION, "invalid search path insert position\0")\ + LT_ERROR(CONFLICTING_FLAGS, "symbol visibility can be global or local\0") + +/* Enumerate the symbolic error names. */ +enum { +#define LT_ERROR(name, diagnostic) LT_CONC(LT_ERROR_, name), + lt_dlerror_table +#undef LT_ERROR + + LT_ERROR_MAX +}; + +/* Should be max of the error string lengths above (plus one for C++) */ +#define LT_ERROR_LEN_MAX (41) + +/* These functions are only useful from inside custom module loaders. */ +LT_SCOPE int lt_dladderror (const char *diagnostic); +LT_SCOPE int lt_dlseterror (int errorcode); + + +LT_END_C_DECLS + +#endif /*!defined LT_ERROR_H*/ diff --git a/squashfs-root/usr/share/libtool/libltdl/lt_system.h b/squashfs-root/usr/share/libtool/libltdl/lt_system.h new file mode 100644 index 0000000..a9bc7ec --- /dev/null +++ b/squashfs-root/usr/share/libtool/libltdl/lt_system.h @@ -0,0 +1,166 @@ +/* lt_system.h -- system portability abstraction layer + + Copyright (C) 2004, 2007, 2010-2015 Free Software Foundation, Inc. + Written by Gary V. Vaughan, 2004 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#if !defined LT_SYSTEM_H +#define LT_SYSTEM_H 1 + +#include +#include +#include + +/* Some systems do not define EXIT_*, even with STDC_HEADERS. */ +#if !defined EXIT_SUCCESS +# define EXIT_SUCCESS 0 +#endif +#if !defined EXIT_FAILURE +# define EXIT_FAILURE 1 +#endif + +/* Just pick a big number... */ +#define LT_FILENAME_MAX 2048 + + +/* Saves on those hard to debug '\0' typos.... */ +#define LT_EOS_CHAR '\0' + +/* LTDL_BEGIN_C_DECLS should be used at the beginning of your declarations, + so that C++ compilers don't mangle their names. Use LTDL_END_C_DECLS at + the end of C declarations. */ +#if defined __cplusplus +# define LT_BEGIN_C_DECLS extern "C" { +# define LT_END_C_DECLS } +#else +# define LT_BEGIN_C_DECLS /* empty */ +# define LT_END_C_DECLS /* empty */ +#endif + +/* LT_STMT_START/END are used to create macros that expand to a + a single compound statement in a portable way. */ +#if defined __GNUC__ && !defined __STRICT_ANSI__ && !defined __cplusplus +# define LT_STMT_START (void)( +# define LT_STMT_END ) +#else +# if (defined sun || defined __sun__) +# define LT_STMT_START if (1) +# define LT_STMT_END else (void)0 +# else +# define LT_STMT_START do +# define LT_STMT_END while (0) +# endif +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +/* Canonicalise Windows and Cygwin recognition macros. + To match the values set by recent Cygwin compilers, make sure that if + __CYGWIN__ is defined (after canonicalisation), __WINDOWS__ is NOT! */ +#if defined __CYGWIN32__ && !defined __CYGWIN__ +# define __CYGWIN__ __CYGWIN32__ +#endif +#if defined __CYGWIN__ +# if defined __WINDOWS__ +# undef __WINDOWS__ +# endif +#elif defined _WIN32 +# define __WINDOWS__ _WIN32 +#elif defined WIN32 +# define __WINDOWS__ WIN32 +#endif +#if defined __CYGWIN__ && defined __WINDOWS__ +# undef __WINDOWS__ +#endif + + +/* DLL building support on win32 hosts; mostly to workaround their + ridiculous implementation of data symbol exporting. */ +#if !defined LT_SCOPE +# if defined __WINDOWS__ || defined __CYGWIN__ +# if defined DLL_EXPORT /* defined by libtool (if required) */ +# define LT_SCOPE extern __declspec(dllexport) +# endif +# if defined LIBLTDL_DLL_IMPORT /* define if linking with this dll */ + /* note: cygwin/mingw compilers can rely instead on auto-import */ +# define LT_SCOPE extern __declspec(dllimport) +# endif +# endif +# if !defined LT_SCOPE /* static linking or !__WINDOWS__ */ +# define LT_SCOPE extern +# endif +#endif + +#if defined __WINDOWS__ +/* LT_DIRSEP_CHAR is accepted *in addition* to '/' as a directory + separator when it is set. */ +# define LT_DIRSEP_CHAR '\\' +# define LT_PATHSEP_CHAR ';' +#else +# define LT_PATHSEP_CHAR ':' +#endif + +#if defined _MSC_VER /* Visual Studio */ +# define R_OK 4 +#endif + +/* fopen() mode flags for reading a text file */ +#undef LT_READTEXT_MODE +#if defined __WINDOWS__ || defined __CYGWIN__ +# define LT_READTEXT_MODE "rt" +#else +# define LT_READTEXT_MODE "r" +#endif + +/* The extra indirection to the LT__STR and LT__CONC macros is required so + that if the arguments to LT_STR() (or LT_CONC()) are themselves macros, + they will be expanded before being quoted. */ +#ifndef LT_STR +# define LT__STR(arg) #arg +# define LT_STR(arg) LT__STR(arg) +#endif + +#ifndef LT_CONC +# define LT__CONC(a, b) a##b +# define LT_CONC(a, b) LT__CONC(a, b) +#endif +#ifndef LT_CONC3 +# define LT__CONC3(a, b, c) a##b##c +# define LT_CONC3(a, b, c) LT__CONC3(a, b, c) +#endif + +#endif /*!defined LT_SYSTEM_H*/ diff --git a/squashfs-root/usr/share/libtool/libltdl/slist.h b/squashfs-root/usr/share/libtool/libltdl/slist.h new file mode 100644 index 0000000..ba54736 --- /dev/null +++ b/squashfs-root/usr/share/libtool/libltdl/slist.h @@ -0,0 +1,97 @@ +/* slist.h -- generalised singly linked lists + + Copyright (C) 2000, 2004, 2009, 2011-2015 Free Software Foundation, + Inc. + Written by Gary V. Vaughan, 2000 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +/* A generalised list. This is deliberately transparent so that you + can make the NEXT field of all your chained data structures first, + and then cast them to '(SList *)' so that they can be manipulated + by this API. + + Alternatively, you can generate raw SList elements using slist_new(), + and put the element data in the USERDATA field. Either way you + get to manage the memory involved by yourself. +*/ + +#if !defined SLIST_H +#define SLIST_H 1 + +#if defined LTDL +# include +# include +#else +# define LT_SCOPE +#endif + +#include + +#if defined __cplusplus +extern "C" { +#endif + +typedef struct slist { + struct slist *next; /* chain forward pointer*/ + const void *userdata; /* for boxed 'SList' item */ +} SList; + +typedef void * SListCallback (SList *item, void *userdata); +typedef int SListCompare (const SList *item1, const SList *item2, + void *userdata); + +LT_SCOPE SList *slist_concat (SList *head, SList *tail); +LT_SCOPE SList *slist_cons (SList *item, SList *slist); + +LT_SCOPE SList *slist_delete (SList *slist, void (*delete_fct) (void *item)); +LT_SCOPE SList *slist_remove (SList **phead, SListCallback *find, + void *matchdata); +LT_SCOPE SList *slist_reverse (SList *slist); +LT_SCOPE SList *slist_sort (SList *slist, SListCompare *compare, + void *userdata); + +LT_SCOPE SList *slist_tail (SList *slist); +LT_SCOPE SList *slist_nth (SList *slist, size_t n); +LT_SCOPE void * slist_find (SList *slist, SListCallback *find, + void *matchdata); +LT_SCOPE size_t slist_length (SList *slist); + +LT_SCOPE void * slist_foreach (SList *slist, SListCallback *foreach, + void *userdata); + +LT_SCOPE SList *slist_box (const void *userdata); +LT_SCOPE void * slist_unbox (SList *item); + +#if defined __cplusplus +} +#endif + +#if !defined LTDL +# undef LT_SCOPE +#endif + +#endif /*!defined SLIST_H*/ diff --git a/squashfs-root/usr/share/libtool/loaders/dld_link.c b/squashfs-root/usr/share/libtool/loaders/dld_link.c new file mode 100644 index 0000000..a73880f --- /dev/null +++ b/squashfs-root/usr/share/libtool/loaders/dld_link.c @@ -0,0 +1,158 @@ +/* loader-dld_link.c -- dynamic linking with dld + + Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software + Foundation, Inc. + Written by Thomas Tanner, 1998 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" +#include "lt_dlloader.h" + +/* Use the preprocessor to rename non-static symbols to avoid namespace + collisions when the loader code is statically linked into libltdl. + Use the "_LTX_" prefix so that the symbol addresses can + be fetched from the preloaded symbol list by lt_dlsym(): */ +#define get_vtable dld_link_LTX_get_vtable + +LT_BEGIN_C_DECLS +LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); +LT_END_C_DECLS + + +/* Boilerplate code to set up the vtable for hooking this loader into + libltdl's loader list: */ +static int vl_exit (lt_user_data loader_data); +static lt_module vm_open (lt_user_data loader_data, const char *filename, + lt_dladvise advise); +static int vm_close (lt_user_data loader_data, lt_module module); +static void * vm_sym (lt_user_data loader_data, lt_module module, + const char *symbolname); + +static lt_dlvtable *vtable = 0; + +/* Return the vtable for this loader, only the name and sym_prefix + attributes (plus the virtual function implementations, obviously) + change between loaders. */ +lt_dlvtable * +get_vtable (lt_user_data loader_data) +{ + if (!vtable) + { + vtable = lt__zalloc (sizeof *vtable); + } + + if (vtable && !vtable->name) + { + vtable->name = "lt_dld_link"; + vtable->module_open = vm_open; + vtable->module_close = vm_close; + vtable->find_sym = vm_sym; + vtable->dlloader_exit = vl_exit; + vtable->dlloader_data = loader_data; + vtable->priority = LT_DLLOADER_APPEND; + } + + if (vtable && (vtable->dlloader_data != loader_data)) + { + LT__SETERROR (INIT_LOADER); + return 0; + } + + return vtable; +} + + + +/* --- IMPLEMENTATION --- */ + + +#if defined HAVE_DLD_H +# include +#endif + +/* A function called through the vtable when this loader is no + longer needed by the application. */ +static int +vl_exit (lt_user_data loader_data LT__UNUSED) +{ + vtable = NULL; + return 0; +} + +/* A function called through the vtable to open a module with this + loader. Returns an opaque representation of the newly opened + module for processing with this loader's other vtable functions. */ +static lt_module +vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, + lt_dladvise advise LT__UNUSED) +{ + lt_module module = lt__strdup (filename); + + if (dld_link (filename) != 0) + { + LT__SETERROR (CANNOT_OPEN); + FREE (module); + } + + return module; +} + +/* A function called through the vtable when a particular module + should be unloaded. */ +static int +vm_close (lt_user_data loader_data LT__UNUSED, lt_module module) +{ + int errors = 0; + + if (dld_unlink_by_file ((char*)(module), 1) != 0) + { + LT__SETERROR (CANNOT_CLOSE); + ++errors; + } + else + { + FREE (module); + } + + return errors; +} + +/* A function called through the vtable to get the address of + a symbol loaded from a particular module. */ +static void * +vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module LT__UNUSED, + const char *name) +{ + void *address = dld_get_func (name); + + if (!address) + { + LT__SETERROR (SYMBOL_NOT_FOUND); + } + + return address; +} diff --git a/squashfs-root/usr/share/libtool/loaders/dlopen.c b/squashfs-root/usr/share/libtool/loaders/dlopen.c new file mode 100644 index 0000000..0bc562c --- /dev/null +++ b/squashfs-root/usr/share/libtool/loaders/dlopen.c @@ -0,0 +1,275 @@ +/* loader-dlopen.c -- dynamic linking with dlopen/dlsym + + Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software + Foundation, Inc. + Written by Thomas Tanner, 1998 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" +#include "lt_dlloader.h" + +/* Use the preprocessor to rename non-static symbols to avoid namespace + collisions when the loader code is statically linked into libltdl. + Use the "_LTX_" prefix so that the symbol addresses can + be fetched from the preloaded symbol list by lt_dlsym(): */ +#define get_vtable dlopen_LTX_get_vtable + +LT_BEGIN_C_DECLS +LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); +LT_END_C_DECLS + + +/* Boilerplate code to set up the vtable for hooking this loader into + libltdl's loader list: */ +static int vl_exit (lt_user_data loader_data); +static lt_module vm_open (lt_user_data loader_data, const char *filename, + lt_dladvise advise); +static int vm_close (lt_user_data loader_data, lt_module module); +static void * vm_sym (lt_user_data loader_data, lt_module module, + const char *symbolname); + +static lt_dlvtable *vtable = 0; + +/* Return the vtable for this loader, only the name and sym_prefix + attributes (plus the virtual function implementations, obviously) + change between loaders. */ +lt_dlvtable * +get_vtable (lt_user_data loader_data) +{ + if (!vtable) + { + vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable); + } + + if (vtable && !vtable->name) + { + vtable->name = "lt_dlopen"; +#if defined DLSYM_USCORE + vtable->sym_prefix = "_"; +#endif + vtable->module_open = vm_open; + vtable->module_close = vm_close; + vtable->find_sym = vm_sym; + vtable->dlloader_exit = vl_exit; + vtable->dlloader_data = loader_data; + vtable->priority = LT_DLLOADER_PREPEND; + } + + if (vtable && (vtable->dlloader_data != loader_data)) + { + LT__SETERROR (INIT_LOADER); + return 0; + } + + return vtable; +} + + + +/* --- IMPLEMENTATION --- */ + + +#if defined HAVE_DLFCN_H +# include +#endif + +#if defined HAVE_SYS_DL_H +# include +#endif + + +/* We may have to define LT_LAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#if !defined LT_LAZY_OR_NOW +# if defined RTLD_LAZY +# define LT_LAZY_OR_NOW RTLD_LAZY +# else +# if defined DL_LAZY +# define LT_LAZY_OR_NOW DL_LAZY +# endif +# endif /* !RTLD_LAZY */ +#endif +#if !defined LT_LAZY_OR_NOW +# if defined RTLD_NOW +# define LT_LAZY_OR_NOW RTLD_NOW +# else +# if defined DL_NOW +# define LT_LAZY_OR_NOW DL_NOW +# endif +# endif /* !RTLD_NOW */ +#endif +#if !defined LT_LAZY_OR_NOW +# define LT_LAZY_OR_NOW 0 +#endif /* !LT_LAZY_OR_NOW */ + +/* We only support local and global symbols from modules for loaders + that provide such a thing, otherwise the system default is used. */ +#if !defined RTLD_GLOBAL +# if defined DL_GLOBAL +# define RTLD_GLOBAL DL_GLOBAL +# endif +#endif /* !RTLD_GLOBAL */ +#if !defined RTLD_LOCAL +# if defined DL_LOCAL +# define RTLD_LOCAL DL_LOCAL +# endif +#endif /* !RTLD_LOCAL */ + +#if defined HAVE_DLERROR +# define DLERROR(arg) dlerror () +#else +# define DLERROR(arg) LT__STRERROR (arg) +#endif + +#define DL__SETERROR(errorcode) \ + LT__SETERRORSTR (DLERROR (errorcode)) + + +/* A function called through the vtable when this loader is no + longer needed by the application. */ +static int +vl_exit (lt_user_data loader_data LT__UNUSED) +{ + vtable = NULL; + return 0; +} + + +/* A function called through the vtable to open a module with this + loader. Returns an opaque representation of the newly opened + module for processing with this loader's other vtable functions. */ +static lt_module +vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, + lt_dladvise advise) +{ + int module_flags = LT_LAZY_OR_NOW; + lt_module module; +#ifdef RTLD_MEMBER + int len = LT_STRLEN (filename); +#endif + + if (advise) + { +#ifdef RTLD_GLOBAL + /* If there is some means of asking for global symbol resolution, + do so. */ + if (advise->is_symglobal) + module_flags |= RTLD_GLOBAL; +#else + /* Otherwise, reset that bit so the caller can tell it wasn't + acted on. */ + advise->is_symglobal = 0; +#endif + +/* And similarly for local only symbol resolution. */ +#ifdef RTLD_LOCAL + if (advise->is_symlocal) + module_flags |= RTLD_LOCAL; +#else + advise->is_symlocal = 0; +#endif + } + +#ifdef RTLD_MEMBER /* AIX */ + if (len >= 4) /* at least "l(m)" */ + { + /* Advise loading an archive member only if the filename really + contains both the opening and closing parent, and a member. */ + if (filename[len-1] == ')') + { + const char *opening = strrchr(filename, '('); + if (opening && opening < (filename+len-2) && strchr(opening+1, '/') == NULL) + module_flags |= RTLD_MEMBER; + } + } +#endif + + module = dlopen (filename, module_flags); + +#if defined RTLD_MEMBER && defined LT_SHARED_LIB_MEMBER + if (!module && len && !(module_flags & RTLD_MEMBER) && errno == ENOEXEC) + { + /* Loading without a member specified failed with "Exec format error". + So the file is there, but either has wrong bitwidth, or is an + archive eventually containing the default shared archive member. + Retry with default member, getting same error in worst case. */ + const char *member = LT_SHARED_LIB_MEMBER; + + char *attempt = MALLOC (char, len + strlen (member) + 1); + if (!attempt) + { + LT__SETERROR (NO_MEMORY); + return module; + } + + sprintf (attempt, "%s%s", filename, member); + module = vm_open (loader_data, attempt, advise); + FREE (attempt); + return module; + } +#endif + + if (!module) + { + DL__SETERROR (CANNOT_OPEN); + } + + return module; +} + + +/* A function called through the vtable when a particular module + should be unloaded. */ +static int +vm_close (lt_user_data loader_data LT__UNUSED, lt_module module) +{ + int errors = 0; + + if (dlclose (module) != 0) + { + DL__SETERROR (CANNOT_CLOSE); + ++errors; + } + + return errors; +} + + +/* A function called through the vtable to get the address of + a symbol loaded from a particular module. */ +static void * +vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name) +{ + void *address = dlsym (module, name); + + if (!address) + { + DL__SETERROR (SYMBOL_NOT_FOUND); + } + + return address; +} diff --git a/squashfs-root/usr/share/libtool/loaders/dyld.c b/squashfs-root/usr/share/libtool/loaders/dyld.c new file mode 100644 index 0000000..6c099e0 --- /dev/null +++ b/squashfs-root/usr/share/libtool/loaders/dyld.c @@ -0,0 +1,511 @@ +/* loader-dyld.c -- dynamic linking on darwin and OS X + + Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software + Foundation, Inc. + Written by Peter O'Gorman, 1998 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" +#include "lt_dlloader.h" + +/* Use the preprocessor to rename non-static symbols to avoid namespace + collisions when the loader code is statically linked into libltdl. + Use the "_LTX_" prefix so that the symbol addresses can + be fetched from the preloaded symbol list by lt_dlsym(): */ +#define get_vtable dyld_LTX_get_vtable + +LT_BEGIN_C_DECLS +LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); +LT_END_C_DECLS + + +/* Boilerplate code to set up the vtable for hooking this loader into + libltdl's loader list: */ +static int vl_init (lt_user_data loader_data); +static int vl_exit (lt_user_data loader_data); +static lt_module vm_open (lt_user_data loader_data, const char *filename, + lt_dladvise advise); +static int vm_close (lt_user_data loader_data, lt_module module); +static void * vm_sym (lt_user_data loader_data, lt_module module, + const char *symbolname); + +static lt_dlvtable *vtable = 0; + +/* Return the vtable for this loader, only the name and sym_prefix + attributes (plus the virtual function implementations, obviously) + change between loaders. */ +lt_dlvtable * +get_vtable (lt_user_data loader_data) +{ + if (!vtable) + { + vtable = lt__zalloc (sizeof *vtable); + } + + if (vtable && !vtable->name) + { + vtable->name = "lt_dyld"; + vtable->sym_prefix = "_"; + vtable->dlloader_init = vl_init; + vtable->module_open = vm_open; + vtable->module_close = vm_close; + vtable->find_sym = vm_sym; + vtable->dlloader_exit = vl_exit; + vtable->dlloader_data = loader_data; + vtable->priority = LT_DLLOADER_APPEND; + } + + if (vtable && (vtable->dlloader_data != loader_data)) + { + LT__SETERROR (INIT_LOADER); + return 0; + } + + return vtable; +} + + + +/* --- IMPLEMENTATION --- */ + + +#if defined HAVE_MACH_O_DYLD_H +# if !defined __APPLE_CC__ && !defined __MWERKS__ && !defined __private_extern__ + /* Is this correct? Does it still function properly? */ +# define __private_extern__ extern +# endif +# include +#endif + +#include + +/* We have to put some stuff here that isn't in older dyld.h files */ +#if !defined ENUM_DYLD_BOOL +# define ENUM_DYLD_BOOL +# undef FALSE +# undef TRUE + enum DYLD_BOOL { + FALSE, + TRUE + }; +#endif +#if !defined LC_REQ_DYLD +# define LC_REQ_DYLD 0x80000000 +#endif +#if !defined LC_LOAD_WEAK_DYLIB +# define LC_LOAD_WEAK_DYLIB (0x18 | LC_REQ_DYLD) +#endif + +#if !defined NSADDIMAGE_OPTION_NONE +# define NSADDIMAGE_OPTION_NONE 0x0 +#endif +#if !defined NSADDIMAGE_OPTION_RETURN_ON_ERROR +# define NSADDIMAGE_OPTION_RETURN_ON_ERROR 0x1 +#endif +#if !defined NSADDIMAGE_OPTION_WITH_SEARCHING +# define NSADDIMAGE_OPTION_WITH_SEARCHING 0x2 +#endif +#if !defined NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED +# define NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED 0x4 +#endif +#if !defined NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME +# define NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME 0x8 +#endif + +#if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_BIND +# define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND 0x0 +#endif +#if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW +# define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW 0x1 +#endif +#if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY +# define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY 0x2 +#endif +#if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR +# define NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR 0x4 +#endif + +#define LT__SYMLOOKUP_OPTS (NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW \ + | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR) + +#if defined __BIG_ENDIAN__ +# define LT__MAGIC MH_MAGIC +#else +# define LT__MAGIC MH_CIGAM +#endif + +#define DYLD__SETMYERROR(errmsg) LT__SETERRORSTR (dylderror (errmsg)) +#define DYLD__SETERROR(errcode) DYLD__SETMYERROR (LT__STRERROR (errcode)) + +typedef struct mach_header mach_header; +typedef struct dylib_command dylib_command; + +static const char *dylderror (const char *errmsg); +static const mach_header *lt__nsmodule_get_header (NSModule module); +static const char *lt__header_get_instnam (const mach_header *mh); +static const mach_header *lt__match_loadedlib (const char *name); +static NSSymbol lt__linkedlib_symbol (const char *symname, const mach_header *mh); + +static const mach_header *(*lt__addimage) (const char *image_name, + unsigned long options) = 0; +static NSSymbol (*lt__image_symbol) (const mach_header *image, + const char *symbolName, + unsigned long options) = 0; +static enum DYLD_BOOL (*lt__image_symbol_p) (const mach_header *image, + const char *symbolName) = 0; +static enum DYLD_BOOL (*lt__module_export) (NSModule module) = 0; + +static int dyld_cannot_close = 0; + + +/* A function called through the vtable when this loader is no + longer needed by the application. */ +static int +vl_exit (lt_user_data loader_data LT__UNUSED) +{ + vtable = NULL; + return 0; +} + +/* A function called through the vtable to initialise this loader. */ +static int +vl_init (lt_user_data loader_data) +{ + int errors = 0; + + if (! dyld_cannot_close) + { + if (!_dyld_present ()) + { + ++errors; + } + else + { + (void) _dyld_func_lookup ("__dyld_NSAddImage", + (unsigned long*) <__addimage); + (void) _dyld_func_lookup ("__dyld_NSLookupSymbolInImage", + (unsigned long*)<__image_symbol); + (void) _dyld_func_lookup ("__dyld_NSIsSymbolNameDefinedInImage", + (unsigned long*) <__image_symbol_p); + (void) _dyld_func_lookup ("__dyld_NSMakePrivateModulePublic", + (unsigned long*) <__module_export); + dyld_cannot_close = lt_dladderror ("can't close a dylib"); + } + } + + return errors; +} + + +/* A function called through the vtable to open a module with this + loader. Returns an opaque representation of the newly opened + module for processing with this loader's other vtable functions. */ +static lt_module +vm_open (lt_user_data loader_data, const char *filename, + lt_dladvise advise LT__UNUSED) +{ + lt_module module = 0; + NSObjectFileImage ofi = 0; + + if (!filename) + { + return (lt_module) -1; + } + + switch (NSCreateObjectFileImageFromFile (filename, &ofi)) + { + case NSObjectFileImageSuccess: + module = NSLinkModule (ofi, filename, NSLINKMODULE_OPTION_RETURN_ON_ERROR + | NSLINKMODULE_OPTION_PRIVATE + | NSLINKMODULE_OPTION_BINDNOW); + NSDestroyObjectFileImage (ofi); + + if (module) + { + lt__module_export (module); + } + break; + + case NSObjectFileImageInappropriateFile: + if (lt__image_symbol_p && lt__image_symbol) + { + module = (lt_module) lt__addimage(filename, + NSADDIMAGE_OPTION_RETURN_ON_ERROR); + } + break; + + case NSObjectFileImageFailure: + case NSObjectFileImageArch: + case NSObjectFileImageFormat: + case NSObjectFileImageAccess: + /*NOWORK*/ + break; + } + + if (!module) + { + DYLD__SETERROR (CANNOT_OPEN); + } + + return module; +} + + +/* A function called through the vtable when a particular module + should be unloaded. */ +static int +vm_close (lt_user_data loader_data, lt_module module) +{ + int errors = 0; + + if (module != (lt_module) -1) + { + const mach_header *mh = (const mach_header *) module; + int flags = 0; + if (mh->magic == LT__MAGIC) + { + lt_dlseterror (dyld_cannot_close); + ++errors; + } + else + { + /* Currently, if a module contains c++ static destructors and it + is unloaded, we get a segfault in atexit(), due to compiler and + dynamic loader differences of opinion, this works around that. */ + if ((const struct section *) NULL != + getsectbynamefromheader (lt__nsmodule_get_header (module), + "__DATA", "__mod_term_func")) + { + flags |= NSUNLINKMODULE_OPTION_KEEP_MEMORY_MAPPED; + } +#if defined __ppc__ + flags |= NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES; +#endif + if (!NSUnLinkModule (module, flags)) + { + DYLD__SETERROR (CANNOT_CLOSE); + ++errors; + } + } + } + + return errors; +} + +/* A function called through the vtable to get the address of + a symbol loaded from a particular module. */ +static void * +vm_sym (lt_user_data loader_data, lt_module module, const char *name) +{ + NSSymbol *nssym = 0; + const mach_header *mh = (const mach_header *) module; + char saveError[256] = "Symbol not found"; + + if (module == (lt_module) -1) + { + void *address, *unused; + _dyld_lookup_and_bind (name, (unsigned long*) &address, &unused); + return address; + } + + if (mh->magic == LT__MAGIC) + { + if (lt__image_symbol_p && lt__image_symbol) + { + if (lt__image_symbol_p (mh, name)) + { + nssym = lt__image_symbol (mh, name, LT__SYMLOOKUP_OPTS); + } + } + + } + else + { + nssym = NSLookupSymbolInModule (module, name); + } + + if (!nssym) + { + strlcpy (saveError, dylderror (LT__STRERROR (SYMBOL_NOT_FOUND)), 255); + saveError[255] = 0; + if (!mh) + { + mh = (mach_header *)lt__nsmodule_get_header (module); + } + nssym = lt__linkedlib_symbol (name, mh); + } + + if (!nssym) + { + LT__SETERRORSTR (saveError); + } + + return nssym ? NSAddressOfSymbol (nssym) : 0; +} + + + + +/* --- HELPER FUNCTIONS --- */ + + +/* Return the dyld error string, or the passed in error string if none. */ +static const char * +dylderror (const char *errmsg) +{ + NSLinkEditErrors ler; + int lerno; + const char *file; + const char *errstr; + + NSLinkEditError (&ler, &lerno, &file, &errstr); + + if (! (errstr && *errstr)) + { + errstr = errmsg; + } + + return errstr; +} + +/* There should probably be an apple dyld api for this. */ +static const mach_header * +lt__nsmodule_get_header (NSModule module) +{ + int i = _dyld_image_count(); + const char *modname = NSNameOfModule (module); + const mach_header *mh = 0; + + if (!modname) + return NULL; + + while (i > 0) + { + --i; + if (strneq (_dyld_get_image_name (i), modname)) + { + mh = _dyld_get_image_header (i); + break; + } + } + + return mh; +} + +/* NSAddImage is also used to get the loaded image, but it only works if + the lib is installed, for uninstalled libs we need to check the + install_names against each other. Note that this is still broken if + DYLD_IMAGE_SUFFIX is set and a different lib was loaded as a result. */ +static const char * +lt__header_get_instnam (const mach_header *mh) +{ + unsigned long offset = sizeof(mach_header); + const char* result = 0; + int j; + + for (j = 0; j < mh->ncmds; j++) + { + struct load_command *lc; + + lc = (struct load_command*) (((unsigned long) mh) + offset); + if (LC_ID_DYLIB == lc->cmd) + { + result=(char*)(((dylib_command*) lc)->dylib.name.offset + + (unsigned long) lc); + } + offset += lc->cmdsize; + } + + return result; +} + +static const mach_header * +lt__match_loadedlib (const char *name) +{ + const mach_header *mh = 0; + int i = _dyld_image_count(); + + while (i > 0) + { + const char *id; + + --i; + id = lt__header_get_instnam (_dyld_get_image_header (i)); + if (id && strneq (id, name)) + { + mh = _dyld_get_image_header (i); + break; + } + } + + return mh; +} + +/* Safe to assume our mh is good. */ +static NSSymbol +lt__linkedlib_symbol (const char *symname, const mach_header *mh) +{ + NSSymbol symbol = 0; + + if (lt__image_symbol && NSIsSymbolNameDefined (symname)) + { + unsigned long offset = sizeof(mach_header); + struct load_command *lc; + int j; + + for (j = 0; j < mh->ncmds; j++) + { + lc = (struct load_command*) (((unsigned long) mh) + offset); + if ((LC_LOAD_DYLIB == lc->cmd) || (LC_LOAD_WEAK_DYLIB == lc->cmd)) + { + unsigned long base = ((dylib_command *) lc)->dylib.name.offset; + char *name = (char *) (base + (unsigned long) lc); + const mach_header *mh1 = lt__match_loadedlib (name); + + if (!mh1) + { + /* Maybe NSAddImage can find it */ + mh1 = lt__addimage (name, + NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED + | NSADDIMAGE_OPTION_WITH_SEARCHING + | NSADDIMAGE_OPTION_RETURN_ON_ERROR); + } + + if (mh1) + { + symbol = lt__image_symbol (mh1, symname, LT__SYMLOOKUP_OPTS); + if (symbol) + break; + } + } + + offset += lc->cmdsize; + } + } + + return symbol; +} diff --git a/squashfs-root/usr/share/libtool/loaders/load_add_on.c b/squashfs-root/usr/share/libtool/loaders/load_add_on.c new file mode 100644 index 0000000..b070906 --- /dev/null +++ b/squashfs-root/usr/share/libtool/loaders/load_add_on.c @@ -0,0 +1,167 @@ +/* loader-load_add_on.c -- dynamic linking for BeOS + + Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software + Foundation, Inc. + Written by Thomas Tanner, 1998 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" +#include "lt_dlloader.h" + +/* Use the preprocessor to rename non-static symbols to avoid namespace + collisions when the loader code is statically linked into libltdl. + Use the "_LTX_" prefix so that the symbol addresses can + be fetched from the preloaded symbol list by lt_dlsym(): */ +#define get_vtable load_add_on_LTX_get_vtable + +LT_BEGIN_C_DECLS +LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); +LT_END_C_DECLS + + +/* Boilerplate code to set up the vtable for hooking this loader into + libltdl's loader list: */ +static int vl_exit (lt_user_data loader_data); +static lt_module vm_open (lt_user_data loader_data, const char *filename, + lt_dladvise advise); +static int vm_close (lt_user_data loader_data, lt_module module); +static void * vm_sym (lt_user_data loader_data, lt_module module, + const char *symbolname); + +static lt_dlvtable *vtable = 0; + +/* Return the vtable for this loader, only the name and sym_prefix + attributes (plus the virtual function implementations, obviously) + change between loaders. */ +lt_dlvtable * +get_vtable (lt_user_data loader_data) +{ + if (!vtable) + { + vtable = lt__zalloc (sizeof *vtable); + } + + if (vtable && !vtable->name) + { + vtable->name = "lt_load_add_on"; + vtable->module_open = vm_open; + vtable->module_close = vm_close; + vtable->find_sym = vm_sym; + vtable->dlloader_exit = vl_exit; + vtable->dlloader_data = loader_data; + vtable->priority = LT_DLLOADER_APPEND; + } + + if (vtable && (vtable->dlloader_data != loader_data)) + { + LT__SETERROR (INIT_LOADER); + return 0; + } + + return vtable; +} + + + +/* --- IMPLEMENTATION --- */ + + +#include + +/* A function called through the vtable when this loader is no + longer needed by the application. */ +static int +vl_exit (lt_user_data loader_data LT__UNUSED) +{ + vtable = NULL; + return 0; +} + +/* A function called through the vtable to open a module with this + loader. Returns an opaque representation of the newly opened + module for processing with this loader's other vtable functions. */ +static lt_module +vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, + lt_dladvise advise LT__UNUSED) +{ + image_id image = 0; + + if (filename) + { + image = load_add_on (filename); + } + else + { + image_info info; + int32 cookie = 0; + if (get_next_image_info (0, &cookie, &info) == B_OK) + image = load_add_on (info.name); + } + + if (image <= 0) + { + LT__SETERROR (CANNOT_OPEN); + image = 0; + } + + return (lt_module) image; +} + + +/* A function called through the vtable when a particular module + should be unloaded. */ +static int +vm_close (lt_user_data loader_data LT__UNUSED, lt_module module) +{ + int errors = 0; + + if (unload_add_on ((image_id) module) != B_OK) + { + LT__SETERROR (CANNOT_CLOSE); + ++errors; + } + + return errors; +} + + +/* A function called through the vtable to get the address of + a symbol loaded from a particular module. */ +static void * +vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name) +{ + void *address = 0; + image_id image = (image_id) module; + + if (get_image_symbol (image, name, B_SYMBOL_TYPE_ANY, address) != B_OK) + { + LT__SETERROR (SYMBOL_NOT_FOUND); + address = 0; + } + + return address; +} diff --git a/squashfs-root/usr/share/libtool/loaders/loadlibrary.c b/squashfs-root/usr/share/libtool/loaders/loadlibrary.c new file mode 100644 index 0000000..0891f6d --- /dev/null +++ b/squashfs-root/usr/share/libtool/loaders/loadlibrary.c @@ -0,0 +1,369 @@ +/* loader-loadlibrary.c -- dynamic linking for Win32 + + Copyright (C) 1998-2000, 2004-2008, 2010-2015 Free Software + Foundation, Inc. + Written by Thomas Tanner, 1998 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" +#include "lt_dlloader.h" + +#if defined __CYGWIN__ +# include +#endif + +/* Use the preprocessor to rename non-static symbols to avoid namespace + collisions when the loader code is statically linked into libltdl. + Use the "_LTX_" prefix so that the symbol addresses can + be fetched from the preloaded symbol list by lt_dlsym(): */ +#define get_vtable loadlibrary_LTX_get_vtable + +LT_BEGIN_C_DECLS +LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); +LT_END_C_DECLS + + +/* Boilerplate code to set up the vtable for hooking this loader into + libltdl's loader list: */ +static int vl_exit (lt_user_data loader_data); +static lt_module vm_open (lt_user_data loader_data, const char *filename, + lt_dladvise advise); +static int vm_close (lt_user_data loader_data, lt_module module); +static void * vm_sym (lt_user_data loader_data, lt_module module, + const char *symbolname); + +static lt_dlinterface_id iface_id = 0; +static lt_dlvtable *vtable = 0; + +/* Return the vtable for this loader, only the name and sym_prefix + attributes (plus the virtual function implementations, obviously) + change between loaders. */ +lt_dlvtable * +get_vtable (lt_user_data loader_data) +{ + if (!vtable) + { + vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable); + iface_id = lt_dlinterface_register ("ltdl loadlibrary", NULL); + } + + if (vtable && !vtable->name) + { + vtable->name = "lt_loadlibrary"; + vtable->module_open = vm_open; + vtable->module_close = vm_close; + vtable->find_sym = vm_sym; + vtable->dlloader_exit = vl_exit; + vtable->dlloader_data = loader_data; + vtable->priority = LT_DLLOADER_APPEND; + } + + if (vtable && (vtable->dlloader_data != loader_data)) + { + LT__SETERROR (INIT_LOADER); + return 0; + } + + return vtable; +} + + + +/* --- IMPLEMENTATION --- */ + + +#include + +#define LOCALFREE(mem) LT_STMT_START { \ + if (mem) { LocalFree ((void *)mem); mem = NULL; } } LT_STMT_END +#define LOADLIB__SETERROR(errmsg) LT__SETERRORSTR (loadlibraryerror (errmsg)) +#define LOADLIB_SETERROR(errcode) LOADLIB__SETERROR (LT__STRERROR (errcode)) + +static const char *loadlibraryerror (const char *default_errmsg); +static DWORD WINAPI wrap_getthreaderrormode (void); +static DWORD WINAPI fallback_getthreaderrormode (void); +static BOOL WINAPI wrap_setthreaderrormode (DWORD mode, DWORD *oldmode); +static BOOL WINAPI fallback_setthreaderrormode (DWORD mode, DWORD *oldmode); + +typedef DWORD (WINAPI getthreaderrormode_type) (void); +typedef BOOL (WINAPI setthreaderrormode_type) (DWORD, DWORD *); + +static getthreaderrormode_type *getthreaderrormode = wrap_getthreaderrormode; +static setthreaderrormode_type *setthreaderrormode = wrap_setthreaderrormode; +static char *error_message = 0; + + +/* A function called through the vtable when this loader is no + longer needed by the application. */ +static int +vl_exit (lt_user_data loader_data LT__UNUSED) +{ + vtable = NULL; + LOCALFREE (error_message); + return 0; +} + +/* A function called through the vtable to open a module with this + loader. Returns an opaque representation of the newly opened + module for processing with this loader's other vtable functions. */ +static lt_module +vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, + lt_dladvise advise LT__UNUSED) +{ + lt_module module = 0; + char *ext; + char wpath[MAX_PATH]; + size_t len; + + if (!filename) + { + /* Get the name of main module */ + *wpath = 0; + GetModuleFileName (NULL, wpath, sizeof (wpath)); + filename = wpath; + } + else + { + len = LT_STRLEN (filename); + + if (len >= MAX_PATH) + { + LT__SETERROR (CANNOT_OPEN); + return 0; + } + +#if HAVE_DECL_CYGWIN_CONV_PATH + if (cygwin_conv_path (CCP_POSIX_TO_WIN_A, filename, wpath, MAX_PATH)) + { + LT__SETERROR (CANNOT_OPEN); + return 0; + } + len = 0; +#elif defined __CYGWIN__ + cygwin_conv_to_full_win32_path (filename, wpath); + len = 0; +#else + strcpy(wpath, filename); +#endif + + ext = strrchr (wpath, '.'); + if (!ext) + { + /* Append a '.' to stop Windows from adding an + implicit '.dll' extension. */ + if (!len) + len = strlen (wpath); + + if (len + 1 >= MAX_PATH) + { + LT__SETERROR (CANNOT_OPEN); + return 0; + } + + wpath[len] = '.'; + wpath[len+1] = '\0'; + } + } + + { + /* Silence dialog from LoadLibrary on some failures. */ + DWORD errormode = getthreaderrormode (); + DWORD last_error; + + setthreaderrormode (errormode | SEM_FAILCRITICALERRORS, NULL); + + module = LoadLibrary (wpath); + + /* Restore the error mode. */ + last_error = GetLastError (); + setthreaderrormode (errormode, NULL); + SetLastError (last_error); + } + + /* libltdl expects this function to fail if it is unable + to physically load the library. Sadly, LoadLibrary + will search the loaded libraries for a match and return + one of them if the path search load fails. + + We check whether LoadLibrary is returning a handle to + an already loaded module, and simulate failure if we + find one. */ + { + lt_dlhandle cur = 0; + + while ((cur = lt_dlhandle_iterate (iface_id, cur))) + { + if (!cur->module) + { + cur = 0; + break; + } + + if (cur->module == module) + { + break; + } + } + + if (!module) + LOADLIB_SETERROR (CANNOT_OPEN); + else if (cur) + { + LT__SETERROR (CANNOT_OPEN); + module = 0; + } + } + + return module; +} + + +/* A function called through the vtable when a particular module + should be unloaded. */ +static int +vm_close (lt_user_data loader_data LT__UNUSED, lt_module module) +{ + int errors = 0; + + if (FreeLibrary ((HMODULE) module) == 0) + { + LOADLIB_SETERROR (CANNOT_CLOSE); + ++errors; + } + + return errors; +} + + +/* A function called through the vtable to get the address of + a symbol loaded from a particular module. */ +static void * +vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name) +{ + void *address = (void *) GetProcAddress ((HMODULE) module, name); + + if (!address) + { + LOADLIB_SETERROR (SYMBOL_NOT_FOUND); + } + + return address; +} + + + +/* --- HELPER FUNCTIONS --- */ + + +/* Return the windows error message, or the passed in error message on + failure. */ +static const char * +loadlibraryerror (const char *default_errmsg) +{ + size_t len; + LOCALFREE (error_message); + + FormatMessageA (FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + GetLastError (), + 0, + (char *) &error_message, + 0, NULL); + + /* Remove trailing CRNL */ + len = LT_STRLEN (error_message); + if (len && error_message[len - 1] == '\n') + error_message[--len] = LT_EOS_CHAR; + if (len && error_message[len - 1] == '\r') + error_message[--len] = LT_EOS_CHAR; + + return len ? error_message : default_errmsg; +} + +/* A function called through the getthreaderrormode variable that checks + if the system supports GetThreadErrorMode (or GetErrorMode) and arranges + for it or a fallback implementation to be called directly in the future. + The selected version is then called. */ +static DWORD WINAPI +wrap_getthreaderrormode (void) +{ + HMODULE kernel32 = GetModuleHandleA ("kernel32.dll"); + getthreaderrormode + = (getthreaderrormode_type *) GetProcAddress (kernel32, + "GetThreadErrorMode"); + if (!getthreaderrormode) + getthreaderrormode + = (getthreaderrormode_type *) GetProcAddress (kernel32, + "GetErrorMode"); + if (!getthreaderrormode) + getthreaderrormode = fallback_getthreaderrormode; + return getthreaderrormode (); +} + +/* A function called through the getthreaderrormode variable for cases + where the system does not support GetThreadErrorMode or GetErrorMode */ +static DWORD WINAPI +fallback_getthreaderrormode (void) +{ + /* Prior to Windows Vista, the only way to get the current error + mode was to set a new one. In our case, we are setting a new + error mode right after "getting" it while ignoring the error + mode in effect when setting the new error mode, so that's + fairly ok. */ + return (DWORD) SetErrorMode (SEM_FAILCRITICALERRORS); +} + +/* A function called through the setthreaderrormode variable that checks + if the system supports SetThreadErrorMode and arranges for it or a + fallback implementation to be called directly in the future. + The selected version is then called. */ +static BOOL WINAPI +wrap_setthreaderrormode (DWORD mode, DWORD *oldmode) +{ + HMODULE kernel32 = GetModuleHandleA ("kernel32.dll"); + setthreaderrormode + = (setthreaderrormode_type *) GetProcAddress (kernel32, + "SetThreadErrorMode"); + if (!setthreaderrormode) + setthreaderrormode = fallback_setthreaderrormode; + return setthreaderrormode (mode, oldmode); +} + +/* A function called through the setthreaderrormode variable for cases + where the system does not support SetThreadErrorMode. */ +static BOOL WINAPI +fallback_setthreaderrormode (DWORD mode, DWORD *oldmode) +{ + /* Prior to Windows 7, there was no way to set the thread local error + mode, so set the process global error mode instead. */ + DWORD old = (DWORD) SetErrorMode (mode); + if (oldmode) + *oldmode = old; + return TRUE; +} diff --git a/squashfs-root/usr/share/libtool/loaders/preopen.c b/squashfs-root/usr/share/libtool/loaders/preopen.c new file mode 100644 index 0000000..139e373 --- /dev/null +++ b/squashfs-root/usr/share/libtool/loaders/preopen.c @@ -0,0 +1,387 @@ +/* loader-preopen.c -- emulate dynamic linking using preloaded_symbols + + Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software + Foundation, Inc. + Written by Thomas Tanner, 1998 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" +#include "lt_dlloader.h" + +/* Use the preprocessor to rename non-static symbols to avoid namespace + collisions when the loader code is statically linked into libltdl. + Use the "_LTX_" prefix so that the symbol addresses can + be fetched from the preloaded symbol list by lt_dlsym(): */ +#define get_vtable preopen_LTX_get_vtable + +LT_BEGIN_C_DECLS +LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); +LT_END_C_DECLS + + +/* Boilerplate code to set up the vtable for hooking this loader into + libltdl's loader list: */ +static int vl_init (lt_user_data loader_data); +static int vl_exit (lt_user_data loader_data); +static lt_module vm_open (lt_user_data loader_data, const char *filename, + lt_dladvise advise); +static int vm_close (lt_user_data loader_data, lt_module module); +static void * vm_sym (lt_user_data loader_data, lt_module module, + const char *symbolname); + +static lt_dlvtable *vtable = 0; + +/* Return the vtable for this loader, only the name and sym_prefix + attributes (plus the virtual function implementations, obviously) + change between loaders. */ +lt_dlvtable * +get_vtable (lt_user_data loader_data) +{ + if (!vtable) + { + vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable); + } + + if (vtable && !vtable->name) + { + vtable->name = "lt_preopen"; + vtable->sym_prefix = 0; + vtable->module_open = vm_open; + vtable->module_close = vm_close; + vtable->find_sym = vm_sym; + vtable->dlloader_init = vl_init; + vtable->dlloader_exit = vl_exit; + vtable->dlloader_data = loader_data; + vtable->priority = LT_DLLOADER_PREPEND; + } + + if (vtable && (vtable->dlloader_data != loader_data)) + { + LT__SETERROR (INIT_LOADER); + return 0; + } + + return vtable; +} + + + +/* --- IMPLEMENTATION --- */ + + +/* Wrapper type to chain together symbol lists of various origins. */ +typedef struct symlist_chain +{ + struct symlist_chain *next; + const lt_dlsymlist *symlist; +} symlist_chain; + + +static int add_symlist (const lt_dlsymlist *symlist); +static int free_symlists (void); + +/* The start of the symbol lists chain. */ +static symlist_chain *preloaded_symlists = 0; + +/* A symbol list preloaded before lt_init() was called. */ +static const lt_dlsymlist *default_preloaded_symbols = 0; + + +/* A function called through the vtable to initialise this loader. */ +static int +vl_init (lt_user_data loader_data LT__UNUSED) +{ + int errors = 0; + + preloaded_symlists = 0; + if (default_preloaded_symbols) + { + errors = lt_dlpreload (default_preloaded_symbols); + } + + return errors; +} + + +/* A function called through the vtable when this loader is no + longer needed by the application. */ +static int +vl_exit (lt_user_data loader_data LT__UNUSED) +{ + vtable = NULL; + free_symlists (); + return 0; +} + + +/* A function called through the vtable to open a module with this + loader. Returns an opaque representation of the newly opened + module for processing with this loader's other vtable functions. */ +static lt_module +vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, + lt_dladvise advise LT__UNUSED) +{ + symlist_chain *lists; + lt_module module = 0; + + if (!preloaded_symlists) + { + LT__SETERROR (NO_SYMBOLS); + goto done; + } + + /* Can't use NULL as the reflective symbol header, as NULL is + used to mark the end of the entire symbol list. Self-dlpreopened + symbols follow this magic number, chosen to be an unlikely + clash with a real module name. */ + if (!filename) + { + filename = "@PROGRAM@"; + } + + for (lists = preloaded_symlists; lists; lists = lists->next) + { + const lt_dlsymlist *symbol; + for (symbol= lists->symlist; symbol->name; ++symbol) + { + if (!symbol->address && STREQ (symbol->name, filename)) + { + /* If the next symbol's name and address is 0, it means + the module just contains the originator and no symbols. + In this case we pretend that we never saw the module and + hope that some other loader will be able to load the module + and have access to its symbols */ + const lt_dlsymlist *next_symbol = symbol +1; + if (next_symbol->address && next_symbol->name) + { + module = (lt_module) lists->symlist; + goto done; + } + } + } + } + + LT__SETERROR (FILE_NOT_FOUND); + + done: + return module; +} + + +/* A function called through the vtable when a particular module + should be unloaded. */ +static int +vm_close (lt_user_data loader_data LT__UNUSED, lt_module module LT__UNUSED) +{ + /* Just to silence gcc -Wall */ + module = 0; + return 0; +} + + +/* A function called through the vtable to get the address of + a symbol loaded from a particular module. */ +static void * +vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name) +{ + lt_dlsymlist *symbol = (lt_dlsymlist*) module; + + if (symbol[1].name && STREQ (symbol[1].name, "@INIT@")) + { + symbol++; /* Skip optional init entry. */ + } + + symbol +=2; /* Skip header (originator then libname). */ + + while (symbol->name) + { + if (STREQ (symbol->name, name)) + { + return symbol->address; + } + + ++symbol; + } + + LT__SETERROR (SYMBOL_NOT_FOUND); + + return 0; +} + + + +/* --- HELPER FUNCTIONS --- */ + + +/* The symbol lists themselves are not allocated from the heap, but + we can unhook them and free up the chain of links between them. */ +static int +free_symlists (void) +{ + symlist_chain *lists; + + lists = preloaded_symlists; + while (lists) + { + symlist_chain *next = lists->next; + FREE (lists); + lists = next; + } + preloaded_symlists = 0; + + return 0; +} + +/* Add a new symbol list to the global chain. */ +static int +add_symlist (const lt_dlsymlist *symlist) +{ + symlist_chain *lists; + int errors = 0; + + /* Search for duplicate entries: */ + for (lists = preloaded_symlists; + lists && lists->symlist != symlist; lists = lists->next) + /*NOWORK*/; + + /* Don't add the same list twice: */ + if (!lists) + { + symlist_chain *tmp = (symlist_chain *) lt__zalloc (sizeof *tmp); + + if (tmp) + { + tmp->symlist = symlist; + tmp->next = preloaded_symlists; + preloaded_symlists = tmp; + + if (symlist[1].name && STREQ (symlist[1].name, "@INIT@")) + { + void (*init_symlist)(void); + *(void **)(&init_symlist) = symlist[1].address; + (*init_symlist)(); + } + } + else + { + ++errors; + } + } + + return errors; +} + + + +/* --- PRELOADING API CALL IMPLEMENTATIONS --- */ + + +/* Save a default symbol list for later. */ +int +lt_dlpreload_default (const lt_dlsymlist *preloaded) +{ + default_preloaded_symbols = preloaded; + return 0; +} + + +/* Add a symbol list to the global chain, or with a NULL argument, + revert to just the default list. */ +int +lt_dlpreload (const lt_dlsymlist *preloaded) +{ + int errors = 0; + + if (preloaded) + { + errors = add_symlist (preloaded); + } + else + { + free_symlists(); + + if (default_preloaded_symbols) + { + errors = lt_dlpreload (default_preloaded_symbols); + } + } + + return errors; +} + + +/* Open all the preloaded modules from the named originator, executing + a callback for each one. If ORIGINATOR is NULL, then call FUNC for + each preloaded module from the program itself. */ +int +lt_dlpreload_open (const char *originator, lt_dlpreload_callback_func *func) +{ + symlist_chain *list; + int errors = 0; + int found = 0; + + /* For each symlist in the chain... */ + for (list = preloaded_symlists; list; list = list->next) + { + /* ...that was preloaded by the requesting ORIGINATOR... */ + if ((originator && STREQ (list->symlist->name, originator)) + || (!originator && STREQ (list->symlist->name, "@PROGRAM@"))) + { + const lt_dlsymlist *symbol; + unsigned int idx = 0; + + ++found; + + /* ...load the symbols per source compilation unit: + (we preincrement the index to skip over the originator entry) */ + while ((symbol = &list->symlist[++idx])->name != 0) + { + if ((symbol->address == 0) + && (STRNEQ (symbol->name, "@PROGRAM@"))) + { + lt_dlhandle handle = lt_dlopen (symbol->name); + if (handle == 0) + { + ++errors; + } + else + { + errors += (*func) (handle); + } + } + } + } + } + + if (!found) + { + LT__SETERROR(CANNOT_OPEN); + ++errors; + } + + return errors; +} diff --git a/squashfs-root/usr/share/libtool/loaders/shl_load.c b/squashfs-root/usr/share/libtool/loaders/shl_load.c new file mode 100644 index 0000000..960386b --- /dev/null +++ b/squashfs-root/usr/share/libtool/loaders/shl_load.c @@ -0,0 +1,222 @@ +/* loader-shl_load.c -- dynamic linking with shl_load (HP-UX) + + Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software + Foundation, Inc. + Written by Thomas Tanner, 1998 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" +#include "lt_dlloader.h" + +/* Use the preprocessor to rename non-static symbols to avoid namespace + collisions when the loader code is statically linked into libltdl. + Use the "_LTX_" prefix so that the symbol addresses can + be fetched from the preloaded symbol list by lt_dlsym(): */ +#define get_vtable shl_load_LTX_get_vtable + +LT_BEGIN_C_DECLS +LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); +LT_END_C_DECLS + + +/* Boilerplate code to set up the vtable for hooking this loader into + libltdl's loader list: */ +static int vl_exit (lt_user_data loader_data); +static lt_module vm_open (lt_user_data loader_data, const char *filename, + lt_dladvise advise); +static int vm_close (lt_user_data loader_data, lt_module module); +static void * vm_sym (lt_user_data loader_data, lt_module module, + const char *symbolname); + +static lt_dlvtable *vtable = 0; + +/* Return the vtable for this loader, only the name and sym_prefix + attributes (plus the virtual function implementations, obviously) + change between loaders. */ +lt_dlvtable * +get_vtable (lt_user_data loader_data) +{ + if (!vtable) + { + vtable = lt__zalloc (sizeof *vtable); + } + + if (vtable && !vtable->name) + { + vtable->name = "lt_shl_load"; + vtable->module_open = vm_open; + vtable->module_close = vm_close; + vtable->find_sym = vm_sym; + vtable->dlloader_exit = vl_exit; + vtable->dlloader_data = loader_data; + vtable->priority = LT_DLLOADER_APPEND; + } + + if (vtable && (vtable->dlloader_data != loader_data)) + { + LT__SETERROR (INIT_LOADER); + return 0; + } + + return vtable; +} + + + +/* --- IMPLEMENTATION --- */ + + +#if defined HAVE_DL_H +# include +#endif + +/* some flags are missing on some systems, so we provide + * harmless defaults. + * + * Mandatory: + * BIND_IMMEDIATE - Resolve symbol references when the library is loaded. + * BIND_DEFERRED - Delay code symbol resolution until actual reference. + * + * Optionally: + * BIND_FIRST - Place the library at the head of the symbol search + * order. + * BIND_NONFATAL - The default BIND_IMMEDIATE behavior is to treat all + * unsatisfied symbols as fatal. This flag allows + * binding of unsatisfied code symbols to be deferred + * until use. + * [Perl: For certain libraries, like DCE, deferred + * binding often causes run time problems. Adding + * BIND_NONFATAL to BIND_IMMEDIATE still allows + * unresolved references in situations like this.] + * BIND_NOSTART - Do not call the initializer for the shared library + * when the library is loaded, nor on a future call to + * shl_unload(). + * BIND_VERBOSE - Print verbose messages concerning possible + * unsatisfied symbols. + * + * hp9000s700/hp9000s800: + * BIND_RESTRICTED - Restrict symbols visible by the library to those + * present at library load time. + * DYNAMIC_PATH - Allow the loader to dynamically search for the + * library specified by the path argument. + */ + +#if !defined DYNAMIC_PATH +# define DYNAMIC_PATH 0 +#endif +#if !defined BIND_RESTRICTED +# define BIND_RESTRICTED 0 +#endif + +#define LT_BIND_FLAGS (BIND_IMMEDIATE | BIND_NONFATAL | DYNAMIC_PATH) + + +/* A function called through the vtable when this loader is no + longer needed by the application. */ +static int +vl_exit (lt_user_data loader_data LT__UNUSED) +{ + vtable = NULL; + return 0; +} + +/* A function called through the vtable to open a module with this + loader. Returns an opaque representation of the newly opened + module for processing with this loader's other vtable functions. */ +static lt_module +vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, + lt_dladvise advise LT__UNUSED) +{ + static shl_t self = (shl_t) 0; + lt_module module = shl_load (filename, LT_BIND_FLAGS, 0L); + + /* Since searching for a symbol against a NULL module handle will also + look in everything else that was already loaded and exported with + the -E compiler flag, we always cache a handle saved before any + modules are loaded. */ + if (!self) + { + void *address; + shl_findsym (&self, "main", TYPE_UNDEFINED, &address); + } + + if (!filename) + { + module = self; + } + else + { + module = shl_load (filename, LT_BIND_FLAGS, 0L); + + if (!module) + { + LT__SETERROR (CANNOT_OPEN); + } + } + + return module; +} + +/* A function called through the vtable when a particular module + should be unloaded. */ +static int +vm_close (lt_user_data loader_data LT__UNUSED, lt_module module) +{ + int errors = 0; + + if (module && (shl_unload ((shl_t) (module)) != 0)) + { + LT__SETERROR (CANNOT_CLOSE); + ++errors; + } + + return errors; +} + + +/* A function called through the vtable to get the address of + a symbol loaded from a particular module. */ +static void * +vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name) +{ + void *address = 0; + + /* sys_shl_open should never return a NULL module handle */ + if (module == (lt_module) 0) + { + LT__SETERROR (INVALID_HANDLE); + } + else if (!shl_findsym((shl_t*) &module, name, TYPE_UNDEFINED, &address)) + { + if (!address) + { + LT__SETERROR (SYMBOL_NOT_FOUND); + } + } + + return address; +} diff --git a/squashfs-root/usr/share/libtool/lt__alloc.c b/squashfs-root/usr/share/libtool/lt__alloc.c new file mode 100644 index 0000000..d24bf8f --- /dev/null +++ b/squashfs-root/usr/share/libtool/lt__alloc.c @@ -0,0 +1,96 @@ +/* lt__alloc.c -- internal memory management interface + + Copyright (C) 2004, 2006-2007, 2011-2015 Free Software Foundation, + Inc. + Written by Gary V. Vaughan, 2004 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" + +#include + +#include "lt__alloc.h" + +static void alloc_die_default (void); + +void (*lt__alloc_die) (void) = alloc_die_default; + +/* Unless overridden, exit on memory failure. */ +static void +alloc_die_default (void) +{ + fprintf (stderr, "Out of memory.\n"); + exit (EXIT_FAILURE); +} + +void * +lt__malloc (size_t n) +{ + void *mem; + + if (! (mem = malloc (n))) + (*lt__alloc_die) (); + + return mem; +} + +void * +lt__zalloc (size_t n) +{ + void *mem; + + if ((mem = lt__malloc (n))) + memset (mem, 0, n); + + return mem; +} + +void * +lt__realloc (void *mem, size_t n) +{ + if (! (mem = realloc (mem, n))) + (*lt__alloc_die) (); + + return mem; +} + +void * +lt__memdup (void const *mem, size_t n) +{ + void *newmem; + + if ((newmem = lt__malloc (n))) + return memcpy (newmem, mem, n); + + return 0; +} + +char * +lt__strdup (const char *string) +{ + return (char *) lt__memdup (string, strlen (string) +1); +} diff --git a/squashfs-root/usr/share/libtool/lt__argz.c b/squashfs-root/usr/share/libtool/lt__argz.c new file mode 100644 index 0000000..75f7af8 --- /dev/null +++ b/squashfs-root/usr/share/libtool/lt__argz.c @@ -0,0 +1,225 @@ +/* lt__argz.c -- argz implementation for non-glibc systems + + Copyright (C) 2004, 2006-2008, 2011-2015 Free Software Foundation, + Inc. + Written by Gary V. Vaughan, 2004 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#if defined LTDL && defined LT_CONFIG_H +# include LT_CONFIG_H +#else +# include +#endif + +#include + +#include +#include +#include +#include +#include + +#define EOS_CHAR '\0' + +error_t +argz_append (char **pargz, size_t *pargz_len, const char *buf, size_t buf_len) +{ + size_t argz_len; + char *argz; + + assert (pargz); + assert (pargz_len); + assert ((*pargz && *pargz_len) || (!*pargz && !*pargz_len)); + + /* If nothing needs to be appended, no more work is required. */ + if (buf_len == 0) + return 0; + + /* Ensure there is enough room to append BUF_LEN. */ + argz_len = *pargz_len + buf_len; + argz = (char *) realloc (*pargz, argz_len); + if (!argz) + return ENOMEM; + + /* Copy characters from BUF after terminating '\0' in ARGZ. */ + memcpy (argz + *pargz_len, buf, buf_len); + + /* Assign new values. */ + *pargz = argz; + *pargz_len = argz_len; + + return 0; +} + + +error_t +argz_create_sep (const char *str, int delim, char **pargz, size_t *pargz_len) +{ + size_t argz_len; + char *argz = 0; + + assert (str); + assert (pargz); + assert (pargz_len); + + /* Make a copy of STR, but replacing each occurrence of + DELIM with '\0'. */ + argz_len = 1+ strlen (str); + if (argz_len) + { + const char *p; + char *q; + + argz = (char *) malloc (argz_len); + if (!argz) + return ENOMEM; + + for (p = str, q = argz; *p != EOS_CHAR; ++p) + { + if (*p == delim) + { + /* Ignore leading delimiters, and fold consecutive + delimiters in STR into a single '\0' in ARGZ. */ + if ((q > argz) && (q[-1] != EOS_CHAR)) + *q++ = EOS_CHAR; + else + --argz_len; + } + else + *q++ = *p; + } + /* Copy terminating EOS_CHAR. */ + *q = *p; + } + + /* If ARGZ_LEN has shrunk to nothing, release ARGZ's memory. */ + if (!argz_len) + argz = (free (argz), (char *) 0); + + /* Assign new values. */ + *pargz = argz; + *pargz_len = argz_len; + + return 0; +} + + +error_t +argz_insert (char **pargz, size_t *pargz_len, char *before, const char *entry) +{ + assert (pargz); + assert (pargz_len); + assert (entry && *entry); + + /* No BEFORE address indicates ENTRY should be inserted after the + current last element. */ + if (!before) + return argz_append (pargz, pargz_len, entry, 1+ strlen (entry)); + + /* This probably indicates a programmer error, but to preserve + semantics, scan back to the start of an entry if BEFORE points + into the middle of it. */ + while ((before > *pargz) && (before[-1] != EOS_CHAR)) + --before; + + { + size_t entry_len = 1+ strlen (entry); + size_t argz_len = *pargz_len + entry_len; + size_t offset = before - *pargz; + char *argz = (char *) realloc (*pargz, argz_len); + + if (!argz) + return ENOMEM; + + /* Make BEFORE point to the equivalent offset in ARGZ that it + used to have in *PARGZ incase realloc() moved the block. */ + before = argz + offset; + + /* Move the ARGZ entries starting at BEFORE up into the new + space at the end -- making room to copy ENTRY into the + resulting gap. */ + memmove (before + entry_len, before, *pargz_len - offset); + memcpy (before, entry, entry_len); + + /* Assign new values. */ + *pargz = argz; + *pargz_len = argz_len; + } + + return 0; +} + + +char * +argz_next (char *argz, size_t argz_len, const char *entry) +{ + assert ((argz && argz_len) || (!argz && !argz_len)); + + if (entry) + { + /* Either ARGZ/ARGZ_LEN is empty, or ENTRY points into an address + within the ARGZ vector. */ + assert ((!argz && !argz_len) + || ((argz <= entry) && (entry < (argz + argz_len)))); + + /* Move to the char immediately after the terminating + '\0' of ENTRY. */ + entry = 1+ strchr (entry, EOS_CHAR); + + /* Return either the new ENTRY, or else NULL if ARGZ is + exhausted. */ + return (entry >= argz + argz_len) ? 0 : (char *) entry; + } + else + { + /* This should probably be flagged as a programmer error, + since starting an argz_next loop with the iterator set + to ARGZ is safer. To preserve semantics, handle the NULL + case by returning the start of ARGZ (if any). */ + if (argz_len > 0) + return argz; + else + return 0; + } +} + + +void +argz_stringify (char *argz, size_t argz_len, int sep) +{ + assert ((argz && argz_len) || (!argz && !argz_len)); + + if (sep) + { + --argz_len; /* don't stringify the terminating EOS */ + while (--argz_len > 0) + { + if (argz[argz_len] == EOS_CHAR) + argz[argz_len] = sep; + } + } +} diff --git a/squashfs-root/usr/share/libtool/lt__dirent.c b/squashfs-root/usr/share/libtool/lt__dirent.c new file mode 100644 index 0000000..596aa2b --- /dev/null +++ b/squashfs-root/usr/share/libtool/lt__dirent.c @@ -0,0 +1,106 @@ +/* lt__dirent.c -- internal directory entry scanning interface + + Copyright (C) 2001, 2004, 2011-2015 Free Software Foundation, Inc. + Written by Bob Friesenhahn, 2001 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" + +#include + +#include "lt__dirent.h" + +#if defined __WINDOWS__ + +void +closedir (DIR *entry) +{ + assert (entry != (DIR *) NULL); + FindClose (entry->hSearch); + free (entry); +} + + +DIR * +opendir (const char *path) +{ + char file_spec[LT_FILENAME_MAX]; + DIR *entry; + + assert (path != (char *) 0); + if (lt_strlcpy (file_spec, path, sizeof file_spec) >= sizeof file_spec + || lt_strlcat (file_spec, "\\", sizeof file_spec) >= sizeof file_spec) + return (DIR *) 0; + entry = (DIR *) malloc (sizeof(DIR)); + if (entry != (DIR *) 0) + { + entry->firsttime = TRUE; + entry->hSearch = FindFirstFile (file_spec, &entry->Win32FindData); + + if (entry->hSearch == INVALID_HANDLE_VALUE) + { + if (lt_strlcat (file_spec, "\\*.*", sizeof file_spec) < sizeof file_spec) + { + entry->hSearch = FindFirstFile (file_spec, &entry->Win32FindData); + } + + if (entry->hSearch == INVALID_HANDLE_VALUE) + { + entry = (free (entry), (DIR *) 0); + } + } + } + + return entry; +} + + +struct dirent * +readdir (DIR *entry) +{ + int status; + + if (entry == (DIR *) 0) + return (struct dirent *) 0; + + if (!entry->firsttime) + { + status = FindNextFile (entry->hSearch, &entry->Win32FindData); + if (status == 0) + return (struct dirent *) 0; + } + + entry->firsttime = FALSE; + if (lt_strlcpy (entry->file_info.d_name, entry->Win32FindData.cFileName, + sizeof entry->file_info.d_name) >= sizeof entry->file_info.d_name) + return (struct dirent *) 0; + entry->file_info.d_namlen = strlen (entry->file_info.d_name); + + return &entry->file_info; +} + +#endif /*defined __WINDOWS__*/ diff --git a/squashfs-root/usr/share/libtool/lt__strl.c b/squashfs-root/usr/share/libtool/lt__strl.c new file mode 100644 index 0000000..65be904 --- /dev/null +++ b/squashfs-root/usr/share/libtool/lt__strl.c @@ -0,0 +1,127 @@ +/* lt__strl.c -- size-bounded string copying and concatenation + + Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. + Written by Bob Friesenhahn, 2004 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include +#include + +#include "lt__strl.h" + +/* + lt_strlcat appends the NULL-terminated string src to the end of dst. + It will append at most dstsize - strlen(dst) - 1 bytes, + NULL-terminating the result. The total length of the string that + would have been created given sufficient buffer size (may be longer + than dstsize) is returned. This function substitutes for strlcat(), + which is available under NetBSD, FreeBSD and Solaris 9. + + Buffer overflow can be checked as follows: + + if (lt_strlcat(dst, src, dstsize) >= dstsize) + return -1; +*/ +#if !defined HAVE_STRLCAT +size_t +lt_strlcat(char *dst, const char *src, const size_t dstsize) +{ + size_t length; + char *p; + const char *q; + + assert(dst != NULL); + assert(src != (const char *) NULL); + assert(dstsize >= 1); + + length=strlen(dst); + + /* + Copy remaining characters from src while constraining length to + size - 1. + */ + for ( p = dst + length, q = src; + (*q != 0) && (length < dstsize - 1); + length++, p++, q++ ) + *p = *q; + + dst[length]='\0'; + + /* + Add remaining length of src to length. + */ + while (*q++) + length++; + + return length; +} +#endif /* !defined HAVE_STRLCAT */ + +/* + lt_strlcpy copies up to dstsize - 1 characters from the NULL-terminated + string src to dst, NULL-terminating the result. The total length of + the string that would have been created given sufficient buffer + size (may be longer than dstsize) is returned. This function + substitutes for strlcpy(), which is available under OpenBSD, FreeBSD + and Solaris 9. + + Buffer overflow can be checked as follows: + + if (lt_strlcpy(dst, src, dstsize) >= dstsize) + return -1; +*/ +#if !defined HAVE_STRLCPY +size_t +lt_strlcpy(char *dst, const char *src, const size_t dstsize) +{ + size_t length=0; + char *p; + const char *q; + + assert(dst != NULL); + assert(src != (const char *) NULL); + assert(dstsize >= 1); + + /* + Copy src to dst within bounds of size-1. + */ + for ( p=dst, q=src, length=0; + (*q != 0) && (length < dstsize-1); + length++, p++, q++ ) + *p = *q; + + dst[length]='\0'; + + /* + Add remaining length of src to length. + */ + while (*q++) + length++; + + return length; +} +#endif /* !defined HAVE_STRLCPY */ diff --git a/squashfs-root/usr/share/libtool/lt_dlloader.c b/squashfs-root/usr/share/libtool/lt_dlloader.c new file mode 100644 index 0000000..b81cfa9 --- /dev/null +++ b/squashfs-root/usr/share/libtool/lt_dlloader.c @@ -0,0 +1,211 @@ +/* lt_dlloader.c -- dynamic library loader interface + + Copyright (C) 2004, 2007-2008, 2011-2015 Free Software Foundation, + Inc. + Written by Gary V. Vaughan, 2004 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" +#include "lt_dlloader.h" + +#define RETURN_SUCCESS 0 +#define RETURN_FAILURE 1 + +static void * loader_callback (SList *item, void *userdata); + +/* A list of all the dlloaders we know about, each stored as a boxed + SList item: */ +static SList *loaders = 0; + + +/* Return NULL, unless the loader in this ITEM has a matching name, + in which case we return the matching item so that its address is + passed back out (for possible freeing) by slist_remove. */ +static void * +loader_callback (SList *item, void *userdata) +{ + const lt_dlvtable *vtable = (const lt_dlvtable *) item->userdata; + const char * name = (const char *) userdata; + + assert (vtable); + + return STREQ (vtable->name, name) ? (void *) item : NULL; +} + + +/* Hook VTABLE into our global LOADERS list according to its own + PRIORITY field value. */ +int +lt_dlloader_add (const lt_dlvtable *vtable) +{ + SList *item; + + if ((vtable == 0) /* diagnose invalid vtable fields */ + || (vtable->module_open == 0) + || (vtable->module_close == 0) + || (vtable->find_sym == 0) + || ((vtable->priority != LT_DLLOADER_PREPEND) && + (vtable->priority != LT_DLLOADER_APPEND))) + { + LT__SETERROR (INVALID_LOADER); + return RETURN_FAILURE; + } + + item = slist_box (vtable); + if (!item) + { + (*lt__alloc_die) (); + + /* Let the caller know something went wrong if lt__alloc_die + doesn't abort. */ + return RETURN_FAILURE; + } + + if (vtable->priority == LT_DLLOADER_PREPEND) + { + loaders = slist_cons (item, loaders); + } + else + { + assert (vtable->priority == LT_DLLOADER_APPEND); + loaders = slist_concat (loaders, item); + } + + return RETURN_SUCCESS; +} + +#ifdef LT_DEBUG_LOADERS +static void * +loader_dump_callback (SList *item, void *userdata) +{ + const lt_dlvtable *vtable = (const lt_dlvtable *) item->userdata; + fprintf (stderr, ", %s", (vtable && vtable->name) ? vtable->name : "(null)"); + return 0; +} + +void +lt_dlloader_dump (void) +{ + fprintf (stderr, "loaders: "); + if (!loaders) + { + fprintf (stderr, "(empty)"); + } + else + { + const lt_dlvtable *head = (const lt_dlvtable *) loaders->userdata; + fprintf (stderr, "%s", (head && head->name) ? head->name : "(null)"); + if (slist_tail (loaders)) + slist_foreach (slist_tail (loaders), loader_dump_callback, NULL); + } + fprintf (stderr, "\n"); +} +#endif + +/* An iterator for the global loader list: if LOADER is NULL, then + return the first element, otherwise the following element. */ +lt_dlloader +lt_dlloader_next (lt_dlloader loader) +{ + SList *item = (SList *) loader; + return (lt_dlloader) (item ? item->next : loaders); +} + + +/* Non-destructive unboxing of a loader. */ +const lt_dlvtable * +lt_dlloader_get (lt_dlloader loader) +{ + return (const lt_dlvtable *) (loader ? ((SList *) loader)->userdata : NULL); +} + + +/* Return the contents of the first item in the global loader list + with a matching NAME after removing it from that list. If there + was no match, return NULL; if there is an error, return NULL and + set an error for lt_dlerror; do not set an error if only resident + modules need this loader; in either case, the loader list is not + changed if NULL is returned. */ +lt_dlvtable * +lt_dlloader_remove (const char *name) +{ + const lt_dlvtable * vtable = lt_dlloader_find (name); + static const char id_string[] = "lt_dlloader_remove"; + lt_dlinterface_id iface; + lt_dlhandle handle = 0; + int in_use = 0; + int in_use_by_resident = 0; + + if (!vtable) + { + LT__SETERROR (INVALID_LOADER); + return 0; + } + + /* Fail if there are any open modules that use this loader. */ + iface = lt_dlinterface_register (id_string, NULL); + while ((handle = lt_dlhandle_iterate (iface, handle))) + { + lt_dlhandle cur = handle; + if (cur->vtable == vtable) + { + in_use = 1; + if (lt_dlisresident (handle)) + in_use_by_resident = 1; + } + } + lt_dlinterface_free (iface); + if (in_use) + { + if (!in_use_by_resident) + LT__SETERROR (REMOVE_LOADER); + return 0; + } + + /* Call the loader finalisation function. */ + if (vtable && vtable->dlloader_exit) + { + if ((*vtable->dlloader_exit) (vtable->dlloader_data) != 0) + { + /* If there is an exit function, and it returns non-zero + then it must set an error, and we will not remove it + from the list. */ + return 0; + } + } + + /* If we got this far, remove the loader from our global list. */ + return (lt_dlvtable *) + slist_unbox ((SList *) slist_remove (&loaders, loader_callback, (void *) name)); +} + + +const lt_dlvtable * +lt_dlloader_find (const char *name) +{ + return lt_dlloader_get (slist_find (loaders, loader_callback, (void *) name)); +} diff --git a/squashfs-root/usr/share/libtool/lt_error.c b/squashfs-root/usr/share/libtool/lt_error.c new file mode 100644 index 0000000..7be92c6 --- /dev/null +++ b/squashfs-root/usr/share/libtool/lt_error.c @@ -0,0 +1,111 @@ +/* lt_error.c -- error propagation interface + + Copyright (C) 1999-2001, 2004-2005, 2007, 2011-2015 Free Software + Foundation, Inc. + Written by Thomas Tanner, 1999 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" +#include "lt_error.h" + +static const char *last_error = 0; +static const char error_strings[LT_ERROR_MAX][LT_ERROR_LEN_MAX + 1] = + { +#define LT_ERROR(name, diagnostic) diagnostic, + lt_dlerror_table +#undef LT_ERROR + }; + +static const char **user_error_strings = 0; +static int errorcount = LT_ERROR_MAX; + +int +lt_dladderror (const char *diagnostic) +{ + int errindex = 0; + int result = -1; + const char **temp = (const char **) 0; + + assert (diagnostic); + + errindex = errorcount - LT_ERROR_MAX; + temp = REALLOC (const char *, user_error_strings, 1 + errindex); + if (temp) + { + user_error_strings = temp; + user_error_strings[errindex] = diagnostic; + result = errorcount++; + } + + return result; +} + +int +lt_dlseterror (int errindex) +{ + int errors = 0; + + if (errindex >= errorcount || errindex < 0) + { + /* Ack! Error setting the error message! */ + LT__SETERROR (INVALID_ERRORCODE); + ++errors; + } + else if (errindex < LT_ERROR_MAX) + { + /* No error setting the error message! */ + LT__SETERRORSTR (error_strings[errindex]); + } + else + { + /* No error setting the error message! */ + LT__SETERRORSTR (user_error_strings[errindex - LT_ERROR_MAX]); + } + + return errors; +} + +const char * +lt__error_string (int errorcode) +{ + assert (errorcode >= 0); + assert (errorcode < LT_ERROR_MAX); + + return error_strings[errorcode]; +} + +const char * +lt__get_last_error (void) +{ + return last_error; +} + +const char * +lt__set_last_error (const char *errormsg) +{ + return last_error = errormsg; +} diff --git a/squashfs-root/usr/share/libtool/ltdl.c b/squashfs-root/usr/share/libtool/ltdl.c new file mode 100644 index 0000000..6013f2a --- /dev/null +++ b/squashfs-root/usr/share/libtool/ltdl.c @@ -0,0 +1,2471 @@ +/* ltdl.c -- system independent dlopen wrapper + + Copyright (C) 1998-2000, 2004-2008, 2011-2015 Free Software + Foundation, Inc. + Written by Thomas Tanner, 1998 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "lt__private.h" +#include "lt_system.h" +#include "lt_dlloader.h" + + +/* --- MANIFEST CONSTANTS --- */ + + +/* Standard libltdl search path environment variable name */ +#undef LTDL_SEARCHPATH_VAR +#define LTDL_SEARCHPATH_VAR "LTDL_LIBRARY_PATH" + +/* Standard libtool archive file extension. */ +#undef LT_ARCHIVE_EXT +#define LT_ARCHIVE_EXT ".la" + +/* max. filename length */ +#if !defined LT_FILENAME_MAX +# define LT_FILENAME_MAX 1024 +#endif + +#if !defined LT_LIBEXT +# define LT_LIBEXT "a" +#endif + +#if !defined LT_LIBPREFIX +# define LT_LIBPREFIX "lib" +#endif + +/* This is the maximum symbol size that won't require malloc/free */ +#undef LT_SYMBOL_LENGTH +#define LT_SYMBOL_LENGTH 128 + +/* This accounts for the _LTX_ separator */ +#undef LT_SYMBOL_OVERHEAD +#define LT_SYMBOL_OVERHEAD 5 + +/* Various boolean flags can be stored in the flags field of an + lt_dlhandle... */ +#define LT_DLIS_RESIDENT(handle) ((handle)->info.is_resident) +#define LT_DLIS_SYMGLOBAL(handle) ((handle)->info.is_symglobal) +#define LT_DLIS_SYMLOCAL(handle) ((handle)->info.is_symlocal) + + +static const char objdir[] = LT_OBJDIR; +static const char archive_ext[] = LT_ARCHIVE_EXT; +static const char libext[] = LT_LIBEXT; +static const char libprefix[] = LT_LIBPREFIX; +#if defined LT_MODULE_EXT +static const char shlib_ext[] = LT_MODULE_EXT; +#endif +/* If the loadable module suffix is not the same as the linkable + * shared library suffix, this will be defined. */ +#if defined LT_SHARED_EXT +static const char shared_ext[] = LT_SHARED_EXT; +#endif +#if defined LT_DLSEARCH_PATH +static const char sys_dlsearch_path[] = LT_DLSEARCH_PATH; +#endif + + + + +/* --- DYNAMIC MODULE LOADING --- */ + + +/* The type of a function used at each iteration of foreach_dirinpath(). */ +typedef int foreach_callback_func (char *filename, void *data1, + void *data2); +/* foreachfile_callback itself calls a function of this type: */ +typedef int file_worker_func (const char *filename, void *data); + + +static int foreach_dirinpath (const char *search_path, + const char *base_name, + foreach_callback_func *func, + void *data1, void *data2); +static int find_file_callback (char *filename, void *data1, + void *data2); +static int find_handle_callback (char *filename, void *data, + void *ignored); +static int foreachfile_callback (char *filename, void *data1, + void *data2); + + +static int canonicalize_path (const char *path, char **pcanonical); +static int argzize_path (const char *path, + char **pargz, size_t *pargz_len); +static FILE *find_file (const char *search_path, + const char *base_name, char **pdir); +static lt_dlhandle *find_handle (const char *search_path, + const char *base_name, + lt_dlhandle *handle, + lt_dladvise advise); +static int find_module (lt_dlhandle *handle, const char *dir, + const char *libdir, const char *dlname, + const char *old_name, int installed, + lt_dladvise advise); +static int has_library_ext (const char *filename); +static int load_deplibs (lt_dlhandle handle, char *deplibs); +static int trim (char **dest, const char *str); +static int try_dlopen (lt_dlhandle *handle, + const char *filename, const char *ext, + lt_dladvise advise); +static int tryall_dlopen (lt_dlhandle *handle, + const char *filename, + lt_dladvise padvise, + const lt_dlvtable *vtable); +static int unload_deplibs (lt_dlhandle handle); +static int lt_argz_insert (char **pargz, size_t *pargz_len, + char *before, const char *entry); +static int lt_argz_insertinorder (char **pargz, size_t *pargz_len, + const char *entry); +static int lt_argz_insertdir (char **pargz, size_t *pargz_len, + const char *dirnam, struct dirent *dp); +static int lt_dlpath_insertdir (char **ppath, char *before, + const char *dir); +static int list_files_by_dir (const char *dirnam, + char **pargz, size_t *pargz_len); +static int file_not_found (void); + +#ifdef HAVE_LIBDLLOADER +static int loader_init_callback (lt_dlhandle handle); +#endif /* HAVE_LIBDLLOADER */ + +static int loader_init (lt_get_vtable *vtable_func, + lt_user_data data); + +static char *user_search_path= 0; +static lt_dlhandle handles = 0; +static int initialized = 0; + +/* Our memory failure callback sets the error message to be passed back + up to the client, so we must be careful to return from mallocation + callers if allocation fails (as this callback returns!!). */ +void +lt__alloc_die_callback (void) +{ + LT__SETERROR (NO_MEMORY); +} + +#ifdef HAVE_LIBDLLOADER +/* This function is called to initialise each preloaded module loader, + and hook it into the list of loaders to be used when attempting to + dlopen an application module. */ +static int +loader_init_callback (lt_dlhandle handle) +{ + lt_get_vtable *vtable_func = (lt_get_vtable *) lt_dlsym (handle, "get_vtable"); + return loader_init (vtable_func, 0); +} +#endif /* HAVE_LIBDLLOADER */ + +static int +loader_init (lt_get_vtable *vtable_func, lt_user_data data) +{ + const lt_dlvtable *vtable = 0; + int errors = 0; + + if (vtable_func) + { + vtable = (*vtable_func) (data); + } + + /* lt_dlloader_add will LT__SETERROR if it fails. */ + errors += lt_dlloader_add (vtable); + + assert (errors || vtable); + + if ((!errors) && vtable->dlloader_init) + { + if ((*vtable->dlloader_init) (vtable->dlloader_data)) + { + LT__SETERROR (INIT_LOADER); + ++errors; + } + } + + return errors; +} + +/* Bootstrap the loader loading with the preopening loader. */ +#define get_vtable preopen_LTX_get_vtable +#define preloaded_symbols LT_CONC3(lt_, LTDLOPEN, _LTX_preloaded_symbols) + +LT_BEGIN_C_DECLS +LT_SCOPE const lt_dlvtable * get_vtable (lt_user_data data); +LT_END_C_DECLS +#ifdef HAVE_LIBDLLOADER +extern LT_DLSYM_CONST lt_dlsymlist preloaded_symbols[]; +#endif + +/* Initialize libltdl. */ +int +lt_dlinit (void) +{ + int errors = 0; + + /* Initialize only at first call. */ + if (++initialized == 1) + { + lt__alloc_die = lt__alloc_die_callback; + handles = 0; + user_search_path = 0; /* empty search path */ + + /* First set up the statically loaded preload module loader, so + we can use it to preopen the other loaders we linked in at + compile time. */ + errors += loader_init (get_vtable, 0); + + /* Now open all the preloaded module loaders, so the application + can use _them_ to lt_dlopen its own modules. */ +#ifdef HAVE_LIBDLLOADER + if (!errors) + { + errors += lt_dlpreload (preloaded_symbols); + } + + if (!errors) + { + errors += lt_dlpreload_open (LT_STR(LTDLOPEN), loader_init_callback); + } +#endif /* HAVE_LIBDLLOADER */ + } + +#ifdef LT_DEBUG_LOADERS + lt_dlloader_dump(); +#endif + + return errors; +} + +int +lt_dlexit (void) +{ + /* shut down libltdl */ + lt_dlloader *loader = 0; + lt_dlhandle handle = handles; + int errors = 0; + + if (!initialized) + { + LT__SETERROR (SHUTDOWN); + ++errors; + goto done; + } + + /* shut down only at last call. */ + if (--initialized == 0) + { + int level; + + while (handles && LT_DLIS_RESIDENT (handles)) + { + handles = handles->next; + } + + /* close all modules */ + for (level = 1; handle; ++level) + { + lt_dlhandle cur = handles; + int saw_nonresident = 0; + + while (cur) + { + lt_dlhandle tmp = cur; + cur = cur->next; + if (!LT_DLIS_RESIDENT (tmp)) + { + saw_nonresident = 1; + if (tmp->info.ref_count <= level) + { + if (lt_dlclose (tmp)) + { + ++errors; + } + /* Make sure that the handle pointed to by 'cur' still exists. + lt_dlclose recursively closes dependent libraries, which removes + them from the linked list. One of these might be the one + pointed to by 'cur'. */ + if (cur) + { + for (tmp = handles; tmp; tmp = tmp->next) + if (tmp == cur) + break; + if (! tmp) + cur = handles; + } + } + } + } + /* done if only resident modules are left */ + if (!saw_nonresident) + break; + } + + /* When removing loaders, we can only find out failure by testing + the error string, so avoid a spurious one from an earlier + failed command. */ + if (!errors) + LT__SETERRORSTR (0); + + /* close all loaders */ + for (loader = (lt_dlloader *) lt_dlloader_next (NULL); loader;) + { + lt_dlloader *next = (lt_dlloader *) lt_dlloader_next (loader); + lt_dlvtable *vtable = (lt_dlvtable *) lt_dlloader_get (loader); + + if ((vtable = lt_dlloader_remove ((char *) vtable->name))) + { + FREE (vtable); + } + else + { + /* ignore errors due to resident modules */ + const char *err; + LT__GETERROR (err); + if (err) + ++errors; + } + + loader = next; + } + + FREE(user_search_path); + } + + done: + return errors; +} + + +/* Try VTABLE or, if VTABLE is NULL, all available loaders for FILENAME. + If the library is not successfully loaded, return non-zero. Otherwise, + the dlhandle is stored at the address given in PHANDLE. */ +static int +tryall_dlopen (lt_dlhandle *phandle, const char *filename, + lt_dladvise advise, const lt_dlvtable *vtable) +{ + lt_dlhandle handle = handles; + const char * saved_error = 0; + int errors = 0; + +#ifdef LT_DEBUG_LOADERS + fprintf (stderr, "tryall_dlopen (%s, %s)\n", + filename ? filename : "(null)", + vtable ? vtable->name : "(ALL)"); +#endif + + LT__GETERROR (saved_error); + + /* check whether the module was already opened */ + for (;handle; handle = handle->next) + { + if ((handle->info.filename == filename) /* dlopen self: 0 == 0 */ + || (handle->info.filename && filename + && STREQ (handle->info.filename, filename))) + { + break; + } + } + + if (handle) + { + ++handle->info.ref_count; + *phandle = handle; + goto done; + } + + handle = *phandle; + if (filename) + { + /* Comment out the check of file permissions using access. + This call seems to always return -1 with error EACCES. + */ + /* We need to catch missing file errors early so that + file_not_found() can detect what happened. + if (access (filename, R_OK) != 0) + { + LT__SETERROR (FILE_NOT_FOUND); + ++errors; + goto done; + } */ + + handle->info.filename = lt__strdup (filename); + if (!handle->info.filename) + { + ++errors; + goto done; + } + } + else + { + handle->info.filename = 0; + } + + { + lt_dlloader loader = lt_dlloader_next (0); + const lt_dlvtable *loader_vtable; + + do + { + if (vtable) + loader_vtable = vtable; + else + loader_vtable = lt_dlloader_get (loader); + +#ifdef LT_DEBUG_LOADERS + fprintf (stderr, "Calling %s->module_open (%s)\n", + (loader_vtable && loader_vtable->name) ? loader_vtable->name : "(null)", + filename ? filename : "(null)"); +#endif + handle->module = (*loader_vtable->module_open) (loader_vtable->dlloader_data, + filename, advise); +#ifdef LT_DEBUG_LOADERS + if (!handle->module) { + char *error; + LT__GETERROR(error); + fprintf (stderr, " Result: Failed\n" + " Error message << %s >>\n", + error ? error : "(null)"); + } else { + fprintf (stderr, " Result: Success\n"); + } +#endif + + if (handle->module != 0) + { + if (advise) + { + handle->info.is_resident = advise->is_resident; + handle->info.is_symglobal = advise->is_symglobal; + handle->info.is_symlocal = advise->is_symlocal; + } + break; + } + } + while (!vtable && (loader = lt_dlloader_next (loader))); + + /* If VTABLE was given but couldn't open the module, or VTABLE wasn't + given but we exhausted all loaders without opening the module, bail + out! */ + if ((vtable && !handle->module) + || (!vtable && !loader)) + { + FREE (handle->info.filename); + ++errors; + goto done; + } + + handle->vtable = loader_vtable; + } + + LT__SETERRORSTR (saved_error); + + done: + return errors; +} + + +static int +tryall_dlopen_module (lt_dlhandle *handle, const char *prefix, + const char *dirname, const char *dlname, + lt_dladvise advise) +{ + int error = 0; + char *filename = 0; + size_t filename_len = 0; + size_t dirname_len = LT_STRLEN (dirname); + + assert (handle); + assert (dirname); + assert (dlname); +#if defined LT_DIRSEP_CHAR + /* Only canonicalized names (i.e. with DIRSEP chars already converted) + should make it into this function: */ + assert (strchr (dirname, LT_DIRSEP_CHAR) == 0); +#endif + + if (dirname_len > 0) + if (dirname[dirname_len -1] == '/') + --dirname_len; + filename_len = dirname_len + 1 + LT_STRLEN (dlname); + + /* Allocate memory, and combine DIRNAME and MODULENAME into it. + The PREFIX (if any) is handled below. */ + filename = MALLOC (char, filename_len + 1); + if (!filename) + return 1; + + sprintf (filename, "%.*s/%s", (int) dirname_len, dirname, dlname); + + /* Now that we have combined DIRNAME and MODULENAME, if there is + also a PREFIX to contend with, simply recurse with the arguments + shuffled. Otherwise, attempt to open FILENAME as a module. */ + if (prefix) + { + error += tryall_dlopen_module (handle, (const char *) 0, + prefix, filename, advise); + } + else if (tryall_dlopen (handle, filename, advise, 0) != 0) + { + ++error; + } + + FREE (filename); + return error; +} + +static int +find_module (lt_dlhandle *handle, const char *dir, const char *libdir, + const char *dlname, const char *old_name, int installed, + lt_dladvise advise) +{ + /* Try to open the old library first; if it was dlpreopened, + we want the preopened version of it, even if a dlopenable + module is available. */ + if (old_name && tryall_dlopen (handle, old_name, + advise, lt_dlloader_find ("lt_preopen") ) == 0) + { + return 0; + } + + /* Try to open the dynamic library. */ + if (dlname) + { + /* try to open the installed module */ + if (installed && libdir) + { + if (tryall_dlopen_module (handle, (const char *) 0, + libdir, dlname, advise) == 0) + return 0; + } + + /* try to open the not-installed module */ + if (!installed) + { + if (tryall_dlopen_module (handle, dir, objdir, + dlname, advise) == 0) + return 0; + } + + /* maybe it was moved to another directory */ + { + if (dir && (tryall_dlopen_module (handle, (const char *) 0, + dir, dlname, advise) == 0)) + return 0; + } + } + + return 1; +} + + +static int +canonicalize_path (const char *path, char **pcanonical) +{ + char *canonical = 0; + + assert (path && *path); + assert (pcanonical); + + canonical = MALLOC (char, 1+ LT_STRLEN (path)); + if (!canonical) + return 1; + + { + size_t dest = 0; + size_t src; + for (src = 0; path[src] != LT_EOS_CHAR; ++src) + { + /* Path separators are not copied to the beginning or end of + the destination, or if another separator would follow + immediately. */ + if (path[src] == LT_PATHSEP_CHAR) + { + if ((dest == 0) + || (path[1+ src] == LT_PATHSEP_CHAR) + || (path[1+ src] == LT_EOS_CHAR)) + continue; + } + + /* Anything other than a directory separator is copied verbatim. */ + if ((path[src] != '/') +#if defined LT_DIRSEP_CHAR + && (path[src] != LT_DIRSEP_CHAR) +#endif + ) + { + canonical[dest++] = path[src]; + } + /* Directory separators are converted and copied only if they are + not at the end of a path -- i.e. before a path separator or + NULL terminator. */ + else if ((path[1+ src] != LT_PATHSEP_CHAR) + && (path[1+ src] != LT_EOS_CHAR) +#if defined LT_DIRSEP_CHAR + && (path[1+ src] != LT_DIRSEP_CHAR) +#endif + && (path[1+ src] != '/')) + { + canonical[dest++] = '/'; + } + } + + /* Add an end-of-string marker at the end. */ + canonical[dest] = LT_EOS_CHAR; + } + + /* Assign new value. */ + *pcanonical = canonical; + + return 0; +} + +static int +argzize_path (const char *path, char **pargz, size_t *pargz_len) +{ + error_t error; + + assert (path); + assert (pargz); + assert (pargz_len); + + if ((error = argz_create_sep (path, LT_PATHSEP_CHAR, pargz, pargz_len))) + { + switch (error) + { + case ENOMEM: + LT__SETERROR (NO_MEMORY); + break; + default: + LT__SETERROR (UNKNOWN); + break; + } + + return 1; + } + + return 0; +} + +/* Repeatedly call FUNC with each LT_PATHSEP_CHAR delimited element + of SEARCH_PATH and references to DATA1 and DATA2, until FUNC returns + non-zero or all elements are exhausted. If BASE_NAME is non-NULL, + it is appended to each SEARCH_PATH element before FUNC is called. */ +static int +foreach_dirinpath (const char *search_path, const char *base_name, + foreach_callback_func *func, void *data1, void *data2) +{ + int result = 0; + size_t filenamesize = 0; + size_t lenbase = LT_STRLEN (base_name); + size_t argz_len = 0; + char *argz = 0; + char *filename = 0; + char *canonical = 0; + + if (!search_path || !*search_path) + { + LT__SETERROR (FILE_NOT_FOUND); + goto cleanup; + } + + if (canonicalize_path (search_path, &canonical) != 0) + goto cleanup; + + if (argzize_path (canonical, &argz, &argz_len) != 0) + goto cleanup; + + { + char *dir_name = 0; + while ((dir_name = argz_next (argz, argz_len, dir_name))) + { + size_t lendir = LT_STRLEN (dir_name); + + if (1+ lendir + lenbase >= filenamesize) + { + FREE (filename); + filenamesize = 1+ lendir + 1+ lenbase; /* "/d" + '/' + "f" + '\0' */ + filename = MALLOC (char, filenamesize); + if (!filename) + goto cleanup; + } + + assert (filenamesize > lendir); + strcpy (filename, dir_name); + + if (base_name && *base_name) + { + if (filename[lendir -1] != '/') + filename[lendir++] = '/'; + strcpy (filename +lendir, base_name); + } + + if ((result = (*func) (filename, data1, data2))) + { + break; + } + } + } + + cleanup: + FREE (argz); + FREE (canonical); + FREE (filename); + + return result; +} + +/* If FILEPATH can be opened, store the name of the directory component + in DATA1, and the opened FILE* structure address in DATA2. Otherwise + DATA1 is unchanged, but DATA2 is set to a pointer to NULL. */ +static int +find_file_callback (char *filename, void *data1, void *data2) +{ + char **pdir = (char **) data1; + FILE **pfile = (FILE **) data2; + int is_done = 0; + + assert (filename && *filename); + assert (pdir); + assert (pfile); + + if ((*pfile = fopen (filename, LT_READTEXT_MODE))) + { + char *dirend = strrchr (filename, '/'); + + if (dirend > filename) + *dirend = LT_EOS_CHAR; + + FREE (*pdir); + *pdir = lt__strdup (filename); + is_done = (*pdir == 0) ? -1 : 1; + } + + return is_done; +} + +static FILE * +find_file (const char *search_path, const char *base_name, char **pdir) +{ + FILE *file = 0; + + foreach_dirinpath (search_path, base_name, find_file_callback, pdir, &file); + + return file; +} + +static int +find_handle_callback (char *filename, void *data, void *data2) +{ + lt_dlhandle *phandle = (lt_dlhandle *) data; + int notfound = access (filename, R_OK); + lt_dladvise advise = (lt_dladvise) data2; + + /* Bail out if file cannot be read... */ + if (notfound) + return 0; + + /* Try to dlopen the file, but do not continue searching in any + case. */ + if (tryall_dlopen (phandle, filename, advise, 0) != 0) + *phandle = 0; + + return 1; +} + +/* If HANDLE was found return it, otherwise return 0. If HANDLE was + found but could not be opened, *HANDLE will be set to 0. */ +static lt_dlhandle * +find_handle (const char *search_path, const char *base_name, + lt_dlhandle *phandle, lt_dladvise advise) +{ + if (!search_path) + return 0; + + if (!foreach_dirinpath (search_path, base_name, find_handle_callback, + phandle, advise)) + return 0; + + return phandle; +} + +#if !defined LTDL_DLOPEN_DEPLIBS +static int +load_deplibs (lt_dlhandle handle, char * deplibs LT__UNUSED) +{ + handle->depcount = 0; + return 0; +} + +#else /* defined LTDL_DLOPEN_DEPLIBS */ +static int +load_deplibs (lt_dlhandle handle, char *deplibs) +{ + char *p, *save_search_path = 0; + int depcount = 0; + int i; + char **names = 0; + int errors = 0; + + handle->depcount = 0; + + if (!deplibs) + { + return errors; + } + ++errors; + + if (user_search_path) + { + save_search_path = lt__strdup (user_search_path); + if (!save_search_path) + goto cleanup; + } + + /* extract search paths and count deplibs */ + p = deplibs; + while (*p) + { + if (!isspace ((unsigned char) *p)) + { + char *end = p+1; + while (*end && !isspace((unsigned char) *end)) + { + ++end; + } + + if (strncmp(p, "-L", 2) == 0 || strncmp(p, "-R", 2) == 0) + { + char save = *end; + *end = 0; /* set a temporary string terminator */ + if (lt_dladdsearchdir(p+2)) + { + goto cleanup; + } + *end = save; + } + else + { + ++depcount; + } + + p = end; + } + else + { + ++p; + } + } + + + if (!depcount) + { + errors = 0; + goto cleanup; + } + + names = MALLOC (char *, depcount); + if (!names) + goto cleanup; + + /* now only extract the actual deplibs */ + depcount = 0; + p = deplibs; + while (*p) + { + if (isspace ((unsigned char) *p)) + { + ++p; + } + else + { + char *end = p+1; + while (*end && !isspace ((unsigned char) *end)) + { + ++end; + } + + if (strncmp(p, "-L", 2) != 0 && strncmp(p, "-R", 2) != 0) + { + char *name; + char save = *end; + *end = 0; /* set a temporary string terminator */ + if (strncmp(p, "-l", 2) == 0) + { + size_t name_len = 3+ /* "lib" */ LT_STRLEN (p + 2); + name = MALLOC (char, 1+ name_len); + if (name) + sprintf (name, "lib%s", p+2); + } + else + name = lt__strdup(p); + + if (!name) + goto cleanup_names; + + names[depcount++] = name; + *end = save; + } + p = end; + } + } + + /* load the deplibs (in reverse order) + At this stage, don't worry if the deplibs do not load correctly, + they may already be statically linked into the loading application + for instance. There will be a more enlightening error message + later on if the loaded module cannot resolve all of its symbols. */ + if (depcount) + { + lt_dlhandle cur = handle; + int j = 0; + + cur->deplibs = MALLOC (lt_dlhandle, depcount); + if (!cur->deplibs) + goto cleanup_names; + + for (i = 0; i < depcount; ++i) + { + cur->deplibs[j] = lt_dlopenext(names[depcount-1-i]); + if (cur->deplibs[j]) + { + ++j; + } + } + + cur->depcount = j; /* Number of successfully loaded deplibs */ + errors = 0; + } + + cleanup_names: + for (i = 0; i < depcount; ++i) + { + FREE (names[i]); + } + + cleanup: + FREE (names); + /* restore the old search path */ + if (save_search_path) { + MEMREASSIGN (user_search_path, save_search_path); + } + + return errors; +} +#endif /* defined LTDL_DLOPEN_DEPLIBS */ + +static int +unload_deplibs (lt_dlhandle handle) +{ + int i; + int errors = 0; + lt_dlhandle cur = handle; + + if (cur->depcount) + { + for (i = 0; i < cur->depcount; ++i) + { + if (!LT_DLIS_RESIDENT (cur->deplibs[i])) + { + errors += lt_dlclose (cur->deplibs[i]); + } + } + FREE (cur->deplibs); + } + + return errors; +} + +static int +trim (char **dest, const char *str) +{ + /* remove the leading and trailing "'" from str + and store the result in dest */ + const char *end = strrchr (str, '\''); + size_t len = LT_STRLEN (str); + char *tmp; + + FREE (*dest); + + if (!end || end == str) + return 1; + + if (len > 3 && str[0] == '\'') + { + tmp = MALLOC (char, end - str); + if (!tmp) + return 1; + + memcpy(tmp, &str[1], (end - str) - 1); + tmp[(end - str) - 1] = LT_EOS_CHAR; + *dest = tmp; + } + else + { + *dest = 0; + } + + return 0; +} + +/* Read the .la file FILE. */ +static int +parse_dotla_file(FILE *file, char **dlname, char **libdir, char **deplibs, + char **old_name, int *installed) +{ + int errors = 0; + size_t line_len = LT_FILENAME_MAX; + char * line = MALLOC (char, line_len); + + if (!line) + { + LT__SETERROR (FILE_NOT_FOUND); + return 1; + } + + while (!feof (file)) + { + line[line_len-2] = '\0'; + if (!fgets (line, (int) line_len, file)) + { + break; + } + + /* Handle the case where we occasionally need to read a line + that is longer than the initial buffer size. + Behave even if the file contains NUL bytes due to corruption. */ + while (line[line_len-2] != '\0' && line[line_len-2] != '\n' && !feof (file)) + { + line = REALLOC (char, line, line_len *2); + if (!line) + { + ++errors; + goto cleanup; + } + line[line_len * 2 - 2] = '\0'; + if (!fgets (&line[line_len -1], (int) line_len +1, file)) + { + break; + } + line_len *= 2; + } + + if (line[0] == '\n' || line[0] == '#') + { + continue; + } + +#undef STR_DLNAME +#define STR_DLNAME "dlname=" + if (strncmp (line, STR_DLNAME, sizeof (STR_DLNAME) - 1) == 0) + { + errors += trim (dlname, &line[sizeof (STR_DLNAME) - 1]); + } + +#undef STR_OLD_LIBRARY +#define STR_OLD_LIBRARY "old_library=" + else if (strncmp (line, STR_OLD_LIBRARY, + sizeof (STR_OLD_LIBRARY) - 1) == 0) + { + errors += trim (old_name, &line[sizeof (STR_OLD_LIBRARY) - 1]); + } + + /* Windows native tools do not understand the POSIX paths we store + in libdir. */ +#undef STR_LIBDIR +#define STR_LIBDIR "libdir=" + else if (strncmp (line, STR_LIBDIR, sizeof (STR_LIBDIR) - 1) == 0) + { + errors += trim (libdir, &line[sizeof(STR_LIBDIR) - 1]); +#ifdef __WINDOWS__ + /* Disallow following unix-style paths on MinGW. */ + if (*libdir && (**libdir == '/' || **libdir == '\\')) + **libdir = '\0'; +#endif + } + +#undef STR_DL_DEPLIBS +#define STR_DL_DEPLIBS "dependency_libs=" + else if (strncmp (line, STR_DL_DEPLIBS, + sizeof (STR_DL_DEPLIBS) - 1) == 0) + { + errors += trim (deplibs, &line[sizeof (STR_DL_DEPLIBS) - 1]); + } + else if (STREQ (line, "installed=yes\n")) + { + *installed = 1; + } + else if (STREQ (line, "installed=no\n")) + { + *installed = 0; + } + +#undef STR_LIBRARY_NAMES +#define STR_LIBRARY_NAMES "library_names=" + else if (!*dlname && strncmp (line, STR_LIBRARY_NAMES, + sizeof (STR_LIBRARY_NAMES) - 1) == 0) + { + char *last_libname; + errors += trim (dlname, &line[sizeof (STR_LIBRARY_NAMES) - 1]); + if (!errors + && *dlname + && (last_libname = strrchr (*dlname, ' ')) != 0) + { + last_libname = lt__strdup (last_libname + 1); + if (!last_libname) + { + ++errors; + goto cleanup; + } + MEMREASSIGN (*dlname, last_libname); + } + } + + if (errors) + break; + } +cleanup: + FREE (line); + return errors; +} + + +/* Try to open FILENAME as a module. */ +static int +try_dlopen (lt_dlhandle *phandle, const char *filename, const char *ext, + lt_dladvise advise) +{ + const char * saved_error = 0; + char * archive_name = 0; + char * canonical = 0; + char * base_name = 0; + char * dir = 0; + char * name = 0; + char * attempt = 0; + int errors = 0; + lt_dlhandle newhandle; + + assert (phandle); + assert (*phandle == 0); + +#ifdef LT_DEBUG_LOADERS + fprintf (stderr, "try_dlopen (%s, %s)\n", + filename ? filename : "(null)", + ext ? ext : "(null)"); +#endif + + LT__GETERROR (saved_error); + + /* dlopen self? */ + if (!filename) + { + *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); + if (*phandle == 0) + return 1; + + newhandle = *phandle; + + /* lt_dlclose()ing yourself is very bad! Disallow it. */ + newhandle->info.is_resident = 1; + + if (tryall_dlopen (&newhandle, 0, advise, 0) != 0) + { + FREE (*phandle); + return 1; + } + + goto register_handle; + } + + assert (filename && *filename); + + if (ext) + { + attempt = MALLOC (char, LT_STRLEN (filename) + LT_STRLEN (ext) + 1); + if (!attempt) + return 1; + + sprintf(attempt, "%s%s", filename, ext); + } + else + { + attempt = lt__strdup (filename); + if (!attempt) + return 1; + } + + /* Doing this immediately allows internal functions to safely + assume only canonicalized paths are passed. */ + if (canonicalize_path (attempt, &canonical) != 0) + { + ++errors; + goto cleanup; + } + + /* If the canonical module name is a path (relative or absolute) + then split it into a directory part and a name part. */ + base_name = strrchr (canonical, '/'); + if (base_name) + { + size_t dirlen = (1+ base_name) - canonical; + + dir = MALLOC (char, 1+ dirlen); + if (!dir) + { + ++errors; + goto cleanup; + } + + strlcpy (dir, canonical, dirlen); + dir[dirlen] = LT_EOS_CHAR; + + ++base_name; + } + else + MEMREASSIGN (base_name, canonical); + + assert (base_name && *base_name); + + ext = strrchr (base_name, '.'); + if (!ext) + { + ext = base_name + LT_STRLEN (base_name); + } + + /* extract the module name from the file name */ + name = MALLOC (char, ext - base_name + 1); + if (!name) + { + ++errors; + goto cleanup; + } + + /* canonicalize the module name */ + { + int i; + for (i = 0; i < ext - base_name; ++i) + { + if (isalnum ((unsigned char)(base_name[i]))) + { + name[i] = base_name[i]; + } + else + { + name[i] = '_'; + } + } + name[ext - base_name] = LT_EOS_CHAR; + } + + /* Before trawling through the file system in search of a module, + check whether we are opening a preloaded module. */ + if (!dir) + { + const lt_dlvtable *vtable = lt_dlloader_find ("lt_preopen"); + + if (vtable) + { + /* libprefix + name + "." + libext + NULL */ + archive_name = MALLOC (char, strlen (libprefix) + LT_STRLEN (name) + strlen (libext) + 2); + *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); + + if ((*phandle == NULL) || (archive_name == NULL)) + { + ++errors; + goto cleanup; + } + newhandle = *phandle; + + /* Preloaded modules are always named according to their old + archive name. */ + if (strncmp(name, "lib", 3) == 0) + { + sprintf (archive_name, "%s%s.%s", libprefix, name + 3, libext); + } + else + { + sprintf (archive_name, "%s.%s", name, libext); + } + + if (tryall_dlopen (&newhandle, archive_name, advise, vtable) == 0) + { + goto register_handle; + } + + /* If we're still here, there was no matching preloaded module, + so put things back as we found them, and continue searching. */ + FREE (*phandle); + newhandle = NULL; + } + } + + /* If we are allowing only preloaded modules, and we didn't find + anything yet, give up on the search here. */ + if (advise && advise->try_preload_only) + { + goto cleanup; + } + + /* Check whether we are opening a libtool module (.la extension). */ + if (ext && STREQ (ext, archive_ext)) + { + /* this seems to be a libtool module */ + FILE * file = 0; + char * dlname = 0; + char * old_name = 0; + char * libdir = 0; + char * deplibs = 0; + + /* if we can't find the installed flag, it is probably an + installed libtool archive, produced with an old version + of libtool */ + int installed = 1; + + /* Now try to open the .la file. If there is no directory name + component, try to find it first in user_search_path and then other + prescribed paths. Otherwise (or in any case if the module was not + yet found) try opening just the module name as passed. */ + if (!dir) + { + const char *search_path = user_search_path; + + if (search_path) + file = find_file (user_search_path, base_name, &dir); + + if (!file) + { + search_path = getenv (LTDL_SEARCHPATH_VAR); + if (search_path) + file = find_file (search_path, base_name, &dir); + } + +#if defined LT_MODULE_PATH_VAR + if (!file) + { + search_path = getenv (LT_MODULE_PATH_VAR); + if (search_path) + file = find_file (search_path, base_name, &dir); + } +#endif +#if defined LT_DLSEARCH_PATH + if (!file && *sys_dlsearch_path) + { + file = find_file (sys_dlsearch_path, base_name, &dir); + } +#endif + } + else + { + file = fopen (attempt, LT_READTEXT_MODE); + } + + /* If we didn't find the file by now, it really isn't there. Set + the status flag, and bail out. */ + if (!file) + { + LT__SETERROR (FILE_NOT_FOUND); + ++errors; + goto cleanup; + } + + /* read the .la file */ + if (parse_dotla_file(file, &dlname, &libdir, &deplibs, + &old_name, &installed) != 0) + ++errors; + + fclose (file); + + /* allocate the handle */ + *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); + if (*phandle == 0) + ++errors; + + if (errors) + { + FREE (dlname); + FREE (old_name); + FREE (libdir); + FREE (deplibs); + FREE (*phandle); + goto cleanup; + } + + assert (*phandle); + + if (load_deplibs (*phandle, deplibs) == 0) + { + newhandle = *phandle; + /* find_module may replace newhandle */ + if (find_module (&newhandle, dir, libdir, dlname, old_name, + installed, advise)) + { + unload_deplibs (*phandle); + ++errors; + } + } + else + { + ++errors; + } + + FREE (dlname); + FREE (old_name); + FREE (libdir); + FREE (deplibs); + + if (errors) + { + FREE (*phandle); + goto cleanup; + } + + if (*phandle != newhandle) + { + unload_deplibs (*phandle); + } + } + else + { + /* not a libtool module */ + *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); + if (*phandle == 0) + { + ++errors; + goto cleanup; + } + + newhandle = *phandle; + + /* If the module has no directory name component, try to find it + first in user_search_path and then other prescribed paths. + Otherwise (or in any case if the module was not yet found) try + opening just the module name as passed. */ + if ((dir || (!find_handle (user_search_path, base_name, + &newhandle, advise) + && !find_handle (getenv (LTDL_SEARCHPATH_VAR), base_name, + &newhandle, advise) +#if defined LT_MODULE_PATH_VAR + && !find_handle (getenv (LT_MODULE_PATH_VAR), base_name, + &newhandle, advise) +#endif +#if defined LT_DLSEARCH_PATH + && !find_handle (sys_dlsearch_path, base_name, + &newhandle, advise) +#endif + ))) + { + if (tryall_dlopen (&newhandle, attempt, advise, 0) != 0) + { + newhandle = NULL; + } + } + + if (!newhandle) + { + FREE (*phandle); + ++errors; + goto cleanup; + } + } + + register_handle: + MEMREASSIGN (*phandle, newhandle); + + if ((*phandle)->info.ref_count == 0) + { + (*phandle)->info.ref_count = 1; + MEMREASSIGN ((*phandle)->info.name, name); + + (*phandle)->next = handles; + handles = *phandle; + } + + LT__SETERRORSTR (saved_error); + + cleanup: + FREE (dir); + FREE (attempt); + FREE (name); + if (!canonical) /* was MEMREASSIGNed */ + FREE (base_name); + FREE (canonical); + FREE (archive_name); + + return errors; +} + + +/* If the last error message stored was 'FILE_NOT_FOUND', then return + non-zero. */ +static int +file_not_found (void) +{ + const char *error = 0; + + LT__GETERROR (error); + if (error == LT__STRERROR (FILE_NOT_FOUND)) + return 1; + + return 0; +} + + +/* Unless FILENAME already bears a suitable library extension, then + return 0. */ +static int +has_library_ext (const char *filename) +{ + const char * ext = 0; + + assert (filename); + + ext = strrchr (filename, '.'); + + if (ext && ((STREQ (ext, archive_ext)) +#if defined LT_MODULE_EXT + || (STREQ (ext, shlib_ext)) +#endif +#if defined LT_SHARED_EXT + || (STREQ (ext, shared_ext)) +#endif + )) + { + return 1; + } + + return 0; +} + + +/* Initialise and configure a user lt_dladvise opaque object. */ + +int +lt_dladvise_init (lt_dladvise *padvise) +{ + lt_dladvise advise = (lt_dladvise) lt__zalloc (sizeof (struct lt__advise)); + *padvise = advise; + return (advise ? 0 : 1); +} + +int +lt_dladvise_destroy (lt_dladvise *padvise) +{ + if (padvise) + FREE(*padvise); + return 0; +} + +int +lt_dladvise_ext (lt_dladvise *padvise) +{ + assert (padvise && *padvise); + (*padvise)->try_ext = 1; + return 0; +} + +int +lt_dladvise_resident (lt_dladvise *padvise) +{ + assert (padvise && *padvise); + (*padvise)->is_resident = 1; + return 0; +} + +int +lt_dladvise_local (lt_dladvise *padvise) +{ + assert (padvise && *padvise); + (*padvise)->is_symlocal = 1; + return 0; +} + +int +lt_dladvise_global (lt_dladvise *padvise) +{ + assert (padvise && *padvise); + (*padvise)->is_symglobal = 1; + return 0; +} + +int +lt_dladvise_preload (lt_dladvise *padvise) +{ + assert (padvise && *padvise); + (*padvise)->try_preload_only = 1; + return 0; +} + +/* Libtool-1.5.x interface for loading a new module named FILENAME. */ +lt_dlhandle +lt_dlopen (const char *filename) +{ + return lt_dlopenadvise (filename, NULL); +} + + +/* If FILENAME has an ARCHIVE_EXT or MODULE_EXT extension, try to + open the FILENAME as passed. Otherwise try appending ARCHIVE_EXT, + and if a file is still not found try again with MODULE_EXT appended + instead. */ +lt_dlhandle +lt_dlopenext (const char *filename) +{ + lt_dlhandle handle = 0; + lt_dladvise advise; + + if (!lt_dladvise_init (&advise) && !lt_dladvise_ext (&advise)) + handle = lt_dlopenadvise (filename, advise); + + lt_dladvise_destroy (&advise); + return handle; +} + + +lt_dlhandle +lt_dlopenadvise (const char *filename, lt_dladvise advise) +{ + lt_dlhandle handle = 0; + int errors = 0; + const char * saved_error = 0; + + LT__GETERROR (saved_error); + + /* Can't have symbols hidden and visible at the same time! */ + if (advise && advise->is_symlocal && advise->is_symglobal) + { + LT__SETERROR (CONFLICTING_FLAGS); + return 0; + } + + if (!filename + || !advise + || !advise->try_ext + || has_library_ext (filename)) + { + /* Just incase we missed a code path in try_dlopen() that reports + an error, but forgot to reset handle... */ + if (try_dlopen (&handle, filename, NULL, advise) != 0) + return 0; + + return handle; + } + else if (filename && *filename) + { + + /* First try appending ARCHIVE_EXT. */ + errors += try_dlopen (&handle, filename, archive_ext, advise); + + /* If we found FILENAME, stop searching -- whether we were able to + load the file as a module or not. If the file exists but loading + failed, it is better to return an error message here than to + report FILE_NOT_FOUND when the alternatives (foo.so etc) are not + in the module search path. */ + if (handle || ((errors > 0) && !file_not_found ())) + return handle; + +#if defined LT_MODULE_EXT + /* Try appending SHLIB_EXT. */ + LT__SETERRORSTR (saved_error); + errors = try_dlopen (&handle, filename, shlib_ext, advise); + + /* As before, if the file was found but loading failed, return now + with the current error message. */ + if (handle || ((errors > 0) && !file_not_found ())) + return handle; +#endif + +#if defined LT_SHARED_EXT + /* Try appending SHARED_EXT. */ + LT__SETERRORSTR (saved_error); + errors = try_dlopen (&handle, filename, shared_ext, advise); + + /* As before, if the file was found but loading failed, return now + with the current error message. */ + if (handle || ((errors > 0) && !file_not_found ())) + return handle; +#endif + } + + /* Still here? Then we really did fail to locate any of the file + names we tried. */ + LT__SETERROR (FILE_NOT_FOUND); + return 0; +} + + +static int +lt_argz_insert (char **pargz, size_t *pargz_len, char *before, + const char *entry) +{ + error_t error; + + /* Prior to Sep 8, 2005, newlib had a bug where argz_insert(pargz, + pargz_len, NULL, entry) failed with EINVAL. */ + if (before) + error = argz_insert (pargz, pargz_len, before, entry); + else + error = argz_append (pargz, pargz_len, entry, 1 + strlen (entry)); + + if (error) + { + switch (error) + { + case ENOMEM: + LT__SETERROR (NO_MEMORY); + break; + default: + LT__SETERROR (UNKNOWN); + break; + } + return 1; + } + + return 0; +} + +static int +lt_argz_insertinorder (char **pargz, size_t *pargz_len, const char *entry) +{ + char *before = 0; + + assert (pargz); + assert (pargz_len); + assert (entry && *entry); + + if (*pargz) + while ((before = argz_next (*pargz, *pargz_len, before))) + { + int cmp = strcmp (entry, before); + + if (cmp < 0) break; + if (cmp == 0) return 0; /* No duplicates! */ + } + + return lt_argz_insert (pargz, pargz_len, before, entry); +} + +static int +lt_argz_insertdir (char **pargz, size_t *pargz_len, const char *dirnam, + struct dirent *dp) +{ + char *buf = 0; + size_t buf_len = 0; + char *end = 0; + size_t end_offset = 0; + size_t dir_len = 0; + int errors = 0; + + assert (pargz); + assert (pargz_len); + assert (dp); + + dir_len = LT_STRLEN (dirnam); + end = dp->d_name + D_NAMLEN(dp); + + /* Ignore version numbers. */ + { + char *p; + for (p = end; p -1 > dp->d_name; --p) + if (strchr (".0123456789", p[-1]) == 0) + break; + + if (*p == '.') + end = p; + } + + /* Ignore filename extension. */ + { + char *p; + for (p = end -1; p > dp->d_name; --p) + if (*p == '.') + { + end = p; + break; + } + } + + /* Prepend the directory name. */ + end_offset = end - dp->d_name; + buf_len = dir_len + 1+ end_offset; + buf = MALLOC (char, 1+ buf_len); + if (!buf) + return ++errors; + + assert (buf); + + strcpy (buf, dirnam); + strcat (buf, "/"); + strncat (buf, dp->d_name, end_offset); + buf[buf_len] = LT_EOS_CHAR; + + /* Try to insert (in order) into ARGZ/ARGZ_LEN. */ + if (lt_argz_insertinorder (pargz, pargz_len, buf) != 0) + ++errors; + + FREE (buf); + + return errors; +} + +static int +list_files_by_dir (const char *dirnam, char **pargz, size_t *pargz_len) +{ + DIR *dirp = 0; + int errors = 0; + + assert (dirnam && *dirnam); + assert (pargz); + assert (pargz_len); + assert (dirnam[LT_STRLEN(dirnam) -1] != '/'); + + dirp = opendir (dirnam); + if (dirp) + { + struct dirent *dp = 0; + + while ((dp = readdir (dirp))) + if (dp->d_name[0] != '.') + if (lt_argz_insertdir (pargz, pargz_len, dirnam, dp)) + { + ++errors; + break; + } + + closedir (dirp); + } + else + ++errors; + + return errors; +} + + +/* If there are any files in DIRNAME, call the function passed in + DATA1 (with the name of each file and DATA2 as arguments). */ +static int +foreachfile_callback (char *dirname, void *data1, void *data2) +{ + file_worker_func *func = *(file_worker_func **) data1; + + int is_done = 0; + char *argz = 0; + size_t argz_len = 0; + + if (list_files_by_dir (dirname, &argz, &argz_len) != 0) + goto cleanup; + if (!argz) + goto cleanup; + + { + char *filename = 0; + while ((filename = argz_next (argz, argz_len, filename))) + if ((is_done = (*func) (filename, data2))) + break; + } + + cleanup: + FREE (argz); + + return is_done; +} + + +/* Call FUNC for each unique extensionless file in SEARCH_PATH, along + with DATA. The filenames passed to FUNC would be suitable for + passing to lt_dlopenext. The extensions are stripped so that + individual modules do not generate several entries (e.g. libfoo.la, + libfoo.so, libfoo.so.1, libfoo.so.1.0.0). If SEARCH_PATH is NULL, + then the same directories that lt_dlopen would search are examined. */ +int +lt_dlforeachfile (const char *search_path, + int (*func) (const char *filename, void *data), + void *data) +{ + int is_done = 0; + file_worker_func **fpptr = &func; + + if (search_path) + { + /* If a specific path was passed, search only the directories + listed in it. */ + is_done = foreach_dirinpath (search_path, 0, + foreachfile_callback, fpptr, data); + } + else + { + /* Otherwise search the default paths. */ + is_done = foreach_dirinpath (user_search_path, 0, + foreachfile_callback, fpptr, data); + if (!is_done) + { + is_done = foreach_dirinpath (getenv(LTDL_SEARCHPATH_VAR), 0, + foreachfile_callback, fpptr, data); + } + +#if defined LT_MODULE_PATH_VAR + if (!is_done) + { + is_done = foreach_dirinpath (getenv(LT_MODULE_PATH_VAR), 0, + foreachfile_callback, fpptr, data); + } +#endif +#if defined LT_DLSEARCH_PATH + if (!is_done && *sys_dlsearch_path) + { + is_done = foreach_dirinpath (sys_dlsearch_path, 0, + foreachfile_callback, fpptr, data); + } +#endif + } + + return is_done; +} + +int +lt_dlclose (lt_dlhandle handle) +{ + lt_dlhandle cur, last; + int errors = 0; + + /* check whether the handle is valid */ + last = cur = handles; + while (cur && handle != cur) + { + last = cur; + cur = cur->next; + } + + if (!cur) + { + LT__SETERROR (INVALID_HANDLE); + ++errors; + goto done; + } + + cur = handle; + cur->info.ref_count--; + + /* Note that even with resident modules, we must track the ref_count + correctly incase the user decides to reset the residency flag + later (even though the API makes no provision for that at the + moment). */ + if (cur->info.ref_count <= 0 && !LT_DLIS_RESIDENT (cur)) + { + lt_user_data data = cur->vtable->dlloader_data; + + if (cur != handles) + { + last->next = cur->next; + } + else + { + handles = cur->next; + } + + errors += cur->vtable->module_close (data, cur->module); + errors += unload_deplibs (handle); + + /* It is up to the callers to free the data itself. */ + FREE (cur->interface_data); + + FREE (cur->info.filename); + FREE (cur->info.name); + FREE (cur); + + goto done; + } + + if (LT_DLIS_RESIDENT (handle)) + { + LT__SETERROR (CLOSE_RESIDENT_MODULE); + ++errors; + } + + done: + return errors; +} + +void * +lt_dlsym (lt_dlhandle place, const char *symbol) +{ + size_t lensym; + char lsym[LT_SYMBOL_LENGTH]; + char *sym; + void *address; + lt_user_data data; + lt_dlhandle handle; + + if (!place) + { + LT__SETERROR (INVALID_HANDLE); + return 0; + } + + handle = place; + + if (!symbol) + { + LT__SETERROR (SYMBOL_NOT_FOUND); + return 0; + } + + lensym = LT_STRLEN (symbol) + LT_STRLEN (handle->vtable->sym_prefix) + + LT_STRLEN (handle->info.name); + + if (lensym + LT_SYMBOL_OVERHEAD < LT_SYMBOL_LENGTH) + { + sym = lsym; + } + else + { + sym = MALLOC (char, lensym + LT_SYMBOL_OVERHEAD + 1); + if (!sym) + { + LT__SETERROR (BUFFER_OVERFLOW); + return 0; + } + } + + data = handle->vtable->dlloader_data; + if (handle->info.name) + { + const char *saved_error; + + LT__GETERROR (saved_error); + + /* this is a libtool module */ + if (handle->vtable->sym_prefix) + { + strcpy(sym, handle->vtable->sym_prefix); + strcat(sym, handle->info.name); + } + else + { + strcpy(sym, handle->info.name); + } + + strcat(sym, "_LTX_"); + strcat(sym, symbol); + + /* try "modulename_LTX_symbol" */ + address = handle->vtable->find_sym (data, handle->module, sym); + if (address) + { + if (sym != lsym) + { + FREE (sym); + } + return address; + } + LT__SETERRORSTR (saved_error); + } + + /* otherwise try "symbol" */ + if (handle->vtable->sym_prefix) + { + strcpy(sym, handle->vtable->sym_prefix); + strcat(sym, symbol); + } + else + { + strcpy(sym, symbol); + } + + address = handle->vtable->find_sym (data, handle->module, sym); + if (sym != lsym) + { + FREE (sym); + } + + return address; +} + +const char * +lt_dlerror (void) +{ + const char *error; + + LT__GETERROR (error); + LT__SETERRORSTR (0); + + return error; +} + +static int +lt_dlpath_insertdir (char **ppath, char *before, const char *dir) +{ + int errors = 0; + char *canonical = 0; + char *argz = 0; + size_t argz_len = 0; + + assert (ppath); + assert (dir && *dir); + + if (canonicalize_path (dir, &canonical) != 0) + { + ++errors; + goto cleanup; + } + + assert (canonical && *canonical); + + /* If *PPATH is empty, set it to DIR. */ + if (*ppath == 0) + { + assert (!before); /* BEFORE cannot be set without PPATH. */ + assert (dir); /* Without DIR, don't call this function! */ + + *ppath = lt__strdup (dir); + if (*ppath == 0) + ++errors; + + goto cleanup; + } + + assert (ppath && *ppath); + + if (argzize_path (*ppath, &argz, &argz_len) != 0) + { + ++errors; + goto cleanup; + } + + /* Convert BEFORE into an equivalent offset into ARGZ. This only works + if *PPATH is already canonicalized, and hence does not change length + with respect to ARGZ. We canonicalize each entry as it is added to + the search path, and don't call this function with (uncanonicalized) + user paths, so this is a fair assumption. */ + if (before) + { + assert (*ppath <= before); + assert ((int) (before - *ppath) <= (int) strlen (*ppath)); + + before = before - *ppath + argz; + } + + if (lt_argz_insert (&argz, &argz_len, before, dir) != 0) + { + ++errors; + goto cleanup; + } + + argz_stringify (argz, argz_len, LT_PATHSEP_CHAR); + MEMREASSIGN(*ppath, argz); + + cleanup: + FREE (argz); + FREE (canonical); + + return errors; +} + +int +lt_dladdsearchdir (const char *search_dir) +{ + int errors = 0; + + if (search_dir && *search_dir) + { + if (lt_dlpath_insertdir (&user_search_path, 0, search_dir) != 0) + ++errors; + } + + return errors; +} + +int +lt_dlinsertsearchdir (const char *before, const char *search_dir) +{ + int errors = 0; + + if (before) + { + if ((before < user_search_path) + || (before >= user_search_path + LT_STRLEN (user_search_path))) + { + LT__SETERROR (INVALID_POSITION); + return 1; + } + } + + if (search_dir && *search_dir) + { + if (lt_dlpath_insertdir (&user_search_path, + (char *) before, search_dir) != 0) + { + ++errors; + } + } + + return errors; +} + +int +lt_dlsetsearchpath (const char *search_path) +{ + int errors = 0; + + FREE (user_search_path); + + if (!search_path || !LT_STRLEN (search_path)) + { + return errors; + } + + if (canonicalize_path (search_path, &user_search_path) != 0) + ++errors; + + return errors; +} + +const char * +lt_dlgetsearchpath (void) +{ + const char *saved_path; + + saved_path = user_search_path; + + return saved_path; +} + +int +lt_dlmakeresident (lt_dlhandle handle) +{ + int errors = 0; + + if (!handle) + { + LT__SETERROR (INVALID_HANDLE); + ++errors; + } + else + { + handle->info.is_resident = 1; + } + + return errors; +} + +int +lt_dlisresident (lt_dlhandle handle) +{ + if (!handle) + { + LT__SETERROR (INVALID_HANDLE); + return -1; + } + + return LT_DLIS_RESIDENT (handle); +} + + + +/* --- MODULE INFORMATION --- */ + +typedef struct { + char *id_string; + lt_dlhandle_interface *iface; +} lt__interface_id; + +lt_dlinterface_id +lt_dlinterface_register (const char *id_string, lt_dlhandle_interface *iface) +{ + lt__interface_id *interface_id = (lt__interface_id *) lt__malloc (sizeof *interface_id); + + /* If lt__malloc fails, it will LT__SETERROR (NO_MEMORY), which + can then be detected with lt_dlerror() if we return 0. */ + if (interface_id) + { + interface_id->id_string = lt__strdup (id_string); + if (!interface_id->id_string) + FREE (interface_id); + else + interface_id->iface = iface; + } + + return (lt_dlinterface_id) interface_id; +} + +void lt_dlinterface_free (lt_dlinterface_id key) +{ + lt__interface_id *interface_id = (lt__interface_id *)key; + FREE (interface_id->id_string); + FREE (interface_id); +} + +void * +lt_dlcaller_set_data (lt_dlinterface_id key, lt_dlhandle handle, void *data) +{ + int n_elements = 0; + void *stale = (void *) 0; + lt_dlhandle cur = handle; + int i; + + if (cur->interface_data) + while (cur->interface_data[n_elements].key) + ++n_elements; + + for (i = 0; i < n_elements; ++i) + { + if (cur->interface_data[i].key == key) + { + stale = cur->interface_data[i].data; + break; + } + } + + /* Ensure that there is enough room in this handle's interface_data + array to accept a new element (and an empty end marker). */ + if (i == n_elements) + { + lt_interface_data *temp + = REALLOC (lt_interface_data, cur->interface_data, 2+ n_elements); + + if (!temp) + { + stale = 0; + goto done; + } + + cur->interface_data = temp; + + /* We only need this if we needed to allocate a new interface_data. */ + cur->interface_data[i].key = key; + cur->interface_data[1+ i].key = 0; + } + + cur->interface_data[i].data = data; + + done: + return stale; +} + +void * +lt_dlcaller_get_data (lt_dlinterface_id key, lt_dlhandle handle) +{ + void *result = (void *) 0; + lt_dlhandle cur = handle; + + /* Locate the index of the element with a matching KEY. */ + if (cur->interface_data) + { + int i; + for (i = 0; cur->interface_data[i].key; ++i) + { + if (cur->interface_data[i].key == key) + { + result = cur->interface_data[i].data; + break; + } + } + } + + return result; +} + +const lt_dlinfo * +lt_dlgetinfo (lt_dlhandle handle) +{ + if (!handle) + { + LT__SETERROR (INVALID_HANDLE); + return 0; + } + + return &(handle->info); +} + + +lt_dlhandle +lt_dlhandle_iterate (lt_dlinterface_id iface, lt_dlhandle place) +{ + lt_dlhandle handle = place; + lt__interface_id *iterator = (lt__interface_id *) iface; + + assert (iface); /* iface is a required argument */ + + if (!handle) + handle = handles; + else + handle = handle->next; + + /* advance while the interface check fails */ + while (handle && iterator->iface + && ((*iterator->iface) (handle, iterator->id_string) != 0)) + { + handle = handle->next; + } + + return handle; +} + + +lt_dlhandle +lt_dlhandle_fetch (lt_dlinterface_id iface, const char *module_name) +{ + lt_dlhandle handle = 0; + + assert (iface); /* iface is a required argument */ + + while ((handle = lt_dlhandle_iterate (iface, handle))) + { + lt_dlhandle cur = handle; + if (cur && cur->info.name && STREQ (cur->info.name, module_name)) + break; + } + + return handle; +} + + +int +lt_dlhandle_map (lt_dlinterface_id iface, + int (*func) (lt_dlhandle handle, void *data), void *data) +{ + lt__interface_id *iterator = (lt__interface_id *) iface; + lt_dlhandle cur = handles; + + assert (iface); /* iface is a required argument */ + + while (cur) + { + int errorcode = 0; + + /* advance while the interface check fails */ + while (cur && iterator->iface + && ((*iterator->iface) (cur, iterator->id_string) != 0)) + { + cur = cur->next; + } + + if ((errorcode = (*func) (cur, data)) != 0) + return errorcode; + } + + return 0; +} diff --git a/squashfs-root/usr/share/libtool/ltdl.h b/squashfs-root/usr/share/libtool/ltdl.h new file mode 100644 index 0000000..f811399 --- /dev/null +++ b/squashfs-root/usr/share/libtool/ltdl.h @@ -0,0 +1,163 @@ +/* ltdl.h -- generic dlopen functions + + Copyright (C) 1998-2000, 2004-2005, 2007-2008, 2011-2015 Free + Software Foundation, Inc. + Written by Thomas Tanner, 1998 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +/* Only include this header file once. */ +#if !defined LTDL_H +#define LTDL_H 1 + +#include +#include +#include + +LT_BEGIN_C_DECLS + + +/* LT_STRLEN can be used safely on NULL pointers. */ +#define LT_STRLEN(s) (((s) && (s)[0]) ? strlen (s) : 0) + + +/* --- DYNAMIC MODULE LOADING API --- */ + + +typedef struct lt__handle *lt_dlhandle; /* A loaded module. */ + +/* Initialisation and finalisation functions for libltdl. */ +LT_SCOPE int lt_dlinit (void); +LT_SCOPE int lt_dlexit (void); + +/* Module search path manipulation. */ +LT_SCOPE int lt_dladdsearchdir (const char *search_dir); +LT_SCOPE int lt_dlinsertsearchdir (const char *before, + const char *search_dir); +LT_SCOPE int lt_dlsetsearchpath (const char *search_path); +LT_SCOPE const char *lt_dlgetsearchpath (void); +LT_SCOPE int lt_dlforeachfile ( + const char *search_path, + int (*func) (const char *filename, void *data), + void *data); + +/* User module loading advisors. */ +LT_SCOPE int lt_dladvise_init (lt_dladvise *advise); +LT_SCOPE int lt_dladvise_destroy (lt_dladvise *advise); +LT_SCOPE int lt_dladvise_ext (lt_dladvise *advise); +LT_SCOPE int lt_dladvise_resident (lt_dladvise *advise); +LT_SCOPE int lt_dladvise_local (lt_dladvise *advise); +LT_SCOPE int lt_dladvise_global (lt_dladvise *advise); +LT_SCOPE int lt_dladvise_preload (lt_dladvise *advise); + +/* Portable libltdl versions of the system dlopen() API. */ +LT_SCOPE lt_dlhandle lt_dlopen (const char *filename); +LT_SCOPE lt_dlhandle lt_dlopenext (const char *filename); +LT_SCOPE lt_dlhandle lt_dlopenadvise (const char *filename, + lt_dladvise advise); +LT_SCOPE void * lt_dlsym (lt_dlhandle handle, const char *name); +LT_SCOPE const char *lt_dlerror (void); +LT_SCOPE int lt_dlclose (lt_dlhandle handle); + + + +/* --- PRELOADED MODULE SUPPORT --- */ + + +/* A preopened symbol. Arrays of this type comprise the exported + symbols for a dlpreopened module. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; + +typedef int lt_dlpreload_callback_func (lt_dlhandle handle); + +LT_SCOPE int lt_dlpreload (const lt_dlsymlist *preloaded); +LT_SCOPE int lt_dlpreload_default (const lt_dlsymlist *preloaded); +LT_SCOPE int lt_dlpreload_open (const char *originator, + lt_dlpreload_callback_func *func); + +#define lt_preloaded_symbols lt__PROGRAM__LTX_preloaded_symbols +/* Ensure C linkage. */ +extern LT_DLSYM_CONST lt_dlsymlist lt__PROGRAM__LTX_preloaded_symbols[]; + +#define LTDL_SET_PRELOADED_SYMBOLS() \ + lt_dlpreload_default(lt_preloaded_symbols) + + + + +/* --- MODULE INFORMATION --- */ + + +/* Associating user data with loaded modules. */ +typedef void * lt_dlinterface_id; +typedef int lt_dlhandle_interface (lt_dlhandle handle, const char *id_string); + +LT_SCOPE lt_dlinterface_id lt_dlinterface_register (const char *id_string, + lt_dlhandle_interface *iface); +LT_SCOPE void lt_dlinterface_free (lt_dlinterface_id key); +LT_SCOPE void * lt_dlcaller_set_data (lt_dlinterface_id key, + lt_dlhandle handle, void *data); +LT_SCOPE void * lt_dlcaller_get_data (lt_dlinterface_id key, + lt_dlhandle handle); + + +/* Read only information pertaining to a loaded module. */ +typedef struct { + char * filename; /* file name */ + char * name; /* module name */ + int ref_count; /* number of times lt_dlopened minus + number of times lt_dlclosed. */ + unsigned int is_resident:1; /* module can't be unloaded. */ + unsigned int is_symglobal:1; /* module symbols can satisfy + subsequently loaded modules. */ + unsigned int is_symlocal:1; /* module symbols are only available + locally. */ +} lt_dlinfo; + +LT_SCOPE const lt_dlinfo *lt_dlgetinfo (lt_dlhandle handle); + +LT_SCOPE lt_dlhandle lt_dlhandle_iterate (lt_dlinterface_id iface, + lt_dlhandle place); +LT_SCOPE lt_dlhandle lt_dlhandle_fetch (lt_dlinterface_id iface, + const char *module_name); +LT_SCOPE int lt_dlhandle_map (lt_dlinterface_id iface, + int (*func) (lt_dlhandle handle, void *data), + void *data); + + + +/* Deprecated module residency management API. */ +LT_SCOPE int lt_dlmakeresident (lt_dlhandle handle); +LT_SCOPE int lt_dlisresident (lt_dlhandle handle); + +#define lt_ptr void * + +LT_END_C_DECLS + +#endif /*!defined LTDL_H*/ diff --git a/squashfs-root/usr/share/libtool/ltdl.mk b/squashfs-root/usr/share/libtool/ltdl.mk new file mode 100644 index 0000000..96bd0b6 --- /dev/null +++ b/squashfs-root/usr/share/libtool/ltdl.mk @@ -0,0 +1,149 @@ +## ltdl.mk -- includable Makefile snippet +## +## Copyright (C) 2003-2005, 2007, 2011-2015 Free Software Foundation, +## Inc. +## Written by Gary V. Vaughan, 2003 +## +## NOTE: The canonical source of this file is maintained with the +## GNU Libtool package. Report bugs to bug-libtool@gnu.org. +## +## GNU Libltdl 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 of the License, or (at your option) any later version. +## +## As a special exception to the GNU Lesser General Public License, +## if you distribute this file as part of a program or library that +## is built using GNU libtool, you may include this file under the +## same distribution terms that you use for the rest of that program. +## +## GNU Libltdl is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU Lesser General Public License for more details. +## +## You should have received a copy of the GNU LesserGeneral Public +## License along with GNU Libltdl; see the file COPYING.LIB. If not, a +## copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +## or obtained by writing to the Free Software Foundation, Inc., +## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +##### + +## DO NOT REMOVE THIS LINE -- make depends on it + +# -I$(srcdir) is needed for user that built libltdl with a sub-Automake +# (not as a sub-package!) using 'nostdinc': +AM_CPPFLAGS += -DLT_CONFIG_H='<$(LT_CONFIG_H)>' \ + -DLTDL -I. -I$(srcdir) -Ilibltdl \ + -I$(srcdir)/libltdl -Ilibltdl/libltdl \ + -I$(srcdir)/libltdl/libltdl +AM_LDFLAGS += -no-undefined +LTDL_VERSION_INFO = -version-info 10:1:3 + +noinst_LTLIBRARIES += $(LT_DLLOADERS) + +if INSTALL_LTDL +ltdlincludedir = $(includedir)/libltdl +ltdlinclude_HEADERS = libltdl/libltdl/lt_system.h \ + libltdl/libltdl/lt_error.h \ + libltdl/libltdl/lt_dlloader.h +include_HEADERS += libltdl/ltdl.h +lib_LTLIBRARIES += libltdl/libltdl.la +endif + +if CONVENIENCE_LTDL +noinst_LTLIBRARIES += libltdl/libltdlc.la +endif + +libltdl_libltdl_la_SOURCES = libltdl/libltdl/lt__alloc.h \ + libltdl/libltdl/lt__dirent.h \ + libltdl/libltdl/lt__glibc.h \ + libltdl/libltdl/lt__private.h \ + libltdl/libltdl/lt__strl.h \ + libltdl/libltdl/lt_dlloader.h \ + libltdl/libltdl/lt_error.h \ + libltdl/libltdl/lt_system.h \ + libltdl/libltdl/slist.h \ + libltdl/loaders/preopen.c \ + libltdl/lt__alloc.c \ + libltdl/lt_dlloader.c \ + libltdl/lt_error.c \ + libltdl/ltdl.c \ + libltdl/ltdl.h \ + libltdl/slist.c + +EXTRA_DIST += libltdl/lt__dirent.c \ + libltdl/lt__strl.c + +libltdl_libltdl_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN) $(AM_CPPFLAGS) +libltdl_libltdl_la_LDFLAGS = $(AM_LDFLAGS) $(LTDL_VERSION_INFO) $(LT_DLPREOPEN) +libltdl_libltdl_la_LIBADD = $(LTLIBOBJS) +libltdl_libltdl_la_DEPENDENCIES = $(LT_DLLOADERS) $(LTLIBOBJS) + +libltdl_libltdlc_la_SOURCES = $(libltdl_libltdl_la_SOURCES) +libltdl_libltdlc_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN)c $(AM_CPPFLAGS) +libltdl_libltdlc_la_LDFLAGS = $(AM_LDFLAGS) $(LT_DLPREOPEN) +libltdl_libltdlc_la_LIBADD = $(libltdl_libltdl_la_LIBADD) +libltdl_libltdlc_la_DEPENDENCIES= $(libltdl_libltdl_la_DEPENDENCIES) + +## The loaders are preopened by libltdl, itself always built from +## pic-objects (either as a shared library, or a convenience library), +## so the loaders themselves must be made from pic-objects too. We +## use convenience libraries for that purpose: +EXTRA_LTLIBRARIES += libltdl/dlopen.la \ + libltdl/dld_link.la \ + libltdl/dyld.la \ + libltdl/load_add_on.la \ + libltdl/loadlibrary.la \ + libltdl/shl_load.la + +libltdl_dlopen_la_SOURCES = libltdl/loaders/dlopen.c +libltdl_dlopen_la_LDFLAGS = -module -avoid-version +libltdl_dlopen_la_LIBADD = $(LIBADD_DLOPEN) + +libltdl_dld_link_la_SOURCES = libltdl/loaders/dld_link.c +libltdl_dld_link_la_LDFLAGS = -module -avoid-version +libltdl_dld_link_la_LIBADD = -ldld + +libltdl_dyld_la_SOURCES = libltdl/loaders/dyld.c +libltdl_dyld_la_LDFLAGS = -module -avoid-version + +libltdl_load_add_on_la_SOURCES = libltdl/loaders/load_add_on.c +libltdl_load_add_on_la_LDFLAGS = -module -avoid-version + +libltdl_loadlibrary_la_SOURCES = libltdl/loaders/loadlibrary.c +libltdl_loadlibrary_la_LDFLAGS = -module -avoid-version + +libltdl_shl_load_la_SOURCES = libltdl/loaders/shl_load.c +libltdl_shl_load_la_LDFLAGS = -module -avoid-version +libltdl_shl_load_la_LIBADD = $(LIBADD_SHL_LOAD) + +## Make sure these will be cleaned even when they're not built by default: +CLEANFILES += libltdl/libltdl.la \ + libltdl/libltdlc.la \ + libltdl/libdlloader.la + +## Automake-1.9.6 doesn't clean subdir AC_LIBOBJ compiled objects +## automatically: +CLEANFILES += $(LIBOBJS) $(LTLIBOBJS) + +EXTRA_DIST += libltdl/COPYING.LIB \ + libltdl/README + +## --------------------------- ## +## Gnulib Makefile.am snippets ## +## --------------------------- ## + +BUILT_SOURCES += libltdl/libltdl/$(LT_ARGZ_H) +EXTRA_DIST += libltdl/libltdl/lt__argz_.h \ + libltdl/lt__argz.c + +# We need the following in order to create an when the system +# doesn't have one that works with the given compiler. +all-local $(lib_OBJECTS): libltdl/libltdl/$(LT_ARGZ_H) +libltdl/libltdl/lt__argz.h: libltdl/libltdl/lt__argz_.h + $(AM_V_at)$(mkinstalldirs) . libltdl/libltdl + $(AM_V_GEN)cp $(srcdir)/libltdl/libltdl/lt__argz_.h $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += libltdl/libltdl/lt__argz.h \ + libltdl/libltdl/lt__argz.h-t diff --git a/squashfs-root/usr/share/libtool/slist.c b/squashfs-root/usr/share/libtool/slist.c new file mode 100644 index 0000000..4c8f20c --- /dev/null +++ b/squashfs-root/usr/share/libtool/slist.c @@ -0,0 +1,379 @@ +/* slist.c -- generalised singly linked lists + + Copyright (C) 2000, 2004, 2007-2009, 2011-2015 Free Software + Foundation, Inc. + Written by Gary V. Vaughan, 2000 + + NOTE: The canonical source of this file is maintained with the + GNU Libtool package. Report bugs to bug-libtool@gnu.org. + +GNU Libltdl 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 of the License, or (at your option) any later version. + +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU Libtool, you may include this file under the +same distribution terms that you use for the rest of that program. + +GNU Libltdl is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with GNU Libltdl; see the file COPYING.LIB. If not, a +copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, +or obtained by writing to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include + +#include "slist.h" +#include + +static SList * slist_sort_merge (SList *left, SList *right, + SListCompare *compare, void *userdata); + + +/* Call DELETE repeatedly on each element of HEAD. + + CAVEAT: If you call this when HEAD is the start of a list of boxed + items, you must remember that each item passed back to your + DELETE function will be a boxed item that must be slist_unbox()ed + before operating on its contents. + + e.g. void boxed_delete (void *item) { item_free (slist_unbox (item)); } + ... + slist = slist_delete (slist, boxed_delete); + ... +*/ +SList * +slist_delete (SList *head, void (*delete_fct) (void *item)) +{ + assert (delete_fct); + + while (head) + { + SList *next = head->next; + (*delete_fct) (head); + head = next; + } + + return 0; +} + +/* Call FIND repeatedly with MATCHDATA and each item of *PHEAD, until + FIND returns non-NULL, or the list is exhausted. If a match is found + the matching item is destructively removed from *PHEAD, and the value + returned by the matching call to FIND is returned. + + CAVEAT: To avoid memory leaks, unless you already have the address of + the stale item, you should probably return that from FIND if + it makes a successful match. Don't forget to slist_unbox() + every item in a boxed list before operating on its contents. */ +SList * +slist_remove (SList **phead, SListCallback *find, void *matchdata) +{ + SList *stale = 0; + void *result = 0; + + assert (find); + + if (!phead || !*phead) + return 0; + + /* Does the head of the passed list match? */ + result = (*find) (*phead, matchdata); + if (result) + { + stale = *phead; + *phead = stale->next; + } + /* what about the rest of the elements? */ + else + { + SList *head; + for (head = *phead; head->next; head = head->next) + { + result = (*find) (head->next, matchdata); + if (result) + { + stale = head->next; + head->next = stale->next; + break; + } + } + } + + return (SList *) result; +} + +/* Call FIND repeatedly with each element of SLIST and MATCHDATA, until + FIND returns non-NULL, or the list is exhausted. If a match is found + the value returned by the matching call to FIND is returned. */ +void * +slist_find (SList *slist, SListCallback *find, void *matchdata) +{ + void *result = 0; + + assert (find); + + for (; slist; slist = slist->next) + { + result = (*find) (slist, matchdata); + if (result) + break; + } + + return result; +} + +/* Return a single list, composed by destructively concatenating the + items in HEAD and TAIL. The values of HEAD and TAIL are undefined + after calling this function. + + CAVEAT: Don't mix boxed and unboxed items in a single list. + + e.g. slist1 = slist_concat (slist1, slist2); */ +SList * +slist_concat (SList *head, SList *tail) +{ + SList *last; + + if (!head) + { + return tail; + } + + last = head; + while (last->next) + last = last->next; + + last->next = tail; + + return head; +} + +/* Return a single list, composed by destructively appending all of + the items in SLIST to ITEM. The values of ITEM and SLIST are undefined + after calling this function. + + CAVEAT: Don't mix boxed and unboxed items in a single list. + + e.g. slist1 = slist_cons (slist_box (data), slist1); */ +SList * +slist_cons (SList *item, SList *slist) +{ + if (!item) + { + return slist; + } + + assert (!item->next); + + item->next = slist; + return item; +} + +/* Return a list starting at the second item of SLIST. */ +SList * +slist_tail (SList *slist) +{ + return slist ? slist->next : NULL; +} + +/* Return a list starting at the Nth item of SLIST. If SLIST is less + than N items long, NULL is returned. Just to be confusing, list items + are counted from 1, to get the 2nd element of slist: + + e.g. shared_list = slist_nth (slist, 2); */ +SList * +slist_nth (SList *slist, size_t n) +{ + for (;n > 1 && slist; n--) + slist = slist->next; + + return slist; +} + +/* Return the number of items in SLIST. We start counting from 1, so + the length of a list with no items is 0, and so on. */ +size_t +slist_length (SList *slist) +{ + size_t n; + + for (n = 0; slist; ++n) + slist = slist->next; + + return n; +} + +/* Destructively reverse the order of items in SLIST. The value of SLIST + is undefined after calling this function. + + CAVEAT: You must store the result of this function, or you might not + be able to get all the items except the first one back again. + + e.g. slist = slist_reverse (slist); */ +SList * +slist_reverse (SList *slist) +{ + SList *result = 0; + SList *next; + + while (slist) + { + next = slist->next; + slist->next = result; + result = slist; + slist = next; + } + + return result; +} + +/* Call FOREACH once for each item in SLIST, passing both the item and + USERDATA on each call. */ +void * +slist_foreach (SList *slist, SListCallback *foreach, void *userdata) +{ + void *result = 0; + + assert (foreach); + + while (slist) + { + SList *next = slist->next; + result = (*foreach) (slist, userdata); + + if (result) + break; + + slist = next; + } + + return result; +} + +/* Destructively merge the items of two ordered lists LEFT and RIGHT, + returning a single sorted list containing the items of both -- Part of + the quicksort algorithm. The values of LEFT and RIGHT are undefined + after calling this function. + + At each iteration, add another item to the merged list by taking the + lowest valued item from the head of either LEFT or RIGHT, determined + by passing those items and USERDATA to COMPARE. COMPARE should return + less than 0 if the head of LEFT has the lower value, greater than 0 if + the head of RIGHT has the lower value, otherwise 0. */ +static SList * +slist_sort_merge (SList *left, SList *right, SListCompare *compare, + void *userdata) +{ + SList merged, *insert; + + insert = &merged; + + while (left && right) + { + if ((*compare) (left, right, userdata) <= 0) + { + insert = insert->next = left; + left = left->next; + } + else + { + insert = insert->next = right; + right = right->next; + } + } + + insert->next = left ? left : right; + + return merged.next; +} + +/* Perform a destructive quicksort on the items in SLIST, by repeatedly + calling COMPARE with a pair of items from SLIST along with USERDATA + at every iteration. COMPARE is a function as defined above for + slist_sort_merge(). The value of SLIST is undefined after calling + this function. + + e.g. slist = slist_sort (slist, compare, 0); */ +SList * +slist_sort (SList *slist, SListCompare *compare, void *userdata) +{ + SList *left, *right; + + if (!slist) + return slist; + + /* Be sure that LEFT and RIGHT never contain the same item. */ + left = slist; + right = slist->next; + + if (!right) + return left; + + /* Skip two items with RIGHT and one with SLIST, until RIGHT falls off + the end. SLIST must be about half way along. */ + while (right && (right = right->next)) + { + if (!right || !(right = right->next)) + break; + slist = slist->next; + } + right = slist->next; + slist->next = 0; + + /* Sort LEFT and RIGHT, then merge the two. */ + return slist_sort_merge (slist_sort (left, compare, userdata), + slist_sort (right, compare, userdata), + compare, userdata); +} + + +/* Aside from using the functions above to manage chained structures of + any type that has a NEXT pointer as its first field, SLISTs can + be comprised of boxed items. The boxes are chained together in + that case, so there is no need for a NEXT field in the item proper. + Some care must be taken to slist_box and slist_unbox each item in + a boxed list at the appropriate points to avoid leaking the memory + used for the boxes. It us usually a very bad idea to mix boxed and + non-boxed items in a single list. */ + +/* Return a 'boxed' freshly mallocated 1 element list containing + USERDATA. */ +SList * +slist_box (const void *userdata) +{ + SList *item = (SList *) malloc (sizeof *item); + + if (item) + { + item->next = 0; + item->userdata = userdata; + } + + return item; +} + +/* Return the contents of a 'boxed' ITEM, recycling the box itself. */ +void * +slist_unbox (SList *item) +{ + void *userdata = 0; + + if (item) + { + /* Strip the const, because responsibility for this memory + passes to the caller on return. */ + userdata = (void *) item->userdata; + free (item); + } + + return userdata; +} diff --git a/squashfs-root/usr/share/ltrace/libacl.so.conf b/squashfs-root/usr/share/ltrace/libacl.so.conf new file mode 100644 index 0000000..6b277cd --- /dev/null +++ b/squashfs-root/usr/share/ltrace/libacl.so.conf @@ -0,0 +1,43 @@ +# See ltrace.conf(5) for description of syntax of this file. + +# sys/acl.h +int acl_add_perm(addr,uint); +int acl_calc_mask(addr); +int acl_clear_perms(addr); +int acl_copy_entry(addr,addr); +int acl_copy_ext(addr,addr,int); +addr acl_copy_int(addr); +int acl_create_entry(addr,addr); +int acl_delete_def_file(string); +int acl_delete_entry(addr,addr); +int acl_delete_perm(addr,uint); +addr acl_dup(addr); +int acl_free(addr); +addr acl_from_text(string); +int acl_get_entry(addr,int,addr); +addr acl_get_fd(int); +addr acl_get_file(string,int); +int acl_get_permset(addr,addr); +addr acl_get_qualifier(addr); +int acl_get_tag_type(addr,addr); +addr acl_init(int); +int acl_set_fd(int,addr); +int acl_set_file(string,int,addr); +int acl_set_permset(addr,addr); +int acl_set_qualifier(addr,addr); +int acl_set_tag_type(addr,int); +int acl_size(addr); +string acl_to_text(addr,addr); +int acl_valid(addr); + +# acl/libacl.h +int acl_check(addr,addr); +int acl_cmp(addr,addr); +int acl_entries(addr); +int acl_equiv_mode(addr,addr); +string acl_error(int); +int acl_extended_fd(int); +int acl_extended_file(string); +addr acl_from_mode(octal); +int acl_get_perm(addr,uint); +string acl_to_any_text(addr,string,char,int); diff --git a/squashfs-root/usr/share/ltrace/libc.so-types.conf b/squashfs-root/usr/share/ltrace/libc.so-types.conf new file mode 100644 index 0000000..ef99565 --- /dev/null +++ b/squashfs-root/usr/share/ltrace/libc.so-types.conf @@ -0,0 +1,71 @@ +# XXX ltrace misses long double and long long support +typedef ldouble = double; +typedef llong = long; +typedef ullong = ulong; + +# This should generally work, I'm not aware of any arch, where the +# parameter passing of complex arguments differs from that for +# structure of two floats. +typedef double_complex = struct(double, double); +typedef float_complex = struct(float, float); +typedef ldouble_complex = struct(ldouble, ldouble); + +# arpa/inet.h +typedef in_addr = struct(hex(uint)); + +# dirent.h + +# We can't portably rely on DIR internals at all. Ideally this would +# be implemented in a per-OS config file, but even on Linux, we don't +# know whether there's a lock in the structure or not. Luckily the +# one interesting datum, file descriptor, we can access reliably. +# Having the structure half-defined like this is potentially +# problematic as structure size influences parameter passing. But +# POSIX always uses pointer to the structure, so it's fine. + +typedef DIR = struct(int); +typedef FILE = addr; + +# XXX We can't represent the following portably without having either +# uulong, or directly uint64_t.' +typedef ino_t = ulong; +typedef ino_t64 = ulong; +typedef off_t = ulong; +typedef off_t64 = ulong; +typedef size_t = ulong; +typedef ssize_t = long; + +typedef dirent = struct(ino_t, hide(off_t), hide(ushort), hide(char), string(array(char, zero(256)))); +typedef dirent64 = struct(ino_t64, hide(off_t64), hide(ushort), hide(char), string(array(char, zero(256)))); + +# mntent.h +typedef mntent = struct(string, string, string, string, int, int); + +# sched.h +typedef sched_param = struct(int); +typedef sched_policy_e = enum[int](SCHED_FIFO=1, SCHED_RR=2, SCHED_OTHER=0); + +# signal.h +typedef signum = enum(SIGHUP=1, SIGINT=2, SIGQUIT=3, SIGILL=4, SIGTRAP=5, SIGABRT=6, SIGBUS=7, SIGFPE=8, SIGKILL=9, SIGUSR1=10, SIGSEGV=11, SIGUSR2=12, SIGPIPE=13, SIGALRM=14, SIGTERM=15, SIGSTKFLT=16, SIGCHLD=17, SIGCONT=18, SIGSTOP=19, SIGTSTP=20, SIGTTIN=21, SIGTTOU=22, SIGURG=23, SIGXCPU=24, SIGXFSZ=25, SIGVTALRM=26, SIGPROF=27, SIGWINCH=28, SIGIO=29, SIGPWR=30, SIGSYS=31, SIGRTMIN_0=32, SIGRTMIN_1=33, SIGRTMIN_2=34, SIGRTMIN_3=35, SIGRTMIN_4=36, SIGRTMIN_5=37, SIGRTMIN_6=38, SIGRTMIN_7=39, SIGRTMIN_8=40, SIGRTMIN_9=41, SIGRTMIN_10=42, SIGRTMIN_11=43, SIGRTMIN_12=44, SIGRTMIN_13=45, SIGRTMIN_14=46, SIGRTMIN_15=47, SIGRTMIN_16=48, SIGRTMIN_17=49, SIGRTMIN_18=50, SIGRTMIN_19=51, SIGRTMIN_20=52, SIGRTMIN_21=53, SIGRTMIN_22=54, SIGRTMIN_23=55, SIGRTMIN_24=56, SIGRTMIN_25=57, SIGRTMIN_26=58, SIGRTMIN_27=59, SIGRTMIN_28=60, SIGRTMIN_29=61, SIGRTMIN_30=62, SIGRTMIN_31=63); +typedef sigset_t = bitvec(ulong); +# elm3 should be flags +typedef sigaction = struct(addr, sigset_t, hex(int), addr); + +# sys/mman.h +typedef mmap_flags_t = enum(MAP_SHARED=1, MAP_PRIVATE=2); + +# time.h +typedef clockid_t = int; +# XXX in fact (time_t, long), which may be (llong, long) on 32-bit +# arches. We don't have llong as of this writing. +typedef timespec = struct(long, long); + +# wchar.h +typedef wchar_t = string(uint); +typedef wint_t = string(int); +typedef wstring_t = string(array(uint, zero)*); +typedef wstring2_t = string(array(uint, zero(arg2))*); +typedef wstring3_t = string(array(uint, zero(arg3))*); + +# xlocale.h +typedef locale_t = void*; diff --git a/squashfs-root/usr/share/ltrace/libc.so.conf b/squashfs-root/usr/share/ltrace/libc.so.conf new file mode 100644 index 0000000..e101e4a --- /dev/null +++ b/squashfs-root/usr/share/ltrace/libc.so.conf @@ -0,0 +1,530 @@ +# See ltrace.conf(5) for description of syntax of this file. + +import "libc.so-types"; + +void __libc_start_main(hide(void*), hide(int), array(string, arg2)); + +# arpa/inet.h +int inet_aton(string, +in_addr*); +hex(uint) inet_addr(string); +hex(uint) inet_network(string); +string inet_ntoa(in_addr); +in_addr inet_makeaddr(hex(int), hex(int)); +hex(uint) inet_lnaof(in_addr); +hex(uint) inet_netof(in_addr); + +# bfd.h +void bfd_init(); +int bfd_set_default_target(string); +addr bfd_scan_vma(string, addr, int); +addr bfd_openr(string,string); +int bfd_check_format(addr,int); + +# ctype.h +char tolower(char); +char toupper(char); +addr __ctype_b_loc(); +addr __ctype_tolower_loc(); +addr __ctype_toupper_loc(); +ulong __ctype_get_mb_cur_max(); + +# curses.h +int waddch(addr, char); +int mvprintw(int, int, format); +int wmove(addr, int, int); +int waddnstr(addr, string, int); +string tgoto(string, int, int); + +# dirent.h +dirent *readdir(DIR *); +dirent64 *readdir64(DIR *); +int closedir(DIR *); +DIR *opendir(string); +DIR *fdopendir(int); +int dirfd(DIR *); +void rewinddir(DIR *); +long telldir(DIR *); +void seekdir(DIR *, long); + +# dlfcn.h +addr dlopen(string, int); +string dlerror(); +addr dlsym(addr, string); +int dlclose(addr); + +# errno.h +addr __errno_location(); + +# fcntl.h +int open(string,int,octal); ; WARNING: 3rd argument may not be there +int open64(string,int,octal); ; WARNING: 3rd argument may not be there + +# fnmatch.h +int fnmatch(string, string, int); + +# getopt.h +int getopt_long(int,addr,string,addr,int*); +int getopt_long_only(int,addr,string,addr,addr); + +# grp.h +void endgrent(); +addr getgrnam(string); +void setgrent(); +addr getgrent(); + +# libintl.h +string __dcgettext(string,string,int); +string bindtextdomain(string, string); +string textdomain(string); + +# libio.h +char _IO_getc(file); +int _IO_putc(char,file); + +# locale.h +string setlocale(enum(LC_CTYPE=0, LC_NUMERIC=1, LC_TIME=2, LC_COLLATE=3, LC_MONETARY=4, LC_MESSAGES=5, LC_ALL=6, LC_PAPER=7, LC_NAME=8, LC_ADDRESS=9, LC_TELEPHONE=10, LC_MEASUREMENT=11, LC_IDENTIFICATION=12), string); + +# mcheck.h +void mtrace(); +void muntrace(); + +# mqueue.h +int mq_open(string, int, octal, addr); ; WARNING: 3rd and 4th arguments may not be there +int mq_close(int); +int mq_unlink(string); +int mq_getattr(int, addr); +int mq_setattr(int, addr, addr); +int mq_notify(int, addr); +int mq_send(int, string3, ulong, uint); +int mq_timedsend(int, string3, ulong, uint, addr); +long mq_receive(int, +string0, ulong, addr); +long mq_timedreceive(int, +string0, ulong, addr, addr); + +# netdb.h +void endhostent(); +void endnetent(); +void endnetgrent(); +void endprotoent(); +void endservent(); +void freeaddrinfo(addr); +string gai_strerror(int); +int getaddrinfo(string, string, addr, addr); +addr gethostbyaddr(string, uint, int); +addr gethostbyname(string); +addr gethostent(); +int getnameinfo(addr, uint, string, uint, string, uint, uint); +addr getnetbyaddr(uint, int); +addr getnetbyname(string); +addr getnetent(); +int getnetgrent(addr, addr, addr); +addr getprotobyname(string); +addr getprotobynumber(int); +addr getprotoent(); +addr getservbyname(string, string); +addr getservbyport(int, string); +addr getservent(); +void herror(string); +string hstrerror(int); +int rcmd(addr, ushort, string, string, string, addr); +int rcmd_af(addr, ushort, string, string, string, addr, int); +int rexec(addr, int, string, string, string, addr); +int rexec_af(addr, int, string, string, string, addr, int); +int rresvport (addr); +int rresvport_af (addr, int); +int ruserok(string, int, string, string); +int ruserok_af(string, int, string, string, int); +void sethostent(int); +void setnetent(int); +int setnetgrent(string); +void setprotoent(int); +void setservent(int); + +# netinet/in.h +uint ntohs(uint); + +# pcap.h +string pcap_lookupdev(addr); +addr pcap_open_live(string, int, int, int, addr); +int pcap_snapshot(addr); +int pcap_lookupnet(string, addr, addr, addr); +int pcap_compile(addr, addr, string, int, addr); + +# pwd.h +string getpass(string); +void endpwent(); +addr getpwnam(string); +void setpwent(); + +# readline/readline.h +string readline(string); + +# signal.h +int kill(int, signum); +int sigemptyset(+sigset_t*); +int sigaddset(+sigset_t*, signum); +int sigdelset(+sigset_t*, signum); +int sigfillset(+sigset_t*); +int sigismember(sigset_t*, signum); +addr signal(signum,addr); +int sigaction(signum, sigaction*, +sigaction*); +int sigprocmask(enum(SIG_BLOCK=1, SIG_UNBLOCK=2, SIG_SETMASK=3), sigset_t*, +sigset_t*); +int sigpending(+sigset_t*); +int sigsuspend(sigset_t*); +int sigisemptyset(sigset_t*); +int sigorset(+sigset_t*, sigset_t*, sigset_t*); +int sigandset(+sigset_t*, sigset_t*, sigset_t*); + +# stdio.h +int fclose(file); +int feof(file); +int ferror(file); +int fflush(file); +char fgetc(file); +addr fgets(+string, int, file); +int fileno(file); +file fopen(string,string); +file fopen64(string,string); +file fdopen(int, string); +int fprintf(file,format); +int fputc(char,file); +int fputs(string,file); +ulong fread(addr,ulong,ulong,file); +ulong fread_unlocked(addr,ulong,ulong,file); +ulong fwrite(string,ulong,ulong,file); +ulong fwrite_unlocked(string,ulong,ulong,file); +int pclose(addr); +void perror(string); +addr popen(string, string); +int printf(format); +int puts(string); +int remove(string); +int snprintf(+string2,ulong,format); +int sprintf(+string,format); +string tempnam(string,string); +int vfprintf(file,string,addr); +int vsnprintf(+string2,ulong,string,addr); +int setvbuf(file,addr,int,ulong); +void setbuf(file,addr); +void setbuffer(file,addr,ulong); +void setlinebuf(file); +int rename(string,string); + +# xlocale.h +locale_t newlocale(hex(int), string, locale_t); + +# stdlib.h +long __strtol_internal(string, +string*, int); +ulong __strtoul_internal(string, +string*, int); + +double strtod(string, +string*); +float strtof(string, +string*); +ldouble strtold(string, +string*); + +double strtod_l(string, +string*, locale_t); +float strtof_l(string, +string*, locale_t); +ldouble strtold_l(string, +string*, locale_t); + +int atexit(addr); +addr bsearch(string, addr, ulong, ulong, addr); +addr calloc(ulong, ulong); +void exit(int); +void free(addr); +string getenv(string); +int putenv(string); +int setenv(string,string,int); +void unsetenv(string); +addr malloc(ulong); +void qsort(addr,ulong,ulong,addr); +addr realloc(addr,ulong); +int system(string); + +int rand(); +int rand_r(uint*); +void srand(uint); +long random(); +void srandom(uint); +void* initstate(uint, void*, ulong); +void* setstate(void*); +int random_r(void*, +int*); +int srandom_r(uint, void*); +int initstate_r(uint, void*, ulong, void*); +int setstate_r(void*, void*); +double drand48(); +double erand48(+array(ushort,3)*); +long lrand48(); +long nrand48(+array(ushort,3)*); +long mrand48(); +long jrand48(+array(ushort,3)*); +void srand48(long); +array(ushort,3)* seed48(array(ushort,3)*); +void lcong48(array(ushort,7)*); + +# string.h +void bcopy(addr,addr,ulong); +void bzero(addr,ulong); +string basename(string); +string index(string,char); +addr memchr(string,char,ulong); +addr memcpy(addr,string(array(char, arg3)*),ulong); +addr memmove(addr,string(array(char, arg3)*),ulong); +addr memset(addr,char,long); +string rindex(string,char); +addr stpcpy(addr,string); +int strcasecmp(string, string); +string strcat(string, string); +string strchr(string,char); +int strcoll(string,string); +ulong strlen(string); +int strcmp(string,string); +addr strcpy(addr,string); +addr strdup(string); +string strerror(int); +int strncmp(string,string,ulong); +addr strncpy(addr,string3,ulong); +string strrchr(string,char); +string strsep(addr,string); +ulong strspn(string,string); +ulong strcspn(string,string); +string strstr(string,string); +string strtok(string, string); + +# sys/ioctl.h +int ioctl(int, int, addr); + +# sys/socket.h +int socket(int,int,int); + +# sys/stat.h +int __fxstat(int,int,addr); +int __xstat(int,string,addr); +int __lxstat(int,string,addr); +int __fxstat64(int,int,addr); +int __xstat64(int,string,addr); +int __lxstat64(int,string,addr); +int chmod(string,octal); +int fchmod(int,octal); +int mkfifo(string,octal); +octal umask(octal); + +# sys/utsname.h +int uname(addr); + +# sys/vfs.h +int statfs(string,addr); + +# syslog.h +void closelog(); +void openlog(string,int,int); +void syslog(int,format); + +# term.h +int tputs(string, int, addr); + +# termios.h +int tcgetattr(int,addr); +int tcsetattr(int,int,addr); + +# time.h +string ctime(addr); +int gettimeofday(addr, addr); +addr gmtime(addr); +addr localtime(addr); +ulong strftime(+string2,ulong,string,addr); +long time(addr); +int nanosleep(timespec*, timespec*); + +# unistd.h +void _exit(int); +int access(string, int); +uint alarm(uint); +int chdir(string); +int chown(string,int,int); +int close(int); +string crypt(string,string); +int dup2(int,int); +int execlp(string,string,addr,addr,addr); +int execv(string,addr); +int fchdir(int); +int fork(); +int ftruncate(int,ulong); +string2 getcwd(addr,ulong); +int getdomainname(+string2,ulong); +int geteuid(); +int getegid(); +int getgid(); +int gethostname(+string2,ulong); +string getlogin(); +int getopt(int,addr,string); +int getpid(); +int getppid(); +int getuid(); +int getpgrp(); +int setpgrp(); +int getpgid(int); +int isatty(int); +int link(string,string); +int mkdir(string,octal); +long read(int, +string[retval], ulong); +int rmdir(string); +int seteuid(uint); +int setgid(int); +int sethostname(+string2,ulong); +int setpgid(int,int); +int setreuid(uint, uint); +int setuid(int); +uint sleep(uint); +int symlink(string,string); +int sync(); +int truncate(string,ulong); +string ttyname(int); +int unlink(string); +void usleep(uint); +long write(int, string3, ulong); +addr sbrk(long); +int getpagesize(); +long lseek(int,long,int); +int pipe(addr); + +# utmp.h +void endutent(); +addr getutent(); +void setutent(); + +# wchar.h +int fwide(FILE*, int); +wint_t btowc(int); + +wint_t getwc(FILE *); +wint_t getwchar(); +wint_t fgetwc(FILE*); +wstring_t fgetws(+wstring2_t, int, FILE*); +wint_t ungetwc(wint_t, FILE*); + +wint_t fputwc(wchar_t, FILE*); +int fputws(wstring_t, FILE*); +wint_t putwc(wchar_t, FILE*); +wint_t putwchar(wchar_t); + +int wprintf(format(wstring_t)); +int fwprintf(FILE*, format(wstring_t)); +int swprintf(+wstring2_t, ulong, format(wstring_t)); +int vfwprintf(FILE*, wstring_t, addr); +int vwprintf(wstring_t, addr); +int vswprintf(+wstring2_t, ulong, wstring_t, addr); + +; int wscanf(const wchar_t *restrict, ...); +; int fwscanf(FILE *restrict, const wchar_t *restrict, ...); +; int swscanf(const wchar_t *restrict, const wchar_t *restrict, ...); +; int vfwscanf(FILE *restrict, const wchar_t *restrict, va_list); +; int vswscanf(const wchar_t *restrict, const wchar_t *restrict, va_list); +; int vwscanf(const wchar_t *restrict, va_list); + +int iswalnum(wint_t); +int iswalpha(wint_t); +int iswcntrl(wint_t); +int iswdigit(wint_t); +int iswgraph(wint_t); +int iswlower(wint_t); +int iswprint(wint_t); +int iswpunct(wint_t); +int iswspace(wint_t); +int iswupper(wint_t); +int iswxdigit(wint_t); +uint wctype(string); +int iswctype(wint_t, uint); + +ulong mbrlen(string, ulong, addr); +ulong mbrtowc(+wchar_t*, string[arg3], ulong, addr); +ulong mbsrtowcs(+wstring3_t, string*, ulong, addr); +ulong wctomb(+string0, wchar_t); +ulong wcrtomb(+string0, wchar_t, addr); +ulong wcsrtombs(+string3, wstring_t*, ulong, addr); +int mbsinit(addr); + +wint_t towlower(wint_t); +wint_t towupper(wint_t); + +wstring_t wcscat(wstring_t, wstring_t); +wstring_t wcsncat(wstring3_t, wstring_t, ulong); +wstring_t wcschr(wstring_t, wchar_t); +wstring_t wcsrchr(wstring_t, wchar_t); +int wcscmp(wstring_t, wstring_t); +int wcsncmp(wstring3_t, wstring3_t, ulong); +int wcscoll(wstring_t, wstring_t); +addr wcscpy(addr, wstring_t); +addr wcsncpy(addr, wstring_t, ulong); +ulong wcslen(wstring_t); + +wstring_t wcsstr(wstring_t, wstring_t); +wstring_t wcswcs(wstring_t, wstring_t); + +ulong wcscspn(wstring_t, wstring_t); +ulong wcsspn(wstring_t, wstring_t); +wstring_t wcspbrk(wstring_t, wstring_t); +wstring_t wcstok(wstring_t, wstring_t, +wstring_t*); + +ulong wcsftime(+wstring2_t, ulong, wstring_t, addr); + +double wcstod(wstring_t, +wstring_t*); +float wcstof(wstring_t, +wstring_t*); +ldouble wcstold(wstring_t, +wstring_t*); +long wcstol(wstring_t, +wstring_t*, int); +llong wcstoll(wstring_t, +wstring_t*, int); +ulong wcstoul(wstring_t, +wstring_t*, int); +ullong wcstoull(wstring_t, +wstring_t*, int); + +int wcwidth(wchar_t); +int wcswidth(wstring2_t, ulong); + +wstring_t wmemchr(wstring3_t, wchar_t, ulong); +int wmemcmp(wstring3_t, wstring3_t, ulong); +int wctob(wint_t); +wstring3_t wmemcpy(addr, wstring3_t, ulong); +wstring3_t wmemmove(addr, wstring3_t, ulong); +wstring3_t wmemset(addr, wchar_t, ulong); + +# sys/wait.h +int wait(addr); +int waitpid(int,addr,int); + +# other symbols not included above +long a64l(string); +string l64a(long); +void abort(); +int abs(int); +long labs(long); + +int addmntent(file, mntent*); +int endmntent(file); +int __endmntent(file); +file setmntent(string,string); +file __setmntent(string,string); +mntent *getmntent(addr); +mntent *getmntent_r(file, +mntent*, string, int); +mntent *__getmntent_r(file, +mntent*, string, int); +string hasmntopt(mntent*, string); + +# XXX the third argument is a bitfield +addr mmap(addr, size_t, hex(int), mmap_flags_t, int, off_t); +addr mmap64(addr, size_t, hex(int), mmap_flags_t, int, off_t64); +void munmap(addr, size_t); +int mprotect(addr, ulong, hex(int)); +int msync(addr, size_t, hex(int)); +int madvise(addr, size_t, enum(MADV_NORMAL=0, MADV_RANDOM=1, MADV_SEQUENTIAL=2, MADV_WILLNEED=3, MADV_DONTNEED=4, MADV_REMOVE=9, MADV_DONTFORK=10, MADV_DOFORK=11, MADV_MERGEABLE=12, MADV_UNMERGEABLE=13, MADV_HUGEPAGE=14, MADV_NOHUGEPAGE=15, MADV_DONTDUMP=16, MADV_DODUMP=17, MADV_HWPOISON=100)); +int posix_madvise (addr, size_t, enum(POSIX_MADV_NORMAL=0, POSIX_MADV_RANDOM=1, POSIX_MADV_SEQUENTIAL=2, POSIX_MADV_WILLNEED=3, POSIX_MADV_DONTNEED=4)); +int mlock(addr, size_t); +int munlock(addr, size_t); +int mlockall(hex(int)); +int munlockall(); +# XXX the 16 should really be (arg2 + 4095 / 4096), but ltrace can't +# express that +int mincore(addr, size_t, +array(hex(char), 16)*); +addr mremap(addr, size_t, size_t, hex(int)); +int remap_file_pages(addr, size_t, int, size_t, mmap_flags_t); +int shm_open(string, hex(int), oct(int)); +int shm_unlink(string); + +# libc.so defines several functions from libpthread.so. +# Rather than cherrypick, just import them all. + +import "libpthread.so"; diff --git a/squashfs-root/usr/share/ltrace/libm.so.conf b/squashfs-root/usr/share/ltrace/libm.so.conf new file mode 100644 index 0000000..14f86f4 --- /dev/null +++ b/squashfs-root/usr/share/ltrace/libm.so.conf @@ -0,0 +1,417 @@ +import "libc.so-types"; + +double sin(double); +float sinf(float); +ldouble sinl(ldouble); + +double cos(double); +float cosf(float); +ldouble cosl(ldouble); + +void sincos(double, +double*, double*); +void sincosf(float, +float*, float*); +void sincosl(ldouble, +ldouble*, ldouble*); + +double tan(double); +float tanf(float); +ldouble tanl(ldouble); + +double asin(double); +float asinf(float); +ldouble asinl(ldouble); + +double acos(double); +float acosf(float); +ldouble acosl(ldouble); + +double atan(double); +float atanf(float); +ldouble atanl(ldouble); + +double atan2(double, double); +float atan2f(float, float); +ldouble atan2l(ldouble, ldouble); + +double sinh(double); +float sinhf(float); +ldouble sinhl(ldouble); + +double cosh(double); +float coshf(float); +ldouble coshl(ldouble); + +double tanh(double); +float tanhf(float); +ldouble tanhl(ldouble); + +double asinh(double); +float asinhf(float); +ldouble asinhl(ldouble); + +double acosh(double); +float acoshf(float); +ldouble acoshl(ldouble); + +double atanh(double); +float atanhf(float); +ldouble atanhl(ldouble); + +double_complex csin(double_complex); +float_complex csinf(float_complex); +ldouble_complex csinl(ldouble_complex); + +double_complex ccos(double_complex); +float_complex ccosf(float_complex); +ldouble_complex ccosl(ldouble_complex); + +double_complex ctan(double_complex); +float_complex ctanf(float_complex); +ldouble_complex ctanl(ldouble_complex); + +double_complex casin(double_complex); +float_complex casinf(float_complex); +ldouble_complex casinl(ldouble_complex); + +double_complex cacos(double_complex); +float_complex cacosf(float_complex); +ldouble_complex cacosl(ldouble_complex); + +double_complex catan(double_complex); +float_complex catanf(float_complex); +ldouble_complex catanl(ldouble_complex); + +double_complex csinh(double_complex); +float_complex csinhf(float_complex); +ldouble_complex csinhl(ldouble_complex); + +double_complex ccosh(double_complex); +float_complex ccoshf(float_complex); +ldouble_complex ccoshl(ldouble_complex); + +double_complex ctanh(double_complex); +float_complex ctanhf(float_complex); +ldouble_complex ctanhl(ldouble_complex); + +double_complex casinh(double_complex); +float_complex casinhf(float_complex); +ldouble_complex casinhl(ldouble_complex); + +double_complex cacosh(double_complex); +float_complex cacoshf(float_complex); +ldouble_complex cacoshl(ldouble_complex); + +double_complex catanh(double_complex); +float_complex catanhf(float_complex); +ldouble_complex catanhl(ldouble_complex); + +double creal(double_complex); +float crealf(float_complex); +ldouble creall(ldouble_complex); + +double cimag(double_complex); +float cimagf(float_complex); +ldouble cimagl(ldouble_complex); + +double round(double); +float roundf(float); +ldouble roundl(ldouble); + +long lround(double); +long lroundf(float); +long lroundl(ldouble); + +llong llround(double); +llong llroundf(float); +llong llroundl(ldouble); + +double trunc(double); +float truncf(float); +ldouble truncl(ldouble); + +double floor(double); +float floorf(float); +ldouble floorl(ldouble); + +double ceil(double); +float ceilf(float); +ldouble ceill(ldouble); + +double pow(double, double); +float powf(float, float); +ldouble powl(ldouble, ldouble); + +double_complex cpow(double_complex, double_complex); +float_complex cpowf(float_complex, float_complex); +ldouble_complex cpowl(ldouble_complex, ldouble_complex); + +double pow10(double); +float pow10f(float); +ldouble pow10l(ldouble); + +double sqrt(double); +float sqrtf(float); +ldouble sqrtl(ldouble); + +double_complex csqrt(double_complex); +float_complex csqrtf(float_complex); +ldouble_complex csqrtl(ldouble_complex); + +double cbrt(double); +float cbrtf(float); +ldouble cbrtl(ldouble); + +double log(double); +float logf(float); +ldouble logl(ldouble); + +double log10(double); +float log10f(float); +ldouble log10l(ldouble); + +double log2(double); +float log2f(float); +ldouble log2l(ldouble); + +double logb(double); +float logbf(float); +ldouble logbl(ldouble); + +int ilogb(double); +int ilogbf(float); +int ilogbl(ldouble); + +double log1p(double); +float log1pf(float); +ldouble log1pl(ldouble); + +double_complex clog(double_complex); +float_complex clogf(float_complex); +ldouble_complex clogl(ldouble_complex); + +double_complex clog10(double_complex); +float_complex clog10f(float_complex); +ldouble_complex clog10l(ldouble_complex); + +double gamma(double); +float gammaf(float); +ldouble gammal(ldouble); + +double lgamma(double); +float lgammaf(float); +ldouble lgammal(ldouble); + +double lgamma_r(double, +int*); +float lgammaf_r(float, +int*); +ldouble lgammal_r(ldouble, +int*); + +double tgamma(double); +float tgammaf(float); +ldouble tgammal(ldouble); + +double j0(double); +float j0f(float); +ldouble j0l(ldouble); + +double j1(double); +float j1f(float); +ldouble j1l(ldouble); + +double jn(int, double); +float jnf(int, float); +ldouble jnl(int, ldouble); + +double y0(double); +float y0f(float); +ldouble y0l(ldouble); + +double y1(double); +float y1f(float); +ldouble y1l(ldouble); + +double yn(int, double); +float ynf(int, float); +ldouble ynl(int, ldouble); + +double fdim(double, double); +float fdimf(float, float); +ldouble fdiml(ldouble, ldouble); + +double remainder(double, double); +float remainderf(float, float); +ldouble remainderl(ldouble, ldouble); + +double drem(double, double); +float dremf(float, float); +ldouble dreml(ldouble, ldouble); + +double nearbyint(double); +float nearbyintf(float); +ldouble nearbyintl(ldouble); + +double rint(double); +float rintf(float); +ldouble rintl(ldouble); + +long lrint(double); +long lrintf(float); +long lrintl(ldouble); + +llong llrint(double); +llong llrintf(float); +llong llrintl(ldouble); + +double exp(double); +float expf(float); +ldouble expl(ldouble); + +double exp10(double); +float exp10f(float); +ldouble exp10l(ldouble); + +double exp2(double); +float exp2f(float); +ldouble exp2l(ldouble); + +double expm1(double); +float expm1f(float); +ldouble expm1l(ldouble); + +double frexp(double, +int *); +float frexpf(float, +int *); +ldouble frexpl(ldouble, +int *); + +double ldexp(double, int); +float ldexpf(float, int); +ldouble ldexpl(ldouble, int); + +double_complex cexp(double_complex); +float_complex cexpf(float_complex); +ldouble_complex cexpl(ldouble_complex); + +double significand(double); +float significandf(float); +ldouble significandl(ldouble); + +int finite(double); +int finitef(float); +int finitel(ldouble); + +int isinf(double); +int isinff(float); +int isinfl(ldouble); + +int isnan(double); +int isnanf(float); +int isnanl(ldouble); + +double nan(string); +float nanf(string); +ldouble nanl(string); + +double fabs(double); +float fabsf(float); +ldouble fabsl(ldouble); + +double cabs(double_complex); +float cabsf(float_complex); +ldouble cabsl(ldouble_complex); + +double modf(double, +double *); +float modff(float, +float *); +ldouble modfl(ldouble, +ldouble *); + +double fmod(double, double); +float fmodf(float, float); +ldouble fmodl(ldouble, ldouble); + +double remquo(double, double, +int *); +float remquof(float, float, +int *); +ldouble remquol(ldouble, ldouble, +int *); + +double erf(double); +float erff(float); +ldouble erfl(ldouble); + +double erfc(double); +float erfcf(float); +ldouble erfcl(ldouble); + +double fmax(double, double); +float fmaxf(float, float); +ldouble fmaxl(ldouble, ldouble); + +double fmin(double, double); +float fminf(float, float); +ldouble fminl(ldouble, ldouble); + +double carg(double_complex); +float cargf(float_complex); +ldouble cargl(ldouble_complex); + +double hypot(double, double); +float hypotf(float, float); +ldouble hypotl(ldouble, ldouble); + +double scalb(double, double); +float scalbf(float, double); +ldouble scalbl(ldouble, double); + +double scalbn(double, int); +float scalbnf(float, int); +ldouble scalbnl(ldouble, int); + +double scalbln(double, long); +float scalblnf(float, long); +ldouble scalblnl(ldouble, long); + +double fma(double, double, double); +float fmaf(float, float, float); +ldouble fmal(ldouble, ldouble, ldouble); + +double_complex cproj(double_complex); +float_complex cprojf(float_complex); +ldouble_complex cprojl(ldouble_complex); + +double copysign(double, double); +float copysignf(float, float); +ldouble copysignl(ldouble, ldouble); + +double nextafter(double, double); +float nextafterf(float, float); +ldouble nextafterl(ldouble, ldouble); + +double nexttoward(double, ldouble); +float nexttowardf(float, ldouble); +ldouble nexttowardl(ldouble, ldouble); + +double_complex conj(double_complex); +float_complex conjf(float_complex); +ldouble_complex conjl(ldouble_complex); + +; 15: 000000000003c000 15 FUNC GLOBAL DEFAULT 13 __finitel@@GLIBC_2.2.5 +; 44: 0000000000027be0 286 FUNC GLOBAL DEFAULT 13 __clog10@@GLIBC_2.2.5 +; 50: 00000000000068d0 85 FUNC GLOBAL DEFAULT 13 feholdexcept@@GLIBC_2.2.5 +; 56: 0000000000028900 10 FUNC GLOBAL DEFAULT 13 __signbit@@GLIBC_2.2.5 +; 61: 0000000000006ae0 53 FUNC GLOBAL DEFAULT 13 feenableexcept@@GLIBC_2.2.5 +; 65: 0000000000006760 29 FUNC GLOBAL DEFAULT 13 fegetexceptflag@@GLIBC_2.2.5 +; 68: 0000000000006a60 52 FUNC GLOBAL DEFAULT 13 feupdateenv@@GLIBC_2.2.5 +; 75: 0000000000006840 25 FUNC GLOBAL DEFAULT 13 fetestexcept@@GLIBC_2.2.5 +; 89: 0000000000025500 80 FUNC GLOBAL DEFAULT 13 __fpclassify@@GLIBC_2.2.5 +; 99: 0000000000033370 310 FUNC GLOBAL DEFAULT 13 __clog10f@@GLIBC_2.2.5 +; 104: 000000000003b600 307 FUNC GLOBAL DEFAULT 13 __clog10l@@GLIBC_2.2.5 +; 127: 0000000000028560 29 FUNC GLOBAL DEFAULT 13 __finite@@GLIBC_2.2.5 +; 134: 0000000000006870 66 FUNC GLOBAL DEFAULT 13 fesetround@@GLIBC_2.2.5 +; 136: 0000000000006780 99 FUNC GLOBAL DEFAULT 13 feraiseexcept@@GLIBC_2.2.5 +; 146: 0000000000006aa0 49 FUNC GLOBAL DEFAULT 13 fedisableexcept@@GLIBC_2.2.5 +; 155: 0000000000006730 40 FUNC GLOBAL DEFAULT 13 feclearexcept@@GLIBC_2.2.5 +; 175: 0000000000006860 14 FUNC GLOBAL DEFAULT 13 fegetround@@GLIBC_2.2.5 +; 199: 0000000000006b20 16 FUNC GLOBAL DEFAULT 13 fegetexcept@@GLIBC_2.2.5 +; 213: 00000000000067f0 71 FUNC GLOBAL DEFAULT 13 fesetexceptflag@@GLIBC_2.2.5 +; 229: 00000000000068c0 9 FUNC GLOBAL DEFAULT 13 fegetenv@@GLIBC_2.2.5 +; 249: 0000000000006930 303 FUNC GLOBAL DEFAULT 13 fesetenv@@GLIBC_2.2.5 +; 256: 00000000000308c0 56 FUNC GLOBAL DEFAULT 13 __fpclassifyf@@GLIBC_2.2.5 +; 261: 0000000000039020 94 FUNC GLOBAL DEFAULT 13 __fpclassifyl@@GLIBC_2.2.5 +; 263: 0000000000033a80 8 FUNC GLOBAL DEFAULT 13 __signbitf@@GLIBC_2.2.5 +; 267: 000000000003c2f0 29 FUNC GLOBAL DEFAULT 13 __signbitl@@GLIBC_2.2.5 +; 318: 0000000000006720 3 FUNC WEAK DEFAULT 13 matherr@@GLIBC_2.2.5 +; 328: 00000000000337f0 18 FUNC GLOBAL DEFAULT 13 __finitef@@GLIBC_2.2.5 diff --git a/squashfs-root/usr/share/ltrace/libpthread.so-types.conf b/squashfs-root/usr/share/ltrace/libpthread.so-types.conf new file mode 100644 index 0000000..0c5bffb --- /dev/null +++ b/squashfs-root/usr/share/ltrace/libpthread.so-types.conf @@ -0,0 +1,25 @@ +typedef pthread_t = ulong; +typedef pthread_attr_t = void; +typedef pthread_barrier_t = void; +typedef pthread_barrierattr_t = void; +typedef pthread_cond_t = void; +typedef pthread_condattr_t = void; +typedef pthread_key_t = uint; +typedef pthread_mutex_t = void; +typedef pthread_mutexattr_t = void; +typedef pthread_once_t = void; +typedef pthread_rwlock_t = void; +typedef pthread_rwlockattr_t = void; +typedef pthread_spinlock_t = void; + +typedef pthread_barrier_e = enum[int](PTHREAD_BARRIER_SERIAL_THREAD=-1); +typedef pthread_cancel_state_e = enum[int](PTHREAD_CANCEL_DISABLE=1, PTHREAD_CANCEL_ENABLE=0); +typedef pthread_cancel_type_e = enum[int](PTHREAD_CANCEL_ASYNCHRONOUS=1, PTHREAD_CANCEL_DEFERRED=0); +typedef pthread_detach_state_e = enum[int](PTHREAD_CREATE_DETACHED=1, PTHREAD_CREATE_JOINABLE=0); +typedef pthread_inherit_sched_e = enum[int](PTHREAD_EXPLICIT_SCHED=1, PTHREAD_INHERIT_SCHED=0); +typedef pthread_mutex_protocol_e = enum[int](PTHREAD_PRIO_INHERIT=1, PTHREAD_PRIO_NONE=0, PTHREAD_PRIO_PROTECT=2); +typedef pthread_mutex_robust_e = enum[int](PTHREAD_MUTEX_ROBUST=1, PTHREAD_MUTEX_STALLED=0); +typedef pthread_mutex_type_e = enum[int](PTHREAD_MUTEX_ADAPTIVE_NP=3, PTHREAD_MUTEX_ERRORCHECK=2, PTHREAD_MUTEX_NORMAL=0, PTHREAD_MUTEX_RECURSIVE=1); +typedef pthread_pshared_e = enum[int](PTHREAD_PROCESS_SHARED=1, PTHREAD_PROCESS_PRIVATE=0); +typedef pthread_rwlock_kind_e = enum[int](PTHREAD_RWLOCK_PREFER_READER_NP=0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP=2, PTHREAD_RWLOCK_PREFER_WRITER_NP=1); +typedef pthread_scope_e = enum[int](PTHREAD_SCOPE_PROCESS=1, PTHREAD_SCOPE_SYSTEM=0); diff --git a/squashfs-root/usr/share/ltrace/libpthread.so.conf b/squashfs-root/usr/share/ltrace/libpthread.so.conf new file mode 100644 index 0000000..156c5db --- /dev/null +++ b/squashfs-root/usr/share/ltrace/libpthread.so.conf @@ -0,0 +1,141 @@ +import "libc.so-types"; +import "libpthread.so-types"; + +# + +int pthread_atfork(void *, void *, void *); + +int pthread_attr_destroy(pthread_attr_t *); +int pthread_attr_getaffinity_np(pthread_attr_t *, size_t, void *); +int pthread_attr_getdetachstate(pthread_attr_t *, +pthread_detach_state_e *); +int pthread_attr_getguardsize(pthread_attr_t *, +size_t *); +int pthread_attr_getinheritsched(pthread_attr_t *, +pthread_inherit_sched_e *); +int pthread_attr_getschedparam(pthread_attr_t *, +sched_param *); +int pthread_attr_getschedpolicy(pthread_attr_t *, +sched_policy_e *); +int pthread_attr_getscope(pthread_attr_t *, +pthread_scope_e *); +int pthread_attr_getstack(pthread_attr_t *, +void **, +size_t *); +int pthread_attr_getstacksize(pthread_attr_t *, +size_t *); +int pthread_attr_init(pthread_attr_t *); +int pthread_attr_setaffinity_np(pthread_attr_t *, size_t, void *); +int pthread_attr_setdetachstate(pthread_attr_t *, pthread_detach_state_e); +int pthread_attr_setguardsize(pthread_attr_t *, size_t); +int pthread_attr_setinheritsched(pthread_attr_t *, pthread_inherit_sched_e); +int pthread_attr_setschedparam(pthread_attr_t *, sched_param *); +int pthread_attr_setschedpolicy(pthread_attr_t *, sched_policy_e); +int pthread_attr_setscope(pthread_attr_t *, pthread_scope_e); +int pthread_attr_setstack(pthread_attr_t *, void *, size_t); +int pthread_attr_setstacksize(pthread_attr_t *, size_t); + +int pthread_barrier_destroy(pthread_barrier_t *); +int pthread_barrier_init(pthread_barrier_t *, pthread_barrierattr_t *, uint); +pthread_barrier_e pthread_barrier_wait(pthread_barrier_t *); + +int pthread_barrierattr_destroy(pthread_barrierattr_t *); +int pthread_barrierattr_getpshared(pthread_barrierattr_t *, +pthread_pshared_e *); +int pthread_barrierattr_init(pthread_barrierattr_t *); +int pthread_barrierattr_setpshared(pthread_barrierattr_t *, pthread_pshared_e); + +int pthread_cancel(pthread_t); + +int pthread_cond_broadcast(pthread_cond_t *); +int pthread_cond_destroy(pthread_cond_t *); +int pthread_cond_init(pthread_cond_t *, pthread_condattr_t *); +int pthread_cond_signal(pthread_cond_t *); +int pthread_cond_timedwait(pthread_cond_t *, pthread_mutex_t *, timespec *); +int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *); + +int pthread_condattr_destroy(pthread_condattr_t *); +int pthread_condattr_getclock(pthread_condattr_t *, +clockid_t *); +int pthread_condattr_getpshared(pthread_condattr_t *, +pthread_pshared_e *); +int pthread_condattr_init(pthread_condattr_t *); +int pthread_condattr_setclock(pthread_condattr_t *, clockid_t); +int pthread_condattr_setpshared(pthread_condattr_t *, pthread_pshared_e); + +int pthread_create(+pthread_t *, pthread_attr_t *, void *, void *); +int pthread_detach(pthread_t); +int pthread_equal(pthread_t, pthread_t); +void pthread_exit(void *); +int pthread_getaffinity_np(pthread_t, size_t, void *); +int pthread_getattr_default_np(pthread_attr_t *); +int pthread_getattr_np(pthread_t, pthread_attr_t *); +int pthread_getconcurrency(); +int pthread_getcpuclockid(pthread_t, +clockid_t *); +int pthread_getname_np(pthread_t, +string, size_t); +int pthread_getschedparam(pthread_t, +sched_policy_e *, +sched_param *); +void *pthread_getspecific(pthread_key_t); +int pthread_join(pthread_t, +void **); + +int pthread_key_create(+pthread_key_t *, void *); +int pthread_key_delete(pthread_key_t); + +int pthread_mutex_consistent(pthread_mutex_t *); +int pthread_mutex_consistent_np(pthread_mutex_t *); +int pthread_mutex_destroy(pthread_mutex_t *); +int pthread_mutex_getprioceiling(pthread_mutex_t *, +int *); +int pthread_mutex_init(pthread_mutex_t *, pthread_mutexattr_t *); +int pthread_mutex_lock(pthread_mutex_t *); +int pthread_mutex_setprioceiling(pthread_mutex_t *, int, +int *); +int pthread_mutex_timedlock(pthread_mutex_t *, timespec *); +int pthread_mutex_trylock(pthread_mutex_t *); +int pthread_mutex_unlock(pthread_mutex_t *); + +int pthread_mutexattr_destroy(pthread_mutexattr_t *); +int pthread_mutexattr_getprioceiling(pthread_mutexattr_t *, +int *); +int pthread_mutexattr_getprotocol(pthread_mutexattr_t *, +pthread_mutex_protocol_e *); +int pthread_mutexattr_getpshared(pthread_mutexattr_t *, +pthread_pshared_e *); +int pthread_mutexattr_getrobust(pthread_mutexattr_t *, +pthread_mutex_robust_e *); +int pthread_mutexattr_getrobust_np(pthread_mutexattr_t *, +pthread_mutex_robust_e *); +int pthread_mutexattr_gettype(pthread_mutexattr_t *, +pthread_mutex_type_e *); +int pthread_mutexattr_init(pthread_mutexattr_t *); +int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int); +int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, pthread_mutex_protocol_e); +int pthread_mutexattr_setpshared(pthread_mutexattr_t *, pthread_pshared_e); +int pthread_mutexattr_setrobust(pthread_mutexattr_t *, pthread_mutex_robust_e); +int pthread_mutexattr_setrobust_np(pthread_mutexattr_t *, pthread_mutex_robust_e); +int pthread_mutexattr_settype(pthread_mutexattr_t *, pthread_mutex_type_e); + +int pthread_once(pthread_once_t *, void *); + +int pthread_rwlock_destroy(pthread_rwlock_t *); +int pthread_rwlock_init(pthread_rwlock_t *, pthread_rwlockattr_t *); +int pthread_rwlock_rdlock(pthread_rwlock_t *); +int pthread_rwlock_timedrdlock(pthread_rwlock_t *, timespec *); +int pthread_rwlock_timedwrlock(pthread_rwlock_t *, timespec *); +int pthread_rwlock_tryrdlock(pthread_rwlock_t *); +int pthread_rwlock_trywrlock(pthread_rwlock_t *); +int pthread_rwlock_unlock(pthread_rwlock_t *); +int pthread_rwlock_wrlock(pthread_rwlock_t *); + +int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); +int pthread_rwlockattr_getkind_np(pthread_rwlockattr_t *, +pthread_rwlock_kind_e *); +int pthread_rwlockattr_getpshared(pthread_rwlockattr_t *, +pthread_pshared_e *); +int pthread_rwlockattr_init(pthread_rwlockattr_t *); +int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *, pthread_rwlock_kind_e); +int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, pthread_pshared_e); + +pthread_t pthread_self(); +int pthread_setaffinity_np(pthread_t, size_t, void *); +int pthread_setattr_default_np(pthread_attr_t *); +int pthread_setcancelstate(pthread_cancel_state_e, +pthread_cancel_state_e *); +int pthread_setcanceltype(pthread_cancel_type_e, +pthread_cancel_type_e *); +int pthread_setconcurrency(int); +int pthread_setname_np (pthread_t, string); +int pthread_setschedparam(pthread_t, sched_policy_e, sched_param *); +int pthread_setschedprio(pthread_t, int); +int pthread_setspecific(pthread_key_t, void *); + +int pthread_spin_destroy(pthread_spinlock_t *); +int pthread_spin_init(pthread_spinlock_t *, pthread_pshared_e); +int pthread_spin_lock(pthread_spinlock_t *); +int pthread_spin_trylock(pthread_spinlock_t *); +int pthread_spin_unlock(pthread_spinlock_t *); + +void pthread_testcancel(); + +int pthread_timedjoin_np(pthread_t, +void **, timespec *); +int pthread_tryjoin_np(pthread_t, +void **); + +# + +int pthread_kill(pthread_t, signum); +int pthread_sigmask(int, sigset_t *, +sigset_t *); diff --git a/squashfs-root/usr/share/ltrace/syscalls.conf b/squashfs-root/usr/share/ltrace/syscalls.conf new file mode 100644 index 0000000..09d347d --- /dev/null +++ b/squashfs-root/usr/share/ltrace/syscalls.conf @@ -0,0 +1,146 @@ +# syscall.conf -- system call prototypes +# See ltrace.conf(5) for description of syntax of this file. + +# Special value used to indicate the *at functions should use the +# current working directory. +typedef at_dirfd_t = enum[int](AT_FDCWD=-100); + +addr brk(addr); +int close(int); +int execve(string,addr,addr); +void exit(int); +void exit_group(int); +int fork(); +int getcwd(+string2,ulong); +int getpid(); + +# XXX the last argument should be off_t +addr mmap(addr,ulong,int,int,int,long); + +int munmap(addr,ulong); +int open(string, hex(uint), oct(uint)); +int personality(uint); +long read(int,+string0,ulong); +int stat(string,addr); +octal umask(octal); +int uname(addr); +long write(int,string3,ulong); +int sync(); +int setxattr(string,string,addr,uint,int); +int lsetxattr(string,string,addr,uint,int); +int fsetxattr(int,string,addr,uint,int); +int getxattr(string,string,addr,uint); +int lgetxattr(string,string,addr,uint); +int fgetxattr(int,string,addr,uint); +int listxattr(string,addr,uint); +int llistxattr(string,addr,uint); +int flistxattr(int,addr,uint); +int removexattr(string,string); +int lremovexattr(string,string); +int fremovexattr(int,string); +int chdir(string); +int fchdir(int); +int chmod(string,octal); +int fchmod(int,octal); +int chown(string,int,int); +int fchown(int,int,int); +int lchown(string,int,int); +int chroot(string); +int dup(int); +int dup2(int,int); +int fdatasync(int); +int fsync(int); +int getpriority(int,int); +int setpriority(int,int,int); +int getrlimit(int,addr); +int setrlimit(int,addr); +int gettimeofday(addr,addr); +int settimeofday(addr,addr); +int setfsgid(int); +int setfsuid(int); +int getuid(); +int setuid(int); +int getgid(); +int setgid(int); +int getsid(int); +int setsid(int); +int setreuid(int,int); +int setregid(int,int); +int geteuid(); +int getegid(); +int setpgid(int,int); +int getresuid(addr,addr,addr); +int setresuid(int,int,int); +int getresgid(addr,addr,addr); +int setresgid(int,int,int); +int kill(int,int); +int link(string,string); +int madvise(addr,ulong,int); +int mkdir(string,octal); +int mknod(string,octal,int); +int msync(addr,ulong,int); +int nice(int); +int poll(addr,uint,int); +int readdir(uint,addr,uint); +int readlink(string,string,ulong); +int reboot(int,int,int,addr); +int rename(string,string); +int rmdir(string); +int sigaltstack(addr,addr); +int statfs(string,addr); +int fstatfs(int,addr); +int fstat(int,addr); +int lstat(string,addr); +int stime(addr); +int symlink(string, string); +int sysinfo(addr); +int syslog(int,string,int); +int truncate(string,long); +int ftruncate(int,long); +int mount(string,string,string,ulong,addr); +int umount(string); +int umount2(string,int); +int unlink(string); +int utime(string,addr); +long lseek(int,long,int); +addr signal(int,addr); +int sigaction(int,addr,addr); +int pause(); +int sigpending(addr); +int sigprocmask(int,addr,addr); +int sigqueue(int,int,addr); +int sigsuspend(addr); +int wait(addr); +int waitpid(int,addr,int); +ulong readv(int,addr,int); +ulong writev(int,addr,int); +int mprotect(addr,int,int); +int access(string,octal); +int getdents(uint, void *, uint); + +int openat(at_dirfd_t, string, hex(uint), oct(uint)); +int mknodat(at_dirfd_t, string, oct(uint), ushort) +int mkdirat(at_dirfd_t, string, oct(uint)); +int unlinkat(at_dirfd_t, string, hex(uint)); +int symlinkat(string, at_dirfd_t, string); +int linkat(at_dirfd_t, string, at_dirfd_t, string, hex(uint)); +int renameat(at_dirfd_t, string, at_dirfd_t, string); +int faccessat(at_dirfd_t, string, oct(uint), hex(uint)); +int fchmodat(at_dirfd_t, string, oct(uint), hex(uint)); +int fchownat(at_dirfd_t, string, int, int, hex(uint)); +int readlinkat(at_dirfd_t, string, +string[arg4], ulong); +int fstatat(at_dirfd_t, string, addr, hex(uint)); +int utimensat(at_dirfd_t, string, addr, hex(uint)); +int futimens(int, addr); +int futimesat(at_dirfd_t, string, addr); +addr shmat(int, addr, hex(uint)); +int shmdt(addr); + +typedef fid_type = enum(FILEID_ROOT=0, FILEID_INO32_GEN=1, FILEID_INO32_GEN_PARENT=2, FILEID_BTRFS_WITHOUT_PARENT=0x4d, FILEID_BTRFS_WITH_PARENT=0x4e, FILEID_BTRFS_WITH_PARENT_ROOT=0x4f, FILEID_UDF_WITHOUT_PARENT=0x51, FILEID_UDF_WITH_PARENT=0x52, FILEID_NILFS_WITHOUT_PARENT=0x61, FILEID_NILFS_WITH_PARENT=0x62); +typedef file_handle = struct(uint, fid_type, array(hex(char), elt1)*); +int name_to_handle_at(at_dirfd_t, string, file_handle, int*, hex(uint)); +int open_by_handle_at(at_dirfd_t, file_handle, hex(uint)); + +int newfstatat(at_dirfd_t, string, addr, hex(uint)); +int creat(string, oct(int)); +int ustat(ushort, addr); diff --git a/squashfs-root/usr/share/openal/alsoftrc.sample b/squashfs-root/usr/share/openal/alsoftrc.sample new file mode 100644 index 0000000..3e7d0ee --- /dev/null +++ b/squashfs-root/usr/share/openal/alsoftrc.sample @@ -0,0 +1,487 @@ +# OpenAL config file. +# +# Option blocks may appear multiple times, and duplicated options will take the +# last value specified. Environment variables may be specified within option +# values, and are automatically substituted when the config file is loaded. +# Environment variable names may only contain alpha-numeric characters (a-z, +# A-Z, 0-9) and underscores (_), and are prefixed with $. For example, +# specifying "$HOME/file.ext" would typically result in something like +# "/home/user/file.ext". To specify an actual "$" character, use "$$". +# +# Device-specific values may be specified by including the device name in the +# block name, with "general" replaced by the device name. That is, general +# options for the device "Name of Device" would be in the [Name of Device] +# block, while ALSA options would be in the [alsa/Name of Device] block. +# Options marked as "(global)" are not influenced by the device. +# +# The system-wide settings can be put in /etc/openal/alsoft.conf and user- +# specific override settings in $HOME/.alsoftrc. +# For Windows, these settings should go into $AppData\alsoft.ini +# +# Option and block names are case-senstive. The supplied values are only hints +# and may not be honored (though generally it'll try to get as close as +# possible). Note: options that are left unset may default to app- or system- +# specified values. These are the current available settings: + +## +## General stuff +## +[general] + +## disable-cpu-exts: (global) +# Disables use of specialized methods that use specific CPU intrinsics. +# Certain methods may utilize CPU extensions for improved performance, and +# this option is useful for preventing some or all of those methods from being +# used. The available extensions are: sse, sse2, sse3, sse4.1, and neon. +# Specifying 'all' disables use of all such specialized methods. +#disable-cpu-exts = + +## drivers: (global) +# Sets the backend driver list order, comma-seperated. Unknown backends and +# duplicated names are ignored. Unlisted backends won't be considered for use +# unless the list is ended with a comma (e.g. 'oss,' will try OSS first before +# other backends, while 'oss' will try OSS only). Backends prepended with - +# won't be considered for use (e.g. '-oss,' will try all available backends +# except OSS). An empty list means to try all backends. +#drivers = + +## channels: +# Sets the output channel configuration. If left unspecified, one will try to +# be detected from the system, and defaulting to stereo. The available values +# are: mono, stereo, quad, surround51, surround51rear, surround61, surround71, +# ambi1, ambi2, ambi3. Note that the ambi* configurations provide ambisonic +# channels of the given order (using ACN ordering and SN3D normalization by +# default), which need to be decoded to play correctly on speakers. +#channels = + +## sample-type: +# Sets the output sample type. Currently, all mixing is done with 32-bit float +# and converted to the output sample type as needed. Available values are: +# int8 - signed 8-bit int +# uint8 - unsigned 8-bit int +# int16 - signed 16-bit int +# uint16 - unsigned 16-bit int +# int32 - signed 32-bit int +# uint32 - unsigned 32-bit int +# float32 - 32-bit float +#sample-type = float32 + +## frequency: +# Sets the output frequency. If left unspecified it will try to detect a +# default from the system, otherwise it will default to 44100. +#frequency = + +## period_size: +# Sets the update period size, in frames. This is the number of frames needed +# for each mixing update. Acceptable values range between 64 and 8192. +#period_size = 1024 + +## periods: +# Sets the number of update periods. Higher values create a larger mix ahead, +# which helps protect against skips when the CPU is under load, but increases +# the delay between a sound getting mixed and being heard. Acceptable values +# range between 2 and 16. +#periods = 3 + +## stereo-mode: +# Specifies if stereo output is treated as being headphones or speakers. With +# headphones, HRTF or crossfeed filters may be used for better audio quality. +# Valid settings are auto, speakers, and headphones. +#stereo-mode = auto + +## stereo-encoding: +# Specifies the encoding method for non-HRTF stereo output. 'panpot' (default) +# uses standard amplitude panning (aka pair-wise, stereo pair, etc) between +# -30 and +30 degrees, while 'uhj' creates stereo-compatible two-channel UHJ +# output, which encodes some surround sound information into stereo output +# that can be decoded with a surround sound receiver. If crossfeed filters are +# used, UHJ is disabled. +#stereo-encoding = panpot + +## ambi-format: +# Specifies the channel order and normalization for the "ambi*" set of channel +# configurations. Valid settings are: fuma, acn+sn3d, acn+n3d +#ambi-format = acn+sn3d + +## hrtf: +# Controls HRTF processing. These filters provide better spatialization of +# sounds while using headphones, but do require a bit more CPU power. The +# default filters will only work with 44100hz or 48000hz stereo output. While +# HRTF is used, the cf_level option is ignored. Setting this to auto (default) +# will allow HRTF to be used when headphones are detected or the app requests +# it, while setting true or false will forcefully enable or disable HRTF +# respectively. +#hrtf = auto + +## default-hrtf: +# Specifies the default HRTF to use. When multiple HRTFs are available, this +# determines the preferred one to use if none are specifically requested. Note +# that this is the enumerated HRTF name, not necessarily the filename. +#default-hrtf = + +## hrtf-paths: +# Specifies a comma-separated list of paths containing HRTF data sets. The +# format of the files are described in docs/hrtf.txt. The files within the +# directories must have the .mhr file extension to be recognized. By default, +# OS-dependent data paths will be used. They will also be used if the list +# ends with a comma. On Windows this is: +# $AppData\openal\hrtf +# And on other systems, it's (in order): +# $XDG_DATA_HOME/openal/hrtf (defaults to $HOME/.local/share/openal/hrtf) +# $XDG_DATA_DIRS/openal/hrtf (defaults to /usr/local/share/openal/hrtf and +# /usr/share/openal/hrtf) +#hrtf-paths = + +## cf_level: +# Sets the crossfeed level for stereo output. Valid values are: +# 0 - No crossfeed +# 1 - Low crossfeed +# 2 - Middle crossfeed +# 3 - High crossfeed (virtual speakers are closer to itself) +# 4 - Low easy crossfeed +# 5 - Middle easy crossfeed +# 6 - High easy crossfeed +# Users of headphones may want to try various settings. Has no effect on non- +# stereo modes. +#cf_level = 0 + +## resampler: (global) +# Selects the resampler used when mixing sources. Valid values are: +# point - nearest sample, no interpolation +# linear - extrapolates samples using a linear slope between samples +# sinc4 - extrapolates samples using a 4-point Sinc filter +# bsinc - extrapolates samples using a band-limited Sinc filter (varying +# between 12 and 24 points, with anti-aliasing) +# Specifying other values will result in using the default (linear). +#resampler = linear + +## rt-prio: (global) +# Sets real-time priority for the mixing thread. Not all drivers may use this +# (eg. PortAudio) as they already control the priority of the mixing thread. +# 0 and negative values will disable it. Note that this may constitute a +# security risk since a real-time priority thread can indefinitely block +# normal-priority threads if it fails to wait. As such, the default is +# disabled. +#rt-prio = 0 + +## sources: +# Sets the maximum number of allocatable sources. Lower values may help for +# systems with apps that try to play more sounds than the CPU can handle. +#sources = 256 + +## slots: +# Sets the maximum number of Auxiliary Effect Slots an app can create. A slot +# can use a non-negligible amount of CPU time if an effect is set on it even +# if no sources are feeding it, so this may help when apps use more than the +# system can handle. +#slots = 64 + +## sends: +# Limits the number of auxiliary sends allowed per source. Setting this higher +# than the default has no effect. +#sends = 16 + +## output-limiter: +# Applies a gain limiter on the final mixed output. This reduces the volume +# when the output samples would otherwise clamp, avoiding excessive clipping +# noise. +#output-limiter = true + +## dither: +# Applies dithering on the final mix, for 8- and 16-bit output by default. +# This replaces the distortion created by nearest-value quantization with low- +# level whitenoise. +#dither = true + +## dither-depth: +# Quantization bit-depth for dithered output. A value of 0 (or less) will +# match the output sample depth. For int32, uint32, and float32 output, 0 will +# disable dithering because they're at or beyond the rendered precision. The +# maximum dither depth is 24. +#dither-depth = 0 + +## volume-adjust: +# A global volume adjustment for source output, expressed in decibels. The +# value is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will +# be a scale of 4x, etc. Similarly, -6 will be x1/2, and -12 is about x1/4. A +# value of 0 means no change. +#volume-adjust = 0 + +## excludefx: (global) +# Sets which effects to exclude, preventing apps from using them. This can +# help for apps that try to use effects which are too CPU intensive for the +# system to handle. Available effects are: eaxreverb,reverb,chorus,compressor, +# distortion,echo,equalizer,flanger,modulator,dedicated +#excludefx = + +## default-reverb: (global) +# A reverb preset that applies by default to all sources on send 0 +# (applications that set their own slots on send 0 will override this). +# Available presets are: None, Generic, PaddedCell, Room, Bathroom, +# Livingroom, Stoneroom, Auditorium, ConcertHall, Cave, Arena, Hangar, +# CarpetedHallway, Hallway, StoneCorridor, Alley, Forest, City, Moutains, +# Quarry, Plain, ParkingLot, SewerPipe, Underwater, Drugged, Dizzy, Psychotic. +#default-reverb = + +## trap-alc-error: (global) +# Generates a SIGTRAP signal when an ALC device error is generated, on systems +# that support it. This helps when debugging, while trying to find the cause +# of a device error. On Windows, a breakpoint exception is generated. +#trap-alc-error = false + +## trap-al-error: (global) +# Generates a SIGTRAP signal when an AL context error is generated, on systems +# that support it. This helps when debugging, while trying to find the cause +# of a context error. On Windows, a breakpoint exception is generated. +#trap-al-error = false + +## +## Ambisonic decoder stuff +## +[decoder] + +## hq-mode: +# Enables a high-quality ambisonic decoder. This mode is capable of frequency- +# dependent processing, creating a better reproduction of 3D sound rendering +# over surround sound speakers. Enabling this also requires specifying decoder +# configuration files for the appropriate speaker configuration you intend to +# use (see the quad, surround51, etc options below). Currently, up to third- +# order decoding is supported. +hq-mode = false + +## distance-comp: +# Enables compensation for the speakers' relative distances to the listener. +# This applies the necessary delays and attenuation to make the speakers +# behave as though they are all equidistant, which is important for proper +# playback of 3D sound rendering. Requires the proper distances to be +# specified in the decoder configuration file. +distance-comp = true + +## nfc: +# Enables near-field control filters. This simulates and compensates for low- +# frequency effects caused by the curvature of nearby sound-waves, which +# creates a more realistic perception of sound distance. Note that the effect +# may be stronger or weaker than intended if the application doesn't use or +# specify an appropriate unit scale, or if incorrect speaker distances are set +# in the decoder configuration file. Requires hq-mode to be enabled. +nfc = true + +## nfc-ref-delay +# Specifies the reference delay value for ambisonic output. When channels is +# set to one of the ambi* formats, this option enables NFC-HOA output with the +# specified Reference Delay parameter. The specified value can then be shared +# with an appropriate NFC-HOA decoder to reproduce correct near-field effects. +# Keep in mind that despite being designed for higher-order ambisonics, this +# applies to first-order output all the same. When left unset, normal output +# is created with no near-field simulation. +nfc-ref-delay = + +## quad: +# Decoder configuration file for Quadrophonic channel output. See +# docs/ambdec.txt for a description of the file format. +quad = + +## surround51: +# Decoder configuration file for 5.1 Surround (Side and Rear) channel output. +# See docs/ambdec.txt for a description of the file format. +surround51 = + +## surround61: +# Decoder configuration file for 6.1 Surround channel output. See +# docs/ambdec.txt for a description of the file format. +surround61 = + +## surround71: +# Decoder configuration file for 7.1 Surround channel output. See +# docs/ambdec.txt for a description of the file format. Note: This can be used +# to enable 3D7.1 with the appropriate configuration and speaker placement, +# see docs/3D7.1.txt. +surround71 = + +## +## Reverb effect stuff (includes EAX reverb) +## +[reverb] + +## boost: (global) +# A global amplification for reverb output, expressed in decibels. The value +# is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will be a +# scale of 4x, etc. Similarly, -6 will be about half, and -12 about 1/4th. A +# value of 0 means no change. +#boost = 0 + +## emulate-eax: (global) +# Allows the standard reverb effect to be used in place of EAX reverb. EAX +# reverb processing is a bit more CPU intensive than standard, so this option +# allows a simpler effect to be used at the loss of some quality. +#emulate-eax = false + +## +## PulseAudio backend stuff +## +[pulse] + +## spawn-server: (global) +# Attempts to autospawn a PulseAudio server whenever needed (initializing the +# backend, enumerating devices, etc). Setting autospawn to false in Pulse's +# client.conf will still prevent autospawning even if this is set to true. +#spawn-server = true + +## allow-moves: (global) +# Allows PulseAudio to move active streams to different devices. Note that the +# device specifier (seen by applications) will not be updated when this +# occurs, and neither will the AL device configuration (sample rate, format, +# etc). +#allow-moves = false + +## fix-rate: +# Specifies whether to match the playback stream's sample rate to the device's +# sample rate. Enabling this forces OpenAL Soft to mix sources and effects +# directly to the actual output rate, avoiding a second resample pass by the +# PulseAudio server. +#fix-rate = false + +## +## ALSA backend stuff +## +[alsa] + +## device: (global) +# Sets the device name for the default playback device. +#device = default + +## device-prefix: (global) +# Sets the prefix used by the discovered (non-default) playback devices. This +# will be appended with "CARD=c,DEV=d", where c is the card id and d is the +# device index for the requested device name. +#device-prefix = plughw: + +## device-prefix-*: (global) +# Card- and device-specific prefixes may be used to override the device-prefix +# option. The option may specify the card id (eg, device-prefix-NVidia), or +# the card id and device index (eg, device-prefix-NVidia-0). The card id is +# case-sensitive. +#device-prefix- = + +## capture: (global) +# Sets the device name for the default capture device. +#capture = default + +## capture-prefix: (global) +# Sets the prefix used by the discovered (non-default) capture devices. This +# will be appended with "CARD=c,DEV=d", where c is the card id and d is the +# device number for the requested device name. +#capture-prefix = plughw: + +## capture-prefix-*: (global) +# Card- and device-specific prefixes may be used to override the +# capture-prefix option. The option may specify the card id (eg, +# capture-prefix-NVidia), or the card id and device index (eg, +# capture-prefix-NVidia-0). The card id is case-sensitive. +#capture-prefix- = + +## mmap: +# Sets whether to try using mmap mode (helps reduce latencies and CPU +# consumption). If mmap isn't available, it will automatically fall back to +# non-mmap mode. True, yes, on, and non-0 values will attempt to use mmap. 0 +# and anything else will force mmap off. +#mmap = true + +## allow-resampler: +# Specifies whether to allow ALSA's built-in resampler. Enabling this will +# allow the playback device to be set to a different sample rate than the +# actual output, causing ALSA to apply its own resampling pass after OpenAL +# Soft resamples and mixes the sources and effects for output. +#allow-resampler = false + +## +## OSS backend stuff +## +[oss] + +## device: (global) +# Sets the device name for OSS output. +#device = /dev/dsp + +## capture: (global) +# Sets the device name for OSS capture. +#capture = /dev/dsp + +## +## Solaris backend stuff +## +[solaris] + +## device: (global) +# Sets the device name for Solaris output. +#device = /dev/audio + +## +## QSA backend stuff +## +[qsa] + +## +## JACK backend stuff +## +[jack] + +## spawn-server: (global) +# Attempts to autospawn a JACK server whenever needed (initializing the +# backend, opening devices, etc). +#spawn-server = false + +## buffer-size: +# Sets the update buffer size, in samples, that the backend will keep buffered +# to handle the server's real-time processing requests. This value must be a +# power of 2, or else it will be rounded up to the next power of 2. If it is +# less than JACK's buffer update size, it will be clamped. This option may +# be useful in case the server's update size is too small and doesn't give the +# mixer time to keep enough audio available for the processing requests. +#buffer-size = 0 + +## +## MMDevApi backend stuff +## +[mmdevapi] + +## +## DirectSound backend stuff +## +[dsound] + +## +## Windows Multimedia backend stuff +## +[winmm] + +## +## PortAudio backend stuff +## +[port] + +## device: (global) +# Sets the device index for output. Negative values will use the default as +# given by PortAudio itself. +#device = -1 + +## capture: (global) +# Sets the device index for capture. Negative values will use the default as +# given by PortAudio itself. +#capture = -1 + +## +## Wave File Writer stuff +## +[wave] + +## file: (global) +# Sets the filename of the wave file to write to. An empty name prevents the +# backend from opening, even when explicitly requested. +# THIS WILL OVERWRITE EXISTING FILES WITHOUT QUESTION! +#file = + +## bformat: (global) +# Creates AMB format files using first-order ambisonics instead of a standard +# single- or multi-channel .wav file. +#bformat = false diff --git a/squashfs-root/usr/share/openal/hrtf/default-44100.mhr b/squashfs-root/usr/share/openal/hrtf/default-44100.mhr new file mode 100644 index 0000000..7150159 Binary files /dev/null and b/squashfs-root/usr/share/openal/hrtf/default-44100.mhr differ diff --git a/squashfs-root/usr/share/openal/hrtf/default-48000.mhr b/squashfs-root/usr/share/openal/hrtf/default-48000.mhr new file mode 100644 index 0000000..cee0971 Binary files /dev/null and b/squashfs-root/usr/share/openal/hrtf/default-48000.mhr differ diff --git a/squashfs-root/usr/share/openal/presets/3D7.1.ambdec b/squashfs-root/usr/share/openal/presets/3D7.1.ambdec new file mode 100644 index 0000000..42b6a0b --- /dev/null +++ b/squashfs-root/usr/share/openal/presets/3D7.1.ambdec @@ -0,0 +1,43 @@ +# AmbDec configuration +# Written by Ambisonic Decoder Toolbox, version 8.0 + +/description 3D7_2h1v_allrad_5200_rE_max_1_band + +/version 3 + +/dec/chan_mask 1bf +/dec/freq_bands 1 +/dec/speakers 7 +/dec/coeff_scale fuma + +/opt/input_scale fuma +/opt/nfeff_comp output +/opt/delay_comp on +/opt/level_comp on +/opt/xover_freq 400.000000 +/opt/xover_ratio 0.000000 + +/speakers/{ +# id dist azim elev conn +#----------------------------------------------------------------------- +add_spkr LF 1.500000 51.000000 24.000000 +add_spkr RF 1.500000 -51.000000 24.000000 +add_spkr CE 1.500000 0.000000 0.000000 +add_spkr LB 1.500000 180.000000 55.000000 +add_spkr RB 1.500000 0.000000 -55.000000 +add_spkr LS 1.500000 129.000000 -24.000000 +add_spkr RS 1.500000 -129.000000 -24.000000 +/} + +/matrix/{ +order_gain 1.000000 0.774597 0.400000 0.000000 +add_row 0.325031 0.357638 0.206500 0.234037 0.202440 0.135692 0.116927 -0.098768 +add_row 0.325036 -0.357619 0.206537 0.234033 -0.202427 -0.135680 0.116934 -0.098768 +add_row 0.080073 -0.000010 -0.000296 0.155843 -0.000016 -0.000011 -0.000623 0.163306 +add_row 0.353556 0.000002 0.408453 -0.288377 -0.000004 -0.000003 -0.221039 0.077297 +add_row 0.325297 0.000008 -0.414018 0.232789 0.000004 0.000003 -0.232940 0.018311 +add_row 0.353558 0.352704 -0.203542 -0.290124 -0.191868 -0.134582 0.110616 -0.038294 +add_row 0.353556 -0.352691 -0.203576 -0.290115 0.191871 0.134585 0.110612 -0.038293 +/} + +/end diff --git a/squashfs-root/usr/share/openal/presets/hexagon.ambdec b/squashfs-root/usr/share/openal/presets/hexagon.ambdec new file mode 100644 index 0000000..d45f273 --- /dev/null +++ b/squashfs-root/usr/share/openal/presets/hexagon.ambdec @@ -0,0 +1,51 @@ +# AmbDec configuration +# Written by Ambisonic Decoder Toolbox, version 8.0 + +/description Hexagon_2h0p_pinv_match_rV_max_rE_2_band + +/version 3 + +/dec/chan_mask 11b +/dec/freq_bands 2 +/dec/speakers 6 +/dec/coeff_scale fuma + +/opt/input_scale fuma +/opt/nfeff_comp input +/opt/delay_comp on +/opt/level_comp on +/opt/xover_freq 400.000000 +/opt/xover_ratio 0.000000 + +/speakers/{ +# id dist azim elev conn +#----------------------------------------------------------------------- +add_spkr LF 1.000000 30.000000 0.000000 +add_spkr RF 1.000000 -30.000000 0.000000 +add_spkr RS 1.000000 -90.000000 0.000000 +add_spkr RB 1.000000 -150.000000 0.000000 +add_spkr LB 1.000000 150.000000 0.000000 +add_spkr LS 1.000000 90.000000 0.000000 +/} + +/lfmatrix/{ +order_gain 1.000000 1.000000 1.000000 0.000000 +add_row 0.235702 0.166667 0.288675 0.288675 0.166667 +add_row 0.235702 -0.166667 0.288675 -0.288675 0.166667 +add_row 0.235702 -0.333333 0.000000 -0.000000 -0.333333 +add_row 0.235702 -0.166667 -0.288675 0.288675 0.166667 +add_row 0.235702 0.166667 -0.288675 -0.288675 0.166667 +add_row 0.235702 0.333333 0.000000 -0.000000 -0.333333 +/} + +/hfmatrix/{ +order_gain 1.414214 1.224745 0.707107 0.000000 +add_row 0.235702 0.166667 0.288675 0.288675 0.166667 +add_row 0.235702 -0.166667 0.288675 -0.288675 0.166667 +add_row 0.235702 -0.333333 0.000000 -0.000000 -0.333333 +add_row 0.235702 -0.166667 -0.288675 0.288675 0.166667 +add_row 0.235702 0.166667 -0.288675 -0.288675 0.166667 +add_row 0.235702 0.333333 0.000000 -0.000000 -0.333333 +/} + +/end diff --git a/squashfs-root/usr/share/openal/presets/itu5.1.ambdec b/squashfs-root/usr/share/openal/presets/itu5.1.ambdec new file mode 100644 index 0000000..7438603 --- /dev/null +++ b/squashfs-root/usr/share/openal/presets/itu5.1.ambdec @@ -0,0 +1,48 @@ +# AmbDec configuration +# Written by Ambisonic Decoder Toolbox, version 8.0 + +/description itu50_2h0p_allrad_5200_rE_max_1_band + +/version 3 + +/dec/chan_mask 11b +/dec/freq_bands 2 +/dec/speakers 5 +/dec/coeff_scale fuma + +/opt/input_scale fuma +/opt/nfeff_comp output +/opt/delay_comp on +/opt/level_comp on +/opt/xover_freq 400.000000 +/opt/xover_ratio 3.000000 + +/speakers/{ +# id dist azim elev conn +#----------------------------------------------------------------------- +add_spkr LS 1.000000 110.000000 0.000000 +add_spkr LF 1.000000 30.000000 0.000000 +add_spkr CE 1.000000 0.000000 0.000000 +add_spkr RF 1.000000 -30.000000 0.000000 +add_spkr RS 1.000000 -110.000000 0.000000 +/} + +/lfmatrix/{ +order_gain 1.000000 1.000000 1.000000 0.000000 +add_row 0.420330 0.330200 -0.312250 0.019350 -0.027010 +add_row 0.197700 0.288820 0.287820 0.049110 0.007420 +add_row 0.058030 0.000000 0.205970 0.000000 0.050790 +add_row 0.197700 -0.288820 0.287820 -0.049110 0.007420 +add_row 0.420330 -0.330200 -0.312250 -0.019350 -0.027010 +/} + +/hfmatrix/{ +order_gain 1.000000 0.866025 0.500000 0.000000 +add_row 0.470934 0.378170 -0.400085 -0.082226 -0.044377 +add_row 0.208954 0.257988 0.230383 0.288520 -0.025085 +add_row 0.109403 -0.000002 0.194278 -0.000003 0.200863 +add_row 0.208950 -0.257989 0.230379 -0.288516 -0.025088 +add_row 0.470936 -0.378173 -0.400081 0.082228 -0.044372 +/} + +/end diff --git a/squashfs-root/usr/share/openal/presets/presets.txt b/squashfs-root/usr/share/openal/presets/presets.txt new file mode 100644 index 0000000..9496872 --- /dev/null +++ b/squashfs-root/usr/share/openal/presets/presets.txt @@ -0,0 +1,42 @@ +Ambisonic decoder configuration presets are provided here for common surround +sound speaker layouts. The presets are prepared to work with OpenAL Soft's high +quality decoder. By default all of the speaker distances within a preset are +set to the same value, which results in no effect from distance compensation. +If this doesn't match your physical speaker setup, it may be worth copying the +preset and modifying the distance values to match (note that modifying the +azimuth and elevation values in the presets will not have any effect; the +specified angles do not change the decoder behavior). + +Details of the individual presets are as follows. + +square.ambdec +Specifies a basic square speaker setup for Quadrophonic output, with identical +width and depth. Front speakers are placed at +45 and -45 degrees, and back +speakers are placed at +135 and -135 degrees. + +rectangle.ambdec +Specifies a narrower speaker setup for Quadrophonic output, with a little less +width but a little more depth over a basic square setup. Front speakers are +placed at +30 and -30 degrees, providing a bit more compatibility for existing +stereo content, with back speakers at +150 and -150 degrees. + +itu5.1.ambdec +Specifies a standard ITU 5.0/5.1 setup for 5.1 Surround output. The front- +center speaker is placed directly in front at 0 degrees, with the front-left +and front-right at +30 and -30 degrees, and the surround speakers (side or +back) at +110 and -110 degrees. + +hexagon.ambdec +Specifies a flat-front hexagonal speaker setup for 7.1 Surround output. The +front left and right speakers are placed at +30 and -30 degrees, the side +speakers are placed at +90 and -90 degrees, and the back speakers are placed at ++150 and -150 degrees. Although this is for 7.1 output, no front-center speaker +is defined for the decoder, meaning that speaker will be silent for 3D sound +(however it may still be used with AL_SOFT_direct_channels or ALC_EXT_DEDICATED +output). A "proper" 7.1 decoder may be provided in the future, but due to the +nature of the speaker configuration will have trade-offs. + +3D7.1.ambdec +Specifies a 3D7.1 speaker setup for 7.1 Surround output. Although it's for 7.1 +output, the speakers for such a configuration need to be placed in different +positions for proper results. Please see docs/3D7.1.txt for more information. diff --git a/squashfs-root/usr/share/openal/presets/rectangle.ambdec b/squashfs-root/usr/share/openal/presets/rectangle.ambdec new file mode 100644 index 0000000..caf7231 --- /dev/null +++ b/squashfs-root/usr/share/openal/presets/rectangle.ambdec @@ -0,0 +1,45 @@ +# AmbDec configuration +# Written by Ambisonic Decoder Toolbox, version 8.0 + +/description Rectangle_1h0p_pinv_match_rV_max_rE_2_band + +/version 3 + +/dec/chan_mask b +/dec/freq_bands 2 +/dec/speakers 4 +/dec/coeff_scale fuma + +/opt/input_scale fuma +/opt/nfeff_comp input +/opt/delay_comp on +/opt/level_comp on +/opt/xover_freq 400.000000 +/opt/xover_ratio 0.000000 + +/speakers/{ +# id dist azim elev conn +#----------------------------------------------------------------------- +add_spkr LF 1.000000 30.000000 0.000000 +add_spkr RF 1.000000 -30.000000 0.000000 +add_spkr RB 1.000000 -150.000000 0.000000 +add_spkr LB 1.000000 150.000000 0.000000 +/} + +/lfmatrix/{ +order_gain 1.000000 1.000000 0.000000 0.000000 +add_row 0.353553 0.500000 0.288675 +add_row 0.353553 -0.500000 0.288675 +add_row 0.353553 -0.500000 -0.288675 +add_row 0.353553 0.500000 -0.288675 +/} + +/hfmatrix/{ +order_gain 1.414214 1.000000 0.000000 0.000000 +add_row 0.353553 0.500000 0.288675 +add_row 0.353553 -0.500000 0.288675 +add_row 0.353553 -0.500000 -0.288675 +add_row 0.353553 0.500000 -0.288675 +/} + +/end diff --git a/squashfs-root/usr/share/openal/presets/square.ambdec b/squashfs-root/usr/share/openal/presets/square.ambdec new file mode 100644 index 0000000..547ed36 --- /dev/null +++ b/squashfs-root/usr/share/openal/presets/square.ambdec @@ -0,0 +1,45 @@ +# AmbDec configuration +# Written by Ambisonic Decoder Toolbox, version 8.0 + +/description Square_1h0p_pinv_match_rV_max_rE_2_band + +/version 3 + +/dec/chan_mask b +/dec/freq_bands 2 +/dec/speakers 4 +/dec/coeff_scale fuma + +/opt/input_scale fuma +/opt/nfeff_comp input +/opt/delay_comp on +/opt/level_comp on +/opt/xover_freq 400.000000 +/opt/xover_ratio 0.000000 + +/speakers/{ +# id dist azim elev conn +#----------------------------------------------------------------------- +add_spkr LF 1.000000 45.000000 0.000000 +add_spkr RF 1.000000 -45.000000 0.000000 +add_spkr RB 1.000000 -135.000000 0.000000 +add_spkr LB 1.000000 135.000000 0.000000 +/} + +/lfmatrix/{ +order_gain 1.000000 1.000000 0.000000 0.000000 +add_row 0.353553 0.353553 0.353553 +add_row 0.353553 -0.353553 0.353553 +add_row 0.353553 -0.353553 -0.353553 +add_row 0.353553 0.353553 -0.353553 +/} + +/hfmatrix/{ +order_gain 1.414214 1.000000 0.000000 0.000000 +add_row 0.353553 0.353553 0.353553 +add_row 0.353553 -0.353553 0.353553 +add_row 0.353553 -0.353553 -0.353553 +add_row 0.353553 0.353553 -0.353553 +/} + +/end diff --git a/squashfs-root/usr/share/sounds/alsa/Front_Center.wav b/squashfs-root/usr/share/sounds/alsa/Front_Center.wav new file mode 100644 index 0000000..4f12180 Binary files /dev/null and b/squashfs-root/usr/share/sounds/alsa/Front_Center.wav differ diff --git a/squashfs-root/usr/share/sounds/alsa/Front_Left.wav b/squashfs-root/usr/share/sounds/alsa/Front_Left.wav new file mode 100644 index 0000000..9d6ebdd Binary files /dev/null and b/squashfs-root/usr/share/sounds/alsa/Front_Left.wav differ diff --git a/squashfs-root/usr/share/sounds/alsa/Front_Right.wav b/squashfs-root/usr/share/sounds/alsa/Front_Right.wav new file mode 100644 index 0000000..441565c Binary files /dev/null and b/squashfs-root/usr/share/sounds/alsa/Front_Right.wav differ diff --git a/squashfs-root/usr/share/sounds/alsa/Noise.wav b/squashfs-root/usr/share/sounds/alsa/Noise.wav new file mode 100644 index 0000000..1898d34 Binary files /dev/null and b/squashfs-root/usr/share/sounds/alsa/Noise.wav differ diff --git a/squashfs-root/usr/share/sounds/alsa/Rear_Center.wav b/squashfs-root/usr/share/sounds/alsa/Rear_Center.wav new file mode 100644 index 0000000..ee2c6da Binary files /dev/null and b/squashfs-root/usr/share/sounds/alsa/Rear_Center.wav differ diff --git a/squashfs-root/usr/share/sounds/alsa/Rear_Left.wav b/squashfs-root/usr/share/sounds/alsa/Rear_Left.wav new file mode 100644 index 0000000..57d0311 Binary files /dev/null and b/squashfs-root/usr/share/sounds/alsa/Rear_Left.wav differ diff --git a/squashfs-root/usr/share/sounds/alsa/Rear_Right.wav b/squashfs-root/usr/share/sounds/alsa/Rear_Right.wav new file mode 100644 index 0000000..692e646 Binary files /dev/null and b/squashfs-root/usr/share/sounds/alsa/Rear_Right.wav differ diff --git a/squashfs-root/usr/share/sounds/alsa/Side_Left.wav b/squashfs-root/usr/share/sounds/alsa/Side_Left.wav new file mode 100644 index 0000000..9741f2c Binary files /dev/null and b/squashfs-root/usr/share/sounds/alsa/Side_Left.wav differ diff --git a/squashfs-root/usr/share/sounds/alsa/Side_Right.wav b/squashfs-root/usr/share/sounds/alsa/Side_Right.wav new file mode 100644 index 0000000..b0e5b3a Binary files /dev/null and b/squashfs-root/usr/share/sounds/alsa/Side_Right.wav differ diff --git a/squashfs-root/usr/share/terminfo/a/ansi b/squashfs-root/usr/share/terminfo/a/ansi new file mode 100644 index 0000000..6de7978 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/a/ansi differ diff --git a/squashfs-root/usr/share/terminfo/d/dumb b/squashfs-root/usr/share/terminfo/d/dumb new file mode 100644 index 0000000..fd4091a Binary files /dev/null and b/squashfs-root/usr/share/terminfo/d/dumb differ diff --git a/squashfs-root/usr/share/terminfo/l/linux b/squashfs-root/usr/share/terminfo/l/linux new file mode 100644 index 0000000..b458ffa Binary files /dev/null and b/squashfs-root/usr/share/terminfo/l/linux differ diff --git a/squashfs-root/usr/share/terminfo/p/putty b/squashfs-root/usr/share/terminfo/p/putty new file mode 100644 index 0000000..d81f703 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/p/putty differ diff --git a/squashfs-root/usr/share/terminfo/p/putty-256color b/squashfs-root/usr/share/terminfo/p/putty-256color new file mode 100644 index 0000000..308368d Binary files /dev/null and b/squashfs-root/usr/share/terminfo/p/putty-256color differ diff --git a/squashfs-root/usr/share/terminfo/p/putty-vt100 b/squashfs-root/usr/share/terminfo/p/putty-vt100 new file mode 100644 index 0000000..a6ec951 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/p/putty-vt100 differ diff --git a/squashfs-root/usr/share/terminfo/s/screen b/squashfs-root/usr/share/terminfo/s/screen new file mode 100644 index 0000000..895f0f6 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/s/screen differ diff --git a/squashfs-root/usr/share/terminfo/s/screen-256color b/squashfs-root/usr/share/terminfo/s/screen-256color new file mode 100644 index 0000000..11fbb23 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/s/screen-256color differ diff --git a/squashfs-root/usr/share/terminfo/v/vt100 b/squashfs-root/usr/share/terminfo/v/vt100 new file mode 100644 index 0000000..1a7176d Binary files /dev/null and b/squashfs-root/usr/share/terminfo/v/vt100 differ diff --git a/squashfs-root/usr/share/terminfo/v/vt100-putty b/squashfs-root/usr/share/terminfo/v/vt100-putty new file mode 100644 index 0000000..0119c4d Binary files /dev/null and b/squashfs-root/usr/share/terminfo/v/vt100-putty differ diff --git a/squashfs-root/usr/share/terminfo/v/vt102 b/squashfs-root/usr/share/terminfo/v/vt102 new file mode 100644 index 0000000..b9a393c Binary files /dev/null and b/squashfs-root/usr/share/terminfo/v/vt102 differ diff --git a/squashfs-root/usr/share/terminfo/v/vt200 b/squashfs-root/usr/share/terminfo/v/vt200 new file mode 100644 index 0000000..27fc321 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/v/vt200 differ diff --git a/squashfs-root/usr/share/terminfo/v/vt220 b/squashfs-root/usr/share/terminfo/v/vt220 new file mode 100644 index 0000000..27fc321 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/v/vt220 differ diff --git a/squashfs-root/usr/share/terminfo/x/xterm b/squashfs-root/usr/share/terminfo/x/xterm new file mode 100644 index 0000000..12ad5b3 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/x/xterm differ diff --git a/squashfs-root/usr/share/terminfo/x/xterm+256color b/squashfs-root/usr/share/terminfo/x/xterm+256color new file mode 100644 index 0000000..a058522 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/x/xterm+256color differ diff --git a/squashfs-root/usr/share/terminfo/x/xterm-256color b/squashfs-root/usr/share/terminfo/x/xterm-256color new file mode 100644 index 0000000..80f0a34 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/x/xterm-256color differ diff --git a/squashfs-root/usr/share/terminfo/x/xterm-color b/squashfs-root/usr/share/terminfo/x/xterm-color new file mode 100644 index 0000000..10bf2e1 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/x/xterm-color differ diff --git a/squashfs-root/usr/share/terminfo/x/xterm-xfree86 b/squashfs-root/usr/share/terminfo/x/xterm-xfree86 new file mode 100644 index 0000000..0b72f45 Binary files /dev/null and b/squashfs-root/usr/share/terminfo/x/xterm-xfree86 differ diff --git a/squashfs-root/usr/share/udhcpc/default.script b/squashfs-root/usr/share/udhcpc/default.script new file mode 100755 index 0000000..ad110d3 --- /dev/null +++ b/squashfs-root/usr/share/udhcpc/default.script @@ -0,0 +1,82 @@ +#!/bin/sh + +# udhcpc script edited by Tim Riker + +[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1 + +RESOLV_CONF="/etc/resolv.conf" +[ -e $RESOLV_CONF ] || touch $RESOLV_CONF +[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" +[ -n "$subnet" ] && NETMASK="netmask $subnet" + +case "$1" in + deconfig) + /sbin/ifconfig $interface up + /sbin/ifconfig $interface 0.0.0.0 + + # drop info from this interface + # resolv.conf may be a symlink to /tmp/, so take care + TMPFILE=$(mktemp) + grep -vE "# $interface\$" $RESOLV_CONF > $TMPFILE + cat $TMPFILE > $RESOLV_CONF + rm -f $TMPFILE + + if [ -x /usr/sbin/avahi-autoipd ]; then + /usr/sbin/avahi-autoipd -k $interface + fi + ;; + + leasefail|nak) + if [ -x /usr/sbin/avahi-autoipd ]; then + /usr/sbin/avahi-autoipd -wD $interface --no-chroot + fi + ;; + + renew|bound) + if [ -x /usr/sbin/avahi-autoipd ]; then + /usr/sbin/avahi-autoipd -k $interface + fi + /sbin/ifconfig $interface $ip $BROADCAST $NETMASK + + if [ -n "$router" ] ; then + echo "deleting routers" + while route del default gw 0.0.0.0 dev $interface 2> /dev/null; do + : + done + + for i in $router ; do + route add default gw $i dev $interface + done + fi + + # drop info from this interface + # resolv.conf may be a symlink to /tmp/, so take care + TMPFILE=$(mktemp) + grep -vE "# $interface\$" $RESOLV_CONF > $TMPFILE + cat $TMPFILE > $RESOLV_CONF + rm -f $TMPFILE + + # prefer rfc3359 domain search list (option 119) if available + if [ -n "$search" ]; then + search_list=$search + elif [ -n "$domain" ]; then + search_list=$domain + fi + + [ -n "$search_list" ] && + echo "search $search_list # $interface" >> $RESOLV_CONF + + for i in $dns ; do + echo adding dns $i + echo "nameserver $i # $interface" >> $RESOLV_CONF + done + ;; +esac + +HOOK_DIR="$0.d" +for hook in "${HOOK_DIR}/"*; do + [ -f "${hook}" -a -x "${hook}" ] || continue + "${hook}" "${@}" +done + +exit 0 diff --git a/squashfs-root/usr/share/xcb/bigreq.xml b/squashfs-root/usr/share/xcb/bigreq.xml new file mode 100644 index 0000000..3cca2f7 --- /dev/null +++ b/squashfs-root/usr/share/xcb/bigreq.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/composite.xml b/squashfs-root/usr/share/xcb/composite.xml new file mode 100644 index 0000000..86de146 --- /dev/null +++ b/squashfs-root/usr/share/xcb/composite.xml @@ -0,0 +1,98 @@ + + + + + + xproto + xfixes + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/damage.xml b/squashfs-root/usr/share/xcb/damage.xml new file mode 100644 index 0000000..c04721d --- /dev/null +++ b/squashfs-root/usr/share/xcb/damage.xml @@ -0,0 +1,87 @@ + + + + + xproto + xfixes + + + + + 0 + 1 + 2 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/dpms.xml b/squashfs-root/usr/share/xcb/dpms.xml new file mode 100644 index 0000000..5581284 --- /dev/null +++ b/squashfs-root/usr/share/xcb/dpms.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/dri2.xml b/squashfs-root/usr/share/xcb/dri2.xml new file mode 100644 index 0000000..3b4c12e --- /dev/null +++ b/squashfs-root/usr/share/xcb/dri2.xml @@ -0,0 +1,282 @@ + + + + + xproto + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + + + 0 + 1 + + + + 1 + 2 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + driver_name_length + + + + + + driver_name_length + 3 + + + 3 + + + driver_name_length + + + + device_name_length + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + count + + + + + + + + + + + + + + + + + + + + + + + + + + + + + count + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/dri3.xml b/squashfs-root/usr/share/xcb/dri3.xml new file mode 100644 index 0000000..608af31 --- /dev/null +++ b/squashfs-root/usr/share/xcb/dri3.xml @@ -0,0 +1,97 @@ + + + + + xproto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/ge.xml b/squashfs-root/usr/share/xcb/ge.xml new file mode 100644 index 0000000..3a6210d --- /dev/null +++ b/squashfs-root/usr/share/xcb/ge.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/glx.xml b/squashfs-root/usr/share/xcb/glx.xml new file mode 100644 index 0000000..2e50aea --- /dev/null +++ b/squashfs-root/usr/share/xcb/glx.xml @@ -0,0 +1,1639 @@ + + + + + + + + xproto + + + + + + + + + xproto:WINDOW + PBUFFER + glx:PIXMAP + glx:WINDOW + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 32791 + + + 32792 + + + + + + 32793 + + + 32794 + + + + + + + + + + + + + + + + data_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 16777215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + length + + + + + + + + + + + + + + + + + + + + + + + + 24 + + + + length + 4 + + + + + + + + + + + + + + + + + + + + + + + + + str_len + + + + + + + + + + str_len + + + + + + + + + + + + + + + length + + + + + + + + + + + + + num_attribs + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + num_attribs + 2 + + + + + + + + + + + + + + + + + + + + + + + + + num_attribs + 2 + + + + + + + + + + + + + + + + + num_attribs + 2 + + + + + + + + + + + num_attribs + 2 + + + + + + + + + + + + + num_attribs + 2 + + + + + + + + + + + + + + + + + + num_versions + 2 + + + + gl_str_len + + + glx_str_len + + + + + + + + + + + + + + num_attribs + 2 + + + + + + + + + + + + + num_versions + 3 + + + + gl_str_len + + + glx_str_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n + + + + + + 7168 + 7169 + 7170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + length + 2 + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + n + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n + + + + + + + + length + 4 + + + + + + + + + + n + + + + + + + + + + + length + + + + + + + + + + + + + + + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + n + + + + + + + + + + + length + + + + + + + + + + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + n + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/present.xml b/squashfs-root/usr/share/xcb/present.xml new file mode 100644 index 0000000..a648ad7 --- /dev/null +++ b/squashfs-root/usr/share/xcb/present.xml @@ -0,0 +1,209 @@ + + + + + xproto + randr + xfixes + sync + + + + + 0 + 1 + 2 + 3 + + + + 0 + 0 + 1 + 2 + 3 + + + + 0 + 0 + 1 + 2 + + + + 0 + 0 + 1 + 2 + + + + 0 + 1 + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/randr.xml b/squashfs-root/usr/share/xcb/randr.xml new file mode 100644 index 0000000..722f715 --- /dev/null +++ b/squashfs-root/usr/share/xcb/randr.xml @@ -0,0 +1,917 @@ + + + + + + xproto + render + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + nRates + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + 1 + 2 + 3 + + 4 + 5 + 6 + + + + + + + + + + + + + + + + + + + + + + + + nSizes + + + + nInfo + nSizes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_crtcs + + + num_outputs + + + num_modes + + + + names_len + + + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + num_crtcs + + + num_modes + + + num_clones + + + name_len + + + + + + + + + + + + num_atoms + + + + + + + + + + + + + + + length + + + + + + + + + + + + + + + + + + + + + + + + + num_units + format + + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_items + + format + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_outputs + + + num_possible_outputs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + size + + + size + + + size + + + + + + + + + + size + + + size + + + size + + + + + + + + + + + + + + + + + + num_crtcs + + + num_outputs + + + num_modes + + + + names_len + + + + + + + 0 + 1 + 2 + 3 + + + + + + + + + filter_len + + + + + + + + + + + + + + + + + + + + pending_len + + + + pending_nparams + + + current_len + + + + current_nparams + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_providers + + + + + + 0 + 1 + 2 + 3 + + + + + + + + + + + + + + + + num_crtcs + + + num_outputs + + + num_associated_providers + + + num_associated_providers + + + name_len + + + + + + + + + + + + + + + + + + + + + + + + + num_atoms + + + + + + + + + + + + + + + length + + + + + + + + + + + + + + + + + + + + + + + + num_items + + format + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_items + + format + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nOutput + + + + + + + + + + + + + + nMonitors + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/record.xml b/squashfs-root/usr/share/xcb/record.xml new file mode 100644 index 0000000..74c16fe --- /dev/null +++ b/squashfs-root/usr/share/xcb/record.xml @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + 1 + 2 + 3 + + + + + + + num_ranges + + + + + + + + + + + + + + + + + + + + + + + + + + + num_client_specs + + + num_ranges + + + + + + + + + + + num_client_specs + + + num_ranges + + + + + + + + num_client_specs + + + + + + + + + + + + + num_intercepted_clients + + + + + + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/render.xml b/squashfs-root/usr/share/xcb/render.xml new file mode 100644 index 0000000..935fdcc --- /dev/null +++ b/squashfs-root/usr/share/xcb/render.xml @@ -0,0 +1,693 @@ + + + + + + xproto + + + 0 + 1 + + + + 0 + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + + + 48 + 49 + 50 + 51 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 + 60 + 61 + 62 + + + + 0 + 1 + + + + 0 + 1 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + 0 + 1 + 2 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_visuals + + + + + + + + num_depths + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_formats + + + num_screens + + + num_subpixel + + + + + + + + + + + + + num_values + + + + + + + + + + + + + value_mask + + Repeat + + + + AlphaMap + + + + AlphaXOrigin + + + + AlphaYOrigin + + + + ClipXOrigin + + + + ClipYOrigin + + + + ClipMask + + + + GraphicsExposure + + + + SubwindowMode + + + + PolyEdge + + + + PolyMode + + + + Dither + + + + ComponentAlpha + + + + + + + + + + value_mask + + Repeat + + + + AlphaMap + + + + AlphaXOrigin + + + + AlphaYOrigin + + + + ClipXOrigin + + + + ClipYOrigin + + + + ClipMask + + + + GraphicsExposure + + + + SubwindowMode + + + + PolyEdge + + + + PolyMode + + + + Dither + + + + ComponentAlpha + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + glyphs_len + + + glyphs_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_aliases + + + num_filters + + + + + + + + + + filter_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_stops + + + num_stops + + + + + + + + + + + + num_stops + + + num_stops + + + + + + + + + + num_stops + + + num_stops + + + diff --git a/squashfs-root/usr/share/xcb/res.xml b/squashfs-root/usr/share/xcb/res.xml new file mode 100644 index 0000000..17e6f83 --- /dev/null +++ b/squashfs-root/usr/share/xcb/res.xml @@ -0,0 +1,156 @@ + + + + xproto + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + length + + + + + + + + + + + + + + + + + + + + num_cross_references + + + + + + + + + + + + + + + + + + + + + num_clients + + + + + + + + + + + + num_types + + + + + + + + + + + + + + + + + + num_specs + + + + + + + num_ids + + + + + + + + + num_specs + + + + + + + num_sizes + + + + diff --git a/squashfs-root/usr/share/xcb/screensaver.xml b/squashfs-root/usr/share/xcb/screensaver.xml new file mode 100644 index 0000000..8d5abb4 --- /dev/null +++ b/squashfs-root/usr/share/xcb/screensaver.xml @@ -0,0 +1,187 @@ + + + + + + + xproto + + + 0 + 1 + 2 + + + + 0 + 1 + + + + 0 + 1 + 2 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value_mask + + BackPixmap + + + + BackPixel + + + + BorderPixmap + + + + BorderPixel + + + + BitGravity + + + + WinGravity + + + + BackingStore + + + + BackingPlanes + + + + BackingPixel + + + + OverrideRedirect + + + + SaveUnder + + + + EventMask + + + + DontPropagate + + + + Colormap + + + + Cursor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/shape.xml b/squashfs-root/usr/share/xcb/shape.xml new file mode 100644 index 0000000..d75549e --- /dev/null +++ b/squashfs-root/usr/share/xcb/shape.xml @@ -0,0 +1,155 @@ + + + + + xproto + + + + + + + 0 + 1 + 2 + 3 + 4 + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rectangles_len + + + + diff --git a/squashfs-root/usr/share/xcb/shm.xml b/squashfs-root/usr/share/xcb/shm.xml new file mode 100644 index 0000000..c2605da --- /dev/null +++ b/squashfs-root/usr/share/xcb/shm.xml @@ -0,0 +1,135 @@ + + + + xproto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/sync.xml b/squashfs-root/usr/share/xcb/sync.xml new file mode 100644 index 0000000..33ce178 --- /dev/null +++ b/squashfs-root/usr/share/xcb/sync.xml @@ -0,0 +1,280 @@ + + + + xproto + + + + + 0 + 1 + 2 + + + + + + + + 0 + 1 + 2 + 3 + + + + 0 + 1 + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + name_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + counters_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value_mask + + Counter + + + + ValueType + + + + Value + + + + TestType + + + + Delta + + + + Events + + + + + + + + + + value_mask + + Counter + + + + ValueType + + + + Value + + + + TestType + + + + Delta + + + + Events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/xc_misc.xml b/squashfs-root/usr/share/xcb/xc_misc.xml new file mode 100644 index 0000000..139ca22 --- /dev/null +++ b/squashfs-root/usr/share/xcb/xc_misc.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ids_len + + + + diff --git a/squashfs-root/usr/share/xcb/xcb.xsd b/squashfs-root/usr/share/xcb/xcb.xsd new file mode 100644 index 0000000..c1dce3e --- /dev/null +++ b/squashfs-root/usr/share/xcb/xcb.xsd @@ -0,0 +1,390 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/xevie.xml b/squashfs-root/usr/share/xcb/xevie.xml new file mode 100644 index 0000000..bafa990 --- /dev/null +++ b/squashfs-root/usr/share/xcb/xevie.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/xf86dri.xml b/squashfs-root/usr/share/xcb/xf86dri.xml new file mode 100644 index 0000000..5bfc572 --- /dev/null +++ b/squashfs-root/usr/share/xcb/xf86dri.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bus_id_len + + + + + + + + + + + + + + + + + + + client_driver_name_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_clip_rects + + + num_back_clip_rects + + + + + + + + + + + + + + + + device_private_size + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/xf86vidmode.xml b/squashfs-root/usr/share/xcb/xf86vidmode.xml new file mode 100644 index 0000000..a165c11 --- /dev/null +++ b/squashfs-root/usr/share/xcb/xf86vidmode.xml @@ -0,0 +1,478 @@ + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + + 0 + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + privsize + + + + + + + + + + + + + + + + + + + + + privsize + + + + + + + + + + + + + + + + + + + + num_hsync + + + num_vsync + + + vendor_length + + + + + + vendor_length + 3 + + + 3 + + + vendor_length + + + + model_length + + + + + + + + + + + + + + + + + + modecount + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + privsize + + + + + + + + + + + + + + + + + + + + + privsize + + + + + + + + + + + + + + + + + + + + + privsize + + + + + + + + + + + + + + + + + + + + + + + + + + privsize + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + flags + 1 + + + clocks + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + size + 1 + + + 1 + + + + + + + size + 1 + + + 1 + + + + + + + size + 1 + + + 1 + + + + + + + + + + + + + size + 1 + + + 1 + + + + + + + size + 1 + + + 1 + + + + + + + size + 1 + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/xfixes.xml b/squashfs-root/usr/share/xcb/xfixes.xml new file mode 100644 index 0000000..0a3d5ff --- /dev/null +++ b/squashfs-root/usr/share/xcb/xfixes.xml @@ -0,0 +1,362 @@ + + + + + xproto + render + shape + + + + + + + + + + + + + + + 0 + 1 + + + + 0 + 1 + + + + 0 + 1 + + + + + + + + + + + + 0 + 1 + 2 + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + 0 + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + width + height + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + length + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nbytes + + + + + + + + + + nbytes + + + + + + + + + + + + + + + + + + + width + height + + + nbytes + + + + + + + + + + + + + nbytes + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + + + + + + + + + + + + + num_devices + + + + + + diff --git a/squashfs-root/usr/share/xcb/xinerama.xml b/squashfs-root/usr/share/xcb/xinerama.xml new file mode 100644 index 0000000..b2747ee --- /dev/null +++ b/squashfs-root/usr/share/xcb/xinerama.xml @@ -0,0 +1,99 @@ + + + + + + + + xproto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + number + + + + + diff --git a/squashfs-root/usr/share/xcb/xinput.xml b/squashfs-root/usr/share/xcb/xinput.xml new file mode 100644 index 0000000..94855ba --- /dev/null +++ b/squashfs-root/usr/share/xcb/xinput.xml @@ -0,0 +1,2652 @@ + + + + + + + + + + xfixes + xproto + + + + + + + + + + + + + + + + + + + + + + + + + name_len + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + axes_len + + + + + + + + class_id + + + Key + + + + + + + Button + + + + Valuator + + + + + + axes_len + + + + + + + + + len + + + + + + + + + + devices_len + + + + num_class_info + + + + devices_len + + + + + + + + + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + num_this_classes + + + num_all_classes + + + + + + + + 0 + 1 + + + + + + + + + num_classes + + + + + + + + + + + + + num_classes + + + + + + + + + + num_axes + + + + + + + + + + + + + + + + num_events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + + + + + + + 255 + + + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + + + + 32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_keysyms + + + + + + + + + + + + + + + + + + + + + + + + + + + class_id + + Keyboard + + + + + + + + + + 32 + + + + Pointer + + + + + + + String + + + + num_keysyms + + + + Integer + + + + + + Led + + + + + Bell + + + + + + + + + + + + + + + + + num_feedbacks + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_keysyms + + + + + + + + + + + + + + + + + + + + + + + + + + + class_id + + Keyboard + + + + + + + + + + + Pointer + + + + + + + String + + + + num_keysyms + + + + Integer + + + + Led + + + + + Bell + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 0 + 0 + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + length + + + + + + + + + + + + + + keycode_count + keysyms_per_keycode + + + + + + + + + + + + + + + + keycodes_per_modifier + 8 + + + + + + + + + + + + + + keycodes_per_modifier + 8 + + + + + + + + + + + + + + + + + + + + map_size + + + + + + + + + + + + + map_size + + + + + + + + + + + + + + + + + 32 + + + + + + + + + + 32 + + + + + 0 + 1 + + + + + + + + + num_valuators + + + + + + + + class_id + + + Key + + + + + 32 + + + + Button + + + + 32 + + + + Valuator + + + + + num_valuators + + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + + + num_events + 32 + + + + num_classes + + + + + + + + + + + + + + + + + + + + + num_valuators + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + + + + + + + + num_valuators + + + num_valuators + + + num_valuators + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + control_id + + resolution + + + num_valuators + + + num_valuators + + + num_valuators + + + + abs_calib + + + + + + + + + + + core + + + + + + enable + + + + + abs_area + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_valuators + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + control_id + + resolution + + + + + num_valuators + + + + abs_calib + + + + + + + + + + + core + + + + + enable + + + + + abs_area + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_atoms + + + + + + + + 8 + 16 + 32 + + + + + + + + + + + + format + + 8Bits + + num_items + + + + + 16Bits + + num_items + + + + + 32Bits + + num_items + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + format + + 8Bits + + num_items + + + + + 16Bits + + num_items + + + + + 32Bits + + num_items + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + buttons_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + + + + 1 + 2 + + + + + + + + + + name_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + type + + AddMaster + + + + + name_len + + + + + RemoveMaster + + + + + + + + AttachSlave + + + + + DetachSlave + + + + + + + + + + + num_changes + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + 13 + 14 + 15 + 16 + 17 + + 18 + 19 + 20 + 21 + 22 + 23 + 24 + + 25 + 26 + + + + + + + mask_len + + + + + + + + + num_mask + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 8 + + + + 1 + 2 + 3 + 4 + 5 + + + + 0 + 1 + + + + 1 + 2 + + + + 1 + 2 + + + + + + + + + + + num_buttons + 31 + + 32 + + + + num_buttons + + + + + + + + + + num_keys + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + type + + + Key + + + + num_keys + + + + Button + + + + + + num_buttons + 31 + + 32 + + + + num_buttons + + + + Valuator + + + + + + + + + + + + Scroll + + + + + + + + + Touch + + + + + + + + + + + + + + + + name_len + + + + num_classes + + + + + + + + + + + + num_infos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + mask_len + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + 0 + 1 + 2 + 3 + 4 + + + + 31 + + + + + + + + + + + + + + + + + + + + + + + + mask_len + + + num_modifiers + + + + + + + num_modifiers + + + + + + + + + + + + + + + num_modifiers + + + + + + + + + + + + + + num_properties + + + + + + + + + + + + + + + format + + 8Bits + + num_items + + + + + 16Bits + + num_items + + + + + 32Bits + + num_items + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + format + + 8Bits + + num_items + + + + + 16Bits + + num_items + + + + + 32Bits + + num_items + + + + + + + + + + + + + + + + num_masks + + + + + + + + + + + + + + + + + + + num_barriers + + + + + + + + + + + + + 6 + + + + + + 7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7 + + + 6 + + + 2 + 1 + 0 + + + + + + + + + + + 4 + + + 4 + + + 3 + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + 28 + + + + + + + 28 + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + + + + + + + + + + + + + num_classes + + + + + 16 + + + + + + + + + + + + + + + + + + + + + + + + buttons_len + + + valuators_len + + + + + + + + + + + + + + 16 + + + + + + + + + + + + + + + + + + + + + + + + buttons_len + + + valuators_len + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + + + + + + + + + + + + + + + + + + + + + buttons_len + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + + + + + + + + + + + + + + + + + + num_infos + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + valuators_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + valuators_len + + + + + + + + + + + + + + + + + + + + + + + + 16 + 17 + + + + + + + + + + + + + + + + + + + + + + + + buttons_len + + + valuators_len + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + valuators_len + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/xkb.xml b/squashfs-root/usr/share/xcb/xkb.xml new file mode 100644 index 0000000..8778c07 --- /dev/null +++ b/squashfs-root/usr/share/xcb/xkb.xml @@ -0,0 +1,2589 @@ + + + + + xproto + + + + 255 + + 32 + + + 4 + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + + + + 0 + 1 + 2 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + 0 + 1 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + + + 27 + 28 + 29 + 30 + 31 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + + + + + + 0 + 4 + + + + 0 + 4 + 768 + 1280 + + + + + 0 + 5 + + + + 0 + 5 + 768 + + + + + 256 + 512 + 768 + 1024 + 1280 + 1536 + 65280 + + + + + 0 + 1 + 2 + 3 + + + + 254 + 255 + + + + 0 + 1 + 2 + 3 + + + + 7 + + + + 0 + 6 + 7 + + + + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 + + + + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 + + + + 15 + 14 + 13 + 12 + 11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 + + + + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 + + + + 0 + 1 + 2 + 3 + 4 + + + + 7 + 127 + + + + 7 + 6 + 5 + + + + 4 + 3 + 2 + 1 + 0 + + + + 4 + 3 + 2 + 1 + 0 + + + + + + + + + + + + + + + 0 + 1 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + 0 + 1 + 2 + 3 + 4 + + + + 0 + 1 + 2 + 3 + 4 + + + + + + + + + + + 4 + + + + + + 4 + + + 4 + + + + + + + length + + + + + + length + 5 + + + 3 + + + + length + 2 + + + + + + + + + + + + + + + + + + + + + + + + nMapEntries + + + + hasPreserve + nMapEntries + + + + + + + 4 + + + + + + nSyms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 129 + 130 + 131 + 132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nMapEntries + + + + preserve + nMapEntries + + + + + + + + + + + + + + + nPoints + + + + + + + + + + + nOutlines + + + + + + 4 + + + + + + + + + 4 + + + 4 + + + + + + + + + nKeys + + + + + + + + + nRows + + + + + + + + + + + nKeys + + + + + 1 + 2 + 3 + 4 + 5 + + + + + + + + + length + + + + + + + + + + + + + + namesPresent + + + + + mapsPresent + + + + + + + + 255 + 254 + 253 + + + + + + + + + + + + + 0 + 1 + 2 + 2 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + 0 + + + + + + + + + + + + 0 + 1 + 2 + 2 + 3 + + + + 3 + 4 + 5 + 6 + + + + + + + + + + + + + + + + + + + + 0 + 2 + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + + + 6 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + + + + + 7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + affectWhich + + clear + selectAll + + + + NewKeyboardNotify + + + + + StateNotify + + + + + ControlsNotify + + + + + IndicatorStateNotify + + + + + IndicatorMapNotify + + + + + NamesNotify + + + + + CompatMapNotify + + + + + BellNotify + + + + + ActionMessage + + + + + AccessXNotify + + + + + ExtensionDeviceNotify + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + present + + KeyTypes + + nTypes + + + + KeySyms + + nKeySyms + + + + KeyActions + + nKeyActions + + + + totalActions + + + + KeyBehaviors + + totalKeyBehaviors + + + + VirtualMods + + virtualMods + + + + + ExplicitComponents + + totalKeyExplicit + + + + + ModifierMap + + totalModMapKeys + + + + + VirtualModMap + + totalVModMapKeys + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + present + + KeyTypes + + nTypes + + + + KeySyms + + nKeySyms + + + + KeyActions + + nKeyActions + + + + totalActions + + + + KeyBehaviors + + totalKeyBehaviors + + + + VirtualMods + + virtualMods + + + + + ExplicitComponents + + totalKeyExplicit + + + + ModifierMap + + totalModMapKeys + + + + VirtualModMap + + totalVModMapKeys + + + + + + + + + + + + + + + + + + + + + nSIRtrn + + + + groupsRtrn + + + + + + + + + + + + + + + + nSI + + + + groups + + + + + + + + + + + + + + + + + + + + + + + + + + which + + + + + + + + + + + which + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + which + + Keycodes + + + + Geometry + + + + Symbols + + + + PhysSymbols + + + + Types + + + + Compat + + + + KeyTypeNames + + nTypes + + + + KTLevelNames + + + nTypes + + + + + + + + IndicatorNames + + + indicators + + + + + VirtualModNames + + + virtualMods + + + + + GroupNames + + + groupNames + + + + + KeyNames + + nKeys + + + + KeyAliases + + nKeyAliases + + + + RGNames + + nRadioGroups + + + + + + + + + + + + + + + + + + + + + + + + which + + Keycodes + + + + Geometry + + + + Symbols + + + + PhysSymbols + + + + Types + + + + Compat + + + + KeyTypeNames + + nTypes + + + + KTLevelNames + + nTypes + + + + + + + + IndicatorNames + + + indicators + + + + + VirtualModNames + + + virtualMods + + + + + GroupNames + + + groupNames + + + + + KeyNames + + nKeys + + + + KeyAliases + + nKeyAliases + + + + RGNames + + nRadioGroups + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nKeymaps + + + nKeycodes + + + nTypes + + + nCompatMaps + + + nSymbols + + + nGeometries + + + + + + + + + + + + + + + + + + + + + + reported + + Types + ClientSymbols + ServerSymbols + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + present + + KeyTypes + + nTypes + + + + KeySyms + + nKeySyms + + + + KeyActions + + nKeyActions + + + + totalActions + + + + KeyBehaviors + + totalKeyBehaviors + + + + VirtualMods + + virtualMods + + + + + ExplicitComponents + + totalKeyExplicit + + + + + ModifierMap + + totalModMapKeys + + + + + VirtualModMap + + totalVModMapKeys + + + + + + CompatMap + + + + + + + + + + + + + + nSIRtrn + + + + groupsRtrn + + + + + IndicatorMaps + + + + + + + + + + + + nIndicators + + + + KeyNames + OtherNames + + + + + + + + + + + + + + + + + + + + + which + + Keycodes + + + + Geometry + + + + Symbols + + + + PhysSymbols + + + + Types + + + + Compat + + + + KeyTypeNames + + nTypes + + + + KTLevelNames + + nTypes + + + + + + + + IndicatorNames + + + indicators + + + + + VirtualModNames + + + virtualMods + + + + + GroupNames + + + groupNames + + + + + KeyNames + + nKeys + + + + KeyAliases + + nKeyAliases + + + + RGNames + + nRadioGroups + + + + + + Geometry + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nameLen + + + + nBtnsRtrn + + + nDeviceLedFBs + + + + + + + + + + + + + nBtns + + + nDeviceLedFBs + + + + + + + + + + + + msgLength + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/xprint.xml b/squashfs-root/usr/share/xcb/xprint.xml new file mode 100644 index 0000000..f9af65f --- /dev/null +++ b/squashfs-root/usr/share/xcb/xprint.xml @@ -0,0 +1,329 @@ + + + + + + + + xproto + + + + + + + + nameLen + + + + + descLen + + + + + + + + + + 0 + 1 + + + + + 0 + 0 + 1 + + + + + 1 + 2 + 3 + 4 + 5 + 6 + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + + + + + + + + + + + + + + printerNameLen + + + + localeLen + + + + + + + listCount + + + + + + + + + + + + printerNameLen + + + + localeLen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + len_data + + + + len_fmt + + + + len_options + + + + + + + + + + + + + + dataLen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + stringLen + + + + + + + + + + + nameLen + + + + + + + valueLen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + listCount + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/xproto.xml b/squashfs-root/usr/share/xcb/xproto.xml new file mode 100644 index 0000000..437dc30 --- /dev/null +++ b/squashfs-root/usr/share/xcb/xproto.xml @@ -0,0 +1,5618 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + WINDOW + PIXMAP + + + + FONT + GCONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + + + + + + + + visuals_len + + + + + 0 + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + allowed_depths_len + + + + + + + + + + + + + authorization_protocol_name_len + + + authorization_protocol_data_len + + + + + + + + + + + reason_len + + + + + + + + + + length + 4 + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + vendor_len + + + + pixmap_formats_len + + + roots_len + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 15 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + + 0 + + + + + + + + + + + + + + + + + a key was pressed/released + + + + + + + + + + + + + + + + + + 8 + 9 + 10 + 11 + 12 + 15 + + + + + + + + + + + + + + + + + a mouse button was pressed/released + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + a key was pressed + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + 0 + 1 + 2 + 3 + + + + + + + + + + + + + + + + + the pointer is in a different window + + + + + + + + + + + + + + + + + + + + NOT YET DOCUMENTED + + + + + + + + + + + 31 + + + + + + + + + + + + + NOT YET DOCUMENTED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + a window is destroyed + + + + + + + + + + + + + + a window is unmapped + + + + + + + + + + + + + + + a window was mapped + + + + + + + + + + + + + window wants to be mapped + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOT YET DOCUMENTED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + NOT YET DOCUMENTED + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + a window property changed + + + + + + + + + + + + + + + + + + 0 + + + + 0 + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50 + 51 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 + 60 + 61 + 62 + 63 + 64 + 65 + 66 + 67 + 68 + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + 0 + + + + + + + + + + + the colormap for some window changed + + + + + + + + + + + + 20 + 10 + 5 + + + + + + + + + NOT YET DOCUMENTED + + + + + + + + + + 0 + 1 + 2 + + + + + + + + + + keyboard mapping changed + + + + + + + + + + + generic event (with length) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + 0 + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + + + + + + + + + + + + + + + value_mask + + BackPixmap + + + + BackPixel + + + + BorderPixmap + + + + BorderPixel + + + + BitGravity + + + + WinGravity + + + + BackingStore + + + + BackingPlanes + + + + BackingPixel + + + + OverrideRedirect + + + + SaveUnder + + + + EventMask + + + + DontPropagate + + + + Colormap + + + + Cursor + + + + + + Creates a window + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value_mask + + BackPixmap + + + + BackPixel + + + + BorderPixmap + + + + BorderPixel + + + + BitGravity + + + + WinGravity + + + + BackingStore + + + + BackingPlanes + + + + BackingPixel + + + + OverrideRedirect + + + + SaveUnder + + + + EventMask + + + + DontPropagate + + + + Colormap + + + + Cursor + + + + + + change window attributes + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets window attributes + + + + + + + + + + + + + Destroys a window + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + Changes a client's save set + + + + + + + + + + + + + + + + + + Reparents a window + + + + + + + + + + + + + + + + + + Makes a window visible + + + + + + + + + + + + + + + + + + + Makes a window invisible + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + + + + 0 + 1 + 2 + 3 + 4 + + + + + + + + + value_mask + + X + + + + Y + + + + Width + + + + Height + + + + BorderWidth + + + + Sibling + + + + StackMode + + + + + + Configures window attributes + + + + + + + + + + + + + + + 0 + 1 + + + + + + + Change window stacking order + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Get current window geometry + + x, reply->y); + } + free(reply); +} + ]]> + + + + + + + + + + + + + + + + + + children_len + + + + + + + + + query the window tree + + root); + printf("parent = 0x%08x\\n", reply->parent); + + xcb_window_t *children = xcb_query_tree_children(reply); + for (int i = 0; i < xcb_query_tree_children_length(reply); i++) + printf("child window = 0x%08x\\n", children[i]); + + free(reply); + } +} + ]]> + + + + + + + + + + + name_len + + + + + + + Get atom identifier by name + + atom); + free(reply); + } +} + ]]> + + + + + + + + + + + + + + + + + + + + name_len + + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + data_len + format + + 8 + + + + Changes a window property + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + value_len + + format + 8 + + + + + + + + + + + + Gets a window property + + + + + + + + + + + + + + + + + + + + + + + + + atoms_len + + + + + + + + + + + Sets the owner of a selection + + + + + + + + + + + + + + + + + + + + + + Gets the owner of a selection + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + 32 + + send an event + + event = window; + event->window = window; + event->response_type = XCB_CONFIGURE_NOTIFY; + + event->x = 0; + event->y = 0; + event->width = 800; + event->height = 600; + + event->border_width = 0; + event->above_sibling = XCB_NONE; + event->override_redirect = false; + + xcb_send_event(conn, false, window, XCB_EVENT_MASK_STRUCTURE_NOTIFY, + (char*)event); + xcb_flush(conn); + free(event); +} + ]]> + + + + + + + + + + + + 0 + 1 + + + + + + + + 0 + 1 + 2 + 3 + 4 + + + + 0 + + + + + + + + + + + + + + + + Grab the pointer + + root, /* grab the root window */ + XCB_NONE, /* which events to let through */ + XCB_GRAB_MODE_ASYNC, /* pointer events should continue as normal */ + XCB_GRAB_MODE_ASYNC, /* keyboard mode */ + XCB_NONE, /* confine_to = in which window should the cursor stay */ + cursor, /* we change the cursor to whatever the user wanted */ + XCB_CURRENT_TIME + ); + + if ((reply = xcb_grab_pointer_reply(conn, cookie, NULL))) { + if (reply->status == XCB_GRAB_STATUS_SUCCESS) + printf("successfully grabbed the pointer\\n"); + free(preply); + } +} + ]]> + + + + + + + + + + + + + + + + + + + + + release the pointer + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + + + + + + + + + + + Grab pointer button(s) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Grab the keyboard + + root, /* grab the root window */ + XCB_CURRENT_TIME, + XCB_GRAB_MODE_ASYNC, /* process events as normal, do not require sync */ + XCB_GRAB_MODE_ASYNC + ); + + if ((reply = xcb_grab_keyboard_reply(conn, cookie, NULL))) { + if (reply->status == XCB_GRAB_STATUS_SUCCESS) + printf("successfully grabbed the keyboard\\n"); + + free(reply); + } +} + ]]> + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + Grab keyboard key(s) + + + + + + + + + + + + + + + + + + + + + + + release a key combination + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + + + + + + + + + + + + + + release queued events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + get pointer coordinates + + + + + + + + + + + + + + + + + + + + + + + events_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + move mouse pointer + + + + + + + + + + + 0 + 1 + 2 + 3 + + + + + + + + + + + + + + Sets input focus + + + + + + + + + + + + + + + + + + + + + + + + 32 + + + + + + + + + + name_len + + + opens a font + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + properties_len + + + char_infos_len + + + + + + + + + + + + + + + + + query font metrics + + + + + + + + + string_len1 + + + + + + + + + + + + + + + get text extents + + + + + + + + + + + + + name_len + + + + + + + + + pattern_len + + + + + + + names_len + + + + + + + get matching font names + + + + + + + + + + + + + pattern_len + + + + + + + + + + + + + + + + + + + + properties_len + + + name_len + + + + + + + + + + + + + + + + + + + get matching font names and information + + + + + + + + + + + + + + font_qty + + + + + + + + + + path_len + + + + + + + + + + + + Creates a pixmap + + + + + + + + + + + + + + + + + + Destroys a pixmap + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + + + + 0 + 1 + 2 + + + + 0 + 1 + 2 + 3 + + + + 0 + 1 + 2 + + + + 0 + 1 + 2 + 3 + + + + 0 + 1 + + + + 0 + 1 + + + + 0 + 1 + + + + + + + + + value_mask + + Function + + + + PlaneMask + + + + Foreground + + + + Background + + + + LineWidth + + + + LineStyle + + + + CapStyle + + + + JoinStyle + + + + FillStyle + + + + FillRule + + + + Tile + + + + Stipple + + + + TileStippleOriginX + + + + TileStippleOriginY + + + + Font + + + + SubwindowMode + + + + GraphicsExposures + + + + ClipOriginX + + + + ClipOriginY + + + + ClipMask + + + + DashOffset + + + + DashList + + + + ArcMode + + + + + Creates a graphics context + + + + + + + + + + + + + + + + + + + value_mask + + Function + + + + PlaneMask + + + + Foreground + + + + Background + + + + LineWidth + + + + LineStyle + + + + CapStyle + + + + JoinStyle + + + + FillStyle + + + + FillRule + + + + Tile + + + + Stipple + + + + TileStippleOriginX + + + + TileStippleOriginY + + + + Font + + + + SubwindowMode + + + + GraphicsExposures + + + + ClipOriginX + + + + ClipOriginY + + + + ClipMask + + + + DashOffset + + + + DashList + + + + ArcMode + + + + + change graphics context components + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dashes_len + + + + + 0 + 1 + 2 + 3 + + + + + + + + + + + + + + + Destroys a graphics context + + + + + + + + + + + + + + + + + + + + + + + + + + + + copy areas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + draw lines + + + + + + + + + + + + + + + + + + + + + + + + + + + + + draw lines + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + Fills rectangles + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + string_len + + + Draws text + + + + + + + + + + + + + + + + + + + + + + string_len + + + Draws text + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cmaps_len + + + + + + + + + + + + + + + + + + + + + Allocate a color + + + + + + + + + + + + + + + + name_len + + + + + + + + + + + + + + + + + + + + + + + + + pixels_len + + + masks_len + + + + + + + + + + + + + + + + + + + + + pixels_len + + + + + + + + + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + name_len + + + + + + + + + + + + + + + + + + + + colors_len + + + + + + + + + + + name_len + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + create cursor + + + + + + + + + + + + + + + + + + + + + + + + Deletes a cursor + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + name_len + + + + + + + + + + + + + + + + check if extension is present + + + + + + + + + + + + + + names_len + + + + + + + + + + + + keycode_count + keysyms_per_keycode + + + + + + + + + + + + + length + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + 0 + 1 + + + + 0 + 1 + 2 + + + + + + + value_mask + + KeyClickPercent + + + + BellPercent + + + + BellPitch + + + + BellDuration + + + + Led + + + + LedMode + + + + Key + + + + AutoRepeatMode + + + + + + + + + + + + + + + + 32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + 0 + 1 + 2 + 5 + 6 + + + + + + + + + address_len + + + + + + + + + address_len + + + + + + + + + + + hosts_len + + + + + + 0 + 1 + + + + + + + + 0 + 1 + 2 + + + + + + + + 0 + + + + + + + kills a client + + + + + + + + + + + + + + + atoms_len + + + + + 0 + 1 + + + + + + + + + 0 + 1 + 2 + + + + + + map_len + + + + + + + + + + + + map_len + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + + + + keycodes_per_modifier + 8 + + + + + + + + + + + + + + keycodes_per_modifier + 8 + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/xselinux.xml b/squashfs-root/usr/share/xcb/xselinux.xml new file mode 100644 index 0000000..a97a146 --- /dev/null +++ b/squashfs-root/usr/share/xcb/xselinux.xml @@ -0,0 +1,278 @@ + + + + xproto + + + + + + + + + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + + context_len + + + + + + + + + + + context_len + + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + + + + + context_len + + + + + + + + + + object_context_len + + + + data_context_len + + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + + + + + + context_len + + + + + + + + + + + + + context_len + + + + + + + + + + + + properties_len + + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + + + + + context_len + + + + + + + + + + + + context_len + + + + + + + + + + + selections_len + + + + + + + + + + + + context_len + + + + + diff --git a/squashfs-root/usr/share/xcb/xtest.xml b/squashfs-root/usr/share/xcb/xtest.xml new file mode 100644 index 0000000..085d3a3 --- /dev/null +++ b/squashfs-root/usr/share/xcb/xtest.xml @@ -0,0 +1,105 @@ + + + + + + xproto + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/xv.xml b/squashfs-root/usr/share/xcb/xv.xml new file mode 100644 index 0000000..6db133f --- /dev/null +++ b/squashfs-root/usr/share/xcb/xv.xml @@ -0,0 +1,445 @@ + + + + + xproto + shm + + + + + + + + 0 + 1 + 2 + 3 + 4 + + + + 0 + 1 + + + + 0 + 1 + + + + 0 + 1 + + + + 0 + 1 + 2 + 3 + 4 + + + + 0 + 1 + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + + + + + + + + + + name_size + + + + num_formats + + + + + + + + + + + + + name_size + + + + + + + + + + + + num_planes + + + num_planes + + + data_size + + + + + + + + + + + size + + + + + + + + + + + 16 + + + + + + + + + + + + + + + + + + + + + + 32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_adaptors + + + + + + + + + + + + num_encodings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_attributes + + + + + + + + + + + + num_formats + + + + + + + + + + + + + + + + + + num_planes + + + num_planes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xcb/xvmc.xml b/squashfs-root/usr/share/xcb/xvmc.xml new file mode 100644 index 0000000..ac80003 --- /dev/null +++ b/squashfs-root/usr/share/xcb/xvmc.xml @@ -0,0 +1,146 @@ + + + + + xv + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num + + + + + + + + + + + + + + + + + + + length + + + + + + + + + + + + + + + + length + + + + + + + + + + + + + + + + + + + + + + 4 + + + + length + + + + + + + + + + + + + + + + + num + + + + + diff --git a/squashfs-root/usr/share/xml/dbus-1/busconfig.dtd b/squashfs-root/usr/share/xml/dbus-1/busconfig.dtd new file mode 100644 index 0000000..8c5ac33 --- /dev/null +++ b/squashfs-root/usr/share/xml/dbus-1/busconfig.dtd @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xml/dbus-1/introspect.dtd b/squashfs-root/usr/share/xml/dbus-1/introspect.dtd new file mode 100644 index 0000000..4d396f9 --- /dev/null +++ b/squashfs-root/usr/share/xml/dbus-1/introspect.dtd @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/usr/share/xml/fontconfig/fonts.dtd b/squashfs-root/usr/share/xml/fontconfig/fonts.dtd new file mode 100644 index 0000000..479f2c0 --- /dev/null +++ b/squashfs-root/usr/share/xml/fontconfig/fonts.dtd @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squashfs-root/var/cache b/squashfs-root/var/cache new file mode 120000 index 0000000..1431b0e --- /dev/null +++ b/squashfs-root/var/cache @@ -0,0 +1 @@ +../tmp \ No newline at end of file diff --git a/squashfs-root/var/lib/dbus b/squashfs-root/var/lib/dbus new file mode 120000 index 0000000..5917d59 --- /dev/null +++ b/squashfs-root/var/lib/dbus @@ -0,0 +1 @@ +/tmp/dbus \ No newline at end of file diff --git a/squashfs-root/var/lib/misc b/squashfs-root/var/lib/misc new file mode 120000 index 0000000..f1fde8c --- /dev/null +++ b/squashfs-root/var/lib/misc @@ -0,0 +1 @@ +../../tmp \ No newline at end of file diff --git a/squashfs-root/var/lock b/squashfs-root/var/lock new file mode 120000 index 0000000..1431b0e --- /dev/null +++ b/squashfs-root/var/lock @@ -0,0 +1 @@ +../tmp \ No newline at end of file diff --git a/squashfs-root/var/log b/squashfs-root/var/log new file mode 120000 index 0000000..1431b0e --- /dev/null +++ b/squashfs-root/var/log @@ -0,0 +1 @@ +../tmp \ No newline at end of file diff --git a/squashfs-root/var/run b/squashfs-root/var/run new file mode 120000 index 0000000..84ba55b --- /dev/null +++ b/squashfs-root/var/run @@ -0,0 +1 @@ +../run \ No newline at end of file diff --git a/squashfs-root/var/spool b/squashfs-root/var/spool new file mode 120000 index 0000000..1431b0e --- /dev/null +++ b/squashfs-root/var/spool @@ -0,0 +1 @@ +../tmp \ No newline at end of file diff --git a/squashfs-root/var/tmp b/squashfs-root/var/tmp new file mode 120000 index 0000000..1431b0e --- /dev/null +++ b/squashfs-root/var/tmp @@ -0,0 +1 @@ +../tmp \ No newline at end of file