LINUX.ORG.RU

SPEC файл для сборки Emacs из исходников

 , , , ,


0

2

Помогите пожалуйста составить SPEC файл для сборки PRM пакета Emacs под Fedora из исходников на github'е: https://github.com/emacs-mirror/emacs. Именно из этих исходников, т.к. только тут версия emacs 25+

P.S. и еще такой нюанс: мне нужен RPM пакет как самого emacs, так и emacs-nox, так вот, последний как получить на выходе?



Последнее исправление: volodlebedev (всего исправлений: 1)

P.S. и еще такой нюанс: мне нужен RPM пакет как самого emacs, так и emacs-nox, так вот, последний как получить на выходе?

./configure --with-x=no

ufayan
()
Ответ на: комментарий от volodlebedev

оффтопик

В пределах одной темы, если не так уж и сильно от нее удаляться, это не страшно.

DeadEye ★★★★★
()

Ну так возьми целиком готовый пакет из Fedora и адаптируй для снапшота из git.

Пакет из rawhide: https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/source/SRPM...
Информация о том, как по феншую опакетить снапшот из системы контроля версий: https://fedoraproject.org/wiki/Packaging:SourceURL#Using_Revision_Control, https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Snapshot_packages

Ну и весь остальной Fedora Packaging Guide наверное придётся прочитать, и какое-нибудь онлайн-руководство по rpm (особенно про подпакеты), чтобы не было вопросов типа "а как сделать чтобы ещё получался пакет -nox".

d_a ★★★★★
()

Самый простой способ — скомпилировать, make install в какой-нибудь локальный префикс, потом это собрать в пакет.

staseg ★★★★★
()
Ответ на: комментарий от staseg

Самый простой способ — скомпилировать, make install в какой-нибудь локальный префикс, потом это собрать в пакет.

а make install c локальным префиксом точно не нагадит в системе?

volodlebedev
() автор топика

Для отправной точки я бы начал с dnf download --source emacs. Оттуда бы вытащил spec и попробовал собрать с ним. Ошибки исправил и в итоге получил бы нужный rpm.

AlexKiriukha ★★★★
()
Ответ на: комментарий от vosempopugaev

а как в rawhide пакеты искать, не подскажите?

Я просто через поисковик ищу (i.e. google). Но у меня не федора. А так можно же его подключить к остальным репам в выключенном состоянии и искать через интерфейс yum/dnf.

d_a ★★★★★
()
Ответ на: комментарий от AlexKiriukha

Для отправной точки я бы начал с dnf download --source emacs. Оттуда бы вытащил spec и попробовал собрать с ним. Ошибки исправил и в итоге получил бы нужный rpm.

скачал, тут нет spec файла

volodlebedev
() автор топика
Ответ на: комментарий от volodlebedev

Не нагадит. Чрутнись или залезь в контейнер, если уж совсем ссышься :)

Вообще я обычно именно так собираю deb/rpm, не люблю со всякими spec-ами и rpmbuild-ами возиться.

staseg ★★★★★
()
Ответ на: комментарий от staseg

Самый простой способ — скомпилировать, make install в какой-нибудь локальный префикс, потом это собрать в пакет.
Вообще я обычно именно так собираю deb/rpm, не люблю со всякими spec-ами и rpmbuild-ами возиться.

А как скомпилированный пакет без rpmbuild собрать?

volodlebedev
() автор топика
Ответ на: комментарий от volodlebedev

скачал, тут нет spec файла

У меня есть. Скачался emacs-24.5-6.fc23.src.rpm, захожу тупо в пакет в помощью mc, дальше CONTENTS.cpio, в нём исходники, патчи и emacs.spec.

AlexKiriukha ★★★★
()
Ответ на: комментарий от kawaii_neko

Хочется интересно — возьми gentoo и не мучай себя.

во фряхе сидел пару лет, вот то было интересно)) никогда бы с нее на linux не перешел, если бы бакула у меня на ней не не уперлась в какой-то глюк непреодолимый, сейчас подмывает иногда вернуться, прям аж под ложечкой щекочет)) стройная система, правильная, [антисрач] не то что linux [/антисрач]

volodlebedev
() автор топика
Ответ на: комментарий от AlexKiriukha

У меня есть. Скачался emacs-24.5-6.fc23.src.rpm, захожу тупо в пакет в помощью mc, дальше CONTENTS.cpio, в нём исходники, патчи и emacs.spec.

сории, в CONTENTS.cpio не догадался заглянуть, в /INFO искал

volodlebedev
() автор топика
Ответ на: комментарий от AlexKiriukha

посмотрел emacs.spec из emacs-24.5-6.fc23.src.rpm, он же ппц какой огромный! а что, если я сгенерирую минимальный шаблон через:

rpmdev-newspec
и подправлю его малость, это не алгоритм решения вопроса со spec файлом? не соберется пакет у меня? обязательно надо полный за основу брать из готового исходника?

volodlebedev
() автор топика

http://wiki.russianfedora.pro/index.php?title=Как_пересобрать_RPM-пакет

править готовый спек лучше, потому что с rpmdev-newspec ты половину зависимостей потеряешь или %files неправильно напишешь или desktop-файл не положишь.

Заменить исходный тарбол в готовом спеке - это даже проще чем патч наложить, в хорошем случае достаточно поменять строку Sources: в спеке и Release: на единичку увеличить.

А вообще ты если взялся всё пересобирать непонятно по какой причине - потрать время и почитай нормальную доку. Рандомно искать помощи по форумам и копипастить из гугла - так много не насобираешь, только замучишься зря.

alpha ★★★★★
()
Ответ на: комментарий от alpha

потрать время и почитай нормальную доку

доку уже перечитал всю, а те вопросы которые я задаю, не освещаются в доках, например, про заимствование spec файла из готовых пакетов.

ну, в общем, у меня еще вопрос :)

допустим, я не хочу собирать emacs, а мне нужен только emacs-nox, я делаю ./configure --with-x=no, но как быть в этом случае с именованием пакетов, будет ли в этом случае идти речь о субпакете, или можно его собирать как обычный пакет с именем emacs, который на самом деле будет emacs-nox?

volodlebedev
() автор топика
Ответ на: комментарий от volodlebedev

допустим, я не хочу собирать emacs, а мне нужен только emacs-nox

Различай «ставить» и «собирать». Собрать надо всё целиком, от этого тебе ничего плохого, а спек не надо ломать зря. А вот ставить ты потом можешь только подпакет emacs-nox _И_ ещё его зависимость, emacs-common. Который из того же спека соберется.

alpha ★★★★★
()
Ответ на: комментарий от alpha

а как из сорцов с git'а собирать? надо обязательно тарбол последнего коммита делать? или можно просто все скопировать в source без архивирования? тогда что в спек файле писать в source? и есть ли вообще какие-нить нюансы при сборке с git? в доках только про тарбол архивы пишут..

anonymous
()
Ответ на: комментарий от anonymous

да, из стандартного спека (из одного src.rpm) будет собрано как минимум четыре бинарных пакета в итоге: emacs-common, emacs, emacs-nox, emacs-debuginfo

alpha ★★★★★
()

Именно из этих исходников, т.к. только тут версия emacs 25+

будь мужиком, собирай из bzr руками

anonymous
()
Ответ на: комментарий от alpha

да, запаковать в тарбол

а как же make rpm?

anonymous
()

Я уже давно ставлю его и разный другой софт из nix. Что и тебе рекомендую.

loz ★★★★★
()
Ответ на: комментарий от alpha

Различай «ставить» и «собирать». Собрать надо всё целиком, от этого тебе ничего плохого, а спек не надо ломать зря. А вот ставить ты потом можешь только подпакет emacs-nox _И_ ещё его зависимость, emacs-common. Который из того же спека соберется.

ясно, спасибо. тока насчет тарбола не понятно, почему нельзя сорцы использовать?

volodlebedev
() автор топика
Ответ на: комментарий от staseg

Самый простой способ — скомпилировать, make install в какой-нибудь локальный префикс, потом это собрать в пакет.

а разве для этого spec файл не нужен? почему автору это проще должно быть?

vosempopugaev
()
Ответ на: комментарий от volodlebedev

стройная система, правильная

но, увы, ненужная

lazyklimm ★★★★★
()
Ответ на: комментарий от alpha

./make-dist: You must set the EMACS environment variable to an absolute file name.

это при попытке сделать тарбол файлом make-dist.

подскажите пожалуйста где и как эти переменные прописать? Гугл ответа не даёт

anonymous
()
Ответ на: комментарий от anonymous

не надо «делать тарбол», надо с гитхаба его скачать просто

Типа такого:

https://github.com/emacs-mirror/emacs/archive/0880d5f6e1ad5006a022416cd21b974...

Вот так примерно пишется Sources и %prep в спеке:

https://fedoraproject.org/wiki/Packaging:SourceURL?rd=Packaging/SourceURL#Com...

alpha ★★★★★
()
Ответ на: комментарий от volodlebedev

Ты шутишь? У любого коммита есть ссылка вида https://github.com/emacs-mirror/emacs/archive/39355bc045874874eb83cecdf2e2e04c3b81d3f7.tar.gz

Deleted
()
Ответ на: комментарий от volodlebedev

«39355bc045874874eb83cecdf2e2e04c3b81d3f7» идентификатор коммита, «github.com/emacs-mirror/emacs/archive» - репа, «tar.gz» - формат архива (можно еще zip)

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.