summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac5
-rw-r--r--doc/makepkg.8.txt4
-rw-r--r--po/ru.po111
-rw-r--r--scripts/makepkg.sh.in62
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.
diff --git a/po/ru.po b/po/ru.po
index ba75d9ac..470517bd 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -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 ;;