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

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Собираю пакет с помощью hasher
« Ответ #15 : 25.03.2009 10:30:28 »
Можно работать как в обычной системе (правда, Ctrl+O не фунциклирует)
IMHO надо разрешить в хэшере создание /dev и смонтировать /dev/pts

Drool

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

Кстати, иногда после внесения правок в спек приходится именно пересобрать, а не просто
rpm -bi --short-circuit *.spec
В этом случае имеет смысл (да и не только в этом) в хашере (если он используется как постоянная сборочная среда) настроить ccache:
1. hsh-install ~/hasher_dir ccache
2. Входим в хашер и правим ~/.bash_profile, его начало у меня выглядит так:
Цитировать
# .bash_profile

CC='ccache gcc'
CXX='ccache g++'
export CC CXX
3. Выходим из хашера и снова входим (перелогиниваемся :) ) - все, кэш компилятора активен, первая сборка пройдет как обычно, а все последующие - Вам должно понравится ;)

Оффлайн aus

  • Завсегдатай
  • *
  • Сообщений: 152
Re: Собираю пакет с помощью hasher
« Ответ #17 : 26.03.2009 08:24:25 »
Продолжаю. Компиляция файлов прошла успешно, теперь пробую положить файлы в rpm.
%install
pushd build
%make_install DESTDIR=%buildroot install
popd

%files
%doc AUTHORS.txt COPYING.txt
%_bindir/luxconsole
%_bindir/luxrender
%_bindir/wxluxgui
%_datadir/pixmaps/luxrender.svg
%_datadir/applications/luxrender.desktop


Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.32144                                                                               
+ umask 022                                                                                                                               
+ /bin/mkdir -p /usr/src/RPM/BUILD                                                                                                       
+ cd /usr/src/RPM/BUILD                                                                                                                   
+ /bin/chmod -Rf u+rwX -- /usr/src/tmp/LuxRender-buildroot                                                                               
+ /bin/rm -rf -- /usr/src/tmp/LuxRender-buildroot                                                                                         
+ cd lux                                                                                                                                 
+ pushd build                                                                                                                             
~/RPM/BUILD/lux/build ~/RPM/BUILD/lux                                                                                                     
+ make 'INSTALL=/bin/install -p' DESTDIR=/usr/src/tmp/LuxRender-buildroot install                                                         
make: Entering directory `/usr/src/RPM/BUILD/lux/build'                                                                                   
make[1]: Entering directory `/usr/src/RPM/BUILD/lux/build'                                                                               
make[2]: Entering directory `/usr/src/RPM/BUILD/lux/build'                                                                               
make[2]: Leaving directory `/usr/src/RPM/BUILD/lux/build'                                                                                 
[ 95%] Built target lux                                                                                                                   
make[2]: Entering directory `/usr/src/RPM/BUILD/lux/build'                                                                               
make[2]: Leaving directory `/usr/src/RPM/BUILD/lux/build'                                                                                 
[ 95%] Built target luxconsole                                                                                                           
make[2]: Entering directory `/usr/src/RPM/BUILD/lux/build'                                                                               
make[2]: Leaving directory `/usr/src/RPM/BUILD/lux/build'                                                                                 
[ 96%] Built target luxrender                                                                                                             
make[2]: Entering directory `/usr/src/RPM/BUILD/lux/build'                                                                               
make[2]: Leaving directory `/usr/src/RPM/BUILD/lux/build'                                                                                 
[100%] Built target wxluxgui                                                                                                             
make[1]: Leaving directory `/usr/src/RPM/BUILD/lux/build'                                                                                 
Install the project...                                                                                                                   
-- Install configuration: "Release"                                                                                                       
-- Installing: /usr/src/tmp/LuxRender-buildroot/usr/bin/luxrender                                                                         
-- Installing: /usr/src/tmp/LuxRender-buildroot/usr/bin/luxconsole                                                                       
-- Installing: /usr/src/tmp/LuxRender-buildroot/usr/include/luxrender/api.h                                                               
-- Installing: /usr/src/tmp/LuxRender-buildroot/usr/lib/liblux.a                                                                         
-- Installing: /usr/src/tmp/LuxRender-buildroot/usr/share/pixmaps/luxrender.svg                                                           
-- Installing: /usr/src/tmp/LuxRender-buildroot/usr/share/applications/luxrender.desktop                                                 
make: Leaving directory `/usr/src/RPM/BUILD/lux/build'                                                                                   
+ popd                                                                                                                                   
~/RPM/BUILD/lux                                                                                                                           
+ /usr/lib/rpm/brp-alt                                                                                                                   
Cleaning files in /usr/src/tmp/LuxRender-buildroot (auto)                                                                                 
Verifying and fixing files in /usr/src/tmp/LuxRender-buildroot (binconfig,pkgconfig,libtool)                                             
Compressing files in /usr/src/tmp/LuxRender-buildroot (auto)                                                                             
Adjusting library links in /usr/src/tmp/LuxRender-buildroot                                                                               
./usr/lib:                                                                                                                               
Verifying ELF objects in /usr/src/tmp/LuxRender-buildroot (arch=normal,fhs=normal,rpath=normal,stack=normal,textrel=normal,unresolved=normal)                                                                                                                                       
Stripping binaries in /usr/src/tmp/LuxRender-buildroot (executable,shared)                                                               
Processing files: LuxRender-0.5-alt1                                                                                                     
error: File not found: /usr/src/tmp/LuxRender-buildroot/usr/bin/wxluxgui                                                                 
Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.45458                                                                                   
+ umask 022                                                                                                                               
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd lux
+ DOCDIR=/usr/src/tmp/LuxRender-buildroot/usr/share/doc/LuxRender-0.5
+ export DOCDIR
+ rm -rf /usr/src/tmp/LuxRender-buildroot/usr/share/doc/LuxRender-0.5
+ /bin/mkdir -p /usr/src/tmp/LuxRender-buildroot/usr/share/doc/LuxRender-0.5
+ cp -prL AUTHORS.txt COPYING.txt /usr/src/tmp/LuxRender-buildroot/usr/share/doc/LuxRender-0.5
+ chmod -R go-w /usr/src/tmp/LuxRender-buildroot/usr/share/doc/LuxRender-0.5
+ chmod -R a+rX /usr/src/tmp/LuxRender-buildroot/usr/share/doc/LuxRender-0.5
+ exit 0

RPM build errors:
    File not found: /usr/src/tmp/LuxRender-buildroot/usr/bin/wxluxgui


Не могу понять, почему %install игнорирует wxluxgui?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Собираю пакет с помощью hasher
« Ответ #18 : 26.03.2009 09:24:38 »
Ну нет у вас
/usr/src/tmp/LuxRender-buildroot/usr/bin/wxluxgui

Оффлайн aus

  • Завсегдатай
  • *
  • Сообщений: 152
Re: Собираю пакет с помощью hasher
« Ответ #19 : 26.03.2009 09:40:41 »
В этом и вопрос. Почему в /usr/src/RPM/BUILD/lux/build wxluxgui есть, а в /usr/src/tmp/LuxRender-buildroot/usr/bin/ нет.
Посмотрел аналогичный пакет от RedHat, там в секции %install есть строчка
install -pm 0755 build/wxluxgui $RPM_BUILD_ROOT%{_bindir}
Как её переделать под ALTLinux и что она означает?

Drool

  • Гость
Re: Собираю пакет с помощью hasher
« Ответ #20 : 26.03.2009 09:45:17 »
install -pm 0755 build/wxluxgui $RPM_BUILD_ROOT%{_bindir}
Как её переделать под ALTLinux и что она означает?

1. install -Dp -m 0755 build/wxluxgui $RPM_BUILD_ROOT%_bindir/wxluxgui
2. install -Dp -m 0755 build/wxluxgui %buildroot%_bindir/wxluxgui

Оффлайн Kompas

  • Завсегдатай
  • *
  • Сообщений: 72
    • Email
Re: Собираю пакет с помощью hasher
« Ответ #21 : 16.05.2009 20:16:02 »
Что не так?
Цитировать
$ hsh -v '/home/kompas/1.src.rpm'

# Часть лога опущена #

Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Selected version fakeroot#1.9.4-alt2 for fakeroot>=0:0.7.3
Следующие дополнительные пакеты будут установлены:
  alt-gpgkeys bzlib coreutils fakeroot getopt glibc-core glibc-preinstall info-install libacl libattr libbeecrypt
  libdb4.4 libelf libpopt librpm librpmbuild libtinfo libzio sh terminfo zlib
Следующие НОВЫЕ пакеты будут установлены:
  alt-gpgkeys bzlib coreutils fakeroot filesystem getopt glibc-core glibc-preinstall info-install libacl libattr
  libbeecrypt libdb4.4 libelf libpopt librpm librpmbuild libtinfo libzio rpm setup sh terminfo zlib
0 будет обновлено, 24 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/6612kB архивов.
После распаковки потребуется дополнительно 15,1MB дискового пространства.
Скачивание пакетов завершено в режиме 'только скачать'.
Чтение списков пакетов...
Построение дерева зависимостей...
Selected version fakeroot#1.9.4-alt2 for fakeroot>=0:0.7.3
Следующие дополнительные пакеты будут установлены:
  alt-gpgkeys bzlib coreutils fakeroot getopt glibc-core glibc-preinstall
  info-install libacl libattr libbeecrypt libdb4.4 libelf libpopt librpm
  librpmbuild libtinfo libzio sh terminfo zlib
Следующие НОВЫЕ пакеты будут установлены:
  alt-gpgkeys bzlib coreutils fakeroot filesystem getopt glibc-core
  glibc-preinstall info-install libacl libattr libbeecrypt libdb4.4 libelf
  libpopt librpm librpmbuild libtinfo libzio rpm setup sh terminfo zlib
0 будет обновлено, 24 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/6612kB архивов.
После распаковки потребуется дополнительно 15,1MB дискового пространства.
hsh-initroot: failed to calculate local package file list.
hsh-initroot: Failed to generate initial package file list.

Drool

  • Гость
Re: Собираю пакет с помощью hasher
« Ответ #22 : 16.05.2009 21:09:02 »
Я так собираю:
hsh --target i586 --mount=/proc --no-sisyphus-check=packager,changelog,gpg ~/hasher ~/hasher/*.src.rpm