diff options
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | doc/makepkg.8.txt | 4 | ||||
-rw-r--r-- | po/ru.po | 111 | ||||
-rw-r--r-- | scripts/makepkg.sh.in | 62 |
4 files changed, 107 insertions, 75 deletions
diff --git a/configure.ac b/configure.ac index b2164b9e..2c08d790 100644 --- a/configure.ac +++ b/configure.ac @@ -144,6 +144,11 @@ if test "x$internaldownload" = "xyes" ; then # Check for a download library if it was actually requested AC_CHECK_LIB([fetch], [fetchParseURL], , AC_MSG_ERROR([libfetch is needed to compile with internal download support]) ) + # Check if libfetch supports conditional GET + # (version >=2.21, struct url has member last_modified) + AC_CHECK_MEMBER(struct url.last_modified, , + AC_MSG_ERROR([libfetch must be version 2.21 or greater]), + [#include <fetch.h>] ) else AC_MSG_RESULT(no) fi diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt index e480d8e3..ad78ffcb 100644 --- a/doc/makepkg.8.txt +++ b/doc/makepkg.8.txt @@ -86,6 +86,10 @@ Options linkman:makepkg.conf[5]. This output can be redirected into your PKGBUILD for source validation using "`makepkg -g >> PKGBUILD`". +*--skipinteg*:: + Do not fail when the PKGBUILD does not contain any integrity checks, just + print a warning instead. + *-h, \--help*:: Output syntax and command line options. @@ -1,14 +1,14 @@ # Pacman Russian Translation # Copyright (C) 2007 Judd Vinet <jvinet@zeroflux.org> # This file is distributed under the same license as the Pacman package. -# Vladimir Bayrakovskiy <4rayven@gmail.com>, Vitaly Dolgov <ferhiord@gmail.com>, 2007 -# Sergey Tereschenko <serg.partizan@gmail.com> 2009 +# Vladimir Bayrakovskiy <4rayven@gmail.com> 2008 +# Vitaly Dolgov <ferhiord@gmail.com>, Sergey Tereschenko <serg.partizan@gmail.com> 2009 msgid "" msgstr "" "Project-Id-Version: Pacman package manager 3.3.0\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" "POT-Creation-Date: 2009-07-28 07:00-0500\n" -"PO-Revision-Date: 2009-08-02 17:32+0200\n" +"PO-Revision-Date: 2009-08-19 22:47+0200\n" "Last-Translator: Sergey Tereschenko <serg.partizan@gmail.com>\n" "Language-Team: Russian\n" "MIME-Version: 1.0\n" @@ -145,83 +145,83 @@ msgstr "Неизвестно" #, c-format msgid "Name :" -msgstr "Название :" +msgstr "Название :" #, c-format msgid "Version :" -msgstr "Версия :" +msgstr "Версия :" #, c-format msgid "URL :" -msgstr "URL :" +msgstr "URL :" #, c-format msgid "Licenses :" -msgstr "Лицензии :" +msgstr "Лицензии :" #, c-format msgid "Groups :" -msgstr "Группы :" +msgstr "Группы :" #, c-format msgid "Provides :" -msgstr "Предоставляет :" +msgstr "Предоставляет :" #, c-format msgid "Depends On :" -msgstr "Зависит от :" +msgstr "Зависит от :" #, c-format msgid "Optional Deps :" -msgstr "Дополнительные зависимости :" +msgstr "Дополнительно :" #, c-format msgid "Required By :" -msgstr "Требуется пакетами :" +msgstr "Требуется пакетами :" #, c-format msgid "Conflicts With :" -msgstr "Конфликтует с :" +msgstr "Конфликтует с :" #, c-format msgid "Replaces :" -msgstr "Заменяет :" +msgstr "Заменяет :" #, c-format msgid "Download Size : %6.2f K\n" -msgstr "Будет загружено : %6.2f K\n" +msgstr "Будет загружено : %6.2f K\n" #, c-format msgid "Compressed Size: %6.2f K\n" -msgstr "Размер архива : %6.2f K\n" +msgstr "Размер архива : %6.2f K\n" #, c-format msgid "Installed Size : %6.2f K\n" -msgstr "Размер установленного : %6.2f K\n" +msgstr "Размер установленного : %6.2f K\n" #, c-format msgid "Packager :" -msgstr "Сборщик :" +msgstr "Сборщик :" #, c-format msgid "Architecture :" -msgstr "Архитектура :" +msgstr "Архитектура :" #, c-format msgid "Build Date :" -msgstr "Дата сборки :" +msgstr "Дата сборки :" #, c-format msgid "Install Date :" -msgstr "Дата установки :" +msgstr "Дата установки :" #, c-format msgid "Install Reason :" -msgstr "Причина установки :" +msgstr "Причина установки :" #, c-format msgid "Install Script :" -msgstr "Установочный скрипт :" +msgstr "Установочный скрипт :" #, c-format msgid "Yes" @@ -233,15 +233,15 @@ msgstr "No" #, c-format msgid "MD5 Sum :" -msgstr "MD5-сумма :" +msgstr "MD5-сумма :" #, c-format msgid "Description :" -msgstr "Описание :" +msgstr "Описание :" #, c-format msgid "Repository :" -msgstr "Репозиторий :" +msgstr "Репозиторий :" #, c-format msgid "Backup Files:\n" @@ -362,7 +362,7 @@ msgstr " -c, --changelog показать список изменений msgid "" " -d, --deps list packages installed as dependencies [filter]\n" msgstr "" -" -d, --deps показать все пакеты установленные как зависимости " +" -d, --deps показать все пакеты, установленные как зависимости " "[фильтр]\n" #, c-format @@ -403,7 +403,7 @@ msgstr "" #, c-format msgid " -o, --owns <file> query the package that owns <file>\n" -msgstr " -o, --owns <файл> найти пакет содержащий <файл>\n" +msgstr " -o, --owns <файл> найти пакет, содержащий <файл>\n" #, c-format msgid " -p, --file <package> query a package file instead of the database\n" @@ -423,7 +423,7 @@ msgstr "" msgid "" " -t, --unrequired list packages not required by any package [filter]\n" msgstr "" -" -t, --unrequired показать все пакеты не используемые ни одним пакетом " +" -t, --unrequired показать все пакеты, не используемые ни одним пакетом " "[фильтр]\n" #, c-format @@ -501,7 +501,7 @@ msgid "" " ignore a group upgrade (can be used more than once)\n" msgstr "" " --ignoregroup <группа>\n" -" пропустить группу при обновлении (может быть " +" пропустить группу при обновлении (может быть " "использовано неоднократно)\n" #, c-format @@ -828,7 +828,7 @@ msgstr "пропуск цели: %s\n" #, c-format msgid "%s package not found, searching for group...\n" -msgstr "%s пакет не найдет, поиск группы...\n" +msgstr "%s пакет не найден, поиск группы...\n" #, c-format msgid ":: group %s (including ignored packages):\n" @@ -856,7 +856,7 @@ msgstr " локальная база данных не устарела\n" #, c-format msgid "no database for package: %s\n" -msgstr "нету базы данных для пакета: %s\n" +msgstr "нет базы данных для пакета: %s\n" #, c-format msgid "Proceed with download?" @@ -895,7 +895,7 @@ msgid "" ":: Do you want to cancel the current operation\n" ":: and upgrade these packages now?" msgstr "" -":: Хотите прервать текущую операцию и\n" +":: Хотите прервать текущую операцию\n" ":: и обновить эти пакеты сейчас?" #, c-format @@ -928,7 +928,7 @@ msgstr "не удалось продолжить запрос (%s)\n" #, c-format msgid "None" -msgstr "Нету" +msgstr "Нет" #, c-format msgid "Targets (%d):" @@ -1082,16 +1082,18 @@ msgid "NOT FOUND" msgstr "НЕ НАЙДЕНО" msgid "Passed" -msgstr "Пройден" +msgstr "Готово" msgid "FAILED" msgstr "СБОЙ" msgid "One or more files did not pass the validity check!" -msgstr "Один или более файлов не прошли проверку на соответствие!" +msgstr "Один или более файлов не прошли проверку целостности!" msgid "Integrity checks (%s) differ in size from the source array." -msgstr "Файл (%s) не прошел проверку целостности." +msgstr "" +"Количество контрольных сумм (%s) не совпадает с количеством файлов в source" +"()." msgid "Integrity checks are missing." msgstr "Проверки целостности не выполняются." @@ -1169,7 +1171,7 @@ msgid "Failed to create package file." msgstr "Не удалось создать файл пакета." msgid "Creating source package..." -msgstr "Создание пакета с исходными кодами..." +msgstr "Создание пакета с исходным кодом..." msgid "Adding %s..." msgstr "Добавление %s... " @@ -1181,7 +1183,7 @@ msgid "Compressing source package..." msgstr "Сжатие исходного пакета..." msgid "Failed to create source package file." -msgstr "Не удалось создать пакет с исходными кодами." +msgstr "Не удалось создать пакет с исходным кодом." msgid "Failed to install built package(s)." msgstr "Не удалось установить собранные пакеты." @@ -1253,7 +1255,7 @@ msgid "Options:" msgstr "Параметры:" msgid " -A, --ignorearch Ignore incomplete arch field in %s" -msgstr " -А --ignorearch Игнорировать неполное поле arch в %s" +msgstr " -А, --ignorearch Игнорировать неполное поле arch в %s" msgid " -c, --clean Clean up work files after build" msgstr " -c, --clean Удалять оставшиеся после сборки ненужные фалы" @@ -1278,8 +1280,8 @@ msgstr " -f, --force Переписать существующий пак msgid " -g, --geninteg Generate integrity checks for source files" msgstr "" -" -g, --geninteg Генерировать информацию для проверки целостности исходных " -"файлов" +" -g, --geninteg Посчитать контрольные суммы для проверки целостности " +"исходных файлов" msgid " -h, --help This help" msgstr " -h, --help Эта помощь" @@ -1316,8 +1318,7 @@ msgid "" " --allsource Generate a source-only tarball including downloaded " "sources" msgstr "" -" --allsource Создать архив с исходными кодами, включая загруженные " -"файлы" +" --allsource Создать архив с исходным кодом, включая загруженные файлы" msgid " --asroot Allow makepkg to run as root user" msgstr " --asroot Позволить запуск makepkg от имени root" @@ -1326,13 +1327,13 @@ msgid "" " --holdver Prevent automatic version bumping for development " "PKGBUILDs" msgstr "" -" --holdver Не допускать автоматического изменения версий для " -"PKGBUILDов находящихся в разработке" +" --holdver Не допускать автоматического изменения версий в " +"PKGBUILD'ах пакетов из svn/cvs/etc" msgid "" " --source Generate a source-only tarball without downloaded sources" msgstr "" -" --source Создать архив с исходными кодами, без загруженных файлов" +" --source Создать архив с исходным кодом, без загруженных файлов" msgid "These options can be passed to pacman:" msgstr "Следующие параметры могут быть переданы pacman:" @@ -1379,30 +1380,30 @@ msgid "Problem removing files; you may not have correct permissions in %s" msgstr "Не удалось удалить файлы; возможно, у вас недостаточно привилегий в %s" msgid "Source cache cleaned." -msgstr "Кэш с исходными кодами очищен." +msgstr "Кэш очищен от исходных файлов." msgid "No files have been removed." msgstr "Файлы не были удалены." msgid "Source destination must be defined in %s." -msgstr "Расположение исходных текстов должно быть указано в %s." +msgstr "Расположение исходных файлов должно быть указано в %s." msgid "In addition, please run makepkg -C outside of your cache directory." msgstr "Дополнительно, запустите makepkg -C вне каталога для кэша." msgid "Running makepkg as root is a BAD idea and can cause" -msgstr "Запуск makepkg от имени root -- ОЧЕНЬ плохая идея и может" +msgstr "Запуск makepkg от имени root -- ОЧЕНЬ ПЛОХАЯ идея и может" msgid "permanent, catastrophic damage to your system. If you" msgstr "повлечь за собой непоправимое повреждение вашей системы." msgid "wish to run as root, please use the --asroot option." msgstr "" -"если вы хотите запустить makepkg от имени root, \n" +"Если вы хотите запустить makepkg от имени root, \n" "используйте параметр --asroot." msgid "The --asroot option is meant for the root user only." -msgstr "параметр --asroot имеет значение только для пользователя root." +msgstr "Параметр --asroot имеет значение только для пользователя root." msgid "Please rerun makepkg without the --asroot flag." msgstr "Перезапустите makepkg без флага --asroot." @@ -1429,7 +1430,7 @@ msgstr "" "makepkg." msgid "Cannot find the sudo binary! Is sudo installed?" -msgstr "Не удалось найти бинарный файл sudo! Установлен ли sudo?" +msgstr "Не удалось найти бинарный файл sudo!" msgid "Missing dependencies cannot be installed or removed as a normal user" msgstr "Недостающие зависимости не могут быть установлены или удалены от имени" @@ -1468,7 +1469,7 @@ msgid "Making package: %s" msgstr "Сборка пакета: %s" msgid "Source package created: %s" -msgstr "Создан пакет с исходными кодами: %s" +msgstr "Создан пакет с исходным кодом: %s" msgid "Skipping dependency checks." msgstr "Пропуск проверки зависимостей." @@ -1680,7 +1681,7 @@ msgid "Adding delta '%s'" msgstr "Добавление дельты '%s'" msgid "Cannot find the xdelta3 binary! Is xdelta3 installed?" -msgstr "Не удалось найти бинарный файл xdelta3! xdelta3 установлен?" +msgstr "Не удалось найти бинарный файл xdelta3!" msgid "'%s' is not a package file, skipping" msgstr "'%s' не является пакетом, пропускается" diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index daa95856..8bf39efa 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -1,6 +1,6 @@ #!/bin/bash -e # -# makepkg - make packages compatable for use with pacman +# makepkg - make packages compatible for use with pacman # @configure_input@ # # Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org> @@ -58,6 +58,7 @@ DEP_BIN=0 FORCE=0 INFAKEROOT=0 GENINTEG=0 +SKIPINTEG=0 INSTALL=0 NOBUILD=0 NODEPS=0 @@ -177,7 +178,7 @@ clean_up() { trap 'clean_up' 0 trap 'trap_exit "$(gettext "TERM signal caught. Exiting...")"' TERM HUP QUIT trap 'trap_exit "$(gettext "Aborted by user! Exiting...")"' INT -trap 'trap_exit "$(gettext "An unknown error has occured. Exiting...")"' ERR +trap 'trap_exit "$(gettext "An unknown error has occurred. Exiting...")"' ERR # a source entry can have two forms : # 1) "filename::http://path/to/file" @@ -187,11 +188,11 @@ trap 'trap_exit "$(gettext "An unknown error has occured. Exiting...")"' ERR get_filename() { # if a filename is specified, use it local filename=$(echo $1 | sed 's|::.*||') - # if it is just an url, we only keep the last component + # if it is just an URL, we only keep the last component echo "$filename" | sed 's|^.*://.*/||g' } -# extract the url from a source entry +# extract the URL from a source entry get_url() { # strip an eventual filename echo $1 | sed 's|.*::||' @@ -278,7 +279,7 @@ in_array() { } get_downloadclient() { - # $1 = url with valid protocol prefix + # $1 = URL with valid protocol prefix local url=$1 local proto=$(echo "$url" | sed 's|://.*||') @@ -314,11 +315,11 @@ get_downloadclient() { download_file() { # download command local dlcmd=$1 - # url of the file + # URL of the file local url=$2 # destination file local file=$3 - # temporary download file, default to last component of the url + # temporary download file, default to last component of the URL local dlfile=$(echo "$url" | sed 's|^.*://.*/||g') # replace %o by the temporary dlfile if it exists @@ -326,7 +327,7 @@ download_file() { dlcmd=${dlcmd//\%o/\"$file.part\"} dlfile="$file.part" fi - # add the url, either in place of %u or at the end + # add the URL, either in place of %u or at the end if echo "$dlcmd" | grep -q "%u" ; then dlcmd=${dlcmd//\%u/\"$url\"} else @@ -613,8 +614,12 @@ check_checksums() { done if [ $correlation -eq 0 ]; then - error "$(gettext "Integrity checks are missing.")" - exit 1 # TODO: error code + if [ $SKIPINTEG -eq 1 ]; then + warning "$(gettext "Integrity checks are missing.")" + else + error "$(gettext "Integrity checks are missing.")" + exit 1 # TODO: error code + fi fi } @@ -641,16 +646,26 @@ extract_sources() { # fix flyspray #6246 local file_type=$(file -bizL "$file") + local ext=${file##*.} local cmd='' case "$file_type" in *application/x-tar*|*application/zip*|*application/x-zip*|*application/x-cpio*) - cmd="bsdtar -x -f" ;; + cmd="bsdtar" ;; *application/x-gzip*) - cmd="gunzip -d -f" ;; + case "$ext" in + gz|z|Z) cmd="gzip" ;; + *) continue;; + esac ;; *application/x-bzip*) - cmd="bunzip2 -f" ;; + case "$ext" in + bz2|bz) cmd="bzip2" ;; + *) continue;; + esac ;; *application/x-xz*) - cmd="xz -d -f" ;; + case "$ext" in + xz) cmd="xz" ;; + *) continue;; + esac ;; *) # Don't know what to use to extract this file, # skip to the next file @@ -658,8 +673,13 @@ extract_sources() { esac local ret=0 - msg2 '%s' "$cmd \"$file\"" - $cmd "$file" || ret=$? + msg2 "$(gettext "extracting %s with %s")" "$file" "$cmd" + if [ "$cmd" = "bsdtar" ]; then + $cmd -xf "$file" || ret=? + else + rm -f "${file%.*}" + $cmd -dcf "$file" > "${file%.*}" || ret=? + fi if [ $ret -ne 0 ]; then error "$(gettext "Failed to extract %s")" "$file" plain "$(gettext "Aborting...")" @@ -766,7 +786,7 @@ run_package() { mv "$BUILDLOG" "$BUILDLOG.$i" fi - # ensure overridden package variables suvrive tee with split packages + # ensure overridden package variables survive tee with split packages logpipe=$(mktemp -u "$startdir/logpipe.XXXXXXXX") mknod "$logpipe" p exec 3>&1 @@ -849,7 +869,7 @@ tidy_install() { local binary find ${STRIP_DIRS[@]} -type f 2>/dev/null | while read binary ; do case "$(file -biz "$binary")" in - *compressed-encoding*) # Skip compressed binarys + *compressed-encoding*) # Skip compressed binaries ;; *application/x-sharedlib*) # Libraries (.so) /usr/bin/strip -S "$binary";; @@ -1399,6 +1419,7 @@ usage() { echo "$(gettext " -e, --noextract Do not extract source files (use existing src/ dir)")" echo "$(gettext " -f, --force Overwrite existing package")" echo "$(gettext " -g, --geninteg Generate integrity checks for source files")" + echo "$(gettext " --skipinteg Do not fail when integrity checks are missing")" echo "$(gettext " -h, --help This help")" echo "$(gettext " -i, --install Install package after successful build")" echo "$(gettext " -L, --log Log package build process")" @@ -1447,8 +1468,8 @@ ARGLIST=$@ OPT_SHORT="AcCdefFghiLmop:rRsV" OPT_LONG="allsource,asroot,ignorearch,clean,cleancache,nodeps" OPT_LONG="$OPT_LONG,noextract,force,forcever:,geninteg,help,holdver" -OPT_LONG="$OPT_LONG,install,log,nocolor,nobuild,rmdeps,repackage,source" -OPT_LONG="$OPT_LONG,syncdeps,version,config:" +OPT_LONG="$OPT_LONG,install,log,nocolor,nobuild,rmdeps,repackage,skipinteg" +OPT_LONG="$OPT_LONG,source,syncdeps,version,config:" # Pacman Options OPT_LONG="$OPT_LONG,noconfirm,noprogressbar" OPT_TEMP="$(parse_options $OPT_SHORT $OPT_LONG "$@" || echo 'PARSE_OPTIONS FAILED')" @@ -1487,6 +1508,7 @@ while true; do -p) shift; BUILDFILE=$1 ;; -r|--rmdeps) RMDEPS=1 ;; -R|--repackage) REPKG=1 ;; + --skipinteg) SKIPINTEG=1 ;; --source) SOURCEONLY=1 ;; -s|--syncdeps) DEP_BIN=1 ;; |