#external by cuma if [ ! "$EXTERNAL_ENABLED" == "y" ]; then echo external is used by make exit 1 fi EXTERNAL_DIRECTORY=`echo $EXTERNAL_DIRECTORY|sed 's/\/*$//'` mkdir -p "${EXTERNAL_MOD_DIR}" #preparation for Downloader outsourcing OUT_DIR="outboard" OUT_CONF="downloader.conf" ERROR="EXTERNAL SCRIPT ERROR:" WARNING="EXTERNAL SCRIPT WARNING:" if [ "$EXTERNAL_DOWNLOADER" == "y" ]; then if [ -e "$OUT_DIR" ]; then [ "$FREETZ_VERBOSITY_LEVEL" -ge 1 ] && echo " \"$(pwd)/$OUT_DIR\" is used as directory for outsourced files" [ "$FREETZ_VERBOSITY_LEVEL" -ge 1 ] && echo " all existing files in this directory will be rewritten" else [ "$FREETZ_VERBOSITY_LEVEL" -ge 1 ] && echo " creating directory \"$(pwd)/$OUT_DIR\" for outsourced files" mkdir $OUT_DIR TMPERR=$? if [ $TMPERR -eq 1 ]; then echo "$ERROR Directory \"$OUT_DIR\" can not be created" exit 1 fi fi if [ -e "$OUT_DIR/$OUT_CONF" ]; then echo " removing old Downloader configuration file $OUT_DIR/$OUT_CONF" rm "$OUT_DIR/$OUT_CONF" TMPERR=$? if [ $TMPERR -eq 1 ]; then echo "$ERROR $OUT_DIR/$OUT_CONF can not be deleted" exit 1 fi fi echo " creating new Downloader configuration file $OUT_DIR/$OUT_CONF" touch "$OUT_DIR/$OUT_CONF" fi EXTERNAL_FILES="$EXTERNAL_OWN_FILES" [ "$EXTERNAL_FREETZ_LIB_libart_lgpl_2" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libart_lgpl_2.so.2.3.19" [ "$EXTERNAL_FREETZ_LIB_libcrypto" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libcrypto.so.0.9.8" [ "$EXTERNAL_FREETZ_LIB_libcurl" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libcurl.so.4.1.1" [ "$EXTERNAL_FREETZ_LIB_libdevmapper" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libdevmapper.so.1.02" [ "$EXTERNAL_FREETZ_LIB_libelf" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libelf.so.0.8.10" [ "$EXTERNAL_FREETZ_LIB_libfreetype" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libfreetype.so.6.3.16" [ "$EXTERNAL_FREETZ_LIB_libglib_1" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libglib-1.2.so.0.0.10" [ "$EXTERNAL_FREETZ_LIB_libglib_2" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libglib-2.0.so.0.1800.2" [ "$EXTERNAL_FREETZ_LIB_libgmodule_2" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libgmodule-2.0.so.0.1800.2" [ "$EXTERNAL_FREETZ_LIB_libgobject_2" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libgobject-2.0.so.0.1800.2" [ "$EXTERNAL_FREETZ_LIB_libgthread_2" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libgthread-2.0.so.0.1800.2" [ "$EXTERNAL_FREETZ_LIB_libhistory" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libhistory.so.5.2" [ "$EXTERNAL_FREETZ_LIB_libiconv" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libiconv.so.2.2.0" [ "$EXTERNAL_FREETZ_LIB_libid3tag" == "y" ] && EXTERNAL_FILES+=" /lib/libid3tag.so.0.3.0" [ "$EXTERNAL_FREETZ_LIB_libmad" == "y" ] && EXTERNAL_FILES+=" /lib/libmad.so.0.2.1" [ "$EXTERNAL_FREETZ_LIB_libncurses" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libncurses.so.5.6" [ "$EXTERNAL_FREETZ_LIB_libpng12" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libpng12.so.0.10.0" [ "$EXTERNAL_FREETZ_LIB_libpopt" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libpopt.so.0.0.0" [ "$EXTERNAL_FREETZ_LIB_libreadline" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libreadline.so.5.2" [ "$EXTERNAL_FREETZ_LIB_libresolv" == "y" ] && EXTERNAL_FILES+=" /lib/libresolv-${FREETZ_TARGET_UCLIBC_VERSION}.so" [ "$EXTERNAL_FREETZ_PACKAGE_BASH" == "y" ] && EXTERNAL_FILES+=" /bin/bash" [ "$EXTERNAL_FREETZ_PACKAGE_BIP" == "y" ] && EXTERNAL_FILES+=" /usr/bin/bip" [ "$EXTERNAL_FREETZ_PACKAGE_BLUEZ_UTILS" == "y" ] && EXTERNAL_FILES+=" /usr/bin/dund /usr/bin/pand /usr/bin/rfcomm /usr/bin/l2ping /usr/bin/sdptool /usr/sbin/hcid /usr/sbin/sdpd /usr/sbin/hciconfig /usr/sbin/hcitool" [ "$EXTERNAL_FREETZ_PACKAGE_CHECKMAILD" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/checkmaild" [ "$EXTERNAL_FREETZ_PACKAGE_CRYPTSETUP" == "y" ] && EXTERNAL_FILES+=" /usr/bin/cryptsetup" [ "$EXTERNAL_FREETZ_PACKAGE_CTORRENT" == "y" ] && EXTERNAL_FILES+=" /usr/bin/ctorrent" [ "$EXTERNAL_FREETZ_PACKAGE_CURL" == "y" ] && EXTERNAL_FILES+=" /usr/bin/curl" [ "$EXTERNAL_FREETZ_PACKAGE_DECO" == "y" ] && EXTERNAL_FILES+=" /usr/bin/deco" [ "$EXTERNAL_FREETZ_PACKAGE_DTACH" == "y" ] && EXTERNAL_FILES+=" /usr/bin/dtach" [ "$EXTERNAL_FREETZ_PACKAGE_DTMFBOX" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/dtmfbox" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_e2fsck" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/e2fsck" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_mke2fs" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/mke2fs" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_mklost_found" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/mklost+found" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_tune2fs" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/tune2fs" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_dumpe2fs" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/dumpe2fs" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_chattr" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/chattr" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_lsattr" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/lsattr" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_e2image" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/e2image" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_e2undo" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/e2undo" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_debugfs" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/debugfs" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_logsave" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/logsave" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_badblocks" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/badblocks" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_filefrag" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/filefrag" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_blkid" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/blkid" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_uuidd" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/uuidd" [ "$EXTERNAL_FREETZ_PACKAGE_E2FSPROGS_uuidgen" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/uuidgen" [ "$EXTERNAL_FREETZ_PACKAGE_ESPEAK" == "y" ] && EXTERNAL_FILES+=" /usr/bin/speak" [ "$EXTERNAL_FREETZ_PACKAGE_INOTIFY_TOOLS" == "y" ] && EXTERNAL_FILES+=" /usr/bin/inotifywait /usr/bin/inotifywatch /usr/lib/libinotifytools.so.0.4.1" [ "$EXTERNAL_FREETZ_PACKAGE_IODINE" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/iodined" [ "$EXTERNAL_FREETZ_PACKAGE_IRSSI" == "y" ] && EXTERNAL_FILES+=" /usr/bin/irssi" [ "$EXTERNAL_FREETZ_PACKAGE_HTTPTUNNEL" == "y" ] && EXTERNAL_FILES+=" /usr/bin/hts" [ "$EXTERNAL_FREETZ_PACKAGE_LDD" == "y" ] && EXTERNAL_FILES+=" /usr/bin/ldd" [ "$EXTERNAL_FREETZ_PACKAGE_LSOF" == "y" ] && EXTERNAL_FILES+=" /usr/bin/lsof" [ "$EXTERNAL_FREETZ_PACKAGE_LTRACE" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/ltrace" [ "$EXTERNAL_FREETZ_PACKAGE_LYNX" == "y" ] && EXTERNAL_FILES+=" /usr/bin/lynx" [ "$EXTERNAL_FREETZ_PACKAGE_MADPLAY" == "y" ] && EXTERNAL_FILES+=" /usr/bin/madplay" [ "$EXTERNAL_FREETZ_PACKAGE_MC" == "y" ] && EXTERNAL_FILES+=" /usr/bin/mc.bin" [ "$EXTERNAL_FREETZ_PACKAGE_MICROPERL" == "y" ] && EXTERNAL_FILES+=" /usr/bin/microperl /usr/lib/perl5" [ "$EXTERNAL_FREETZ_PACKAGE_MTR" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/mtr" [ "$EXTERNAL_FREETZ_PACKAGE_NANO" == "y" ] && EXTERNAL_FILES+=" /usr/bin/nano" [ "$EXTERNAL_FREETZ_PACKAGE_NETCAT" == "y" ] && EXTERNAL_FILES+=" /usr/bin/netcat" [ "$EXTERNAL_FREETZ_PACKAGE_NTFS" == "y" ] && EXTERNAL_FILES+=" /usr/bin/ntfs-3g" [ "$EXTERNAL_FREETZ_PACKAGE_OPENVPN" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/openvpn" [ "$EXTERNAL_FREETZ_PACKAGE_PHP" == "y" ] && EXTERNAL_FILES+=" /usr/bin/php-cgi" [ "$EXTERNAL_FREETZ_PACKAGE_PRIVOXY" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/privoxy" [ "$EXTERNAL_FREETZ_PACKAGE_RRDTOOL" == "y" ] && EXTERNAL_FILES+=" /usr/bin/rrdtool /usr/lib/librrd.so.2.0.15" [ "$EXTERNAL_FREETZ_PACKAGE_SAMBA_smbd" == "y" ] && EXTERNAL_FILES+=" /sbin/smbd" [ "$EXTERNAL_FREETZ_PACKAGE_SAMBA_nmbd" == "y" ] && EXTERNAL_FILES+=" /sbin/nmbd" [ "$EXTERNAL_FREETZ_PACKAGE_SAMBA_smbpasswd" == "y" ] && EXTERNAL_FILES+=" /sbin/smbpasswd" [ "$EXTERNAL_FREETZ_PACKAGE_SCREEN" == "y" ] && EXTERNAL_FILES+=" /usr/bin/screen.bin" [ "$EXTERNAL_FREETZ_PACKAGE_STRACE" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/strace" [ "$EXTERNAL_FREETZ_PACKAGE_STUNNEL" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/stunnel" [ "$EXTERNAL_FREETZ_PACKAGE_TCPDUMP" == "y" ] && EXTERNAL_FILES+=" /usr/bin/tcpdump" [ "$EXTERNAL_FREETZ_PACKAGE_TOR" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/tor" [ "$EXTERNAL_FREETZ_PACKAGE_TRANSMISSION_CLIENT" == "y" ] && EXTERNAL_FILES+=" /usr/bin/transmissioncli" [ "$EXTERNAL_FREETZ_PACKAGE_TRANSMISSION_DAEMON" == "y" ] && EXTERNAL_FILES+=" /usr/bin/transmission-daemon" [ "$EXTERNAL_FREETZ_PACKAGE_TRANSMISSION_REMOTE" == "y" ] && EXTERNAL_FILES+=" /usr/bin/transmission-remote" [ "$EXTERNAL_FREETZ_PACKAGE_TRANSMISSION_WEBINTERFACE" == "y" ] && EXTERNAL_FILES+=" /usr/share/transmission-web-home" [ "$EXTERNAL_FREETZ_PACKAGE_TREE" == "y" ] && EXTERNAL_FILES+=" /usr/bin/tree" [ "$EXTERNAL_FREETZ_PACKAGE_VIM" == "y" ] && EXTERNAL_FILES+=" /usr/bin/vim" [ "$EXTERNAL_FREETZ_PACKAGE_VSFTPD" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/vsftpd" [ "$EXTERNAL_FREETZ_PACKAGE_WPUT" == "y" ] && EXTERNAL_FILES+=" /usr/bin/wput" EXTERNAL_FILES="`echo $EXTERNAL_FILES|sed 's/ / \//g;s/\/\/*/\//g'`" for EXTERNAL_FILE in $EXTERNAL_FILES; do FILENAME=$(basename $EXTERNAL_FILE) if [ -L "${FILESYSTEM_MOD_DIR}$EXTERNAL_FILE" ]; then [ "$FREETZ_VERBOSITY_LEVEL" -ge 1 ] && echo "$WARNING ${FILESYSTEM_MOD_DIR}$EXTERNAL_FILE is a symbolic link. It will not be outsourced" else EXTERNAL_LINKSUBDIR="" EXTERNAL_TARGETDIR="${EXTERNAL_MOD_DIR}" if [ "$EXTERNAL_SUBDIRS" == "y" ]; then EXTERNAL_LINKSUBDIR="`dirname $EXTERNAL_FILE`" EXTERNAL_TARGETDIR+="$EXTERNAL_LINKSUBDIR" mkdir -p "$EXTERNAL_TARGETDIR" fi EXTERNAL_TEMP="${FILESYSTEM_MOD_DIR}$EXTERNAL_FILE" if [ "$EXTERNAL_DOWNLOADER" == "y" ]; then FILEPERM=$(ls -l $EXTERNAL_TEMP | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o",k)}') [ "$FREETZ_VERBOSITY_LEVEL" -ge 1 ] && echo " packing $FILENAME.gz for Downloader" gzip -c "$EXTERNAL_TEMP" > "$OUT_DIR/$FILENAME.gz" TMPERR=$? if [ $TMPERR -eq 1 ]; then echo "$ERROR $OUT_DIR/$FILENAME.gz can not be created" exit 1 fi fi if [ `ls "$EXTERNAL_TEMP" 2>/dev/null | wc -l` -gt 0 ]; then mv "$EXTERNAL_TEMP" "$EXTERNAL_TARGETDIR/" EXTERNAL_MSG="moved" if [ "$EXTERNAL_DOWNLOADER" == "y" ]; then echo "$FILENAME $FILEPERM $EXTERNAL_DIRECTORY$EXTERNAL_LINKSUBDIR" >> $OUT_DIR/$OUT_CONF fi else EXTERNAL_MSG="not found" fi ln -s "$EXTERNAL_DIRECTORY$EXTERNAL_LINKSUBDIR/$FILENAME" "${FILESYSTEM_MOD_DIR}$EXTERNAL_FILE" [ "$FREETZ_VERBOSITY_LEVEL" -ge 1 ] && echo " $EXTERNAL_FILE... $EXTERNAL_MSG & linked" fi done echo "$EXTERNAL_DIRECTORY" > "${EXTERNAL_MOD_DIR}/.external" if [ "$EXTERNAL_DOWNLOADER" == "y" ]; then echo " NOTE: Please upload gezipped Downloader files from" echo " \"$(pwd)/$OUT_DIR\" to your http or ftp server" echo " and copy the Downloader configuration from" echo " \"$(pwd)/$OUT_DIR/$OUT_CONF\" into Downloader WEBUI" else [ "$EXTERNAL_CREATEPAK" == "y" ] || echo " NOTE: Please copy content of build/modified/external/ to $EXTERNAL_DIRECTORY on your box BEFORE you flash the reduced image" fi