# HG changeset patch # User Aleksej Bobylev # Date 1431000707 -10800 # Node ID da66e6be1add990add5b95f8efebaf72d5d6a371 # Parent c21a7ba0d29cea932d7ab0ce7c53ebd99d2bff51 Move to using short i18n functions with "printf", so rewrite sources and po files. Fix: stripping before list files (python packages listed missed .pyc files). Also remove few hacks from code, make pot and msgmerge. diff -r c21a7ba0d29c -r da66e6be1add Makefile --- a/Makefile Sun May 03 19:43:46 2015 +0300 +++ b/Makefile Thu May 07 15:11:47 2015 +0300 @@ -75,7 +75,7 @@ # i18n pot: - xgettext -o po/cook.pot -k_ -k_n -L Shell -cL10n \ + xgettext -o po/cook.pot -k_ -k_n -k_p:1,2 -L Shell -cL10n \ --copyright-holder="SliTaz Association" \ --package-name="Cook" \ --package-version="$(VERSION)" \ diff -r c21a7ba0d29c -r da66e6be1add cook --- a/cook Sun May 03 19:43:46 2015 +0300 +++ b/cook Thu May 07 15:11:47 2015 +0300 @@ -6,20 +6,20 @@ # Copyright (C) SliTaz GNU/Linux - GNU gpl v3 # Author: Christophe Lincoln # + . /usr/lib/slitaz/libcook.sh VERSION="3.2" + # Internationalization. -. /usr/bin/gettext.sh -TEXTDOMAIN='cook' -export TEXTDOMAIN -_() echo -e "$(eval_gettext "$1")" -_n() echo -en "$(eval_gettext "$1")" -# to disable i18n: -# _() echo -e "$1" -# _n() echo -en "$1" +export TEXTDOMAIN='cook' +_() { local T="$1"; shift; printf "$(gettext "$T")" "$@"; echo; } +_n() { local T="$1"; shift; printf "$(gettext "$T")" "$@"; } +_p() { + local S="$1" P="$2" N="$3"; shift; shift; shift; + printf "$(ngettext "$S" "$P" "$N")" "$@"; } # @@ -27,176 +27,195 @@ # usage() { - cat << EOT + cat < + --clean -c $(_ 'clean the package in the wok.') + --install -i $(_ 'cook and install the package.') + --getsrc -gs $(_ 'get the package source tarball.') + --block -b $(_ 'block a package so cook will skip it.') + --unblock -ub $(_ 'unblock a blocked package.') + --cdeps $(_ 'check dependencies of cooked package.') + --pack $(_ 'repack an already built package.') + --debug $(_ 'display debugging messages.') + --continue $(_ 'continue running compile_rules.') +cook new + --interactive -x $(_ 'create a receipt interactively.') +cook setup + --wok $(_ 'clone the cooking wok from Hg repo.') + --stable $(_ 'clone the stable wok from Hg repo.') + --undigest $(_ 'clone the undigest wok from Hg repo.') + --tiny $(_ 'clone the tiny SliTaz wok from Hg repo.') + --forced $(_ 'force reinstall of chroot packages.') +cook pkgdb + --flavors $(_ 'create up-to-date flavors files.') EOT exit 0 } + # We don't want these escapes in web interface. + clean_log() { sed -i -e s'|\[70G\[ \[1;32m| |' \ -e s'|\[0;39m \]||' $LOGS/$pkg.log } + # Be sure package exists in wok. + check_pkg_in_wok() { if [ ! -d "$WOK/$pkg" ]; then - newline; _ "Unable to find package in the wok: \$pkg"; newline + newline; _ 'Unable to find package "%s" in the wok' "$pkg"; newline exit 1 fi } + if_empty_value() { if [ -z "$value" ]; then # L10n: QA is quality assurance - _ "QA: empty variable: \${var}=\"\""; newline + _ 'QA: empty variable: %s' "$var=\"\""; newline exit 1 fi } + # Initialize files used in $CACHE + init_db_files() { - _ "Creating directories structure in: \$SLITAZ" + _ 'Creating directories structure in "%s"' "$SLITAZ" mkdir -p $WOK $PKGS $SRC $CACHE $LOGS $FEEDS - _ "Creating DB files in: \$CACHE" - for f in $activity $command $broken $blocked - do + _ 'Creating DB files in "%s"' "$CACHE" + for f in $activity $command $broken $blocked; do touch $f done } + # QA: check a receipt consistency before building. + receipt_quality() { - _ "QA: checking package receipt..." + _ 'QA: checking package receipt...' unset online if ifconfig | grep -q -A 1 "^[a-z]*[0-9]" | fgrep 'addr:'; then - online="online" + online='online' fi - for var in PACKAGE VERSION CATEGORY SHORT_DESC MAINTAINER WEB_SITE - do + for var in PACKAGE VERSION CATEGORY SHORT_DESC MAINTAINER WEB_SITE; do unset value - value="$(. $receipt ; eval echo \$$var)" + value="$(. $receipt; eval echo \$$var)" case "$var" in PACKAGE|VERSION|SHORT_DESC) if_empty_value ;; CATEGORY) - [ -z "$value" ] && value="empty" + value="${value:-empty}" valid="$(echo $PKGS_CATEGORIES)" # avoid newlines - if ! echo "$valid" | grep -q -w "$value"; then - _ "QA: unknown category: \$value" - _ "Please, use one of: \$valid" | busybox fold -s - newline; exit 1 + if ! echo " $valid " | grep -q " $value "; then + _ 'QA: unknown category "%s"' "$value" + longline "$(_ 'Please, use one of: %s' "$valid")" + newline + exit 1 fi ;; WEB_SITE) # We don't check WGET_URL since if dl is needed it will fail. # Break also if we're not online. Here error is not fatal. if_empty_value - [ -z "$online" ] || break + [ -z "$online" ] && break if ! busybox wget -T 12 -s $value 2>/dev/null; then - _ "QA: unable to reach: \$value" + _ 'QA: unable to reach "%s"' "$value" fi ;; esac done } + # Paths used in receipt and by cook itself. + set_paths() { - pkgdir=$WOK/$PACKAGE - basesrc=$pkgdir/source - tmpsrc=$basesrc/tmp - src=$basesrc/$PACKAGE-$VERSION - taz=$pkgdir/taz - pack=$taz/$PACKAGE-${VERSION}${EXTRAVERSION} - fs=$pack/fs - stuff=$pkgdir/stuff - install=$pkgdir/install + pkgdir="$WOK/$PACKAGE" + basesrc="$pkgdir/source" + tmpsrc="$basesrc/tmp" + src="$basesrc/$PACKAGE-$VERSION" + taz="$pkgdir/taz" + pack="$taz/$PACKAGE-$VERSION$EXTRAVERSION" + fs="$pack/fs" + stuff="$pkgdir/stuff" + install="$pkgdir/install" pkgsrc="${SOURCE:-$PACKAGE}-${KBASEVER:-$VERSION}" lzma_tarball="$pkgsrc.tar.lzma" - if [ "$PATCH" ]; then - [ "${PTARBALL}" ] || PTARBALL="$(basename $PATCH)" + if [ -n "$PATCH" ]; then + [ -z "$PTARBALL" ] && PTARBALL="$(basename $PATCH)" fi - if [ "$WANTED" ]; then - basesrc=$WOK/$WANTED/source - src=$basesrc/$WANTED-$VERSION - install=$WOK/$WANTED/install - wanted_stuff=$WOK/$WANTED/stuff + if [ -n "$WANTED" ]; then + basesrc="$WOK/$WANTED/source" + src="$basesrc/$WANTED-$VERSION" + install="$WOK/$WANTED/install" + wanted_stuff="$WOK/$WANTED/stuff" fi - if [ "$SOURCE" ]; then - source_stuff=$WOK/$SOURCE/stuff + if [ -n "$SOURCE" ]; then + source_stuff="$WOK/$SOURCE/stuff" fi # Kernel version is set from wok/linux or installed/linux-api-headers(wok-undigest) if [ -f "$WOK/linux/receipt" ]; then - kvers=$(grep ^VERSION= $WOK/linux/receipt | cut -d '"' -f 2) + kvers=$(grep ^VERSION= $WOK/linux/receipt | cut -d\" -f2) kbasevers=${kvers:0:3} elif [ -f "$INSTALLED/linux-api-headers/receipt" ]; then - kvers=$(grep ^VERSION= $INSTALLED/linux-api-headers/receipt | cut -d '"' -f 2) + kvers=$(grep ^VERSION= $INSTALLED/linux-api-headers/receipt | cut -d\" -f2) kbasevers=${kvers:0:3} fi # Python version if [ -f "$WOK/python/receipt" ]; then - pyvers=$(grep ^VERSION= $WOK/python/receipt | cut -d '"' -f 2) + pyvers=$(grep ^VERSION= $WOK/python/receipt | cut -d\" -f2) fi - # perl version for some packages needed it + # Perl version for some packages needed it if [ -f "$WOK/perl/receipt" ]; then - perlvers=$(grep ^VERSION= $WOK/perl/receipt | cut -d '"' -f 2) + perlvers=$(grep ^VERSION= $WOK/perl/receipt | cut -d\" -f2) fi # Old way compatibility. - _pkg=$install + _pkg="$install" } + # Create source tarball when URL is a SCM. + create_tarball() { local tarball - tarball=$pkgsrc.tar.bz2 - [ "$LZMA_SRC" ] && tarball=$lzma_tarball - _ "Creating tarball: \$tarball" - if [ "$LZMA_SRC" ]; then + tarball="$pkgsrc.tar.bz2" + [ -n "$LZMA_SRC" ] && tarball="$lzma_tarball" + _ 'Creating tarball "%s"' "$tarball" + if [ -n "$LZMA_SRC" ]; then tar -c $pkgsrc | lzma e $SRC/$tarball -si $LZMA_SET_DIR || exit 1 - LZMA_SRC="" + LZMA_SRC='' else - tar cjf $tarball $pkgsrc || exit 1 - mv $tarball $SRC && rm -rf $pkgsrc + tar -cjf $tarball $pkgsrc || exit 1 + mv $tarball $SRC; rm -rf $pkgsrc fi - TARBALL=$tarball + TARBALL="$tarball" } + # Get package source. For SCM we are in cache so clone here and create a # tarball here. + get_source() { local url url="$MIRROR_URL/sources/packages/${TARBALL:0:1}/$TARBALL" @@ -207,117 +226,130 @@ # Busybox Wget is better! busybox wget -T 60 -c -O $SRC/$TARBALL $WGET_URL || \ busybox wget -T 60 -c -O $SRC/$TARBALL $url || \ - (_ "ERROR: wget \$WGET_URL" && exit 1) ;; + (_ 'ERROR: %s' "wget $WGET_URL" && exit 1) ;; + https://*) wget -c --no-check-certificate -O $SRC/$TARBALL $WGET_URL || \ busybox wget -T 60 -c -O $SRC/$TARBALL $url || \ - (_ "ERROR: wget \$WGET_URL" && exit 1) ;; + (_ 'ERROR: %s' "wget $WGET_URL" && exit 1) ;; + hg*|mercurial*) - if $(echo "$WGET_URL" | fgrep -q "hg|"); then + if $(echo "$WGET_URL" | fgrep -q 'hg|'); then url=${WGET_URL#hg|} else url=${WGET_URL#mercurial|} fi - _ "Getting source from Hg..." - _ "URL: \$url" - _ "Cloning to: \$pwd/\$pkgsrc" - if [ "$BRANCH" ]; then - _ "Hg branch: \$BRANCH" + _ 'Getting source from %s...' 'Hg' + _ 'URL: %s' "$url" + _ 'Cloning to "%s"' "$pwd/$pkgsrc" + if [ -n "$BRANCH" ]; then + _ 'Hg branch: %s' "$BRANCH" hg clone $url --rev $BRANCH $pkgsrc || \ - (_ "ERROR: hg clone \$url --rev \$BRANCH" && exit 1) + (_ 'ERROR: %s' "hg clone $url --rev $BRANCH" && exit 1) else - hg clone $url $pkgsrc || (_ "ERROR: hg clone \$url" && exit 1) + hg clone $url $pkgsrc || (_ 'ERROR: %s' "hg clone $url" && exit 1) fi rm -rf $pkgsrc/.hg create_tarball ;; + git*) url=${WGET_URL#git|} - _ "Getting source from Git..." - _ "URL: \$url" + _ 'Getting source from %s...' 'Git' + _ 'URL: %s' "$url" cd $SRC - git clone $url $pkgsrc || (_ "ERROR: git clone \$url" && exit 1) - if [ "$BRANCH" ]; then - _ "Git branch: \$BRANCH" - cd $pkgsrc && git checkout $BRANCH && cd .. + git clone $url $pkgsrc || (_ 'ERROR: %s' "git clone $url" && exit 1) + if [ -n "$BRANCH" ]; then + _ 'Git branch: %s' "$BRANCH" + cd $pkgsrc; git checkout $BRANCH; cd .. fi cd $SRC create_tarball ;; + cvs*) url=${WGET_URL#cvs|} mod=$PACKAGE - [ "$CVS_MODULE" ] && mod=$CVS_MODULE - _ "Getting source from CVS..." - _ "URL: \$url" - [ "$CVS_MODULE" ] && _ "CVS module: \$mod" - _ "Cloning to: \$pwd/\$mod" + [ -n "$CVS_MODULE" ] && mod=$CVS_MODULE + _ 'Getting source from %s...' 'CVS' + _ 'URL: %s' "$url" + [ -n "$CVS_MODULE" ] && _ 'CVS module: %s' "$mod" + _ 'Cloning to "%s"' "$pwd/$mod" cvs -d:$url co $mod && mv $mod $pkgsrc create_tarball ;; + svn*|subversion*) if $(echo "$WGET_URL" | fgrep -q "svn|"); then url=${WGET_URL#svn|} else url=${WGET_URL#subversion|} fi - _ "Getting source from SVN..." - _ "URL: \$url" - if [ "$BRANCH" ]; then + _ 'Getting source from %s...' 'SVN' + _ 'URL: %s' "$url" + if [ -n "$BRANCH" ]; then echo t | svn co $url -r $BRANCH $pkgsrc else echo t | svn co $url $pkgsrc fi create_tarball ;; + bzr*) url=${WGET_URL#bzr|} - _ "Getting source from bazaar..." + _ 'Getting source from %s...' 'bazaar' cd $SRC pkgsrc=${url#*:} - if [ "$BRANCH" ]; then + if [ -n "$BRANCH" ]; then echo "bzr -Ossl.cert_reqs=none branch $url -r $BRANCH" bzr -Ossl.cert_reqs=none branch $url -r $BRANCH else echo "bzr -Ossl.cert_reqs=none branch $url" bzr -Ossl.cert_reqs=none branch $url - cd $pkgsrc && BRANCH=$(bzr revno) && cd .. + cd $pkgsrc; BRANCH=$(bzr revno); cd .. _ "Don't forget to add to receipt:" - echo 'BRANCH="'$BRANCH'"'; newline + echo -e "BRANCH=\"$BRANCH\"\n" fi mv $pkgsrc $pkgsrc-$BRANCH - pkgsrc=$pkgsrc-$BRANCH + pkgsrc="$pkgsrc-$BRANCH" create_tarball ;; + *) - (newline; _ "ERROR: Unable to handle: \$WGET_URL"; newline) | \ + (newline; _ 'ERROR: Unable to handle "%s"' "$WGET_URL"; newline) | \ tee -a $LOGS/$PACKAGE.log exit 1 ;; esac } + # Extract source package. + extract_source() { if [ ! -s "$SRC/$TARBALL" ]; then local url url="$MIRROR_URL/sources/packages" - url=$url/${TARBALL:0:1}/$TARBALL - _ "Getting source from mirror: \$url" - busybox wget -c -P $SRC $url || _ "ERROR: wget \$url" + url="$url/${TARBALL:0:1}/$TARBALL" + _ 'Getting source from %s...' 'mirror' + _ 'URL: %s' "$url" + busybox wget -c -P $SRC $url || _ 'ERROR: %s' "wget $url" fi - _ "Extracting: \$TARBALL" + _ 'Extracting source archive "%s"' "$TARBALL" case "$TARBALL" in - *.tar.gz|*.tgz) tar xzf $SRC/$TARBALL 2>/dev/null ;; - *.tar.bz2|*.tbz|*.tbz2) tar xjf $SRC/$TARBALL 2>/dev/null ;; - *.tar.lzma) tar xaf $SRC/$TARBALL ;; - *.tar.lz|*.tlz) lzip -d < $SRC/$TARBALL | tar xf - 2>/dev/null ;; - *.tar) tar xf $SRC/$TARBALL ;; - *.zip|*.xpi) unzip -o $SRC/$TARBALL ;; - *.xz) unxz -c $SRC/$TARBALL | tar xf - || tar xf $SRC/$TARBALL 2>/dev/null;; - *.7z) 7zr x $SRC/$TARBALL ;; - *.Z|*.z) uncompress -c $SRC/$TARBALL | tar xf - ;; - *.rpm) rpm2cpio $SRC/$TARBALL | cpio -idm --quiet ;; - *.run) /bin/sh $SRC/$TARBALL $RUN_OPTS ;; - *) cp $SRC/$TARBALL $(pwd) ;; + *.tar.gz|*.tgz) tar -xzf $SRC/$TARBALL 2>/dev/null ;; + *.tar.bz2|*.tbz|*.tbz2) tar -xjf $SRC/$TARBALL 2>/dev/null ;; + *.tar.lzma) tar -xaf $SRC/$TARBALL ;; + *.tar.lz|*.tlz) lzip -d < $SRC/$TARBALL | tar -xf - 2>/dev/null ;; + *.tar) tar -xf $SRC/$TARBALL ;; + *.zip|*.xpi) unzip -o $SRC/$TARBALL ;; + *.xz) unxz -c $SRC/$TARBALL | tar -xf - || \ + tar -xf $SRC/$TARBALL 2>/dev/null;; + *.7z) 7zr x $SRC/$TARBALL ;; + *.Z|*.z) uncompress -c $SRC/$TARBALL | tar -xf - ;; + *.rpm) rpm2cpio $SRC/$TARBALL | cpio -idm --quiet ;; + *.run) /bin/sh $SRC/$TARBALL $RUN_OPTS ;; + *) cp $SRC/$TARBALL $(pwd) ;; esac } + # Display cooked package summary. + summary() { cd $WOK/$pkg [ -d $WOK/$pkg/install ] && prod=$(du -sh $WOK/$pkg/install | awk '{print $1}' 2>/dev/null) @@ -325,43 +357,49 @@ fs=$(du -sh $WOK/$pkg/taz/* | awk '{print $1}') size=$(du -sh $PKGS/$pkg-${VERSION}*.tazpkg | awk '{print $1}') files=$(cat $WOK/$pkg/taz/$pkg-*/files.list | wc -l) - [ "$TARBALL" ] && srcsize=$(du -sh $SRC/$TARBALL | awk '{print $1}') - cookdate=$(date "$(_ '+%Y-%m-%d %H:%M')") - sec=$time + [ -n "$TARBALL" ] && srcsize=$(du -sh $SRC/$TARBALL | awk '{print $1}') + + sec="$time" div=$(( ($time + 30) / 60)) - # L10n: 'm' is for minutes (approximate cooking time) - min=$(_n "~ \${div}m"); [ "$div" = 0 ] && min="" - _ "Summary for: \$PACKAGE \$VERSION" + case $div in + 0) min='';; + # L10n: 'm' is for minutes (approximate cooking time) + *) min=$(_n '~ %dm' "$div");; + esac + + _ 'Summary for: %s' "$PACKAGE $VERSION" separator + # L10n: keep the same width of translations to get a consistent view - [ "$srcdir" ] && _ "Source dir : \$srcdir" - [ "$TARBALL" ] && _ "Src file : \$TARBALL" - [ "$srcsize" ] && _ "Src size : \$srcsize" - [ "$prod" ] && _ "Produced : \$prod" - _ "Packed : \$fs" - _ "Compressed : \$size" - _ "Files : \$files" + [ -n "$srcdir" ] && _ 'Source dir : %s' "$srcdir" + [ -n "$TARBALL" ] && _ 'Src file : %s' "$TARBALL" + [ -n "$srcsize" ] && _ 'Src size : %s' "$srcsize" + [ -n "$prod" ] && _ 'Produced : %s' "$prod" + _ 'Packed : %s' "$fs" + _ 'Compressed : %s' "$size" + _ 'Files : %s' "$files" # L10n: 's' is for seconds (cooking time) - _ "Cook time : \${sec}s \$min" - _ "Cook date : \$cookdate" - _ "Host arch : \$ARCH" + _ 'Cook time : %ds %s' "$sec" "$min" + _ 'Cook date : %s' "$(date "$(_ '+%%F %%R')")" + _ 'Host arch : %s' "$ARCH" separator } + # Display debugging error info. + debug_info() { - newline; _ "Debug information"; separator + newline; _ 'Debug information'; separator # L10n: specify your format of date and time (to help: man date) # L10n: not bad one is '+%x %R' - datenow=$(date "$(_ '+%Y-%m-%d %H:%M')") - _ "Cook date: \$datenow" + _ 'Cook date: %s' "$(date "$(_ '+%%F %%R')")" # L10n: Please, translate all messages beginning with ERROR in a same way - lerror=$(_n "ERROR") + lerror=$(_n 'ERROR') for error in \ - ERROR $lerror "No package" "cp: can't" "can't open" "can't cd" \ - "error:" "fatal error:" "undefined reference to" \ - "Unable to connect to" "link: cannot find the library" \ - "CMake Error" ": No such file or directory" + ERROR $lerror 'No package' "cp: can't" "can't open" "can't cd" \ + 'error:' 'fatal error:' 'undefined reference to' \ + 'Unable to connect to' 'link: cannot find the library' \ + 'CMake Error' ': No such file or directory' do fgrep "$error" $LOGS/$pkg.log done > $LOGS/$pkg.log.debug_info 2>&1 @@ -370,16 +408,16 @@ separator; newline } + # Copy all generic files (locale, pixmaps, .desktop). We use standard paths, # so some packages need to copy these files with the receipt and genpkg_rules. -copy_generic_files() -{ + +copy_generic_files() { # $LOCALE is set in cook.conf - if [ "$LOCALE" -a "$WANTED" = "" ]; then + if [ -n "$LOCALE" -a -z "$WANTED" ]; then if [ -d "$install/usr/share/locale" ]; then mkdir -p $fs/usr/share/locale - for i in $LOCALE - do + for i in $LOCALE; do if [ -d "$install/usr/share/locale/$i" ]; then cp -a $install/usr/share/locale/$i $fs/usr/share/locale fi @@ -388,7 +426,7 @@ fi # Generic pixmaps copy can be disabled with GENERIC_PIXMAPS="no" - if [ "$GENERIC_PIXMAPS" != "no" ]; then + if [ "$GENERIC_PIXMAPS" != 'no' ]; then if [ -d "$install/usr/share/pixmaps" ]; then mkdir -p $fs/usr/share/pixmaps if [ -f "$install/usr/share/pixmaps/$PACKAGE.png" ]; then @@ -409,8 +447,8 @@ # Desktop entry (.desktop). # Generic desktop entry copy can be disabled with GENERIC_MENUS="no" - if [ "$GENERIC_MENUS" != "no" ]; then - if [ -d "$install/usr/share/applications" ] && [ "$WANTED" == "" ]; then + if [ "$GENERIC_MENUS" != 'no' ]; then + if [ -d "$install/usr/share/applications" ] && [ -z "$WANTED" ]; then mkdir -p $fs/usr/share cp -a $install/usr/share/applications $fs/usr/share fi @@ -433,53 +471,54 @@ fi } + # Find and strip: --strip-all (-s) or --strip-debug on static libs as well # as removing unneeded files like in Python packages. Cross compiled binaries # must be stripped with cross-tools aka $ARCH-slitaz-*-strip + strip_package() { case "$ARCH" in - arm*|x86_64) export STRIP=${HOST_SYSTEM}-strip ;; - *) export STRIP=strip ;; + arm*|x86_64) export STRIP="${HOST_SYSTEM}-strip" ;; + *) export STRIP='strip' ;; esac - _n "Executing strip on all files..." - for dir in $fs/bin $fs/sbin $fs/usr/bin $fs/usr/sbin $fs/usr/games - do + _n 'Executing strip on all files...' + for dir in $fs/bin $fs/sbin $fs/usr/bin $fs/usr/sbin $fs/usr/games; do if [ -d "$dir" ]; then find $dir -type f -exec $STRIP -s '{}' 2>/dev/null \; fi done - find $fs -name "*.so*" -exec $STRIP -s '{}' 2>/dev/null \; - find $fs -name "*.a" -exec $STRIP --strip-debug '{}' 2>/dev/null \; + find $fs -name '*.so*' -exec $STRIP -s '{}' 2>/dev/null \; + find $fs -name '*.a' -exec $STRIP --strip-debug '{}' 2>/dev/null \; status # Remove Python .pyc and .pyo from packages. - if echo "$PACKAGE $DEPENDS" | fgrep -q "python"; then - _n "Removing Python compiled files..." - find $fs -type f -name "*.pyc" -delete 2>/dev/null - find $fs -type f -name "*.pyo" -delete 2>/dev/null + if echo "$PACKAGE $DEPENDS" | fgrep -q 'python'; then + _n 'Removing Python compiled files...' + find $fs -type f \( -name '*.pyc' -o -name '*.pyo' \) -delete 2>/dev/null status fi # Remove Perl perllocal.pod and .packlist from packages. - if echo "$DEPENDS" | fgrep -q "perl"; then - _n "Removing Perl compiled files..." - find $fs -type f -name "perllocal.pod" -delete 2>/dev/null - find $fs -type f -name ".packlist" -delete 2>/dev/null + if echo "$DEPENDS" | fgrep -q 'perl'; then + _n 'Removing Perl compiled files...' + find $fs -type f \( -name 'perllocal.pod' -o -name '.packlist' \) -delete 2>/dev/null status fi } + # Remove installed deps. + remove_deps() { # Now remove installed build deps. - diff="/tmp/installed.cook.diff" + diff='/tmp/installed.cook.diff' if [ -s $diff ]; then deps=$(cat $diff | grep ^+[a-zA-Z0-9] | sed s/^+//) nb=$(cat $diff | grep ^+[a-zA-Z0-9] | wc -l) - _n "Build dependencies to remove: "; echo $nb $root - _n "Removing:" - for dep in $deps - do + _n 'Build dependencies to remove:'; echo " $nb" + [ -n "$root" ] && echo "root=\"$root\"" + _n 'Removing:' + for dep in $deps; do echo -n " $dep" echo 'y' | tazpkg remove $dep --root=$root >/dev/null done @@ -489,9 +528,11 @@ fi } + # The main cook function. + cookit() { - _ "Cook: \$PACKAGE \$VERSION"; separator + _ 'Cook: %s' "$PACKAGE $VERSION"; separator set_paths # Handle cross-tools. @@ -499,49 +540,49 @@ arm*|x86_64) # CROSS_COMPILE is used by at least Busybox and the kernel to set # the cross-tools prefix. Sysroot is the root of our target arch - sysroot=$CROSS_TREE/sysroot - tools=$CROSS_TREE/tools + sysroot="$CROSS_TREE/sysroot" + tools="$CROSS_TREE/tools" # Set root path when cross compiling. ARM tested but not x86_64 # When cross compiling we must install build deps in $sysroot. arch="-${ARCH}" - root=$sysroot - _ "\$ARCH sysroot: \$sysroot" - _ "Adding \$tools/bin to PATH" - export PATH=$PATH:$tools/bin - export PKG_CONFIG_PATH=$sysroot/usr/lib/pkgconfig - export CROSS_COMPILE=${HOST_SYSTEM}- - _ "Using cross-tools: \$CROSS_COMPILE" - if [ "$ARCH" == "x86_64" ]; then + root="$sysroot" + _ '%s sysroot: %s' "$ARCH" "$sysroot" + _ 'Adding "%s" to PATH' "$tools/bin" + export PATH="$PATH:$tools/bin" + export PKG_CONFIG_PATH="$sysroot/usr/lib/pkgconfig" + export CROSS_COMPILE="${HOST_SYSTEM}-" + _ 'Using cross-tools: %s' "$CROSS_COMPILE" + if [ "$ARCH" == 'x86_64' ]; then export CC="${HOST_SYSTEM}-gcc -m64" export CXX="${HOST_SYSTEM}-g++ -m64" else - export CC=${HOST_SYSTEM}-gcc - export CXX=${HOST_SYSTEM}-g++ + export CC="${HOST_SYSTEM}-gcc" + export CXX="${HOST_SYSTEM}-g++" fi - export AR=${HOST_SYSTEM}-ar - export AS=${HOST_SYSTEM}-as - export RANLIB=${HOST_SYSTEM}-ranlib - export LD=${HOST_SYSTEM}-ld - export STRIP=${HOST_SYSTEM}-strip - export LIBTOOL=${HOST_SYSTEM}-libtool ;; + export AR="${HOST_SYSTEM}-ar" + export AS="${HOST_SYSTEM}-as" + export RANLIB="${HOST_SYSTEM}-ranlib" + export LD="${HOST_SYSTEM}-ld" + export STRIP="${HOST_SYSTEM}-strip" + export LIBTOOL="${HOST_SYSTEM}-libtool" ;; esac - [ "$QA" ] && receipt_quality + [ -n "$QA" ] && receipt_quality cd $pkgdir - [ "$continue" ] || rm -rf source 2> /dev/null - rm -rf install taz 2> /dev/null + [ -z "$continue" ] && rm -rf source 2>/dev/null + rm -rf install taz 2>/dev/null # Disable -pipe if less than 512Mb free RAM. - free=$(free | fgrep '/+ buffers' | tr -s ' ' | cut -f 4 -d ' ') + free=$(free | awk '/buffers:/{print $4}') if [ "$free" -lt 524288 ] && [ "$CFLAGS" != "${CFLAGS/-pipe}" ]; then - _ "Disabling -pipe compile flag: \$free RAM" - CFLAGS="${CFLAGS/-pipe}" && CFLAGS=$(echo "$CFLAGS" | tr -s ' ') - CXXFLAGS="${CXXFLAGS/-pipe}" && CXXFLAGS=$(echo "$CXXFLAGS" | tr -s ' ') + _ 'Disabling -pipe compile flag: %d RAM free' "$free" + CFLAGS="${CFLAGS/-pipe}"; CFLAGS=$(echo "$CFLAGS" | tr -s ' ') + CXXFLAGS="${CXXFLAGS/-pipe}"; CXXFLAGS=$(echo "$CXXFLAGS" | tr -s ' ') fi unset free # Export flags and path to be used by make and receipt. - DESTDIR=$pkgdir/install + DESTDIR="$pkgdir/install" # FIXME: L10n: Is this the right time for 'LC_ALL=C LANG=C'? export DESTDIR MAKEFLAGS CFLAGS CXXFLAGS CONFIG_SITE LC_ALL=C LANG=C #LDFLAGS @@ -550,34 +591,32 @@ # (ex: libusb-dev :: libusb). rm -f $CACHE/installed.local $CACHE/installed.web $CACHE/missing.dep touch $CACHE/installed.local $CACHE/installed.web - [ "$BUILD_DEPENDS" ] && _ "Checking build dependencies..." - [ "$root" ] && _ "Using packages DB: \${root}\$DB" - for dep in $BUILD_DEPENDS - do - implicit=${dep%-dev} - for i in $dep $implicit - do + [ -n "$BUILD_DEPENDS" ] && _ 'Checking build dependencies...' + [ -n "$root" ] && _ 'Using packages DB: %s' "$root$DB" + for dep in $BUILD_DEPENDS; do + implicit="${dep%-dev}" + for i in $dep $implicit; do if [ ! -f "${root}$INSTALLED/$i/receipt" ]; then # Try local package first. In some cases implicit doesn't exist, ex: # libboost-dev exists but not libboost, so check if we got vers. unset vers vers=$(. $WOK/$i/receipt 2>/dev/null ; echo $VERSION) # We may have a local package. - if [ ! "$vers" ]; then - vers=$(grep "^$i |" $PKGS/packages.desc | awk '{print $3}') + if [ -z "$vers" ]; then + vers=$(awk -F$'\t' -vp="$i" '$1==p{print $2; quit}' $PKGS/packages.info) fi debug "bdep: $i version: $vers" - if [ -f "$PKGS/$i-${vers}${arch}.tazpkg" ]; then - echo $i-${vers}${arch}.tazpkg >> $CACHE/installed.local + if [ -f "$PKGS/$i-$vers$arch.tazpkg" ]; then + echo $i-$vers$arch.tazpkg >> $CACHE/installed.local else # Priority to package version in wok (maybe more up-to-date) # than the mirrored one. - if [ "$vers" ]; then - if fgrep -q $i-${vers}${arch} ${root}$DB/packages.list; then + if [ -n "$vers" ]; then + if fgrep -q $i-$vers$arch $root$DB/packages.list; then echo $i >> $CACHE/installed.web else # So package exists in wok but not available. - _ "Missing dep (wok/pkg): \$i \$vers" + _ 'Missing dep (wok/pkg): %s' "$i $vers" echo $i >> $CACHE/missing.dep fi else @@ -585,7 +624,8 @@ if fgrep -q $i-${vers}${arch} ${root}$DB/packages.list; then echo $i >> $CACHE/installed.web else - _ "ERROR: unknown dep \$i"; exit 1 + _ 'ERROR: unknown dep "%s"' "$i" + exit 1 fi fi fi @@ -594,20 +634,19 @@ done # Get the list of installed packages - cd ${root}$INSTALLED && ls -1 > $CACHE/installed.list + cd $root$INSTALLED; ls -1 > $CACHE/installed.list # Have we a missing build dep to cook? - if [ -s "$CACHE/missing.dep" ] && [ "$AUTO_COOK" ]; then - _ "Auto cook config is set: AUTO_COOK" + if [ -s "$CACHE/missing.dep" ] && [ -n "$AUTO_COOK" ]; then + _ 'Auto cook config is set: %s' "$AUTO_COOK" cp -f $LOGS/$PACKAGE.log $LOGS/$PACKAGE.log.$$ - for i in $(uniq $CACHE/missing.dep) - do - (_ "Building dep (wok/pkg) : \$i \$vers") | \ + for i in $(uniq $CACHE/missing.dep); do + (_ 'Building dep (wok/pkg) : %s' "$i $vers") | \ tee -a $LOGS/$PACKAGE.log.$$ # programmers: next two messages are exact copy from remove_deps() - togrep1=$(_n "Build dependencies to remove: ") - togrep2=$(_n "Removing:") - cook $i || (_ "ERROR: can't cook dep '\$i'" && newline && \ + togrep1=$(_n 'Build dependencies to remove:') + togrep2=$(_n 'Removing:') + cook $i || (_ "ERROR: can't cook dep \"%s\"" "$i" && newline && \ fgrep $togrep1 $LOGS/$i.log && \ fgrep $togrep2 $LOGS/$i.log && newline) | \ tee -a $LOGS/$PACKAGE.log.$$ && break @@ -619,59 +658,59 @@ # QA: Exit on missing dep errors. We exit in both cases, if AUTO_COOK # is enabled and cook fails we have ERROR in log, if no auto cook we have # missing dep in cached file. - lerror=$(_n "ERROR") + lerror=$(_n 'ERROR') if fgrep -q ^$lerror $LOGS/$pkg.log || [ -s "$CACHE/missing.dep" ]; then [ -s "$CACHE/missing.dep" ] && nb=$(cat $CACHE/missing.dep | wc -l) - _ "ERROR: missing dep \$nb" && exit 1 + _p 'ERROR: missing %d dependency' 'ERROR: missing %d dependencies' "$nb" "$nb" + exit 1 fi # Install local packages: package-version${arch} cd $PKGS - for i in $(uniq $CACHE/installed.local) - do - _ "Installing dep (pkg/local): \$i" + for i in $(uniq $CACHE/installed.local); do + _ 'Installing dep (pkg/local): %s' "$i" tazpkg install $i --root=$root >/dev/null done # Install web or cached packages (if mirror is set to $PKGS we only # use local packages). - for i in $(uniq $CACHE/installed.web) - do - _ "Installing dep (web/cache): \$i" + for i in $(uniq $CACHE/installed.web); do + _ 'Installing dep (web/cache): %s' "$i" tazpkg get-install $i --root=$root >/dev/null done # If a cook failed deps are removed. - cd ${root}$INSTALLED && ls -1 > $CACHE/installed.cook && cd $CACHE - [ ! -s "/tmp/installed.cook.diff" ] && \ + cd $root$INSTALLED; ls -1 > $CACHE/installed.cook + cd $CACHE + [ ! -s '/tmp/installed.cook.diff' ] && \ busybox diff installed.list installed.cook > /tmp/installed.cook.diff deps=$(cat /tmp/installed.cook.diff | grep ^+[a-zA-Z0-9] | wc -l) # Get source tarball and make sure we have source dir named: # $PACKAGE-$VERSION to be standard in receipts. Here we use tar.lzma # tarball if it exists. - if [ "$WGET_URL" ] && [ ! -f "$SRC/$TARBALL" ]; then + if [ -n "$WGET_URL" ] && [ ! -f "$SRC/$TARBALL" ]; then if [ -f "$SRC/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma" ]; then - TARBALL=${SOURCE:-$PACKAGE}-$VERSION.tar.lzma - LZMA_SRC="" + TARBALL="${SOURCE:-$PACKAGE}-$VERSION.tar.lzma" + LZMA_SRC='' else get_source || exit 1 fi fi - if [ ! "$WANTED" ] && [ "$TARBALL" ] && [ ! -d "$src" ]; then - mkdir -p $pkgdir/source/tmp && cd $pkgdir/source/tmp + if [ -z "$WANTED" ] && [ -n "$TARBALL" ] && [ ! -d "$src" ]; then + mkdir -p $pkgdir/source/tmp; cd $pkgdir/source/tmp if ! extract_source ; then get_source extract_source || exit 1 fi - if [ "$LZMA_SRC" ]; then + if [ -n "$LZMA_SRC" ]; then cd $pkgdir/source if [ "$(ls -A tmp | wc -l)" -gl 1 ] || [ -f "$(echo tmp/*)" ]; then - mv tmp tmp-1 && mkdir tmp + mv tmp tmp-1; mkdir tmp mv tmp-1 tmp/${SOURCE:-$PACKAGE}-$VERSION fi if [ -d "tmp/${SOURCE:-$PACKAGE}-$VERSION" ]; then - cd tmp && tar -c * | lzma e $SRC/$TARBALL -si + cd tmp; tar -c * | lzma e $SRC/$TARBALL -si fi fi cd $pkgdir/source/tmp @@ -680,9 +719,9 @@ [ "$files" == 1 ] && [ -d "$(ls)" ] && mv * ../$PACKAGE-$VERSION [ "$files" == 1 ] && [ -f "$(ls)" ] && mkdir -p ../$PACKAGE-$VERSION && \ mv * ../$PACKAGE-$VERSION/$TARBALL - [ "$files" -gt 1 ] && mkdir -p ../$PACKAGE-$VERSION && \ + [ "$files" -gt 1 ] && mkdir -p ../$PACKAGE-$VERSION && \ mv * ../$PACKAGE-$VERSION - cd .. && rm -rf tmp + cd ..; rm -rf tmp fi # Libtool shared libs path hack. @@ -692,7 +731,7 @@ # Execute receipt rules. if grep -q ^compile_rules $receipt; then - _ "Executing: compile_rules" + _ 'Executing: %s' 'compile_rules' echo "CFLAGS : $CFLAGS" #echo "LDFLAGS : $LDFLAGS" [ -d "$src" ] && cd $src @@ -709,28 +748,33 @@ # Execute testsuite. if grep -q ^testsuite $receipt; then - _ "Running testsuite"; separator + _ 'Running testsuite'; separator testsuite $@ || exit 1 separator; newline fi } + # Cook quality assurance. + cookit_quality() { - if [ ! -d "$WOK/$pkg/install" ] && [ ! "$WANTED" ]; then - _ "ERROR: cook failed" | tee -a $LOGS/$pkg.log + if [ ! -d "$WOK/$pkg/install" ] && [ -z "$WANTED" ]; then + _ 'ERROR: cook failed' | tee -a $LOGS/$pkg.log fi # ERROR can be echoed any time in cookit() - lerror=$(_n "ERROR") + lerror=$(_n 'ERROR') if grep -Ev "(conftest|configtest)" $LOGS/$pkg.log | \ grep -Eq "(^$lerror|undefined reference to)" ; then debug_info | tee -a $LOGS/$pkg.log - rm -f $command && exit 1 + rm -f $command + exit 1 fi } -# Create the package. Wanted to use Tazpkg to create a tazpkg package at first, + +# Create the package. Wanted to use TazPkg to create a tazpkg package at first, # but it doesn't handle EXTRAVERSION. + packit() { set_paths @@ -739,46 +783,45 @@ arm*|x86_64) arch="-$ARCH" ;; esac - _ "Pack: \$PACKAGE \${VERSION}\${arch}"; separator + _ 'Pack: %s' "$PACKAGE $VERSION$arch"; separator if grep -q ^genpkg_rules $receipt; then - _ "Executing: genpkg_rules" - set -e && cd $pkgdir && mkdir -p $fs - genpkg_rules || (newline; _ "ERROR: genpkg_rules failed"; newline) >> \ + _ 'Executing: %s' 'genpkg_rules' + set -e; cd $pkgdir; mkdir -p $fs + genpkg_rules || (newline; _ 'ERROR: genpkg_rules failed'; newline) >> \ $LOGS/$pkg.log else - _ "No packages rules: meta package" + _ 'No packages rules: meta package' mkdir -p $fs fi # First QA check to stop now if genpkg_rules failed. - lerror=$(_n "ERROR") + lerror=$(_n 'ERROR') if fgrep -q ^$lerror $LOGS/$pkg.log; then exit 1 fi cd $taz - for file in receipt description.txt - do + for file in receipt description.txt; do [ ! -f "../$file" ] && continue - _n "Copying \$file..." - cp -f ../$file $pack && chown 0.0 $pack/$file && status + _n 'Copying "%s"...' "$file" + cp -f ../$file $pack; chown 0.0 $pack/$file; status done copy_generic_files - # Create files.list with redirecting find output. - _n "Creating the list of files..." - cd $fs - find . -type f -print > ../files.list - find . -type l -print >> ../files.list - cd .. && sed -i s/'^.'/''/ files.list - status - # Strip and stuff files. strip_package + # Create files.list with redirecting find output. + _n 'Creating the list of files...' + cd $fs + find . -type f -print > ../files.list + find . -type l -print >> ../files.list + cd ..; sed -i s/'^.'/''/ files.list + status + # Md5sum of files. - _n "Creating md5sum of files..." + _n 'Creating md5sum of files...' while read file; do [ -L "fs$file" ] && continue [ -f "fs$file" ] || continue @@ -788,49 +831,54 @@ md5sum "fs$file" | sed 's/ fs/ /' done < files.list > md5sum status - UNPACKED_SIZE=$(du -chs fs receipt files.list md5sum \ - description.txt 2> /dev/null | awk \ - '{ sz=$1 } END { print sz }') + + UNPACKED_SIZE=$(du -chs fs receipt files.list md5sum description.txt \ + 2>/dev/null | awk 'END{ print $1 }') # Build cpio archives. - _n "Compressing the fs..." + _n 'Compressing the FS...' find fs | cpio -o -H newc --quiet | lzma e fs.cpio.lzma -si rm -rf fs status - PACKED_SIZE=$(du -chs fs.cpio.lzma receipt files.list \ - md5sum description.txt 2> /dev/null | awk \ - '{ sz=$1 } END { print sz }') - _n "Updating receipt sizes..." + + PACKED_SIZE=$(du -chs fs.cpio.lzma receipt files.list md5sum description.txt \ + 2>/dev/null | awk 'END{ print $1 }') + + _n 'Updating receipt sizes...' sed -i s/^PACKED_SIZE.*$// receipt sed -i s/^UNPACKED_SIZE.*$// receipt sed -i "s/^PACKAGE=/PACKED_SIZE=\"$PACKED_SIZE\"\nUNPACKED_SIZE=\"$UNPACKED_SIZE\"\nPACKAGE=/" receipt status # Set extra version. - if [ "$EXTRAVERSION" ]; then - _n "Updating receipt EXTRAVERSION: \$EXTRAVERSION" + if [ -n "$EXTRAVERSION" ]; then + _n 'Updating receipt EXTRAVERSION: %s' "$EXTRAVERSION" sed -i s/^EXTRAVERSION.*$// receipt sed -i "s/^VERSION=/EXTRAVERSION=\"$EXTRAVERSION\"\nVERSION=/" receipt status fi # Compress. - _n "Creating full cpio archive..." + _n 'Creating full cpio archive...' find . -print | cpio -o -H newc --quiet > \ ../$PACKAGE-${VERSION}${EXTRAVERSION}${arch}.tazpkg status - _n "Restoring original package tree..." + + _n 'Restoring original package tree...' unlzma -c fs.cpio.lzma | cpio -idm --quiet status - rm fs.cpio.lzma && cd .. + + rm fs.cpio.lzma; cd .. # QA and give info. tazpkg=$(ls *.tazpkg) packit_quality - separator; _ "Package: \$tazpkg"; newline + separator; _ 'Package "%s" created' "$tazpkg"; newline } + # Verify package quality and consistency. + packit_quality() { #gettext "QA: checking for broken link..." #link=$(find $fs/usr -type l -follow) @@ -838,24 +886,25 @@ #status # Exit if any error found in log file. - lerror=$(_n "ERROR") + lerror=$(_n 'ERROR') if fgrep -q ^$lerror $LOGS/$pkg.log; then - rm -f $command && exit 1 + rm -f $command + exit 1 fi - _n "QA: checking for empty package..." + _n 'QA: checking for empty package...' files=$(cat $WOK/$pkg/taz/$pkg-*/files.list | wc -l) - if [ "$files" == 0 ] && [ "$CATEGORY" != "meta" ]; then - newline; _ "ERROR: empty package" - rm -f $command && exit 1 + if [ "$files" == 0 ] && [ "$CATEGORY" != 'meta' ]; then + newline; _ 'ERROR: empty package' + rm -f $command + exit 1 else # Ls sort by name so the first file is the one we want. - old=$(ls $PKGS/$pkg-*.tazpkg 2>/dev/null | head -n 1) + old=$(ls $PKGS/$pkg-*.tazpkg 2>/dev/null | head -n1) status if [ -f "$old" ]; then - old_pkg=$(basename $old) - _n "Removing old: \$old_pkg" - rm -f $old && status + _n 'Removing old package "%s"' "$(basename $old)" + rm -f $old; status fi mv -f $pkgdir/taz/$pkg-*.tazpkg $PKGS sed -i /^${pkg}$/d $broken @@ -864,44 +913,49 @@ fi } -# Tic tac, tic tac... + +# Reverse "cat" command: prints input lines in the reverse order + tac() { sed '1!G;h;$!d' $1 } + # Install package on --install or update the chroot. + install_package() { case "$ARCH" in arm*|x86_64) arch="-${ARCH}" - root=$CROSS_TREE/sysroot ;; + root="$CROSS_TREE/sysroot" ;; esac # Install package if requested but skip install if target host doesn't # match build system or it will break the build chroot. - build=$(echo $BUILD_SYSTEM | cut -d "-" -f 1) - if [ "$inst" ] && [ "$build" == "$ARCH" ]; then + build=$(echo $BUILD_SYSTEM | cut -d- -f1) + if [ -n "$inst" ] && [ "$build" == "$ARCH" ]; then if [ -f "$PKGS/$PACKAGE-${VERSION}${EXTRAVERSION}.tazpkg" ]; then - cd $PKGS && tazpkg install \ - $PACKAGE-${VERSION}${EXTRAVERSION}.tazpkg --forced + cd $PKGS + tazpkg install $PACKAGE-$VERSION$EXTRAVERSION.tazpkg --forced else - _ "Unable to install package, build has failed."; newline + _ 'Unable to install package, build has failed.'; newline exit 1 fi fi # Install package if part of the chroot to keep env up-to-date. - if [ -d "${root}$INSTALLED/$pkg" ]; then + if [ -d "$root$INSTALLED/$pkg" ]; then . /etc/slitaz/cook.conf . $WOK/$pkg/taz/$pkg-*/receipt - _ "Updating \$ARCH chroot environment..." - _ "Updating chroot: \$pkg (\${VERSION}\${EXTRAVERSION}\${arch})" | log - cd $PKGS && tazpkg install \ - $pkg-${VERSION}${EXTRAVERSION}${arch}.tazpkg \ - --forced --root=$root + _ 'Updating %s chroot environment...' "$ARCH" + _ 'Updating chroot: %s' "$pkg ($VERSION$EXTRAVERSION$arch)" | log + cd $PKGS + tazpkg install $pkg-$VERSION$EXTRAVERSION$arch.tazpkg --forced --root=$root fi } + # remove chroot jail + umount_aufs() { tac ${1}rw/aufs-umount.sh | sh rm -rf ${1}rw @@ -909,21 +963,23 @@ rmdir ${1}r* } + # Launch the cook command into a chroot jail protected by aufs. # The current filesystems are used read-only and updates are # stored in a separate branch. + try_aufs_chroot() { - base=/dev/shm/aufsmnt$$ + base="/dev/shm/aufsmnt$$" # Can we setup the chroot? Is it already done? grep -q ^AUFS_NOT_SUPPORTED $receipt && return - grep -q ^AUFS_NOT_RAMFS $receipt && base=/mnt/aufsmnt$$ + grep -q ^AUFS_NOT_RAMFS $receipt && base="/mnt/aufsmnt$$" [ -n "$AUFS_MOUNTS" -a ! -f /aufs-umount.sh ] || return lsmod | grep -q aufs || modprobe aufs 2> /dev/null || return mkdir ${base}root ${base}rw || return - _ "Setup aufs chroot..." + _ 'Setup aufs chroot...' # Sanity check for i in / /proc /sys /dev/shm /home ; do @@ -935,7 +991,7 @@ for mnt in $(ls -d $AUFS_MOUNTS | sort | uniq); do mount --bind $mnt ${base}root$mnt if [ $mnt == / ] && ! mount -t aufs -o br=${base}rw:/ none ${base}root; then - _ "Aufs mountage failure" + _ 'Aufs mount failure' umount ${base}root rm -rf ${base}r* return @@ -947,22 +1003,26 @@ chroot ${base}root $(cd $(dirname $0); pwd)/$(basename $0) "$@" status=$? - _ "Leaving aufs chroot..." + _ 'Leaving aufs chroot...' umount_aufs ${base} # Install package outside the aufs jail install_package exit $status } + # Encode predefined XML entities + xml_ent() { sed -e 's|&|\&|g; s|<|\<|g; s|>|\>|g; s|"|\"|g' -e "s|'|\'|g" } + # Create a XML feed for freshly built packages. + gen_rss() { - pubdate=$(date "+%a, %d %b %Y %X") - cat > $FEEDS/$pkg.xml << EOT + pubdate=$(date '+%a, %d %b %Y %X') + cat > $FEEDS/$pkg.xml < $PACKAGE $VERSION${EXTRAVERSION} ${COOKER_URL}?pkg=$PACKAGE @@ -973,9 +1033,10 @@ EOT } + # Truncate stdout log file to $1 Mb. -loglimit() -{ + +loglimit() { if [ -n "$DEFAULT_LOG_LIMIT" ]; then tee /dev/stderr | head -qc ${1:-$DEFAULT_LOG_LIMIT}m else @@ -983,59 +1044,63 @@ fi } + # Search file in mirrored packages -search_file_mirror() -{ + +search_file_mirror() { busybox unlzma -c $DB/files.list.lzma | grep $1\$ | cut -d: -f1 | sort -u } + # Search file in local wok packages -search_file_local() -{ + +search_file_local() { # existing packages have precedence over the package/taz folder srch=$1 { for package in $(find $PKGS -name '*.tazpkg'); do - if [ ! "x$(busybox cpio --to-stdout --quiet -i files.list < $package | grep /$srch\$)" == "x" ]; then + if [ -n "$(busybox cpio --to-stdout --quiet -i files.list < $package | \ + grep /$srch\$)" ]; then busybox cpio -i receipt < $package | fgrep PACKAGE | cut -d\" -f2 fi done } | sort -u } + # Ask in multiple choice -ask_multiple() -{ + +ask_multiple() { local multiples first my_choice multiples="$1" first=$(echo "$multiples" | head -n1) - newline; _ "Multiple choice:\n$multiples\n" - _ "Select one [$first]: "; read my_choice - [ "x$my_choice" == "x" ] && my_choice="$first" - found=$my_choice + newline; _ 'Multiple choice:'; echo "$multiples"; newline + _ 'Select one [%s]: ' "$first"; read my_choice + found="${my_choice:-$first}" } + # Search file in local cache (fast), local wok packages, mirrored packages -search_file() -{ + +search_file() { local srch cache missing - srch=$1 - cache=/var/cache/ldsearch.cache - missing=/var/cache/missing.file + srch="$1" + cache='/var/cache/ldsearch.cache' + missing='/var/cache/missing.file' touch $cache $missing - found=$(grep $srch $cache | cut -d' ' -f2) - if [ "x$found" == "x" ]; then + found=$(grep $srch $cache | cut -d$'\t' -f2) + if [ -z "$found" ]; then found=$(search_file_local $srch) - if [ "x$found" != "x" ]; then + if [ -n "$found" ]; then if [ $(echo "$found" | wc -l) -gt 1 ]; then ask_multiple "$found" fi - echo "$srch $found" >> $cache + echo -e "$srch\t$found" >> $cache else found=$(search_file_mirror $srch) - if [ "x$found" != "x" ]; then + if [ -n "$found" ]; then if [ $(echo "$found" | wc -l) -gt 1 ]; then ask_multiple "$found" fi - echo "$srch $found" >> $cache + echo -e "$srch\t$found" >> $cache else echo "$srch" >> $missing fi @@ -1043,18 +1108,20 @@ fi } + # # Receipt functions to ease packaging # get_dev_files() { - _n "Getting standard devel files..." + _n 'Getting standard devel files...' mkdir -p $fs/usr/lib cp -a $install/usr/lib/pkgconfig $fs/usr/lib cp -a $install/usr/include $fs/usr status } + # # Commands # @@ -1062,12 +1129,13 @@ case "$1" in usage|help|-u|-h) usage ;; + list-wok) - newline; _ "List of \$ARCH packages in: \$WOK"; separator + newline; _ 'List of %s packages in "%s"' "$ARCH" "$WOK"; separator cd $WOK - if [ "$ARCH" != "i486" ]; then + if [ "$ARCH" != 'i486' ]; then count=0 - for pkg in $(fgrep 'HOST_ARCH=' */receipt | egrep "$ARCH|any" | cut -d : -f 1) + for pkg in $(fgrep 'HOST_ARCH=' */receipt | egrep "$ARCH|any" | cut -d: -f1) do unset HOST_ARCH . $pkg @@ -1079,78 +1147,79 @@ ls -1 fi separator - _n "Packages:"; colorize 32 " $count" + _p '%s package' '%s packages' "$count" "$(colorize 32 "$count")" newline ;; + activity) cat $activity ;; + search) # Just a simple search function, we dont need more actually. query="$2" - newline; _ "Search results for: \$query"; separator - cd $WOK && ls -1 | grep "$query" + newline; _ 'Search results for "%s"' "$query"; separator + cd $WOK; ls -1 | grep "$query" separator; newline ;; + setup) # Setup a build environment check_root - _ "Cook: setup environment" | log - newline; _ "Setting up your environment"; separator + _ 'Cook: setup environment' | log + newline; _ 'Setting up your environment'; separator cd $SLITAZ init_db_files - _ "Checking for packages to install..." + _ 'Checking for packages to install...' # Use setup pkgs from cross.conf or cook.conf. When cross compiling # ARCH-setup or 'cross check' should be used before: cook setup case "$ARCH" in arm*|x86_64) - if [ ! -x "/usr/bin/cross" ]; then - _ "ERROR: cross is not installed" + if [ ! -x '/usr/bin/cross' ]; then + _ 'ERROR: %s is not installed' 'cross' exit 1 fi - _ "Using config file: /etc/slitaz/cross.conf" + _ 'Using config file: %s' '/etc/slitaz/cross.conf' . /etc/slitaz/cross.conf ;; esac for pkg in $SETUP_PKGS; do - if [ "$forced" ]; then + if [ -n "$forced" ]; then tazpkg -gi $pkg --forced else - [ -d "$INSTALLED/$pkg" ] || tazpkg get-install $pkg + [ ! -d "$INSTALLED/$pkg" ] && tazpkg get-install $pkg fi done # Handle --options case "$2" in - --wok) - hg clone $WOK_URL wok || exit 1 ;; - --stable) - hg clone $WOK_URL-stable wok || exit 1 ;; - --undigest) - hg clone $WOK_URL-undigest wok || exit 1 ;; - --tiny) - hg clone $WOK_URL-tiny wok || exit 1 ;; + --wok) hg clone $WOK_URL wok || exit 1 ;; + --stable) hg clone $WOK_URL-stable wok || exit 1 ;; + --undigest) hg clone $WOK_URL-undigest wok || exit 1 ;; + --tiny) hg clone $WOK_URL-tiny wok || exit 1 ;; esac # SliTaz group and permissions if ! grep -q ^slitaz /etc/group; then - _ "Adding group: slitaz" + _ 'Adding group "%s"' 'slitaz' addgroup slitaz fi - _ "Setting permissions for slitaz group..." + _ 'Setting permissions for group "%s"...' 'slitaz' find $SLITAZ -maxdepth 2 -exec chown root.slitaz {} \; find $SLITAZ -maxdepth 2 -exec chmod g+w {} \; - separator; _ "All done, ready to cook packages :-)"; newline ;; + separator; _ 'All done, ready to cook packages :-)'; newline ;; + *-setup) # Setup for cross compiling. - arch=${1%-setup} + arch="${1%-setup}" check_root . /etc/slitaz/cook.conf for pkg in $CROSS_SETUP; do - if [ "$forced" ]; then + if [ -n "$forced" ]; then tazpkg -gi $pkg --forced else - [ -d "$INSTALLED/$pkg" ] || tazpkg -gi $pkg + [ ! -d "$INSTALLED/$pkg" ] && tazpkg -gi $pkg fi done - _ "Cook: setup \$arch cross environment" | log - newline; boldify $(_n "Setting up your \$arch cross environment"); separator + + _ 'Cook: setup %s cross environment' "$arch" | log + newline; boldify $(_n 'Setting up your %s cross environment' "$arch"); separator init_db_files sed -i \ -e s"/ARCH=.*/ARCH=\"$arch\"/" \ @@ -1159,155 +1228,178 @@ /etc/slitaz/cook.conf case "$arch" in arm) - flags="-O2 -march=armv6" + flags='-O2 -march=armv6' host="$ARCH-slitaz-linux-gnueabi" ;; armv6hf) - flags="-O2 -march=armv6j -mfpu=vfp -mfloat-abi=hard" + flags='-O2 -march=armv6j -mfpu=vfp -mfloat-abi=hard' host="$ARCH-slitaz-linux-gnueabi" ;; armv7) - flags="-Os -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -pipe" + flags='-Os -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -pipe' host="$ARCH-slitaz-linux-gnueabi" ;; x86_64) - flags="-O2 -mtune=generic -pipe" + flags='-O2 -mtune=generic -pipe' host="$ARCH-slitaz-linux" ;; esac sed -i \ -e s"/CFLAGS=.*/CFLAGS=\"$flags\"/" \ -e s"/HOST_SYSTEM=.*/HOST_SYSTEM=$host/" /etc/slitaz/cook.conf . /etc/slitaz/cook.conf - sysroot=$CROSS_TREE/sysroot - tools=/cross/$arch/tools - root=$sysroot + sysroot="$CROSS_TREE/sysroot" + tools="/cross/$arch/tools" + root="$sysroot" # L10n: keep the same width of translations to get a consistent view - _ "Target arch : \$ARCH" - _ "Configure args : \$CONFIGURE_ARGS" - _ "Build flags : \$flags" - _ "Arch sysroot : \$sysroot" - _ "Tools prefix : \$tools/bin" + _ 'Target arch : %s' "$ARCH" + _ 'Configure args : %s' "$CONFIGURE_ARGS" + _ 'Build flags : %s' "$flags" + _ 'Arch sysroot : %s' "$sysroot" + _ 'Tools prefix : %s' "$tools/bin" # Tell the packages manager where to find packages. - _ "Packages DB : \${root}\$DB" - mkdir -p ${root}$INSTALLED - cd ${root}$DB && rm -f *.bak - for list in packages.list packages.desc packages.equiv packages.md5 - do - rm -f $list && ln -s $SLITAZ/packages/$list $list + _ 'Packages DB : %s' "$root$DB" + mkdir -p $root$INSTALLED + cd $root$DB; rm -f *.bak + for list in packages.list packages.desc packages.equiv packages.md5; do + rm -f $list + ln -s $SLITAZ/packages/$list $list done # We must have the cross compiled glibc-base installed or default # i486 package will be used as dep by tazpkg and then break the # cross environment - if [ ! -f "${root}$INSTALLED/glibc-base/receipt" ]; then - colorize 36 $(_ "WARNING: (e)glibc-base is not installed in sysroot") + if [ ! -f "$root$INSTALLED/glibc-base/receipt" ]; then + colorize 36 $(_ 'WARNING: %s is not installed in sysroot' '(e)glibc-base') fi # Show GCC version or warn if not yet compiled. if [ -x "$tools/bin/${HOST_SYSTEM}-gcc" ]; then - _ "Cross compiler : \${HOST_SYSTEM}-gcc" + _ 'Cross compiler : %s' "$HOST_SYSTEM-gcc" else - colorize 36 $(_ "C compiler is missing: \${HOST_SYSTEM}-gcc") - _ "Run 'cross compile' to cook a toolchain" + colorize 36 $(_ 'C compiler "%s" is missing' "$HOST_SYSTEM-gcc") + _ 'Run "%s" to cook a toolchain' 'cross compile' fi separator; newline ;; + test) # Test a cook environment. - _ "Cook test: testing the cook environment" | log + _ 'Cook test: testing the cook environment' | log [ ! -d "$WOK" ] && exit 1 [ ! -d "$WOK/cooktest" ] && cp -r $DATA/cooktest $WOK cook cooktest ;; + new) # Create the package folder and an empty receipt. pkg="$2" - [ "$pkg" ] || usage + [ -z "$pkg" ] && usage newline if [ -d "$WOK/$pkg" ]; then - _ "\$pkg package already exists." + _ 'Package "%s" already exists.' "$pkg" exit 1 fi - _n "Creating \$WOK/\$pkg" - mkdir $WOK/$pkg && cd $WOK/$pkg && status - _n "Preparing the package receipt..." + + _n 'Creating folder "%s"' "$WOK/$pkg" + mkdir $WOK/$pkg; cd $WOK/$pkg; status + + _n 'Preparing the package receipt...' cp $DATA/receipt . sed -i s"/^PACKAGE=.*/PACKAGE=\"$pkg\"/" receipt - status && newline + status; newline # Interactive mode, asking and seding. case "$3" in --interactive|-x) - _ "Entering interactive mode..." + _ 'Entering interactive mode...' separator - _ "Package : \$pkg" - _n "Version : " ; read answer + _ 'Package : %s' "$pkg" + + _n 'Version : ' ; read answer sed -i s/'VERSION=\"\"'/"VERSION=\"$answer\""/ receipt - _n "Category : " ; read answer + + _n 'Category : ' ; read answer sed -i s/'CATEGORY=\"\"'/"CATEGORY=\"$answer\""/ receipt + # L10n: Short description - _n "Short desc : " ; read answer + _n 'Short desc : ' ; read answer sed -i s/'SHORT_DESC=\"\"'/"SHORT_DESC=\"$answer\""/ receipt - _n "Maintainer : " ; read answer + + _n 'Maintainer : ' ; read answer sed -i s/'MAINTAINER=\"\"'/"MAINTAINER=\"$answer\""/ receipt - _n "License : " ; read answer + + _n 'License : ' ; read answer sed -i s/'LICENSE=\"\"'/"LICENSE=\"$answer\""/ receipt - _n "Web site : " ; read answer + + _n 'Web site : ' ; read answer sed -i s#'WEB_SITE=\"\"'#"WEB_SITE=\"$answer\""# receipt newline + # Wget URL. - _ "Wget URL to download source tarball." - _n "Example : " ; echo '$GNU_MIRROR/$PACKAGE/$TARBALL' - _n "Wget url : " ; read answer - sed -i s#'WGET_URL=\"$TARBALL\"'#"WGET_URL=\"$answer\""# receipt + _ 'Wget URL to download source tarball.' + _n 'Example : ' ; echo '$GNU_MIRROR/$PACKAGE/$TARBALL' + _n 'Wget url : ' ; read answer + sed -i "s|WGET_URL=.*|WGET_URL=\"$answer\"|" receipt + # Ask for a stuff dir. - _n "Do you need a stuff directory? (y/N) : " ; read answer - if [ "$answer" = "y" ]; then - _n "Creating the stuff directory..." - mkdir $WOK/$pkg/stuff && status + confirm "$(_n 'Do you need a stuff directory? (y/N)')" + if [ "$?" == 0 ]; then + _n 'Creating the stuff directory...' + mkdir $WOK/$pkg/stuff; status fi + # Ask for a description file. - _n "Are you going to write a description? (y/N) : " ; read answer - if [ "$answer" = "y" ]; then - _n "Creating the description.txt file..." - newline > $WOK/$pkg/description.txt && status + confirm "$(_n 'Are you going to write a description? (y/N)')" + if [ "$?" == 0 ]; then + _n 'Creating the "%s" file...' 'description.txt' + touch $WOK/$pkg/description.txt; status fi - separator; _ "Receipt is ready to use."; newline ;; + + separator; _ 'Receipt is ready to use.'; newline ;; esac ;; + list) # Cook a list of packages (better use the Cooker since it will order # packages before executing cook). check_root - [ -z "$2" ] && (newline; _ "No list in argument."; newline) && exit 1 - list2=$2 - [ ! -f "$2" ] && (newline; _ "No list found: \$list2"; newline) && exit 1 - _ "Cook list starting: \$list2" | log - for pkg in $(cat $2) - do + if [ -z "$2" ]; then + newline; _ 'No list in argument.'; newline + exit 1 + fi + if [ ! -f "$2" ]; then + newline; _ 'List "%s" not found.' "$2"; newline + exit 1 + fi + + _ 'Starting cooking the list "%s"' "$2" | log + + for pkg in $(cat $2); do cook $pkg || broken done ;; + clean-wok) check_root - newline; _n "Cleaning all packages files..." + newline; _n 'Cleaning all packages files...' rm -rf $WOK/*/taz $WOK/*/install $WOK/*/source status; newline ;; + clean-src) check_root - newline; _n "Cleaning all packages sources..." + newline; _n 'Cleaning all packages sources...' rm -rf $WOK/*/source status; newline ;; + uncook) cd $WOK count=0 - newline - _ "Checking for uncooked packages" - separator - for pkg in * - do + newline; _ 'Checking for uncooked packages'; separator + + for pkg in *; do unset HOST_ARCH EXTRAVERSION + [ ! -e $pkg/receipt ] && continue . $pkg/receipt # Source cooked pkg receipt to get EXTRAVERSION if [ -d "$WOK/$pkg/taz" ]; then cd $WOK/$pkg/taz/$pkg-* - . receipt && cd $WOK + . receipt; cd $WOK fi case "$ARCH" in i486) - debug "Package: $PKGS/${PACKAGE}-${VERSION}${EXTRAVERSION}.tazpkg" - if [ ! -f "$PKGS/${PACKAGE}-${VERSION}${EXTRAVERSION}.tazpkg" ]; then + debug "$(_ 'Package "%s"' "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg")" + if [ ! -f "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" ]; then count=$(($count + 1)) colorize 34 "$pkg" fi ;; @@ -1315,78 +1407,80 @@ # Check only packages included in arch if echo "$HOST_ARCH" | egrep -q "$ARCH|any"; then # *.tazpkg - if [ ! -f "$PKGS/${PACKAGE}-${VERSION}${EXTRAVERSION}-${ARCH}.tazpkg" ]; then + if [ ! -f "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION-$ARCH.tazpkg" ]; then count=$(($count + 1)) colorize 34 "$pkg" fi fi ;; esac done + if [ "$count" -gt "0" ]; then separator - _n "Uncooked packages: "; colorize 31 "$count" + _p '%s uncooked package' '%s uncooked packages' "$count" "$(colorize 31 "$count")" else - _ "All packages are cooked :-)" + _ 'All packages are cooked :-)' fi newline ;; + pkgdb) # Create suitable packages list for TazPKG and only for built packages # as well as flavors files for TazLiTo. We dont need logs since we do it # manually to ensure everything is fine before syncing the mirror. case "$2" in - --flavors) - continue ;; + --flavors) ;; *) - [ "$2" ] && PKGS="$2" - [ ! -d "$PKGS" ] && \ - newline && _ "Packages directory doesn't exist" && \ - newline && exit 1 ;; + [ -n "$2" ] && PKGS="$2" + if [ ! -d "$PKGS" ]; then + newline; _ "Packages directory \"%s\" doesn't exist" "$PKGS"; newline + exit 1 + fi ;; esac + time=$(date +%s) - flavors=$SLITAZ/flavors - live=$SLITAZ/live - echo "cook:pkgdb" > $command - _ "Cook pkgdb: Creating all packages lists" | log - newline; _ "Creating lists for: \$PKGS"; separator + flavors="$SLITAZ/flavors" + live="$SLITAZ/live" - datenow=$(date "$(_ '+%Y-%m-%d %H:%M')") - _ "Cook pkgdb started: \$datenow" + echo 'cook:pkgdb' > $command + _ 'Cook pkgdb: Creating all packages lists' | log + newline; _ 'Creating lists for "%s"' "$PKGS"; separator + + _ 'Cook pkgdb started: %s' "$(date "$(_ '+%%F %%R')")" cd $PKGS rm -f packages.* extra.list ln -s ../get.list extra.list - _ "Creating: packages.list" + _ 'Creating file "%s"' 'packages.list' ls -1 *.tazpkg | sed s'/.tazpkg//' > $PKGS/packages.list - _ "Creating: packages.md5" + _ 'Creating file "%s"' 'packages.md5' md5sum *.tazpkg > $PKGS/packages.md5 - md5sum packages.md5 | cut -f1 -d' ' > ID + md5sum packages.md5 | cut -d' ' -f1 > ID ( cat ./ID | tr $'\n' ' '; date -ur ./ID +%s ) > IDs # md5 and timestamp - _ "Creating lists from: \$WOK" + _ 'Creating lists from "%s"' "$WOK" cd $WOK for pkg in *; do unset_receipt . $pkg/receipt # PACKED_SIZE and UNPACKED_SIZE are only in built receipt - if [ -s $pkg/taz/*/receipt ]; then - . $pkg/taz/*/receipt - fi - if [ -f "$PKGS/$PACKAGE-${VERSION}${EXTRAVERSION}.tazpkg" ] || \ - [ -f "$PKGS/$PACKAGE-${VERSION}${EXTRAVERSION}-${ARCH}.tazpkg" ]; then + [ -s $pkg/taz/*/receipt ] && . $pkg/taz/*/receipt + + if [ -f "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" ] || \ + [ -f "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION-$ARCH.tazpkg" ]; then # packages.desc lets us search easily in DB - cat >> $PKGS/packages.desc << EOT -$PACKAGE | ${VERSION}$EXTRAVERSION | $SHORT_DESC | $CATEGORY | $WEB_SITE + cat >> $PKGS/packages.desc <> $PKGS/packages.txt << EOT + cat >> $PKGS/packages.txt <> $PKGS/packages.info << EOT -$PACKAGE ${VERSION}$EXTRAVERSION $CATEGORY $SHORT_DESC $WEB_SITE $TAGS $SIZES $DEPENDS + cat >> $PKGS/packages.info < files.list.md5 # packages.info.lzma PI=packages.info - _ 'Creating: packages.info.lzma' + _ 'Creating file "%s"' 'packages.info.lzma' touch $PI lzma e $PI $PI.lzma # Make bundle to fast recharge - _ 'Creating: bundle.tar.lzma' + _ 'Creating file "%s"' 'bundle.tar.lzma' [ -f bundle.tar.lzma ] && rm bundle.tar.lzma wget http://mirror1.slitaz.org/mirrors busybox tar -caf bundle.tar.lzma \ extra.list mirrors files.list.md5 packages.info \ packages.desc packages.md5 packages.txt packages.list packages.equiv rm ./mirrors + _ 'Done: %s (%s)' 'bundle.tar.lzma' "$(du -h bundle.tar.lzma | awk '{print $1}')" # Display some info. separator nb=$(ls $PKGS/*.tazpkg | wc -l) time=$(($(date +%s) - $time)) # L10n: 's' is for seconds (cooking time) - _ "Packages: \$nb - Time: \${time}s"; newline + _ 'Packages: %s - Time: %ss' "$nb" "$time"; newline + # Create all flavors files at once. Do we really need code to monitor # flavors changes? Lets just build them with packages lists before # syncing the mirror. - [ "$2" == "--flavors" ] || exit 1 - [ ! -d "$flavors" ] && (_ "Missing flavors: \$flavors"; newline) && exit 1 - [ -d "$live" ] || mkdir -p $live - _ "Creating flavors files in: \$live" - _ "Cook pkgdb: Creating all flavors" | log + [ "$2" != '--flavors' ] && exit 1 + + if [ ! -d "$flavors" ]; then + _ 'Missing flavors folder "%s"' "$flavors"; newline + exit 1 + fi + + [ ! -d "$live" ] && mkdir -p $live + _ 'Creating flavors files in "%s"' "$live" + _ 'Cook pkgdb: Creating all flavors' | log separator - _ "Recharging lists to use latest packages..." + + _ 'Recharging lists to use latest packages...' tazpkg recharge >/dev/null 2>/dev/null # We need a custom tazlito config to set working dir to /home/slitaz. if [ ! -f "$live/tazlito.conf" ]; then - _ "Creating configuration file: tazlito.conf" + _ 'Creating configuration file "%s"' 'tazlito.conf' cp /etc/tazlito/tazlito.conf $live sed -i s@WORK_DIR=.*@WORK_DIR=\"/home/slitaz\"@ \ $live/tazlito.conf fi # Update Hg flavors repo and pack. - [ -d "$flavors/.hg" ] && cd $flavors && hg pull -u + if [ -d "$flavors/.hg" ]; then + cd $flavors; hg pull -u + fi cd $live - _ "Starting to generate flavors..." + _ 'Starting to generate flavors...' rm -f flavors.list *.flavor - for i in $flavors/* - do + for i in $flavors/*; do fl=$(basename $i) - _ "Packing flavor: \$fl" + _ 'Packing flavor "%s"' "$fl" tazlito pack-flavor $fl >/dev/null || exit 1 - tazlito show-flavor $fl --brief --noheader 2> \ - /dev/null >> flavors.list + tazlito show-flavor $fl --brief --noheader 2>/dev/null >> flavors.list done cp -f $live/*.flavor $live/flavors.list $PKGS separator - fl_size=$(du -sh $live | awk '{print $1}') - _ "Flavors size: \$fl_size"; newline + _ 'Total flavors size: %s' "$(du -sh $live | awk '{print $1}')"; newline rm -f $command separator - datenow=$(date "$(_ '+%Y-%m-%d %H:%M')") - _ "Cook pkgdb end: \$datenow" ;; + _ 'Cook pkgdb end: %s' "$(date "$(_ '+%%F %%R')")" ;; + *) # Just cook and generate a package. check_root @@ -1506,47 +1608,52 @@ pkg="$1" [ -z "$pkg" ] && usage receipt="$WOK/$pkg/receipt" - check_pkg_in_wok && newline + check_pkg_in_wok + newline unset inst unset_receipt . $receipt - + # Handle cross compilation. case "$ARCH" in arm*) - if [ ! "$HOST_ARCH" ]; then - _ "cook: HOST_ARCH is not set in \$pkg receipt" - _ "cook: This package is not included in: \$ARCH" - [ "$CROSS_BUGS" ] && _ "bugs: \$CROSS_BUGS" - _ "Cook skip: \$pkg is not included in: \$ARCH" | log - newline && exit 1 + if [ -z "$HOST_ARCH" ]; then + _ 'cook: HOST_ARCH is not set in "%s" receipt' "$pkg" + error="$(_ 'package "%s" is not included in %s' "$pkg" "$ARCH")" + _ 'cook: %s' "$error" + [ -n "$CROSS_BUGS" ] && _ 'bugs: %s' "$CROSS_BUGS" + _ 'Cook skip: %s' "$error" | log + newline + exit 1 fi ;; esac # Some packages are not included in some arch or fail to cross compile. : ${HOST_ARCH=i486} - debug "Host arch $HOST_ARCH" + debug "$(_ 'Host arch %s' "$HOST_ARCH")" # Handle arm{v6hf,v7,..} if ! $(echo "$HOST_ARCH" | egrep -q "${ARCH%v[0-9]*}|any"); then - _ "cook: HOST_ARCH=\$HOST_ARCH" - _ "cook: \$pkg doesn't cook or is not included in: \$ARCH" - [ "$CROSS_BUGS" ] && _ "bugs: \$CROSS_BUGS" - _ "Cook skip: \$pkg doesn't cook or is not included in: \$ARCH" | log + _ 'cook: %s' "HOST_ARCH=$HOST_ARCH" + error="$(_ "package \"%s\" doesn't cook or is not included in %s" "$pkg" "$ARCH")" + _ 'cook: %s' "error" + [ -n "$CROSS_BUGS" ] && _ 'bugs: %s' "$CROSS_BUGS" + _ 'Cook skip: %s' "$error" | log sed -i /^${pkg}$/d $broken - newline && exit 0 + newline + exit 0 fi # Skip blocked, 3 lines also for the Cooker. - if grep -q "^$pkg$" $blocked && [ "$2" != "--unblock" ]; then - _ "Blocked package: \$pkg"; newline - exit 0 + if grep -q "^$pkg$" $blocked && [ "$2" != '--unblock' ]; then + _ 'Package "%s" is blocked' "$pkg"; newline + exit 0 fi try_aufs_chroot "$@" # Log and source receipt. - _ "Cook started for: \$pkg" | log + _ 'Cook started for: %s' "$pkg" | log echo "cook:$pkg" > $command # Display and log info if cook process stopped. @@ -1557,24 +1664,32 @@ # Handle --options case "$2" in --clean|-c) - _n "Cleaning: \$pkg" - cd $WOK/$pkg && rm -rf install taz source - status && newline && exit 0 ;; + _n 'Cleaning "%s"' "$pkg" + cd $WOK/$pkg; rm -rf install taz source + status; newline + exit 0 ;; + --install|-i) inst='yes' ;; + --getsrc|-gs) - _ "Getting source for: \$pkg"; separator + _ 'Getting source for "%s"' "$pkg"; separator get_source - _ "Tarball: \$SRC/\$TARBALL"; newline + _ 'Tarball: %s' "$SRC/$TARBALL"; newline exit 0 ;; + --block|-b) - _n "Blocking: \$pkg" + _n 'Blocking package "%s"' "$pkg" [ $(grep "^$pkg$" $blocked) ] || echo "$pkg" >> $blocked - status && newline && exit 0 ;; + status; newline + exit 0 ;; + --unblock|-ub) - _n "Unblocking: \$pkg" + _n 'Unblocking package "%s"' "$pkg" sed -i "/^${pkg}$/"d $blocked - status && newline && exit 0 ;; + status; newline + exit 0 ;; + --pack) if [ -d $WOK/$pkg/taz ]; then rm -rf $WOK/$pkg/taz @@ -1582,28 +1697,38 @@ packit 2>&1 | tee -a $LOGS/$pkg-pack.log clean_log else - _ "Need to build \$pkg." && exit 0 + _ 'Need to build "%s"' "$pkg" + exit 0 fi exit 0 ;; + --cdeps) - [ ! -d $WOK/$pkg/taz ] && _ "Need to build \$pkg." && exit 0 - _ "Checking depends"; separator - lddlist=/tmp/lddlist; touch $lddlist - missing=/var/cache/missing.file + if [ ! -d $WOK/$pkg/taz ]; then + _ 'Need to build "%s"' "$pkg" + exit 0 + fi + + _ 'Checking depends'; separator + lddlist='/tmp/lddlist'; touch $lddlist + missing='/var/cache/missing.file' + # find all deps using ldd for exe in $(find $WOK/$pkg/taz -type f -perm +111); do [ "x$(dd if=$exe bs=4 count=1 2>/dev/null)" == "xELF" ] && ldd $exe | sed 's| ||' | cut -d' ' -f1 >> $lddlist - done + done #" + # remove exe/so duplicates sort -u $lddlist > $lddlist.sorted + # search packages for exefile in $(cat $lddlist.sorted); do search_file $exefile - echo $found >> $lddlist.pkgs - echo -n "." + echo "$found" >> $lddlist.pkgs + echo -n '.' done echo + # remove packages duplicates sort -u $lddlist.pkgs > $lddlist.final sort -u $missing > $missing.final @@ -1614,12 +1739,16 @@ # Check if wanted is built now so we have separate log files. for wanted in $WANTED ; do if grep -q "^$wanted$" $blocked; then - _ "WANTED package is blocked: \$wanted" | tee $LOGS/$pkg.log - newline && rm -f $command && exit 1 + _ 'WANTED package "%s" is blocked' "$wanted" | tee $LOGS/$pkg.log + newline + rm -f $command + exit 1 fi if grep -q "^$wanted$" $broken; then - _ "WANTED package is broken: \$wanted" | tee $LOGS/$pkg.log - newline && rm -f $command && exit 1 + _ 'WANTED package "%s" is broken' "$wanted" | tee $LOGS/$pkg.log + newline + rm -f $command + exit 1 fi if [ ! -d "$WOK/$wanted/install" ]; then cook "$wanted" || exit 1 @@ -1634,11 +1763,12 @@ clean_log # Exit if any error in packing. - lerror=$(_n "ERROR") + lerror=$(_n 'ERROR') if grep -Ev "(/root/.cvspass|conftest|df: /|rm: can't remove)" $LOGS/$pkg.log | \ grep -Eq "(^$lerror|: No such file or directory|not remade because of errors)"; then debug_info | tee -a $LOGS/$pkg.log - rm -f $command && exit 1 + rm -f $command + exit 1 fi # Create an XML feed diff -r c21a7ba0d29c -r da66e6be1add cooker --- a/cooker Sun May 03 19:43:46 2015 +0300 +++ b/cooker Thu May 07 15:11:47 2015 +0300 @@ -6,6 +6,7 @@ # here since it's not an end user tool and it's not useful. All devs should # at least understand basic English. # + . /usr/lib/slitaz/libcook.sh # Set pkg name and use same wok as cook. @@ -20,7 +21,7 @@ # usage() { - cat << EOT + cat <> $cookorder @@ -90,30 +97,30 @@ done # Append unordered packages to cookorder. - for pkg in $(cat $cooklist) - do + for pkg in $(cat $cooklist); do if ! grep -q "^$pkg$" $cookorder; then echo "$pkg" >> $cookorder fi done } + # Scan and rescan until the cooklist is ordered then handle WANTED. + cook_order() { time=$(date +%s) scan=0 # Keep an original cooklist so we do a diff when ordering is finished. cp -f $cooklist $cooklist.0 - echo "cookorder" > $command - echo -e "\nInitial Cooker order scan" + echo 'cookorder' > $command + echo -e '\nInitial Cooker order scan' separator cook_order_scan # Diff between the cooklist and new ordered list ? So copy the last # cookorder to cooklist and rescan it. - while /bin/true - do + while /bin/true; do diff $cooklist $cookorder > $cookorder.diff if [ -s "$cookorder.diff" ]; then scan=$(($scan + 1)) @@ -132,14 +139,12 @@ # Scan finished: append pkg to WANTED or leave it in the ordered cooklist. # TODO: grep the line number to get pkg position and keep it higher. - echo -e "\nHandle WANTED package" + echo -e '\nHandle WANTED package' separator - for pkg in $(cat $cooklist) - do + for pkg in $(cat $cooklist); do unset WANTED . $wok/$pkg/receipt - for wanted in $WANTED - do + for wanted in $WANTED; do echo "$pkg :: $wanted" if grep -q ^${wanted}$ $cooklist; then sed -i -e "/^$pkg$/"d \ @@ -149,35 +154,41 @@ done # Show ordered cooklist - echo -e "\nCooklist order" + echo -e '\nCooklist order' separator cat $cooklist separator + time=$(($(date +%s) - $time)) pkgs=$(cat $cooklist | wc -l) - echo -e "\nSummary for cookorder" + echo -e '\nSummary for cookorder' separator - cat << EOT + cat < $command cook $pkg || broken sed -i /^${pkg}$/d $commits @@ -185,15 +196,17 @@ fi } + # Cook all packages in a cooklist. + cook_list() { - for pkg in $(cat $cooklist) - do + for pkg in $(cat $cooklist); do cook $pkg || broken sed -i /^${pkg}$/d $cooklist done } + # Create a arch.$ARCH file for each package cooked for the target host # architecture # @@ -202,13 +215,13 @@ # packages to provide one full featured desktop, servers and goodies useful # for the host system. # + arch_db() { count=0 echo "Cleaning packages DB : arch.$ARCH" rm -f $wok/*/arch.$ARCH && cd $wok echo "Creating $ARCH packages DB..." - for pkg in * - do + for pkg in *; do HOST_ARCH= . $wok/$pkg/receipt if [ -n "$HOST_ARCH" ]; then @@ -220,7 +233,7 @@ unset HOST_ARCH else # HOST_ARCH not set --> in i486 - if [ "$ARCH" == "i486" ]; then + if [ "$ARCH" == 'i486' ]; then count=$(($count + 1)) echo "Adding: $pkg" touch $pkg/arch.$ARCH @@ -230,40 +243,49 @@ echo "Packages for $ARCH : $count" } + # # Commands # + case "$1" in usage|help|-u|-h) usage ;; + setup|-s) # Setup the Cooker environment. - echo -e "\nSetting up the Cooker" + echo -e '\nSetting up the Cooker' mkdir -p $CACHE echo "Cooker setup using: $SLITAZ" | log separator - for pkg in $SETUP_PKGS mercurial rsync tazlito - do + for pkg in $SETUP_PKGS mercurial rsync tazlito; do [ ! -d "$INSTALLED/$pkg" ] && tazpkg get-install $pkg done mkdir -p $SLITAZ && cd $SLITAZ - [ -d "${wok}-hg" ] && echo -e "Hg wok already exists.\n" && exit 1 - [ -d "$wok" ] && echo -e "Build wok already exists.\n" && exit 1 + if [ -d "${wok}-hg" ]; then + echo -e 'Hg wok already exists.\n' + exit 1 + fi + if [ -d "$wok" ]; then + echo -e 'Build wok already exists.\n' + exit 1 + fi # Directories and files echo "mkdir's and touch files in: $SLITAZ" mkdir -p $PKGS $LOGS $FEEDS $CACHE $SRC - for f in $activity $blocked $broken $commits $cooklist $command - do + for f in $activity $blocked $broken $commits $cooklist $command; do touch $f done hg clone $WOK_URL ${wok}-hg || exit 1 [ -d "$flavors" ] || hg clone $FLAVORS_URL flavors cp -a ${wok}-hg $wok - separator && newline ;; + separator; newline ;; + arch-db) # Manually create arch packages DB. arch_db ;; + setup-cron) # Create cron job for the cooker. [ "$2" ] || hours=2 @@ -275,132 +297,158 @@ echo "0 */$hours * * * /usr/bin/cooker --output=html" >> $crontabs killall crond 2>/dev/null && /etc/init.d/crond start fi ;; + check-cron) - [ -f "$crontabs" ] || \ - echo "There is no $crontabs here. Use setup-cron option." && exit 1 + if [ ! -f "$crontabs" ]; then + echo "There is no $crontabs here. Use setup-cron option." + exit 1 + fi fgrep /usr/bin/cooker $crontabs ;; + note|-n) - # Blocked a pkg and want others to know why ? Post a note! - note="$2" - date=$(date "+%Y-%m-%d %H:%M") - [ "$note" ] && echo "$date : $note" >> $cooknotes ;; + # Blocked a pkg and want others to know why? Post a note! + [ -n "$2" ] && echo "$(date '+%F %R') : $2" >> $cooknotes ;; + notes|-ns) # View cooknotes. - echo -e "\nCooknotes" + echo -e '\nCooknotes' separator cat $cooknotes - separator && newline ;; + separator; newline ;; + block|-b) # Block a package. [ "$pkg" ] && cook $pkg --block ;; + unblock|-ub) # Unblock a package. [ "$pkg" ] && cook $pkg --unblock ;; + reverse|-r) # Cook all reverse dependencies for a package. This command lets us # control the Cooker manually for commits that will cook a lot of packages. # - # Use hg commit ? Ex: hg commit -m "Message bla bla | cooker:reverse" + # Use hg commit? Ex: hg commit -m "Message bla bla | cooker:reverse" # - [ ! -d "$wok/$pkg" ] && echo -e "\nNo package $2 found.\n" && exit 0 - rm -f $cooklist && touch $cooklist && cd $wok + if [ ! -d "$wok/$pkg" ]; then + echo -e "\nNo package $2 found.\n" + exit 0 + fi + rm -f $cooklist; touch $cooklist echo -e "\nReverse cooklist for: $pkg" - separator && cd $wok - for rev in * - do - unset WANTED DEPENDS BUILD_DEPENDS && . $wok/$rev/receipt + separator + + cd $wok + for rev in *; do + unset WANTED DEPENDS BUILD_DEPENDS; . $wok/$rev/receipt if echo "$WANTED $DEPENDS $BUILD_DEPENDS" | fgrep -q $pkg; then echo "$rev" | tee -a $cooklist fi - done && separator + done + separator echo -e "Reverse dependencies found: $(cat $cooklist | wc -l)\n" strip_blocked cook_order | tee $LOGS/cookorder.log cook_list ;; + pkg|-p) # Same as 'cook pkg' but with log for web interface. cook $pkg || broken clean_exit ;; + cat|-c) # Cook all packages of a category. cat="$2" - rm -f $cooklist && touch $cooklist && cd $wok - for pkg in * - do - unset CATEGORY && . $pkg/receipt + rm -f $cooklist; touch $cooklist + + cd $wok + for pkg in *; do + unset CATEGORY; . $pkg/receipt [ "$CATEGORY" == "$cat" ] && echo $pkg >> $cooklist done strip_blocked cook_order | tee $LOGS/cookorder.log cook_list ;; + flavor|-f) # Cook all packages of a flavor. name="$2" - [ ! -d "$flavors/$name" ] && \ - echo -e "\nSpecified flavor does not exist: $name\n" && exit 1 - [ -d "$flavors/.hg" ] && cd $flavors && hg pull -u - list=$flavors/$name/packages.list + if [ ! -d "$flavors/$name" ]; then + echo -e "\nSpecified flavor does not exist: $name\n" + exit 1 + fi + if [ -d "$flavors/.hg" ]; then + cd $flavors; hg pull -u + fi + list="$flavors/$name/packages.list" cp -a $list $cooklist strip_blocked cook_order | tee $LOGS/cookorder.log cook_list ;; + list|-l) # Cook a list of packages given in argument. list="$2" - [ ! -f "$list" ] && \ - echo -e "\nSpecified list does not exist: $list\n" && exit 1 + if [ ! -f "$list" ]; then + echo -e "\nSpecified list does not exist: $list\n" + exit 1 + fi cp -a $list $cooklist strip_blocked cook_order | tee $LOGS/cookorder.log cook_list ;; + rev|-r) # Cook or recook a specific Hg revision. rev="$2" [ "$rev" ] || exit 0 + rm -f $cooklist; touch $cooklist + cd $wok - rm -f $cooklist && touch $cooklist - for pkg in $(hg log --rev=$rev --template "{files}") - do - echo "$pkg" | cut -d "/" -f 1 >> $cooklist + for pkg in $(hg log --rev=$rev --template "{files}"); do + echo "$pkg" | cut -d/ -f1 >> $cooklist done strip_blocked cook_order | tee $LOGS/cookorder.log cook_list ;; + all|-a) # Try to build all unbuilt packages except blocked's. - echo "cooker:all" > $command - rm -f $cooklist && touch $cooklist - newline && cd $wok - echo "Cooker cooklist" + echo 'cooker:all' > $command + rm -f $cooklist; touch $cooklist + newline + echo 'Cooker cooklist' separator # Find all unbuilt packages. Get EXTRAVERSION from packed receipt # if it exists since extra version is added when packing the package. - echo "Searching for all unbuilt packages" | log - for pkg in * - do + echo 'Searching for all unbuilt packages' | log + + cd $wok + for pkg in *; do unset EXTRAVERSION . $pkg/receipt [ -f "$pkg/taz/$PACKAGE-$VERSION/receipt" ] && \ . $pkg/taz/$PACKAGE-$VERSION/receipt - if [ ! -f "$PKGS/$PACKAGE-${VERSION}${EXTRAVERSION}.tazpkg" ] - then - echo $pkg && echo $pkg >> $cooklist + if [ ! -f "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" ]; then + echo $pkg; echo $pkg >> $cooklist fi done strip_blocked cook_order | tee $LOGS/cookorder.log echo "Packages to cook: $(cat $cooklist | wc -l)" | log cook_list ;; + *) # Default is to cook all commits if not yet running. - [ "$1" ] && usage + [ -n "$1" ] && usage cooklist=$commits if [ -f "$pidfile" ]; then pid=$(cat $pidfile) if [ -s /proc/$pid/status ]; then - gettext -e "\nStill cooking latest commits with pid:" - echo -e " $pid\n" && exit 0 + echo -e "\nStill cooking latest commits with pid:" + echo -e " $pid\n" + exit 0 fi rm -f "$pidfile" fi @@ -408,7 +456,7 @@ # Start and get a PID file. rm -f $LOGS/commits.log newline - echo "Checking for commits" | log_commits + echo 'Checking for commits' | log_commits separator | tee -a $LOGS/commits.log echo $$ > $pidfile @@ -416,7 +464,7 @@ rm -f $pidfile $command && exit 1' INT TERM echo "Cooker PID : $$" | log_commits - echo "Cooker date : $(date '+%Y-%m-%d %H:%M:%S')" | log_commits + echo "Cooker date : $(date '+%F %T')" | log_commits # Get revisions. Here we have 2 echoes since we want a msg on screen, # in commits log and activity DB without a space before. @@ -424,8 +472,8 @@ cur=$(hg head --template '{rev}\n') echo "Updating wok : ${wok}-hg (rev $cur)" | log_commits echo "Updating wok: ${wok}-hg" | log - echo "hg:pull" > $command - cd ${wok}-hg && hg pull -u | log_commits + echo 'hg:pull' > $command + cd $wok-hg; hg pull -u | log_commits new=$(hg head --template '{rev}\n') # Store last rev to be used by CGI so it doesn't need to call hg head # on each load. @@ -435,25 +483,24 @@ # files as before. if [ "$new" -gt "$cur" ]; then echo "Changes found from: $cur to $new" | log - echo "Syncing build wok with Hg wok..." | log_commits - rsync -r -t -c -l -u -v -D -E ${wok}-hg/ $wok/ | \ + echo 'Syncing build wok with Hg wok...' | log_commits + rsync -r -t -c -l -u -v -D -E $wok-hg/ $wok/ | \ sed '/^$/'d | log_commits else echo "No revision changes: $cur vs $new" | log separator | log_commits - clean_exit && newline && exit 0 + clean_exit; newline + exit 0 fi # Get and display modifications. - cd ${wok}-hg + cd $wok-hg commits_summary | log_commits cur=$(($cur + 1)) - rm -f $commits.tmp && touch $commits.tmp - for rev in $(seq $cur $new) - do - for file in $(hg log --rev=$rev --template "{files}") - do - pkg=$(echo $file | cut -d "/" -f 1) + rm -f $commits.tmp; touch $commits.tmp + for rev in $(seq $cur $new); do + for file in $(hg log --rev=$rev --template "{files}"); do + pkg=$(echo $file | cut -d/ -f1) desc=$(hg log --rev=$rev --template "{desc}" $file) echo "Committed package : $pkg - $desc" | log_commits echo $pkg >> $commits.tmp @@ -463,8 +510,7 @@ # We may have deleted packages and files in stuff/. Remove it and # clean DB as well as log file. cd $wok - for pkg in * - do + for pkg in *; do if [ ! -d "${wok}-hg/$pkg" ]; then echo "Removing package: $pkg" | log_commits . $wok/$pkg/receipt @@ -475,13 +521,12 @@ # Keep previous commit and discard duplicate lines cat $commits $commits.tmp | sed /"^$"/d > $commits.new - uniq $commits.new > $commits && rm $commits.* + uniq $commits.new > $commits; rm $commits.* # Handle cross compilation. Create arch packages DB and remove pkgs # not cooked for this arch from the commits list. arch_db - for pkg in $(cat $commits) - do + for pkg in $(cat $commits); do if [ ! -f "$wok/$pkg/arch.$ARCH" ]; then echo "Cooker arch : skip $pkg (not included in: $ARCH)" | \ log_commits @@ -490,7 +535,7 @@ echo "Cooker arch : $ARCH" | log_commits fi done - + # Stats pkgs=$(cat $commits | wc -l) echo "Packages to cook: $pkgs" | log diff -r c21a7ba0d29c -r da66e6be1add cookiso --- a/cookiso Sun May 03 19:43:46 2015 +0300 +++ b/cookiso Thu May 07 15:11:47 2015 +0300 @@ -9,23 +9,24 @@ # SSH/RSA configuration to upload on a server. # Assign this before cook.conf so it can be # reassigned in cook.conf. -SSH_CMD="dbclient -i /root/.ssh/id_rsa.dropbear" -SSH_ISO="/var/www/slitaz/mirror/iso" -SSH_HOST="slitaz@mirror1.slitaz.org" +SSH_CMD='dbclient -i /root/.ssh/id_rsa.dropbear' +SSH_ISO='/var/www/slitaz/mirror/iso' +SSH_HOST='slitaz@mirror1.slitaz.org' #BWLIMIT="--bwlimit=40" . /usr/lib/slitaz/libcook.sh + # Parse cmdline options. -for opt in "$@" -do + +for opt in "$@"; do case "$opt" in --force) - force="yes" ;; + force='yes' ;; --pkgdb) cook pkgdb --flavors ;; --push) - push="yes" ;; + push='yes' ;; --flavors=*) flavors=${opt#--flavors=} ;; --version=*) @@ -33,31 +34,32 @@ esac done + # Default to rolling, or: cookiso [cmd] --version=stable + case "$version" in - stable) - string=stable ;; - cooking) - string=cooking ;; - *) - version=cooking - string=rolling ;; + stable) string='stable' ;; + cooking) string='cooking' ;; + *) string='rolling'; version='cooking' ;; esac + # Running command + [ -d "$cache" ] && echo "$@" > $command trap 'rm -f $command && exit 1' INT TERM + # # Functions # usage() { - cat << EOT + cat <> $activity + sed s"#^[A-Z]\([^']*\)#$(date '+%F %R') : \0#" >> $activity } + log_bot() { sed '/^.\//'d | sed '/^.hg/'d | tee -a $rollog } + # Generate requested flavors. + gen_flavors() { cd $SLITAZ/flavors [ -d ".hg" ] && hg pull -u - mkdir -p $cache && cd $cache + mkdir -p $cache; cd $cache rm -rf *.flavor *.list *.conf *.sh - for flavor in $flavors - do - if [ "$flavor" != "core-4in1" ]; then + for flavor in $flavors; do + if [ "$flavor" != 'core-4in1' ]; then name="slitaz-$string-$flavor" else name="slitaz-$string" fi - log=$iso/$name.log - rm -f $log && touch $log + log="$iso/$name.log" + rm -f $log; touch $log echo "Building $string $flavor" | log - echo "Cookiso started: $(date '+%Y-%m-%d %H:%M')" | tee -a $log + echo "Cookiso started: $(date '+%F %R')" | tee -a $log tazlito pack-flavor $flavor | tee -a $log tazlito get-flavor $flavor | tee -a $log # BUG: script sometimes screws up conspy on Tank @@ -128,26 +135,30 @@ # Rename ISO and md5 echo "Moving ISO to: $iso/$name.iso" | tee -a $log mv -f $SLITAZ/distro/slitaz-$flavor.iso $iso/$name.iso - cd $iso && md5sum $name.iso > $name.md5 - echo "Cookiso ended: $(date '+%Y-%m-%d %H:%M')" | tee -a $log - done && echo "" + cd $iso; md5sum $name.iso > $name.md5 + echo "Cookiso ended: $(date '+%F %R')" | tee -a $log + done + newline + # Push ISO to mirror if requested. - [ "$push" ] && push_iso + [ -n "$push" ] && push_iso } + # Push an ISO to a server. + push_iso() { echo "Pushing to host: ${SSH_HOST}" export DROPBEAR_PASSWORD=none - for flavor in $flavors - do - distro=slitaz-${string}-$flavor - file=${distro%-core-4in1} + for flavor in $flavors; do + distro="slitaz-${string}-$flavor" + file="${distro%-core-4in1}" rsync $BWLIMIT -vtP -e "$SSH_CMD" $iso/$file.* \ ${SSH_HOST}:$SSH_ISO/$string 2>&1 | tee $synclog done } + # # Commands # @@ -165,34 +176,39 @@ hg clone $FLAVORS_URL-stable flavors ;; esac fi + # Needed packages - for pkg in mercurial tazlito rsync dropbear - do - [ -d "$INSTALLED/$pkg" ] || tazpkg -gi $pkg + for pkg in mercurial tazlito rsync dropbear; do + [ ! -d "$INSTALLED/$pkg" ] && tazpkg -gi $pkg done - echo "Creating directories and files..." + + echo 'Creating directories and files...' mkdir -p $cache $iso touch $activity - sed -i s'/^WORK_DIR=.*/WORK_DIR="\/home\/slitaz"/' \ + sed -i s'/^WORK_DIR=.*/WORK_DIR="\/home\/slitaz"/' /etc/tazlito/tazlito.conf - echo "" + newline echo "Flavors files : $SLITAZ/flavors" echo "Cache files : $cache" echo "ISO images : $iso" - echo "" ;; + mewline ;; + push) # Manually upload an ISO to a server. flavors_list push_iso ;; + gen) # Build one or more flavors. flavors_list echo -e "\nGenerating flavors:\n$flavors" gen_flavors ;; + 4in1) echo -e "\nGenerating 4in1 distros..." flavors="base justx gtkonly core core-4in1" gen_flavors ;; + rolling) # # Official SliTaz rolling release flavors are automatically built. @@ -200,50 +216,47 @@ # Check if packages list was modified or if any commits have been # done in one of the rolling flavors and rebuild ISOs if needed. # - pkgs=$SLITAZ/packages/packages.md5 - last=$cache/packages.md5 - diff=$cache/packages.diff + pkgs="$SLITAZ/packages/packages.md5" + last="$cache/packages.md5" + diff="$cache/packages.diff" cook="preinit core-4in1 core core64" - + # Log stuff - rm -f $rollog && touch $rollog - rm -f $commit $commits.tmp && touch $commits.tmp - echo "Rolling tracking for changes" | log - echo "Cookiso rolling started: $(date '+%Y-%m-%d %H:%M')" | log_bot - + rm -f $rollog; touch $rollog + rm -f $commit $commits.tmp; touch $commits.tmp + echo 'Rolling tracking for changes' | log + echo "Cookiso rolling started: $(date '+%F %R')" | log_bot + # Packages changes - [ -f "$last" ] || cp -f $pkgs $cache - diff $last $pkgs > $diff + [ ! -f "$last" ] && cp -f $pkgs $cache + diff $last $pkgs > $diff if [ "$force" ] || [ -s "$diff" ]; then - echo "Found new or rebuilt packages" | log_bot + echo 'Found new or rebuilt packages' | log_bot cat $diff | grep "^+" >> $rollog # # TODO: Check new pkg and see if it's part of one of the rolling # flavors, if not we have nothing to build. # - for flavor in $cook - do + for flavor in $cook; do echo "$flavor" >> $commits.tmp echo "New packages for : $flavor" | log_bot done else - echo "No changes found in packages MD5 sum" | log_bot - echo "" > $commits.tmp + echo 'No changes found in packages MD5 sum' | log_bot + echo '' > $commits.tmp fi cp -f $pkgs $cache - + # Hg changes cd $repo || exit 1 cur=$(hg head --template '{rev}\n') - echo "Updating wok : $repo (rev $cur)" | log_bot - cd $repo && hg pull -u | log_bot - new=$(hg head --template '{rev}\n') + echo "Updating wok : $repo (rev $cur)" | log_bot + cd $repo; hg pull -u | log_bot + new=$(hg head --template '{rev}\n') cur=$(($cur + 1)) - for rev in $(seq $cur $new) - do - for file in $(hg log --rev=$rev --template "{files}") - do - flavor=$(echo $file | cut -d "/" -f 1) + for rev in $(seq $cur $new); do + for file in $(hg log --rev=$rev --template "{files}"); do + flavor=$(echo $file | cut -d/ -f1) desc=$(hg log --rev=$rev --template "{desc}" $file) echo "Committed flavor : $flavor - $desc" | log_bot # Build only rolling flavor @@ -252,7 +265,7 @@ fi done done - + # Keep previous commit and discard duplicate lines cat $commits.tmp | sed /"^$"/d > $commits.new uniq $commits.new > $commits && rm $commits.* @@ -260,9 +273,11 @@ echo "Flavors to cook : $nb" | log_bot flavors=$(cat $commits) gen_flavors ;; + spider) # SliTaz Easter egg command :-) spider ;; + *) usage ;; esac diff -r c21a7ba0d29c -r da66e6be1add cooklinux --- a/cooklinux Sun May 03 19:43:46 2015 +0300 +++ b/cooklinux Thu May 07 15:11:47 2015 +0300 @@ -4,28 +4,31 @@ # No patches, aufs and co, keep it simple. The goal is to let users build # a custom and optimized kernel in a few commands # -# Copyright (C) 2014 SliTaz GNU/Linux - BSD License +# Copyright (C) 2014-15 SliTaz GNU/Linux - BSD License # # Author: Christophe Lincoln # + . /lib/libtaz.sh . /etc/slitaz/slitaz.conf version="$1" -cookdir="/home/slitaz/src" -srcurl="https://www.kernel.org/pub/linux/kernel" +cookdir='/home/slitaz/src' +srcurl='https://www.kernel.org/pub/linux/kernel' check_root + # Help and usage + usage() { - cat << EOT + cat </dev/null >/dev/null fi } + # # Commands/help - Support 3.x 2.6 and 2.4 kernels. # + case "$1" in - 3.*) wgeturl="${srcurl}/v3.0/" ;; + 3.*) wgeturl="${srcurl}/v3.0/" ;; 2.6.*) wgeturl="${srcurl}/v2.6/" ;; 2.4.*) wgeturl="${srcurl}/v2.4/" ;; -h|-u|help|usage|"") - usage && exit 0 ;; + usage; exit 0 ;; esac + # Sanity check -[ ! "$wgeturl" ] && echo "Unable to set download url" && exit 0 +if [ -z "$wgeturl" ]; then + echo 'Unable to set download url'; + exit 0 +fi + # # Build start # -echo -n "Building Linux kernel:" && colorize 32 " $version" -echo -n "Source directory:" && colorize 30 " $cookdir" +echo -n 'Building Linux kernel:'; colorize 32 " $version" +echo -n 'Source directory:'; colorize 30 " $cookdir" # Install needed packages to compile. -for pkg in slitaz-toolchain perl xz lzma patch tar bc -do +for pkg in slitaz-toolchain perl xz lzma patch tar bc; do check_pkg $pkg done @@ -88,98 +99,100 @@ fi if [ ! -d "linux-$version" ]; then echo "Extracting: linux-$version.tar.xz" - unxz -c linux-$version.tar.xz | tar xf - + unxz -c linux-$version.tar.xz | tar -xf - fi # Clean-up and get or update config cd linux-$version -if [ "$clean" ]; then +if [ -n "$clean" ]; then make clean rm -rf slitaz fi -if [ "$mrproper" ]; then +if [ -n "$mrproper" ]; then make mrproper rm -rf slitaz fi # Get SliTaz current config. -if [ "$tazconfig" ]; then - echo "Using current SliTaz config: /proc/config.gz" +if [ -n "$tazconfig" ]; then + echo 'Using current SliTaz config: /proc/config.gz' zcat /proc/config.gz > .config yes '' | make oldconfig fi # Create a new default config. -if [ "$defconfig" ]; then +if [ -n "$defconfig" ]; then make defconfig fi # Update config and wipe out unloaded modules. -if [ "$localmod" ]; then +if [ -n "$localmod" ]; then make localmodconfig fi + # # Configurators text/ncurses/Qt/GTK # -if [ "$config" ]; then - echo "Starting Text mode configuration tool..." +if [ -n "$config" ]; then + echo 'Starting Text mode configuration tool...' make config fi -if [ "$menuconfig" ]; then - echo "Starting Ncurses configuration tool..." +if [ -n "$menuconfig" ]; then + echo 'Starting Ncurses configuration tool...' check_pkg ncurses-dev make menuconfig fi -if [ "$xconfig" ]; then - echo "Starting QT configuration tool..." +if [ -n "$xconfig" ]; then + echo 'Starting Qt configuration tool...' check_pkg qt-4 make xconfig fi -if [ "$gconfig" ]; then - echo "Starting GTK+ configuration tool..." +if [ -n "$gconfig" ]; then + echo 'Starting GTK+ configuration tool...' check_pkg gtk+-dev check_pkg libglade-dev make gconfig fi -if [ "$bzImage" ]; then - echo "Building bzImage..." +if [ -n "$bzImage" ]; then + echo 'Building bzImage...' make bzImage || exit 1 mkdir -p slitaz/linux-custom-$version/fs/boot cp -f arch/x86/boot/bzImage \ slitaz/linux-custom-$version/fs/boot/vmlinuz-$version fi - -if [ "$modules" ]; then - echo "Building modules..." + +if [ -n "$modules" ]; then + echo 'Building modules...' make modules || exit 1 make INSTALL_MOD_PATH=slitaz/linux-custom-$version/fs modules_install rm -f slitaz/linux-custom-$version/fs/lib/modules/$version/build rm -f slitaz/linux-custom-$version/fs/lib/modules/$version/source fi + # # Packaging # if [ -d "slitaz/linux-custom-$version/fs" ]; then - echo "Packing Linux..." + echo 'Packing Linux...' cd slitaz else - echo -n "Packing Linux:" && colorize 31 " not yet built" + echo -n 'Packing Linux:'; colorize 31 ' not yet built' exit 0 fi # Receipt. -echo "Creating the receipt..." -cat > linux-custom-$version/receipt << EOF +echo 'Creating the receipt...' +cat > linux-custom-$version/receipt < # + . /lib/libtaz.sh [ -f "/etc/slitaz/cross.conf" ] && . /etc/slitaz/cross.conf [ -f "cross.conf" ] && . ./cross.conf + # Handle --config=/path/to/cross.conf + [ "$config" ] && . $config -source=$WORK/source -tools=$WORK/tools -sysroot=$WORK/sysroot -logdir=$WORK/log +source="$WORK/source" +tools="$WORK/tools" +sysroot="$WORK/sysroot" +logdir="$WORK/log" + # Cross-tools tarballs + binutils_tarball="binutils-$BINUTILS_VERSION.tar.bz2" linux_tarball="linux-$LINUX_VERSION.tar.xz" glibc_tarball="glibc-$GLIBC_VERSION.tar.bz2" @@ -25,7 +30,9 @@ gcc_tarball="gcc-$GCC_VERSION.tar.bz2" libtool_tarball="libtool-$LIBTOOL_VERSION.tar.gz" + # Cross-tools URLs + binutils_wget="http://ftp.gnu.org/gnu/binutils/$binutils_tarball" linux_wget="http://www.kernel.org/pub/linux/kernel/v3.x/$linux_tarball" glibc_wget="http://ftp.gnu.org/gnu/libc/$glibc_tarball" @@ -34,9 +41,11 @@ gcc_wget="http://ftp.gnu.org/gnu/gcc/gcc-$GCC_VERSION/$gcc_tarball" libtool_wget="ftp://sunsite.cnlab-switch.ch/mirror/gnu/libtool/$libtool_tarball" + # Help and usage. + usage() { - cat << EOT + cat <> $package/README << EOT + echo -n 'Creating toolchain README...' + cat >> $package/README </dev/null fi cp -a eglibc-ports-$EGLIBC_VERSION eglibc-$EGLIBC_VERSION/ports - libexec=/usr/lib/eglibc ;; + libexec='/usr/lib/eglibc' ;; x86_64) #export CFLAGS="-march=nocona -O2 -pipe" - ccflags="-m64" - libexec=/usr/lib64/eglibc ;; + ccflags='-m64' + libexec='/usr/lib64/eglibc' ;; esac # Disable linking to libgcc_eh cd eglibc-$EGLIBC_VERSION @@ -300,14 +329,14 @@ sed -e 's/-lgcc_eh//g' Makeconfig.orig > Makeconfig cd .. echo "CFLAGS: $CFLAGS" - mkdir -p eglibc-build && cd eglibc-build + mkdir -p eglibc-build; cd eglibc-build # config.cache - cat > config.cache << EOT + cat > config.cache <&1 | tee $logdir/binutils.log ;; + linux-headers) linux_headers 2>&1 | tee $logdir/linux-headers.log ;; + glibc-headers) glibc_headers 2>&1 | tee $logdir/glibc-headers.log ;; + gcc-static) gcc_static 2>&1 | tee $logdir/gcc-static.log ;; + glibc) glibc 2>&1 | tee $logdir/glibc.log ;; + eglibc) eglibc 2>&1 | tee $logdir/eglibc.log ;; + gcc-final) gcc_final 2>&1 | tee $logdir/gcc-final.log ;; + compile) # Compile the full toolchain. time=$(date +%s) @@ -484,11 +532,11 @@ linux_headers 2>&1 | tee $logdir/linux-headers.log gcc_static 2>&1 | tee $logdir/gcc-static.log case "$ARCH" in - arm*) eglibc 2>&1 | tee $logdir/eglibc.log ;; + arm*) eglibc 2>&1 | tee $logdir/eglibc.log ;; x86_64) glibc 2>&1 | tee $logdir/glibc.log ;; esac gcc_final 2>&1 | tee $logdir/gcc-final.log - echo "" + newline echo "Compile end : $(date)" | tee -a $logdir/compile.log time=$(($(date +%s) - $time)) sec=$time @@ -496,40 +544,43 @@ [ "$div" != 0 ] && min="~ ${div}m" echo "Build time : ${sec}s $min" | tee -a $logdir/compile.log echo "" ;; + libtool) cross_libtool 2>&1 | tee $logdir/libtool.log ;; + libhack) # Some libxx.la files have libdir='/usr/lib' and make packages # cross compilation fail. Some receipts may have got hacked to force # use of libs in sysroot but 'cross libhack' should be preferred. echo "Libdir: $sysroot/usr/lib" - for la in $(fgrep -l libdir= $sysroot/usr/lib/*.la 2>/dev/null) - do + for la in $(fgrep -l libdir= $sysroot/usr/lib/*.la 2>/dev/null); do if fgrep -q "libdir='/usr/lib'" ${la}; then echo "Cross fixing: $(basename $la)" sed -i s"#libdir=.*#libdir='/cross/$ARCH/sysroot/usr/lib'#" ${la} fi done ;; + clean) - echo -n "Removing all source files..." - rm -rf $WORK/source && status + echo -n 'Removing all source files...' + rm -rf $WORK/source; status [ "$log" ] && rm -f $WORK/log/*.log ;; + clean-tools) # Remove crap :-) init_compile echo "Cleaning : $tools ($(du -sh $tools | awk '{print $1}'))" - for file in share/info share/man share/local - do + for file in share/info share/man share/local; do echo -n "Removing : $file" - rm -rf $tools/$file && status + rm -rf $tools/$file; status done echo -n "Stripping : shared libs and binaries" - find $tools/bin -type f -exec strip -s '{}' 2>/dev/null \; - find $tools/lib -name cc1* -exec strip -s '{}' 2>/dev/null \; - find $tools/lib -name lto* -exec strip -s '{}' 2>/dev/null \; + find $tools/bin -type f -exec strip -s '{}' 2>/dev/null \; + find $tools/lib -name cc1* -exec strip -s '{}' 2>/dev/null \; + find $tools/lib -name lto* -exec strip -s '{}' 2>/dev/null \; find $sysroot -name "*.so*" -exec ${TARGET}-strip -s '{}' 2>/dev/null \; - sleep 1 && status - echo -n "Tools size : " && du -sh $tools | awk '{print $1}' ;; + sleep 1; status + echo -n "Tools size : "; du -sh $tools | awk '{print $1}' ;; + gen-prebuilt) # Create a prebuilt cross toolchain tarball. init_compile @@ -538,20 +589,21 @@ tarball="$package.tar.bz2" cd /cross mkdir -p $package/$ARCH || exit 1 - echo "" + newline echo -n "Copying $ARCH to: $package" cp -a $ARCH/tools $package/$ARCH cp -a $ARCH/sysroot $package/$ARCH status prebuilt_readme echo -n "Creating prebuilt $ARCH toolchain tarball..." - tar cjf $tarball $package + tar -cjf $tarball $package status rm -rf $package size=$(du -sh $tarball | awk '{print $1}') echo "Tarball path: $(pwd)/$tarball" echo "Tarball size: $size" - echo "" ;; + newline ;; + *) usage ;; esac diff -r c21a7ba0d29c -r da66e6be1add lib/libcook.sh --- a/lib/libcook.sh Sun May 03 19:43:46 2015 +0300 +++ b/lib/libcook.sh Thu May 07 15:11:47 2015 +0300 @@ -10,13 +10,17 @@ . /usr/lib/slitaz/libpkg.sh . /etc/slitaz/slitaz.conf + # System wide config can be overwritten by a cook.conf in current path. + [ -f "/etc/slitaz/cook.conf" ] && . /etc/slitaz/cook.conf [ -f "cook.conf" ] && . ./cook.conf + # Shared DB between Cook, the Cooker and Cookiso. # In cookiso: repo= --> flavors -if [ "$(basename $0)" = "cookiso" ]; then + +if [ "$(basename $0)" = 'cookiso' ]; then cache="$CACHE/cookiso" #cookiso variables repo="$SLITAZ/flavors" @@ -39,19 +43,25 @@ cooknotes="$cache/cooknotes" crontabs="/var/spool/cron/crontabs/root" + # Lograte activity. + [ -s "$activity" ] && tail -n 60 $activity > /tmp/tail-$$ && \ mv -f /tmp/tail-$$ $activity + # Log activities, we want first letter capitalized. # TODO: use /lib/libtaz.sh log() but need to change all: # echo "Message" | log --> log "Message" + log() { grep ^[A-Z] | \ - sed s"#^[A-Z]\([^']*\)#$(date '+%Y-%m-%d %H:%M') : \0#" >> $activity + sed s"#^[A-Z]\([^']*\)#$(date '+%F %R') : \0#" >> $activity } + # Log broken packages. + broken() { if ! grep -q "^$pkg$" $broken; then echo "$pkg" >> $broken diff -r c21a7ba0d29c -r da66e6be1add po/cook.pot --- a/po/cook.pot Sun May 03 19:43:46 2015 +0300 +++ b/po/cook.pot Thu May 07 15:11:47 2015 +0300 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Cook 3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-05 15:28+0200\n" +"POT-Creation-Date: 2015-05-07 12:52+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,13 +16,18 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: cook:32 -msgid "\\033[1mUsage:\\033[0m cook [package|command] [list|--option]" +msgid "Usage:" +msgstr "" + +#: cook:32 +msgid "cook [package|command] [list|--option]" msgstr "" #: cook:34 -msgid "\\033[1mCommands:\\033[0m" +msgid "Commands:" msgstr "" #: cook:35 @@ -37,910 +42,798 @@ msgid "Setup a cross environment." msgstr "" -#: cook:38 +#: cook:39 msgid "Test environment and cook a package." msgstr "" -#: cook:39 +#: cook:40 msgid "List packages in the wok." msgstr "" -#: cook:40 +#: cook:41 msgid "Simple packages search function." msgstr "" -#: cook:41 +#: cook:42 msgid "Create a new package with a receipt." msgstr "" -#: cook:42 +#: cook:43 msgid "Cook a list of packages." msgstr "" -#: cook:43 +#: cook:44 msgid "Clean-up all packages files." msgstr "" -#: cook:44 +#: cook:45 msgid "Clean-up all packages sources." msgstr "" -#: cook:45 +#: cook:46 +msgid "Check for uncooked packages" +msgstr "" + +#: cook:47 msgid "Create packages DB lists and flavors." msgstr "" -#: cook:47 -msgid "\\033[1mOptions:\\033[0m" +#: cook:49 +msgid "Options:" msgstr "" -#: cook:48 +#: cook:51 msgid "clean the package in the wok." msgstr "" -#: cook:49 +#: cook:52 msgid "cook and install the package." msgstr "" -#: cook:50 +#: cook:53 msgid "get the package source tarball." msgstr "" -#: cook:51 +#: cook:54 msgid "block a package so cook will skip it." msgstr "" -#: cook:52 +#: cook:55 msgid "unblock a blocked package." msgstr "" -#: cook:53 +#: cook:56 msgid "check dependencies of cooked package." msgstr "" -#: cook:54 +#: cook:57 msgid "repack an already built package." msgstr "" -#: cook:55 +#: cook:58 +msgid "display debugging messages." +msgstr "" + +#: cook:59 +msgid "continue running compile_rules." +msgstr "" + +#: cook:61 msgid "create a receipt interactively." msgstr "" -#: cook:56 +#: cook:63 msgid "clone the cooking wok from Hg repo." msgstr "" -#: cook:57 +#: cook:64 msgid "clone the stable wok from Hg repo." msgstr "" -#: cook:58 +#: cook:65 msgid "clone the undigest wok from Hg repo." msgstr "" -#: cook:59 +#: cook:66 msgid "clone the tiny SliTaz wok from Hg repo." msgstr "" -#: cook:60 +#: cook:67 msgid "force reinstall of chroot packages." msgstr "" -#: cook:61 +#: cook:69 msgid "create up-to-date flavors files." msgstr "" -#: cook:76 -#, sh-format -msgid "Unable to find package in the wok: $pkg" +#: cook:88 +msgid "Unable to find package \"%s\" in the wok" msgstr "" #. L10n: QA is quality assurance -#: cook:84 -#, sh-format -msgid "QA: empty variable: ${var}=\"\"" +#: cook:97 +msgid "QA: empty variable: %s" msgstr "" -#: cook:91 -#, sh-format -msgid "Creating directories structure in: $SLITAZ" +#: cook:106 +msgid "Creating directories structure in \"%s\"" msgstr "" -#: cook:93 -#, sh-format -msgid "Creating DB files in: $CACHE" +#: cook:108 +msgid "Creating DB files in \"%s\"" msgstr "" -#: cook:102 +#: cook:118 msgid "QA: checking package receipt..." msgstr "" -#: cook:118 -#, sh-format -msgid "QA: unknown category: $value" +#: cook:133 +msgid "QA: unknown category \"%s\"" msgstr "" -#: cook:119 -#, sh-format -msgid "Please, use one of: $valid" +#: cook:134 +msgid "Please, use one of: %s" msgstr "" -#: cook:128 -#, sh-format -msgid "QA: unable to reach: $value" +#: cook:144 +msgid "QA: unable to reach \"%s\"" msgstr "" -#: cook:184 -#, sh-format -msgid "Creating tarball: $tarball" +#: cook:204 +msgid "Creating tarball \"%s\"" msgstr "" -#: cook:207 cook:211 -#, sh-format -msgid "ERROR: wget $WGET_URL" +#: cook:229 cook:234 cook:248 cook:250 cook:260 cook:330 +msgid "ERROR: %s" msgstr "" -#: cook:218 -msgid "Getting source from Hg..." +#: cook:242 cook:257 cook:272 cook:285 cook:296 cook:328 +msgid "Getting source from %s..." msgstr "" -#: cook:219 cook:233 cook:245 cook:257 -#, sh-format -msgid "URL: $url" +#: cook:243 cook:258 cook:273 cook:286 cook:329 +msgid "URL: %s" msgstr "" -#: cook:220 -#, sh-format -msgid "Cloning to: $pwd/$pkgsrc" -msgstr "" - -#: cook:222 -#, sh-format -msgid "Hg branch: $BRANCH" -msgstr "" - -#: cook:224 -#, sh-format -msgid "ERROR: hg clone $url --rev $BRANCH" -msgstr "" - -#: cook:226 -#, sh-format -msgid "ERROR: hg clone $url" -msgstr "" - -#: cook:232 -msgid "Getting source from Git..." -msgstr "" - -#: cook:234 -#, sh-format -msgid "ERROR: git clone $url" -msgstr "" - -#: cook:236 -#, sh-format -msgid "Git branch: $BRANCH" -msgstr "" - -#: cook:244 -msgid "Getting source from CVS..." +#: cook:244 cook:275 +msgid "Cloning to \"%s\"" msgstr "" #: cook:246 -#, sh-format -msgid "CVS module: $mod" +msgid "Hg branch: %s" msgstr "" -#: cook:247 -#, sh-format -msgid "Cloning to: $pwd/$mod" +#: cook:262 +msgid "Git branch: %s" msgstr "" -#: cook:256 -msgid "Getting source from SVN..." +#: cook:274 +msgid "CVS module: %s" msgstr "" -#: cook:266 -msgid "Getting source from bazaar..." -msgstr "" - -#: cook:276 +#: cook:306 msgid "Don't forget to add to receipt:" msgstr "" -#: cook:283 -#, sh-format -msgid "ERROR: Unable to handle: $WGET_URL" +#: cook:314 +msgid "ERROR: Unable to handle \"%s\"" msgstr "" -#: cook:295 -#, sh-format -msgid "Getting source from mirror: $url" +#: cook:332 +msgid "Extracting source archive \"%s\"" msgstr "" -#: cook:296 -#, sh-format -msgid "ERROR: wget $url" +#. L10n: 'm' is for minutes (approximate cooking time) +#: cook:367 +msgid "~ %dm" msgstr "" -#: cook:298 -#, sh-format -msgid "Extracting: $TARBALL" +#: cook:370 +msgid "Summary for: %s" +msgstr "" + +#. L10n: keep the same width of translations to get a consistent view +#: cook:374 +msgid "Source dir : %s" +msgstr "" + +#: cook:375 +msgid "Src file : %s" +msgstr "" + +#: cook:376 +msgid "Src size : %s" +msgstr "" + +#: cook:377 +msgid "Produced : %s" +msgstr "" + +#: cook:378 +msgid "Packed : %s" +msgstr "" + +#: cook:379 +msgid "Compressed : %s" +msgstr "" + +#: cook:380 +msgid "Files : %s" +msgstr "" + +#. L10n: 's' is for seconds (cooking time) +#: cook:382 +msgid "Cook time : %ds %s" +msgstr "" + +#: cook:383 +msgid "Cook date : %s" +msgstr "" + +#: cook:383 cook:395 cook:1448 cook:1602 +msgid "+%%F %%R" +msgstr "" + +#: cook:384 +msgid "Host arch : %s" +msgstr "" + +#: cook:392 +msgid "Debug information" msgstr "" #. L10n: specify your format of date and time (to help: man date) #. L10n: not bad one is '+%x %R' -#: cook:322 cook:349 cook:1277 cook:1384 -msgid "+%Y-%m-%d %H:%M" +#: cook:395 +msgid "Cook date: %s" msgstr "" -#. L10n: 'm' is for minutes (approximate cooking time) -#: cook:326 -#, sh-format -msgid "~ ${div}m" +#. L10n: Please, translate all messages beginning with ERROR in a same way +#: cook:397 cook:661 cook:765 cook:799 cook:889 cook:1766 +msgid "ERROR" msgstr "" -#: cook:327 -#, sh-format -msgid "Summary for: $PACKAGE $VERSION" +#: cook:484 +msgid "Executing strip on all files..." +msgstr "" + +#: cook:496 +msgid "Removing Python compiled files..." +msgstr "" + +#: cook:503 +msgid "Removing Perl compiled files..." +msgstr "" + +#: cook:518 cook:647 +msgid "Build dependencies to remove:" +msgstr "" + +#: cook:520 cook:648 +msgid "Removing:" +msgstr "" + +#: cook:535 +msgid "Cook: %s" +msgstr "" + +#: cook:549 +msgid "%s sysroot: %s" +msgstr "" + +#: cook:550 +msgid "Adding \"%s\" to PATH" +msgstr "" + +#: cook:554 +msgid "Using cross-tools: %s" +msgstr "" + +#: cook:578 +msgid "Disabling -pipe compile flag: %d RAM free" +msgstr "" + +#: cook:594 +msgid "Checking build dependencies..." +msgstr "" + +#: cook:595 +msgid "Using packages DB: %s" +msgstr "" + +#: cook:619 +msgid "Missing dep (wok/pkg): %s" +msgstr "" + +#: cook:627 +msgid "ERROR: unknown dep \"%s\"" +msgstr "" + +#: cook:641 +msgid "Auto cook config is set: %s" +msgstr "" + +#: cook:644 +msgid "Building dep (wok/pkg) : %s" +msgstr "" + +#: cook:649 +msgid "ERROR: can't cook dep \"%s\"" +msgstr "" + +#: cook:664 +msgid "ERROR: missing %d dependency" +msgid_plural "ERROR: missing %d dependencies" +msgstr[0] "" +msgstr[1] "" + +#: cook:671 +msgid "Installing dep (pkg/local): %s" +msgstr "" + +#: cook:678 +msgid "Installing dep (web/cache): %s" +msgstr "" + +#: cook:734 cook:789 +msgid "Executing: %s" +msgstr "" + +#: cook:751 +msgid "Running testsuite" +msgstr "" + +#: cook:762 +msgid "ERROR: cook failed" +msgstr "" + +#: cook:786 +msgid "Pack: %s" +msgstr "" + +#: cook:791 +msgid "ERROR: genpkg_rules failed" +msgstr "" + +#: cook:794 +msgid "No packages rules: meta package" +msgstr "" + +#: cook:807 +msgid "Copying \"%s\"..." +msgstr "" + +#: cook:816 +msgid "Creating the list of files..." +msgstr "" + +#: cook:824 +msgid "Creating md5sum of files..." +msgstr "" + +#: cook:839 +msgid "Compressing the FS..." +msgstr "" + +#: cook:847 +msgid "Updating receipt sizes..." +msgstr "" + +#: cook:855 +msgid "Updating receipt EXTRAVERSION: %s" +msgstr "" + +#: cook:862 +msgid "Creating full cpio archive..." +msgstr "" + +#: cook:867 +msgid "Restoring original package tree..." +msgstr "" + +#: cook:876 +msgid "Package \"%s\" created" +msgstr "" + +#: cook:895 +msgid "QA: checking for empty package..." +msgstr "" + +#: cook:898 +msgid "ERROR: empty package" +msgstr "" + +#: cook:906 +msgid "Removing old package \"%s\"" +msgstr "" + +#: cook:940 +msgid "Unable to install package, build has failed." +msgstr "" + +#: cook:949 +msgid "Updating %s chroot environment..." +msgstr "" + +#: cook:950 +msgid "Updating chroot: %s" +msgstr "" + +#: cook:982 +msgid "Setup aufs chroot..." +msgstr "" + +#: cook:994 +msgid "Aufs mount failure" +msgstr "" + +#: cook:1006 +msgid "Leaving aufs chroot..." +msgstr "" + +#: cook:1075 +msgid "Multiple choice:" +msgstr "" + +#: cook:1076 +msgid "Select one [%s]: " +msgstr "" + +#: cook:1117 +msgid "Getting standard devel files..." +msgstr "" + +#: cook:1134 +msgid "List of %s packages in \"%s\"" +msgstr "" + +#: cook:1150 +msgid "%s package" +msgid_plural "%s packages" +msgstr[0] "" +msgstr[1] "" + +#: cook:1159 +msgid "Search results for \"%s\"" +msgstr "" + +#: cook:1166 +msgid "Cook: setup environment" +msgstr "" + +#: cook:1167 +msgid "Setting up your environment" +msgstr "" + +#: cook:1170 +msgid "Checking for packages to install..." +msgstr "" + +#: cook:1176 +msgid "ERROR: %s is not installed" +msgstr "" + +#: cook:1179 +msgid "Using config file: %s" +msgstr "" + +#: cook:1200 +msgid "Adding group \"%s\"" +msgstr "" + +#: cook:1203 +msgid "Setting permissions for group \"%s\"..." +msgstr "" + +#: cook:1206 +msgid "All done, ready to cook packages :-)" +msgstr "" + +#: cook:1221 +msgid "Cook: setup %s cross environment" +msgstr "" + +#: cook:1222 +msgid "Setting up your %s cross environment" msgstr "" #. L10n: keep the same width of translations to get a consistent view -#: cook:330 -#, sh-format -msgid "Source dir : $srcdir" +#: cook:1251 +msgid "Target arch : %s" msgstr "" -#: cook:331 -#, sh-format -msgid "Src file : $TARBALL" +#: cook:1252 +msgid "Configure args : %s" msgstr "" -#: cook:332 -#, sh-format -msgid "Src size : $srcsize" +#: cook:1253 +msgid "Build flags : %s" msgstr "" -#: cook:333 -#, sh-format -msgid "Produced : $prod" +#: cook:1254 +msgid "Arch sysroot : %s" msgstr "" -#: cook:334 -#, sh-format -msgid "Packed : $fs" +#: cook:1255 +msgid "Tools prefix : %s" msgstr "" -#: cook:335 -#, sh-format -msgid "Compressed : $size" +#: cook:1257 +msgid "Packages DB : %s" msgstr "" -#: cook:336 -#, sh-format -msgid "Files : $files" +#: cook:1268 +msgid "WARNING: %s is not installed in sysroot" msgstr "" -#. L10n: 's' is for seconds (cooking time) -#: cook:338 -#, sh-format -msgid "Cook time : ${sec}s $min" +#: cook:1272 +msgid "Cross compiler : %s" msgstr "" -#: cook:339 -#, sh-format -msgid "Cook date : $cookdate" +#: cook:1274 +msgid "C compiler \"%s\" is missing" msgstr "" -#: cook:340 -#, sh-format -msgid "Host arch : $ARCH" +#: cook:1275 +msgid "Run \"%s\" to cook a toolchain" msgstr "" -#: cook:346 -msgid "Debug information" -msgstr "" - -#: cook:350 -#, sh-format -msgid "Cook date: $datenow" -msgstr "" - -#. L10n: Please, translate all messages beginning with ERROR in a same way -#: cook:352 cook:614 cook:711 cook:742 cook:828 cook:1527 -msgid "ERROR" -msgstr "" - -#: cook:437 -msgid "Executing strip on all files..." -msgstr "" - -#: cook:450 -msgid "Removing Python compiled files..." -msgstr "" - -#: cook:458 -msgid "Removing Perl compiled files..." -msgstr "" - -#: cook:472 cook:600 -msgid "Build dependencies to remove: " -msgstr "" - -#: cook:473 cook:601 -msgid "Removing:" -msgstr "" - -#: cook:487 -#, sh-format -msgid "Cook: $PACKAGE $VERSION" -msgstr "" - -#: cook:501 -#, sh-format -msgid "$ARCH sysroot: $sysroot" -msgstr "" - -#: cook:502 -#, sh-format -msgid "Adding $tools/bin to PATH" -msgstr "" - -#: cook:506 -#, sh-format -msgid "Using cross-tools: $CROSS_COMPILE" -msgstr "" - -#: cook:528 -#, sh-format -msgid "Disabling -pipe compile flag: $free RAM" -msgstr "" - -#: cook:545 -msgid "Checking build dependencies..." -msgstr "" - -#: cook:546 -#, sh-format -msgid "Using packages DB: ${root}$DB" -msgstr "" - -#: cook:572 -#, sh-format -msgid "Missing dep (wok/pkg): $i $vers" -msgstr "" - -#: cook:580 -#, sh-format -msgid "ERROR: unknown dep $i" -msgstr "" - -#: cook:593 -msgid "Auto cook config is set: AUTO_COOK" -msgstr "" - -#: cook:597 -#, sh-format -msgid "Building dep (wok/pkg) : $i $vers" -msgstr "" - -#: cook:602 -#, sh-format -msgid "ERROR: can't cook dep '$i'" -msgstr "" - -#: cook:617 -#, sh-format -msgid "ERROR: missing dep $nb" -msgstr "" - -#: cook:624 -#, sh-format -msgid "Installing dep (pkg/local): $i" -msgstr "" - -#: cook:632 -#, sh-format -msgid "Installing dep (web/cache): $i" -msgstr "" - -#: cook:682 -msgid "Executing: compile_rules" -msgstr "" - -#: cook:699 -msgid "Running testsuite" -msgstr "" - -#: cook:708 -msgid "ERROR: cook failed" -msgstr "" - -#: cook:729 -#, sh-format -msgid "Pack: $PACKAGE ${VERSION}${arch}" -msgstr "" - -#: cook:732 -msgid "Executing: genpkg_rules" -msgstr "" - -#: cook:734 -msgid "ERROR: genpkg_rules failed" -msgstr "" - -#: cook:737 -msgid "No packages rules: meta package" -msgstr "" - -#: cook:751 -#, sh-format -msgid "Copying $file..." -msgstr "" - -#: cook:757 -msgid "Creating the list of files..." -msgstr "" - -#: cook:768 -msgid "Creating md5sum of files..." -msgstr "" - -#: cook:783 -msgid "Compressing the fs..." -msgstr "" - -#: cook:790 -msgid "Updating receipt sizes..." -msgstr "" - -#: cook:798 -#, sh-format -msgid "Updating receipt EXTRAVERSION: $EXTRAVERSION" -msgstr "" - -#: cook:805 -msgid "Creating full cpio archive..." -msgstr "" - -#: cook:809 -msgid "Restoring original package tree..." -msgstr "" - -#: cook:817 -#, sh-format -msgid "Package: $tazpkg" -msgstr "" - -#: cook:833 -msgid "QA: checking for empty package..." -msgstr "" - -#: cook:836 -msgid "ERROR: empty package" -msgstr "" - -#: cook:844 -#, sh-format -msgid "Removing old: $old_pkg" -msgstr "" - -#: cook:874 -msgid "Unable to install package, build has failed." -msgstr "" - -#: cook:883 -#, sh-format -msgid "Updating $ARCH chroot environment..." -msgstr "" - -#: cook:884 -#, sh-format -msgid "Updating chroot: $pkg (${VERSION}${EXTRAVERSION}${arch})" -msgstr "" - -#: cook:905 -msgid "Setup aufs chroot..." -msgstr "" - -#: cook:917 -msgid "Aufs mountage failure" -msgstr "" - -#: cook:928 -msgid "Leaving aufs chroot..." -msgstr "" - -#: cook:1030 -#, sh-format -msgid "List of $ARCH packages in: $WOK" -msgstr "" - -#: cook:1046 -msgid "Packages:" -msgstr "" - -#: cook:1053 -#, sh-format -msgid "Search results for: $query" -msgstr "" - -#: cook:1059 -msgid "Cook: setup environment" -msgstr "" - -#: cook:1060 -msgid "Setting up your environment" -msgstr "" - -#: cook:1063 -msgid "Checking for packages to install..." -msgstr "" - -#: cook:1069 -msgid "ERROR: cross is not installed" -msgstr "" - -#: cook:1072 -msgid "Using config file: /etc/slitaz/cross.conf" -msgstr "" - -#: cook:1097 -msgid "Adding group: slitaz" -msgstr "" - -#: cook:1100 -msgid "Setting permissions for slitaz group..." -msgstr "" - -#: cook:1103 -msgid "All done, ready to cook packages :-)" -msgstr "" - -#: cook:1116 -#, sh-format -msgid "Cook: setup $arch cross environment" -msgstr "" - -#: cook:1117 -#, sh-format -msgid "Setting up your $arch cross environment" -msgstr "" - -#. L10n: keep the same width of translations to get a consistent view -#: cook:1148 -#, sh-format -msgid "Target arch : $ARCH" -msgstr "" - -#: cook:1149 -#, sh-format -msgid "Configure args : $CONFIGURE_ARGS" -msgstr "" - -#: cook:1150 -#, sh-format -msgid "Build flags : $flags" -msgstr "" - -#: cook:1151 -#, sh-format -msgid "Arch sysroot : $sysroot" -msgstr "" - -#: cook:1152 -#, sh-format -msgid "Tools prefix : $tools/bin" -msgstr "" - -#: cook:1154 -#, sh-format -msgid "Packages DB : ${root}$DB" -msgstr "" - -#: cook:1165 -msgid "WARNING: (e)glibc-base is not installed in sysroot" -msgstr "" - -#: cook:1169 -#, sh-format -msgid "Cross compiler : ${HOST_SYSTEM}-gcc" -msgstr "" - -#: cook:1171 -#, sh-format -msgid "C compiler is missing: ${HOST_SYSTEM}-gcc" -msgstr "" - -#: cook:1172 -msgid "Run 'cross compile' to cook a toolchain" -msgstr "" - -#: cook:1177 +#: cook:1281 msgid "Cook test: testing the cook environment" msgstr "" -#: cook:1187 -#, sh-format -msgid "$pkg package already exists." +#: cook:1292 +msgid "Package \"%s\" already exists." msgstr "" -#: cook:1190 -#, sh-format -msgid "Creating $WOK/$pkg" +#: cook:1296 +msgid "Creating folder \"%s\"" msgstr "" -#: cook:1192 +#: cook:1299 msgid "Preparing the package receipt..." msgstr "" -#: cook:1200 +#: cook:1307 msgid "Entering interactive mode..." msgstr "" -#: cook:1202 -#, sh-format -msgid "Package : $pkg" +#: cook:1309 +msgid "Package : %s" msgstr "" -#: cook:1203 +#: cook:1311 msgid "Version : " msgstr "" -#: cook:1205 +#: cook:1314 msgid "Category : " msgstr "" #. L10n: Short description -#: cook:1208 +#: cook:1318 msgid "Short desc : " msgstr "" -#: cook:1210 +#: cook:1321 msgid "Maintainer : " msgstr "" -#: cook:1212 +#: cook:1324 msgid "License : " msgstr "" -#: cook:1214 +#: cook:1327 msgid "Web site : " msgstr "" -#: cook:1218 +#: cook:1332 msgid "Wget URL to download source tarball." msgstr "" -#: cook:1219 +#: cook:1333 msgid "Example : " msgstr "" -#: cook:1220 +#: cook:1334 msgid "Wget url : " msgstr "" -#: cook:1223 -msgid "Do you need a stuff directory? (y/N) : " +#: cook:1338 +msgid "Do you need a stuff directory? (y/N)" msgstr "" -#: cook:1225 +#: cook:1340 msgid "Creating the stuff directory..." msgstr "" -#: cook:1229 -msgid "Are you going to write a description? (y/N) : " +#: cook:1345 +msgid "Are you going to write a description? (y/N)" msgstr "" -#: cook:1231 -msgid "Creating the description.txt file..." +#: cook:1347 +msgid "Creating the \"%s\" file..." msgstr "" -#: cook:1234 +#: cook:1351 msgid "Receipt is ready to use." msgstr "" -#: cook:1240 +#: cook:1359 msgid "No list in argument." msgstr "" -#: cook:1242 -#, sh-format -msgid "No list found: $list2" +#: cook:1363 +msgid "List \"%s\" not found." msgstr "" -#: cook:1243 -#, sh-format -msgid "Cook list starting: $list2" +#: cook:1367 +msgid "Starting cooking the list \"%s\"" msgstr "" -#: cook:1250 +#: cook:1375 msgid "Cleaning all packages files..." msgstr "" -#: cook:1255 +#: cook:1381 msgid "Cleaning all packages sources..." msgstr "" -#: cook:1268 -msgid "Packages directory doesn't exist" +#: cook:1388 +msgid "Checking for uncooked packages" msgstr "" -#: cook:1275 +#: cook:1401 +msgid "Package \"%s\"" +msgstr "" + +#: cook:1420 +msgid "%s uncooked package" +msgid_plural "%s uncooked packages" +msgstr[0] "" +msgstr[1] "" + +#: cook:1422 +msgid "All packages are cooked :-)" +msgstr "" + +#: cook:1435 +msgid "Packages directory \"%s\" doesn't exist" +msgstr "" + +#: cook:1445 msgid "Cook pkgdb: Creating all packages lists" msgstr "" -#: cook:1276 -#, sh-format -msgid "Creating lists for: $PKGS" +#: cook:1446 +msgid "Creating lists for \"%s\"" msgstr "" -#: cook:1278 -#, sh-format -msgid "Cook pkgdb started: $datenow" +#: cook:1448 +msgid "Cook pkgdb started: %s" msgstr "" -#: cook:1281 -msgid "Creating: packages.list" +#: cook:1454 cook:1457 cook:1523 cook:1535 cook:1540 +msgid "Creating file \"%s\"" msgstr "" -#: cook:1283 -msgid "Creating: packages.md5" +#: cook:1463 +msgid "Creating lists from \"%s\"" msgstr "" -#: cook:1286 -#, sh-format -msgid "Creating lists from: $WOK" -msgstr "" - -#: cook:1328 -msgid "Done: packages.desc" -msgstr "" - -#: cook:1329 -msgid "Done: packages.txt" -msgstr "" - -#: cook:1330 -msgid "Done: packages.equiv" -msgstr "" - -#: cook:1333 -msgid "Creating: files.list.lzma" +#: cook:1516 cook:1517 cook:1518 cook:1529 cook:1547 +msgid "Done: %s (%s)" msgstr "" #. L10n: 's' is for seconds (cooking time) -#: cook:1342 -#, sh-format -msgid "Packages: $nb - Time: ${time}s" +#: cook:1554 +msgid "Packages: %s - Time: %ss" msgstr "" -#: cook:1348 -#, sh-format -msgid "Missing flavors: $flavors" +#: cook:1563 +msgid "Missing flavors folder \"%s\"" msgstr "" -#: cook:1350 -#, sh-format -msgid "Creating flavors files in: $live" +#: cook:1568 +msgid "Creating flavors files in \"%s\"" msgstr "" -#: cook:1351 +#: cook:1569 msgid "Cook pkgdb: Creating all flavors" msgstr "" -#: cook:1353 +#: cook:1572 msgid "Recharging lists to use latest packages..." msgstr "" -#: cook:1358 -msgid "Creating configuration file: tazlito.conf" +#: cook:1577 +msgid "Creating configuration file \"%s\"" msgstr "" -#: cook:1368 +#: cook:1589 msgid "Starting to generate flavors..." msgstr "" -#: cook:1373 -#, sh-format -msgid "Packing flavor: $fl" +#: cook:1593 +msgid "Packing flavor \"%s\"" msgstr "" -#: cook:1381 -#, sh-format -msgid "Flavors size: $fl_size" +#: cook:1599 +msgid "Total flavors size: %s" msgstr "" -#: cook:1385 -#, sh-format -msgid "Cook pkgdb end: $datenow" +#: cook:1602 +msgid "Cook pkgdb end: %s" msgstr "" -#: cook:1412 -#, sh-format -msgid "cook: HOST_ARCH is not set in $pkg receipt" +#: cook:1622 +msgid "cook: HOST_ARCH is not set in \"%s\" receipt" msgstr "" -#: cook:1413 -#, sh-format -msgid "cook: This package is not included in: $ARCH" +#: cook:1623 +msgid "package \"%s\" is not included in %s" msgstr "" -#: cook:1414 cook:1425 -#, sh-format -msgid "bugs: $CROSS_BUGS" +#: cook:1624 cook:1637 cook:1639 +msgid "cook: %s" msgstr "" -#: cook:1415 -#, sh-format -msgid "Cook skip: $pkg is not included in: $ARCH" +#: cook:1625 cook:1640 +msgid "bugs: %s" msgstr "" -#: cook:1423 -#, sh-format -msgid "cook: HOST_ARCH=$HOST_ARCH" +#: cook:1626 cook:1641 +msgid "Cook skip: %s" msgstr "" -#: cook:1424 -#, sh-format -msgid "cook: $pkg doesn't cook or is not included in: $ARCH" +#: cook:1634 +msgid "Host arch %s" msgstr "" -#: cook:1426 -#, sh-format -msgid "Cook skip: $pkg doesn't cook or is not included in: $ARCH" +#: cook:1638 +msgid "package \"%s\" doesn't cook or is not included in %s" msgstr "" -#: cook:1432 -#, sh-format -msgid "Blocked package: $pkg" +#: cook:1649 +msgid "Package \"%s\" is blocked" msgstr "" -#: cook:1439 -#, sh-format -msgid "Cook started for: $pkg" +#: cook:1656 +msgid "Cook started for: %s" msgstr "" -#: cook:1450 -#, sh-format -msgid "Cleaning: $pkg" +#: cook:1667 +msgid "Cleaning \"%s\"" msgstr "" -#: cook:1456 -#, sh-format -msgid "Getting source for: $pkg" +#: cook:1676 +msgid "Getting source for \"%s\"" msgstr "" -#: cook:1458 -#, sh-format -msgid "Tarball: $SRC/$TARBALL" +#: cook:1678 +msgid "Tarball: %s" msgstr "" -#: cook:1461 -#, sh-format -msgid "Blocking: $pkg" +#: cook:1682 +msgid "Blocking package \"%s\"" msgstr "" -#: cook:1465 -#, sh-format -msgid "Unblocking: $pkg" +#: cook:1688 +msgid "Unblocking package \"%s\"" msgstr "" -#: cook:1475 cook:1479 -#, sh-format -msgid "Need to build $pkg." +#: cook:1700 cook:1707 +msgid "Need to build \"%s\"" msgstr "" -#: cook:1480 +#: cook:1711 msgid "Checking depends" msgstr "" -#: cook:1507 -#, sh-format -msgid "WANTED package is blocked: $wanted" +#: cook:1742 +msgid "WANTED package \"%s\" is blocked" msgstr "" -#: cook:1511 -#, sh-format -msgid "WANTED package is broken: $wanted" +#: cook:1748 +msgid "WANTED package \"%s\" is broken" msgstr "" diff -r c21a7ba0d29c -r da66e6be1add po/pt_BR.po --- a/po/pt_BR.po Sun May 03 19:43:46 2015 +0300 +++ b/po/pt_BR.po Thu May 07 15:11:47 2015 +0300 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Cook 3.1.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-05 15:28+0200\n" +"POT-Creation-Date: 2015-05-07 12:52+0300\n" "PO-Revision-Date: 2014-03-07 23:29-0300\n" "Last-Translator: Claudinei Pereira \n" "Language-Team: Brazilian Portuguese \n" @@ -18,12 +18,16 @@ "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: cook:32 -msgid "\\033[1mUsage:\\033[0m cook [package|command] [list|--option]" -msgstr "\\033[1mUtilização:\\033[0m cook [pacote|comando] [lista|--opções]" +msgid "Usage:" +msgstr "Utilização:" + +#: cook:32 +msgid "cook [package|command] [list|--option]" +msgstr "cook [pacote|comando] [lista|--opções]" #: cook:34 -msgid "\\033[1mCommands:\\033[0m" -msgstr "\\033[1mComandos:\\033[0m" +msgid "Commands:" +msgstr "Comandos:" #: cook:35 msgid "Display this short usage." @@ -37,910 +41,799 @@ msgid "Setup a cross environment." msgstr "Configura seu ambiente de desenvolvimento cruzado." -#: cook:38 +#: cook:39 msgid "Test environment and cook a package." msgstr "Testa o ambiente e compila o pacote." -#: cook:39 +#: cook:40 msgid "List packages in the wok." msgstr "Lista pacotes no wok." -#: cook:40 +#: cook:41 msgid "Simple packages search function." msgstr "Função simples de busca de pacotes." -#: cook:41 +#: cook:42 msgid "Create a new package with a receipt." msgstr "Cria um novo pacote a partir de um arquivo receipt." -#: cook:42 +#: cook:43 msgid "Cook a list of packages." msgstr "Compila uma lista de pacotes." -#: cook:43 +#: cook:44 msgid "Clean-up all packages files." msgstr "Limpa todos os arquivos de pacotes." -#: cook:44 +#: cook:45 msgid "Clean-up all packages sources." msgstr "Limpa todos os fontes de pacotes." -#: cook:45 +#: cook:46 +msgid "Check for uncooked packages" +msgstr "" + +#: cook:47 msgid "Create packages DB lists and flavors." msgstr "Cria a lista de banco de dados de pacotes e variantes." -#: cook:47 -msgid "\\033[1mOptions:\\033[0m" -msgstr "\\033[1mOpções:\\033[0m" +#: cook:49 +msgid "Options:" +msgstr "Opções:" -#: cook:48 +#: cook:51 msgid "clean the package in the wok." msgstr "Limpa o pacote no wok." -#: cook:49 +#: cook:52 msgid "cook and install the package." msgstr "Compila e instala o pacote." -#: cook:50 +#: cook:53 msgid "get the package source tarball." msgstr "Baixa os fontes do pacote." -#: cook:51 +#: cook:54 msgid "block a package so cook will skip it." msgstr "bloqueia um pacote, ignorando-o." -#: cook:52 +#: cook:55 msgid "unblock a blocked package." msgstr "desbloqueia um pacote." -#: cook:53 +#: cook:56 msgid "check dependencies of cooked package." msgstr "Checa as dependências de um pacote compilado." -#: cook:54 +#: cook:57 msgid "repack an already built package." msgstr "reempacote um pacote já compilado." -#: cook:55 +#: cook:58 +msgid "display debugging messages." +msgstr "" + +#: cook:59 +msgid "continue running compile_rules." +msgstr "" + +#: cook:61 msgid "create a receipt interactively." msgstr "Cria interativamente um arquivo receipt." -#: cook:56 +#: cook:63 msgid "clone the cooking wok from Hg repo." msgstr "Clona o wok cooking a partir do repositório HG." -#: cook:57 +#: cook:64 msgid "clone the stable wok from Hg repo." msgstr "Clona o wok stable a partir do repositório HG." -#: cook:58 +#: cook:65 msgid "clone the undigest wok from Hg repo." msgstr "Clona o wok undigest a partir do repositório HG." -#: cook:59 +#: cook:66 msgid "clone the tiny SliTaz wok from Hg repo." msgstr "Clona o wok tiny a partir do repositório HG." -#: cook:60 +#: cook:67 msgid "force reinstall of chroot packages." msgstr "Força a reinstalação de pacotes no chroot." -#: cook:61 +#: cook:69 msgid "create up-to-date flavors files." msgstr "Cria uma lista atualizada de variantes." -#: cook:76 -#, sh-format -msgid "Unable to find package in the wok: $pkg" -msgstr "Impossível encontrar o pacote no wok: $pkg" +#: cook:88 +msgid "Unable to find package \"%s\" in the wok" +msgstr "Impossível encontrar o pacote no wok: %s" #. L10n: QA is quality assurance -#: cook:84 -#, sh-format -msgid "QA: empty variable: ${var}=\"\"" -msgstr "QA: variável vazia: ${var}=\"\"" +#: cook:97 +msgid "QA: empty variable: %s" +msgstr "QA: variável vazia: %s" -#: cook:91 -#, sh-format -msgid "Creating directories structure in: $SLITAZ" -msgstr "Criando estrutura de diretórios em: $SLITAZ" +#: cook:106 +msgid "Creating directories structure in \"%s\"" +msgstr "Criando estrutura de diretórios em: %s" -#: cook:93 -#, sh-format -msgid "Creating DB files in: $CACHE" -msgstr "Criando arquivo de banco de dados em: $CACHE" +#: cook:108 +msgid "Creating DB files in \"%s\"" +msgstr "Criando arquivo de banco de dados em: %s" -#: cook:102 +#: cook:118 msgid "QA: checking package receipt..." msgstr "QA: verificando arquivo receipt do pacote..." -#: cook:118 -#, sh-format -msgid "QA: unknown category: $value" -msgstr "QA: categoria desconhecida: $value" +#: cook:133 +msgid "QA: unknown category \"%s\"" +msgstr "QA: categoria desconhecida: %s" -#: cook:119 -#, sh-format -msgid "Please, use one of: $valid" -msgstr "Por favor, utilize uma de: $valid" +#: cook:134 +msgid "Please, use one of: %s" +msgstr "Por favor, utilize uma de: %s" -#: cook:128 -#, sh-format -msgid "QA: unable to reach: $value" -msgstr "QA: não foi possível encontrar: $value" +#: cook:144 +msgid "QA: unable to reach \"%s\"" +msgstr "QA: não foi possível encontrar: %s" -#: cook:184 -#, sh-format -msgid "Creating tarball: $tarball" -msgstr "Criando arquivo tar: $tarball" +#: cook:204 +msgid "Creating tarball \"%s\"" +msgstr "Criando arquivo tar: %s" -#: cook:207 cook:211 -#, sh-format -msgid "ERROR: wget $WGET_URL" -msgstr "ERRO: wget $WGET_URL" +#: cook:229 cook:234 cook:248 cook:250 cook:260 cook:330 +msgid "ERROR: %s" +msgstr "ERRO: %s" -#: cook:218 -msgid "Getting source from Hg..." -msgstr "Obtendo fonte do repositório HG..." +#: cook:242 cook:257 cook:272 cook:285 cook:296 cook:328 +msgid "Getting source from %s..." +msgstr "Obtendo fonte do repositório %s..." -#: cook:219 cook:233 cook:245 cook:257 -#, sh-format -msgid "URL: $url" -msgstr "URL: $url" +#: cook:243 cook:258 cook:273 cook:286 cook:329 +msgid "URL: %s" +msgstr "URL: %s" -#: cook:220 -#, sh-format -msgid "Cloning to: $pwd/$pkgsrc" -msgstr "Clonando para: $pwd/$pkgsrc" - -#: cook:222 -#, sh-format -msgid "Hg branch: $BRANCH" -msgstr "Hg branch: $BRANCH" - -#: cook:224 -#, sh-format -msgid "ERROR: hg clone $url --rev $BRANCH" -msgstr "ERRO: hg clone $url --rev $BRANCH" - -#: cook:226 -#, sh-format -msgid "ERROR: hg clone $url" -msgstr "ERRO: hg clone $url" - -#: cook:232 -msgid "Getting source from Git..." -msgstr "Obtendo fonte do Git..." - -#: cook:234 -#, sh-format -msgid "ERROR: git clone $url" -msgstr "ERRO: git clone $url" - -#: cook:236 -#, sh-format -msgid "Git branch: $BRANCH" -msgstr "Git branch: $BRANCH" - -#: cook:244 -msgid "Getting source from CVS..." -msgstr "Obtendo fonte do CVS..." +#: cook:244 cook:275 +msgid "Cloning to \"%s\"" +msgstr "Clonando para: %s" #: cook:246 -#, sh-format -msgid "CVS module: $mod" -msgstr "Módulo CVS: $mod" +msgid "Hg branch: %s" +msgstr "Hg branch: %s" -#: cook:247 -#, sh-format -msgid "Cloning to: $pwd/$mod" -msgstr "Clonando para: $pwd/$mod" +#: cook:262 +msgid "Git branch: %s" +msgstr "Git branch: %s" -#: cook:256 -msgid "Getting source from SVN..." -msgstr "Obtendo fonte do SVN..." +#: cook:274 +msgid "CVS module: %s" +msgstr "Módulo CVS: %s" -#: cook:266 -msgid "Getting source from bazaar..." -msgstr "Obtendo fonte do bazaar..." - -#: cook:276 +#: cook:306 msgid "Don't forget to add to receipt:" msgstr "Não se esqueça de adicionar arquivo receipt:" -#: cook:283 -#, sh-format -msgid "ERROR: Unable to handle: $WGET_URL" -msgstr "ERRO: não foi possível utilizar: $WGET_URL" +#: cook:314 +msgid "ERROR: Unable to handle \"%s\"" +msgstr "ERRO: não foi possível utilizar: %s" -#: cook:295 -#, sh-format -msgid "Getting source from mirror: $url" -msgstr "Obtendo fonte a partir do mirror: $url" +#: cook:332 +msgid "Extracting source archive \"%s\"" +msgstr "Extraindo: %s" -#: cook:296 -#, sh-format -msgid "ERROR: wget $url" -msgstr "ERRO: wget $url" +#. L10n: 'm' is for minutes (approximate cooking time) +#: cook:367 +msgid "~ %dm" +msgstr "~ %dm" -#: cook:298 -#, sh-format -msgid "Extracting: $TARBALL" -msgstr "Extraindo: $TARBALL" +#: cook:370 +msgid "Summary for: %s" +msgstr "Resumo para: %s" + +#. L10n: keep the same width of translations to get a consistent view +#: cook:374 +msgid "Source dir : %s" +msgstr "Diretório fonte : %s" + +#: cook:375 +msgid "Src file : %s" +msgstr "Arquivo fonte : %s" + +#: cook:376 +msgid "Src size : %s" +msgstr "Tamanho do fonte: %s" + +#: cook:377 +msgid "Produced : %s" +msgstr "Produzido : %s" + +#: cook:378 +msgid "Packed : %s" +msgstr "Empacotado : %s" + +#: cook:379 +msgid "Compressed : %s" +msgstr "Comprimido : %s" + +#: cook:380 +msgid "Files : %s" +msgstr "Arquivos : %s" + +#. L10n: 's' is for seconds (cooking time) +#: cook:382 +msgid "Cook time : %ds %s" +msgstr "Tempo utilizado : %ds %s" + +#: cook:383 +msgid "Cook date : %s" +msgstr "Data criação : %s" + +#: cook:383 cook:395 cook:1448 cook:1602 +msgid "+%%F %%R" +msgstr "+%%d-%%m-%%Y %%R" + +#: cook:384 +msgid "Host arch : %s" +msgstr "Arquitetura alvo: %s" + +#: cook:392 +msgid "Debug information" +msgstr "Informação de debug" #. L10n: specify your format of date and time (to help: man date) #. L10n: not bad one is '+%x %R' -#: cook:322 cook:349 cook:1277 cook:1384 -msgid "+%Y-%m-%d %H:%M" -msgstr "+%d-%m-%Y %H:%M" - -#. L10n: 'm' is for minutes (approximate cooking time) -#: cook:326 -#, sh-format -msgid "~ ${div}m" -msgstr "~ ${div}m" - -#: cook:327 -#, sh-format -msgid "Summary for: $PACKAGE $VERSION" -msgstr "Resumo para: $PACKAGE $VERSION" - -#. L10n: keep the same width of translations to get a consistent view -#: cook:330 -#, sh-format -msgid "Source dir : $srcdir" -msgstr "Diretório fonte : $srcdir" - -#: cook:331 -#, sh-format -msgid "Src file : $TARBALL" -msgstr "Arquivo fonte : $TARBALL" - -#: cook:332 -#, sh-format -msgid "Src size : $srcsize" -msgstr "Tamanho do fonte: $srcsize" - -#: cook:333 -#, sh-format -msgid "Produced : $prod" -msgstr "Produzido : $prod" - -#: cook:334 -#, sh-format -msgid "Packed : $fs" -msgstr "Empacotado : $fs" - -#: cook:335 -#, sh-format -msgid "Compressed : $size" -msgstr "Comprimido : $size" - -#: cook:336 -#, sh-format -msgid "Files : $files" -msgstr "Arquivos : $files" - -#. L10n: 's' is for seconds (cooking time) -#: cook:338 -#, sh-format -msgid "Cook time : ${sec}s $min" -msgstr "Tempo utilizado : ${sec}s $min" - -#: cook:339 -#, sh-format -msgid "Cook date : $cookdate" -msgstr "Data criação : $cookdate" - -#: cook:340 -#, sh-format -msgid "Host arch : $ARCH" -msgstr "Arquitetura alvo: $ARCH" - -#: cook:346 -msgid "Debug information" -msgstr "Informação de debug" - -#: cook:350 -#, sh-format -msgid "Cook date: $datenow" -msgstr "Data criação: $datenow" +#: cook:395 +msgid "Cook date: %s" +msgstr "Data criação: %s" #. L10n: Please, translate all messages beginning with ERROR in a same way -#: cook:352 cook:614 cook:711 cook:742 cook:828 cook:1527 +#: cook:397 cook:661 cook:765 cook:799 cook:889 cook:1766 msgid "ERROR" msgstr "ERRO" -#: cook:437 +#: cook:484 msgid "Executing strip on all files..." msgstr "Executando comando strip em todos os arquivos..." -#: cook:450 +#: cook:496 msgid "Removing Python compiled files..." -msgstr "Removendo arquivos compilados do python..." +msgstr "Removendo arquivos compilados do Python..." -#: cook:458 +#: cook:503 msgid "Removing Perl compiled files..." msgstr "Removendo arquivos compilados do Perl..." -#: cook:472 cook:600 -msgid "Build dependencies to remove: " +#: cook:518 cook:647 +msgid "Build dependencies to remove:" msgstr "Dependências de compilação para remover:" -#: cook:473 cook:601 +#: cook:520 cook:648 msgid "Removing:" msgstr "Removendo:" -#: cook:487 -#, sh-format -msgid "Cook: $PACKAGE $VERSION" -msgstr "Cook: $PACKAGE $VERSION" +#: cook:535 +msgid "Cook: %s" +msgstr "Cook: %s" -#: cook:501 -#, sh-format -msgid "$ARCH sysroot: $sysroot" -msgstr "$ARCH sysroot: $sysroot" +#: cook:549 +msgid "%s sysroot: %s" +msgstr "%s sysroot: %s" -#: cook:502 -#, sh-format -msgid "Adding $tools/bin to PATH" -msgstr "Adicionando $tools/bin ao PATH" +#: cook:550 +msgid "Adding \"%s\" to PATH" +msgstr "Adicionando %s ao PATH" -#: cook:506 -#, sh-format -msgid "Using cross-tools: $CROSS_COMPILE" -msgstr "Usando cross-tools: $CROSS_COMPILE" +#: cook:554 +msgid "Using cross-tools: %s" +msgstr "Usando cross-tools: %s" -#: cook:528 -#, sh-format -msgid "Disabling -pipe compile flag: $free RAM" -msgstr "Desabilitando flag de compilação -pipe: $free RAM" +#: cook:578 +msgid "Disabling -pipe compile flag: %d RAM free" +msgstr "Desabilitando flag de compilação -pipe: %d RAM" -#: cook:545 +#: cook:594 msgid "Checking build dependencies..." msgstr "Verificando dependências de compilação..." -#: cook:546 -#, sh-format -msgid "Using packages DB: ${root}$DB" -msgstr "Utilizando banco de dados de pacotes: ${root}/$DB" +#: cook:595 +msgid "Using packages DB: %s" +msgstr "Utilizando banco de dados de pacotes: %s" -#: cook:572 -#, sh-format -msgid "Missing dep (wok/pkg): $i $vers" -msgstr "Dependência requerida (wok/pgk): $i $vers" +#: cook:619 +msgid "Missing dep (wok/pkg): %s" +msgstr "Dependência requerida (wok/pgk): %s" -#: cook:580 -#, sh-format -msgid "ERROR: unknown dep $i" -msgstr "ERRO: dependência desconhecida $i" +#: cook:627 +msgid "ERROR: unknown dep \"%s\"" +msgstr "ERRO: dependência desconhecida %s" -#: cook:593 -msgid "Auto cook config is set: AUTO_COOK" -msgstr "Configuração de auto compilação está ativa: AUTO_COOK" +#: cook:641 +msgid "Auto cook config is set: %s" +msgstr "Configuração de auto compilação está ativa: %s" -#: cook:597 -#, sh-format -msgid "Building dep (wok/pkg) : $i $vers" -msgstr "Dependência de compilação (wok/pkg): $i $vers" +#: cook:644 +msgid "Building dep (wok/pkg) : %s" +msgstr "Dependência de compilação (wok/pkg): %s" -#: cook:602 -#, sh-format -msgid "ERROR: can't cook dep '$i'" -msgstr "ERRO: impossível compilar dependência '$i'" +#: cook:649 +msgid "ERROR: can't cook dep \"%s\"" +msgstr "ERRO: impossível compilar dependência '%s'" -#: cook:617 -#, sh-format -msgid "ERROR: missing dep $nb" -msgstr "ERRO: dependência desconhecida $nb" +#: cook:664 +msgid "ERROR: missing %d dependency" +msgid_plural "ERROR: missing %d dependencies" +msgstr[0] "ERRO: dependência desconhecida %d" +msgstr[1] "ERRO: dependência desconhecida %d" -#: cook:624 -#, sh-format -msgid "Installing dep (pkg/local): $i" -msgstr "Instalando dependência (pkg/local): $i" +#: cook:671 +msgid "Installing dep (pkg/local): %s" +msgstr "Instalando dependência (pkg/local): %s" -#: cook:632 -#, sh-format -msgid "Installing dep (web/cache): $i" -msgstr "Instalando dependência (web/cache): $i" +#: cook:678 +msgid "Installing dep (web/cache): %s" +msgstr "Instalando dependência (web/cache): %s" -#: cook:682 -msgid "Executing: compile_rules" -msgstr "Executando: compile_rules" +#: cook:734 cook:789 +msgid "Executing: %s" +msgstr "Executando: %s" -#: cook:699 +#: cook:751 msgid "Running testsuite" msgstr "Executando testsuite" -#: cook:708 +#: cook:762 msgid "ERROR: cook failed" msgstr "ERRO: compilação falhou" -#: cook:729 -#, sh-format -msgid "Pack: $PACKAGE ${VERSION}${arch}" -msgstr "Pack: $PACKAGE ${VERSION}${arch}" +#: cook:786 +msgid "Pack: %s" +msgstr "Pack: %s" -#: cook:732 -msgid "Executing: genpkg_rules" -msgstr "Executando: genpkg_rules" - -#: cook:734 +#: cook:791 msgid "ERROR: genpkg_rules failed" msgstr "ERRO: genpkg_rules falhou" -#: cook:737 +#: cook:794 msgid "No packages rules: meta package" msgstr "Sem regras para pacote: meta pacote" -#: cook:751 -#, sh-format -msgid "Copying $file..." -msgstr "Copiando $file..." +#: cook:807 +msgid "Copying \"%s\"..." +msgstr "Copiando %s..." -#: cook:757 +#: cook:816 msgid "Creating the list of files..." msgstr "Criando lista de arquivos..." -#: cook:768 +#: cook:824 msgid "Creating md5sum of files..." msgstr "Criando md5sum de arquivos..." -#: cook:783 -msgid "Compressing the fs..." +#: cook:839 +msgid "Compressing the FS..." msgstr "Comprimindo sistema de arquivos..." -#: cook:790 +#: cook:847 msgid "Updating receipt sizes..." msgstr "Atualizando tamanho do arquivo receipt..." -#: cook:798 -#, sh-format -msgid "Updating receipt EXTRAVERSION: $EXTRAVERSION" -msgstr "Atualizando arquivo receipt EXTRAVERSION: $EXTRAVERSION" +#: cook:855 +msgid "Updating receipt EXTRAVERSION: %s" +msgstr "Atualizando arquivo receipt EXTRAVERSION: %s" -#: cook:805 +#: cook:862 msgid "Creating full cpio archive..." msgstr "Criando arquivo cpio..." -#: cook:809 +#: cook:867 msgid "Restoring original package tree..." msgstr "Restaurando sistema de arquivos original do pacote..." -#: cook:817 -#, sh-format -msgid "Package: $tazpkg" -msgstr "Pacote: $tazpkg" +#: cook:876 +msgid "Package \"%s\" created" +msgstr "Pacote: %s" -#: cook:833 +#: cook:895 msgid "QA: checking for empty package..." msgstr "QA: chegando se pacote está vazio..." -#: cook:836 +#: cook:898 msgid "ERROR: empty package" msgstr "ERRO: pacote vazio" -#: cook:844 -#, sh-format -msgid "Removing old: $old_pkg" -msgstr "Removendo antigo: $old_pkg" +#: cook:906 +msgid "Removing old package \"%s\"" +msgstr "Removendo antigo: %s" -#: cook:874 +#: cook:940 msgid "Unable to install package, build has failed." msgstr "Impossível instalar pacote, compilação falhou." -#: cook:883 -#, sh-format -msgid "Updating $ARCH chroot environment..." -msgstr "Atualizando ambiente de desenvolvimento $ARCH..." +#: cook:949 +msgid "Updating %s chroot environment..." +msgstr "Atualizando ambiente de desenvolvimento %s..." -#: cook:884 -#, sh-format -msgid "Updating chroot: $pkg (${VERSION}${EXTRAVERSION}${arch})" -msgstr "Atualizando chroot: $pkg (${VERSION}${EXTRAVERSION}${arch})" +#: cook:950 +msgid "Updating chroot: %s" +msgstr "Atualizando chroot: %s" -#: cook:905 +#: cook:982 msgid "Setup aufs chroot..." msgstr "Configurando aufs chroot..." -#: cook:917 -msgid "Aufs mountage failure" +#: cook:994 +msgid "Aufs mount failure" msgstr "Montagem aufs falhou" -#: cook:928 +#: cook:1006 msgid "Leaving aufs chroot..." msgstr "Deixando aufs chroot..." -#: cook:1030 -#, sh-format -msgid "List of $ARCH packages in: $WOK" -msgstr "Lista de pacotes $ARCH em: $WOK" +#: cook:1075 +msgid "Multiple choice:" +msgstr "" -#: cook:1046 -msgid "Packages:" -msgstr "Pacote:" +#: cook:1076 +msgid "Select one [%s]: " +msgstr "" -#: cook:1053 -#, sh-format -msgid "Search results for: $query" -msgstr "Resultado de busca para: $query" +#: cook:1117 +msgid "Getting standard devel files..." +msgstr "" -#: cook:1059 +#: cook:1134 +msgid "List of %s packages in \"%s\"" +msgstr "Lista de pacotes %s em: %s" + +#: cook:1150 +msgid "%s package" +msgid_plural "%s packages" +msgstr[0] "Pacote: %s" +msgstr[1] "Pacote: %s" + +#: cook:1159 +msgid "Search results for \"%s\"" +msgstr "Resultado de busca para: %s" + +#: cook:1166 msgid "Cook: setup environment" msgstr "Cook: configuração de ambiente" -#: cook:1060 +#: cook:1167 msgid "Setting up your environment" msgstr "Configurando seu ambiente" -#: cook:1063 +#: cook:1170 msgid "Checking for packages to install..." msgstr "Verificando pacotes para instalar..." -#: cook:1069 -msgid "ERROR: cross is not installed" -msgstr "ERRO: cross não está instalado" +#: cook:1176 +msgid "ERROR: %s is not installed" +msgstr "ERRO: %s não está instalado" -#: cook:1072 -msgid "Using config file: /etc/slitaz/cross.conf" -msgstr "Usando arquivo de configuração: /etc/slitaz/cross.conf" +#: cook:1179 +msgid "Using config file: %s" +msgstr "Usando arquivo de configuração: %s" -#: cook:1097 -msgid "Adding group: slitaz" -msgstr "Adicionando grupo: slitaz" +#: cook:1200 +msgid "Adding group \"%s\"" +msgstr "Adicionando grupo: %s" -#: cook:1100 -msgid "Setting permissions for slitaz group..." -msgstr "Configurando permissões para o grupo slitaz..." +#: cook:1203 +msgid "Setting permissions for group \"%s\"..." +msgstr "Configurando permissões para o grupo %s..." -#: cook:1103 +#: cook:1206 msgid "All done, ready to cook packages :-)" msgstr "Tudo pronto para compilar os pacotes :-)" -#: cook:1116 -#, sh-format -msgid "Cook: setup $arch cross environment" -msgstr "Cook: configuração de ambiente de desenvolvimento cruzado $ARCH" +#: cook:1221 +msgid "Cook: setup %s cross environment" +msgstr "Cook: configuração de ambiente de desenvolvimento cruzado %s" -#: cook:1117 -#, sh-format -msgid "Setting up your $arch cross environment" -msgstr "Configurando seu ambiente de desenvolvimento cruzado $arch" +#: cook:1222 +msgid "Setting up your %s cross environment" +msgstr "Configurando seu ambiente de desenvolvimento cruzado %s" #. L10n: keep the same width of translations to get a consistent view -#: cook:1148 -#, sh-format -msgid "Target arch : $ARCH" -msgstr "Arquitetura alvo : $ARCH" +#: cook:1251 +msgid "Target arch : %s" +msgstr "Arquitetura alvo : %s" -#: cook:1149 -#, sh-format -msgid "Configure args : $CONFIGURE_ARGS" -msgstr "Argumentos de configuração: $CONFIGURE_ARGS" +#: cook:1252 +msgid "Configure args : %s" +msgstr "Argumentos de configuração: %s" -#: cook:1150 -#, sh-format -msgid "Build flags : $flags" -msgstr "Flags de compilação: $flags" +#: cook:1253 +msgid "Build flags : %s" +msgstr "Flags de compilação: %s" -#: cook:1151 -#, sh-format -msgid "Arch sysroot : $sysroot" -msgstr "Arch sysroot : $sysroot" +#: cook:1254 +msgid "Arch sysroot : %s" +msgstr "Arch sysroot : %s" -#: cook:1152 -#, sh-format -msgid "Tools prefix : $tools/bin" -msgstr "Prefixo das ferramentas : $tools/bin" +#: cook:1255 +msgid "Tools prefix : %s" +msgstr "Prefixo das ferramentas : %s" -#: cook:1154 -#, sh-format -msgid "Packages DB : ${root}$DB" -msgstr "Bando de dados de pacotes : ${root}$DB" +#: cook:1257 +msgid "Packages DB : %s" +msgstr "Bando de dados de pacotes : %s" -#: cook:1165 -msgid "WARNING: (e)glibc-base is not installed in sysroot" -msgstr "AVISO: (e)glibc-base não está instalado em sysroot" +#: cook:1268 +msgid "WARNING: %s is not installed in sysroot" +msgstr "AVISO: %s não está instalado em sysroot" -#: cook:1169 -#, sh-format -msgid "Cross compiler : ${HOST_SYSTEM}-gcc" -msgstr "Compilador cruzado : ${HOST_SYSTEM}-gcc" +#: cook:1272 +msgid "Cross compiler : %s" +msgstr "Compilador cruzado : %s" -#: cook:1171 -#, sh-format -msgid "C compiler is missing: ${HOST_SYSTEM}-gcc" -msgstr "Compilador C não enconrado : ${HOST_SYSTEM}-gcc" +#: cook:1274 +msgid "C compiler \"%s\" is missing" +msgstr "Compilador C não enconrado : %s" -#: cook:1172 -msgid "Run 'cross compile' to cook a toolchain" -msgstr "Execute 'cross compile' para compilar o toolchain" +#: cook:1275 +msgid "Run \"%s\" to cook a toolchain" +msgstr "Execute '%s' para compilar o toolchain" -#: cook:1177 +#: cook:1281 msgid "Cook test: testing the cook environment" msgstr "Cook test: testando o ambiente de desenvolimento" -#: cook:1187 -#, sh-format -msgid "$pkg package already exists." -msgstr "O pacote $pkg já existe." +#: cook:1292 +msgid "Package \"%s\" already exists." +msgstr "O pacote %s já existe." -#: cook:1190 -#, sh-format -msgid "Creating $WOK/$pkg" -msgstr "Criando $WOK/$pkg" +#: cook:1296 +msgid "Creating folder \"%s\"" +msgstr "Criando %s" -#: cook:1192 +#: cook:1299 msgid "Preparing the package receipt..." msgstr "Preparando arquivo receipt do pacote..." -#: cook:1200 +#: cook:1307 msgid "Entering interactive mode..." msgstr "Entrando no modo interativo..." -#: cook:1202 -#, sh-format -msgid "Package : $pkg" -msgstr "Pacote : $pkg" +#: cook:1309 +msgid "Package : %s" +msgstr "Pacote : %s" -#: cook:1203 +#: cook:1311 msgid "Version : " msgstr "Versão : " -#: cook:1205 +#: cook:1314 msgid "Category : " msgstr "Categoria : " #. L10n: Short description -#: cook:1208 +#: cook:1318 msgid "Short desc : " msgstr "Descrição : " -#: cook:1210 +#: cook:1321 msgid "Maintainer : " msgstr "Mantenedor : " -#: cook:1212 +#: cook:1324 msgid "License : " msgstr "Licença : " -#: cook:1214 +#: cook:1327 msgid "Web site : " msgstr "Web site : " -#: cook:1218 +#: cook:1332 msgid "Wget URL to download source tarball." msgstr "Wget URL para baixar arquivo fonte." -#: cook:1219 +#: cook:1333 msgid "Example : " msgstr "Exemplo : " -#: cook:1220 +#: cook:1334 msgid "Wget url : " msgstr "Wget url: " -#: cook:1223 -msgid "Do you need a stuff directory? (y/N) : " -msgstr "Diretório 'stuff' necessário? (y/N) : " +#: cook:1338 +msgid "Do you need a stuff directory? (y/N)" +msgstr "Diretório 'stuff' necessário? (y/N)" -#: cook:1225 +#: cook:1340 msgid "Creating the stuff directory..." msgstr "Criando diretório 'stuff'..." -#: cook:1229 -msgid "Are you going to write a description? (y/N) : " -msgstr "Adicionar descrição? (y/N) : " +#: cook:1345 +msgid "Are you going to write a description? (y/N)" +msgstr "Adicionar descrição? (y/N)" -#: cook:1231 -msgid "Creating the description.txt file..." -msgstr "Criando arquivo description.txt..." +#: cook:1347 +msgid "Creating the \"%s\" file..." +msgstr "Criando arquivo \"%s\"..." -#: cook:1234 +#: cook:1351 msgid "Receipt is ready to use." msgstr "Arquivo receipt pronto para ser utilizado." -#: cook:1240 +#: cook:1359 msgid "No list in argument." msgstr "Nenhuma lista no argumento." -#: cook:1242 -#, sh-format -msgid "No list found: $list2" -msgstr "Nenhuma lista encontrada: $list2" +#: cook:1363 +msgid "List \"%s\" not found." +msgstr "Nenhuma lista encontrada: %s" -#: cook:1243 -#, sh-format -msgid "Cook list starting: $list2" -msgstr "Iniciando lista de compilação: $list2" +#: cook:1367 +msgid "Starting cooking the list \"%s\"" +msgstr "Iniciando lista de compilação: %s" -#: cook:1250 +#: cook:1375 msgid "Cleaning all packages files..." msgstr "Limpando todos os arquivos de pacote..." -#: cook:1255 +#: cook:1381 msgid "Cleaning all packages sources..." msgstr "Limpando todos os fontes de pacote..." -#: cook:1268 -msgid "Packages directory doesn't exist" -msgstr "O diretório de pacote não existe" +#: cook:1388 +msgid "Checking for uncooked packages" +msgstr "" -#: cook:1275 +#: cook:1401 +msgid "Package \"%s\"" +msgstr "" + +#: cook:1420 +msgid "%s uncooked package" +msgid_plural "%s uncooked packages" +msgstr[0] "" +msgstr[1] "" + +#: cook:1422 +msgid "All packages are cooked :-)" +msgstr "" + +#: cook:1435 +msgid "Packages directory \"%s\" doesn't exist" +msgstr "O diretório de pacote \"%s\" não existe" + +#: cook:1445 msgid "Cook pkgdb: Creating all packages lists" msgstr "Cook pkgdb: criando todas as listas de pacote" -#: cook:1276 -#, sh-format -msgid "Creating lists for: $PKGS" -msgstr "Criando listas para: $PKGS" +#: cook:1446 +msgid "Creating lists for \"%s\"" +msgstr "Criando listas para: %s" -#: cook:1278 -#, sh-format -msgid "Cook pkgdb started: $datenow" -msgstr "Cook pkgdb iniciada: $datenow" +#: cook:1448 +msgid "Cook pkgdb started: %s" +msgstr "Cook pkgdb iniciada: %s" -#: cook:1281 -msgid "Creating: packages.list" -msgstr "Criando: packages.list" +#: cook:1454 cook:1457 cook:1523 cook:1535 cook:1540 +msgid "Creating file \"%s\"" +msgstr "Criando: %s" -#: cook:1283 -msgid "Creating: packages.md5" -msgstr "Criando: packages.md5" +#: cook:1463 +msgid "Creating lists from \"%s\"" +msgstr "Criando lista de: %s" -#: cook:1286 -#, sh-format -msgid "Creating lists from: $WOK" -msgstr "Criando lista de: $WOK" - -#: cook:1328 -msgid "Done: packages.desc" -msgstr "Feito: packages.desc" - -#: cook:1329 -msgid "Done: packages.txt" -msgstr "Feito: packages.txt" - -#: cook:1330 -msgid "Done: packages.equiv" -msgstr "Feito: packages.equiv" - -#: cook:1333 -msgid "Creating: files.list.lzma" -msgstr "Criando: files.list.lzma" +#: cook:1516 cook:1517 cook:1518 cook:1529 cook:1547 +msgid "Done: %s (%s)" +msgstr "Feito: %s (%s)" #. L10n: 's' is for seconds (cooking time) -#: cook:1342 -#, sh-format -msgid "Packages: $nb - Time: ${time}s" -msgstr "Pacotes: $nb - Tempo: ${time}s" +#: cook:1554 +msgid "Packages: %s - Time: %ss" +msgstr "Pacotes: %s - Tempo: %ss" -#: cook:1348 -#, sh-format -msgid "Missing flavors: $flavors" -msgstr "Variante desconhecida: $flavors" +#: cook:1563 +msgid "Missing flavors folder \"%s\"" +msgstr "Variante desconhecida: %s" -#: cook:1350 -#, sh-format -msgid "Creating flavors files in: $live" -msgstr "Criando arquivos de variante em: $live" +#: cook:1568 +msgid "Creating flavors files in \"%s\"" +msgstr "Criando arquivos de variante em: %s" -#: cook:1351 +#: cook:1569 msgid "Cook pkgdb: Creating all flavors" msgstr "Cook pkgdb: criando todas as variantes" -#: cook:1353 +#: cook:1572 msgid "Recharging lists to use latest packages..." msgstr "Recarregando listas para usar pacotes mais recentes..." -#: cook:1358 -msgid "Creating configuration file: tazlito.conf" -msgstr "Criando arquivo de configuração: tazlito.conf" +#: cook:1577 +msgid "Creating configuration file \"%s\"" +msgstr "Criando arquivo de configuração: %s" -#: cook:1368 +#: cook:1589 msgid "Starting to generate flavors..." msgstr "Iniciando a geração de variante..." -#: cook:1373 -#, sh-format -msgid "Packing flavor: $fl" -msgstr "Enpacotando variante: $fl" +#: cook:1593 +msgid "Packing flavor \"%s\"" +msgstr "Enpacotando variante: %s" -#: cook:1381 -#, sh-format -msgid "Flavors size: $fl_size" -msgstr "Tamanho da variante: $fl_size" +#: cook:1599 +msgid "Total flavors size: %s" +msgstr "Tamanho da variante: %s" -#: cook:1385 -#, sh-format -msgid "Cook pkgdb end: $datenow" -msgstr "Cook pkgdb finalizado: $datenow" +#: cook:1602 +msgid "Cook pkgdb end: %s" +msgstr "Cook pkgdb finalizado: %s" -#: cook:1412 -#, sh-format -msgid "cook: HOST_ARCH is not set in $pkg receipt" -msgstr "cook: HOST_ARCH não definido em $pkg receipt" +#: cook:1622 +msgid "cook: HOST_ARCH is not set in \"%s\" receipt" +msgstr "cook: HOST_ARCH não definido em %s receipt" -#: cook:1413 -#, sh-format -msgid "cook: This package is not included in: $ARCH" -msgstr "cook: Este pacote não está incluso em: $ARCH" +#: cook:1623 +msgid "package \"%s\" is not included in %s" +msgstr "%s não está incluso em: %s" -#: cook:1414 cook:1425 -#, sh-format -msgid "bugs: $CROSS_BUGS" -msgstr "bugs: $CROSS_BUGS" +#: cook:1624 cook:1637 cook:1639 +msgid "cook: %s" +msgstr "cook: %s" -#: cook:1415 -#, sh-format -msgid "Cook skip: $pkg is not included in: $ARCH" -msgstr "Cook skip: $pkg não está incluso em: $ARCH" +#: cook:1625 cook:1640 +msgid "bugs: %s" +msgstr "bugs: %s" -#: cook:1423 -#, sh-format -msgid "cook: HOST_ARCH=$HOST_ARCH" -msgstr "cook: HOST_ARCH=$HOST_ARCH" +#: cook:1626 cook:1641 +msgid "Cook skip: %s" +msgstr "Cook skip: %s" -#: cook:1424 -#, sh-format -msgid "cook: $pkg doesn't cook or is not included in: $ARCH" -msgstr "cook: $pkg não compila ou não está incluso em: $ARCH" +#: cook:1634 +#, fuzzy +msgid "Host arch %s" +msgstr "Arquitetura alvo: %s" -#: cook:1426 -#, sh-format -msgid "Cook skip: $pkg doesn't cook or is not included in: $ARCH" -msgstr "Cook skip: $pkg não compila ou não está incluso em: $ARCH" +#: cook:1638 +msgid "package \"%s\" doesn't cook or is not included in %s" +msgstr "%s não compila ou não está incluso em: %s" -#: cook:1432 -#, sh-format -msgid "Blocked package: $pkg" -msgstr "Pacote bloqueado: $pkg" +#: cook:1649 +msgid "Package \"%s\" is blocked" +msgstr "Pacote bloqueado: %s" -#: cook:1439 -#, sh-format -msgid "Cook started for: $pkg" -msgstr "Compilação iniciada para: $pkg" +#: cook:1656 +msgid "Cook started for: %s" +msgstr "Compilação iniciada para: %s" -#: cook:1450 -#, sh-format -msgid "Cleaning: $pkg" -msgstr "Limpando: $pkg" +#: cook:1667 +msgid "Cleaning \"%s\"" +msgstr "Limpando: %s" -#: cook:1456 -#, sh-format -msgid "Getting source for: $pkg" -msgstr "Obtendo fonte para: $pkg" +#: cook:1676 +msgid "Getting source for \"%s\"" +msgstr "Obtendo fonte para: %s" -#: cook:1458 -#, sh-format -msgid "Tarball: $SRC/$TARBALL" -msgstr "Tarball: $SRC/$TARBALL" +#: cook:1678 +msgid "Tarball: %s" +msgstr "Tarball: %s" -#: cook:1461 -#, sh-format -msgid "Blocking: $pkg" -msgstr "Bloqueando: $pkg" +#: cook:1682 +msgid "Blocking package \"%s\"" +msgstr "Bloqueando: %s" -#: cook:1465 -#, sh-format -msgid "Unblocking: $pkg" -msgstr "Desbloqueando: $pkg" +#: cook:1688 +msgid "Unblocking package \"%s\"" +msgstr "Desbloqueando: %s" -#: cook:1475 cook:1479 -#, sh-format -msgid "Need to build $pkg." -msgstr "Necessário compilar $pkg." +#: cook:1700 cook:1707 +msgid "Need to build \"%s\"" +msgstr "Necessário compilar %s." -#: cook:1480 +#: cook:1711 msgid "Checking depends" msgstr "Verificando dependências" -#: cook:1507 -#, sh-format -msgid "WANTED package is blocked: $wanted" -msgstr "Pacote requerido está bloqueado: $wanted" +#: cook:1742 +msgid "WANTED package \"%s\" is blocked" +msgstr "Pacote requerido está bloqueado: %s" -#: cook:1511 -#, sh-format -msgid "WANTED package is broken: $wanted" -msgstr "Pacote requerido está quebrado: $wanted" +#: cook:1748 +msgid "WANTED package \"%s\" is broken" +msgstr "Pacote requerido está quebrado: %s" diff -r c21a7ba0d29c -r da66e6be1add po/ru.po --- a/po/ru.po Sun May 03 19:43:46 2015 +0300 +++ b/po/ru.po Thu May 07 15:11:47 2015 +0300 @@ -1,21 +1,22 @@ # Russian translations for Cook package -# Copyright (C) 2013 THE Cook'S COPYRIGHT HOLDER +# Copyright (C) 2013-2015 SliTaz # This file is distributed under the same license as the Cook package. # Aleksej Bobylev , 2013. # msgid "" msgstr "" -"Project-Id-Version: Cook 3.1.4\n" +"Project-Id-Version: Cook 3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-05 15:28+0200\n" -"PO-Revision-Date: 2014-03-05 16:09+0300\n" +"POT-Creation-Date: 2015-05-07 12:52+0300\n" +"PO-Revision-Date: 2015-05-07 04:21+0300\n" "Last-Translator: Aleksej Bobylev \n" "Language-Team: Russian\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Poedit-Language: Russian\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-KeywordsList: _;_n\n" @@ -23,12 +24,16 @@ "X-Poedit-SearchPath-0: .\n" #: cook:32 -msgid "\\033[1mUsage:\\033[0m cook [package|command] [list|--option]" -msgstr "\\033[1mИспользование:\\033[0m cook [пакет|команда] [список|--параметр]" +msgid "Usage:" +msgstr "Использование:" + +#: cook:32 +msgid "cook [package|command] [list|--option]" +msgstr "cook [пакет|команда] [список|--параметр]" #: cook:34 -msgid "\\033[1mCommands:\\033[0m" -msgstr "\\033[1mКоманды:\\033[0m" +msgid "Commands:" +msgstr "Команды:" #: cook:35 msgid "Display this short usage." @@ -42,929 +47,801 @@ msgid "Setup a cross environment." msgstr "Настроить кросс-сборочное окружение." -#: cook:38 +#: cook:39 msgid "Test environment and cook a package." msgstr "Тестировать окружение и собрать пакет." -#: cook:39 +#: cook:40 msgid "List packages in the wok." msgstr "Вывести список пакетов, имеющихся в wok." -#: cook:40 +#: cook:41 msgid "Simple packages search function." msgstr "Простой поиск по пакетам." -#: cook:41 +#: cook:42 msgid "Create a new package with a receipt." msgstr "Создать рецепт нового пакета." -#: cook:42 +#: cook:43 msgid "Cook a list of packages." msgstr "Собрать все пакеты из списка." -#: cook:43 +#: cook:44 msgid "Clean-up all packages files." msgstr "Очистить все файлы пакета." -#: cook:44 +#: cook:45 msgid "Clean-up all packages sources." msgstr "Очистить все исходники пакета." -#: cook:45 +#: cook:46 +msgid "Check for uncooked packages" +msgstr "Показать несобранные пакеты" + +#: cook:47 msgid "Create packages DB lists and flavors." msgstr "Создать базу данных пакетов и редакций." -#: cook:47 -msgid "\\033[1mOptions:\\033[0m" -msgstr "\\033[1mПараметры:\\033[0m" +#: cook:49 +msgid "Options:" +msgstr "Параметры:" -#: cook:48 +#: cook:51 msgid "clean the package in the wok." msgstr "очистить пакет в wok." -#: cook:49 +#: cook:52 msgid "cook and install the package." msgstr "собрать и установить пакет." -#: cook:50 +#: cook:53 msgid "get the package source tarball." msgstr "загрузить архив исходников пакета." -#: cook:51 +#: cook:54 msgid "block a package so cook will skip it." msgstr "заблокировать пакет, чтобы cook пропускал его." -#: cook:52 +#: cook:55 msgid "unblock a blocked package." msgstr "разблокировать заблокированный пакет." -#: cook:53 +#: cook:56 msgid "check dependencies of cooked package." msgstr "проверить зависимости собираемого пакета." -#: cook:54 +#: cook:57 msgid "repack an already built package." msgstr "повторно упаковать созданный пакет." -#: cook:55 +#: cook:58 +msgid "display debugging messages." +msgstr "показывать отладочные сообщения." + +#: cook:59 +msgid "continue running compile_rules." +msgstr "продолжить выполнение compile_rules." + +#: cook:61 msgid "create a receipt interactively." msgstr "создать рецепт в интерактивном режиме." -#: cook:56 +#: cook:63 msgid "clone the cooking wok from Hg repo." msgstr "клонировать cooking wok из репозитория Hg." -#: cook:57 +#: cook:64 msgid "clone the stable wok from Hg repo." msgstr "клонировать стабильный wok из репозитория Hg." -#: cook:58 +#: cook:65 msgid "clone the undigest wok from Hg repo." msgstr "клонировать undigest wok из репозитория Hg." -#: cook:59 +#: cook:66 msgid "clone the tiny SliTaz wok from Hg repo." msgstr "клонировать tiny SliTaz wok из репозитория Hg." -#: cook:60 +#: cook:67 msgid "force reinstall of chroot packages." msgstr "принудительная переустановка пакетов в chroot." -#: cook:61 +#: cook:69 msgid "create up-to-date flavors files." msgstr "создать актуальные файлы редакций (flavors)." -#: cook:76 -#, sh-format -msgid "Unable to find package in the wok: $pkg" -msgstr "Не удалось найти пакет «$pkg» в wok." +#: cook:88 +msgid "Unable to find package \"%s\" in the wok" +msgstr "Не удалось найти пакет «%s» в wok." #. L10n: QA is quality assurance -#: cook:84 -#, sh-format -msgid "QA: empty variable: ${var}=\"\"" -msgstr "ОТК: пустая переменная: ${var}=\"\"" +#: cook:97 +msgid "QA: empty variable: %s" +msgstr "ОТК: пустая переменная: %s" -#: cook:91 -#, sh-format -msgid "Creating directories structure in: $SLITAZ" -msgstr "Создание структуры папок в $SLITAZ" +#: cook:106 +msgid "Creating directories structure in \"%s\"" +msgstr "Создание структуры папок в «%s»" -#: cook:93 -#, sh-format -msgid "Creating DB files in: $CACHE" -msgstr "Создание файлов базы данных в $CACHE" +#: cook:108 +msgid "Creating DB files in \"%s\"" +msgstr "Создание файлов базы данных в «%s»" -#: cook:102 +#: cook:118 msgid "QA: checking package receipt..." msgstr "ОТК: проверка рецепта пакета…" -#: cook:118 -#, sh-format -msgid "QA: unknown category: $value" -msgstr "ОТК: неизвестная категория «$value»" +#: cook:133 +msgid "QA: unknown category \"%s\"" +msgstr "ОТК: неизвестная категория «%s»" -#: cook:119 -#, sh-format -msgid "Please, use one of: $valid" -msgstr "Используйте одну из: $valid" +#: cook:134 +msgid "Please, use one of: %s" +msgstr "Используйте одну из: %s" -#: cook:128 -#, sh-format -msgid "QA: unable to reach: $value" -msgstr "ОТК: не удалось подключиться к $value" +#: cook:144 +msgid "QA: unable to reach \"%s\"" +msgstr "ОТК: не удалось подключиться к «%s»" -#: cook:184 -#, sh-format -msgid "Creating tarball: $tarball" -msgstr "Создание архива: $tarball" +#: cook:204 +msgid "Creating tarball \"%s\"" +msgstr "Создание архива «%s»" -#: cook:207 -#: cook:211 -#, sh-format -msgid "ERROR: wget $WGET_URL" -msgstr "ОШИБКА: wget $WGET_URL" +#: cook:229 cook:234 cook:248 cook:250 cook:260 cook:330 +msgid "ERROR: %s" +msgstr "ОШИБКА: %s" -#: cook:218 -msgid "Getting source from Hg..." -msgstr "Загрузка исходников с Hg…" +#: cook:242 cook:257 cook:272 cook:285 cook:296 cook:328 +msgid "Getting source from %s..." +msgstr "Загрузка исходников с %s…" -#: cook:219 -#: cook:233 -#: cook:245 -#: cook:257 -#, sh-format -msgid "URL: $url" -msgstr "Адрес: $url" +#: cook:243 cook:258 cook:273 cook:286 cook:329 +msgid "URL: %s" +msgstr "Адрес: %s" -#: cook:220 -#, sh-format -msgid "Cloning to: $pwd/$pkgsrc" -msgstr "Клонирование в $pwd/$pkgsrc" - -#: cook:222 -#, sh-format -msgid "Hg branch: $BRANCH" -msgstr "Ветвь Hg: $BRANCH" - -#: cook:224 -#, sh-format -msgid "ERROR: hg clone $url --rev $BRANCH" -msgstr "ОШИБКА: hg clone $url --rev $BRANCH" - -#: cook:226 -#, sh-format -msgid "ERROR: hg clone $url" -msgstr "ОШИБКА: hg clone $url" - -#: cook:232 -msgid "Getting source from Git..." -msgstr "Загрузка исходников с Git…" - -#: cook:234 -#, sh-format -msgid "ERROR: git clone $url" -msgstr "ОШИБКА: git clone $url" - -#: cook:236 -#, sh-format -msgid "Git branch: $BRANCH" -msgstr "Ветвь Git: $BRANCH" - -#: cook:244 -msgid "Getting source from CVS..." -msgstr "Загрузка исходников с CVS…" +#: cook:244 cook:275 +msgid "Cloning to \"%s\"" +msgstr "Клонирование в «%s»" #: cook:246 -#, sh-format -msgid "CVS module: $mod" -msgstr "Модуль CVS: $mod" +msgid "Hg branch: %s" +msgstr "Ветвь Hg: %s" -#: cook:247 -#, sh-format -msgid "Cloning to: $pwd/$mod" -msgstr "Клонирование в $pwd/$mod" +#: cook:262 +msgid "Git branch: %s" +msgstr "Ветвь Git: %s" -#: cook:256 -msgid "Getting source from SVN..." -msgstr "Загрузка исходников с SVN…" +#: cook:274 +msgid "CVS module: %s" +msgstr "Модуль CVS: %s" -#: cook:266 -msgid "Getting source from bazaar..." -msgstr "Загрузка исходников с bazaar…" - -#: cook:276 +#: cook:306 msgid "Don't forget to add to receipt:" msgstr "Не забудьте добавить в рецепт:" -#: cook:283 -#, sh-format -msgid "ERROR: Unable to handle: $WGET_URL" -msgstr "ОШИБКА: Не удалось обработать $WGET_URL" +#: cook:314 +msgid "ERROR: Unable to handle \"%s\"" +msgstr "ОШИБКА: Не удалось обработать «%s»" -#: cook:295 -#, sh-format -msgid "Getting source from mirror: $url" -msgstr "Загрузка исходников из репозитария mirror: $url" +#: cook:332 +msgid "Extracting source archive \"%s\"" +msgstr "Распаковка архива исходников «%s»" -#: cook:296 -#, sh-format -msgid "ERROR: wget $url" -msgstr "ОШИБКА: wget $url" +#. L10n: 'm' is for minutes (approximate cooking time) +#: cook:367 +msgid "~ %dm" +msgstr "(около %d мин)" -#: cook:298 -#, sh-format -msgid "Extracting: $TARBALL" -msgstr "Распаковка архива $TARBALL" +#: cook:370 +msgid "Summary for: %s" +msgstr "Сводка по пакету %s" + +#. L10n: keep the same width of translations to get a consistent view +#: cook:374 +msgid "Source dir : %s" +msgstr "Папка исходников : %s" + +#: cook:375 +msgid "Src file : %s" +msgstr "Архив исходников : %s" + +#: cook:376 +msgid "Src size : %s" +msgstr "Размер архива : %s" + +#: cook:377 +msgid "Produced : %s" +msgstr "Скомпилировано : %s" + +#: cook:378 +msgid "Packed : %s" +msgstr "Помещено в пакет : %s" + +#: cook:379 +msgid "Compressed : %s" +msgstr "Размер сжатого пакета: %s" + +#: cook:380 +msgid "Files : %s" +msgstr "Количество файлов : %s" + +#. L10n: 's' is for seconds (cooking time) +#: cook:382 +msgid "Cook time : %ds %s" +msgstr "Время сборки : %d с %s" + +#: cook:383 +msgid "Cook date : %s" +msgstr "Дата приготовления : %s" + +#: cook:383 cook:395 cook:1448 cook:1602 +msgid "+%%F %%R" +msgstr "+%%x %%R" + +#: cook:384 +msgid "Host arch : %s" +msgstr "Архитектура хоста : %s" + +#: cook:392 +msgid "Debug information" +msgstr "Отладочная информация" #. L10n: specify your format of date and time (to help: man date) #. L10n: not bad one is '+%x %R' -#: cook:322 -#: cook:349 -#: cook:1277 -#: cook:1384 -msgid "+%Y-%m-%d %H:%M" -msgstr "+%x %R" - -#. L10n: 'm' is for minutes (approximate cooking time) -#: cook:326 -#, sh-format -msgid "~ ${div}m" -msgstr "(около $div мин)" - -#: cook:327 -#, sh-format -msgid "Summary for: $PACKAGE $VERSION" -msgstr "Сводка по пакету $PACKAGE $VERSION" - -#. L10n: keep the same width of translations to get a consistent view -#: cook:330 -#, sh-format -msgid "Source dir : $srcdir" -msgstr "Папка исходников : $srcdir" - -#: cook:331 -#, sh-format -msgid "Src file : $TARBALL" -msgstr "Архив исходников : $TARBALL" - -#: cook:332 -#, sh-format -msgid "Src size : $srcsize" -msgstr "Размер архива : $srcsize" - -#: cook:333 -#, sh-format -msgid "Produced : $prod" -msgstr "Скомпилировано : $prod" - -#: cook:334 -#, sh-format -msgid "Packed : $fs" -msgstr "Помещено в пакет : $fs" - -#: cook:335 -#, sh-format -msgid "Compressed : $size" -msgstr "Размер сжатого пакета: $size" - -#: cook:336 -#, sh-format -msgid "Files : $files" -msgstr "Количество файлов : $files" - -#. L10n: 's' is for seconds (cooking time) -#: cook:338 -#, sh-format -msgid "Cook time : ${sec}s $min" -msgstr "Время сборки : $sec с $min" - -#: cook:339 -#, sh-format -msgid "Cook date : $cookdate" -msgstr "Дата приготовления : $cookdate" - -#: cook:340 -#, sh-format -msgid "Host arch : $ARCH" -msgstr "Архитектура хоста : $ARCH" - -#: cook:346 -msgid "Debug information" -msgstr "Отладочная информация" - -#: cook:350 -#, sh-format -msgid "Cook date: $datenow" -msgstr "Дата сборки: $datenow" +#: cook:395 +msgid "Cook date: %s" +msgstr "Дата сборки: %s" #. L10n: Please, translate all messages beginning with ERROR in a same way -#: cook:352 -#: cook:614 -#: cook:711 -#: cook:742 -#: cook:828 -#: cook:1527 +#: cook:397 cook:661 cook:765 cook:799 cook:889 cook:1766 msgid "ERROR" msgstr "ОШИБКА" -#: cook:437 +#: cook:484 msgid "Executing strip on all files..." msgstr "Выполнение команды strip для всех файлов…" -#: cook:450 +#: cook:496 msgid "Removing Python compiled files..." msgstr "Удаление скомпилированных файлов Python…" -#: cook:458 +#: cook:503 msgid "Removing Perl compiled files..." msgstr "Удаление скомпилированных файлов Perl…" -#: cook:472 -#: cook:600 -msgid "Build dependencies to remove: " -msgstr "Будут удалены зависимости сборки: " +#: cook:518 cook:647 +msgid "Build dependencies to remove:" +msgstr "Будут удалены зависимости сборки:" -#: cook:473 -#: cook:601 +#: cook:520 cook:648 msgid "Removing:" msgstr "Удаление:" -#: cook:487 -#, sh-format -msgid "Cook: $PACKAGE $VERSION" -msgstr "Приготовление пакета: $PACKAGE $VERSION" +#: cook:535 +msgid "Cook: %s" +msgstr "Приготовление пакета: %s" -#: cook:501 -#, sh-format -msgid "$ARCH sysroot: $sysroot" -msgstr "Корень $ARCH: $sysroot" +#: cook:549 +msgid "%s sysroot: %s" +msgstr "Корень %s: %s" -#: cook:502 -#, sh-format -msgid "Adding $tools/bin to PATH" -msgstr "Добавление «$tools/bin» в PATH" +#: cook:550 +msgid "Adding \"%s\" to PATH" +msgstr "Добавление «%s» в PATH" -#: cook:506 -#, sh-format -msgid "Using cross-tools: $CROSS_COMPILE" -msgstr "Используемые кросс-инструменты: $CROSS_COMPILE" +#: cook:554 +msgid "Using cross-tools: %s" +msgstr "Используемые кросс-инструменты: %s" -#: cook:528 -#, sh-format -msgid "Disabling -pipe compile flag: $free RAM" -msgstr "Отключение флага компиляции «-pipe»: свободно $free КБ RAM" +#: cook:578 +msgid "Disabling -pipe compile flag: %d RAM free" +msgstr "Отключение флага компиляции «-pipe»: свободно %d КБ RAM" -#: cook:545 +#: cook:594 msgid "Checking build dependencies..." msgstr "Проверка зависимостей сборки…" -#: cook:546 -#, sh-format -msgid "Using packages DB: ${root}$DB" -msgstr "Используемая база данных пакетов: ${root}$DB" +#: cook:595 +msgid "Using packages DB: %s" +msgstr "Используемая база данных пакетов: %s" -#: cook:572 -#, sh-format -msgid "Missing dep (wok/pkg): $i $vers" -msgstr "Отсутствует зависимость (wok/пакет): $i $vers" +#: cook:619 +msgid "Missing dep (wok/pkg): %s" +msgstr "Отсутствует зависимость (wok/пакет): %s" -#: cook:580 -#, sh-format -msgid "ERROR: unknown dep $i" -msgstr "ОШИБКА: неизвестная зависимость «$i»" +#: cook:627 +msgid "ERROR: unknown dep \"%s\"" +msgstr "ОШИБКА: неизвестная зависимость «%s»" -#: cook:593 -msgid "Auto cook config is set: AUTO_COOK" -msgstr "Авто-приготовление включено: AUTO_COOK" +#: cook:641 +msgid "Auto cook config is set: %s" +msgstr "Авто-приготовление включено: %s" -#: cook:597 -#, sh-format -msgid "Building dep (wok/pkg) : $i $vers" -msgstr "Сборка зависимости (wok/пакет): $i $vers" +#: cook:644 +msgid "Building dep (wok/pkg) : %s" +msgstr "Сборка зависимости (wok/пакет): %s" -#: cook:602 -#, sh-format -msgid "ERROR: can't cook dep '$i'" -msgstr "ОШИБКА: не удалось собрать зависимость «$i»" +#: cook:649 +msgid "ERROR: can't cook dep \"%s\"" +msgstr "ОШИБКА: не удалось собрать зависимость «%s»" -#: cook:617 -#, sh-format -msgid "ERROR: missing dep $nb" -msgstr "ОШИБКА: отсутствует зависимость «$nb»" +#: cook:664 +msgid "ERROR: missing %d dependency" +msgid_plural "ERROR: missing %d dependencies" +msgstr[0] "ОШИБКА: отсутствует %d зависимость" +msgstr[1] "ОШИБКА: отсутствует %d зависимости" +msgstr[2] "ОШИБКА: отсутствует %d зависимостей" -#: cook:624 -#, sh-format -msgid "Installing dep (pkg/local): $i" -msgstr "Установка зависимости (пакет/локальный): $i" +#: cook:671 +msgid "Installing dep (pkg/local): %s" +msgstr "Установка зависимости (пакет/локальный): %s" -#: cook:632 -#, sh-format -msgid "Installing dep (web/cache): $i" -msgstr "Установка зависимости (веб/кеш): $i" +#: cook:678 +msgid "Installing dep (web/cache): %s" +msgstr "Установка зависимости (веб/кеш): %s" -#: cook:682 -msgid "Executing: compile_rules" -msgstr "Запуск правил компиляции исходников" +#: cook:734 cook:789 +msgid "Executing: %s" +msgstr "Запуск %s" -#: cook:699 +#: cook:751 msgid "Running testsuite" msgstr "Запуск набора тестов" -#: cook:708 +#: cook:762 msgid "ERROR: cook failed" msgstr "ОШИБКА: сборка не удалась" -#: cook:729 -#, sh-format -msgid "Pack: $PACKAGE ${VERSION}${arch}" -msgstr "Упаковка: $PACKAGE ${VERSION}${arch}" +#: cook:786 +msgid "Pack: %s" +msgstr "Упаковка: %s" -#: cook:732 -msgid "Executing: genpkg_rules" -msgstr "Запуск правил создания пакета" - -#: cook:734 +#: cook:791 msgid "ERROR: genpkg_rules failed" msgstr "ОШИБКА: не удалось выполнить правила создания пакета" -#: cook:737 +#: cook:794 msgid "No packages rules: meta package" msgstr "Для пакета отсутствуют правила, это мета-пакет" -#: cook:751 -#, sh-format -msgid "Copying $file..." -msgstr "Копирование файла «$file»…" +#: cook:807 +msgid "Copying \"%s\"..." +msgstr "Копирование файла «%s»…" -#: cook:757 +#: cook:816 msgid "Creating the list of files..." msgstr "Создание списка файлов…" -#: cook:768 +#: cook:824 msgid "Creating md5sum of files..." msgstr "Расчёт контрольных сумм файлов…" -#: cook:783 -msgid "Compressing the fs..." +#: cook:839 +msgid "Compressing the FS..." msgstr "Сжатие файловой системы…" -#: cook:790 +#: cook:847 msgid "Updating receipt sizes..." msgstr "Обновление размеров в рецепте…" -#: cook:798 -#, sh-format -msgid "Updating receipt EXTRAVERSION: $EXTRAVERSION" -msgstr "Обновление EXTRAVERSION в рецепте: $EXTRAVERSION" +#: cook:855 +msgid "Updating receipt EXTRAVERSION: %s" +msgstr "Обновление EXTRAVERSION в рецепте: %s" -#: cook:805 +#: cook:862 msgid "Creating full cpio archive..." -msgstr "Создание полного архива CPIO…" +msgstr "Создание полного архива cpio…" -#: cook:809 +#: cook:867 msgid "Restoring original package tree..." msgstr "Восстановление оригинального дерева пакета…" -#: cook:817 -#, sh-format -msgid "Package: $tazpkg" -msgstr "Создан пакет «$tazpkg»" +#: cook:876 +msgid "Package \"%s\" created" +msgstr "Создан пакет «%s»" -#: cook:833 +#: cook:895 msgid "QA: checking for empty package..." msgstr "ОТК: проверка на пустой пакет…" -#: cook:836 +#: cook:898 msgid "ERROR: empty package" msgstr "ОШИБКА: пустой пакет" -#: cook:844 -#, sh-format -msgid "Removing old: $old_pkg" -msgstr "Удаление старого пакета «$old_pkg»…" +#: cook:906 +msgid "Removing old package \"%s\"" +msgstr "Удаление старого пакета «%s»…" -#: cook:874 +#: cook:940 msgid "Unable to install package, build has failed." msgstr "Не удалось установить пакет, сборка завершилась неудачей." -#: cook:883 -#, sh-format -msgid "Updating $ARCH chroot environment..." -msgstr "Обновление окружения chroot $ARCH…" +#: cook:949 +msgid "Updating %s chroot environment..." +msgstr "Обновление окружения chroot %s…" -#: cook:884 -#, sh-format -msgid "Updating chroot: $pkg (${VERSION}${EXTRAVERSION}${arch})" -msgstr "Обновление пакета $pkg (${VERSION}${EXTRAVERSION}${arch}) в chroot" +#: cook:950 +msgid "Updating chroot: %s" +msgstr "Обновление пакета %s в chroot" -#: cook:905 +#: cook:982 msgid "Setup aufs chroot..." -msgstr "Настройка chroot AUFS…" +msgstr "Настройка chroot aufs…" -#: cook:917 -msgid "Aufs mountage failure" -msgstr "Не удалось смонтировать AUFS" +#: cook:994 +msgid "Aufs mount failure" +msgstr "Не удалось смонтировать aufs" -#: cook:928 +#: cook:1006 msgid "Leaving aufs chroot..." -msgstr "Выход из chroot AUFS…" +msgstr "Выход из chroot aufs…" -#: cook:1030 -#, sh-format -msgid "List of $ARCH packages in: $WOK" -msgstr "Список пакетов архитектуры $ARCH в репозитории $WOK" +#: cook:1075 +msgid "Multiple choice:" +msgstr "Множественный выбор:" -#: cook:1046 -msgid "Packages:" -msgstr "Количество пакетов:" +#: cook:1076 +msgid "Select one [%s]: " +msgstr "Выберите один [%s]: " -#: cook:1053 -#, sh-format -msgid "Search results for: $query" -msgstr "Результаты поиска «$query»" +#: cook:1117 +msgid "Getting standard devel files..." +msgstr "Получение стандартных файлов разработчика…" -#: cook:1059 +#: cook:1134 +msgid "List of %s packages in \"%s\"" +msgstr "Список пакетов архитектуры %s в репозитории «%s»" + +#: cook:1150 +msgid "%s package" +msgid_plural "%s packages" +msgstr[0] "%s пакет" +msgstr[1] "%s пакета" +msgstr[2] "%s пакетов" + +#: cook:1159 +msgid "Search results for \"%s\"" +msgstr "Результаты поиска «%s»" + +#: cook:1166 msgid "Cook: setup environment" msgstr "Cook: настройка окружения" -#: cook:1060 +#: cook:1167 msgid "Setting up your environment" msgstr "Настройка окружения" -#: cook:1063 +#: cook:1170 msgid "Checking for packages to install..." msgstr "Подготовка к установке пакетов…" -#: cook:1069 -msgid "ERROR: cross is not installed" -msgstr "ОШИБКА: cross не установлен" +#: cook:1176 +msgid "ERROR: %s is not installed" +msgstr "ОШИБКА: %s не установлен" -#: cook:1072 -msgid "Using config file: /etc/slitaz/cross.conf" -msgstr "Использование файла параметров: /etc/slitaz/cross.conf" +#: cook:1179 +msgid "Using config file: %s" +msgstr "Использование файла параметров: %s" -#: cook:1097 -msgid "Adding group: slitaz" -msgstr "Добавление группы «slitaz»" +#: cook:1200 +msgid "Adding group \"%s\"" +msgstr "Добавление группы «%s»" -#: cook:1100 -msgid "Setting permissions for slitaz group..." -msgstr "Установка прав доступа для группы «slitaz»…" +#: cook:1203 +msgid "Setting permissions for group \"%s\"..." +msgstr "Установка прав доступа для группы «%s»…" -#: cook:1103 +#: cook:1206 msgid "All done, ready to cook packages :-)" msgstr "Хорошо, теперь можно собирать пакеты :-)" -#: cook:1116 -#, sh-format -msgid "Cook: setup $arch cross environment" -msgstr "Cook: настройка кросс-окружения $arch" +#: cook:1221 +msgid "Cook: setup %s cross environment" +msgstr "Cook: настройка кросс-окружения %s" -#: cook:1117 -#, sh-format -msgid "Setting up your $arch cross environment" -msgstr "Настройка кросс-окружения $arch" +#: cook:1222 +msgid "Setting up your %s cross environment" +msgstr "Настройка кросс-окружения %s" #. L10n: keep the same width of translations to get a consistent view -#: cook:1148 -#, sh-format -msgid "Target arch : $ARCH" -msgstr "Целевая архитектура : $ARCH" +#: cook:1251 +msgid "Target arch : %s" +msgstr "Целевая архитектура : %s" -#: cook:1149 -#, sh-format -msgid "Configure args : $CONFIGURE_ARGS" -msgstr "Параметры конфигурации: $CONFIGURE_ARGS" +#: cook:1252 +msgid "Configure args : %s" +msgstr "Параметры конфигурации: %s" -#: cook:1150 -#, sh-format -msgid "Build flags : $flags" -msgstr "Флаги сборки : $flags" +#: cook:1253 +msgid "Build flags : %s" +msgstr "Флаги сборки : %s" -#: cook:1151 -#, sh-format -msgid "Arch sysroot : $sysroot" -msgstr "Sysroot архитектуры : $sysroot" +#: cook:1254 +msgid "Arch sysroot : %s" +msgstr "Sysroot архитектуры : %s" -#: cook:1152 -#, sh-format -msgid "Tools prefix : $tools/bin" -msgstr "Префикс инструментов : $tools/bin" +#: cook:1255 +msgid "Tools prefix : %s" +msgstr "Префикс инструментов : %s" -#: cook:1154 -#, sh-format -msgid "Packages DB : ${root}$DB" -msgstr "База данных пакетов : ${root}$DB" +#: cook:1257 +msgid "Packages DB : %s" +msgstr "База данных пакетов : %s" -#: cook:1165 -msgid "WARNING: (e)glibc-base is not installed in sysroot" -msgstr "ПРЕДУПРЕЖДЕНИЕ: пакет (e)glibc-base не установлен в sysroot" +#: cook:1268 +msgid "WARNING: %s is not installed in sysroot" +msgstr "ПРЕДУПРЕЖДЕНИЕ: пакет %s не установлен в sysroot" -#: cook:1169 -#, sh-format -msgid "Cross compiler : ${HOST_SYSTEM}-gcc" -msgstr "Кросс-компилятор : ${HOST_SYSTEM}-gcc" +#: cook:1272 +msgid "Cross compiler : %s" +msgstr "Кросс-компилятор : %s" -#: cook:1171 -#, sh-format -msgid "C compiler is missing: ${HOST_SYSTEM}-gcc" -msgstr "Отсутствует компилятор Си «${HOST_SYSTEM}-gcc»" +#: cook:1274 +msgid "C compiler \"%s\" is missing" +msgstr "Отсутствует компилятор Си «%s»" -#: cook:1172 -msgid "Run 'cross compile' to cook a toolchain" -msgstr "Запустите «cross compile» для приготовления тулчейна" +#: cook:1275 +msgid "Run \"%s\" to cook a toolchain" +msgstr "Запустите «%s» для приготовления тулчейна" -#: cook:1177 +#: cook:1281 msgid "Cook test: testing the cook environment" msgstr "Тест cook: проверка окружения cook" -#: cook:1187 -#, sh-format -msgid "$pkg package already exists." -msgstr "Пакет $pkg уже существует." +#: cook:1292 +msgid "Package \"%s\" already exists." +msgstr "Пакет «%s» уже существует." -#: cook:1190 -#, sh-format -msgid "Creating $WOK/$pkg" -msgstr "Создание папки $WOK/$pkg" +#: cook:1296 +msgid "Creating folder \"%s\"" +msgstr "Создание папки «%s»" -#: cook:1192 +#: cook:1299 msgid "Preparing the package receipt..." msgstr "Подготовка рецепта пакета…" -#: cook:1200 +#: cook:1307 msgid "Entering interactive mode..." msgstr "Интерактивный режим создания рецепта" -#: cook:1202 -#, sh-format -msgid "Package : $pkg" -msgstr "Пакет : $pkg" +#: cook:1309 +msgid "Package : %s" +msgstr "Пакет : %s" -#: cook:1203 +#: cook:1311 msgid "Version : " msgstr "Версия : " -#: cook:1205 +#: cook:1314 msgid "Category : " msgstr "Категория : " #. L10n: Short description -#: cook:1208 +#: cook:1318 msgid "Short desc : " msgstr "Кратк.описание: " -#: cook:1210 +#: cook:1321 msgid "Maintainer : " msgstr "Сопровождающий: " -#: cook:1212 +#: cook:1324 msgid "License : " msgstr "Лицензия : " -#: cook:1214 +#: cook:1327 msgid "Web site : " msgstr "Сайт : " -#: cook:1218 +#: cook:1332 msgid "Wget URL to download source tarball." msgstr "Адрес загрузки архива с исходниками." -#: cook:1219 +#: cook:1333 msgid "Example : " msgstr "Пример : " -#: cook:1220 +#: cook:1334 msgid "Wget url : " msgstr "Исходники : " -#: cook:1223 -msgid "Do you need a stuff directory? (y/N) : " -msgstr "Нужна ли папка stuff? (y/N) : " +#: cook:1338 +msgid "Do you need a stuff directory? (y/N)" +msgstr "Нужна ли папка stuff? (y/N)" -#: cook:1225 +#: cook:1340 msgid "Creating the stuff directory..." msgstr "Создание папки stuff…" -#: cook:1229 -msgid "Are you going to write a description? (y/N) : " -msgstr "Хотите ли написать расширенное описание? (y/N) : " +#: cook:1345 +msgid "Are you going to write a description? (y/N)" +msgstr "Хотите ли написать расширенное описание? (y/N)" -#: cook:1231 -msgid "Creating the description.txt file..." -msgstr "Создание файла description.txt…" +#: cook:1347 +msgid "Creating the \"%s\" file..." +msgstr "Создание файла «%s»…" -#: cook:1234 +#: cook:1351 msgid "Receipt is ready to use." msgstr "Рецепт готов к использованию." -#: cook:1240 +#: cook:1359 msgid "No list in argument." msgstr "Не указан файл списка." -#: cook:1242 -#, sh-format -msgid "No list found: $list2" -msgstr "Список «$list2» не обнаружен." +#: cook:1363 +msgid "List \"%s\" not found." +msgstr "Список «%s» не обнаружен." -#: cook:1243 -#, sh-format -msgid "Cook list starting: $list2" -msgstr "Приготовление пакетов из списка «$list2»" +#: cook:1367 +msgid "Starting cooking the list \"%s\"" +msgstr "Приготовление пакетов из списка «%s»" -#: cook:1250 +#: cook:1375 msgid "Cleaning all packages files..." msgstr "Очистка файлов всех пакетов…" -#: cook:1255 +#: cook:1381 msgid "Cleaning all packages sources..." msgstr "Очистка распакованных исходников всех пакетов…" -#: cook:1268 -msgid "Packages directory doesn't exist" -msgstr "Папка пакета не существует" +#: cook:1388 +msgid "Checking for uncooked packages" +msgstr "Проверка несобранных пакетов" -#: cook:1275 +#: cook:1401 +msgid "Package \"%s\"" +msgstr "Пакет «%s»" + +#: cook:1420 +msgid "%s uncooked package" +msgid_plural "%s uncooked packages" +msgstr[0] "%s несобранный пакет" +msgstr[1] "%s несобранных пакета" +msgstr[2] "%s несобранных пакетов" + +#: cook:1422 +msgid "All packages are cooked :-)" +msgstr "Все пакеты собраны :-)" + +#: cook:1435 +msgid "Packages directory \"%s\" doesn't exist" +msgstr "Папка пакетов «%s» отсутствует" + +#: cook:1445 msgid "Cook pkgdb: Creating all packages lists" msgstr "Cook pkgdb: создание списков всех пакетов" -#: cook:1276 -#, sh-format -msgid "Creating lists for: $PKGS" -msgstr "Создание списков для «$PKGS»" +#: cook:1446 +msgid "Creating lists for \"%s\"" +msgstr "Создание списков для «%s»" -#: cook:1278 -#, sh-format -msgid "Cook pkgdb started: $datenow" -msgstr "Начало создания базы данных пакетов: $datenow" +#: cook:1448 +msgid "Cook pkgdb started: %s" +msgstr "Начало создания базы данных пакетов: %s" -#: cook:1281 -msgid "Creating: packages.list" -msgstr "Создание «packages.list»" +#: cook:1454 cook:1457 cook:1523 cook:1535 cook:1540 +msgid "Creating file \"%s\"" +msgstr "Создание файла «%s»" -#: cook:1283 -msgid "Creating: packages.md5" -msgstr "Создание «packages.md5»" +#: cook:1463 +msgid "Creating lists from \"%s\"" +msgstr "Создание списков пакетов из «%s»" -#: cook:1286 -#, sh-format -msgid "Creating lists from: $WOK" -msgstr "Создание списков пакетов из $WOK" - -#: cook:1328 -msgid "Done: packages.desc" -msgstr "Файл «packages.desc» готов." - -#: cook:1329 -msgid "Done: packages.txt" -msgstr "Файл «packages.txt» готов." - -#: cook:1330 -msgid "Done: packages.equiv" -msgstr "Файл «packages.equiv» готов." - -#: cook:1333 -msgid "Creating: files.list.lzma" -msgstr "Создание файла «files.list.lzma»" +#: cook:1516 cook:1517 cook:1518 cook:1529 cook:1547 +msgid "Done: %s (%s)" +msgstr "Файл «%s» готов (%s)." #. L10n: 's' is for seconds (cooking time) -#: cook:1342 -#, sh-format -msgid "Packages: $nb - Time: ${time}s" -msgstr "Пакетов: $nb - время: $time с" +#: cook:1554 +msgid "Packages: %s - Time: %ss" +msgstr "Пакетов: %s - время: %s с" -#: cook:1348 -#, sh-format -msgid "Missing flavors: $flavors" -msgstr "Отсутствуют редакции $flavors" +#: cook:1563 +msgid "Missing flavors folder \"%s\"" +msgstr "Отсутствует папка редакций «%s»" -#: cook:1350 -#, sh-format -msgid "Creating flavors files in: $live" -msgstr "Создание редакций в $live" +#: cook:1568 +msgid "Creating flavors files in \"%s\"" +msgstr "Создание редакций в «%s»" -#: cook:1351 +#: cook:1569 msgid "Cook pkgdb: Creating all flavors" msgstr "Cook pkgdb: создание всех редакций" -#: cook:1353 +#: cook:1572 msgid "Recharging lists to use latest packages..." msgstr "Обновление списков для использования свежих пакетов…" -#: cook:1358 -msgid "Creating configuration file: tazlito.conf" -msgstr "Создание файла концигурации «tazlito.conf»" +#: cook:1577 +msgid "Creating configuration file \"%s\"" +msgstr "Создание файла конфигурации «%s»" -#: cook:1368 +#: cook:1589 msgid "Starting to generate flavors..." msgstr "Начало создания редакций…" -#: cook:1373 -#, sh-format -msgid "Packing flavor: $fl" -msgstr "Упаковка редакции «$fl»" +#: cook:1593 +msgid "Packing flavor \"%s\"" +msgstr "Упаковка редакции «%s»" -#: cook:1381 -#, sh-format -msgid "Flavors size: $fl_size" -msgstr "Размер редакции: $fl_size" +#: cook:1599 +msgid "Total flavors size: %s" +msgstr "Суммарный размер редакций: %s" -#: cook:1385 -#, sh-format -msgid "Cook pkgdb end: $datenow" -msgstr "База данных пакетов создана: $datenow" +#: cook:1602 +msgid "Cook pkgdb end: %s" +msgstr "База данных пакетов создана: %s" -#: cook:1412 -#, sh-format -msgid "cook: HOST_ARCH is not set in $pkg receipt" -msgstr "cook: переменная HOST_ARCH не указана в рецепте пакета «$pkg»" +#: cook:1622 +msgid "cook: HOST_ARCH is not set in \"%s\" receipt" +msgstr "cook: переменная HOST_ARCH не указана в рецепте пакета «%s»" -#: cook:1413 -#, sh-format -msgid "cook: This package is not included in: $ARCH" -msgstr "cook: этот пакет не включен в $ARCH" +#: cook:1623 +msgid "package \"%s\" is not included in %s" +msgstr "пакет %s не включен в %s" -#: cook:1414 -#: cook:1425 -#, sh-format -msgid "bugs: $CROSS_BUGS" -msgstr "bugs: $CROSS_BUGS" +#: cook:1624 cook:1637 cook:1639 +msgid "cook: %s" +msgstr "cook: %s" -#: cook:1415 -#, sh-format -msgid "Cook skip: $pkg is not included in: $ARCH" -msgstr "Пропуск: пакет $pkg не включен в $ARCH" +#: cook:1625 cook:1640 +msgid "bugs: %s" +msgstr "bugs: %s" -#: cook:1423 -#, sh-format -msgid "cook: HOST_ARCH=$HOST_ARCH" -msgstr "cook: HOST_ARCH=$HOST_ARCH" +#: cook:1626 cook:1641 +msgid "Cook skip: %s" +msgstr "Пропуск: %s" -#: cook:1424 -#, sh-format -msgid "cook: $pkg doesn't cook or is not included in: $ARCH" -msgstr "cook: пакет $pkg не приготовлен либо не включен в $ARCH" +#: cook:1634 +msgid "Host arch %s" +msgstr "Архитектура хоста %s" -#: cook:1426 -#, sh-format -msgid "Cook skip: $pkg doesn't cook or is not included in: $ARCH" -msgstr "Пропуск: пакет $pkg не приготовлен либо не включен в $ARCH" +#: cook:1638 +msgid "package \"%s\" doesn't cook or is not included in %s" +msgstr "пакет «%s» не удается приготовить либо он не включен в %s" -#: cook:1432 -#, sh-format -msgid "Blocked package: $pkg" -msgstr "Пакет $pkg заблокирован" +#: cook:1649 +msgid "Package \"%s\" is blocked" +msgstr "Пакет «%s» заблокирован" -#: cook:1439 -#, sh-format -msgid "Cook started for: $pkg" -msgstr "Начато приготовление $pkg" +#: cook:1656 +msgid "Cook started for: %s" +msgstr "Начато приготовление %s" -#: cook:1450 -#, sh-format -msgid "Cleaning: $pkg" -msgstr "Очистка пакета «$pkg»" +#: cook:1667 +msgid "Cleaning \"%s\"" +msgstr "Очистка «%s»" -#: cook:1456 -#, sh-format -msgid "Getting source for: $pkg" -msgstr "Загрузка исходников для «$pkg»" +#: cook:1676 +msgid "Getting source for \"%s\"" +msgstr "Загрузка исходников для «%s»" -#: cook:1458 -#, sh-format -msgid "Tarball: $SRC/$TARBALL" -msgstr "Архив исходников: $SRC/$TARBALL" +#: cook:1678 +msgid "Tarball: %s" +msgstr "Архив исходников: %s" -#: cook:1461 -#, sh-format -msgid "Blocking: $pkg" -msgstr "Блокировка пакета «$pkg»" +#: cook:1682 +msgid "Blocking package \"%s\"" +msgstr "Блокировка пакета «%s»" -#: cook:1465 -#, sh-format -msgid "Unblocking: $pkg" -msgstr "Снятие блокировки пакета «$pkg»" +#: cook:1688 +msgid "Unblocking package \"%s\"" +msgstr "Снятие блокировки пакета «%s»" -#: cook:1475 -#: cook:1479 -#, sh-format -msgid "Need to build $pkg." -msgstr "Пакет $pkg сначала нужно собрать." +#: cook:1700 cook:1707 +msgid "Need to build \"%s\"" +msgstr "Пакет «%s» сначала нужно собрать" -#: cook:1480 +#: cook:1711 msgid "Checking depends" msgstr "Проверка зависимостей" -#: cook:1507 -#, sh-format -msgid "WANTED package is blocked: $wanted" -msgstr "Требуемый пакет «$wanted» заблокирован" +#: cook:1742 +msgid "WANTED package \"%s\" is blocked" +msgstr "Требуемый пакет «%s» заблокирован" -#: cook:1511 -#, sh-format -msgid "WANTED package is broken: $wanted" -msgstr "Требуемый пакет «$wanted» сломан" - -#~ msgid "Packages: $pkg_total" -#~ msgstr "Пакетов: $pkg_total" +#: cook:1748 +msgid "WANTED package \"%s\" is broken" +msgstr "Требуемый пакет «%s» сломан" diff -r c21a7ba0d29c -r da66e6be1add po/zh_CN.po --- a/po/zh_CN.po Sun May 03 19:43:46 2015 +0300 +++ b/po/zh_CN.po Thu May 07 15:11:47 2015 +0300 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Cook 3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-05 15:28+0200\n" +"POT-Creation-Date: 2015-05-07 12:52+0300\n" "PO-Revision-Date: 2014-07-20 10:34+0800\n" "Last-Translator: rhsky \n" "Language-Team: \n" @@ -19,12 +19,16 @@ "X-Generator: Poedit 1.6.5\n" #: cook:32 -msgid "\\033[1mUsage:\\033[0m cook [package|command] [list|--option]" -msgstr "\\033[1m用法:\\033[0m cook [package|command] [list|--option]" +msgid "Usage:" +msgstr "用法:" + +#: cook:32 +msgid "cook [package|command] [list|--option]" +msgstr "cook [package|command] [list|--option]" #: cook:34 -msgid "\\033[1mCommands:\\033[0m" -msgstr "\\033[1m命令:\\033[0m" +msgid "Commands:" +msgstr "命令:" #: cook:35 msgid "Display this short usage." @@ -38,910 +42,795 @@ msgid "Setup a cross environment." msgstr "设置交叉环境" -#: cook:38 +#: cook:39 msgid "Test environment and cook a package." msgstr "打包测试环境" -#: cook:39 +#: cook:40 msgid "List packages in the wok." msgstr "列出wok库内的包" -#: cook:40 +#: cook:41 msgid "Simple packages search function." msgstr "包搜索" -#: cook:41 +#: cook:42 msgid "Create a new package with a receipt." msgstr "根据清单创建新包" -#: cook:42 +#: cook:43 msgid "Cook a list of packages." msgstr "打包清单内的包(packages)" -#: cook:43 +#: cook:44 msgid "Clean-up all packages files." msgstr "清理所有包文件" -#: cook:44 +#: cook:45 msgid "Clean-up all packages sources." msgstr "清理所有包源文档" -#: cook:45 +#: cook:46 +msgid "Check for uncooked packages" +msgstr "" + +#: cook:47 msgid "Create packages DB lists and flavors." msgstr "创建包数据库清单及设置" -#: cook:47 -msgid "\\033[1mOptions:\\033[0m" -msgstr "\\033[1m选项:\\033[0m" +#: cook:49 +msgid "Options:" +msgstr "选项:" -#: cook:48 +#: cook:51 msgid "clean the package in the wok." msgstr "清除wok库内的包" -#: cook:49 +#: cook:52 msgid "cook and install the package." msgstr "编成及安装包" -#: cook:50 +#: cook:53 msgid "get the package source tarball." msgstr "取得包源压缩包(tarball)" -#: cook:51 +#: cook:54 msgid "block a package so cook will skip it." msgstr "封锁及在建成时跳过包" -#: cook:52 +#: cook:55 msgid "unblock a blocked package." msgstr "取消封锁包" -#: cook:53 +#: cook:56 msgid "check dependencies of cooked package." msgstr "检查当前包的依赖" -#: cook:54 +#: cook:57 msgid "repack an already built package." msgstr "重新打包" -#: cook:55 +#: cook:58 +msgid "display debugging messages." +msgstr "" + +#: cook:59 +msgid "continue running compile_rules." +msgstr "" + +#: cook:61 msgid "create a receipt interactively." msgstr "互动地创建清单" -#: cook:56 +#: cook:63 msgid "clone the cooking wok from Hg repo." msgstr "由Hg repo.克隆 cooking wok" -#: cook:57 +#: cook:64 msgid "clone the stable wok from Hg repo." msgstr "由Hg repo.克隆 stable wok" -#: cook:58 +#: cook:65 msgid "clone the undigest wok from Hg repo." msgstr "由Hg repo.克隆 undigest wok" -#: cook:59 +#: cook:66 msgid "clone the tiny SliTaz wok from Hg repo." msgstr "由Hg repo.克隆 tiny wok" -#: cook:60 +#: cook:67 msgid "force reinstall of chroot packages." msgstr "强制重新安装chroot包" -#: cook:61 +#: cook:69 msgid "create up-to-date flavors files." msgstr "创建最新的偏好文件" -#: cook:76 -#, sh-format -msgid "Unable to find package in the wok: $pkg" -msgstr "在wok内找不到包: $pkg" +#: cook:88 +msgid "Unable to find package \"%s\" in the wok" +msgstr "在wok内找不到包:%s" #. L10n: QA is quality assurance -#: cook:84 -#, sh-format -msgid "QA: empty variable: ${var}=\"\"" -msgstr "QA: 空变量: ${var}=\"\"" +#: cook:97 +msgid "QA: empty variable: %s" +msgstr "QA:空变量:%s" -#: cook:91 -#, sh-format -msgid "Creating directories structure in: $SLITAZ" -msgstr "正在创建包结构: $SLITAZ" +#: cook:106 +msgid "Creating directories structure in \"%s\"" +msgstr "正在创建包结构:%s" -#: cook:93 -#, sh-format -msgid "Creating DB files in: $CACHE" -msgstr "在以下资料夹创建数库库文件: $CACHE " - -#: cook:102 -msgid "QA: checking package receipt..." -msgstr "QA: 正在检查包清单" +#: cook:108 +msgid "Creating DB files in \"%s\"" +msgstr "在以下资料夹创建数库库文件:%s" #: cook:118 -#, sh-format -msgid "QA: unknown category: $value" -msgstr "QA: unknown category: $value" +msgid "QA: checking package receipt..." +msgstr "QA:正在检查包清单" -#: cook:119 -#, sh-format -msgid "Please, use one of: $valid" -msgstr "请用以下其中一项: $valid" +#: cook:133 +msgid "QA: unknown category \"%s\"" +msgstr "" -#: cook:128 -#, sh-format -msgid "QA: unable to reach: $value" -msgstr "QA: 无法存取: $value" +#: cook:134 +msgid "Please, use one of: %s" +msgstr "请用以下其中一项:%s" -#: cook:184 -#, sh-format -msgid "Creating tarball: $tarball" -msgstr "创建tarball压缩包中: $tarball" +#: cook:144 +msgid "QA: unable to reach \"%s\"" +msgstr "QA:无法存取:%s" -#: cook:207 cook:211 -#, sh-format -msgid "ERROR: wget $WGET_URL" -msgstr "错误: wget $WGET_URL" +#: cook:204 +msgid "Creating tarball \"%s\"" +msgstr "创建tarball压缩包中:%s" -#: cook:218 -msgid "Getting source from Hg..." -msgstr "正在Hg中取得源文件" +#: cook:229 cook:234 cook:248 cook:250 cook:260 cook:330 +msgid "ERROR: %s" +msgstr "错误:%s" -#: cook:219 cook:233 cook:245 cook:257 -#, sh-format -msgid "URL: $url" -msgstr "URL: $url" +#: cook:242 cook:257 cook:272 cook:285 cook:296 cook:328 +msgid "Getting source from %s..." +msgstr "正在%s中取得源文件" -#: cook:220 -#, sh-format -msgid "Cloning to: $pwd/$pkgsrc" -msgstr "克隆到: $pwd/$pkgsrc" +#: cook:243 cook:258 cook:273 cook:286 cook:329 +msgid "URL: %s" +msgstr "" -#: cook:222 -#, sh-format -msgid "Hg branch: $BRANCH" -msgstr "Hg branch: $BRANCH" - -#: cook:224 -#, sh-format -msgid "ERROR: hg clone $url --rev $BRANCH" -msgstr "错误: hg clone $url --rev $BRANCH" - -#: cook:226 -#, sh-format -msgid "ERROR: hg clone $url" -msgstr "错误: hg clone $url" - -#: cook:232 -msgid "Getting source from Git..." -msgstr "正在由git取得源文件" - -#: cook:234 -#, sh-format -msgid "ERROR: git clone $url" -msgstr "错误: git clone $url" - -#: cook:236 -#, sh-format -msgid "Git branch: $BRANCH" -msgstr "Git branch: $BRANCH" - -#: cook:244 -msgid "Getting source from CVS..." -msgstr "正在由CVS取得源文件" +#: cook:244 cook:275 +msgid "Cloning to \"%s\"" +msgstr "克隆到:%s" #: cook:246 -#, sh-format -msgid "CVS module: $mod" -msgstr "CVS 模组: $mod" +msgid "Hg branch: %s" +msgstr "" -#: cook:247 -#, sh-format -msgid "Cloning to: $pwd/$mod" -msgstr "克隆到: $pwd/$mod" +#: cook:262 +msgid "Git branch: %s" +msgstr "" -#: cook:256 -msgid "Getting source from SVN..." -msgstr "正在由SVN取得源文件" +#: cook:274 +msgid "CVS module: %s" +msgstr "CVS 模组:%s" -#: cook:266 -msgid "Getting source from bazaar..." -msgstr "正在由bazaar取得源文件" - -#: cook:276 +#: cook:306 msgid "Don't forget to add to receipt:" msgstr "记得要加到清单" -#: cook:283 -#, sh-format -msgid "ERROR: Unable to handle: $WGET_URL" -msgstr "错误: 无法处理: $WGET_URL" +#: cook:314 +msgid "ERROR: Unable to handle \"%s\"" +msgstr "错误:无法处理:%s" -#: cook:295 -#, sh-format -msgid "Getting source from mirror: $url" -msgstr "正在由镜像取得源文件: $url" +#: cook:332 +msgid "Extracting source archive \"%s\"" +msgstr "正在解压:%s" -#: cook:296 -#, sh-format -msgid "ERROR: wget $url" -msgstr "错误: wget $url" +#. L10n: 'm' is for minutes (approximate cooking time) +#: cook:367 +msgid "~ %dm" +msgstr "~ %dm" -#: cook:298 -#, sh-format -msgid "Extracting: $TARBALL" -msgstr "正在解压: $TARBALL" +#: cook:370 +msgid "Summary for: %s" +msgstr "包摘要:%s" + +#. L10n: keep the same width of translations to get a consistent view +#: cook:374 +msgid "Source dir : %s" +msgstr "源路径:%s" + +#: cook:375 +msgid "Src file : %s" +msgstr "源文件:%s" + +#: cook:376 +msgid "Src size : %s" +msgstr "源大小:%s" + +#: cook:377 +msgid "Produced : %s" +msgstr "已产生:%s" + +#: cook:378 +msgid "Packed : %s" +msgstr "已打包:%s" + +#: cook:379 +msgid "Compressed : %s" +msgstr "已压缩:%s" + +#: cook:380 +msgid "Files : %s" +msgstr "文件:%s" + +#. L10n: 's' is for seconds (cooking time) +#: cook:382 +msgid "Cook time : %ds %s" +msgstr "生成时间:%ds %s" + +#: cook:383 +msgid "Cook date : %s" +msgstr "生成日期:%s" + +#: cook:383 cook:395 cook:1448 cook:1602 +msgid "+%%F %%R" +msgstr "+%%F %%R" + +#: cook:384 +msgid "Host arch : %s" +msgstr "主机架构:%s" + +#: cook:392 +msgid "Debug information" +msgstr "除错资讯" #. L10n: specify your format of date and time (to help: man date) #. L10n: not bad one is '+%x %R' -#: cook:322 cook:349 cook:1277 cook:1384 -msgid "+%Y-%m-%d %H:%M" -msgstr "+%Y-%m-%d %H:%M" - -#. L10n: 'm' is for minutes (approximate cooking time) -#: cook:326 -#, sh-format -msgid "~ ${div}m" -msgstr "~ ${div}m" - -#: cook:327 -#, sh-format -msgid "Summary for: $PACKAGE $VERSION" -msgstr "包摘要: $PACKAGE $VERSION" - -#. L10n: keep the same width of translations to get a consistent view -#: cook:330 -#, sh-format -msgid "Source dir : $srcdir" -msgstr "源路径 : $srcdir" - -#: cook:331 -#, sh-format -msgid "Src file : $TARBALL" -msgstr "源文件 : $TARBALL" - -#: cook:332 -#, sh-format -msgid "Src size : $srcsize" -msgstr "源大小 : $srcsize" - -#: cook:333 -#, sh-format -msgid "Produced : $prod" -msgstr "已产生 : $prod" - -#: cook:334 -#, sh-format -msgid "Packed : $fs" -msgstr "已打包 : $fs" - -#: cook:335 -#, sh-format -msgid "Compressed : $size" -msgstr "已压缩 : $size" - -#: cook:336 -#, sh-format -msgid "Files : $files" -msgstr "文件 : $files" - -#. L10n: 's' is for seconds (cooking time) -#: cook:338 -#, sh-format -msgid "Cook time : ${sec}s $min" -msgstr "生成时间 : ${sec}s $min" - -#: cook:339 -#, sh-format -msgid "Cook date : $cookdate" -msgstr "生成日期 : $cookdate" - -#: cook:340 -#, sh-format -msgid "Host arch : $ARCH" -msgstr "主机架构: $ARCH" - -#: cook:346 -msgid "Debug information" -msgstr "除错资讯" - -#: cook:350 -#, sh-format -msgid "Cook date: $datenow" -msgstr "生成日期: $datenow" +#: cook:395 +msgid "Cook date: %s" +msgstr "生成日期:%s" #. L10n: Please, translate all messages beginning with ERROR in a same way -#: cook:352 cook:614 cook:711 cook:742 cook:828 cook:1527 +#: cook:397 cook:661 cook:765 cook:799 cook:889 cook:1766 msgid "ERROR" msgstr "错误" -#: cook:437 +#: cook:484 msgid "Executing strip on all files..." msgstr "正在为所有文件减肥" -#: cook:450 +#: cook:496 msgid "Removing Python compiled files..." msgstr "正在删除Python编译出的文件" -#: cook:458 +#: cook:503 msgid "Removing Perl compiled files..." msgstr "正在删除Perl编译出的文件" -#: cook:472 cook:600 -msgid "Build dependencies to remove: " +#: cook:518 cook:647 +msgid "Build dependencies to remove:" msgstr "要删除的编译依赖" -#: cook:473 cook:601 +#: cook:520 cook:648 msgid "Removing:" -msgstr "正在删除:" +msgstr "正在删除:" -#: cook:487 -#, sh-format -msgid "Cook: $PACKAGE $VERSION" -msgstr "Cook: $PACKAGE $VERSION" +#: cook:535 +msgid "Cook: %s" +msgstr "" -#: cook:501 -#, sh-format -msgid "$ARCH sysroot: $sysroot" -msgstr "$ARCH sysroot: $sysroot" +#: cook:549 +msgid "%s sysroot: %s" +msgstr "" -#: cook:502 -#, sh-format -msgid "Adding $tools/bin to PATH" -msgstr "正将 $tools/bin 加入 PATH" +#: cook:550 +msgid "Adding \"%s\" to PATH" +msgstr "正将 %s 加入 PATH" -#: cook:506 -#, sh-format -msgid "Using cross-tools: $CROSS_COMPILE" -msgstr "正使用cross-tools: $CROSS_COMPILE" +#: cook:554 +msgid "Using cross-tools: %s" +msgstr "正使用cross-tools:%s" -#: cook:528 -#, sh-format -msgid "Disabling -pipe compile flag: $free RAM" -msgstr "正在禁用 -pipe 编译标志: $free RAM" +#: cook:578 +msgid "Disabling -pipe compile flag: %d RAM free" +msgstr "正在禁用 -pipe 编译标志:%d RAM" -#: cook:545 +#: cook:594 msgid "Checking build dependencies..." msgstr "正在检查编译依赖" -#: cook:546 -#, sh-format -msgid "Using packages DB: ${root}$DB" -msgstr "正使用包数据库: ${root}$DB" +#: cook:595 +msgid "Using packages DB: %s" +msgstr "正使用包数据库:%s" -#: cook:572 -#, sh-format -msgid "Missing dep (wok/pkg): $i $vers" -msgstr "欠缺依赖 (wok/pkg): $i $vers" +#: cook:619 +msgid "Missing dep (wok/pkg): %s" +msgstr "欠缺依赖 (wok/pkg):%s" -#: cook:580 -#, sh-format -msgid "ERROR: unknown dep $i" -msgstr "错误: 未知依赖 $i" +#: cook:627 +msgid "ERROR: unknown dep \"%s\"" +msgstr "错误:未知依赖 %s" -#: cook:593 -msgid "Auto cook config is set: AUTO_COOK" -msgstr "自动生成已配置: AUTO_COOK" +#: cook:641 +msgid "Auto cook config is set: %s" +msgstr "自动生成已配置:%s" -#: cook:597 -#, sh-format -msgid "Building dep (wok/pkg) : $i $vers" -msgstr "正在生成依赖 (wok/pkg) : $i $vers" +#: cook:644 +msgid "Building dep (wok/pkg) : %s" +msgstr "正在生成依赖 (wok/pkg):%s" -#: cook:602 -#, sh-format -msgid "ERROR: can't cook dep '$i'" -msgstr "错误: 无法生成依赖 '$i'" +#: cook:649 +msgid "ERROR: can't cook dep \"%s\"" +msgstr "错误:无法生成依赖 '%s'" -#: cook:617 -#, sh-format -msgid "ERROR: missing dep $nb" -msgstr "错误: 欠缺依赖 $nb" +#: cook:664 +msgid "ERROR: missing %d dependency" +msgid_plural "ERROR: missing %d dependencies" +msgstr[0] "错误:欠缺依赖 %d" -#: cook:624 -#, sh-format -msgid "Installing dep (pkg/local): $i" -msgstr "正在安装依赖 (包/本地): $i" +#: cook:671 +msgid "Installing dep (pkg/local): %s" +msgstr "正在安装依赖 (包/本地):%s" -#: cook:632 -#, sh-format -msgid "Installing dep (web/cache): $i" -msgstr "正在安装依赖 (在线/缓存): $i" +#: cook:678 +msgid "Installing dep (web/cache): %s" +msgstr "正在安装依赖 (在线/缓存):%s" -#: cook:682 -msgid "Executing: compile_rules" -msgstr "正执行: 编译规则" +#: cook:734 cook:789 +msgid "Executing: %s" +msgstr "正执行:%s" -#: cook:699 +#: cook:751 msgid "Running testsuite" msgstr "正运行测试" -#: cook:708 +#: cook:762 msgid "ERROR: cook failed" -msgstr "错误: 生成失败" +msgstr "错误:生成失败" -#: cook:729 -#, sh-format -msgid "Pack: $PACKAGE ${VERSION}${arch}" -msgstr "Pack: $PACKAGE ${VERSION}${arch}" +#: cook:786 +msgid "Pack: %s" +msgstr "" -#: cook:732 -msgid "Executing: genpkg_rules" -msgstr "正在执行: 包生成规则" +#: cook:791 +msgid "ERROR: genpkg_rules failed" +msgstr "错误:生成包规则错误" -#: cook:734 -msgid "ERROR: genpkg_rules failed" -msgstr "错误: 生成包规则错误" +#: cook:794 +msgid "No packages rules: meta package" +msgstr "没有包规则:元包" -#: cook:737 -msgid "No packages rules: meta package" -msgstr "没有包规则: 元包" +#: cook:807 +msgid "Copying \"%s\"..." +msgstr "正在拷贝 %s..." -#: cook:751 -#, sh-format -msgid "Copying $file..." -msgstr "正在拷贝 $file..." - -#: cook:757 +#: cook:816 msgid "Creating the list of files..." msgstr "正在创建文件清单" -#: cook:768 +#: cook:824 msgid "Creating md5sum of files..." msgstr "正在创建文件md5校验和" -#: cook:783 -msgid "Compressing the fs..." +#: cook:839 +msgid "Compressing the FS..." msgstr "正在压缩文件系统" -#: cook:790 +#: cook:847 msgid "Updating receipt sizes..." msgstr "正在更新清单大小" -#: cook:798 -#, sh-format -msgid "Updating receipt EXTRAVERSION: $EXTRAVERSION" -msgstr "正在更新包额外版本: $EXTRAVERSION" +#: cook:855 +msgid "Updating receipt EXTRAVERSION: %s" +msgstr "正在更新包额外版本:%s" -#: cook:805 +#: cook:862 msgid "Creating full cpio archive..." msgstr "正在创建完整cpio压缩包" -#: cook:809 +#: cook:867 msgid "Restoring original package tree..." msgstr "正复原包树" -#: cook:817 -#, sh-format -msgid "Package: $tazpkg" -msgstr "包: $tazpkg" +#: cook:876 +msgid "Package \"%s\" created" +msgstr "包:%s" -#: cook:833 +#: cook:895 msgid "QA: checking for empty package..." -msgstr "QA: 检查空包中……" +msgstr "QA:检查空包中……" -#: cook:836 +#: cook:898 msgid "ERROR: empty package" -msgstr "错误: 空包" +msgstr "错误:空包" -#: cook:844 -#, sh-format -msgid "Removing old: $old_pkg" -msgstr "正在删除旧包: $old_pkg" +#: cook:906 +msgid "Removing old package \"%s\"" +msgstr "正在删除旧包:%s" -#: cook:874 +#: cook:940 msgid "Unable to install package, build has failed." msgstr "无法安装包,生成失败" -#: cook:883 -#, sh-format -msgid "Updating $ARCH chroot environment..." -msgstr "正在更新 $ARCH chroot 环境" +#: cook:949 +msgid "Updating %s chroot environment..." +msgstr "正在更新 %s chroot 环境" -#: cook:884 -#, sh-format -msgid "Updating chroot: $pkg (${VERSION}${EXTRAVERSION}${arch})" -msgstr "正在更新 chroot: $pkg (${VERSION}${EXTRAVERSION}${arch})" +#: cook:950 +msgid "Updating chroot: %s" +msgstr "正在更新 chroot:%s" -#: cook:905 +#: cook:982 msgid "Setup aufs chroot..." msgstr "正设置 aufs chroot" -#: cook:917 -msgid "Aufs mountage failure" -msgstr "Aufs mountage 错误" +#: cook:994 +msgid "Aufs mount failure" +msgstr "Aufs mount 错误" -#: cook:928 +#: cook:1006 msgid "Leaving aufs chroot..." msgstr "正离开 aufs chroot..." -#: cook:1030 -#, sh-format -msgid "List of $ARCH packages in: $WOK" -msgstr "$WOK 内的 $ARCH 包清单" +#: cook:1075 +msgid "Multiple choice:" +msgstr "" -#: cook:1046 -msgid "Packages:" -msgstr "包:" +#: cook:1076 +msgid "Select one [%s]: " +msgstr "" -#: cook:1053 -#, sh-format -msgid "Search results for: $query" -msgstr "$query 的搜索结果" +#: cook:1117 +msgid "Getting standard devel files..." +msgstr "" -#: cook:1059 +#: cook:1134 +msgid "List of %s packages in \"%s\"" +msgstr "%2$s 内的 %1$s 包清单" + +#: cook:1150 +msgid "%s package" +msgid_plural "%s packages" +msgstr[0] "包:" + +#: cook:1159 +msgid "Search results for \"%s\"" +msgstr "%s 的搜索结果" + +#: cook:1166 msgid "Cook: setup environment" -msgstr "Cook: 设置环境" +msgstr "Cook:设置环境" -#: cook:1060 +#: cook:1167 msgid "Setting up your environment" msgstr "设置个人环境" -#: cook:1063 +#: cook:1170 msgid "Checking for packages to install..." msgstr "检查要安装的包" -#: cook:1069 -msgid "ERROR: cross is not installed" -msgstr "错误: 未安装cross" +#: cook:1176 +msgid "ERROR: %s is not installed" +msgstr "错误:未安装%s" -#: cook:1072 -msgid "Using config file: /etc/slitaz/cross.conf" -msgstr "使用配置文件: /etc/slitaz/cross.conf" +#: cook:1179 +msgid "Using config file: %s" +msgstr "使用配置文件:%s" -#: cook:1097 -msgid "Adding group: slitaz" -msgstr "正在加入组: slitaz" +#: cook:1200 +msgid "Adding group \"%s\"" +msgstr "正在加入组:%s" -#: cook:1100 -msgid "Setting permissions for slitaz group..." -msgstr "正在设置slitaz组的权限" +#: cook:1203 +msgid "Setting permissions for group \"%s\"..." +msgstr "正在设置%s组的权限" -#: cook:1103 +#: cook:1206 msgid "All done, ready to cook packages :-)" msgstr "完成,可以开始生成包 :-)" -#: cook:1116 -#, sh-format -msgid "Cook: setup $arch cross environment" -msgstr "生成: 设置 $arch cross 环境" +#: cook:1221 +msgid "Cook: setup %s cross environment" +msgstr "生成:设置 %s cross 环境" -#: cook:1117 -#, sh-format -msgid "Setting up your $arch cross environment" -msgstr "正在设置你的 $arch cross 环境" +#: cook:1222 +msgid "Setting up your %s cross environment" +msgstr "正在设置你的 %s cross 环境" #. L10n: keep the same width of translations to get a consistent view -#: cook:1148 -#, sh-format -msgid "Target arch : $ARCH" -msgstr "目标架构 : $ARCH" +#: cook:1251 +msgid "Target arch : %s" +msgstr "目标架构:%s" -#: cook:1149 -#, sh-format -msgid "Configure args : $CONFIGURE_ARGS" -msgstr "设置标志 : $CONFIGURE_ARGS" +#: cook:1252 +msgid "Configure args : %s" +msgstr "设置标志:%s" -#: cook:1150 -#, sh-format -msgid "Build flags : $flags" -msgstr "编译标志 : $flags" +#: cook:1253 +msgid "Build flags : %s" +msgstr "编译标志:%s" -#: cook:1151 -#, sh-format -msgid "Arch sysroot : $sysroot" -msgstr "Arch sysroot : $sysroot" +#: cook:1254 +msgid "Arch sysroot : %s" +msgstr "" -#: cook:1152 -#, sh-format -msgid "Tools prefix : $tools/bin" -msgstr "工具前缀 : $tools/bin" +#: cook:1255 +msgid "Tools prefix : %s" +msgstr "工具前缀:%s" -#: cook:1154 -#, sh-format -msgid "Packages DB : ${root}$DB" -msgstr "包数据库 : ${root}$DB" +#: cook:1257 +msgid "Packages DB : %s" +msgstr "包数据库:%s" -#: cook:1165 -msgid "WARNING: (e)glibc-base is not installed in sysroot" -msgstr "警告: 并无在sysroot 安装 (e)glibc-base " +#: cook:1268 +msgid "WARNING: %s is not installed in sysroot" +msgstr "警告:并无在sysroot 安装 %s" -#: cook:1169 -#, sh-format -msgid "Cross compiler : ${HOST_SYSTEM}-gcc" -msgstr "交叉编译器 : ${HOST_SYSTEM}-gcc" +#: cook:1272 +msgid "Cross compiler : %s" +msgstr "交叉编译器:%s" -#: cook:1171 -#, sh-format -msgid "C compiler is missing: ${HOST_SYSTEM}-gcc" -msgstr "欠缺C编译器: ${HOST_SYSTEM}-gcc" +#: cook:1274 +msgid "C compiler \"%s\" is missing" +msgstr "欠缺C编译器:%s" -#: cook:1172 -msgid "Run 'cross compile' to cook a toolchain" -msgstr "运行 'cross compile' 以生成工具串" +#: cook:1275 +msgid "Run \"%s\" to cook a toolchain" +msgstr "运行 '%s' 以生成工具串" -#: cook:1177 +#: cook:1281 msgid "Cook test: testing the cook environment" -msgstr "生成测试: 正在测试生成环境" +msgstr "生成测试:正在测试生成环境" -#: cook:1187 -#, sh-format -msgid "$pkg package already exists." -msgstr "$pkg 包已存在" +#: cook:1292 +msgid "Package \"%s\" already exists." +msgstr "%s 包已存在" -#: cook:1190 -#, sh-format -msgid "Creating $WOK/$pkg" -msgstr "正在创建 $WOK/$pkg" +#: cook:1296 +msgid "Creating folder \"%s\"" +msgstr "正在创建 %s" -#: cook:1192 +#: cook:1299 msgid "Preparing the package receipt..." msgstr "正预备包清单" -#: cook:1200 +#: cook:1307 msgid "Entering interactive mode..." msgstr "正进入互动模式" -#: cook:1202 -#, sh-format -msgid "Package : $pkg" -msgstr "包 : $pkg" +#: cook:1309 +msgid "Package : %s" +msgstr "包:%s" -#: cook:1203 +#: cook:1311 msgid "Version : " -msgstr "版本 : " +msgstr "版本:" -#: cook:1205 +#: cook:1314 msgid "Category : " -msgstr "分类 : " +msgstr "分类:" #. L10n: Short description -#: cook:1208 +#: cook:1318 msgid "Short desc : " -msgstr "简短描述 : " +msgstr "简短描述:" -#: cook:1210 +#: cook:1321 msgid "Maintainer : " -msgstr "维护者 : " +msgstr "维护者:" -#: cook:1212 +#: cook:1324 msgid "License : " -msgstr "授权 : " +msgstr "授权:" -#: cook:1214 +#: cook:1327 msgid "Web site : " -msgstr "网站 : " +msgstr "网站:" -#: cook:1218 +#: cook:1332 msgid "Wget URL to download source tarball." msgstr "Wget URL 以下载源tarball包" -#: cook:1219 +#: cook:1333 msgid "Example : " -msgstr "例子 : " +msgstr "例子:" -#: cook:1220 +#: cook:1334 msgid "Wget url : " -msgstr "Wget url : " +msgstr "" -#: cook:1223 -msgid "Do you need a stuff directory? (y/N) : " -msgstr "你需要一个stuff目录吗? (y/N) : " +#: cook:1338 +msgid "Do you need a stuff directory? (y/N)" +msgstr "你需要一个stuff目录吗? (y/N)" -#: cook:1225 +#: cook:1340 msgid "Creating the stuff directory..." msgstr "正在创建stuff目录" -#: cook:1229 -msgid "Are you going to write a description? (y/N) : " -msgstr "你想写一个描述吗? (y/N) : " +#: cook:1345 +msgid "Are you going to write a description? (y/N)" +msgstr "你想写一个描述吗? (y/N)" -#: cook:1231 -msgid "Creating the description.txt file..." -msgstr "正在创建 description.txt 文件" +#: cook:1347 +msgid "Creating the \"%s\" file..." +msgstr "正在创建 %s 文件" -#: cook:1234 +#: cook:1351 msgid "Receipt is ready to use." msgstr "清单已可使用" -#: cook:1240 +#: cook:1359 msgid "No list in argument." msgstr "参数里没有清单" -#: cook:1242 -#, sh-format -msgid "No list found: $list2" -msgstr "找不到清单: $list2" +#: cook:1363 +msgid "List \"%s\" not found." +msgstr "找不到清单:%s" -#: cook:1243 -#, sh-format -msgid "Cook list starting: $list2" -msgstr "己在按清单生成: $list2" +#: cook:1367 +msgid "Starting cooking the list \"%s\"" +msgstr "己在按清单生成:%s" -#: cook:1250 +#: cook:1375 msgid "Cleaning all packages files..." msgstr "清除所有包文件" -#: cook:1255 +#: cook:1381 msgid "Cleaning all packages sources..." msgstr "清除所有包源文件" -#: cook:1268 -msgid "Packages directory doesn't exist" -msgstr "包目录不存在" +#: cook:1388 +msgid "Checking for uncooked packages" +msgstr "" -#: cook:1275 +#: cook:1401 +msgid "Package \"%s\"" +msgstr "包%s" + +#: cook:1420 +msgid "%s uncooked package" +msgid_plural "%s uncooked packages" +msgstr[0] "" + +#: cook:1422 +msgid "All packages are cooked :-)" +msgstr "" + +#: cook:1435 +msgid "Packages directory \"%s\" doesn't exist" +msgstr "包目录不存在%s" + +#: cook:1445 msgid "Cook pkgdb: Creating all packages lists" -msgstr "Cook pkgdb: 创建所有包清单" +msgstr "Cook pkgdb:创建所有包清单" -#: cook:1276 -#, sh-format -msgid "Creating lists for: $PKGS" -msgstr "正在为 $PKGS 包创建清单" +#: cook:1446 +msgid "Creating lists for \"%s\"" +msgstr "正在为 %s 包创建清单" -#: cook:1278 -#, sh-format -msgid "Cook pkgdb started: $datenow" -msgstr "已开始生成 pkgdb : $datenow" +#: cook:1448 +msgid "Cook pkgdb started: %s" +msgstr "已开始生成 pkgdb:%s" -#: cook:1281 -msgid "Creating: packages.list" -msgstr "正在创建: packages.list" +#: cook:1454 cook:1457 cook:1523 cook:1535 cook:1540 +msgid "Creating file \"%s\"" +msgstr "正在创建:%s" -#: cook:1283 -msgid "Creating: packages.md5" -msgstr "正在创建: packages.md5" +#: cook:1463 +msgid "Creating lists from \"%s\"" +msgstr "从 %s 创建列表" -#: cook:1286 -#, sh-format -msgid "Creating lists from: $WOK" -msgstr "从 $WOK 创建列表" - -#: cook:1328 -msgid "Done: packages.desc" -msgstr "完成: packages.desc" - -#: cook:1329 -msgid "Done: packages.txt" -msgstr "完成: packages.txt" - -#: cook:1330 -msgid "Done: packages.equiv" -msgstr "完成: packages.equiv" - -#: cook:1333 -msgid "Creating: files.list.lzma" -msgstr "正在创建: files.list.lzma" +#: cook:1516 cook:1517 cook:1518 cook:1529 cook:1547 +msgid "Done: %s (%s)" +msgstr "完成:%s (%s)" #. L10n: 's' is for seconds (cooking time) -#: cook:1342 -#, sh-format -msgid "Packages: $nb - Time: ${time}s" -msgstr "包: $nb - Time: ${time}s" +#: cook:1554 +msgid "Packages: %s - Time: %ss" +msgstr "包:%s - Time:%ss" -#: cook:1348 -#, sh-format -msgid "Missing flavors: $flavors" -msgstr "欠缺设置: $flavors" +#: cook:1563 +msgid "Missing flavors folder \"%s\"" +msgstr "欠缺设置:%s" -#: cook:1350 -#, sh-format -msgid "Creating flavors files in: $live" -msgstr "正在于 $live 创建设置文件" +#: cook:1568 +msgid "Creating flavors files in \"%s\"" +msgstr "正在于 %s 创建设置文件" -#: cook:1351 +#: cook:1569 msgid "Cook pkgdb: Creating all flavors" -msgstr "生成 pkgdb: 正创建所有设置" +msgstr "生成 pkgdb:正创建所有设置" -#: cook:1353 +#: cook:1572 msgid "Recharging lists to use latest packages..." msgstr "重新载入清单以使用最新包" -#: cook:1358 -msgid "Creating configuration file: tazlito.conf" -msgstr "正创建配置文件: tazlito.conf" +#: cook:1577 +msgid "Creating configuration file \"%s\"" +msgstr "正创建配置文件:%s" -#: cook:1368 +#: cook:1589 msgid "Starting to generate flavors..." msgstr "开始生成设置" -#: cook:1373 -#, sh-format -msgid "Packing flavor: $fl" -msgstr "正打包设置: $fl" +#: cook:1593 +msgid "Packing flavor \"%s\"" +msgstr "正打包设置:%s" -#: cook:1381 -#, sh-format -msgid "Flavors size: $fl_size" -msgstr "设置大小: $fl_size" +#: cook:1599 +msgid "Total flavors size: %s" +msgstr "设置大小:%s" -#: cook:1385 -#, sh-format -msgid "Cook pkgdb end: $datenow" -msgstr "生成 pkgdb 完成: $datenow" +#: cook:1602 +msgid "Cook pkgdb end: %s" +msgstr "生成 pkgdb 完成:%s" -#: cook:1412 -#, sh-format -msgid "cook: HOST_ARCH is not set in $pkg receipt" -msgstr "生成: 没有在 $pkg 清单设置 HOST_ARCH" +#: cook:1622 +msgid "cook: HOST_ARCH is not set in \"%s\" receipt" +msgstr "生成:没有在 %s 清单设置 HOST_ARCH" -#: cook:1413 -#, sh-format -msgid "cook: This package is not included in: $ARCH" -msgstr "生成: 本包并不在 $ARCH 内" +#: cook:1623 +msgid "package \"%s\" is not included in %s" +msgstr "%s 并不在 %s 内" -#: cook:1414 cook:1425 -#, sh-format -msgid "bugs: $CROSS_BUGS" -msgstr "bugs: $CROSS_BUGS" +#: cook:1624 cook:1637 cook:1639 +msgid "cook: %s" +msgstr "生成:%s" -#: cook:1415 -#, sh-format -msgid "Cook skip: $pkg is not included in: $ARCH" -msgstr "生成跳过: $pkg 并不在 $ARCH 内" +#: cook:1625 cook:1640 +msgid "bugs: %s" +msgstr "" -#: cook:1423 -#, sh-format -msgid "cook: HOST_ARCH=$HOST_ARCH" -msgstr "生成: HOST_ARCH=$HOST_ARCH" +#: cook:1626 cook:1641 +msgid "Cook skip: %s" +msgstr "生成跳过:%s" -#: cook:1424 -#, sh-format -msgid "cook: $pkg doesn't cook or is not included in: $ARCH" -msgstr "生成: $pkg 并未生成或不在 $ARCH" +#: cook:1634 +msgid "Host arch %s" +msgstr "主机架构%s" -#: cook:1426 -#, sh-format -msgid "Cook skip: $pkg doesn't cook or is not included in: $ARCH" -msgstr "生成跳过: $pkg 并未生成或不在 $ARCH" +#: cook:1638 +msgid "package \"%s\" doesn't cook or is not included in %s" +msgstr "%s 并未生成或不在 %s" -#: cook:1432 -#, sh-format -msgid "Blocked package: $pkg" -msgstr "已封锁包: $pkg" +#: cook:1649 +msgid "Package \"%s\" is blocked" +msgstr "已封锁包:%s" -#: cook:1439 -#, sh-format -msgid "Cook started for: $pkg" -msgstr "已开始生成: $pkg" +#: cook:1656 +msgid "Cook started for: %s" +msgstr "已开始生成:%s" -#: cook:1450 -#, sh-format -msgid "Cleaning: $pkg" -msgstr "正在清理: $pkg" +#: cook:1667 +msgid "Cleaning \"%s\"" +msgstr "正在清理:%s" -#: cook:1456 -#, sh-format -msgid "Getting source for: $pkg" -msgstr "正在取得包源文件: $pkg" +#: cook:1676 +msgid "Getting source for \"%s\"" +msgstr "正在取得包源文件:%s" -#: cook:1458 -#, sh-format -msgid "Tarball: $SRC/$TARBALL" -msgstr "Tarball: $SRC/$TARBALL" +#: cook:1678 +msgid "Tarball: %s" +msgstr "" -#: cook:1461 -#, sh-format -msgid "Blocking: $pkg" -msgstr "正在封锁: $pkg" +#: cook:1682 +msgid "Blocking package \"%s\"" +msgstr "正在封锁:%s" -#: cook:1465 -#, sh-format -msgid "Unblocking: $pkg" -msgstr "取消封锁: $pkg" +#: cook:1688 +msgid "Unblocking package \"%s\"" +msgstr "取消封锁:%s" -#: cook:1475 cook:1479 -#, sh-format -msgid "Need to build $pkg." -msgstr "需要生成 $pkg" +#: cook:1700 cook:1707 +msgid "Need to build \"%s\"" +msgstr "需要生成 %s" -#: cook:1480 +#: cook:1711 msgid "Checking depends" msgstr "正在检查依赖" -#: cook:1507 -#, sh-format -msgid "WANTED package is blocked: $wanted" -msgstr "所请求的包被封锁: $wanted" +#: cook:1742 +msgid "WANTED package \"%s\" is blocked" +msgstr "所请求的包被封锁:%s" -#: cook:1511 -#, sh-format -msgid "WANTED package is broken: $wanted" -msgstr "所请求的包已损坏: $wanted" +#: cook:1748 +msgid "WANTED package \"%s\" is broken" +msgstr "所请求的包已损坏:%s" diff -r c21a7ba0d29c -r da66e6be1add po/zh_TW.po --- a/po/zh_TW.po Sun May 03 19:43:46 2015 +0300 +++ b/po/zh_TW.po Thu May 07 15:11:47 2015 +0300 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Cook 3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-05 15:28+0200\n" +"POT-Creation-Date: 2015-05-07 12:52+0300\n" "PO-Revision-Date: 2014-06-04 03:36+0800\n" "Last-Translator: lunglungyu \n" "Language-Team: Traditional Chinese\n" @@ -17,12 +17,16 @@ "Content-Transfer-Encoding: 8bit\n" #: cook:32 -msgid "\\033[1mUsage:\\033[0m cook [package|command] [list|--option]" -msgstr "\\033[1m用法:\\033[0m cook [package|command] [list|--option]" +msgid "Usage:" +msgstr "用法:" + +#: cook:32 +msgid "cook [package|command] [list|--option]" +msgstr "cook [package|command] [list|--option]" #: cook:34 -msgid "\\033[1mCommands:\\033[0m" -msgstr "\\033[1m命令:\\033[0m" +msgid "Commands:" +msgstr "命令:" #: cook:35 msgid "Display this short usage." @@ -36,910 +40,795 @@ msgid "Setup a cross environment." msgstr "設置交叉環境" -#: cook:38 +#: cook:39 msgid "Test environment and cook a package." msgstr "打包測試環境" -#: cook:39 +#: cook:40 msgid "List packages in the wok." msgstr "列出wok庫內的包" -#: cook:40 +#: cook:41 msgid "Simple packages search function." msgstr "包搜索" -#: cook:41 +#: cook:42 msgid "Create a new package with a receipt." msgstr "根據清單創建新包" -#: cook:42 +#: cook:43 msgid "Cook a list of packages." msgstr "打包清單內的包(packages)" -#: cook:43 +#: cook:44 msgid "Clean-up all packages files." msgstr "清理所有包文件" -#: cook:44 +#: cook:45 msgid "Clean-up all packages sources." msgstr "清理所有包源文檔" -#: cook:45 +#: cook:46 +msgid "Check for uncooked packages" +msgstr "" + +#: cook:47 msgid "Create packages DB lists and flavors." msgstr "創建包數據庫清單及設置" -#: cook:47 -msgid "\\033[1mOptions:\\033[0m" -msgstr "\\033[1m選項:\\033[0m" +#: cook:49 +msgid "Options:" +msgstr "選項:" -#: cook:48 +#: cook:51 msgid "clean the package in the wok." msgstr "清除wok庫內的包" -#: cook:49 +#: cook:52 msgid "cook and install the package." msgstr "編成及安裝包" -#: cook:50 +#: cook:53 msgid "get the package source tarball." msgstr "取得包源壓縮包(tarball)" -#: cook:51 +#: cook:54 msgid "block a package so cook will skip it." msgstr "封鎖及在建成時跳過包" -#: cook:52 +#: cook:55 msgid "unblock a blocked package." msgstr "取消封鎖包" -#: cook:53 +#: cook:56 msgid "check dependencies of cooked package." msgstr "檢查當前包的依賴" -#: cook:54 +#: cook:57 msgid "repack an already built package." msgstr "重新打包" -#: cook:55 +#: cook:58 +msgid "display debugging messages." +msgstr "" + +#: cook:59 +msgid "continue running compile_rules." +msgstr "" + +#: cook:61 msgid "create a receipt interactively." msgstr "互動地創建清單" -#: cook:56 +#: cook:63 msgid "clone the cooking wok from Hg repo." msgstr "由Hg repo.克隆 cooking wok" -#: cook:57 +#: cook:64 msgid "clone the stable wok from Hg repo." msgstr "由Hg repo.克隆 stable wok" -#: cook:58 +#: cook:65 msgid "clone the undigest wok from Hg repo." msgstr "由Hg repo.克隆 undigest wok" -#: cook:59 +#: cook:66 msgid "clone the tiny SliTaz wok from Hg repo." msgstr "由Hg repo.克隆 tiny wok" -#: cook:60 +#: cook:67 msgid "force reinstall of chroot packages." msgstr "強制重新安裝chroot包" -#: cook:61 +#: cook:69 msgid "create up-to-date flavors files." msgstr "創建最新的偏好文件" -#: cook:76 -#, sh-format -msgid "Unable to find package in the wok: $pkg" -msgstr "在wok內找不到包: $pkg" +#: cook:88 +msgid "Unable to find package \"%s\" in the wok" +msgstr "在wok內找不到包:%s" #. L10n: QA is quality assurance -#: cook:84 -#, sh-format -msgid "QA: empty variable: ${var}=\"\"" -msgstr "QA: 空變量: ${var}=\"\"" +#: cook:97 +msgid "QA: empty variable: %s" +msgstr "QA:空變量:%s" -#: cook:91 -#, sh-format -msgid "Creating directories structure in: $SLITAZ" -msgstr "正在創建包結構: $SLITAZ" +#: cook:106 +msgid "Creating directories structure in \"%s\"" +msgstr "正在創建包結構:%s" -#: cook:93 -#, sh-format -msgid "Creating DB files in: $CACHE" -msgstr "在以下資料夾創建數庫庫文件: $CACHE " - -#: cook:102 -msgid "QA: checking package receipt..." -msgstr "QA: 正在檢查包清單" +#: cook:108 +msgid "Creating DB files in \"%s\"" +msgstr "在以下資料夾創建數庫庫文件:%s" #: cook:118 -#, sh-format -msgid "QA: unknown category: $value" -msgstr "QA: unknown category: $value" +msgid "QA: checking package receipt..." +msgstr "QA:正在檢查包清單" -#: cook:119 -#, sh-format -msgid "Please, use one of: $valid" -msgstr "請用以下其中一項: $valid" +#: cook:133 +msgid "QA: unknown category \"%s\"" +msgstr "" -#: cook:128 -#, sh-format -msgid "QA: unable to reach: $value" -msgstr "QA: 無法存取: $value" +#: cook:134 +msgid "Please, use one of: %s" +msgstr "請用以下其中一項:%s" -#: cook:184 -#, sh-format -msgid "Creating tarball: $tarball" -msgstr "創建tarball壓縮包中: $tarball" +#: cook:144 +msgid "QA: unable to reach \"%s\"" +msgstr "QA:無法存取:%s" -#: cook:207 cook:211 -#, sh-format -msgid "ERROR: wget $WGET_URL" -msgstr "錯誤: wget $WGET_URL" +#: cook:204 +msgid "Creating tarball \"%s\"" +msgstr "創建tarball壓縮包中:%s" -#: cook:218 -msgid "Getting source from Hg..." -msgstr "正在Hg中取得源文件" +#: cook:229 cook:234 cook:248 cook:250 cook:260 cook:330 +msgid "ERROR: %s" +msgstr "錯誤:%s" -#: cook:219 cook:233 cook:245 cook:257 -#, sh-format -msgid "URL: $url" -msgstr "URL: $url" +#: cook:242 cook:257 cook:272 cook:285 cook:296 cook:328 +msgid "Getting source from %s..." +msgstr "正在%s中取得源文件" -#: cook:220 -#, sh-format -msgid "Cloning to: $pwd/$pkgsrc" -msgstr "克隆到: $pwd/$pkgsrc" +#: cook:243 cook:258 cook:273 cook:286 cook:329 +msgid "URL: %s" +msgstr "URL:%s" -#: cook:222 -#, sh-format -msgid "Hg branch: $BRANCH" -msgstr "Hg branch: $BRANCH" - -#: cook:224 -#, sh-format -msgid "ERROR: hg clone $url --rev $BRANCH" -msgstr "錯誤: hg clone $url --rev $BRANCH" - -#: cook:226 -#, sh-format -msgid "ERROR: hg clone $url" -msgstr "錯誤: hg clone $url" - -#: cook:232 -msgid "Getting source from Git..." -msgstr "正在由git取得源文件" - -#: cook:234 -#, sh-format -msgid "ERROR: git clone $url" -msgstr "錯誤: git clone $url" - -#: cook:236 -#, sh-format -msgid "Git branch: $BRANCH" -msgstr "Git branch: $BRANCH" - -#: cook:244 -msgid "Getting source from CVS..." -msgstr "正在由CVS取得源文件" +#: cook:244 cook:275 +msgid "Cloning to \"%s\"" +msgstr "克隆到:%s" #: cook:246 -#, sh-format -msgid "CVS module: $mod" -msgstr "CVS 模組: $mod" +msgid "Hg branch: %s" +msgstr "" -#: cook:247 -#, sh-format -msgid "Cloning to: $pwd/$mod" -msgstr "克隆到: $pwd/$mod" +#: cook:262 +msgid "Git branch: %s" +msgstr "" -#: cook:256 -msgid "Getting source from SVN..." -msgstr "正在由SVN取得源文件" +#: cook:274 +msgid "CVS module: %s" +msgstr "CVS 模組:%s" -#: cook:266 -msgid "Getting source from bazaar..." -msgstr "正在由bazaar取得源文件" - -#: cook:276 +#: cook:306 msgid "Don't forget to add to receipt:" msgstr "記得要加到清單" -#: cook:283 -#, sh-format -msgid "ERROR: Unable to handle: $WGET_URL" -msgstr "錯誤: 無法處理: $WGET_URL" +#: cook:314 +msgid "ERROR: Unable to handle \"%s\"" +msgstr "錯誤:無法處理:%s" -#: cook:295 -#, sh-format -msgid "Getting source from mirror: $url" -msgstr "正在由鏡像取得源文件: $url" +#: cook:332 +msgid "Extracting source archive \"%s\"" +msgstr "正在解壓:%s" -#: cook:296 -#, sh-format -msgid "ERROR: wget $url" -msgstr "錯誤: wget $url" +#. L10n: 'm' is for minutes (approximate cooking time) +#: cook:367 +msgid "~ %dm" +msgstr "~ %dm" -#: cook:298 -#, sh-format -msgid "Extracting: $TARBALL" -msgstr "正在解壓: $TARBALL" +#: cook:370 +msgid "Summary for: %s" +msgstr "包摘要:%s" + +#. L10n: keep the same width of translations to get a consistent view +#: cook:374 +msgid "Source dir : %s" +msgstr "源路徑:%s" + +#: cook:375 +msgid "Src file : %s" +msgstr "源文件:%s" + +#: cook:376 +msgid "Src size : %s" +msgstr "源大小:%s" + +#: cook:377 +msgid "Produced : %s" +msgstr "已產生:%s" + +#: cook:378 +msgid "Packed : %s" +msgstr "已打包:%s" + +#: cook:379 +msgid "Compressed : %s" +msgstr "已壓縮:%s" + +#: cook:380 +msgid "Files : %s" +msgstr "文件:%s" + +#. L10n: 's' is for seconds (cooking time) +#: cook:382 +msgid "Cook time : %ds %s" +msgstr "生成時間:%ds %s" + +#: cook:383 +msgid "Cook date : %s" +msgstr "生成日期:%s" + +#: cook:383 cook:395 cook:1448 cook:1602 +msgid "+%%F %%R" +msgstr "+%%F %%R" + +#: cook:384 +msgid "Host arch : %s" +msgstr "主機架構:%s" + +#: cook:392 +msgid "Debug information" +msgstr "除錯資訊" #. L10n: specify your format of date and time (to help: man date) #. L10n: not bad one is '+%x %R' -#: cook:322 cook:349 cook:1277 cook:1384 -msgid "+%Y-%m-%d %H:%M" -msgstr "+%Y-%m-%d %H:%M" - -#. L10n: 'm' is for minutes (approximate cooking time) -#: cook:326 -#, sh-format -msgid "~ ${div}m" -msgstr "~ ${div}m" - -#: cook:327 -#, sh-format -msgid "Summary for: $PACKAGE $VERSION" -msgstr "包摘要: $PACKAGE $VERSION" - -#. L10n: keep the same width of translations to get a consistent view -#: cook:330 -#, sh-format -msgid "Source dir : $srcdir" -msgstr "源路徑 : $srcdir" - -#: cook:331 -#, sh-format -msgid "Src file : $TARBALL" -msgstr "源文件 : $TARBALL" - -#: cook:332 -#, sh-format -msgid "Src size : $srcsize" -msgstr "源大小 : $srcsize" - -#: cook:333 -#, sh-format -msgid "Produced : $prod" -msgstr "已產生 : $prod" - -#: cook:334 -#, sh-format -msgid "Packed : $fs" -msgstr "已打包 : $fs" - -#: cook:335 -#, sh-format -msgid "Compressed : $size" -msgstr "已壓縮 : $size" - -#: cook:336 -#, sh-format -msgid "Files : $files" -msgstr "文件 : $files" - -#. L10n: 's' is for seconds (cooking time) -#: cook:338 -#, sh-format -msgid "Cook time : ${sec}s $min" -msgstr "生成時間 : ${sec}s $min" - -#: cook:339 -#, sh-format -msgid "Cook date : $cookdate" -msgstr "生成日期 : $cookdate" - -#: cook:340 -#, sh-format -msgid "Host arch : $ARCH" -msgstr "主機架構 : $ARXH" - -#: cook:346 -msgid "Debug information" -msgstr "除錯資訊" - -#: cook:350 -#, sh-format -msgid "Cook date: $datenow" -msgstr "生成日期: $datenow" +#: cook:395 +msgid "Cook date: %s" +msgstr "生成日期:%s" #. L10n: Please, translate all messages beginning with ERROR in a same way -#: cook:352 cook:614 cook:711 cook:742 cook:828 cook:1527 +#: cook:397 cook:661 cook:765 cook:799 cook:889 cook:1766 msgid "ERROR" msgstr "錯誤" -#: cook:437 +#: cook:484 msgid "Executing strip on all files..." msgstr "正在為所有文件減肥" -#: cook:450 +#: cook:496 msgid "Removing Python compiled files..." msgstr "正在刪除Python編譯出的文件" -#: cook:458 +#: cook:503 msgid "Removing Perl compiled files..." msgstr "正在刪除Perl編譯出的文件" -#: cook:472 cook:600 -msgid "Build dependencies to remove: " +#: cook:518 cook:647 +msgid "Build dependencies to remove:" msgstr "要刪除的編譯依賴" -#: cook:473 cook:601 +#: cook:520 cook:648 msgid "Removing:" -msgstr "正在刪除:" +msgstr "正在刪除:" -#: cook:487 -#, sh-format -msgid "Cook: $PACKAGE $VERSION" -msgstr "Cook: $PACKAGE $VERSION" +#: cook:535 +msgid "Cook: %s" +msgstr "" -#: cook:501 -#, sh-format -msgid "$ARCH sysroot: $sysroot" -msgstr "$ARCH sysroot: $sysroot" +#: cook:549 +msgid "%s sysroot: %s" +msgstr "" -#: cook:502 -#, sh-format -msgid "Adding $tools/bin to PATH" -msgstr "正將 $tools/bin 加入 PATH" +#: cook:550 +msgid "Adding \"%s\" to PATH" +msgstr "正將 %s 加入 PATH" -#: cook:506 -#, sh-format -msgid "Using cross-tools: $CROSS_COMPILE" -msgstr "正使用cross-tools: $CROSS_COMPILE" +#: cook:554 +msgid "Using cross-tools: %s" +msgstr "正使用cross-tools:%s" -#: cook:528 -#, sh-format -msgid "Disabling -pipe compile flag: $free RAM" -msgstr "正在禁用 -pipe 編譯標誌: $free RAM" +#: cook:578 +msgid "Disabling -pipe compile flag: %d RAM free" +msgstr "正在禁用 -pipe 編譯標誌:%d RAM" -#: cook:545 +#: cook:594 msgid "Checking build dependencies..." msgstr "正在檢查編譯依賴" -#: cook:546 -#, sh-format -msgid "Using packages DB: ${root}$DB" -msgstr "正使用包數據庫: ${root}$DB" +#: cook:595 +msgid "Using packages DB: %s" +msgstr "正使用包數據庫:%s" -#: cook:572 -#, sh-format -msgid "Missing dep (wok/pkg): $i $vers" -msgstr "欠缺依賴 (wok/pkg): $i $vers" +#: cook:619 +msgid "Missing dep (wok/pkg): %s" +msgstr "欠缺依賴 (wok/pkg):%s" -#: cook:580 -#, sh-format -msgid "ERROR: unknown dep $i" -msgstr "錯誤: 未知依賴 $i" +#: cook:627 +msgid "ERROR: unknown dep \"%s\"" +msgstr "錯誤:未知依賴 %s" -#: cook:593 -msgid "Auto cook config is set: AUTO_COOK" -msgstr "自動生成已配置: AUTO_COOK" +#: cook:641 +msgid "Auto cook config is set: %s" +msgstr "自動生成已配置:%s" -#: cook:597 -#, sh-format -msgid "Building dep (wok/pkg) : $i $vers" -msgstr "正在生成依賴 (wok/pkg) : $i $vers" +#: cook:644 +msgid "Building dep (wok/pkg) : %s" +msgstr "正在生成依賴 (wok/pkg):%s" -#: cook:602 -#, sh-format -msgid "ERROR: can't cook dep '$i'" -msgstr "錯誤: 無法生成依賴 '$i'" +#: cook:649 +msgid "ERROR: can't cook dep \"%s\"" +msgstr "錯誤:無法生成依賴 '%s'" -#: cook:617 -#, sh-format -msgid "ERROR: missing dep $nb" -msgstr "錯誤: 欠缺依賴 $nb" +#: cook:664 +msgid "ERROR: missing %d dependency" +msgid_plural "ERROR: missing %d dependencies" +msgstr[0] "錯誤:欠缺依賴 %d" -#: cook:624 -#, sh-format -msgid "Installing dep (pkg/local): $i" -msgstr "正在安裝依賴 (包/本地): $i" +#: cook:671 +msgid "Installing dep (pkg/local): %s" +msgstr "正在安裝依賴 (包/本地):%s" -#: cook:632 -#, sh-format -msgid "Installing dep (web/cache): $i" -msgstr "正在安裝依賴 (在線/緩存): $i" +#: cook:678 +msgid "Installing dep (web/cache): %s" +msgstr "正在安裝依賴 (在線/緩存):%s" -#: cook:682 -msgid "Executing: compile_rules" -msgstr "正執行: 編譯規則" +#: cook:734 cook:789 +msgid "Executing: %s" +msgstr "正執行:%s" -#: cook:699 +#: cook:751 msgid "Running testsuite" msgstr "正運行測試" -#: cook:708 +#: cook:762 msgid "ERROR: cook failed" -msgstr "錯誤: 生成失敗" +msgstr "錯誤:生成失敗" -#: cook:729 -#, sh-format -msgid "Pack: $PACKAGE ${VERSION}${arch}" -msgstr "Pack: $PACKAGE ${VERSION}${arch}" +#: cook:786 +msgid "Pack: %s" +msgstr "" -#: cook:732 -msgid "Executing: genpkg_rules" -msgstr "正在執行: 包生成規則" +#: cook:791 +msgid "ERROR: genpkg_rules failed" +msgstr "錯誤:生成包規則錯誤" -#: cook:734 -msgid "ERROR: genpkg_rules failed" -msgstr "錯誤: 生成包規則錯誤" +#: cook:794 +msgid "No packages rules: meta package" +msgstr "沒有包規則:元包" -#: cook:737 -msgid "No packages rules: meta package" -msgstr "沒有包規則: 元包" +#: cook:807 +msgid "Copying \"%s\"..." +msgstr "正在拷貝 %s..." -#: cook:751 -#, sh-format -msgid "Copying $file..." -msgstr "正在拷貝 $file..." - -#: cook:757 +#: cook:816 msgid "Creating the list of files..." msgstr "正在創建文件清單" -#: cook:768 +#: cook:824 msgid "Creating md5sum of files..." msgstr "正在創建文件md5校驗和" -#: cook:783 -msgid "Compressing the fs..." +#: cook:839 +msgid "Compressing the FS..." msgstr "正在壓縮文件系統" -#: cook:790 +#: cook:847 msgid "Updating receipt sizes..." msgstr "正在更新清單大小" -#: cook:798 -#, sh-format -msgid "Updating receipt EXTRAVERSION: $EXTRAVERSION" -msgstr "正在更新包額外版本: $EXTRAVERSION" +#: cook:855 +msgid "Updating receipt EXTRAVERSION: %s" +msgstr "正在更新包額外版本:%s" -#: cook:805 +#: cook:862 msgid "Creating full cpio archive..." msgstr "正在創建完整cpio壓縮包" -#: cook:809 +#: cook:867 msgid "Restoring original package tree..." msgstr "正復原包樹" -#: cook:817 -#, sh-format -msgid "Package: $tazpkg" -msgstr "包: $tazpkg" +#: cook:876 +msgid "Package \"%s\" created" +msgstr "包:%s" -#: cook:833 +#: cook:895 msgid "QA: checking for empty package..." msgstr "" -#: cook:836 +#: cook:898 msgid "ERROR: empty package" -msgstr "錯誤: 空包" +msgstr "錯誤:空包" -#: cook:844 -#, sh-format -msgid "Removing old: $old_pkg" -msgstr "正在刪除舊包: $old_pkg" +#: cook:906 +msgid "Removing old package \"%s\"" +msgstr "正在刪除舊包:%s" -#: cook:874 +#: cook:940 msgid "Unable to install package, build has failed." msgstr "無法安裝包,生成失敗" -#: cook:883 -#, sh-format -msgid "Updating $ARCH chroot environment..." -msgstr "正在更新 $ARCH chroot 環境" +#: cook:949 +msgid "Updating %s chroot environment..." +msgstr "正在更新 %s chroot 環境" -#: cook:884 -#, sh-format -msgid "Updating chroot: $pkg (${VERSION}${EXTRAVERSION}${arch})" -msgstr "正在更新 chroot: $pkg (${VERSION}${EXTRAVERSION}${arch})" +#: cook:950 +msgid "Updating chroot: %s" +msgstr "正在更新 chroot:%s" -#: cook:905 +#: cook:982 msgid "Setup aufs chroot..." msgstr "正設置 aufs chroot" -#: cook:917 -msgid "Aufs mountage failure" -msgstr "Aufs mountage 錯誤" +#: cook:994 +msgid "Aufs mount failure" +msgstr "Aufs mount 錯誤" -#: cook:928 +#: cook:1006 msgid "Leaving aufs chroot..." msgstr "正離開 aufs chroot..." -#: cook:1030 -#, sh-format -msgid "List of $ARCH packages in: $WOK" -msgstr "$WOK 內的 $ARCH 包清單" +#: cook:1075 +msgid "Multiple choice:" +msgstr "" -#: cook:1046 -msgid "Packages:" -msgstr "包:" +#: cook:1076 +msgid "Select one [%s]: " +msgstr "" -#: cook:1053 -#, sh-format -msgid "Search results for: $query" -msgstr "$query 的搜索結果" +#: cook:1117 +msgid "Getting standard devel files..." +msgstr "" -#: cook:1059 +#: cook:1134 +msgid "List of %s packages in \"%s\"" +msgstr "%2$s 內的 %1$s 包清單" + +#: cook:1150 +msgid "%s package" +msgid_plural "%s packages" +msgstr[0] "包:" + +#: cook:1159 +msgid "Search results for \"%s\"" +msgstr "%s 的搜索結果" + +#: cook:1166 msgid "Cook: setup environment" -msgstr "Cook: 設置環境" +msgstr "Cook:設置環境" -#: cook:1060 +#: cook:1167 msgid "Setting up your environment" msgstr "設置個人環境" -#: cook:1063 +#: cook:1170 msgid "Checking for packages to install..." msgstr "檢查要安裝的包" -#: cook:1069 -msgid "ERROR: cross is not installed" -msgstr "錯誤: 未安裝cross" +#: cook:1176 +msgid "ERROR: %s is not installed" +msgstr "錯誤:未安裝%s" -#: cook:1072 -msgid "Using config file: /etc/slitaz/cross.conf" -msgstr "使用配置文件: /etc/slitaz/cross.conf" +#: cook:1179 +msgid "Using config file: %s" +msgstr "使用配置文件:%s" -#: cook:1097 -msgid "Adding group: slitaz" -msgstr "正在加入組: slitaz" +#: cook:1200 +msgid "Adding group \"%s\"" +msgstr "正在加入組:%s" -#: cook:1100 -msgid "Setting permissions for slitaz group..." -msgstr "正在設置slitaz組的權限" +#: cook:1203 +msgid "Setting permissions for group \"%s\"..." +msgstr "正在設置%s組的權限" -#: cook:1103 +#: cook:1206 msgid "All done, ready to cook packages :-)" msgstr "完成,可以開始生成包 :-)" -#: cook:1116 -#, sh-format -msgid "Cook: setup $arch cross environment" -msgstr "生成: 設置 $arch cross 環境" +#: cook:1221 +msgid "Cook: setup %s cross environment" +msgstr "生成:設置 %s cross 環境" -#: cook:1117 -#, sh-format -msgid "Setting up your $arch cross environment" -msgstr "正在設置你的 $arch cross 環境" +#: cook:1222 +msgid "Setting up your %s cross environment" +msgstr "正在設置你的 %s cross 環境" #. L10n: keep the same width of translations to get a consistent view -#: cook:1148 -#, sh-format -msgid "Target arch : $ARCH" -msgstr "目標架構 : $ARCH" +#: cook:1251 +msgid "Target arch : %s" +msgstr "目標架構:%s" -#: cook:1149 -#, sh-format -msgid "Configure args : $CONFIGURE_ARGS" -msgstr "設置標誌 : $CONFIGURE_ARGS" +#: cook:1252 +msgid "Configure args : %s" +msgstr "設置標誌:%s" -#: cook:1150 -#, sh-format -msgid "Build flags : $flags" -msgstr "編譯標誌 : $flags" +#: cook:1253 +msgid "Build flags : %s" +msgstr "編譯標誌:%s" -#: cook:1151 -#, sh-format -msgid "Arch sysroot : $sysroot" -msgstr "Arch sysroot : $sysroot" +#: cook:1254 +msgid "Arch sysroot : %s" +msgstr "" -#: cook:1152 -#, sh-format -msgid "Tools prefix : $tools/bin" -msgstr "工具前綴 : $tools/bin" +#: cook:1255 +msgid "Tools prefix : %s" +msgstr "工具前綴:%s" -#: cook:1154 -#, sh-format -msgid "Packages DB : ${root}$DB" -msgstr "包數據庫 : ${root}$DB" +#: cook:1257 +msgid "Packages DB : %s" +msgstr "包數據庫:%s" -#: cook:1165 -msgid "WARNING: (e)glibc-base is not installed in sysroot" -msgstr "警告: 並無在sysroot 安裝 (e)glibc-base " +#: cook:1268 +msgid "WARNING: %s is not installed in sysroot" +msgstr "警告:並無在sysroot 安裝 %s" -#: cook:1169 -#, sh-format -msgid "Cross compiler : ${HOST_SYSTEM}-gcc" -msgstr "交叉編譯器 : ${HOST_SYSTEM}-gcc" +#: cook:1272 +msgid "Cross compiler : %s" +msgstr "交叉編譯器:%s" -#: cook:1171 -#, sh-format -msgid "C compiler is missing: ${HOST_SYSTEM}-gcc" -msgstr "欠缺C編譯器: ${HOST_SYSTEM}-gcc" +#: cook:1274 +msgid "C compiler \"%s\" is missing" +msgstr "欠缺C編譯器:%s" -#: cook:1172 -msgid "Run 'cross compile' to cook a toolchain" -msgstr "運行 'cross compile' 以生成工具串" +#: cook:1275 +msgid "Run \"%s\" to cook a toolchain" +msgstr "運行 '%s' 以生成工具串" -#: cook:1177 +#: cook:1281 msgid "Cook test: testing the cook environment" -msgstr "生成測試: 正在測試生成環境" +msgstr "生成測試:正在測試生成環境" -#: cook:1187 -#, sh-format -msgid "$pkg package already exists." -msgstr "$pkg 包已存在" +#: cook:1292 +msgid "Package \"%s\" already exists." +msgstr "%s 包已存在" -#: cook:1190 -#, sh-format -msgid "Creating $WOK/$pkg" -msgstr "正在創建 $WOK/$pkg" +#: cook:1296 +msgid "Creating folder \"%s\"" +msgstr "正在創建 %s" -#: cook:1192 +#: cook:1299 msgid "Preparing the package receipt..." msgstr "正預備包清單" -#: cook:1200 +#: cook:1307 msgid "Entering interactive mode..." msgstr "正進入互動模式" -#: cook:1202 -#, sh-format -msgid "Package : $pkg" -msgstr "包 : $pkg" +#: cook:1309 +msgid "Package : %s" +msgstr "包:%s" -#: cook:1203 +#: cook:1311 msgid "Version : " -msgstr "版本 : " +msgstr "版本:" -#: cook:1205 +#: cook:1314 msgid "Category : " -msgstr "分類 : " +msgstr "分類:" #. L10n: Short description -#: cook:1208 +#: cook:1318 msgid "Short desc : " -msgstr "簡短描述 : " +msgstr "簡短描述:" -#: cook:1210 +#: cook:1321 msgid "Maintainer : " -msgstr "維護者 : " +msgstr "維護者:" -#: cook:1212 +#: cook:1324 msgid "License : " -msgstr "授權 : " +msgstr "授權:" -#: cook:1214 +#: cook:1327 msgid "Web site : " -msgstr "網站 : " +msgstr "網站:" -#: cook:1218 +#: cook:1332 msgid "Wget URL to download source tarball." msgstr "Wget URL 以下載源tarball包" -#: cook:1219 +#: cook:1333 msgid "Example : " -msgstr "例子 : " +msgstr "例子:" -#: cook:1220 +#: cook:1334 msgid "Wget url : " -msgstr "Wget url : " +msgstr "" -#: cook:1223 -msgid "Do you need a stuff directory? (y/N) : " -msgstr "你需要一個stuff目錄嗎? (y/N) : " +#: cook:1338 +msgid "Do you need a stuff directory? (y/N)" +msgstr "你需要一個stuff目錄嗎? (y/N):" -#: cook:1225 +#: cook:1340 msgid "Creating the stuff directory..." msgstr "正在創建stuff目錄" -#: cook:1229 -msgid "Are you going to write a description? (y/N) : " -msgstr "你想寫一個描述嗎? (y/N) : " +#: cook:1345 +msgid "Are you going to write a description? (y/N)" +msgstr "你想寫一個描述嗎? (y/N):" -#: cook:1231 -msgid "Creating the description.txt file..." -msgstr "正在創建 description.txt 文件" +#: cook:1347 +msgid "Creating the \"%s\" file..." +msgstr "正在創建 %s 文件" -#: cook:1234 +#: cook:1351 msgid "Receipt is ready to use." msgstr "清單已可使用" -#: cook:1240 +#: cook:1359 msgid "No list in argument." msgstr "參數裏沒有清單" -#: cook:1242 -#, sh-format -msgid "No list found: $list2" -msgstr "找不到清單: $list2" +#: cook:1363 +msgid "List \"%s\" not found." +msgstr "找不到清單:%s" -#: cook:1243 -#, sh-format -msgid "Cook list starting: $list2" -msgstr "己在按清單生成: $list2" +#: cook:1367 +msgid "Starting cooking the list \"%s\"" +msgstr "己在按清單生成:%s" -#: cook:1250 +#: cook:1375 msgid "Cleaning all packages files..." msgstr "清除所有包文件" -#: cook:1255 +#: cook:1381 msgid "Cleaning all packages sources..." msgstr "清除所有包源文件" -#: cook:1268 -msgid "Packages directory doesn't exist" -msgstr "包目錄不存在" - -#: cook:1275 -msgid "Cook pkgdb: Creating all packages lists" -msgstr "Cook pkgdb: 創建所有包清單" - -#: cook:1276 -#, sh-format -msgid "Creating lists for: $PKGS" -msgstr "正在為 $PKGS 包創建清單" - -#: cook:1278 -#, sh-format -msgid "Cook pkgdb started: $datenow" -msgstr "已開始生成 pkgdb : $datenow" - -#: cook:1281 -msgid "Creating: packages.list" -msgstr "正在創建: packages.list" - -#: cook:1283 -msgid "Creating: packages.md5" -msgstr "正在創建: packages.md5" - -#: cook:1286 -#, sh-format -msgid "Creating lists from: $WOK" +#: cook:1388 +msgid "Checking for uncooked packages" msgstr "" -#: cook:1328 -msgid "Done: packages.desc" -msgstr "完成: packages.desc" +#: cook:1401 +msgid "Package \"%s\"" +msgstr "包%s" -#: cook:1329 -msgid "Done: packages.txt" -msgstr "完成: packages.txt" +#: cook:1420 +msgid "%s uncooked package" +msgid_plural "%s uncooked packages" +msgstr[0] "" -#: cook:1330 -msgid "Done: packages.equiv" -msgstr "完成: packages.equiv" +#: cook:1422 +msgid "All packages are cooked :-)" +msgstr "" -#: cook:1333 -msgid "Creating: files.list.lzma" -msgstr "正在創建: files.list.lzma" +#: cook:1435 +msgid "Packages directory \"%s\" doesn't exist" +msgstr "包目錄不存在%s" + +#: cook:1445 +msgid "Cook pkgdb: Creating all packages lists" +msgstr "Cook pkgdb:創建所有包清單" + +#: cook:1446 +msgid "Creating lists for \"%s\"" +msgstr "正在為 %s 包創建清單" + +#: cook:1448 +msgid "Cook pkgdb started: %s" +msgstr "已開始生成 pkgdb:%s" + +#: cook:1454 cook:1457 cook:1523 cook:1535 cook:1540 +msgid "Creating file \"%s\"" +msgstr "正在創建:%s" + +#: cook:1463 +msgid "Creating lists from \"%s\"" +msgstr "" + +#: cook:1516 cook:1517 cook:1518 cook:1529 cook:1547 +msgid "Done: %s (%s)" +msgstr "完成:%s (%s)" #. L10n: 's' is for seconds (cooking time) -#: cook:1342 -#, sh-format -msgid "Packages: $nb - Time: ${time}s" -msgstr "包: $nb - Time: ${time}s" +#: cook:1554 +msgid "Packages: %s - Time: %ss" +msgstr "包:%s - Time:%ss" -#: cook:1348 -#, sh-format -msgid "Missing flavors: $flavors" -msgstr "欠缺設置: $flavors" +#: cook:1563 +msgid "Missing flavors folder \"%s\"" +msgstr "欠缺設置:%s" -#: cook:1350 -#, sh-format -msgid "Creating flavors files in: $live" -msgstr "正在於 $live 創建設置文件" +#: cook:1568 +msgid "Creating flavors files in \"%s\"" +msgstr "正在於 %s 創建設置文件" -#: cook:1351 +#: cook:1569 msgid "Cook pkgdb: Creating all flavors" -msgstr "生成 pkgdb: 正創建所有設置" +msgstr "生成 pkgdb:正創建所有設置" -#: cook:1353 +#: cook:1572 msgid "Recharging lists to use latest packages..." msgstr "重新載入清單以使用最新包" -#: cook:1358 -msgid "Creating configuration file: tazlito.conf" -msgstr "正創建配置文件: tazlito.conf" +#: cook:1577 +msgid "Creating configuration file \"%s\"" +msgstr "正創建配置文件:%s" -#: cook:1368 +#: cook:1589 msgid "Starting to generate flavors..." msgstr "開始生成設置" -#: cook:1373 -#, sh-format -msgid "Packing flavor: $fl" -msgstr "正打包設置: $fl" +#: cook:1593 +msgid "Packing flavor \"%s\"" +msgstr "正打包設置:%s" -#: cook:1381 -#, sh-format -msgid "Flavors size: $fl_size" -msgstr "設置大小: $fl_size" +#: cook:1599 +msgid "Total flavors size: %s" +msgstr "設置大小:%s" -#: cook:1385 -#, sh-format -msgid "Cook pkgdb end: $datenow" -msgstr "生成 pkgdb 完成: $datenow" +#: cook:1602 +msgid "Cook pkgdb end: %s" +msgstr "生成 pkgdb 完成:%s" -#: cook:1412 -#, sh-format -msgid "cook: HOST_ARCH is not set in $pkg receipt" -msgstr "生成: 沒有在 $pkg 清單設置 HOST_ARCH" +#: cook:1622 +msgid "cook: HOST_ARCH is not set in \"%s\" receipt" +msgstr "生成:沒有在 %s 清單設置 HOST_ARCH" -#: cook:1413 -#, sh-format -msgid "cook: This package is not included in: $ARCH" -msgstr "生成: 本包並不在 $ARCH 內" +#: cook:1623 +msgid "package \"%s\" is not included in %s" +msgstr "%s 並不在 %s 內" -#: cook:1414 cook:1425 -#, sh-format -msgid "bugs: $CROSS_BUGS" -msgstr "bugs: $CROSS_BUGS" +#: cook:1624 cook:1637 cook:1639 +msgid "cook: %s" +msgstr "生成:%s" -#: cook:1415 -#, sh-format -msgid "Cook skip: $pkg is not included in: $ARCH" -msgstr "生成跳過: $pkg 並不在 $ARCH 內" +#: cook:1625 cook:1640 +msgid "bugs: %s" +msgstr "" -#: cook:1423 -#, sh-format -msgid "cook: HOST_ARCH=$HOST_ARCH" -msgstr "生成: HOST_ARCH=$HOST_ARCH" +#: cook:1626 cook:1641 +msgid "Cook skip: %s" +msgstr "生成跳過:%s" -#: cook:1424 -#, sh-format -msgid "cook: $pkg doesn't cook or is not included in: $ARCH" -msgstr "生成: $pkg 並未生成或不在 $ARCH" +#: cook:1634 +msgid "Host arch %s" +msgstr "主機架構%s" -#: cook:1426 -#, sh-format -msgid "Cook skip: $pkg doesn't cook or is not included in: $ARCH" -msgstr "生成跳過: $pkg 並未生成或不在 $ARCH" +#: cook:1638 +msgid "package \"%s\" doesn't cook or is not included in %s" +msgstr "%s 並未生成或不在 %s" -#: cook:1432 -#, sh-format -msgid "Blocked package: $pkg" -msgstr "已封鎖包: $pkg" +#: cook:1649 +msgid "Package \"%s\" is blocked" +msgstr "已封鎖包:%s" -#: cook:1439 -#, sh-format -msgid "Cook started for: $pkg" -msgstr "已開始生成: $pkg" +#: cook:1656 +msgid "Cook started for: %s" +msgstr "已開始生成:%s" -#: cook:1450 -#, sh-format -msgid "Cleaning: $pkg" -msgstr "正在清理: $pkg" +#: cook:1667 +msgid "Cleaning \"%s\"" +msgstr "正在清理:%s" -#: cook:1456 -#, sh-format -msgid "Getting source for: $pkg" -msgstr "正在取得包源文件: $pkg" +#: cook:1676 +msgid "Getting source for \"%s\"" +msgstr "正在取得包源文件:%s" -#: cook:1458 -#, sh-format -msgid "Tarball: $SRC/$TARBALL" -msgstr "Tarball: $SRC/$TARBALL" +#: cook:1678 +msgid "Tarball: %s" +msgstr "" -#: cook:1461 -#, sh-format -msgid "Blocking: $pkg" -msgstr "正在封鎖: $pkg" +#: cook:1682 +msgid "Blocking package \"%s\"" +msgstr "正在封鎖:%s" -#: cook:1465 -#, sh-format -msgid "Unblocking: $pkg" -msgstr "取消封鎖: $pkg" +#: cook:1688 +msgid "Unblocking package \"%s\"" +msgstr "取消封鎖:%s" -#: cook:1475 cook:1479 -#, sh-format -msgid "Need to build $pkg." -msgstr "需要生成 $pkg" +#: cook:1700 cook:1707 +msgid "Need to build \"%s\"" +msgstr "需要生成 %s" -#: cook:1480 +#: cook:1711 msgid "Checking depends" msgstr "正在檢查依賴" -#: cook:1507 -#, sh-format -msgid "WANTED package is blocked: $wanted" -msgstr "所請求的包被封鎖: $wanted" +#: cook:1742 +msgid "WANTED package \"%s\" is blocked" +msgstr "所請求的包被封鎖:%s" -#: cook:1511 -#, sh-format -msgid "WANTED package is broken: $wanted" -msgstr "所請求的包已損壞: $wanted" +#: cook:1748 +msgid "WANTED package \"%s\" is broken" +msgstr "所請求的包已損壞:%s" diff -r c21a7ba0d29c -r da66e6be1add web/cooker.cgi --- a/web/cooker.cgi Sun May 03 19:43:46 2015 +0300 +++ b/web/cooker.cgi Thu May 07 15:11:47 2015 +0300 @@ -23,7 +23,7 @@ # We're not logged and want time zone to display correct server date. export TZ=$(cat /etc/TZ) -if [ "${QUERY_STRING%%=*}" == "download" ]; then +if [ "${QUERY_STRING%%=*}" == 'download' ]; then file=$(busybox httpd -d "$PKGS/${QUERY_STRING#*=}") cat < @@ -57,22 +57,24 @@ $pubdate EOT - for rss in $(ls -lt $FEEDS/*.xml | head -n 12) - do + for rss in $(ls -lt $FEEDS/*.xml | head -n 12); do cat $rss | sed 's| EOT exit 0 fi + # # Functions # + # Put some colors in log and DB files. + syntax_highlighter() { case $1 in log) @@ -89,49 +91,57 @@ -e s"#^[a-zA-Z0-9]\([^']*\) :: #\0#"g \ -e s"#ftp://[^ '\"]*#\0#"g \ -e s"#http://[^ '\"]*#\0#"g ;; + receipt) sed -e s'|&|\&|g' -e 's|<|\<|g' -e 's|>|\>|'g \ -e s"#^\#\([^']*\)#\0#"g \ -e s"#\"\([^']*\)\"#\0#"g ;; + diff) sed -e 's|&|\&|g' -e 's|<|\<|g' -e 's|>|\>|g' \ -e s"#^-\([^']*\).#\0#"g \ -e s"#^+\([^']*\).#\0#"g \ -e s"#@@\([^']*\)@@#@@\1@@#"g ;; + activity) sed s"#^\([^']* : \)#\0#"g ;; esac } + # Latest build pkgs. + list_packages() { cd $PKGS ls -1t *.tazpkg | head -20 | \ - while read file - do + while read file; do echo -n $(stat -c '%y' $PKGS/$file | cut -d . -f 1 | sed s/:[0-9]*$//) echo " : $file" done } + # Optional full list button + more_button() { [ $(wc -l < ${3:-$CACHE/$1}) -gt ${4:-12} ] && echo "$2" } + # xHTML header. Pages can be customized with a separated html.header file. + if [ -f "header.html" ]; then cat header.html else - cat << EOT + cat < - + + SliTaz Cooker - - - + + @@ -145,6 +155,7 @@ EOT fi + # # Load requested page # @@ -161,8 +172,10 @@ echo "receipt" unset WEB_SITE . $wok/$pkg/receipt + [ -n "$WEB_SITE" ] && # busybox wget -s $WEB_SITE && echo "home" + if [ -f "$wok/$pkg/taz/$PACKAGE-$VERSION/receipt" ]; then echo "files" unset EXTRAVERSION @@ -208,28 +221,29 @@ echo "
The Cooker is currently building: $pkg
" fi if fgrep -q "Summary for:" $LOGS/$pkg.log; then - echo "

Cook summary

" + echo '

Cook summary

' echo '
'
 				grep -A 12 "^Summary for:" $LOGS/$pkg.log | sed /^$/d | \
 					syntax_highlighter log
 				echo '
' fi if fgrep -q "Debug information" $LOGS/$pkg.log; then - echo "

Cook failed

" + echo '

Cook failed

' echo '
'
 				grep -A 8 "^Debug information" $LOGS/$pkg.log | sed /^$/d | \
 						syntax_highlighter log
 				echo '
' fi - echo "

Cook log

" + echo '

Cook log

' echo '
'
 			cat $log | syntax_highlighter log
 			echo '
' else [ "$pkg" ] && echo "
No log: $pkg
" fi ;; + file=*) - # Dont allow all files on the system for security reasons. + # Don't allow all files on the system for security reasons. file=${QUERY_STRING#file=} case "$file" in activity|cooknotes|cooklist) @@ -239,6 +253,7 @@ echo '
'
 				tac $CACHE/$file | syntax_highlighter activity
 				echo '
' ;; + broken) nb=$(cat $broken | wc -l) echo "

DB: broken - Packages: $nb

" @@ -246,6 +261,7 @@ cat $CACHE/$file | sort | \ sed s"#^[^']*#\0#"g echo '' ;; + *.diff) diff=$CACHE/$file echo "

Diff for: ${file%.diff}

" @@ -255,6 +271,7 @@ echo '
'
 				cat $diff | syntax_highlighter diff
 				echo '
' ;; + *.log) log=$LOGS/$file name=$(basename $log) @@ -273,12 +290,14 @@ echo "
No log file: $log
" fi ;; esac ;; + stuff=*) file=${QUERY_STRING#stuff=} echo "

$file

" echo '
'
 		cat $wok/$file | sed 's/&/\&/g;s//\>/g'
 		echo '
' ;; + receipt=*) pkg=${QUERY_STRING#receipt=} echo "

Receipt for: $pkg

" @@ -294,6 +313,7 @@ else echo "
No receipt for: $pkg
" fi ;; + files=*) pkg=${QUERY_STRING#files=} dir=$(ls -d $WOK/$pkg/taz/$pkg-*) @@ -306,6 +326,7 @@ else echo "
No files list for: $pkg
" fi ;; + description=*) pkg=${QUERY_STRING#description=} echo "

Description of $pkg

" @@ -318,6 +339,7 @@ else echo "
No description for: $pkg
" fi ;; + *) # We may have a toolchain.cgi script for cross cooker's if [ -f "toolchain.cgi" ]; then @@ -332,7 +354,7 @@ unbuilt=$(($inwok - $cooked)) pct=0 [ $inwok -gt 0 ] && pct=$(( ($cooked * 100) / $inwok )) - cat << EOT + cat <
Package: @@ -352,8 +374,8 @@

- Packages: $inwok in the wok - $cooked cooked - $unbuilt unbuilt - - Server date: $(date -u '+%Y-%m-%d %H:%M %Z') + Packages: $inwok in the wok | $cooked cooked | $unbuilt unbuilt | + Server date: $(date -u '+%F %R %Z')

${pct}%
@@ -368,48 +390,48 @@ toolchain

- -

Activity

+ +

Activity

 $(tac $CACHE/activity | head -n 12 | syntax_highlighter activity)
 
$(more_button activity "More activity" $CACHE/activity 12) - -

Cooknotes

+ +

Cooknotes

 $(tac $cooknotes | head -n 12 | syntax_highlighter activity)
 
$(more_button cooknotes "More notes" $cooknotes 12) - -

Commits

+ +

Commits

 $(cat $commits)
 
- -

Cooklist

+ +

Cooklist

 $(cat $cooklist | head -n 20)
 
$(more_button cooklist "Full cooklist" $cooklist 20) - -

Broken

+ +

Broken

 $(cat $broken | head -n 20 | sed s"#^[^']*#\0#"g)
 
$(more_button broken "All broken packages" $broken 20) - -

Blocked

+ +

Blocked

 $(cat $blocked | sed s"#^[^']*#\0#"g)
 
- -

Latest cook

+ +

Latest cook

 $(list_packages | sed s"#^\([^']*\).* : #\0#"g)
 
@@ -417,8 +439,10 @@ ;; esac + # Close xHTML page -cat << EOT + +cat <