#!/bin/bash # FIX_MISSING if set to true will pull in files that are new # or missing so long as they are not in SLACK_DEPRECATED # The following needs to be updated manually as they are located # elsewhere # # xcb from http://xcb.freedesktop.org/dist/ # compiz http://releases.compiz.org/ # xf86-video-mga from git # xf86-video-nouveau via the script get-xf86-video-nouveau.sh # X_BASE_DIR is the local mirror of x.org's individual tree # X_BUILD_DIR is the build tree to be updated CWD=$(pwd) X_BASE_DIR="/home/shared/mirrors/x.org/individual" X_BUILD_DIR="/home/shared/Build/updates/x11/" FIX_MISSING="false" SLACK_DEPRECATED=" \ compiz \ constype \ grandr \ lbxproxy \ mkcfm \ proxymngr \ rstart \ scripts \ xbitmaps \ xfindproxy \ xfwp \ xphelloworld \ xplsprinters \ xprehashprinterlist \ xrx \ xsetmode \ xsetpointer \ xtrap \ xkbdata \ glamor-egl \ xf86-input-calcomp \ xf86-input-citron \ xf86-input-digitaledge \ xf86-input-dmc \ xf86-input-dynapro \ xf86-input-elo2300 \ xf86-input-elographics \ xf86-input-fpit \ xf86-input-hyperpen \ xf86-input-jamstudio \ xf86-input-magellan \ xf86-input-magictouch \ xf86-input-microtouch \ xf86-input-mutouch \ xf86-input-palmax \ xf86-input-spaceorb \ xf86-input-summa \ xf86-input-ur98 \ xf86-input-tek4957 \ xf86-video-amd \ xf86-video-cyrix \ xf86-video-fbdev \ xf86-video-glide \ xf86-video-i810 \ xf86-video-impact \ xf86-video-imstt \ xf86-video-mga \ xf86-video-newport \ xf86-video-nsc \ xf86-video-qxl \ xf86-video-radeonhd \ xf86-video-sunbw2 \ xf86-video-suncg14 \ xf86-video-suncg3 \ xf86-video-suncg6 \ xf86-video-sunffb \ xf86-video-sunleo \ xf86-video-suntcx \ xf86-video-vermilion \ xf86-video-vga \ xf86-video-via \ xf86-video-wsfb \ xf86-video-xgixp \ libAppleWM \ libWindowsWM \ libXTrap \ libXprintAppUtil \ libXprintUtil \ liblbxutil \ liboldX \ libxkbui \ libpthread-stubs \ applewmproto \ trapproto \ windowswmproto \ xf86rushproto \ xproxymanagementprotocol \ " /bin/echo "" >> ChangeLog.txt /bin/date >> ChangeLog.txt check_path() { # Build array of current x.org packages for x11 cd $X_BASE_DIR/$MODDIR/ X_SRC_DIR=( $(ls -1 *.bz2 | rev | cut -f 2,3,4,5 -d - | rev | uniq ) ) index=0 while [ "$index" -lt "${#X_SRC_DIR[@]}" ] do tmpvar=( $(ls -v1 ${X_SRC_DIR[$index]}-*.bz2 | tail -n 1 | rev | cut -f 3,4,5,6,7 -d . | rev ) ) # Check for beta version number form :- xx.99.xx & xx.xx.90x # pixman beta package xx.odd.xx tmppkg=( $(echo $tmpvar | cut -f 1 -d - ) ) if [ "$tmppkg" = "pixman" ]; then betacheck1=( $(echo $tmpvar | rev | cut -f 1 -d - | cut -f 2 -d . | rev ) ) while [[ "$betacheck1" = 23 || "$betacheck1" = 25 || "$betacheck1" = 27 || "$betacheck1" = 29 ]] do tmpvar=( $(ls -v1 ${X_SRC_DIR[$index]}-*.bz2 | tail -n $trybeta | head -n 1 | rev | cut -f 3,4,5,6,7 -d . | rev ) ) betacheck1=( $(echo $tmpvar | rev | cut -f 1 -d - | cut -f 2 -d . | rev ) ) ((trybeta++)) done else betacheck1=( $(echo $tmpvar | rev | cut -f 1 -d - | cut -f 2 -d . | rev ) ) betacheck2=( $(echo $tmpvar | rev | cut -f 1 -d . | rev ) ) trybeta=2 while [[ "$betacheck1" = 99 || "$betacheck2" = 901 || "$betacheck2" = 902 || "$betacheck2" = 903 ]] do tmpvar=( $(ls -v1 ${X_SRC_DIR[$index]}-*.bz2 | tail -n $trybeta | head -n 1 | rev | cut -f 3,4,5,6,7 -d . | rev ) ) betacheck1=( $(echo $tmpvar | rev | cut -f 1 -d - | cut -f 2 -d . | rev ) ) betacheck2=( $(echo $tmpvar | rev | cut -f 1 -d . | rev ) ) ((trybeta++)) done fi X_SRC_DIR[$index]=$tmpvar ((index++)) done # Build array of existing packages for x11/app cd $X_BUILD_DIR/src/$MODDIR/ X_BLD_DIR=( $(ls -1 *.xz | rev | cut -f 2,3,4,5 -d - | rev | uniq ) ) index=0 while [ "$index" -lt "${#X_BLD_DIR[@]}" ] do tmpvar=( $(ls -v1 ${X_BLD_DIR[$index]}-*.xz | tail -n 1 | rev | cut -f 3,4,5,6,7 -d . | rev ) ) X_BLD_DIR[$index]=$tmpvar ((index++)) done cd $CWD index=0 index2=0 num=$index2 while [ "$index" -lt "${#X_SRC_DIR[@]}" ] do newpkg=( $(echo "${X_SRC_DIR[$index]}" | rev | cut -f 2,3,4,5,6 -d - | rev ) ) newver=( $(echo "${X_SRC_DIR[$index]}" | rev | cut -f 1 -d - | rev ) ) while [ "$index2" -lt "${#X_BLD_DIR[@]}" ] do oldpkg=( $(echo "${X_BLD_DIR[$index2]}" | rev | cut -f 2,3,4,5,6 -d - | rev ) ) oldver=( $(echo "${X_BLD_DIR[$index2]}" | rev | cut -f 1 -d - | rev ) ) if [ "$oldpkg" = "$newpkg" ]; then num=$index2 if [ "$oldver" = "$newver" ]; then echo -e "$oldpkg-$oldver \e[00;32mup to date\e[00m" break else if [ "$newpkg" = "xf86-video-mga" ]; then echo -e "$newpkg \e[00;33mhas issues with version numbers out of order skipping\e[00m" break fi cp $X_BASE_DIR/$MODDIR/$newpkg-$newver.tar.bz2 $X_BUILD_DIR/src/$MODDIR bunzip2 $X_BUILD_DIR/src/$MODDIR/$newpkg-$newver.tar.bz2 xz -z $X_BUILD_DIR/src/$MODDIR/$newpkg-$newver.tar rm $X_BUILD_DIR/src/$MODDIR/$newpkg-$oldver.tar.xz echo -e "$oldpkg-$oldver \e[01;33mupgraded to\e[00m $newpkg-$newver" echo $MODDIR/$newpkg-$newver Upgraded >> ChangeLog.txt break fi fi ((index2++)) done if [ "$oldpkg" != "$newpkg" ]; then for mod_deprecated in $SLACK_DEPRECATED ; do if [ "$newpkg" = "$mod_deprecated" ]; then echo -e "$newpkg-$newver \e[00;33mmissing but deprecated for Slackware\e[00m" index2=$num ((index++)) continue 2 fi done echo -e "$newpkg-$newver \e[00;31mmissing\e[00m" echo $MODDIR/$newpkg-$newver Missing >> ChangeLog.txt index2=$num if [ $FIX_MISSING = "true" ]; then cp $X_BASE_DIR/$MODDIR/$newpkg-$newver.tar.bz2 $X_BUILD_DIR/src/$MODDIR bunzip2 $X_BUILD_DIR/src/$MODDIR/$newpkg-$newver.tar.bz2 xz -z $X_BUILD_DIR/src/$MODDIR/$newpkg-$newver.tar echo -e "$newpkg-$newver \e[00;31madded\e[00m" echo $MODDIR/$newpkg-$newver Added >> ChangeLog.txt fi fi ((index++)) done } X_DIRS=" \ app \ data \ doc \ driver \ font \ lib \ proto \ util \ xserver \ " for MODDIR in $X_DIRS ; do check_path $MODDIR done