Commit 58b746a1 authored by Yuri Fil's avatar Yuri Fil

Merge branch 'master' of git.eter:/people/lav/packages/etersoft-build-utils

parents 0bc9a52b 6576fb4e
pkgdatadir=$(datadir)/eterbuild
all: QuickHelp.txt QuickHelp.koi8-r.txt
all: QuickHelp.txt QuickHelp.utf8.txt
$(MAKE) -C po
QuickHelp.koi8-r.txt:
QuickHelp.utf8.txt:
for i in bin/* ; do echo -e "\n\n---------------------------"; $$i -h ; done | grep -v "^Note:" | grep -v "^Target" >$@
QuickHelp.txt:
......
......@@ -23,12 +23,12 @@ jmake - make with ccache using and parallel build enabled
---------------------------
loginhsh - install package in hasher / take shell
Usage: [-t -i -h -r -c] [-M51] bin.rpm...
:
-i - hasher ( )
Параметры:
-i - инициализировать hasher (создать заново каталог)
-c - cleanup hasher
-o - log in as root user
-t - hasher,
-r - hasher ̣
-t - использовать каталог hasher, предназначенный для тестов
-r - вход в hasher на удалённой машине
-M?? - branch name
......@@ -37,20 +37,21 @@ Usage: [-t -i -h -r -c] [-M51] bin.rpm...
---------------------------
myhsh - build package via hasher
Usage: [-m -s -u -i -c] src.rpm...
:
Usage: [-m -s -u -i -c -l] src.rpm...
Параметры:
-i - install built packages in test hasher
-c - build without stuff (previous built packages)
-l - lazy cleanup (before build, not after)
---------------------------
rpmbb - build binary rpm from spec
Usage: [-c -p -i -r -R] spec...
:
Параметры:
-c - start from compile stage
-i -
-i - установить файлы и упаковать
-p - packaging installed files into package
-r - (buildreq)
-r - искать сборочные зависимости (buildreq)
-R - find build requires with -bi
......@@ -58,8 +59,8 @@ Usage: [-c -p -i -r -R] spec...
rpmbph - backports spec and rebuild it
Usage: [-r -u -U -n -i -m -v] [-M51] spec...
Use rpmbph -M51 for backport to ALT M51 and so on
:
-r - ̣
Параметры:
-r - удалённая сборка
-u/-U - sign and upload after build
-n - do not build in hasher (use first in the list)
-i - install built packages in test hasher
......@@ -69,11 +70,12 @@ Use rpmbph -M51 for backport to ALT M51 and so on
---------------------------
rpmbs - make src.rpm from spec
Usage: [-s -u -c -n --nodeps] spec...
:
-s - ()
-c - ()
Параметры:
-s - sign package(s) and move it to upload dir (ETERDESTSRPM)
-c - только подписать пакет(ы) и выполнить их проверку
-u - sign package(s), upload it and run build
-a TASK - sign package(s), update it and add to task TASK
-l - lazy cleanup (before build, not after)
-n - do not check with sisyphus_check before upload
-o - create nosrc.rpm package
-z - create src.rpm with compatible gzip compression
......@@ -82,12 +84,13 @@ Usage: [-s -u -c -n --nodeps] spec...
---------------------------
rpmbsh - BSH - build source; use hasher
Usage: [-r -s -u -m -i -c] spec...
:
-r - ̣
Параметры:
-r - удалённая сборка
-t - make temporary commit before build (rpmbb like behavior)
-u/-U - sign and upload after build
-u - ()
-u - sign and upload after build
-s - sign and and copy to upload dir (ETERDESTSRPM) after build
-i - install built packages in test hasher
-l - lazy cleanup (before build, not after)
-c - build without stuff (previous built packages)
......@@ -102,15 +105,16 @@ rpmcs spec - cleanup spec (like cleanup_spec command), adapted to ALT
---------------------------
rpmgp - various package download operations
Usage: [options] [system] pkgname
:
Параметры:
rpmgp [options] [system] pkgname - download src.rpm from 'system' repository to RPM/SRPMS and install it
name - src.rpm
name - название установленного пакета или src.rpm
system - name of system (ALT Linux by default if -a missed too)
-a search pkgname in all known repositories
-b install packages needed for build (use sudo apt-get) (need spec not package name)
-c check if this package exists in the ALT Linux repository
-d download all matched packages
-g remote clone repo to USER/packages and clone it locally
-m migrate to gear from spec
-l list packages needed for build (in local pkg system notation) (experimental)
-n do not install after download, just download in current dir
-r refresh package list (download it again)
......@@ -121,9 +125,9 @@ rpmgp [options] [system] pkgname - download src.rpm from 'system' repository to
rpmgs - get sources for spec
Usage: [-a -r ] spec ... | spec new_version
You can run rpmgs file.spec new_version for set new version and download it
:
-a - ( (0))
-f -
Параметры:
-a - получаем все исходники (не только основной (0))
-f - начать загрузку в любом случае
---------------------------
......@@ -147,7 +151,7 @@ rpmU - the same as [sudo] rpm -Uvh - update package
---------------------------
rpmunmets - tests unmets in build packages
Usage: [-M24 -M40]
:
Параметры:
-s - get all unmets
-M40 - test for distro ALT Linux 4.0
......@@ -155,8 +159,8 @@ Usage: [-M24 -M40]
---------------------------
rpmurl - open package Url in browser
Usage: [-c -f -p -s] spec or package...
:
-c - URL
Параметры:
-c - проверить доступность URL
-f - print failed URL only
-p - open package page at sisyphus.ru
-s - ,
-s - открыть в браузере тот каталог, где в Сети лежат исходники
......@@ -3,8 +3,8 @@
# Author: Vitaly Lipatov <lav@etersoft.ru>
# Public domain
#
# SRPM- hasher
# -i hasher
# Пересборка указанных SRPM-пакетов в hasher
# -i устанавливает в тестовый hasher после пересборки
# load common functions, compatible with local and installed script
. `dirname $0`/../share/eterbuild/functions/common
......
......@@ -5,9 +5,9 @@
#
# BB - binary build (like rpm option -bb)
#
# rpm-
# :
# - -
# Собирает двоичные rpm-пакеты по указанным спекам
# Параметры:
# - название спек-файла
# load common functions, compatible with local and installed script
. `dirname $0`/../share/eterbuild/functions/common
......@@ -54,7 +54,7 @@ while getopts :hciprR opt; do
esac
done
# FIXME: (, -i, -b)
# FIXME: параметры передаются и дальше (например, -i, -b)
# remove args that were options
if [ $# -gt 0 ]; then
shift $((OPTIND - 1))
......
......@@ -6,8 +6,8 @@
# BPH - backport; use hasher
# Makes backport package to any target platfrom (RPM, DEB, TGZ)
# . alt4
# alt0.M24.4
# Релиз строится на основе релиза из Сизифа. Если там был alt4
# то здесь будет alt0.M24.4
# TODO: use RPMBUILDARG
# load common functions, compatible with local and installed script
......@@ -135,7 +135,7 @@ done
#echo GRP: $LISTGROUP, ALLGRPREPLRULES: $ALLGRPREPLRULES
# Replace all packages names in source spec and add %defattr to files sections
# FIXME:
# FIXME: добавляет ненужные пустые строки
function awk_e1()
{
......
......@@ -5,15 +5,15 @@
#
# BS - build source
#
#
# :
# - -
# -
# -s,
# --nodeps,
# -u, incoming
# -d, incoming
# -n,
# Создаёт пакет с исходниками по спеку
# Параметры:
# - названия спек-файлов
# - или пакетов
# Если указан ключ -s, подписываем пакет
# Если указан ключ --nodeps, не учитываем сборочные зависимости
# Если указан ключ -u, отправляем пакет в incoming
# Если указан ключ -d, удаляем из incoming
# Если указан -n, не проверяем перед отправкой
# TODO: -r
# load common functions, compatible with local and installed script
......@@ -161,7 +161,7 @@ if [ -n "$NOSOURCE" ] ; then
exit $?
fi
# src.rpm
# Упаковываем пакеты в src.rpm
# FIXME: -s can be in name... (but not in option!)
#LISTRPMARGS=
#LISTRPMARGS=${LISTRPMARGS/-m/}
......
......@@ -5,11 +5,11 @@
#
# BSH - build source; use hasher
#
# () hasher
# ̣ ( -r)
# ( -m)
# TODO:
# TODO: ??
# Создаёт пакет(ы) по указанным спекам и собирает в hasher
# Поддерживает удалённую сборку пакета ( ключ -r)
# Присылка результата сборки по почте (ключ -m)
# TODO: Сжимать отправляемый лог
# TODO: присылать обратно собранные пакеты??
# load common functions, compatible with local and installed script
. `dirname $0`/../share/eterbuild/functions/common
......@@ -76,7 +76,7 @@ mygetopts $LISTARGS
add_changelog_helper "- new version" $LISTNAMES
# We do not not pass args for myhsh here...
# FIXME:
# FIXME: не обрабатывает два пропускаемых вместе параметра
pack_src_rpm $COMMIT $(echo $LISTRPMARGS | sed -e "s|-[suUicl]||g")
# TODO: skip for prev. packed src.rpm
......
......@@ -3,11 +3,11 @@
# Author: Vitaly Lipatov <lav@etersoft.ru>
# Public domain
#
#
# :
# rpmbugs - | | -qf ,
# TODO: ( ?)
# TODO:
# Открываем багзиллу на багах пакета
# Параметры:
# rpmbugs название спек-файла | название пакета | -qf путь к файлу, который лежит в пакете
# TODO: окошко вешания баги (использовать перловые возможности?)
# TODO: нормальную обработку парамеров
# load common functions, compatible with local and installed script
. `dirname $0`/../share/eterbuild/functions/common
......
......@@ -4,8 +4,8 @@
# Public domain
#
# CS -- cleanup spec (like cleanup_spec command)
# :
# - -
# Параметры:
# - название спек-файла
# load common functions, compatible with local and installed script
. `dirname $0`/../share/eterbuild/functions/common
......
......@@ -3,9 +3,9 @@
# Author: Vitaly Lipatov <lav@etersoft.ru>
# Public domain
#
# src.rpm- ( ALT Linux) .
#
# apt-get source
# Скачивает исходный src.rpm-пакет с одного из репозиториев (по умолчанию ALT Linux) для пакета с указанным названием.
# Также можно сразу указать название пакета с исходниками
# Функции скрипта похожи на команду apt-get source пакет
# -c - checkonline
# -n - do not install
......@@ -191,7 +191,7 @@ while getopts :habcdglmnrs opt; do
esac
done
# FIXME: (, -i, -b)
# FIXME: параметры передаются и дальше (например, -i, -b)
# remove args that were options
if [ $# -gt 0 ]; then
shift $((OPTIND - 1))
......@@ -217,11 +217,11 @@ fi
test -z "$LISTARGS" && fatal "Please run with spec/package name"
# , ( ?),
# -
#
# список названий систем, адресов (с зеркалами?), и режимов фильтрации
# название кэш-файла строить из названия системы
# выводить найденное сразу везде
#
# - []
# уточнение - [система] пакет
# install required for build binary packages
if [ -n "$INSTALLBINARY" ] ; then
......@@ -236,9 +236,15 @@ fi
if [ -n "$MIGRATEGEAR" ] ; then
parse_cmd_pre "$@"
pack_src_rpm $LISTRPMARGS
for PKGNAME in $LISTBUILT ; do
echo "Create gear repo"
for INFILE in $LISTNAMES ; do
# call for each file due generated BASENAME
LISTNAMES=$INFILE pack_src_rpm $INFILE $LISTRPMARGS
PKGNAME="$LISTBUILT"
if [ -z "$BASENAME" ] ; then
echo "Can't get basename for $PKGNAME, skipping"
continue
fi
echo "Create gear repo $BASENAME from $PKGNAME"
GITALT=~/Projects/git-alt
GEARDIR=$GITALT/$BASENAME
test -d "$GEARDIR" && fatal "repo $GEARDIR already exits"
......@@ -246,7 +252,8 @@ if [ -n "$MIGRATEGEAR" ] ; then
cd $GEARDIR || fatal "can't cd to $GEARDIR"
git init-db || fatal "can't init db"
gear-srpmimport $PKGNAME || fatal "can't import srpm $PKGNAME"
rm -vf $PKGNAME
# remove src.rpm only if it was generated
[ -z ${INFILE/*rpm/} ] || rm -vf $PKGNAME
done
exit 0
fi
......
......@@ -5,9 +5,9 @@
#
# GS - get source
#
# , gz/bz2/tgz/zip
# :
# - -
# Скачивает исходники, автоматически выправляя ситуацию с gz/bz2/tgz/zip
# Параметры:
# - название спек-файла
# TODO: -h (build in hasher), -s (sign for upload)
# -a - get all source
# check for the same file with other compression
......
......@@ -3,9 +3,9 @@
# Author: Vitaly Lipatov <lav@etersoft.ru>
# Public domain
#
# , , which
# :
# -
# Выводит, к какому пакету относится указанный файл, находимый через which
# Параметры:
# - название файл
# TODO not -i only, we need any key
if [ "$1" = "-h" ]; then
......
......@@ -3,10 +3,10 @@
# Author: Vitaly Lipatov <lav@etersoft.ru>
# Public domain
#
# , ,
# , :
# rpmrb []
# 2.6.1 (), 2.6 (major) .1 (minor)
# Обновляет версию пакета, получает исходники,
# собирает, устанавливает на тестирование и выкладывает новую версию пакета:
# rpmrb спек версия [релиз]
# версия может быть указана как 2.6.1 (полная), 2.6 (major) или .1 (minor)
# load common functions, compatible with local and installed script
. `dirname $0`/../share/eterbuild/functions/common
......
......@@ -4,8 +4,8 @@
# Public domain
#
# Open package Url in BROWSER
# :
# - -
# Параметры:
# - название спек-файла
#
# load common functions, compatible with local and installed script
......
......@@ -7,23 +7,23 @@
# You can copy this file as ~/.eterbuild-config for per user settings
# and uncomment any setting line
# hasher:
# Путь к каталогу сборки hasher:
#HASHERDIR=~/hasher
#HASHER_ARG=""
# ̣ ssh
# Удалённый сборочный сервер в нотации ssh
#BUILDSERVER="builder"
# TODO:
# TODO: Каталог на сборочном сервере с собранными пакетами
#BUILDSERVERPATH=$HASHERDIR/repo/i586/RPMS.hasher
# ޣ,
# Кому отправлять отчёт, на какой адрес
#OWNERMAIL="Vitaly Lipatov <lav@altlinux.ru>"
#
# Повышенная говорливость
#DEBUG="-v"
# , %_tmppath .rpmmacros
# Каталог сборки, указываемый в переменной %_tmppath .rpmmacros
#BUILDROOT=
# You can uncomment it:
......@@ -33,24 +33,24 @@
#APTCONFBASE=/etc/apt/apt.conf
#REMOTERPMDIR="~/RPM"
# , src.rpm
# Каталог, куда копируются подписанные src.rpm
#UPLOADDIR=$RPMDIR/upload
# ftp-
# Адрес ftp-сервера компании
#COMPANYFTP=etersoft.ru
# ftp- ( ssh-)
# Базовый каталог расположения ftp-сервера (поддерживаются локальные и ssh-пути)
#TARGETFTPBASE=ftp.eter:/var/ftp
#
# Каталог для записи протоколов сборки
#LOGDIR=$RPMDIR/log
#RSYNCSISYPHUS=rsync.altlinux.org::ALTLinux/Sisyphus
# SSH-
# Базовый SSH-путь для отправки пакетов
#RSYNCINCOMING=incoming:/incoming
# ,
# Ключ, используемый при отправке
#SSH_KEYFILE=~/.ssh/id_dsa
# See sisyphus_check --help for other options
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -81,7 +81,7 @@ get_altdistr_mod()
}
# TODO: include in sisyphus_check
# , MENV
# Проверяем, соответствует ли релиз пакетов указанному в MENV
function pkg_release_check()
{
local STREL=alt
......@@ -90,7 +90,7 @@ function pkg_release_check()
if [ "$MENV" = "SS" ] || [ "$MENV" = "DD" ] ; then
for i in $@ ; do
if [ -z "${i/*$STREL[0-9].M[0-9][0-9]*/}" ] ; then
#
# Значит не тот релиз
fatal "Incorrect release in $i package: was prepared for Sisyphus"
fi
done
......@@ -98,7 +98,7 @@ function pkg_release_check()
fi
for i in $@ ; do
if [ -n "${i/*$STREL[0-9].$MENV*/}" ] ; then
#
# Значит не тот релиз
fatal "Incorrect release in $i package: was prepared for $MENV"
fi
done
......
......@@ -137,12 +137,13 @@ do
#NAMESRPMIN=$(basename $i)
if [ -f "$i" ] ; then
LISTBUILT="$LISTBUILT $i"
LISTBUILT="$LISTBUILT $(realpath $i)"
build_rpms_name_by_srpm "$i" $ARGS
else
fatal "pack_src_rpm: Can't find '$i'"
fi
else
#
# Получаем названия пакетов по спеку
# BASENAME, RELEASE, VERSION, NAMESRPMIN, NAMERPMIN
build_rpms_name "$i" $ARGS
if [ -n "${SIGN}" ]; then
......
......@@ -38,14 +38,14 @@ if ! set_eterbuilddir ; then
exit 1
fi
#
# Выводит указанное сообщение об ошибке и завершает программу
fatal()
{
echog "Error: $@" >&2
exit 1
}
#
# Выводит указанное сообщение
warning()
{
echog "Warning: $@" >&2
......@@ -99,7 +99,7 @@ fi
# Internal
# , : -M23 -M24 ,
# Определяет, для какой среды собирать: по ключу -M23 -M24 или по каталогу, в котором спек
detect_target_env()
{
local DISTRNAME=`distr_vendor -e`
......@@ -119,13 +119,13 @@ else
fi
}
# LISTNAMES
# MENV
# LISTARGS
# :
# - (MENV)
# -
# -
# Отделяет файлы в LISTNAMES
# Отделяет указание среды в MENV
# Устанавливает LISTARGS в оставшиеся аргументы
# использование:
# - отделяем среду (MENV)
# - отделяем файлы
# - оставшееся обрабатываем как параметры программы
parse_cmd_pre()
{
local i
......@@ -143,7 +143,7 @@ LISTARGS=
OPTINDEX=1
for i in "$@"
do
# , , .
# Если файл существует, то добавляем, иначе считаем аргумент параметром.
if [ -f "$i" ]; then
# echo is workaround for missed readlink
LISTNAMES="$LISTNAMES $(readlink -f $i 2>/dev/null | echo $i)"
......
......@@ -3,9 +3,9 @@
# Author: Vitaly Lipatov <lav@etersoft.ru>
# Public domain
ETERBUILDVERSION=175
ETERBUILDVERSION=176
# SUDO
# Определяем SUDO для использования
SUDO="sudo"
# for some shells? not for bash
test -z "$UID" && UID=`id -u`
......
......@@ -22,10 +22,10 @@ build_buildroot()
return 0
}
# .
# !
# Name:
# TODO: NAMESPEC, SPECNAME
# Вынимаем информацию о пакете из спека.
# Внутренние макроопределения раскрываются!
# Пробельные символы после Name: могут быть различными
# TODO: в другом месте не NAMESPEC, а не SPECNAME
build_rpms_name()
{
......@@ -63,6 +63,37 @@ build_rpms_name()
build_buildroot
}
querypackage()
{
rpmquery -p --queryformat "%{$2}" $1
}
build_rpms_name_by_srpm()
{
local SRPM=$1
BASENAME=$(querypackage $SRPM NAME)
RELEASE=$(querypackage $SRPM RELEASE)
VERSION=$(querypackage $SRPM VERSION)
PKGARCH=$(querypackage $SRPM ARCH)
# suggest target arch
if [ "$PKGARCH" != "noarch" ] ; then
PKGARCH=$DEFAULTARCH
fi
NAMERPMIN=$BASENAME-$VERSION-$RELEASE.$PKGARCH.rpm
NAMESRPMIN=$BASENAME-$VERSION-$RELEASE.src.rpm
if [ "$(basename "$SRPM")" != $NAMESRPMIN ] ; then
warning "Generated srpm name $NAMESRPMIN is not equal to real file name $SRPM"
fi
}
spec_by_srpm()
{
local PKG=$1
local PKGNAME
PKGNAME=$(querypackage $PKG NAME)
[ -n "$PKGNAME" ] && echo $PKGNAME.spec
}
# pkg-source-1.0.src.rpm -> pkg-source
get_pkgname_from_filename()
{
......
......@@ -10,7 +10,7 @@ get_var()
}
# FIXME: only ALT handled rpm -bE
#
# Раскрывает макросы в спеке и выводит на стандартный вывод
eval_spec()
{
# TODO: use rpm -showrc instead -bE for get main variables?
......@@ -95,7 +95,7 @@ get_tarballname()
# Set version for spec (args: spec version), f.i. test.spec 1.2.3)
# Supports %major and %ver_major macros in spec
# 2.6.1 (), 2.6 (major) .1 (minor)
# версия может быть указана как 2.6.1 (полная), 2.6 (major) или .1 (minor)
set_version()
{
local SPEC=$1
......@@ -173,13 +173,6 @@ add_changelog_helper()
return $R
}
spec_by_srpm()
{
local PKG=$1
local PKGNAME
PKGNAME=$(rpm -qp --queryformat "%{NAME}" $PKG)
[ -n "$PKGNAME" ] && echo $PKGNAME.spec
}
# set specdir by spec (run with full path to spec only or in spec dir)
set_specdir()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment