Автор Тема: Как создать .src.rpm файл?  (Прочитано 4051 раз)

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Re: Как создать .src.rpm файл?
« Ответ #30 : 14.10.2015 14:16:19 »
RPATH - это переменная chroot-окружения? Как мне ее удалить? И может быть кто-нибудь подскажет нормальную статейку про chroot, мне пока еще не удалось найти ничего путного.

upd. Сделал
$ hsh-shell ~/hasher
$ unset RPATH
- не помогло.
« Последнее редактирование: 14.10.2015 14:37:17 от hasculdr »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 108
Re: Как создать .src.rpm файл?
« Ответ #31 : 14.10.2015 15:02:46 »
RPATH - это переменная chroot-окружения?
Нет: https://www.altlinux.org/ProblemWithVerifyELFAndRPATH

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Re: Как создать .src.rpm файл?
« Ответ #32 : 14.10.2015 15:51:26 »
Искал RPATH в распакованном архиве исходников:
Цитировать
$ grep -r RPATH ./geany-1.25
./geany-1.25/src/Makefile.am:# doesn't add RPATH, but ld requires explicit ldconfig there, unlike when
./geany-1.25/src/Makefile.in:# doesn't add RPATH, but ld requires explicit ldconfig there, unlike when
./geany-1.25/ChangeLog:    as a system path so doesn't add RPATH to our executable, but ld can't
Все три совпадения - комментарии для ubuntu. Где еще можно поискать? И что значит "удалить с помощью chroot"?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 935
    • Домашняя страница
    • Email
Re: Как создать .src.rpm файл?
« Ответ #33 : 14.10.2015 16:19:19 »
Пардон, опечатался. chrpath
Андрей Черепанов (cas@)

dango

  • Гость
Re: Как создать .src.rpm файл?
« Ответ #34 : 14.10.2015 17:53:35 »
Как перейти на http?
rpm [p7] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/p7/branch x86_64 classic
rpm [p7] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/p7/branch x86_64-i586 classic
rpm [p7] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/p7/branch noarch classic
Файлы:
/etc/apt/sources.list
/etc/apt/sources.list.d/alt.list
Ищем раскомментированные строчки, где ftp://ftp.altlinux.org....
и меняем на http://ftp.altlinux.org....
Пример:
rpm [p7] http://ftp.altlinux.org/pub/distributions/ALTLinux/p7/branch x86_64-i586 classic
rpm [p7] http://ftp.altlinux.org/pub/distributions/ALTLinux/p7/branch noarch classic
А да поправят меня опытные товарищи :-)

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 9 001
Re: Как создать .src.rpm файл?
« Ответ #35 : 14.10.2015 18:28:03 »
Ищем раскомментированные строчки, где ftp://ftp.altlinux.org....
и меняем на http://ftp.altlinux.org....
Зачем менять, когда в списке должны быть строчки и с ftp и c http. Надо просто ftp закоментировать, с http раскоментировать.

dango

  • Гость
Re: Как создать .src.rpm файл?
« Ответ #36 : 14.10.2015 18:45:23 »
Зачем менять, когда в списке должны быть строчки и с ftp и c http. Надо просто ftp закоментировать, с http раскоментировать.
Или так. Да. Съехал с p7 на Сизиф, так что смотрю оттуда.

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Re: Как создать .src.rpm файл?
« Ответ #37 : 15.10.2015 11:58:00 »
Цитировать
CHRPATH(1)        change rpath/runpath in binaries        CHRPATH(1)



NAME
       chrpath - change the rpath or runpath in binaries

SYNOPSIS
       chrpath  [  -v | --version ] [ -d | --delete ] [ -r <path> |
       --replace <path> ] [ -c | --convert ] [ -l | --list ] [ -h  |
       --help ] <program> [ <program> ... ]

DESCRIPTION
       chrpath  changes,  lists or removes the rpath or runpath set‐
       ting in a binary.  The rpath, or runpath if it is present, is
       where the runtime linker should look for the libraries needed
       for a program.

OPTIONS
       -v | --version
              Display program version number

       -d | --delete
              Delete current rpath or runpath setting

       -c | --convert
              Convert the rpath setting into a runpath setting

       -r <path> | --replace <path>
              Replace current rpath or runpath setting with the path
              given

       -k | --keepgoing
              Do  not fail on first error, but process all arguments
              before returning the error.

       -l | --list
              List the current rpath or runpath (default)

       -h | --help
              Show usage information.

EXIT STATUS
       0      If all operations were successful

       >0     if one of the operations failed.  A failing  operation
              terminates the program unless -k is specified.
Где нужно выполнять $ chrpath -d - в hasher'е, или на хост-системе? Я установил его в hasher, и эта команда не дала мне вывода. Ошибки компиляции остались те же. Как после ключика писать имя программы - она же еще не установлена?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 108
Re: Как создать .src.rpm файл?
« Ответ #38 : 15.10.2015 14:26:04 »
Ошибки компиляции остались те же. Как после ключика писать имя программы - она же еще не установлена?
Это в спеке надо. Примеры борьбы с rpath (не только посредством chrpath) из разных пакетов:

Это из бинарников (в данных примерах, из библиотек) удаляется, так что, после сборки:
find %buildroot -type f -name \*.so | while read f; do chrpath -d $f; donechrpath -d `find $RPM_BUILD_ROOT%perl_vendor_autolib -type f -name '*.so'`
Это сразу после выполнения configure:
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool

Это до configure, из расчёта на то, что тарбол подготовлен с использованием autotools с багом:
%autoreconf

Ещё можно --disable-rpath у самого configure, если есть. Вариантов вагон.

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Re: Как создать .src.rpm файл?
« Ответ #39 : 15.10.2015 14:47:58 »
Я, вроде бы, и не собирал ничего - делал сразу .src.rpm из скачанного с оф. сайта .tar.bz2 архива.
upd. я в hasher пытаюсь делать.
« Последнее редактирование: 15.10.2015 15:07:04 от hasculdr »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 108
Re: Как создать .src.rpm файл?
« Ответ #40 : 15.10.2015 15:45:20 »
Я, вроде бы, и не собирал ничего - делал сразу .src.rpm
Ну так из .src.rpm потом бинарный пакет собирался ? Вот он проходит все стадии проверок обычных.

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Re: Как создать .src.rpm файл?
« Ответ #41 : 15.10.2015 15:54:40 »
Собирался, наверно, все-таки обычный .rpm:
hsh --no-sisyphus-check ~/RPM/SRPMS/geany-1.25-alt1.src.rpmhasher умеет что-нибудь типа --disable-rpath?
Цитировать
Это в спеке надо.
Цитировать
%build
[править]  %configure

Макрос используется для упрощения выполнения ./configure с соответствующими параметрами данной платформы. Почти всегда вполне достаточно выполнить %configure без параметров. От имени пользователя данный макрос работать не будет.

 %build
 %configure
 %make_build
Пойду попробую так.

upd.
Цитировать
%build
%configure --docdir=%_defaultdocdir/%name-%version --disable-rpath
не помогло(.
« Последнее редактирование: 15.10.2015 16:02:17 от hasculdr »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 108
Re: Как создать .src.rpm файл?
« Ответ #42 : 15.10.2015 17:23:51 »
hasher умеет что-нибудь типа --disable-rpath?
Это параметр для вызова configure. Но он может и не поддерживаться. То есть, это зависит от того, что в исходном тарболе, и не имеет отношения к hasher.

    %configure --docdir=%_defaultdocdir/%name-%version --disable-rpathне помогло(.
./configure --help показывает наличие такого параметра ?
« Последнее редактирование: 15.10.2015 22:52:07 от asy »

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Re: Как создать .src.rpm файл?
« Ответ #43 : 15.10.2015 22:50:48 »
./configure --help показывает наличие такого параметра ?
Я думал, что если ошибку не выдало - значит поддерживает) Завтра проверю.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 258
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Как создать .src.rpm файл?
« Ответ #44 : 16.10.2015 00:15:34 »
Я думал, что если ошибку не выдало - значит поддерживает
не факт.