wok-4.x rev 9858
removed old tazbb (will keep a copy in slitaz-dev-tools
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Mon May 16 15:38:06 2011 +0200 (2011-05-16) |
parents | 6c5c55855491 |
children | 94543eb9b7dc |
files | tazbb/description.txt tazbb/receipt tazbb/stuff/README tazbb/stuff/tazbb tazbb/stuff/tazbb.conf tazbb/stuff/tazbbmail tazbb/stuff/web/conf.php tazbb/stuff/web/favicon.ico tazbb/stuff/web/index.php tazbb/stuff/web/log.php tazbb/stuff/web/pics/website/development.png tazbb/stuff/web/pics/website/header-img.png tazbb/stuff/web/pics/website/logo.png tazbb/stuff/web/pics/website/xhtml10.png tazbb/stuff/web/slitaz.css |
line diff
1.1 --- a/tazbb/description.txt Mon May 16 15:34:53 2011 +0200 1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.3 @@ -1,10 +0,0 @@ 1.4 - 1.5 -SliTaz Build Bot. Tazbb is a tool to automate and test SliTaz package 1.6 -building. Please read the Cookbook documentation for more information 1.7 -and put your ideas on the Tazbb Wiki page on the Labs. The package 1.8 -provides the tazbb script, a config file and a web interface. 1.9 - 1.10 -Tank Build Bot : http://bb.slitaz.org/ 1.11 -Tazbb Wiki : http://labs.slitaz.org/wiki/distro/Tazbb 1.12 -Cookbook page : http://doc.slitaz.org/en:cookbook:buildbot 1.13 -
2.1 --- a/tazbb/receipt Mon May 16 15:34:53 2011 +0200 2.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 2.3 @@ -1,56 +0,0 @@ 2.4 -# SliTaz package receipt. 2.5 - 2.6 -PACKAGE="tazbb" 2.7 -VERSION="2.0" 2.8 -CATEGORY="development" 2.9 -SHORT_DESC="SliTaz Build Bot." 2.10 -MAINTAINER="pankso@slitaz.org" 2.11 -DEPENDS="tazpkg tazwok python mercurial" 2.12 -SUGGESTED="slitaz-toolchain postfix" 2.13 -WEB_SITE="http://labs.slitaz.org/wiki/distro/Bb" 2.14 -TAGS="slitaz" 2.15 - 2.16 -# Rules to gen a SliTaz package suitable for Tazpkg. 2.17 -genpkg_rules() 2.18 -{ 2.19 - mkdir -p \ 2.20 - $fs/usr/bin \ 2.21 - $fs/etc/slitaz \ 2.22 - $fs/var/lib/tazbb \ 2.23 - $fs/var/log/tazbb 2.24 - cp stuff/tazbb $fs/usr/bin 2.25 - cp stuff/tazbbmail $fs/usr/bin 2.26 - cp stuff/tazbb.conf $fs/etc/slitaz 2.27 - cp -a stuff/web $fs/var/lib/tazbb 2.28 - chmod 755 $fs/usr/bin/* 2.29 - chown -R root.root $fs 2.30 -} 2.31 - 2.32 -post_install() 2.33 -{ 2.34 - # On Tank we have bb.slitaz.org virtual host in: /home/slitaz/www 2.35 - if [ -d $1/home/slitaz/www/bb ]; then 2.36 - cp -a $1/var/lib/tazbb/web/* $1/home/slitaz/www/bb 2.37 - chown www.www $1/home/slitaz/www/bb 2.38 - else 2.39 - mkdir -p $1/var/www/vhosts 2.40 - ln -s $1/var/lib/tazbb/web $1/var/www/vhosts/bb 2.41 - cat << _EOT_ 2.42 - 2.43 -To have a Tazbb web interface on your local system, you can add a vhost 2.44 -to Lighttpd (or Apache) and the hostname to /etc/hosts. Example for Lighty: 2.45 - 2.46 -$HTTP["host"] =~ "bb" { 2.47 - server.document-root = "/var/www/vhost/bb" 2.48 -} 2.49 - 2.50 -Or run: browser http://localhost/vhosts/bb 2.51 - 2.52 -_EOT_ 2.53 - fi 2.54 -} 2.55 - 2.56 -post_remove() 2.57 -{ 2.58 - rm -rf /var/www/vhost/bb 2.59 -}
3.1 --- a/tazbb/stuff/README Mon May 16 15:34:53 2011 +0200 3.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 3.3 @@ -1,15 +0,0 @@ 3.4 -Tazbb Build Bot 3.5 -=============================================================================== 3.6 - 3.7 - 3.8 -Check the description.txt for a brief overview of Tazbb, read the Cookbook docs 3.9 -and collaborate on the Labs. 3.10 - 3.11 - 3.12 -Tank Build Bot : http://bb.slitaz.org/ 3.13 -Tazbb Wiki : http://labs.slitaz.org/wiki/distro/Tazbb 3.14 -Cookbook page : http://www.slitaz.org/en/doc/cookbook/build-bot.html 3.15 - 3.16 - 3.17 -=============================================================================== 3.18 -
4.1 --- a/tazbb/stuff/tazbb Mon May 16 15:34:53 2011 +0200 4.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 4.3 @@ -1,1104 +0,0 @@ 4.4 -#!/bin/sh 4.5 -# Tazbb - SliTaz Build Bot. 4.6 -# System wide config file: /etc/slitaz/tazbb.conf 4.7 -# 4.8 -# Tazbb is a tool to automate package building, it can be run manually 4.9 -# or via a cron job. On SliTaz build host, tazbb is run in a chroot env. 4.10 -# 4.11 -# (c) 2009 SliTaz GNU/Linux project - GNU gpl v3 4.12 -# 4.13 - 4.14 -# Include config file or exit if no file found. 4.15 -if [ -f "./tazbb.conf" ]; then 4.16 - . ./tazbb.conf 4.17 -elif [ -f "/etc/slitaz/tazbb.conf" ]; then 4.18 - . /etc/slitaz/tazbb.conf 4.19 -else 4.20 - echo -e "\nNo config file found: tazbb.conf...\n" && exit 0 4.21 -fi 4.22 -LOG_SUFFIX="" 4.23 -case "$HG_WOK" in 4.24 -*stable) LOG_SUFFIX="&stable=1";; 4.25 -esac 4.26 - 4.27 -# Tazbb is only for root. 4.28 -if test $(id -u) != 0 ; then 4.29 - echo -e "\nYou must be root to run: `basename $0`.\n" && exit 0 4.30 -fi 4.31 - 4.32 -# Let tazbb finish is work and make sure needed files exist. 4.33 -if [ -f $LOCK_FILE ]; then 4.34 - case $1 in 4.35 - usage|list-*|*block|check-receipt) 4.36 - continue ;; 4.37 - *) 4.38 - echo -e "\nTazbb is already running and locked...\n" 4.39 - exit 0 ;; 4.40 - esac 4.41 -else 4.42 - mkdir -p $DB_DIR $LOG_DIR 4.43 - touch $LOCK_FILE $DB_DIR/blocked 4.44 -fi 4.45 - 4.46 -# Set KERNEL variable 4.47 -if [ -s $BUILD_WOK/linux/receipt ]; then 4.48 - . $BUILD_WOK/linux/receipt 4.49 - KERNEL=$VERSION 4.50 -fi 4.51 - 4.52 -# Get revision 4.53 -cd $HG_WOK 4.54 -NEW_REV=`hg head --template '{rev}\n'` 4.55 -cd - > /dev/null 4.56 - 4.57 -usage() 4.58 -{ 4.59 - echo -e "\nSliTaz developers and build host tool\n 4.60 -\033[1mUsage: \033[0m `basename $0` [command] [--option] 4.61 -\033[1mCommands: \033[0m\n 4.62 - usage Print this short usage and command list. 4.63 - list-pkgs List last cooked packages with date. 4.64 - report Run in report mode and dont cook anything [--verbose]. 4.65 - cook Cook, install and log a single package build. 4.66 - cook-all Cook all missing, modified or unbuilt packages. 4.67 - cook-commit Cook all packages affected by a commit in the last update. 4.68 - test-pkgs Execute a test suite on all packages [--verbose]. 4.69 - [un]block Block or unblock a package to skip or enable building. 4.70 - mail Send mail to package maintainer with tazbbmail. 4.71 - check-depends Verify DEPENDS value with library needs [--verbose]. 4.72 - clean-up Remove old packages [--verbose|--dry-run]. 4.73 - clean-log Remove all generated build log files.\n" 4.74 -} 4.75 - 4.76 -status() 4.77 -{ 4.78 - local CHECK=$? 4.79 - echo -en "\033[70G" 4.80 - if [ $CHECK = 0 ]; then 4.81 - echo "Done" 4.82 - else 4.83 - echo "Failed" 4.84 - fi 4.85 - return $CHECK 4.86 -} 4.87 - 4.88 -top_summary() 4.89 -{ 4.90 - cat > $DB_DIR/summary << _EOT_ 4.91 -Update : `date` 4.92 -Revision : $NEW_REV (<a href="$HG_URL/log/$NEW_REV">changelog</a>) 4.93 -_EOT_ 4.94 -} 4.95 - 4.96 -packages_summary() 4.97 -{ 4.98 - if ! grep -q "^Packages" $DB_DIR/summary; then 4.99 - cat >> $DB_DIR/summary << _EOT_ 4.100 -Packages : `ls $BUILD_WOK | wc -l` in the wok, `cat $DB_DIR/cooklist | wc -l` to cook, \ 4.101 -`cat $DB_DIR/genpkglist | wc -l` to repack, `cat $DB_DIR/blocked | wc -l` blocked, \ 4.102 -`cat $DB_DIR/corrupted | wc -l` corrupted 4.103 -_EOT_ 4.104 - fi 4.105 -} 4.106 - 4.107 -VERBOSE="" 4.108 - 4.109 -packages_summary_update() 4.110 -{ 4.111 - sed -i s/"[0-9]* in the wok"/"`ls $BUILD_WOK | wc -l` in the wok"/ \ 4.112 - $DB_DIR/summary 4.113 - sed -i s/"[0-9]* to cook"/"`cat $DB_DIR/cooklist | wc -l` to cook"/ \ 4.114 - $DB_DIR/summary 4.115 - sed -i s/"[0-9]* to repack"/"`cat $DB_DIR/genpkglist | wc -l` to repack"/ \ 4.116 - $DB_DIR/summary 4.117 - sed -i s/"[0-9]* blocked"/"`cat $DB_DIR/blocked | wc -l` blocked"/ \ 4.118 - $DB_DIR/summary 4.119 - sed -i s/"[0-9]* corrupted"/"`cat $DB_DIR/corrupted | wc -l` corrupted"/ \ 4.120 - $DB_DIR/summary 4.121 -} 4.122 - 4.123 -list_packages() 4.124 -{ 4.125 - cd $PACKAGES_REPOSITORY 4.126 - ls -1t *.tazpkg | head -20 | \ 4.127 - while read file 4.128 - do 4.129 - echo -n $(stat -c '%y' $PACKAGES_REPOSITORY/$file | cut -d. -f1) 4.130 - echo " $file" 4.131 - done 4.132 -} 4.133 - 4.134 -show_report() 4.135 -{ 4.136 - echo "Cooklist" 4.137 - echo "================================================================================" 4.138 - cat $DB_DIR/cooklist && echo "" 4.139 - echo "Genpkglist" 4.140 - echo "================================================================================" 4.141 - cat $DB_DIR/genpkglist && echo "" 4.142 - echo "Packlist" 4.143 - echo "================================================================================" 4.144 - cat $DB_DIR/packlist && echo "" 4.145 - echo "Blocked" 4.146 - echo "================================================================================" 4.147 - cat $DB_DIR/blocked && echo "" 4.148 - echo "" 4.149 -} 4.150 - 4.151 -# URL encoding 4.152 -escape() 4.153 -{ 4.154 - echo $1 | sed -e 's/+/%2B/g' -e 's|/|%2F|g' -e 's/:/%3A/g' 4.155 -} 4.156 - 4.157 -update_wok() 4.158 -{ 4.159 - local forced 4.160 - forced="" 4.161 - echo "" 4.162 - echo "(updating flavors)" > $DB_DIR/running 4.163 - cd $HG_FLAVORS 4.164 - LAST_REV=`hg head --template '{rev}\n'` 4.165 - hg pull && hg update 4.166 - NEW_REV=`hg head --template '{rev}\n'` 4.167 - if [ "$NEW_REV" != "$LAST_REV" ]; then 4.168 - size=`du -sh $HG_FLAVORS | awk '{ print $1 }'` 4.169 - echo -n "Copying Hg flavors to the build flavors ($size)... " 4.170 - cp -a $HG_FLAVORS/* $BUILD_FLAVORS 4.171 - cp -a $HG_FLAVORS/.hg $BUILD_FLAVORS 4.172 - echo -e "Done\n" 4.173 - forced="yes" 4.174 - fi 4.175 - echo "(updating wok)" > $DB_DIR/running 4.176 - cd $HG_WOK 4.177 - LAST_REV=`hg head --template '{rev}\n'` 4.178 - hg pull && hg update 4.179 - NEW_REV=`hg head --template '{rev}\n'` 4.180 - # Gen a new summary and link last revision for the web interface. 4.181 - echo -e "\nHg wok : $HG_WOK ($NEW_REV)" 4.182 - echo -e "Build wok : $BUILD_WOK ($LAST_REV)\n" 4.183 - top_summary 4.184 - # Copy Hg wok if new revision or exit to stop process since nothing 4.185 - # have change (--forced can be used). 4.186 - if [ "$NEW_REV" != "$LAST_REV" ]; then 4.187 - size=`du -sh $HG_WOK | awk '{ print $1 }'` 4.188 - echo -n "Copying Hg wok to the build wok ($size)... " 4.189 - #rsync -r -n -t $HG_WOK/ $BUILD_WOK/ 4.190 - cp -a $HG_WOK/* $BUILD_WOK 4.191 - cp -a $HG_WOK/.hg $BUILD_WOK 4.192 - echo -e "Done\n" 4.193 - else 4.194 - if [ "$1" = "cook-all" ] || [ "$1" = "cook-commit" ]; then 4.195 - if [ "$2" != "--forced" -a -z "$forced" ]; then 4.196 - echo -e "Nothing to cook...\n" 4.197 - packages_summary 4.198 - rm -f $LOCK_FILE && exit 0 4.199 - fi 4.200 - fi 4.201 - fi 4.202 -} 4.203 - 4.204 -# Running 'tazbb report' should not pack anything and --verbose option 4.205 -# can be used to display more messages. 4.206 -check_flavors() 4.207 -{ 4.208 - # Clean up last results. 4.209 - rm -f $DB_DIR/packlist && touch $DB_DIR/packlist 4.210 - echo "" 4.211 - echo "Checking all files in: $HG_FLAVORS" 4.212 - echo "================================================================================" 4.213 - echo "(checking flavors)" > $DB_DIR/running 4.214 - for flavor in $(cd $HG_FLAVORS ; ls) 4.215 - do 4.216 - [ "$2" = "--verbose" ] && echo "Flavor : $flavor" 4.217 - if [ ! -s $PACKAGES_REPOSITORY/$flavor.flavor ]; then 4.218 - echo $flavor >> $DB_DIR/packlist 4.219 - [ "$1" = "report" ] && echo "Missing : $flavor" 4.220 - echo "Missing flavor : $flavor" >> $DB_DIR/report 4.221 - continue 4.222 - fi 4.223 - for i in $(find $HG_FLAVORS/$flavor -type f); do 4.224 - [ $PACKAGES_REPOSITORY/$flavor.flavor -nt \ 4.225 - $i ] && continue 4.226 - echo $flavor >> $DB_DIR/packlist 4.227 - [ "$1" = "report" ] && echo "Refresh : $flavor for $i" 4.228 - echo "Refresh flavor : $flavor" >> $DB_DIR/report 4.229 - continue 2 4.230 - done 4.231 - [ -s $HG_FLAVORS/$flavor/packages.list ] && 4.232 - for i in $(cat $HG_FLAVORS/$flavor/packages.list); do 4.233 - if [ ! -d $BUILD_WOK/$i ]; then 4.234 - [ "$1" = "report" ] && 4.235 - echo "Fix flavor for $i: $flavor" 4.236 - echo "Fix flavor for $i: $flavor" >> $DB_DIR/report 4.237 - continue 4.238 - fi 4.239 - [ $PACKAGES_REPOSITORY/$flavor.flavor -nt \ 4.240 - $BUILD_WOK/$i/taz ] && continue 4.241 - echo $flavor >> $DB_DIR/packlist 4.242 - [ "$1" = "report" ] && echo "Repack : $flavor for $i" 4.243 - echo "Repack flavor : $flavor" >> $DB_DIR/report 4.244 - continue 2 4.245 - done 4.246 - done 4.247 - 4.248 - # Check for meta flavors 4.249 - for flavor in $(cd $HG_FLAVORS ; ls) 4.250 - do 4.251 - grep -q ^ROOTFS_SELECTION $HG_FLAVORS/$flavor/receipt || continue 4.252 - . $HG_FLAVORS/$flavor/receipt 4.253 - set -- $ROOTFS_SELECTION 4.254 - if [ $PACKAGES_REPOSITORY/$2.flavor -nt \ 4.255 - $PACKAGES_REPOSITORY/$flavor.flavor ]; then 4.256 - echo $flavor >> $DB_DIR/packlist 4.257 - [ "$1" = "report" ] && echo "Refresh : $flavor for $2" 4.258 - echo "Refresh meta flavor : $flavor" >> $DB_DIR/report 4.259 - continue 4.260 - fi 4.261 - if grep -q ^$2$ $DB_DIR/packlist ; then 4.262 - echo $flavor >> $DB_DIR/packlist 4.263 - [ "$1" = "report" ] && echo "Repack : $flavor for $2" 4.264 - echo "Repack meta flavor : $flavor" >> $DB_DIR/report 4.265 - continue 4.266 - fi 4.267 - done 4.268 -} 4.269 - 4.270 -# Here we pack all flavors found in the packlist. 4.271 -pack_flavors() 4.272 -{ 4.273 - [ -s $DB_DIR/packlist ] || return 4.274 - [ $PACKAGES_REPOSITORY/packages.list -nt /var/lib/tazpkg/packages.list ] && 4.275 - cp -a $PACKAGES_REPOSITORY/packages.list /var/lib/tazpkg/packages.list 4.276 - cd $PACKAGES_REPOSITORY 4.277 - for flavor in $(cat $DB_DIR/packlist) 4.278 - do 4.279 - tazlito pack-flavor $flavor 4.280 - # Remove flavor from the packlist and empty lines for HTML <pre>. 4.281 - sed -i /"^$flavor$"/d $DB_DIR/packlist 4.282 - sed -i '/^$/d' $DB_DIR/packlist 4.283 - done 4.284 - cd - > /dev/null 4.285 -} 4.286 - 4.287 -# Running 'tazbb report' should not cook anything and --verbose option 4.288 -# can be used to display more messages. 4.289 -check_wok() 4.290 -{ 4.291 - # Clean up last results. 4.292 - rm -f $DB_DIR/cooklist && touch $DB_DIR/cooklist 4.293 - rm -f $DB_DIR/genpkglist && touch $DB_DIR/genpkglist 4.294 - rm -f $DB_DIR/report && touch $DB_DIR/report 4.295 - rm -f $DB_DIR/unbuilt && touch $DB_DIR/unbuilt 4.296 - echo "Checking all files in: $HG_WOK" 4.297 - echo "================================================================================" 4.298 - echo "(checking wok)" > $DB_DIR/running 4.299 - TOOLCHAIN="$(. $HG_WOK/slitaz-toolchain/receipt ; echo $DEPENDS)" 4.300 - TOOLCHAIN="$TOOLCHAIN glibc linux" # break cook loop 4.301 - for pkg in $HG_WOK/* 4.302 - do 4.303 - EXTRAVERSION="" 4.304 - WANTED="" 4.305 - BUILD_DEPENDS="" 4.306 - [ -s $pkg/receipt ] || continue 4.307 - . $pkg/receipt 4.308 - [ "$2" = "--verbose" ] && echo "Package : $PACKAGE" 4.309 - # Skip blocked packages. 4.310 - if grep -qs "^$PACKAGE$" $DB_DIR/blocked; then 4.311 - echo "Blocked : $PACKAGE ($VERSION)" && continue 4.312 - fi 4.313 - 4.314 - # Some packages may compute VERSION at cook time (bristuff) 4.315 - if grep -q ^get_version $pkg/receipt; then 4.316 - . $BUILD_WOK/$PACKAGE/taz/*/receipt 4.317 - fi 4.318 - 4.319 - # First check if package exit. Package naming _must_ be in the form of: 4.320 - # $PACKAGE-$VERSION or $PACKAGE-${VERSION}$EXTRAVERSION (Kernel string). 4.321 - if [ ! -f $PACKAGES_REPOSITORY/$PACKAGE-$VERSION.tazpkg ]; then 4.322 - [ -z "$EXTRAVERSION" ] && EXTRAVERSION="_$KERNEL" 4.323 - if [ ! -f $PACKAGES_REPOSITORY/$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg ]; then 4.324 - [ "$1" = "report" ] && echo "Missing : $PACKAGE ($VERSION)" 4.325 - echo "Missing : $PACKAGE ($VERSION)" >> $DB_DIR/report 4.326 - echo "$PACKAGE" >> $DB_DIR/cooklist 4.327 - fi 4.328 - else 4.329 - # Check if package is up-to-date. 4.330 - PKG_YEAR=`date -u -r $PACKAGES_REPOSITORY/$PACKAGE-${VERSION}${EXTRAVERSION}.tazpkg '+%Y'` 4.331 - PKG_DATE=`date -u -r $PACKAGES_REPOSITORY/$PACKAGE-${VERSION}${EXTRAVERSION}.tazpkg '+%m%d%H%M'` 4.332 - for file in `find $pkg -type f` 4.333 - do 4.334 - FILE_YEAR=`date -u -r $file '+%Y'` 4.335 - FILE_DATE=`date -u -r $file '+%m%d%H%M'` 4.336 - [ "$2" = "--verbose" ] && echo " -> Checking: $file" 4.337 - if [ "$FILE_YEAR" -ge "$PKG_YEAR" -a "$FILE_DATE" -gt "$PKG_DATE" ] && ! grep -q $PACKAGE $DB_DIR/cooklist && ! grep -q $PACKAGE $DB_DIR/genpkglist; then 4.338 - [ "$1" = "report" ] && echo "Refresh : $PACKAGE ($VERSION)" 4.339 - echo "Refresh : $PACKAGE ($VERSION)" >> $DB_DIR/report 4.340 - echo "$PACKAGE" >> $DB_DIR/cooklist 4.341 - fi 4.342 - done 4.343 - fi 4.344 - 4.345 - # Desactivate this feature because it create infinite cooking loops. 4.346 - #if ! grep -q $PACKAGE $DB_DIR/cooklist; then 4.347 - # case " $TOOLCHAIN " in 4.348 - # *\ $PACKAGE\ *) continue;; 4.349 - # esac 4.350 - # case "$PACKAGE" in 4.351 - # tazbb|tazwok|tazpkg) continue;; 4.352 - # esac 4.353 - # for dep in $BUILD_DEPENDS $TOOLCHAIN ; do 4.354 - # [ $BUILD_WOK/$PACKAGE/taz -nt $BUILD_WOK/$dep/taz ] && continue 4.355 - # [ "$1" = "report" ] && echo "Refresh : $PACKAGE (older than $dep)" 4.356 - # echo "Refresh : $PACKAGE (older than $dep)" >> $DB_DIR/report 4.357 - # echo "$PACKAGE" >> $DB_DIR/cooklist 4.358 - # break 4.359 - # done 4.360 - #fi 4.361 - # Rebuild unbuilt packages list with link to log file. This list 4.362 - # is also generated by cook_inslall to have real time stats. 4.363 - if [ ! -d $BUILD_WOK/$PACKAGE/taz ]; then 4.364 - echo "<a href=\"log.php?package=$(escape $PACKAGE)$LOG_SUFFIX\">$PACKAGE</a>" \ 4.365 - >> $DB_DIR/unbuilt 4.366 - fi 4.367 - done 4.368 - packages_summary 4.369 -} 4.370 - 4.371 -# Create a new cooklist and summary (dont modify report) so 'tazbb cook-commit' 4.372 -# can cook last changes. 4.373 -check_commit() 4.374 -{ 4.375 - echo "(checking commit)" > $DB_DIR/running 4.376 - cd $HG_WOK 4.377 - # Clean up last results. 4.378 - rm -f $DB_DIR/cooklist && touch $DB_DIR/cooklist 4.379 - # Get the name of modified packages by the revision range. +1 last 4.380 - # commit was build by the previous build. 4.381 - LAST_REV=$(($LAST_REV+1)) 4.382 - echo -e "Will cook from revision $LAST_REV to $NEW_REV\n" 4.383 - for rev in $(seq $LAST_REV $NEW_REV); do 4.384 - hg_log=$(hg log --rev=$rev --template "{files}\t{desc}\n") 4.385 - for file in $(echo "$hg_log" | cut -f 1); do 4.386 - pkg=`echo $file | cut -d "/" -f 1` 4.387 - if [ "$(echo $hg_log | grep -i '+build')" ]; then 4.388 - if ! grep -q ^$pkg$ $DB_DIR/genpkglist && ! grep -q ^$pkg$ $DB_DIR/cooklist; then 4.389 - if [ -f $pkg/receipt ]; then 4.390 - . $pkg/receipt 4.391 - echo "Commit : $PACKAGE ($VERSION) - genpkg only" >> $DB_DIR/report 4.392 - echo "$PACKAGE" >> $DB_DIR/genpkglist 4.393 - fi 4.394 - fi 4.395 - else 4.396 - if ! grep -q ^$pkg$ $DB_DIR/cooklist; then 4.397 - if [ -f $pkg/receipt ]; then 4.398 - . $pkg/receipt 4.399 - echo "Commit : $PACKAGE ($VERSION)" >> $DB_DIR/report 4.400 - sed "/^$PACKAGE$/d" -i $DB_DIR/genpkglist 4.401 - echo "$PACKAGE" >> $DB_DIR/cooklist 4.402 - fi 4.403 - fi 4.404 - fi 4.405 - done 4.406 - done 4.407 - packages_summary 4.408 -} 4.409 - 4.410 -# Genpkg : don't regen the package if source _pkg is missing, this 4.411 -# function re-generate the package only if all is fine, else it 4.412 -# does nothing and forget the package. 4.413 -genpkg_package() 4.414 -{ 4.415 - EXTRAVERSION="" 4.416 - DEPENDS="" 4.417 - BUILD_DEPENDS="" 4.418 - SOURCE="" 4.419 - WANTED="" 4.420 - echo "(Repack <a href=\"log.php?package=$(escape $pkg)$LOG_SUFFIX\">$pkg</a>)" > $DB_DIR/running 4.421 - tazwok check-receipt $pkg && echo 'N' | tazwok genpkg $pkg 4.422 -} 4.423 - 4.424 -# Cook one package 4.425 -cook_package() 4.426 -{ 4.427 - EXTRAVERSION="" 4.428 - DEPENDS="" 4.429 - BUILD_DEPENDS="" 4.430 - SOURCE="" 4.431 - WANTED="" 4.432 - echo "(cooking <a href=\"log.php?package=$(escape $pkg)$LOG_SUFFIX\">$pkg</a>)" > $DB_DIR/running 4.433 - tazwok clean $pkg 4.434 - script -c "tazbb check-receipt $pkg && echo 'install' | tazwok cook $pkg" $LOG_DIR/$pkg.log 4.435 - # Install new package (important for new shared libs). Note 4.436 - # that tests are done separatly with 'test_packages' and should 4.437 - # be done by tazwok. 4.438 - if [ -f $BUILD_WOK/$pkg/taz/*/receipt ]; then 4.439 - TAZBB_NO_INSTALL="" 4.440 - . $BUILD_WOK/$pkg/taz/*/receipt 4.441 - [ -n "$TAZBB_NO_INSTALL" ] && return 0 4.442 - echo "(installing $PACKAGE-${VERSION}$EXTRAVERSION.tazpkg)" \ 4.443 - > $DB_DIR/running 4.444 - script -ac "yes | tazpkg install \ 4.445 -$PACKAGES_REPOSITORY/$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg --forced" \ 4.446 - $LOG_DIR/$pkg.log 4.447 - return 0 4.448 - fi 4.449 - return 1 4.450 -} 4.451 - 4.452 -# Sort list according WANTED and BUILD_DEPENDS 4.453 -sort_cook_list() 4.454 -{ 4.455 - sort | while read pkg; do 4.456 - echo -n "$pkg" 4.457 - WANTED="" 4.458 - BUILD_DEPENDS="" 4.459 - . $BUILD_WOK/$pkg/receipt 4.460 - MISSING="" 4.461 - for i in $WANTED $BUILD_DEPENDS ; do 4.462 - # Verify that the dependancy exists and is older 4.463 - [ -f $BUILD_WOK/$i/taz/*/receipt ] && 4.464 - [ $BUILD_WOK/$pkg/taz/*/receipt \ 4.465 - -nt $BUILD_WOK/$i/taz/*/receipt ] && continue 4.466 - WANTED="" 4.467 - [ -f $BUILD_WOK/$i/receipt ] && 4.468 - . $BUILD_WOK/$i/receipt 4.469 - # This dependancy may be cooked 4.470 - # by another package 4.471 - [ -n "$WANTED" ] && i=$WANTED 4.472 - case " $MISSING " in 4.473 - *\ $i\ *);; 4.474 - *) echo -n " $i";; 4.475 - esac 4.476 - MISSING="$MISSING $i" 4.477 - done 4.478 - echo "" 4.479 - done | awk '{ deps[$1] = $0; } 4.480 -END { 4.481 - k=0; 4.482 - while (1) { 4.483 - skipped = 0; 4.484 - done = 0; 4.485 - for (entry in deps) { 4.486 - for (i = split(deps[entry], pkg, " "); i > 1; i--) 4.487 - if (deps[pkg[i]] != "") break; 4.488 - if (i == 1) { 4.489 - cook[k++] = pkg[1]; 4.490 - deps[pkg[1]] = ""; 4.491 - done++; 4.492 - } 4.493 - else if (i > 1) skipped++; 4.494 - } 4.495 - if (skipped == 0) break; 4.496 - if (done == 0) { # cross deps !! 4.497 - for (entry in deps) { 4.498 - if (split(deps[entry], pkg, " ") > 1) 4.499 - print pkg[1]; 4.500 - } 4.501 - break; 4.502 - } 4.503 - } 4.504 - while (k > 0) print cook[--k]; 4.505 -} 4.506 -' 4.507 -} 4.508 - 4.509 -# Here we cook all packages found in the cooklist. 4.510 -cook_install() 4.511 -{ 4.512 - # First repack packages in genpkglist 4.513 - for pkg in `cat $DB_DIR/genpkglist`; do 4.514 - genpkg_package $pkg 4.515 - 4.516 - # Remove package from the genpkglist and empty lines for HTML <pre>. 4.517 - sed -i /"^$pkg$"/d $DB_DIR/genpkglist 4.518 - sed -i '/^$/d' $DB_DIR/genpkglist 4.519 - packages_summary_update 4.520 - done 4.521 - 4.522 - echo "" > $DB_DIR/unbuilt 4.523 - for pkg in `cat $DB_DIR/cooklist | sort_cook_list` 4.524 - do 4.525 - if ! cook_package $pkg; then 4.526 - # Link to build log. 4.527 - echo "<a href=\"log.php?package=$(escape $pkg)$LOG_SUFFIX\">$pkg</a>" >> \ 4.528 - $DB_DIR/unbuilt 4.529 - fi 4.530 - missing_depends="$(check_depends_pkg $pkg)" 4.531 - if [ -n "$missing_depends" ]; then 4.532 - cat >> $LOG_DIR/$pkg.log <<EOT 4.533 - 4.534 -Update $pkg receipt for DEPENDS : 4.535 -The package $pkg depends on packages $missing_depends 4.536 - 4.537 -EOT 4.538 - # Unbuild package 4.539 - rm -rf $BUILD_WOK/$pkg/taz 4.540 - # Link to build log. 4.541 - echo "<a href=\"log.php?package=$(escape $pkg)$LOG_SUFFIX\">$pkg</a>" >> \ 4.542 - $DB_DIR/unbuilt 4.543 - fi 4.544 - # Remove package from the cooklist and empty lines for HTML <pre>. 4.545 - sed -i /"^$pkg$"/d $DB_DIR/cooklist 4.546 - sed -i '/^$/d' $DB_DIR/cooklist 4.547 - packages_summary_update 4.548 - done 4.549 -} 4.550 - 4.551 -# Check for misc variables 4.552 -check_variables() 4.553 -{ 4.554 - PACKAGE="" 4.555 - VERSION="" 4.556 - EXTRAVERSION="" 4.557 - CATEGORY="" 4.558 - SHORT_DESC="" 4.559 - MAINTAINER="" 4.560 - WEB_SITE="" 4.561 - PACKED_SIZE="" 4.562 - UNPACKED_SIZE="" 4.563 - . $BUILD_WOK/$1/receipt 4.564 - if [ "$PACKAGE" != "$1" ]; then 4.565 - echo "The PACKAGE variable should be $1" 4.566 - return 1 4.567 - fi 4.568 - if [ -z "$VERSION" ]; then 4.569 - echo "No VERSION in $1" 4.570 - return 1 4.571 - fi 4.572 - if [ -z "$SHORT_DESC" ]; then 4.573 - echo "No SHORT_DESC in $1" 4.574 - return 1 4.575 - fi 4.576 - case "$MAINTAINER" in 4.577 - '') echo "No MAINTAINER in $1" 4.578 - return 1 ;; 4.579 - *\<*|*\>*) 4.580 - echo "Invalid MAINTAINER in $1" 4.581 - return 1 ;; 4.582 - *@*) ;; 4.583 - *) echo "No email address for MAINTAINER in $1" 4.584 - return 1 ;; 4.585 - esac 4.586 - if [ -z "$WEB_SITE" ]; then 4.587 - echo "No WEB_SITE in $1" 4.588 - return 1 4.589 - fi 4.590 - if [ -n "$EXTRAVERSION" ]; then 4.591 - echo "Hardcoded EXTRAVERSION in $1" 4.592 - return 1 4.593 - fi 4.594 - if [ -n "$PACKED_SIZE" ]; then 4.595 - echo "Hardcoded PACKED_SIZE in $1" 4.596 - return 1 4.597 - fi 4.598 - if [ -n "$UNPACKED_SIZE" ]; then 4.599 - echo "Hardcoded UNPACKED_SIZE in $1" 4.600 - return 1 4.601 - fi 4.602 - case " base-system x-window utilities network graphics multimedia \ 4.603 - office development system-tools security games misc meta \ 4.604 - non-free " in 4.605 - *\ $CATEGORY\ *);; 4.606 - *) echo "Invalid CATEGORY in $1 : $CATEGORY" 4.607 - return 1; 4.608 - esac 4.609 - return 0 4.610 -} 4.611 - 4.612 -# Check for WANTED version 4.613 -check_wanted_version() 4.614 -{ 4.615 - WANTED="" 4.616 - . $BUILD_WOK/$1/receipt 4.617 - if [ -n "$WANTED" ]; then 4.618 - expected=$VERSION 4.619 - VERSION= 4.620 - . $BUILD_WOK/$WANTED/receipt 4.621 - if [ "$VERSION" != "$expected" ]; then 4.622 - echo "$1: expected wanted version $expected, found $VERSION" 4.623 - return 1 4.624 - fi 4.625 - fi 4.626 - return 0 4.627 -} 4.628 - 4.629 -# Check for loop in BUILD_DEPENDS/WANTED 4.630 -check_build_depends() 4.631 -{ 4.632 - local i 4.633 - BUILD_DEPENDS="" 4.634 - WANTED="" 4.635 - . $BUILD_WOK/$1/receipt 4.636 - for i in $BUILD_DEPENDS $WANTED ; do 4.637 - case " $2 " in 4.638 - *\ $i\ *) echo "Loop in BUILD_DEPENDS/WANTED chain $2 $i" 4.639 - return 1 ;; 4.640 - *) check_build_depends $i "$2 $1" || return 1 ;; 4.641 - esac 4.642 - done 4.643 - return 0 4.644 -} 4.645 - 4.646 -# Build depends_to_skip list with packages to remove from depends_to_add list 4.647 -# These packages are already present in depends_to_add trees 4.648 -scan_depends_to_skip() 4.649 -{ 4.650 - local i 4.651 - case " $depends_to_skip " in 4.652 - *\ $1\ *) return;; 4.653 - esac 4.654 - [ -d $BUILD_WOK/$1 ] || return 4.655 - DEPENDS="" 4.656 - . $BUILD_WOK/$1/receipt 4.657 - for i in $DEPENDS ; do 4.658 - case " $depends_to_add " in 4.659 - *\ $i\ *) depends_to_skip="$depends_to_skip $i";; 4.660 - esac 4.661 - done 4.662 - for i in $DEPENDS ; do 4.663 - scan_depends_to_skip $i 4.664 - done 4.665 -} 4.666 - 4.667 -# Reduce depends list by scanning nested depends 4.668 -show_missing_depends() 4.669 -{ 4.670 - local i 4.671 - depends_to_add="" 4.672 - depends_to_skip="$2" 4.673 - for i in $1 ; do 4.674 - case " $depends_to_add " in 4.675 - *\ $i\ *) continue;; 4.676 - esac 4.677 - depends_to_add="$depends_to_add$i " 4.678 - done 4.679 - for i in $depends_to_add ; do 4.680 - scan_depends_to_skip $i 4.681 - done 4.682 - for i in $depends_to_add ; do 4.683 - case " $depends_to_skip " in 4.684 - *\ $i\ *) continue;; 4.685 - esac 4.686 - echo -n "$i " 4.687 - done 4.688 -} 4.689 - 4.690 -# Build all_depends variable 4.691 -scan_dep() 4.692 -{ 4.693 - local i 4.694 - all_depends="$all_depends$PACKAGE " 4.695 - for i in $DEPENDS $SUGGESTED ; do 4.696 - case " $all_depends " in 4.697 - *\ $i\ *) continue;; 4.698 - esac 4.699 - [ -d $BUILD_WOK/$i ] || { 4.700 - all_depends="$all_depends$i " 4.701 - continue 4.702 - } 4.703 - DEPENDS="" 4.704 - SUGGESTED="" 4.705 - . $BUILD_WOK/$i/receipt 4.706 - scan_dep 4.707 - done 4.708 -} 4.709 - 4.710 -# Check for ELF file 4.711 -is_elf() 4.712 -{ 4.713 - [ "$(dd if=$1 bs=1 skip=1 count=3 2> /dev/null)" = "ELF" ] 4.714 -} 4.715 - 4.716 -# Print shared library dependencies 4.717 -ldd() 4.718 -{ 4.719 - LD_PRELOAD="" LD_TRACE_LOADED_OBJECTS=1 /lib/ld*.so $1 2> /dev/null 4.720 -} 4.721 - 4.722 -# scan a file for shared libraries and display according package names 4.723 -check_depends_file() 4.724 -{ 4.725 - file=$1 4.726 - is_elf $file || continue 4.727 - case "$file" in 4.728 - *.o|*.ko|*.ko.gz) continue;; 4.729 - esac 4.730 - [ -s /tmp/files.list.tazbb$$ ] || 4.731 - unlzma -c $PACKAGES_REPOSITORY/files.list.lzma >/tmp/files.list.tazbb$$ 4.732 - ldd $file | while read lib rem; do 4.733 - case "$lib" in 4.734 - statically|linux-gate.so*|ld-*.so|*/ld-*.so) 4.735 - continue;; 4.736 - esac 4.737 - for dep in $(grep $lib /tmp/files.list.tazbb$$ | cut -d: -f1); do 4.738 - case " $all_depends " in 4.739 - *\ $dep\ *) continue 2;; 4.740 - esac 4.741 - for vdep in $(grep $dep $PACKAGES_REPOSITORY/packages.equiv | cut -d= -f1); do 4.742 - case " $all_depends " in 4.743 - *\ $vdep\ *) continue 3;; 4.744 - esac 4.745 - done 4.746 - done 4.747 - [ -n "$dep" ] || dep="UNKNOWN" 4.748 - all_depends="$all_depends $dep" 4.749 - if [ -n "$VERBOSE" ]; then 4.750 - echo "${file#*fs} depends on package $dep for the shared library $lib" 1>&2 4.751 - fi 4.752 - echo -n "$dep " 4.753 - done 4.754 -} 4.755 - 4.756 -DEFAULT_DEPENDS="glibc-base" 4.757 - 4.758 -# scan a package for shared libraries and display missing package in DEPENDS 4.759 -check_depends_pkg() 4.760 -{ 4.761 - pkg=$1 4.762 - echo "(checking depends for $pkg)" > $DB_DIR/running 4.763 - tmp=/tmp/tazbb$$ 4.764 - mkdir $tmp 4.765 - package=$(basename $pkg) 4.766 - if ! cd ${package%%-*}*/taz/${package%.tazpkg}/.. 2> /dev/null; then 4.767 - cd $tmp 4.768 - tazpkg extract $pkg > /dev/null 2>&1 4.769 - fi 4.770 - . */receipt 4.771 - all_depends="$DEFAULT_DEPENDS " 4.772 - scan_dep 4.773 - toadd=$(find */fs -type f | while read file ; do 4.774 - check_depends_file $file 4.775 - done) 4.776 - . */receipt 4.777 - rm -rf */ 4.778 - cd - > /dev/null 4.779 - rm -rf $tmp 4.780 - show_missing_depends "$toadd" "$DEPENDS $SUGGESTED" 4.781 -} 4.782 - 4.783 -check_depends_this_file() 4.784 -{ 4.785 - file=$1 4.786 - all_depends="$DEFAULT_DEPENDS " 4.787 - scan_dep 4.788 - check_depends_file $file 4.789 -} 4.790 - 4.791 -# Remove old packages in the build wok and clean pkgs repository. The 4.792 -# Hg wok is copied into the build wok so packages removed by hg must be 4.793 -# removed. To remove old packages in the repository we look into the 4.794 -# build wok and dont remove unbuilt packages. Clean-up will also remove 4.795 -# all corrupted packages. 4.796 -clean_up() 4.797 -{ 4.798 - touch $DB_DIR/removed 4.799 - echo -e "\nCleaning the build wok, old and corrupted packages...\n" 4.800 - echo "(cleaning)" > $DB_DIR/running 4.801 - for pkg in `ls $BUILD_WOK` 4.802 - do 4.803 - if [ ! -d $HG_WOK/$pkg ]; then 4.804 - case $2 in 4.805 - --dry-run) 4.806 - echo "Removing directory : $pkg" ;; 4.807 - --verbose) 4.808 - echo "Removing directory : $pkg" 4.809 - rm -rf $BUILD_WOK/$pkg ;; 4.810 - *) 4.811 - rm -rf $BUILD_WOK/$pkg ;; 4.812 - esac 4.813 - fi 4.814 - done 4.815 - # Build a packages list with EXTRAVERSION so we can grep into it. 4.816 - rm -f $DB_DIR/packaged && touch $DB_DIR/packaged 4.817 - for receipt in $BUILD_WOK/*/taz/*/receipt 4.818 - do 4.819 - EXTRAVERSION="" 4.820 - . $receipt 4.821 - echo "$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg" >> $DB_DIR/packaged 4.822 - done 4.823 - for pkg in `cd $PACKAGES_REPOSITORY && ls *.tazpkg` 4.824 - do 4.825 - if ! grep -q "^$pkg$" $DB_DIR/packaged; then 4.826 - case $2 in 4.827 - --dry-run) 4.828 - echo "Removing package : $pkg" ;; 4.829 - --verbose) 4.830 - echo "Removing package : $pkg" 4.831 - echo "$pkg" >> $DB_DIR/removed 4.832 - rm -f $PACKAGES_REPOSITORY/$pkg ;; 4.833 - *) 4.834 - echo "$pkg" >> $DB_DIR/removed 4.835 - rm -f $PACKAGES_REPOSITORY/$pkg ;; 4.836 - esac 4.837 - fi 4.838 - done 4.839 - # Remove all corrupted packages 4.840 - for pkg in `cat $DB_DIR/corrupted | awk '{ print $3 }'` 4.841 - do 4.842 - case $2 in 4.843 - --dry-run) 4.844 - echo "Removing corrupted: $pkg" ;; 4.845 - --verbose) 4.846 - echo "Removing corrupted: $pkg" 4.847 - echo "$pkg" >> $DB_DIR/removed 4.848 - rm -rf $PACKAGES_REPOSITORY/$pkg ;; 4.849 - *) 4.850 - echo "$pkg" >> $DB_DIR/removed 4.851 - rm -rf $PACKAGES_REPOSITORY/$pkg ;; 4.852 - esac 4.853 - done 4.854 - echo "" 4.855 - # Keep the 20 last removed packages list. 4.856 - cat $DB_DIR/removed | tail -n 20 > /tmp/removed.tail 4.857 - mv -f /tmp/removed.tail $DB_DIR/removed 4.858 - # Clean packages stuff/ directory 4.859 - echo -e "\nCleaning the build wok stuff/ directories...\n" 4.860 - for pkg in `ls $BUILD_WOK` 4.861 - do 4.862 - if [ -d "$BUILD_WOK/$pkg/stuff" ]; then 4.863 - cd $BUILD_WOK/$pkg 4.864 - for file in `find stuff -type f` 4.865 - do 4.866 - if [ ! -f "$HG_WOK/$pkg/$file" ]; then 4.867 - echo "Removing: $pkg/$file" 4.868 - rm $file 4.869 - fi 4.870 - done 4.871 - fi 4.872 - done 4.873 -} 4.874 - 4.875 -blocked_urls() 4.876 -{ 4.877 - rm -f $DB_DIR/blocked.urls 4.878 - for pkg in `cat $DB_DIR/blocked` 4.879 - do 4.880 - if [ -f $LOG_DIR/$pkg.log ]; then 4.881 - echo "<a href=\"log.php?package=$(escape $pkg)$LOG_SUFFIX\">$pkg</a>" >> \ 4.882 - $DB_DIR/blocked.urls 4.883 - else 4.884 - echo "$pkg" >> $DB_DIR/blocked.urls 4.885 - fi 4.886 - done 4.887 -} 4.888 - 4.889 -# 4k, not a meta or a get-* package and no files = buggy package 4.890 -test_packages() 4.891 -{ 4.892 - echo -e "\nTesting all packages in: $PACKAGES_REPOSITORY" 4.893 - echo "================================================================================" 4.894 - echo "(testing packages)" > $DB_DIR/running 4.895 - rm -f $DB_DIR/corrupted && touch $DB_DIR/corrupted 4.896 - for pkg in $PACKAGES_REPOSITORY/*.tazpkg 4.897 - do 4.898 - tmp=/tmp/bb-test.$$ 4.899 - CATEGORY="" 4.900 - if du $pkg | grep -qw '^4' && ! echo `basename $pkg` | grep -q '^get-'; then 4.901 - mkdir -p $tmp && cd $tmp 4.902 - cpio -i receipt >/dev/null 2>&1 < $pkg 4.903 - . ./receipt 4.904 - if [ "$CATEGORY" != "meta" ]; then 4.905 - [ "$2" = "--verbose" ] && echo "Testing: $PACKAGE" 4.906 - cpio -i fs.cpio.gz >/dev/null 2>&1 < $pkg 4.907 - cpio -i fs.cpio.lzma >/dev/null 2>&1 < $pkg 4.908 - if [ ! -f fs.cpio.gz -a ! -f fs.cpio.lzma ]; then 4.909 - echo "Missing filesystem `basename $pkg`" 4.910 - if [ -f $LOG_DIR/$PACKAGE.log ];then 4.911 - echo "Missing filesystem `basename $pkg` <a href=\"log.php?package=$(escape $PACKAGE)$LOG_SUFFIX\">Log</a>" \ 4.912 - >> $DB_DIR/corrupted 4.913 - else 4.914 - echo "Missing filesystem `basename $pkg`" \ 4.915 - >> $DB_DIR/corrupted 4.916 - fi 4.917 - else 4.918 - ( zcat fs.cpio.gz 2> /dev/null || \ 4.919 - unlzma -c fs.cpio.lzma ) | \ 4.920 - cpio -id >/dev/null 2>&1 4.921 - files=`find fs -type f -o -type l` 4.922 - if [ -z "$files" ]; then 4.923 - echo "Empty filesystem `basename $pkg`" 4.924 - if [ -f $LOG_DIR/$PACKAGE.log ]; then 4.925 - echo "Empty filesystem `basename $pkg` <a href=\"log.php?package=$(escape $PACKAGE)$LOG_SUFFIX\">Log</a>" \ 4.926 - >> $DB_DIR/corrupted 4.927 - else 4.928 - echo "Empty filesystem `basename $pkg`" \ 4.929 - >> $DB_DIR/corrupted 4.930 - fi 4.931 - fi 4.932 - fi 4.933 - fi 4.934 - cd .. && rm -rf $tmp 4.935 - fi 4.936 - done 4.937 - packages_summary_update 4.938 - echo "" 4.939 -} 4.940 - 4.941 -# Generate flavor list 4.942 -gen_flavor_list() 4.943 -{ 4.944 - cd $PACKAGES_REPOSITORY 4.945 - noheader="" 4.946 - for i in *.flavor; do 4.947 - tazlito show-flavor $i --brief $noheader 4.948 - noheader="--noheader" 4.949 - done > flavors.list 4.950 - cd - > /dev/null 4.951 -} 4.952 - 4.953 -case "$1" in 4.954 - list-pkgs) 4.955 - # List last cooked packages. 4.956 - list_packages ;; 4.957 - report) 4.958 - # Run in report mode. If an update is done we must cook-all to 4.959 - # rebuild all updated packages. 4.960 - [ "$2" == "--update" ] && update_wok $@ || echo "" 4.961 - check_wok $@ 4.962 - check_flavors $@ 4.963 - test_packages $@ 4.964 - show_report ;; 4.965 - cook) 4.966 - # Cook, install and log a single package build. 4.967 - if [ -z $2 ]; then 4.968 - echo "Please specify a package on the command line." 4.969 - rm -f $LOCK_FILE && exit 0 4.970 - fi 4.971 - pkg=$2 4.972 - echo "Starting to cook and install: $pkg" 4.973 - if ! cook_package $pkg; then 4.974 - echo "Unable to install: $pkg" 4.975 - fi ;; 4.976 - cook-all) 4.977 - # Update wok, gen report (with cooklist), cook all packages, test, 4.978 - # clean, gen new report and lists. 4.979 - update_wok $@ 4.980 - check_wok $@ 4.981 - cook_install 4.982 - test_packages $@ 4.983 - check_flavors $@ 4.984 - pack_flavors 4.985 - clean_up $@ 4.986 - check_wok $@ 4.987 - echo "(generating lists)" > $DB_DIR/running 4.988 - tazwok gen-list --text 4.989 - check_flavors $@ 4.990 - gen_flavor_list 4.991 - echo "" ;; 4.992 - cook-commit) 4.993 - # Cook all packages affected by the last commits in the wok. 4.994 - # Clean up is done only by cook-all to avoid rebuild of corrupted 4.995 - # packages on each commit. 4.996 - update_wok $@ 4.997 - check_commit 4.998 - cook_install 4.999 - test_packages $@ 4.1000 - check_flavors $@ 4.1001 - pack_flavors 4.1002 - check_wok $@ 4.1003 - check_flavors $@ 4.1004 - echo "(generating lists)" > $DB_DIR/running 4.1005 - tazwok gen-list --text 4.1006 - gen_flavor_list 4.1007 - echo "" ;; 4.1008 - block) 4.1009 - # Add a pkg name to the list of blocked packages. 4.1010 - echo "" 4.1011 - if grep -qs "^$2$" $DB_DIR/blocked; then 4.1012 - echo -e "$2 is already in the blocked packages list." 4.1013 - else 4.1014 - echo -n "Adding $2 to : $DB_DIR/blocked... " 4.1015 - echo "$2" >> $DB_DIR/blocked && echo "Done" 4.1016 - if grep -q "^$2$" $DB_DIR/cooklist; then 4.1017 - echo -n "Removing $2 from : $DB_DIR/cooklist... " 4.1018 - sed -i /"^$2$"/d $DB_DIR/cooklist && echo "Done" 4.1019 - packages_summary_update 4.1020 - fi 4.1021 - fi 4.1022 - blocked_urls 4.1023 - echo "" ;; 4.1024 - unblock) 4.1025 - # Remove a pkg name from the list of blocked packages. 4.1026 - echo "" 4.1027 - if grep -qs "^$2$" $DB_DIR/blocked; then 4.1028 - echo -n "Removing $2 from : $DB_DIR/blocked... " 4.1029 - sed -i /"^$2$"/d $DB_DIR/blocked 4.1030 - sed -i '/^$/d' $DB_DIR/blocked && echo "Done" 4.1031 - echo -n "Adding $2 to : $DB_DIR/cooklist... " 4.1032 - echo "$2" >> $DB_DIR/cooklist && echo "Done" 4.1033 - packages_summary_update 4.1034 - else 4.1035 - echo -e "$2 is not in the blocked packages list." 4.1036 - fi 4.1037 - blocked_urls 4.1038 - echo "" ;; 4.1039 - test-pkgs) 4.1040 - # Start a test suite on all builded packages. 4.1041 - test_packages $@ ;; 4.1042 - test-suite) 4.1043 - # Start a test suite on all builded package and the wok using 4.1044 - # the great 'tazwok check'. 4.1045 - # 4.1046 - # test_packages > $LOG_DIR/test-suite.log 4.1047 - # tazwok check >> $LOG_DIR/test-suite.log 4.1048 - # 4.1049 - test_packages $@ 4.1050 - script -c "tazwok check" $LOG_DIR/test-suite.log ;; 4.1051 - mail) 4.1052 - # Tazbbmail Pythom script wrapper. 4.1053 - PACKAGE=$2 4.1054 - tazbbmail $PACKAGE ;; 4.1055 - clean-up) 4.1056 - # Remove old packages and generate new packages lists. 4.1057 - update_wok $@ 4.1058 - clean_up $@ 4.1059 - packages_summary_update 4.1060 - [ "$2" != "--dry-run" ] && tazwok gen-list --text ;; 4.1061 - clean-log) 4.1062 - logs=`ls $LOG_DIR | wc -l` 4.1063 - echo -n "Cleaning: $LOG_DIR... " 4.1064 - rm -rf $LOG_DIR/* 4.1065 - echo "$logs log removed" ;; 4.1066 - check-receipt) 4.1067 - check_variables $2 && 4.1068 - check_wanted_version $2 && 4.1069 - check_build_depends $2 "" 4.1070 - exit $? ;; 4.1071 - check-depends) 4.1072 - case "$2" in 4.1073 - wok) 4.1074 - for pkg in $PACKAGES_REPOSITORY/*.tazpkg ; do 4.1075 - missing_depends="$(check_depends_pkg $pkg)" 4.1076 - [ -n "$missing_depends" ] && 4.1077 - echo "The package $pkg depends on $missing_depends." 4.1078 - done ;; 4.1079 - package) 4.1080 - pkg=$3 4.1081 - VERBOSE=$4 4.1082 - missing_depends="$(check_depends_pkg $pkg)" 4.1083 - [ -n "$missing_depends" ] && 4.1084 - echo "The package $pkg depends on $missing_depends." 4.1085 - ;; 4.1086 - file) 4.1087 - file=3 4.1088 - VERBOSE=$4 4.1089 - missing_depends="$(check_depends_this_file $file)" 4.1090 - [ -n "$missing_depends" ] && 4.1091 - echo "The file $file depends on $missing_depends." 4.1092 - ;; 4.1093 - *) cat <<EOT 4.1094 -check-depends wok check every package in wok. 4.1095 -check-depends package <pkg> check one package. 4.1096 -check-depends file <filename> check one file only. 4.1097 -EOT 4.1098 - ;; 4.1099 - esac ;; 4.1100 - *) 4.1101 - usage ;; 4.1102 -esac 4.1103 - 4.1104 -echo "" > $DB_DIR/running 4.1105 -rm -f $LOCK_FILE /tmp/files.list.tazbb$$ 4.1106 - 4.1107 -exit 0
5.1 --- a/tazbb/stuff/tazbb.conf Mon May 16 15:34:53 2011 +0200 5.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 5.3 @@ -1,18 +0,0 @@ 5.4 -# tazbb.conf - SliTaz Build Bot configuration file. 5.5 -# 5.6 - 5.7 -# Wok's and packages path. 5.8 -HG_WOK="/home/slitaz/hg/wok" 5.9 -BUILD_WOK="/home/slitaz/wok" 5.10 -HG_FLAVORS="/home/slitaz/hg/flavors" 5.11 -BUILD_FLAVORS="/home/slitaz/flavors" 5.12 -PACKAGES_REPOSITORY="/home/slitaz/packages" 5.13 - 5.14 -# Log files, database and lock file. 5.15 -LOG_DIR="/var/log/tazbb" 5.16 -DB_DIR="/var/lib/tazbb" 5.17 -LOCK_FILE="/var/lock/tazbb.lock" 5.18 - 5.19 -# Path to the online Hg repo. 5.20 -HG_URL="http://hg.slitaz.org/wok" 5.21 -
6.1 --- a/tazbb/stuff/tazbbmail Mon May 16 15:34:53 2011 +0200 6.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 6.3 @@ -1,50 +0,0 @@ 6.4 -#!/usr/bin/python 6.5 -# 6.6 -# Part of SliTaz Build Bot - Send mail with cooklog url to a maintainer. 6.7 -# (C) 2009 SliTaz GNU/Linux project - GNU gpl v3 6.8 -# 6.9 - 6.10 -import sys 6.11 -import smtplib 6.12 - 6.13 -# We need a package name. 6.14 -if len(sys.argv) != 2: 6.15 - print "Usage: tazbbmail package" 6.16 - sys.exit(1) 6.17 - 6.18 -# From, package name, receipt for email and version. 6.19 -mailer = "tazbb@slitaz.org" 6.20 -package = (sys.argv[1]) 6.21 -receipt = "/home/slitaz/wok/%s/receipt" % package 6.22 - 6.23 -for line in open(receipt) : 6.24 - if "VERSION=" in line: 6.25 - version = line.split('"')[1] 6.26 - if "MAINTAINER=" in line: 6.27 - mailto = line.split('"')[1] 6.28 - 6.29 -# Format mail. 6.30 -subject = "[tazbb] Unbuilt %s Cooklog" % package 6.31 -cooklog = "http://bb.slitaz.org/log/%s.log" % package 6.32 - 6.33 -message = """\ 6.34 -From: %s 6.35 -To: %s 6.36 -Subject: %s 6.37 - 6.38 -Package : %s 6.39 -Version : %s 6.40 -Cooklog : %s 6.41 - 6.42 --- 6.43 -Tazbb Mailer 6.44 -""" % (mailer, mailto, subject, package, version, cooklog) 6.45 - 6.46 -# Send mail. 6.47 -try: 6.48 - server = smtplib.SMTP("localhost") 6.49 - server.sendmail(mailer, mailto, message) 6.50 - server.quit() 6.51 - print "Successfully sent mail to: %s" % mailto 6.52 -except SMTPException: 6.53 - print "Unable to send mail"
7.1 --- a/tazbb/stuff/web/conf.php Mon May 16 15:34:53 2011 +0200 7.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 7.3 @@ -1,12 +0,0 @@ 7.4 -<?php 7.5 - 7.6 -// Tazbb web interface configuration 7.7 - 7.8 -$chroot = "/home/slitaz/$version/chroot"; 7.9 -$lockfile = "$chroot/var/lock/tazbb.lock"; 7.10 -$db_dir = "$chroot/var/lib/tazbb"; 7.11 -$log_dir = "$chroot/var/log/tazbb"; 7.12 -$packages = "$chroot/home/slitaz/packages"; 7.13 -$hgurl = "http://hg.slitaz.org/$wok"; 7.14 - 7.15 -?>
8.1 Binary file tazbb/stuff/web/favicon.ico has changed
9.1 --- a/tazbb/stuff/web/index.php Mon May 16 15:34:53 2011 +0200 9.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 9.3 @@ -1,202 +0,0 @@ 9.4 -<?php 9.5 -$version='cooking'; 9.6 -$notversion='stable'; 9.7 -$wok='wok'; 9.8 -if (isset($_GET['stable'])) { 9.9 - $version='stable'; 9.10 - $notversion='cooking'; 9.11 - $wok='wok-stable'; 9.12 -} 9.13 -include("conf.php"); 9.14 -?> 9.15 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 9.16 - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 9.17 -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 9.18 -<head> 9.19 - <title>SliTaz Build Bot</title> 9.20 - <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 9.21 - <meta name="description" content="Tazbb web interface" /> 9.22 - <meta name="robots" content="index nofollow" /> 9.23 - <link rel="shortcut icon" href="favicon.ico" /> 9.24 - <link rel="stylesheet" type="text/css" href="slitaz.css" /> 9.25 -</head> 9.26 -<body> 9.27 - 9.28 -<!-- Header --> 9.29 -<div id="header"> 9.30 - <!-- Access --> 9.31 - <div id="access"> 9.32 - <a href="/<?php if ($version != 'stable') 9.33 - echo "?stable"; ?>" title="Slitaz <?php 9.34 - echo $notversion ?> packages"><?php echo $notversion ?></a> 9.35 - </div> 9.36 - <a href="http://bb.slitaz.org/"><img id="logo" 9.37 - src="pics/website/logo.png" 9.38 - title="bb.slitaz.org" alt="bb.slitaz.org" /></a> 9.39 - <p id="titre">#!/Build/Bot/<?php echo $version; ?></p> 9.40 -</div> 9.41 - 9.42 -<!-- Content --> 9.43 -<div id="content-full"> 9.44 - 9.45 -<!-- Block begin --> 9.46 -<div class="block"> 9.47 - <!-- Nav block begin --> 9.48 - <div id="block_nav"> 9.49 - <h3><img src="pics/website/development.png" alt="devel.png" />Developers</h3> 9.50 - <ul> 9.51 - <li><a href="http://www.slitaz.org/en/devel/">Website/devel</a></li> 9.52 - <li><a href="http://labs.slitaz.org/">Laboratories</a></li> 9.53 - <li><a href="http://hg.slitaz.org/">Mercurial Repos</a></li> 9.54 - <li><a href="http://people.slitaz.org/">People Stuff</a></li> 9.55 - <li><a href="http://scn.slitaz.org/">Community Network</a></li> 9.56 - </ul> 9.57 - <!-- Nav block end --> 9.58 - </div> 9.59 - <!-- Top block begin --> 9.60 - <div id="block_top"> 9.61 - <h1>Build Bot</h1> 9.62 - <p> 9.63 - Tazbb is a <a href="http://www.slitaz.org/">SliTaz GNU/Linux</a> 9.64 - Build Bot, it automatically cooks and tests packages commited in 9.65 - the wok. SliTaz <a href="http://pkgs.slitaz.org/">packages</a> are 9.66 - cooked on the project main server: code name 9.67 - <a href="http://tank.slitaz.org">Tank</a>. This web interface gives 9.68 - the current status of the build bot and the last report 9.69 - about any packages modified by the SliTaz contributors in 9.70 - the Mercurial repositories, aka 9.71 - <a href="http://hg.slitaz.org/">Hg repos</a>. 9.72 - </p> 9.73 - <!-- Top block end --> 9.74 - </div> 9.75 -<!-- Block end --> 9.76 -</div> 9.77 - 9.78 -<h2>Cooklog</h2> 9.79 - 9.80 -<p> 9.81 - <form action="log.php" method="get"> 9.82 - <?php 9.83 - if ($version == 'stable') 9.84 - echo '<input type="hidden" name="stable" value="1" />'; 9.85 - ?> Show pkg log: <input type="text" name="package" style="width: 300px;" /> 9.86 - <!-- <input type="submit" value="Show" /> --> 9.87 - </form> 9.88 -</p> 9.89 - 9.90 -<h3>Summary</h3> 9.91 -<pre class="package"> 9.92 -<?php 9.93 - 9.94 -// Check curent status (update in real time) and display summary. 9.95 - 9.96 -if (file_exists($lockfile)) { 9.97 - echo "Status : Running "; 9.98 - include("$db_dir/running"); 9.99 -} 9.100 -else { 9.101 - echo "Status : Not currently running\n"; 9.102 -} 9.103 -include("$db_dir/summary"); 9.104 - 9.105 -?> 9.106 -</pre> 9.107 - 9.108 -<h3>Report</h3> 9.109 -<pre class="package"> 9.110 -<?php 9.111 -include("$db_dir/report"); 9.112 -?> 9.113 -</pre> 9.114 - 9.115 -<h3>Genpkglist</h3> 9.116 -<pre class="package"> 9.117 -<?php 9.118 -include("$db_dir/genpkglist"); 9.119 -?> 9.120 -</pre> 9.121 - 9.122 -<h3>Cooklist</h3> 9.123 -<pre class="package"> 9.124 -<?php 9.125 -include("$db_dir/cooklist"); 9.126 -?> 9.127 -</pre> 9.128 - 9.129 -<h3>Unbuilt</h3> 9.130 -<pre class="package"> 9.131 -<?php 9.132 -include("$db_dir/unbuilt"); 9.133 -?> 9.134 -</pre> 9.135 - 9.136 -<h3>Blocked</h3> 9.137 -<pre class="package"> 9.138 -<?php 9.139 -include("$db_dir/blocked.urls"); 9.140 -?> 9.141 -</pre> 9.142 - 9.143 -<h3>Corrupted</h3> 9.144 -<pre class="package"> 9.145 -<?php 9.146 -include("$db_dir/corrupted"); 9.147 -?> 9.148 -</pre> 9.149 - 9.150 -<h3>Last cooked packages</h3> 9.151 -<pre class="package"> 9.152 -<?php 9.153 -system("cd $packages && ls -1t *.tazpkg | head -20 | \ 9.154 - while read file; do echo -n \$(stat -c '%y' $packages/\$file | \ 9.155 - cut -d. -f1); echo ' '\$file; done"); ?> 9.156 -</pre> 9.157 - 9.158 -<h3>Last removed packages</h3> 9.159 -<pre class="package"> 9.160 -<?php 9.161 -include("$db_dir/removed"); 9.162 -?> 9.163 -</pre> 9.164 - 9.165 -<h3>Last cooked flavors</h3> 9.166 -<pre class="package"> 9.167 -<?php 9.168 -system("cd $packages && ls -1t *.flavor | head -20 | \ 9.169 - while read file; do echo -n \$(stat -c '%y' $packages/\$file | \ 9.170 - cut -d. -f1); echo ' '\$file; done"); ?> 9.171 -</pre> 9.172 - 9.173 -<!-- End of content --> 9.174 -</div> 9.175 - 9.176 -<!-- Footer --> 9.177 -<div id="footer"> 9.178 - <div class="right_box"> 9.179 - <h4>SliTaz Network</h4> 9.180 - <ul> 9.181 - <li><a href="http://www.slitaz.org/">Main Website</a></li> 9.182 - <li><a href="http://doc.slitaz.org/">Documentation</a></li> 9.183 - <li><a href="http://forum.slitaz.org/">Support Forum</a></li> 9.184 - <li><a href="http://scn.slitaz.org/">Community Network</a></li> 9.185 - <li><a href="http://labs.slitaz.org/">Laboratories</a></li> 9.186 - <li><a href="http://twitter.com/slitaz">SliTaz on Twitter</a></li> 9.187 - </ul> 9.188 - </div> 9.189 - <h4>SliTaz Website</h4> 9.190 - <ul> 9.191 - <li><a href="#header">Top of the page</a></li> 9.192 - <li>Copyright © <span class="year"></span> 9.193 - <a href="http://www.slitaz.org/">SliTaz</a></li> 9.194 - <li><a href="http://www.slitaz.org/en/about/">About the project</a></li> 9.195 - <li><a href="http://www.slitaz.org/netmap.php">Network Map</a></li> 9.196 - <li>Page modified the <?php echo (date( "d M Y", getlastmod())); ?></li> 9.197 - <li><a href="http://validator.w3.org/check?uri=referer"><img 9.198 - src="pics/website/xhtml10.png" alt="Valid XHTML 1.0" 9.199 - title="Code validé XHTML 1.0" 9.200 - style="width: 80px; height: 15px; vertical-align: middle;" /></a></li> 9.201 - </ul> 9.202 -</div> 9.203 - 9.204 -</body> 9.205 -</html>
10.1 --- a/tazbb/stuff/web/log.php Mon May 16 15:34:53 2011 +0200 10.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 10.3 @@ -1,122 +0,0 @@ 10.4 -<?php 10.5 -$version='cooking'; 10.6 -$wok='wok'; 10.7 -if (isset($_GET['stable'])) { 10.8 - $version='stable'; 10.9 - $wok='wok-stable'; 10.10 -} 10.11 -include("conf.php"); 10.12 -?> 10.13 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 10.14 - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 10.15 -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 10.16 -<head> 10.17 - <title>Tazbb cooklog <?php echo $_GET['package']; ?></title> 10.18 - <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 10.19 - <meta name="description" content="Tazbb web interface cooklog" /> 10.20 - <meta name="robots" content="index nofollow" /> 10.21 - <link rel="shortcut icon" href="favicon.ico" /> 10.22 - <link rel="stylesheet" type="text/css" href="slitaz.css" /> 10.23 -</head> 10.24 -<body> 10.25 - 10.26 -<!-- Header --> 10.27 -<div id="header"> 10.28 - <a href="http://bb.slitaz.org/"><img id="logo" 10.29 - src="pics/website/logo.png" 10.30 - title="bb.slitaz.org" alt="bb.slitaz.org" /></a> 10.31 - <p id="titre">#!/Build/Bot<?php if ($version == 'stable') echo '/stable'; ?></p> 10.32 -</div> 10.33 - 10.34 -<!-- Content --> 10.35 -<div id="content-full"> 10.36 - 10.37 -<!-- Block begin --> 10.38 -<div class="block"> 10.39 - <!-- Nav block begin --> 10.40 - <div id="block_nav"> 10.41 - <h3><img src="pics/website/development.png" alt="devel.png" />Developers</h3> 10.42 - <ul> 10.43 - <li><a href="http://www.slitaz.org/en/devel/">Website/devel</a></li> 10.44 - <li><a href="http://labs.slitaz.org/">Laboratories</a></li> 10.45 - <li><a href="http://hg.slitaz.org/">Mercurial Repos</a></li> 10.46 - <li><a href="http://people.slitaz.org/">People Stuff</a></li> 10.47 - <li><a href="http://scn.slitaz.org/">Community Network</a></li> 10.48 - </ul> 10.49 - <!-- Nav block end --> 10.50 - </div> 10.51 - <!-- Top block begin --> 10.52 - <div id="block_top"> 10.53 - <h1>Cooklog</h1> 10.54 - <p> 10.55 - The BuildBot generated cooklog file to help debug packages 10.56 - and check the build process. 10.57 - </p> 10.58 - <!-- Top block end --> 10.59 - </div> 10.60 -<!-- Block end --> 10.61 -</div> 10.62 - 10.63 -<h2>Search</h2> 10.64 - 10.65 -<p> 10.66 -<form action="log.php" method="get"> 10.67 - <input type="text" name="package" style="width: 300px;" /> 10.68 - <!-- <input type="submit" value="Show" /> --> 10.69 -<?php 10.70 - 10.71 -if ($_GET['package']) { 10.72 - $pkg = $_GET["package"]; 10.73 - if (file_exists("$log_dir/$pkg.log")) { 10.74 - echo " Package $pkg: "; 10.75 - echo '<a href="' . "log/$pkg.log" . '">Raw log</a> ' . "\n"; 10.76 - echo '</form></p>'; 10.77 - echo '<pre class="log">' . "\n"; 10.78 - echo date ("F d Y H:i:s", filemtime("log/$pkg.log"))."\n"; 10.79 - include("$log_dir/$pkg.log"); 10.80 - echo '</pre>'; 10.81 - } 10.82 - else { 10.83 - echo " No log file found for: $pkg"; 10.84 - echo '</form></p>'; 10.85 - } 10.86 -} 10.87 -else { 10.88 - echo '</form></p>'; 10.89 -} 10.90 - 10.91 -?> 10.92 - 10.93 -<!-- End of content --> 10.94 -</div> 10.95 - 10.96 -<!-- Footer --> 10.97 -<div id="footer"> 10.98 - <div class="right_box"> 10.99 - <h4>SliTaz Network</h4> 10.100 - <ul> 10.101 - <li><a href="http://www.slitaz.org/">Main Website</a></li> 10.102 - <li><a href="http://doc.slitaz.org/">Documentation</a></li> 10.103 - <li><a href="http://forum.slitaz.org/">Support Forum</a></li> 10.104 - <li><a href="http://scn.slitaz.org/">Community Network</a></li> 10.105 - <li><a href="http://labs.slitaz.org/">Laboratories</a></li> 10.106 - <li><a href="http://twitter.com/slitaz">SliTaz on Twitter</a></li> 10.107 - </ul> 10.108 - </div> 10.109 - <h4>SliTaz Website</h4> 10.110 - <ul> 10.111 - <li><a href="#header">Top of the page</a></li> 10.112 - <li>Copyright © <span class="year"></span> 10.113 - <a href="http://www.slitaz.org/">SliTaz</a></li> 10.114 - <li><a href="http://www.slitaz.org/en/about/">About the project</a></li> 10.115 - <li><a href="http://www.slitaz.org/netmap.php">Network Map</a></li> 10.116 - <li>Page modified the <?php echo (date( "d M Y", getlastmod())); ?></li> 10.117 - <li><a href="http://validator.w3.org/check?uri=referer"><img 10.118 - src="pics/website/xhtml10.png" alt="Valid XHTML 1.0" 10.119 - title="Code validé XHTML 1.0" 10.120 - style="width: 80px; height: 15px; vertical-align: middle;" /></a></li> 10.121 - </ul> 10.122 -</div> 10.123 - 10.124 -</body> 10.125 -</html>
11.1 Binary file tazbb/stuff/web/pics/website/development.png has changed
12.1 Binary file tazbb/stuff/web/pics/website/header-img.png has changed
13.1 Binary file tazbb/stuff/web/pics/website/logo.png has changed
14.1 Binary file tazbb/stuff/web/pics/website/xhtml10.png has changed
15.1 --- a/tazbb/stuff/web/slitaz.css Mon May 16 15:34:53 2011 +0200 15.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 15.3 @@ -1,447 +0,0 @@ 15.4 -/* 15.5 - CSS style for SliTaz Network - (c) 2011 SliTaz GNU/Linux 15.6 -*/ 15.7 - 15.8 -html { 15.9 - min-height: 102%; 15.10 -} 15.11 -body { 15.12 - background: #ffffff; 15.13 - color: black; 15.14 - font: 13px sans-serif, vernada, arial; 15.15 - margin: 0; 15.16 - border-top: 34px solid #f1f1f1; 15.17 -} 15.18 -a { text-decoration: underline; color: #103a5e; } 15.19 -a:hover { text-decoration: none; color: blue; } 15.20 -img { border: 0pt none; } 15.21 - 15.22 -/* Accessibility */ 15.23 - 15.24 -#access { 15.25 - position: absolute; 15.26 - top: 4px; 15.27 - right: 0px; 15.28 - text-align: right; 15.29 - width: auto; 15.30 - margin: 0; 15.31 - padding: 4px 4px 4px 20px; 15.32 - font-size: 11px; 15.33 - font-weight: bold; 15.34 -} 15.35 -#access a { 15.36 - background: transparent; 15.37 - color: #0F314E; 15.38 - text-decoration: none; 15.39 -} 15.40 -#access a:hover { color: #b64b22; } 15.41 -#access img { vertical-align: middle; } 15.42 - 15.43 -/* Header */ 15.44 - 15.45 -#header { 15.46 - background: #351a0a url(pics/website/header-img.png) no-repeat top right; 15.47 - color: black; 15.48 - width: 100%; 15.49 - height: 42px; 15.50 - border-top: 1px solid black; 15.51 - border-bottom: 1px solid #999; 15.52 - margin-bottom: 33px; 15.53 -} 15.54 -#titre { 15.55 - position: absolute; 15.56 - font-size: 14px; 15.57 - font-weight: bolder ; 15.58 - left: 180px; 15.59 - top: 4px; 15.60 -} 15.61 -#logo { 15.62 - position: absolute; 15.63 - float: left; 15.64 - left: 16px; 15.65 - top: -10px; 15.66 - width: 200px; 15.67 - height: 74px; 15.68 -} 15.69 - 15.70 -/* Side bar */ 15.71 - 15.72 -#nav { 15.73 - position: absolute; 15.74 - top: 102px; 15.75 - right: 80px; 15.76 - color: #555555; 15.77 - float: right; 15.78 - width: 250px; 15.79 - line-height: 1.5em; 15.80 - text-align: left; 15.81 - font-size: 12px; 15.82 -} 15.83 -#nav h4 { 15.84 - font-size: 120%; 15.85 - color: #666666; 15.86 - font-weight: bold; 15.87 - margin: 0; 15.88 - padding: 0 0 1px 0; 15.89 - border-bottom: 1px solid #cecece; 15.90 -} 15.91 -#nav a { 15.92 - color: #0F314E; 15.93 - background: inherit; 15.94 - display: block; 15.95 - text-decoration: none; 15.96 - font-weight: bold; 15.97 -} 15.98 -#nav a:hover { 15.99 - color: #b64b22; 15.100 - text-decoration: none; 15.101 - display: block; 15.102 -} 15.103 -#nav .nav_box ul { 15.104 - list-style-type: none; 15.105 - margin: 0; 15.106 - padding: 10px 24px 10px 0px; 15.107 - background-color: inherit; 15.108 -} 15.109 -#nav li { display: inline; } 15.110 -#nav ul { 15.111 - -moz-border-radius: 8px; 15.112 - -webkit-border-radius: 8px; 15.113 - border-radius: 8px; 15.114 - list-style-type: none; 15.115 - margin: 10px 0; 15.116 - padding: 10px 24px 10px 24px; 15.117 - background-color: #eaeaea; 15.118 -} 15.119 -.nav_box { 15.120 - margin: 10px 0; 15.121 - padding: 10px 24px 10px 24px; 15.122 - background-color: #eaeaea; 15.123 - text-align: justify; 15.124 -} 15.125 -#nav .nav_box p { line-height: 1.3em; } 15.126 -#nav .nav_box p a { 15.127 - display: inline; 15.128 - font-weight: normal; 15.129 - text-decoration: underline; 15.130 -} 15.131 -#nav .nav_box p a:hover { 15.132 - text-decoration: none; 15.133 - color: blue; 15.134 - background: inherit; 15.135 -} 15.136 - 15.137 -/* Page content */ 15.138 - 15.139 -#content, #content-full { 15.140 - background: white; 15.141 - color: black; 15.142 - text-align: justify; 15.143 - height: auto; 15.144 -} 15.145 -#content, #content-full { 15.146 - margin: 6px 320px 0px 0px; 15.147 - padding: 0px 40px 60px 80px; 15.148 -} 15.149 -#content-full { 15.150 - margin: 0; 15.151 - padding: 0px 80px 40px 80px; 15.152 -} 15.153 -#content li, #content-full li { 15.154 - line-height: 1.5em; 15.155 - text-align: left; 15.156 -} 15.157 -#news li { 15.158 - list-style-type: square; 15.159 - border-bottom: 1px dotted #BEBEBE; 15.160 - margin-left: -25px; 15.161 - padding: 4px 0px 4px 0px; 15.162 -} 15.163 -#news a { text-decoration: none; } 15.164 - 15.165 -/* Box and block. */ 15.166 - 15.167 -.infobox { 15.168 - margin: 20px 60px; 15.169 - padding: 12px; 15.170 - background: #f8f8f8; 15.171 -} 15.172 -.infobox img { vertical-align: middle; } 15.173 -.infobox:hover { background-color: #FBFBFB; } 15.174 -.block { 15.175 - /*padding-bottom: 35%;*/ 15.176 - color: black; 15.177 - min-height: 200px; 15.178 - margin-bottom: 40px; 15.179 -} 15.180 -.block ul { 15.181 - list-style-type: none; 15.182 - margin: 0; 15.183 - padding: 0 20px; 15.184 -} 15.185 -.block_left { 15.186 - width: 46%; 15.187 - float: left; 15.188 - background-color: #eaeaea; 15.189 - margin: 4px 2px; 15.190 - padding: 0 10px 10px 10px; 15.191 -} 15.192 -.block_right { 15.193 - width: 46%; 15.194 - float: right; 15.195 - background-color: #eaeaea; 15.196 - margin: 4px 2px; 15.197 - padding: 0 10px 10px 10px; 15.198 -} 15.199 -#block_top { 15.200 - color: black; 15.201 - background-color: #eaeaea; 15.202 - min-height: 180px; 15.203 - margin-bottom: 40px; 15.204 - margin-right: 340px; 15.205 - padding: 0 10px; 15.206 -} 15.207 -#block_nav { 15.208 - width: 300px; 15.209 - min-height: 180px; 15.210 - float: right; 15.211 - background-color: #eaeaea; 15.212 - margin: 0; 15.213 - padding: 0 10px; 15.214 -} 15.215 -.nav_box, .infobox, .block_left, .block_right, #block_top, 15.216 -#block_nav, #footer { 15.217 - -moz-border-radius: 8px; 15.218 - -webkit-border-radius: 8px; 15.219 - border-radius: 8px; 15.220 - -moz-box-shadow: 0 1px 3px #666; 15.221 - -webkit-box-shadow: 0 1px 3px #666; 15.222 - box-shadow: 0 1px 3px #666; 15.223 - /* CSS3 transition */ 15.224 - -webkit-transition-property: background-color; 15.225 - -webkit-transition-duration: 2s; 15.226 - -moz-transition-property: background-color; 15.227 - -moz-transition-duration: 2s; 15.228 - transition-property: background-color; 15.229 - transition-duration: 2s; 15.230 -} 15.231 -#block_nav { font-weight: bold; } 15.232 -#block_nav a { text-decoration: none; } 15.233 -#block_nav li a:hover { color: #b64b22; } 15.234 -#block_nav ul { margin: 0; list-style-type: none; } 15.235 -#block_nav h3 { font-size: 110%; } 15.236 -.nav_box:hover, .block_left:hover, .block_right:hover, 15.237 -#block_top:hover, #block_nav:hover, #footer:hover { 15.238 - background-color: #f8f8f8; 15.239 -} 15.240 -.right_box { 15.241 - width: 50%; 15.242 - float: right; 15.243 -} 15.244 -/* Text transform at 45deg */ 15.245 -.floor { 15.246 - color: #999999; 15.247 - font-size: 20px; 15.248 - -webkit-transform: rotate(-45deg) skew(15deg, 15deg); 15.249 - -moz-transform: rotate(-45deg) skew(15deg, 15deg); 15.250 - -o-transform: rotate(-45deg) skew(15deg, 15deg); 15.251 - -ms-transform: rotate(-45deg) skew(15deg, 15deg); 15.252 - transform: rotate(-45deg) skew(15deg, 15deg); 15.253 -} 15.254 -#twitter, .feedbox { 15.255 - margin-top: 20px; 15.256 - -moz-border-radius: 8px; 15.257 - -webkit-border-radius: 8px; 15.258 - border-radius: 8px; 15.259 - -moz-box-shadow: 0 1px 3px #666; 15.260 - -webkit-box-shadow: 0 1px 3px #666; 15.261 - box-shadow: 0 1px 3px #666; 15.262 -} 15.263 -.feedbox { 15.264 - background-color: #f9f9f9; 15.265 - padding: 10px 20px; 15.266 - margin: 20px 100px; 15.267 -} 15.268 -.feedbox div { 15.269 - height: 320px; 15.270 - overflow: auto; 15.271 -} 15.272 -.feedbox ul { list-style-type: none; margin: 0; } 15.273 - 15.274 -/* Button */ 15.275 - 15.276 -.button { margin-left: 20px; } 15.277 -.button a { 15.278 - background-color: #b64b22; 15.279 - color: #ffffff; 15.280 - margin-right: 6px; 15.281 - padding: 6px 10px; 15.282 - font-size: 14px; 15.283 - -moz-border-radius: 4px; 15.284 - -webkit-border-radius: 4px; 15.285 - border-radius: 4px; 15.286 - -moz-box-shadow: 0 1px 3px #666; 15.287 - -webkit-box-shadow: 0 1px 3px #666; 15.288 - box-shadow: 0 1px 3px #666; 15.289 -} 15.290 -.button a:hover, input[type=submit]:hover { 15.291 - background-color: #a3431f; 15.292 - color: #ffffff; 15.293 -} 15.294 -input[type=submit] { 15.295 - border: 1px solid #b64b22; 15.296 - background-color: #b64b22; 15.297 - color: white; 15.298 - font-weight: bold; 15.299 - cursor: pointer; 15.300 - padding: 3px 10px; 15.301 - font-size: 14px; 15.302 - -moz-border-radius: 2px; 15.303 - -webkit-border-radius: 2px; 15.304 - border-radius: 2px; 15.305 - -moz-box-shadow: 0 0 5px #666; 15.306 - -webkit-box-shadow: 0 0 5px#666; 15.307 - box-shadow: 0 0 5px #666; 15.308 - margin-left: -5px; 15.309 -} 15.310 -input[type=text] { 15.311 - border: 1px solid #333333; 15.312 - padding: 3px; 15.313 - width: 100%; 15.314 -} 15.315 - 15.316 -/* Clouds */ 15.317 - 15.318 -#cloud { 15.319 - padding: 10px 0px; 15.320 - line-height: 3em; 15.321 - text-align: center; 15.322 -} 15.323 -#cloud a { padding: 0 2px; color: #444444; } 15.324 -#cloud a.tag1 { font-size: 0.7em; font-weight: 100; } 15.325 -#cloud a.tag2 { font-size: 0.8em; font-weight: 200; } 15.326 -#cloud a.tag3 { font-size: 0.9em; font-weight: 300; } 15.327 -#cloud a.tag4 { font-size: 1.0em; font-weight: 400; } 15.328 -#cloud a.tag5 { font-size: 1.2em; font-weight: 500; } 15.329 -#cloud a.tag6 { font-size: 1.4em; font-weight: 600; } 15.330 -#cloud a.tag7 { font-size: 1.6em; font-weight: 700; } 15.331 -#cloud a.tag8 { font-size: 1.8em; font-weight: 800; } 15.332 -#cloud a.tag9 { font-size: 2.2em; font-weight: 900; } 15.333 -#cloud a.tag10 { font-size: 2.5em; font-weight: 900; } 15.334 - 15.335 -/* Slideshow and gallery */ 15.336 - 15.337 -#slideshow 15.338 -{ 15.339 - overflow: hidden; 15.340 - margin: 10px auto 10px; 15.341 - position: relative; 15.342 - width: 260px; 15.343 - height: 163px; 15.344 -} 15.345 -#slideshow img 15.346 -{ 15.347 - border: 0; 15.348 - width: 260px; 15.349 - height: 163px; 15.350 -} 15.351 -#gallery { text-align: center; } 15.352 - 15.353 -/* HTML styles */ 15.354 - 15.355 -h1 { 15.356 - color: #444444; 15.357 - background: transparent; 15.358 - text-align: left; 15.359 - margin: 0px 0px 4px 0px; 15.360 - font-size: 150%; 15.361 - font-weight: bold; 15.362 - padding: 5px 0 0 10px; 15.363 -} 15.364 -h2 { 15.365 - color: #b64b22; 15.366 - padding: 0; 15.367 - margin: 20px 0 0 0; 15.368 - font-size: 130%; 15.369 - font-weight: bold; 15.370 -} 15.371 -h3 { 15.372 - font-weight: bold; 15.373 - color: #666666; 15.374 - background: transparent; 15.375 -} 15.376 -h3 img, h2 img { 15.377 - vertical-align: middle; 15.378 - width: 20px; 15.379 - height: 20px; 15.380 - padding-right: 4px; 15.381 -} 15.382 -code, tt { 15.383 - font-size: 12px; 15.384 - color: #669900; 15.385 -} 15.386 -pre, pre.script { 15.387 - padding: 10px; 15.388 - color: black; 15.389 - background: #E8E8E8; 15.390 - border: 1px inset #606060; 15.391 -} 15.392 - 15.393 -/* Packages pages */ 15.394 - 15.395 -.pkg_nav { 15.396 - border-top: 1px solid black; 15.397 - margin-top: 10px; 15.398 - padding-top: 10px; 15.399 -} 15.400 -pre.package { 15.401 - padding: 0px; 15.402 - color: black; 15.403 - background: white; 15.404 - border: 0px solid white; 15.405 -} 15.406 -p.get { 15.407 - text-align: center; 15.408 - padding: 10px; 15.409 - color: black; 15.410 - background: #F3F3F3; 15.411 - border: 1px solid #DEDEDE; 15.412 - border-radius: 4px; 15.413 - -moz-border-radius: 4px; 15.414 - -webkit-border-radius: 4px; 15.415 -} 15.416 -p.get a { 15.417 - font-weight: bold; 15.418 - text-decoration: none; 15.419 -} 15.420 -.pkgs-search { 15.421 - text-align: center; 15.422 - padding: 40px 20px 80px 20px; 15.423 -} 15.424 - 15.425 -/* Footer */ 15.426 - 15.427 -#footer { 15.428 - margin: 0px 80px 80px 80px; 15.429 - padding: 10px; 15.430 - background: #eaeaea; 15.431 - color: #666666; 15.432 - height: 180px; 15.433 - clear: both; 15.434 - border-radius: 8px; 15.435 - -moz-border-radius: 8px; 15.436 - -webkit-border-radius: 8px; 15.437 - -moz-box-shadow: 0 1px 3px #666; 15.438 - -webkit-box-shadow: 0 1px 3px #666; 15.439 - box-shadow: 0 1px 3px #666; 15.440 -} 15.441 -#footer a { color: #666666; } 15.442 -#footer a:hover { color: #333333; } 15.443 -#footer ul { list-style-type: none; } 15.444 -#footer li { padding: 2px; } 15.445 -#footer h4 { margin: 0 20px; font-size: 125%; } 15.446 - 15.447 -.year:after { 15.448 - /* content: "2007-2011"; */ 15.449 - content: "2011"; 15.450 -}