Автор Тема: Пересборка dynamips [решено]  (Прочитано 784 раз)

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Пересборка dynamips [решено]
« : 30.11.2015 10:13:56 »
Хочу обновить для себя некоторые пакеты, нужна подсказка. Застрял в таком месте:
Проблемная секция
Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.25571
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ /bin/chmod -Rf u+rwX -- /usr/src/tmp/dynamips-buildroot
+ :
+ /bin/rm -rf -- /usr/src/tmp/dynamips-buildroot
+ cd dynamips-0.2.14
+ make install DESTDIR=/usr/src/tmp/dynamips-buildroot
make: Entering directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
make[1]: Entering directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
make[2]: Entering directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
make[2]: Leaving directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
[  1%] Built target rom2c
make[2]: Entering directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
make[2]: Leaving directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
[  1%] Built target mips64_microcode_dump_stable
make[2]: Entering directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
make[2]: Leaving directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
[  2%] Built target ppc32_microcode_dump_stable
make[2]: Entering directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
make[2]: Leaving directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
[ 98%] Built target dynamips_amd64_stable
make[2]: Entering directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
make[2]: Leaving directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
[100%] Built target nvram_export
make[1]: Leaving directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
Install the project...
-- Install configuration: ""
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/share/doc/dynamips/ChangeLog
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/share/doc/dynamips/COPYING
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/share/doc/dynamips/MAINTAINERS
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/share/doc/dynamips/README
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/share/doc/dynamips/README.hypervisor
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/share/doc/dynamips/RELEASE-NOTES
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/share/doc/dynamips/TODO
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/share/man/man1/dynamips.1
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/share/man/man1/nvram_export.1
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/share/man/man7/hypervisor_mode.7
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/bin/nvram_export
-- Installing: /usr/src/tmp/dynamips-buildroot/usr/local/bin/dynamips
make: Leaving directory `/usr/src/RPM/BUILD/dynamips-0.2.14'
+ install -d /usr/src/tmp/dynamips-buildroot/var/lib/dynamips/labs /usr/src/tmp/dynamips-buildroot/var/lib/dynamips/images
+ /usr/lib/rpm/brp-alt
Cleaning files in /usr/src/tmp/dynamips-buildroot (auto)
Verifying and fixing files in /usr/src/tmp/dynamips-buildroot (binconfig,pkgconfig,libtool,desktop)
Compressing files in /usr/src/tmp/dynamips-buildroot (auto)
Adjusting library links in /usr/src/tmp/dynamips-buildroot
./var/lib:
Verifying ELF objects in /usr/src/tmp/dynamips-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal)
Hardlinking identical .pyc and .pyo files
Processing files: dynamips-0.2.14-hasculdr
error: File not found by glob: /usr/src/tmp/dynamips-buildroot/usr/share/man/man1/*
error: File not found by glob: /usr/src/tmp/dynamips-buildroot/usr/share/man/man7/hypervisor_mode.7*
error: File not found by glob: /usr/src/tmp/dynamips-buildroot/usr/bin/*
Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.25571
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd dynamips-0.2.14
+ DOCDIR=/usr/src/tmp/dynamips-buildroot/usr/share/doc/dynamips-0.2.14
+ export DOCDIR
+ rm -rf /usr/src/tmp/dynamips-buildroot/usr/share/doc/dynamips-0.2.14
+ /bin/mkdir -p /usr/src/tmp/dynamips-buildroot/usr/share/doc/dynamips-0.2.14
+ cp -prL COPYING README README.hypervisor README.md TODO ChangeLog RELEASE-NOTES /usr/src/tmp/dynamips-buildroot/usr/share/doc/dynamips-0.2.14
+ chmod -R go-w /usr/src/tmp/dynamips-buildroot/usr/share/doc/dynamips-0.2.14
+ chmod -R a+rX /usr/src/tmp/dynamips-buildroot/usr/share/doc/dynamips-0.2.14
+ exit 0


RPM build errors:
    File not found by glob: /usr/src/tmp/dynamips-buildroot/usr/share/man/man1/*
    File not found by glob: /usr/src/tmp/dynamips-buildroot/usr/share/man/man7/hypervisor_mode.7*
    File not found by glob: /usr/src/tmp/dynamips-buildroot/usr/bin/*
Command exited with non-zero status 1
36.17user 4.34system 0:44.91elapsed 90%CPU (0avgtext+0avgdata 32116maxresident)k
0inputs+59672outputs (3major+2192899minor)pagefaults 0swaps
hsh-rebuild: rebuild of `dynamips-0.2.14-hasculdr.src.rpm' failed.
Спек
Name: dynamips
Version: 0.2.14
Release: hasculdr

Summary: Cisco 7200 Simulator
License: GPLv2
Group: Emulators

Url: http://www.gns3.com/

Source: ~/RPM/SOURCES/%name-%version.tar

BuildRequires: libelf-devel libpcap-devel libuuid-devel, cmake

%description
A project to emulate a Cisco 7200 on a traditionnal PC.
The emulator currently supports the following platforms:
- Cisco 7200 (NPE-100 to NPE-400)
- Cisco 3600 (3620, 3640 and 3660)
- Cisco 2691
- Cisco 3725
- Cisco 3745
- Cisco 2600 (2610 to 2650XM)
- Cisco 1700 (1710 to 1760)

The goals of this emulator are mainly:
   * To be used as a training platform, with software used in real world. It
     would allow people to become more familiar with Cisco devices, Cisco
     being the world leader in networking technologies ;
   * Test and experiment the numerous and powerful features of Cisco IOS ;
   * Check quickly configurations to be deployed later on real routers.

%prep
%setup

%build
cmake .
%make

%install
%make install DESTDIR=%buildroot
install -d %buildroot%_localstatedir/%name/{labs,images}

%files
%doc COPYING README* TODO ChangeLog RELEASE-NOTES
%_man1dir/*
%_man7dir/hypervisor_mode.7*
#/usr/src/tmp/dynamips-buildroot/usr/share/man/
#/usr/src/tmp/dynamips-buildroot/usr/share/man/man7/hypervisor_mode.7
%_bindir/*
#/usr/src/tmp/dynamips-buildroot/usr/bin/
%dir %_localstatedir/%name/images
%dir %_localstatedir/%name/labs
#%_datadir/images
#%_datadir/labs
Секцию %files вернул в состояние из Сизифа (0.2.10)
« Последнее редактирование: 03.12.2015 18:20:47 от sb »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 258
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Пересборка dynamips
« Ответ #1 : 30.11.2015 10:26:24 »
А что у вас прописано в .rpmmacros или как там, пишу имя по памяти.

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Re: Пересборка dynamips
« Ответ #2 : 30.11.2015 14:41:28 »
А что у вас прописано в .rpmmacros или как там, пишу имя по памяти.
Цитировать
$ cat ~/.rpmmacros
%_topdir   %homedir/RPM
%_tmppath   %homedir/tmp

# %packager   Joe Hacker <joe@email.address>
# %_gpg_name   joe@email.address
Изменил спек до такого состояния:
Цитировать
%prep
%setup

%build
cmake .
%make

%install
%make_install DESTDIR=%buildroot install

%files
/usr/local/share/doc/dynamips/ChangeLog
/usr/local/share/doc/dynamips/COPYING
/usr/local/share/doc/dynamips/MAINTAINERS
/usr/local/share/doc/dynamips/README
/usr/local/share/doc/dynamips/README.hypervisor
/usr/local/share/doc/dynamips/RELEASE-NOTES
/usr/local/share/doc/dynamips/TODO
/usr/local/bin/nvram_export
/usr/local/bin/dynamips
сборка заканчивается сообщением
Цитировать
warning: Installed (but unpackaged) file(s) found:
    /usr/local/share/man/man1/dynamips.1.gz
    /usr/local/share/man/man1/nvram_export.1.gz
    /usr/local/share/man/man7/hypervisor_mode.7.gz
Сейчас и их допишу в %files построчно. Никак не разберусь с макросами в путях, и не знаю как посмотреть временные файлы - после ошибок сборки chroot-каталоги сборки уже пустые.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 258
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Пересборка dynamips
« Ответ #3 : 30.11.2015 15:25:44 »
/usr/local/share/
Какое-то странное место для rpm. Это место для приложений, устанавливаемых через configure+make+install

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 258
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Пересборка dynamips
« Ответ #4 : 30.11.2015 15:27:01 »
Никак не разберусь с макросами в путях
rpm --showrc | less

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 258
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Пересборка dynamips
« Ответ #5 : 30.11.2015 15:28:15 »
/usr/local/share/doc/dynamips/ChangeLog
%docdir/ChangeLog

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 258
  • Учиться .... Телепатами не рождаются, ими ....
    • Email

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Re: Пересборка dynamips
« Ответ #7 : 30.11.2015 18:43:41 »
/usr/local/share/
Какое-то странное место для rpm. Это место для приложений, устанавливаемых через configure+make+install
Правильно - без "local"? %_bindir=/usr/bin, %_datadir=/usr/share, %_docdir=/usr/share/doc? Будет разница, например, между %_docdir и %_docdir/*?
В случае с этим пакетом, мне нужно изменять опцию у cmake, или у make install? И еще немножко не понял с %buildroot - это /usr/src/tmp/имя_пакета?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 258
  • Учиться .... Телепатами не рождаются, ими ....
    • Email

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Re: Пересборка dynamips
« Ответ #9 : 03.12.2015 17:52:27 »
Цитировать
%build
%cmake_insource . -DCMAKE_INSTALL_PREFIX=%prefix
%make_build
Цитировать
Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.2595
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd dynamips-0.2.14
+ cmake_insource . -DCMAKE_INSTALL_PREFIX=/usr
/usr/src/tmp/rpm-tmp.2595: line 92: cmake_insource: command not found
error: Bad exit status from /usr/src/tmp/rpm-tmp.2595 (%build)
По инструкции команда сборки cmake_insource не выполнилась. Красным выделил параметр из readme.
Цитировать
%build
cmake . -DCMAKE_INSTALL_PREFIX=%prefix
%make_build
А вот так собралось с "правильными" путями. Но в названии документации не присутствует номер версии (сравнивал с "фирменным" пакетом из p7).