#!/bin/sh mkdir -p /tmp/logs/ibus-chewing ################# # compile flags # ################# export CFLAGS="-march=i486 -mtune=i686 -Os -pipe" export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe" export LDFLAGS="-Wl,-O1" ################# # load packages # ################# echo Fetching build essentials ... tce-load -w cmake compiletc gettext-dev git glib2-dev glibc_gconv gob2 gtk2-dev ibus-dev libX11-dev libchewing-dev squashfs-tools \ 1> /tmp/logs/ibus-chewing/tce-load-w1 2> /tmp/logs/ibus-chewing/tce-load-w2 echo Loading build essentials ... tce-load -i cmake compiletc gettext-dev git glib2-dev glibc_gconv gob2 gtk2-dev ibus-dev libX11-dev libchewing-dev squashfs-tools \ 1> /tmp/logs/ibus-chewing/tce-load-i1 2> /tmp/logs/ibus-chewing/tce-load-i2 locale | grep -q "Cannot set" && echo Error. Please load your \"mylocale.tcz\" before continuing ########################## # get source and compile # ########################## cd /tmp && pwd && git clone https://github.com/definite/ibus-chewing.git cd ibus-chewing && echo Updating modules ... wget https://fedorahosted.org/releases/c/m/cmake-fedora/cmake-fedora-modules-only-latest.tar.gz tar zxvf cmake-fedora-modules-only-latest.tar.gz echo Configuring ... cmake . -DCMAKE_INSTALL_PREFIX='/usr/local' -DLIBEXEC_DIR='/usr/local/lib/ibus-chewing' -DDATA_DIR='/usr/local/share' -DPRJ_DOC_DIR='/usr/local/share/doc/ibus-chewing' -DPRJ_DATA_DIR='/usr/local/share/ibus-chewing' make -j make DESTDIR=/tmp/ibus-chewing-base install cd /tmp/ibus-chewing-base # strip pwd echo stripping ... find . -exec file {} + | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || find . -exec file {} + | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null ## tce.installedtce.installed mkdir -p usr/local/tce.installed/ cat > usr/local/tce.installed/ibus-chewing << EOF1 #!/bin/sh /usr/local/bin/gdk-pixbuf-query-loaders --update-cache /usr/local/bin/gtk-query-immodules-2.0 > /usr/local/etc/gtk-2.0/gtk.immodules /usr/local/bin/gtk-query-immodules-2.0 --update-cache /usr/local/bin/gtk-query-immodules-3.0 > /usr/local/etc/gtk-3.0/gtk.immodules /usr/local/bin/gtk-query-immodules-3.0 --update-cache for TCUSER in \`busybox ls /home\`; do mkdir -p /home/\$TCUSER/.X.d touch /home/\$TCUSER/.X.d/ibus-chewing grep -q "ibus-daemon" /home/\$TCUSER/.X.d/ibus-chewing || { echo [ \\"\\\`cat /etc/sysconfig/desktop\\\`\\" = \\"openbox\\" ] \\&\\& { >> /home/\$TCUSER/.X.d/ibus-chewing echo ' 'ibus-daemon -drx -n openbox \\& >> /home/\$TCUSER/.X.d/ibus-chewing echo } \|\| { >> /home/\$TCUSER/.X.d/ibus-chewing echo ' 'ibus-daemon -drx \\& >> /home/\$TCUSER/.X.d/ibus-chewing echo } >> /home/\$TCUSER/.X.d/ibus-chewing } grep -q "ibus engine chewing" /home/\$TCUSER/.X.d/ibus-chewing || echo ibus engine chewing \& >> /home/\$TCUSER/.X.d/ibus-chewing grep -q "gsettings" /home/\$TCUSER/.X.d/ibus-chewing || echo /usr/local/bin/gsettings set org.gnome.desktop.input-sources sources [\\(\\'ibus\\',\\'chewing\\'\\)] \& >> /home/\$TCUSER/.X.d/ibus-chewing chmod 755 /home/\$TCUSER/.X.d/ibus-chewing chown \$TCUSER:staff /home/\$TCUSER/.X.d/ibus-chewing done EOF1 chmod -R 775 usr/local/tce.installed/ ## doc AUTHORS COPYING LICENCE etc. [ ! "`find . -name doc -type d`" = '' ] && { echo ibus-chewing-doc for file in `find . -name doc -type d`; do path=${file#./} path=${path%/*} mkdir -p /tmp/ibus-chewing-doc/$path mv $file /tmp/ibus-chewing-doc/$path done 2> /dev/null } ## locale *.mo [ ! "`find . -name *.mo`" = '' ] && { echo ibus-chewing-locale for file in `find . -name *.mo`; do path=${file#./} path=${path%/*} mkdir -p /tmp/ibus-chewing-locale/$path mv $file /tmp/ibus-chewing-locale/$path done 2> /dev/null } ## adjust .desktop file for desktop in `find . -name *.desktop`; do echo X-FullPathIcon=/usr/local/share/ibus-chewing/icons/ibus-setup-chewing.png >> $desktop sed -i '/^[[:blank:]]*$/d' $desktop done ## remove empty directories echo remove empty directories find . -depth -type d -exec rmdir {} + 2> /dev/null cd /tmp sudo chown -R root:root ibus-chewing-base ibus-chewing-doc ibus-chewing-locale sudo chown -R root:staff ibus-chewing-base/usr/local/tce.installed/ ## output sudo rm -fr /tmp/output 2> /dev/null mkdir /tmp/output ## mksquashfs mksquashfs /tmp/ibus-chewing-base /tmp/output/ibus-chewing.tcz 2> /dev/null mksquashfs /tmp/ibus-chewing-doc /tmp/output/ibus-chewing-doc.tcz 2> /dev/null mksquashfs /tmp/ibus-chewing-locale /tmp/output/ibus-chewing-locale.tcz 2> /dev/null cd /tmp/output cat > ibus-chewing.tcz.dep << EOF2 gtk2.tcz ibus.tcz libXcomposite.tcz libXcursor.tcz libXinerama.tcz libXrandr.tcz libchewing.tcz EOF2 echo ibus-chewing.tcz > ibus-chewing-locale.tcz.dep