diff --git a/project/jni/application/hid-pc-keyboard/src b/project/jni/application/hid-pc-keyboard/src index 7728c49e2..6d7ed5237 160000 --- a/project/jni/application/hid-pc-keyboard/src +++ b/project/jni/application/hid-pc-keyboard/src @@ -1 +1 @@ -Subproject commit 7728c49e2510a4ee0313aaedf2cf2bdf04bea5fa +Subproject commit 6d7ed5237ec4535d0267ea2514c68056b410775b diff --git a/project/jni/application/xserver-debian/AndroidAppSettings.cfg b/project/jni/application/xserver-debian/AndroidAppSettings.cfg index 33f517229..31747f555 100644 --- a/project/jni/application/xserver-debian/AndroidAppSettings.cfg +++ b/project/jni/application/xserver-debian/AndroidAppSettings.cfg @@ -7,10 +7,10 @@ AppName="Debian" AppFullName=com.cuntubuntu # Application version code (integer) -AppVersionCode=141129 +AppVersionCode=141131 # Application user-visible version name (string) -AppVersionName="14.11.29" +AppVersionName="14.11.31" # Specify path to download application data in zip archive in the form 'Description|URL|MirrorURL^Description2|URL2|MirrorURL2^...' # If you'll start Description with '!' symbol it will be enabled by default, other downloads should be selected by user from startup config menu diff --git a/project/jni/application/xserver-debian/readme.txt b/project/jni/application/xserver-debian/readme.txt index 7bf52d95d..c13115aae 100644 --- a/project/jni/application/xserver-debian/readme.txt +++ b/project/jni/application/xserver-debian/readme.txt @@ -16,7 +16,8 @@ x11proto-xext-dev x11proto-xf86bigfont-dev \ x11proto-xf86dga-dev x11proto-xf86dri-dev \ x11proto-xf86vidmode-dev x11proto-xinerama-dev \ libxmuu-dev libxt-dev libsm-dev libice-dev libudev-dev \ -libxrender-dev libxrandr-dev curl autoconf automake libtool +libxrender-dev libxrandr-dev curl autoconf automake libtool \ +pkg-config libjpeg-dev libpng-dev You will need both xcb-proto and python-xcbgen packages to have version 1.10-1, you may download newer packages @@ -46,3 +47,67 @@ This will create Debian system image. Upload resulting system image somewhere, and change download URL inside AndroidAppSettings.cfg, then recompile .apk file. + +New releases of Debian contain statically linked xkbcomp, xli and xhost executables +for XSDL, because NDK r10c toolchain for some reason builds xkbcomp, which crashes +on Toshiba AT-330 with Android 4.0.3. To create these executables, you will need +to create Debian x86 and armhf chroot installations, like this: + +sudo apt-get install qemu-user-static + +sudo qemu-debootstrap --arch=i386 --verbose \ + --components=main,universe,restricted,multiverse \ + --include=fakeroot,libc-bin,locales-all,build-essential,sudo \ + wheezy wheezy-x86 http://ftp.ua.debian.org/debian/ + +sudo qemu-debootstrap --arch=armhf --verbose \ + --components=main,universe,restricted,multiverse \ + --include=fakeroot,libc-bin,locales-all,build-essential,sudo \ + wheezy wheezy-armhf http://ftp.ua.debian.org/debian/ + +sudo qemu-debootstrap --arch=mipsel --verbose \ + --components=main,universe,restricted,multiverse \ + --include=fakeroot,libc-bin,locales-all,build-essential,sudo \ + wheezy wheezy-mipsel http://ftp.ua.debian.org/debian/ + +Put this into /etc/apt/sources.list in each chroot, then do sudo apt-get update: + +deb http://http.debian.net/debian/ wheezy contrib main non-free +deb-src http://http.debian.net/debian/ wheezy main contrib + +deb http://security.debian.org/ wheezy/updates contrib main non-free +deb-src http://security.debian.org/ wheezy/updates main contrib + +deb http://http.debian.net/debian/ wheezy-updates contrib main non-free +deb-src http://http.debian.net/debian/ wheezy-updates main contrib + +deb http://http.debian.net/debian/ wheezy-backports contrib main non-free +deb-src http://http.debian.net/debian/ wheezy-backports contrib main + +Go to each of these chroots using chroot or schroot command, install all packages +mentioned in the previous section, then download and compile static executables: + +wget http://cgit.freedesktop.org/xorg/app/xhost/snapshot/xhost-1.0.6.tar.gz +wget http://cgit.freedesktop.org/xorg/app/xkbcomp/snapshot/xkbcomp-1.2.4.tar.gz +apt-get source xli +wget https://github.com/kfish/xsel/archive/master.tar.gz + +xhost: +./autogen.sh +env XHOST_LIBS="-static -lX11 -lxcb -lXau -lXdmcp -lXmuu -lpthread" ./configure +make V=1 + +xkbcomp: +./autogen.sh +env XKBCOMP_LIBS="-static -lxkbfile -lX11 -lxcb -lXau -lXdmcp -lXmuu -lpthread" ./configure +make V=1 + +xli: +cat debian/patches/series | while read F ; do patch -p1 < debian/patches/$F ; done +xmkmf +env EXTRA_LIBRARIES="-static -lxcb -lXau -lXdmcp -lXmuu -lpthread -ldl" make -e + +xsel: +./autogen.sh +env LIBS="-static -lX11 -lxcb -lXau -lXdmcp -lXmuu -lpthread" ./configure ; make +make V=1 diff --git a/project/jni/application/xserver-gimp/AndroidAppSettings.cfg b/project/jni/application/xserver-gimp/AndroidAppSettings.cfg index 190e44519..f7a953227 100644 --- a/project/jni/application/xserver-gimp/AndroidAppSettings.cfg +++ b/project/jni/application/xserver-gimp/AndroidAppSettings.cfg @@ -7,10 +7,10 @@ AppName="GIMP Inkscape" AppFullName=org.gimp.inkscape # Application version code (integer) -AppVersionCode=28218 +AppVersionCode=28219 # Application user-visible version name (string) -AppVersionName="2.8.2.18" +AppVersionName="2.8.2.19" # Specify path to download application data in zip archive in the form 'Description|URL|MirrorURL^Description2|URL2|MirrorURL2^...' # If you'll start Description with '!' symbol it will be enabled by default, other downloads should be selected by user from startup config menu diff --git a/project/jni/application/xserver-gimp/readme.txt b/project/jni/application/xserver-gimp/readme.txt index abc575427..afc435c63 100644 --- a/project/jni/application/xserver-gimp/readme.txt +++ b/project/jni/application/xserver-gimp/readme.txt @@ -16,7 +16,8 @@ x11proto-xext-dev x11proto-xf86bigfont-dev \ x11proto-xf86dga-dev x11proto-xf86dri-dev \ x11proto-xf86vidmode-dev x11proto-xinerama-dev \ libxmuu-dev libxt-dev libsm-dev libice-dev \ -libxrender-dev libxrandr-dev curl autoconf automake libtool +libxrender-dev libxrandr-dev curl autoconf automake libtool \ +pkg-config libjpeg-dev libpng-dev You will need both xcb-proto and python-xcbgen packages to have version 1.10-1, you may download newer packages @@ -62,3 +63,67 @@ sudo tar cvzf ../dist-gimp-wheezy.tar.gz * Upload resulting system image somewhere, and change download URL inside AndroidAppSettings.cfg, then recompile .apk file. + +New releases of Gimp contain statically linked xkbcomp, xli and xhost executables +for XSDL, because NDK r10c toolchain for some reason builds xkbcomp, which crashes +on Toshiba AT-330 with Android 4.0.3. To create these executables, you will need +to create Debian x86 and armhf chroot installations, like this: + +sudo apt-get install qemu-user-static + +sudo qemu-debootstrap --arch=i386 --verbose \ + --components=main,universe,restricted,multiverse \ + --include=fakeroot,libc-bin,locales-all,build-essential,sudo \ + wheezy wheezy-x86 http://ftp.ua.debian.org/debian/ + +sudo qemu-debootstrap --arch=armhf --verbose \ + --components=main,universe,restricted,multiverse \ + --include=fakeroot,libc-bin,locales-all,build-essential,sudo \ + wheezy wheezy-armhf http://ftp.ua.debian.org/debian/ + +sudo qemu-debootstrap --arch=mipsel --verbose \ + --components=main,universe,restricted,multiverse \ + --include=fakeroot,libc-bin,locales-all,build-essential,sudo \ + wheezy wheezy-mipsel http://ftp.ua.debian.org/debian/ + +Put this into /etc/apt/sources.list in each chroot, then do sudo apt-get update: + +deb http://http.debian.net/debian/ wheezy contrib main non-free +deb-src http://http.debian.net/debian/ wheezy main contrib + +deb http://security.debian.org/ wheezy/updates contrib main non-free +deb-src http://security.debian.org/ wheezy/updates main contrib + +deb http://http.debian.net/debian/ wheezy-updates contrib main non-free +deb-src http://http.debian.net/debian/ wheezy-updates main contrib + +deb http://http.debian.net/debian/ wheezy-backports contrib main non-free +deb-src http://http.debian.net/debian/ wheezy-backports contrib main + +Go to each of these chroots using chroot or schroot command, install all packages +mentioned in the previous section, then download and compile static executables: + +wget http://cgit.freedesktop.org/xorg/app/xhost/snapshot/xhost-1.0.6.tar.gz +wget http://cgit.freedesktop.org/xorg/app/xkbcomp/snapshot/xkbcomp-1.2.4.tar.gz +apt-get source xli +wget https://github.com/kfish/xsel/archive/master.tar.gz + +xhost: +./autogen.sh +env XHOST_LIBS="-static -lX11 -lxcb -lXau -lXdmcp -lXmuu -lpthread" ./configure +make V=1 + +xkbcomp: +./autogen.sh +env XKBCOMP_LIBS="-static -lxkbfile -lX11 -lxcb -lXau -lXdmcp -lXmuu -lpthread" ./configure +make V=1 + +xli: +cat debian/patches/series | while read F ; do patch -p1 < debian/patches/$F ; done +xmkmf +env EXTRA_LIBRARIES="-static -lxcb -lXau -lXdmcp -lXmuu -lpthread -ldl" make -e + +xsel: +./autogen.sh +env LIBS="-static -lX11 -lxcb -lXau -lXdmcp -lXmuu -lpthread" ./configure +make V=1 diff --git a/project/jni/application/xserver/AndroidBuild.sh b/project/jni/application/xserver/AndroidBuild.sh index 29d6c480e..d8a14a66f 100755 --- a/project/jni/application/xserver/AndroidBuild.sh +++ b/project/jni/application/xserver/AndroidBuild.sh @@ -72,7 +72,11 @@ cp $CURDIR/xserver/data/busybox-$1 ./busybox cp $CURDIR/ssh ./ cp $CURDIR/sshpass ./ mkdir -p usr/bin +# Executables linked with NDK, which crash on some devices. for f in xhost xkbcomp xli xsel; do cp $CURDIR/xserver/android/$1/$f ./usr/bin/ ; done +# Statically-linked prebuilt executables, generated using Debian chroot. +# There are no executables for old ARMv5, so we'll use NDK executables instead for that arch. +for f in xhost xkbcomp xli xsel; do cp $CURDIR/xserver/data/$f-$1 ./usr/bin/$f ; done rm -f ../AndroidData/binaries-$1.zip zip -r ../AndroidData/binaries-$1.zip . diff --git a/project/jni/application/xserver/main.c b/project/jni/application/xserver/main.c index 266d7e991..37c83a6bb 100644 --- a/project/jni/application/xserver/main.c +++ b/project/jni/application/xserver/main.c @@ -203,7 +203,7 @@ void setupEnv(void) { uid_t uid = geteuid(); struct passwd * pwd; - char buf[32]; + char buf[PATH_MAX]; errno = 0; pwd = getpwuid(uid); if( !pwd ) @@ -215,6 +215,13 @@ void setupEnv(void) __android_log_print(ANDROID_LOG_INFO, "XSDL", "User %s ID %s", pwd->pw_name, buf); setenv("USER_ID", buf, 1); setenv("USER", pwd->pw_name, 1); + sprintf( buf, "%s/usr/share/X11/XErrorDB", getenv("SECURE_STORAGE_DIR") ); + setenv("XERRORDB", buf, 1); + sprintf( buf, "%s/usr/lib/X11/XKeysymDB", getenv("SECURE_STORAGE_DIR") ); + setenv("XKEYSYMDB", buf, 1); + sprintf( buf, "%s/usr/share/X11/locale", getenv("SECURE_STORAGE_DIR") ); + setenv("XLOCALEDIR", buf, 1); + sprintf( buf, "%s/usr/share/X11/locale", getenv("SECURE_STORAGE_DIR") ); } void showError(void) diff --git a/project/jni/application/xserver/readme.txt b/project/jni/application/xserver/readme.txt index 2240e1f9f..06765a040 100644 --- a/project/jni/application/xserver/readme.txt +++ b/project/jni/application/xserver/readme.txt @@ -16,7 +16,8 @@ x11proto-xext-dev x11proto-xf86bigfont-dev \ x11proto-xf86dga-dev x11proto-xf86dri-dev \ x11proto-xf86vidmode-dev x11proto-xinerama-dev \ libxmuu-dev libxt-dev libsm-dev libice-dev \ -libxrender-dev libxrandr-dev curl autoconf automake libtool +libxrender-dev libxrandr-dev curl autoconf automake libtool \ +pkg-config libjpeg-dev libpng-dev You will need both xcb-proto and python-xcbgen packages to have version 1.10-1, you may download newer packages @@ -32,3 +33,67 @@ ln -s xserver project/jni/application/src ./changeAppSettings.sh -a android update project -p project ./build.sh + +New releases of XSDL contain statically linked xkbcomp, xli and xhost executables +for XSDL, because NDK r10c toolchain for some reason builds xkbcomp, which crashes +on Toshiba AT-330 with Android 4.0.3. To create these executables, you will need +to create Debian x86 and armhf chroot installations, like this: + +sudo apt-get install qemu-user-static + +sudo qemu-debootstrap --arch=i386 --verbose \ + --components=main,universe,restricted,multiverse \ + --include=fakeroot,libc-bin,locales-all,build-essential,sudo \ + wheezy wheezy-x86 http://ftp.ua.debian.org/debian/ + +sudo qemu-debootstrap --arch=armhf --verbose \ + --components=main,universe,restricted,multiverse \ + --include=fakeroot,libc-bin,locales-all,build-essential,sudo \ + wheezy wheezy-armhf http://ftp.ua.debian.org/debian/ + +sudo qemu-debootstrap --arch=mipsel --verbose \ + --components=main,universe,restricted,multiverse \ + --include=fakeroot,libc-bin,locales-all,build-essential,sudo \ + wheezy wheezy-mipsel http://ftp.ua.debian.org/debian/ + +Put this into /etc/apt/sources.list in each chroot, then do sudo apt-get update: + +deb http://http.debian.net/debian/ wheezy contrib main non-free +deb-src http://http.debian.net/debian/ wheezy main contrib + +deb http://security.debian.org/ wheezy/updates contrib main non-free +deb-src http://security.debian.org/ wheezy/updates main contrib + +deb http://http.debian.net/debian/ wheezy-updates contrib main non-free +deb-src http://http.debian.net/debian/ wheezy-updates main contrib + +deb http://http.debian.net/debian/ wheezy-backports contrib main non-free +deb-src http://http.debian.net/debian/ wheezy-backports contrib main + +Go to each of these chroots using chroot or schroot command, install all packages +mentioned in the previous section, then download and compile static executables: + +wget http://cgit.freedesktop.org/xorg/app/xhost/snapshot/xhost-1.0.6.tar.gz +wget http://cgit.freedesktop.org/xorg/app/xkbcomp/snapshot/xkbcomp-1.2.4.tar.gz +apt-get source xli +wget https://github.com/kfish/xsel/archive/master.tar.gz + +xhost: +./autogen.sh +env XHOST_LIBS="-static -lX11 -lxcb -lXau -lXdmcp -lXmuu -lpthread" ./configure +make V=1 + +xkbcomp: +./autogen.sh +env XKBCOMP_LIBS="-static -lxkbfile -lX11 -lxcb -lXau -lXdmcp -lXmuu -lpthread" ./configure +make V=1 + +xli: +cat debian/patches/series | while read F ; do patch -p1 < debian/patches/$F ; done +xmkmf +env EXTRA_LIBRARIES="-static -lxcb -lXau -lXdmcp -lXmuu -lpthread -ldl" make -e + +xsel: +./autogen.sh +env LIBS="-static -lX11 -lxcb -lXau -lXdmcp -lXmuu -lpthread" ./configure ; make +make V=1