Автор Тема: Собираю пакет с помощью hasher  (Прочитано 5861 раз)

Оффлайн aus

  • Завсегдатай
  • *
  • Сообщений: 152
Написал spec (во вложении).
Собрал src.rpm.
rpm -bs --nodeps ~/RPM/SPECS/LuxRender.spec

Скопировал полученный  LuxRender-0.5-alt1.src.rpm в папку ~/hasher.
Могу ли я собирать src.rpm внутри hasher? Если да, то как?
Запускаю сборку.
hsh -v --no-sisyphus-check --target=i586 ~/hasher ~/hasher/LuxRender-0.5-alt1.src.rpm

Процесс прерывается сообщением.
hsh-install: Packages installation complete.                                                                                               
Подготовка...               ###########         
hsh-install: RPM database updated.                                                                                                         
+ export -n target                                                                                                                         
+ exec time rpmbuild --rebuild --target=i586 LuxRender-0.5-alt1.src.rpm                                                                   
Installing LuxRender-0.5-alt1.src.rpm                                                                                                     
Building target platforms: i586                                                                                                           
Building for target i586                                                                                                                   
Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.10534                                                                                   
+ umask 022                                                                                                                               
+ /bin/mkdir -p /usr/src/RPM/BUILD                                                                                                         
+ cd /usr/src/RPM/BUILD                                                                                                                   
+ cd /usr/src/RPM/BUILD                                                                                                                   
+ rm -rf lux                                                                                                                               
+ echo 'Source #0 (LuxRender_v05_Source.zip):'                                                                                             
Source #0 (LuxRender_v05_Source.zip):                                                                                                     
+ /usr/bin/unzip -qq /usr/src/RPM/SOURCES/LuxRender_v05_Source.zip                                                                         
/usr/src/tmp/rpm-tmp.10534: line 95: /usr/bin/unzip: No such file or directory                                                             

RPM build errors:
error: Bad exit status from /usr/src/tmp/rpm-tmp.10534 (%prep)
    Bad exit status from /usr/src/tmp/rpm-tmp.10534 (%prep)   
Command exited with non-zero status 1                         
0.42user 0.01system 0:00.51elapsed 85%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+4432outputs (0major+3704minor)pagefaults 0swaps                   
hsh-rebuild: rebuild of `LuxRender-0.5-alt1.src.rpm' failed.


Не могу понять почему пишет, что не может найти  /usr/src/RPM/SOURCES/LuxRender_v05_Source.zip ?
 

Оффлайн kaf

  • Завсегдатай
  • *
  • Сообщений: 128
    • Email
Re: Собираю пакет с помощью hasher
« Ответ #1 : 24.03.2009 12:43:23 »
Не может найти /usr/bin/unzip
Поставьте пакет unzip

Оффлайн andrew_b

  • Завсегдатай
  • *
  • Сообщений: 534
Re: Собираю пакет с помощью hasher
« Ответ #2 : 24.03.2009 14:04:15 »
Поставьте пакет unzip
Его надо вписать в BuildRequires.

kda

  • Гость
Re: Собираю пакет с помощью hasher
« Ответ #3 : 24.03.2009 14:10:55 »
Его надо вписать в BuildRequires.

А еще лучше создать tar.gz архив и не вписывать никаких unzip.

kda

  • Гость
Re: Собираю пакет с помощью hasher
« Ответ #4 : 24.03.2009 14:12:30 »
/usr/src/tmp/rpm-tmp.10534: line 95: /usr/bin/unzip: No such file or directory 
.....

Не могу понять почему пишет, что не может найти  /usr/src/RPM/SOURCES/LuxRender_v05_Source.zip ?
 

Вы смотрели что написано в строке 95 по пути ~/hasher/chroot/usr/src/tmp/rpm-tmp.10534?

Оффлайн aus

  • Завсегдатай
  • *
  • Сообщений: 152
Re: Собираю пакет с помощью hasher
« Ответ #5 : 24.03.2009 15:26:45 »
Спасибо, kaf. Разобрался, вписав unzip в BuildRequires. До этого был уверен в интеллектуальности hasher, который сам распознает zip архив. Двигаемся дальше. %prep пройдет, теперь останавливается на%build.  Приложил измененный spec.
В консоли:
+ cd lux                                                                                                                                 
+ /bin/chmod -c -Rf u+rwX,go-w .                                                                                                         
+ exit 0                                                                                                                                 
Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.18587                                                                                 
+ umask 022                                                                                                                               
+ /bin/mkdir -p /usr/src/RPM/BUILD                                                                                                       
+ cd /usr/src/RPM/BUILD                                                                                                                   
+ cd lux                                                                                                                                 
+ mkdir build                                                                                                                             
+ cd build                                                                                                                               
+ cmake ../ -DCMAKE_INSTALL_PREFIX=/usr '-DCMAKE_CXX_FLAGS:STRING=-pipe -Wall -O2 -march=i586 -mtune=i686' -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=YES                                                                                                                       
-- The C compiler identification is GNU                                                                                                   
-- The CXX compiler identification is GNU                                                                                                 
-- Check for working C compiler: /usr/bin/gcc                                                                                             
-- Check for working C compiler: /usr/bin/gcc -- works                                                                                   
-- Detecting C compiler ABI info                                                                                                         
-- Detecting C compiler ABI info - done                                                                                                   
-- Check for working CXX compiler: /usr/bin/c++                                                                                           
-- Check for working CXX compiler: /usr/bin/c++ -- works                                                                                 
-- Detecting CXX compiler ABI info                                                                                                       
-- Detecting CXX compiler ABI info - done                                                                                                 
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so                                                                     
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found                                                             
-- Looking for gethostbyname                                                                                                             
-- Looking for gethostbyname - found                                                                                                     
-- Looking for connect                                                                                                                   
-- Looking for connect - found                                                                                                           
-- Looking for remove                                                                                                                     
-- Looking for remove - found                                                                                                             
-- Looking for shmat                                                                                                                     
-- Looking for shmat - found                                                                                                             
-- Looking for IceConnectionNumber in ICE                                                                                                 
-- Looking for IceConnectionNumber in ICE - found                                                                                         
-- Found X11: /usr/lib/libX11.so                                                                                                         
-- OpenGL include directory: /usr/include                                                                                                 
-- FLTK include directory: /usr/include                                                                                                   
-- Boost version: 1.36.0                                                                                                                 
-- Found the following Boost libraries:                                                                                                   
-- Boost library directory: /usr/lib                                                                                                     
-- Boost include directory: /usr/include                                                                                                 
-- Found ZLIB: /usr/lib/libz.so                                                                                                           
-- Found PNG: /usr/lib/libpng.so                                                                                                         
-- Found TIFF: /usr/lib/libtiff.so                                                                                                       
-- Found TIFF: /usr/lib/libtiff.so                                                                                                       
-- Found JPEG: /usr/lib/libjpeg.so                                                                                                       
-- JPEG include directory: /usr/include                                                                                                   
-- Found wxWidgets: TRUE                                                                                                                 
-- wxWidgets include directory: /usr/lib/wx/include/gtk2-unicode-release-2.8/usr/include/wx-2.8                                           
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/src/RPM/BUILD/lux/build

RPM build errors:
+ pushd build
/usr/src/tmp/rpm-tmp.18587: line 101: pushd: build: No such file or directory
error: Bad exit status from /usr/src/tmp/rpm-tmp.18587 (%build)
    Bad exit status from /usr/src/tmp/rpm-tmp.18587 (%build)
Command exited with non-zero status 1
2.34user 0.76system 0:03.97elapsed 78%CPU (0avgtext+0avgdata 0maxresident)k
480inputs+29392outputs (1major+192520minor)pagefaults 0swaps
hsh-rebuild: rebuild of `LuxRender-0.5-alt1.src.rpm' failed.


Содержимое файла /usr/src/tmp/rpm-tmp.18587: около строки  101:

pushd build
[ -n "$NPROCS" ] || NPROCS=2; make -j$NPROCS VERBOSE=1
popd

« Последнее редактирование: 24.03.2009 15:30:09 от aus »

Оффлайн php-coder

  • Начинающий
  • *
  • Сообщений: 20
Re: Собираю пакет с помощью hasher
« Ответ #6 : 24.03.2009 15:30:02 »
-- Build files have been written to: /usr/src/RPM/BUILD/lux/build

Содержимое файла /usr/src/tmp/rpm-tmp.18587: около строки  101:
pushd build
[ -n "$NPROCS" ] || NPROCS=2; make -j$NPROCS VERBOSE=1
popd

Попробуйте (в спеке) вместо pushd build pushd lux/build

Оффлайн aus

  • Завсегдатай
  • *
  • Сообщений: 152
Re: Собираю пакет с помощью hasher
« Ответ #7 : 24.03.2009 15:35:30 »
Результат отрицательный.
RPM build errors:
+ pushd lux/build
/usr/src/tmp/rpm-tmp.64261: line 101: pushd: lux/build: No such file or directory
error: Bad exit status from /usr/src/tmp/rpm-tmp.64261 (%build)
    Bad exit status from /usr/src/tmp/rpm-tmp.64261 (%build)
Command exited with non-zero status 1
2.43user 0.73system 0:04.09elapsed 77%CPU (0avgtext+0avgdata 0maxresident)k
744inputs+29392outputs (1major+192556minor)pagefaults 0swaps
hsh-rebuild: rebuild of `LuxRender-0.5-alt1.src.rpm' failed.

Оффлайн php-coder

  • Начинающий
  • *
  • Сообщений: 20
Re: Собираю пакет с помощью hasher
« Ответ #8 : 24.03.2009 15:41:14 »
Зачем вы вообще делаете pushd/popd? Попробуйте его убрать.

Оффлайн aus

  • Завсегдатай
  • *
  • Сообщений: 152
Re: Собираю пакет с помощью hasher
« Ответ #9 : 24.03.2009 16:00:20 »
Зачем вы вообще делаете pushd/popd? Попробуйте его убрать.
Спасибо. Помогло. За основу брал файл http://www.altlinux.org/SampleSpecs/cmakeprogram, там pushd присутствовал.
Процесс пошел, но опять ошибка. Что-то с boost. Думаю что не все библиотеки подключил. Лог прилагается.
/usr/src/RPM/BUILD/lux/core/exrio.cpp:33:37: error: boost/filesystem/path.hpp: No such file or directory                                 
/usr/src/RPM/BUILD/lux/core/exrio.cpp:34:44: error: boost/filesystem/convenience.hpp: No such file or directory

Boost-devel установлен.
BuildPreReq: libpng-devel libjpeg-devel libtiff-devel fltk-devel openexr-devel flex bison boost-devel desktop-file-utils unzip cmake wxGTK-devel glibc libGL gcc4.3-c++ libqt4-opengl libqt4-devel

Оффлайн php-coder

  • Начинающий
  • *
  • Сообщений: 20
Re: Собираю пакет с помощью hasher
« Ответ #10 : 24.03.2009 16:06:21 »
Попробуйте добавить boost-filesystem-devel в BuildRequires.

(См. также https://bugzilla.altlinux.org/show_bug.cgi?id=15421)

Оффлайн aus

  • Завсегдатай
  • *
  • Сообщений: 152
Re: Собираю пакет с помощью hasher
« Ответ #11 : 24.03.2009 16:21:34 »
Процесс идет дальше. Посмотрел багзиллу - написано, что это исправили в версии 1.34. У меня 1.36-alt4, поэтому переоткрыл багу.

Drool

  • Гость
Re: Собираю пакет с помощью hasher
« Ответ #12 : 24.03.2009 17:39:05 »
Насоветовали всякого :)
Чтоб не захламлять систему:
1. hsh-install ~/каталог_хашера mc rpm-utils
2. hsh-shell ~/каталог_хашера
3. cd ~/RPM
4. mc
Можно работать как в обычной системе (правда, Ctrl+O не фунциклирует)
5. Над спеком говорим
buildreq -bi *.spec
По мере сборки он будет ругаться на что-то неустановленное из компании *-devel, в этом случае делаем exit из хашера
6. hsh-install ~/каталог_хашера bla-bla-devel
и повторяем начиная с п.2, пока сборка не завершится удачно. После работы скрипта buildreq -bi он автоматически определит сборочные зависимости и сам пропишет их в спек, руками не нужно будет ничего дописывать. Тут же в хашере можно либо собрать сразу же через
rpm -ba --target i586 *.spec
Можно сделать src.rpm, выйти из хашера и подсунуть ему из него же src.rpm на контрольную сборку. Чейнчолги можно добавлять, чтоб не руками, с помощью скрипта add_changelog *.spec.

Оффлайн aus

  • Завсегдатай
  • *
  • Сообщений: 152
Re: Собираю пакет с помощью hasher
« Ответ #13 : 25.03.2009 10:24:30 »
%build пройден. Сейчас разбираюсь c %install. Однако в случае ошибки приходиться начинать сборку с начала. Пакеты выкачиваю из локального репозитория, поэтому основное время тратиться на компиляцию исходников на шаге %build. Есть ли какие-нибудь решения для того, чтобы перезапускать сборку с %install?

Оффлайн php-coder

  • Начинающий
  • *
  • Сообщений: 20
Re: Собираю пакет с помощью hasher
« Ответ #14 : 25.03.2009 10:27:10 »
Есть ли какие-нибудь решения для того, чтобы перезапускать сборку с %install?

http://www.rpm.org/max-rpm/ch-rpm-b-command.html#S2-RPM-B-COMMAND-SHORT-CIRCUIT-OPTION