Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Knoppix

Модераторы: Warderer, Модераторы разделов

Ответить
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение жучара »

Друзья! То есть везде-везде если мы скачаем исходники файлов, мы видим файл *.orig.tar.g(x)z. Реже видим файл *.tar.g(x)z

В этой книжке
https://www.debian.org/doc/manuals/debmake-doc/index.ru.html
сказано, что нужно скачать файл *.tar.g(x)z, потом его каким-то образом поправить, потом пересобрать.

Так если мы его пересобираем, значит, на выходе в самом общем случае должны быть такие исходники (смотрим расширения):

debhello_0.0-1.debian.tar.xz, debhello_0.0-1.dsc и debhello_0.0.orig.tar.gz

Их можно загружать на сервер, из них потом можно кропать *.deb файл. Чтобы всех запутать, там какие-то ещё файлы на выходе типа debhello_0.0-1_amd64.changes, но я заметил, что если качать исходники, часто скачиваются эти три. Например, исходники file

Shell

user@astra:~/$ apt-get source -d file
Чтение списков пакетов… Готово
Необходимо получить 621 kб архивов исходного кода.
Пол:1 http://mirror.yandex.ru/astra/stable/orel/repository orel/main file 1:5.30-1+deb9u1 (dsc) [2 321 B]
Пол:2 http://mirror.yandex.ru/astra/stable/orel/repository orel/main file 1:5.30-1+deb9u1 (tar) [579 kB]
Пол:3 http://mirror.yandex.ru/astra/stable/orel/repository orel/main file 1:5.30-1+deb9u1 (diff) [39,6 kB]
Получено 621 kБ за 0с (1 319 kБ/c)
Указан режим «только скачивание», и скачивание завершено
user@astra:~/$
user@astra:~/$ ls
file_5.30-1+deb9u1.debian.tar.xz file_5.30-1+deb9u1.dsc file_5.30.orig.tar.xz
user@astra:~/bar$
О чём и речь.

А теперь вопрос- я прочёл и понять не могу, автор когда успевает создать файл *.orig.tar.g(x)z? С самого начала он солздаёт ТОЛЬКО ССЫЛКУ на файл *.tar.g(x)z с помощью команды debmake:

ln -sf debhello-0.0.tar.gz debhello_0.0.orig.tar.gz

Но на минуточку, нам ссылка не нужна. Нам нужна КОПИЯ *.tar.g(x)z

Ну там он в нескольких местах упоминает, что копия должна быть:

https://www.debian.org/doc/manuals/debmake-doc/ch05.ru.html#workflow
"Архив основной ветки разработки копируется (или создаётся символьная ссылка на него) в файл со специальным именем имяпакета_версия.orig.tar.gz."
"пакет_версия.orig.tar.gz (копия или символьная ссылка на пакет-версия.tar.gz)"
Ну то есть быть-то она должна, а когда создавать её- хрен её знает.

Ещё цитата
"When the orig.tar.gz file needs to be uploaded for a Debian revision other than 0 or 1 (e.g., for a security upload), add the -sa option to the end of dpkg-buildpackage, debuild, pdebuild, and git-pbuilder commands. For the “gbp buildpackage” command, temporarily modify the builder setting of ~/.gbp.conf."
Автор использует debuild; debuild -sa не канает.

То есть я могу, конечно, команднуть debmake, у меня создастся

Shell

ls -l *orig*
lrwxrwxrwx 1 user user 19 апр 25 19:00 debhello_0.0.orig.tar.gz -> debhello-0.0.tar.gz
А потом ссылку заменить на копию, но это же несерьёзно, честное слово.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=

Вот в этой книжке, например:
https://www.debian.org/doc/manuals/maint-guide/index.ru.html

Сразу копия создаётся, так там без вопросов. Там нужно команднуть не debmake, а dh_make -f ../gentoo-0.9.12.tar.gz и всё будет OK.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=

В общем, вопрос, что делать-то, когда копию создавать? Может, я момент где просмотрел? Хотя вряд ли. Спасибо, кто откликнется.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение Bizdelnick »

Да нет никакой разницы, ссылка там или копия. Внутри-то одно и то же.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение Hephaestus »

жучара писал(а):
25.04.2020 17:21
Ну то есть быть-то она должна, а когда создавать её- хрен её знает.
Вообще-то packagename_version.orig.tar.gz - это первоначальные исходники,
а packagename_version.tar.gz - это они же, но измененные в процессе создания пакета.
Вот и решайте, кого из них когда создавать. По идее orig-файл вообще создавать не надо - он есть изначально, с него всё начинается. Это просто переименованный тарбол из мейнстрима.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение жучара »

Bizdelnick писал:
25.04.2020 18:28
Да нет никакой разницы, ссылка там или копия. Внутри-то одно и то же.
так есть разница ссылка или копия. Чё-то никто не закидывает в репозиторий исходники, где *orig* -ссылка, а закидывают такие сырцы, где *orig* -копия. Ещё раз код скачивания исходников из первого поста.

Shell

user@astra:~/$ apt-get source -d file
Чтение списков пакетов… Готово
Необходимо получить 621 kб архивов исходного кода.
Пол:1 http://mirror.yandex.ru/astra/stable/orel/repository orel/main file 1:5.30-1+deb9u1 (dsc) [2 321 B]
Пол:2 http://mirror.yandex.ru/astra/stable/orel/repository orel/main file 1:5.30-1+deb9u1 (tar) [579 kB]
Пол:3 http://mirror.yandex.ru/astra/stable/orel/repository orel/main file 1:5.30-1+deb9u1 (diff) [39,6 kB]
Получено 621 kБ за 0с (1 319 kБ/c)
Указан режим «только скачивание», и скачивание завершено
user@astra:~/$
user@astra:~/$ ls
file_5.30-1+deb9u1.debian.tar.xz file_5.30-1+deb9u1.dsc file_5.30.orig.tar.xz
user@astra:~/$
здесь file_5.30.orig.tar.xz- файл-копия, а не ссылка. Когда в течении всей книги автор создаёт файл-копию, я не понял. хотелось бы понять, второй раз пишу.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение жучара »

Hephaestus писал:
25.04.2020 20:10
жучара писал(а):
25.04.2020 17:21
Ну то есть быть-то она должна, а когда создавать её- хрен её знает.
Вообще-то packagename_version.orig.tar.gz - это первоначальные исходники,
а packagename_version.tar.gz - это они же, но измененные в процессе создания пакета.
Вот и решайте, кого из них когда создавать. По идее orig-файл вообще создавать не надо - он есть изначально, с него всё начинается. Это просто переименованный тарбол из мейнстрима.
по тону увидел возражение, но сути не просёк. Говорим о том, что ранее? Ранее tar.gz из него делается orig.tar.gz. Так?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение Bizdelnick »

Hephaestus писал:
25.04.2020 20:10
Вообще-то packagename_version.orig.tar.gz - это первоначальные исходники,
а packagename_version.tar.gz - это они же, но измененные в процессе создания пакета.
Нет. Никакого архива, «изменённого в процессе создания пакета», не создаётся.
жучара писал(а):
25.04.2020 20:28
так есть разница ссылка или копия. Чё-то никто не закидывает в репозиторий исходники, где *orig* -ссылка
Конечно, не закидывает. Даже если это и ссылка у «закидывающего», «закинуто» будет то, на что она указывает. Вам надо разбираться не с тем, что и как «закидывается», а с тем, как работают симлинки.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение Hephaestus »

жучара писал(а):
25.04.2020 20:28
Чё-то никто не закидывает в репозиторий исходники, где *orig* -ссылка, а закидывают такие сырцы, где *orig* -копия.
Когда пакет будет собран, в него ляжет копия, а не ссылка. Разыменованная ссылка, иначе говоря.
Хотя здесь я могу ошибаться, я ссылки не использовал.

Если опираться на руководство по Вашей первой ссылке, то там всё написано прямым текстом, буквально по шагам, Вы же это и цитировали выше:
1. Загружается tar-архив основной ветки разработки в виде файла пакет-версия.tar.gz.
2. Этот архив распаковывается, создаётся множество файлов в каталоге пакет-версия/.
3. Архив основной ветки разработки копируется (или создаётся символьная ссылка на него) в файл со специальным именем имяпакета_версия.orig.tar.gz.
Это к вопросу о том, когда создается orig-файл.
Другими словами:
1. Скачали исходный тарбол.
2. Распаковали его. Получили каталог с файлами.
3. Файл исходного тарбола из п.1 скопировали в файл с именем orig-файл, либо создали ссылку с именем orig-файл.
Вот ровно в этот момент orig-файл и создается.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение жучара »

Bizdelnick писал:
25.04.2020 21:39
Конечно, не закидывает. Даже если это и ссылка у «закидывающего», «закинуто» будет то, на что она указывает. Вам надо разбираться не с тем, что и как «закидывается», а с тем, как работают симлинки.
сейчас попробовал закинуть исходники в репозиторий. Получилось так: при наличии ссылки
hehs_1.orig.tar.gz -> hehs-1.tar.gz
Генерится файл hehs_1.orig.tar.gz, равный hehs-1.tar.gz и закидывается. Вы-то, наверное, знали, а я смутно предполагал, но сейчас только смог чуть-чуть разобраться.
Hephaestus писал:
25.04.2020 21:56
Это к вопросу о том, когда создается orig-файл.
он, похоже, и не создаётся вовсе. Автор забил на создание. Он, видать, закидывает сырцы в репозиторий
(я, например. это делал так: reprepro -b repozitoti includedsc ...)
И на этом всё, в репозитории- нужный файл.
А нам периодически говорит про копию, чтобы запутать
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение Bizdelnick »

Да ну, Вас запутывать скучно, Вы сами прекрасно запутываетесь без посторонней помощи. Даже по ссылке идти не надо, Вы сами процитировали нужный кусок:
жучара писал(а):
25.04.2020 17:21
"Архив основной ветки разработки копируется (или создаётся символьная ссылка на него) в файл со специальным именем имяпакета_версия.orig.tar.gz."
"пакет_версия.orig.tar.gz (копия или символьная ссылка на пакет-версия.tar.gz)"
Что тут можно не так понять? Вам что, незнакомо значение союза «или»?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение жучара »

Bizdelnick писал:
28.04.2020 18:17
Что тут можно не так понять?
как создаётся копия.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение Hephaestus »

жучара писал(а):
28.04.2020 19:18
как создаётся копия
Молча.
Выполняете вот эти три шага:
1. Загружается tar-архив основной ветки разработки в виде файла пакет-версия.tar.gz.
2. Этот архив распаковывается, создаётся множество файлов в каталоге пакет-версия/.
3. Архив основной ветки разработки копируется (или создаётся символьная ссылка на него) в файл со специальным именем имяпакета_версия.orig.tar.gz.
И на третьем шаге получаете копию (ну или ссылку, если угодно).
Стесняюсь спросить, Вы когда действовали по инструкции, эти три шага выполняли или нет? Или Вы только читаете?
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение жучара »

Hephaestus писал:
28.04.2020 20:30
Стесняюсь спросить, Вы когда действовали по инструкции, эти три шага выполняли или нет?
нет. Потому, что автор такой шалунишка. Всю дорогу говорит о файле debhello-0.0.tar.gz, приводя команды
wget http://www.example.org/download/debhello-0.0.tar.gz

а файла debhello-0.0.tar.gz в природе нет, где он его взял- хз. Как сделать копию несуществующего debhello-0.0.tar.gz- опять хз. А виноват я.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение Hephaestus »

жучара писал(а):
28.04.2020 22:34
нет. Потому, что автор такой шалунишка.
Да уж.
Вообще-то три вышеупомянутых шага (которые и Вы цитировали, в том числе)
в инструкции изложены в разделе "5.1. Работа по созданию пакета".
Никаких конкретных имен пакетов в этом разделе нет. Только общие указания.
Если Вы этих указаний придерживались, проблем быть не должно.
В конце концов, Вы же догадались скачать и распаковать тарбол с исходниками, не так ли?
Вот уже два шага выполнены. Ну и третий шаг сделайте сразу же. В чём проблема-то?
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение жучара »

Hephaestus писал:
29.04.2020 20:41
Вы же догадались скачать и распаковать тарбол с исходниками, не так ли?
да не скачал я его. Нету его в природе, как ещё объяснить?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение Hephaestus »

жучара писал(а):
30.04.2020 15:55
Нету его в природе
:doh: :doh: :doh: Ох...
Я удивляюсь, как у Вас вообще что-то получается в линуксах с таким подходом.
Так мы докатимся до чтения документации вслух.
Ладно, для большей достоверности цитирую руководство по Вашей первой ссылке:
4.4. Шаг 1: получение исходного кода основной ветки разработки

Получим исходный код основной ветки разработки.

Скачаем файл debhello-0.0.tar.gz.

$ wget http://www.example.org/download/debhello-0.0.tar.gz
Ну, понятно же, что это условный несуществующий пример. Домен example.org - это как бы известная вещь.
Хотя, скажем, gnu hello, который тоже выполняет функцию примера, вполне реально существует - его исходники лежат на gnu.org и даже разных версий. Но это так, к слову.

Так вот, руководство по Вашей ссылке во многих местах использует условные имена пакетов.
Подразумевается, что вы будете собирать реальный пакет из каких-то реальных исходников
и выполнять шаги руководства с поправкой на имена. А Вы вместо этого прицепились к debhello.
Но если уж Вам так хочется именно debhello, то и эти исходники в природе есть, например, здесь.
Хотя это банальный HelloWorld, который можно было и самому создать за пару минут.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение жучара »

Конечно, нет. То, что вы показали, это так. А у автора, в книге куча примеров.
https://www.debian.org/doc/manuals/debmake-doc/ch08.ru.html
И это уже не простой "Helloword". Их руками набивать?

...Значит, где всё это дело есть. Есть пакет debmake-doc. И у него есть исходники. И вот в исходникак пакета debmake-doc есть исходники dehello (разные версии).

Shell

user@astra:~$ apt-get source debmake-doc
Чтение списков пакетов… Готово
ВНИМАНИЕ: упаковка «debmake-doc» поддерживается в системе контроля версий «Git»:
https://anonscm.debian.org/git/collab-maint/debmake-doc.git
Используйте:
git clone https://anonscm.debian.org/git/collab-maint/debmake-doc.git
для получения последних (возможно не выпущенных) обновлений пакета.
Необходимо получить 183 kб архивов исходного кода.
Пол:1 http://ftp.ru.debian.org/debian stretch/main debmake-doc 1.7-2 (dsc) [2 314 B]
Пол:2 http://ftp.ru.debian.org/debian stretch/main debmake-doc 1.7-2 (tar) [177 kB]
Пол:3 http://ftp.ru.debian.org/debian stretch/main debmake-doc 1.7-2 (diff) [3 372 B]
Получено 183 kБ за 0с (953 kБ/c)
dpkg-source: инфо: извлечение debmake-doc в debmake-doc-1.7
dpkg-source: инфо: распаковывается debmake-doc_1.7.orig.tar.xz
dpkg-source: инфо: распаковывается debmake-doc_1.7-2.debian.tar.xz
user@astra:~$
user@astra:~$ ls
debmake-doc-1.7 debmake-doc_1.7-2.debian.tar.xz debmake-doc_1.7-2.dsc debmake-doc_1.7.orig.tar.xz
user@astra:~$
user@astra:~$ ls debmake-doc-1.7/
asciidoc debhello-0.1 debhello-1.0-pkg1 debhello-1.4 debhello-1.7-pkg1 debhello-3.0 debhello-3.3-pkg1 Makefile.common
bin debhello-0.1-pkg1 debhello-1.1 debhello-1.4-pkg1 debhello-2.0 debhello-3.0-pkg1 debhello-3.4 Makefile.dbk
debhello-0.0 debhello-0.2 debhello-1.1-pkg1 debhello-1.5 debhello-2.0-pkg1 debhello-3.1 debhello-3.4-pkg1 Makefile.pkg
debhello-0.0-pkg1 debhello-0.2-pkg1 debhello-1.2 debhello-1.5-pkg1 debhello-2.0-pkg2 debhello-3.1-pkg1 debian png
debhello-0.0-pkg2 debhello-0.3 debhello-1.2-pkg1 debhello-1.6 debhello-2.1 debhello-3.2 debian-template po
debhello-0.0-pkg3 debhello-0.3-pkg1 debhello-1.3 debhello-1.6-pkg1 debhello-2.1-pkg1 debhello-3.2-pkg1 LICENSE README.source
debhello-0.0-pkg4 debhello-1.0 debhello-1.3-pkg1 debhello-1.7 debhello-2.1-pkg2 debhello-3.3 Makefile xslt
user@astra:~$
То есть исходники одного пакета (debhello) в исходниках другого пакета (debmake-doc) И да, в бинарнике debmake-doc исходники debhello отсутствую напрочь. И ни о чём этом автор не упоминает.

++++++++++++++++++++++++++++++++++++++++++++++++++

...Ну как тут не вспомнить:
Bizdelnick писал:
28.04.2020 18:17
Да ну, Вас запутывать скучно, Вы сами прекрасно запутываетесь без посторонней помощи.
щас придёт и хамом меня назовёт.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Когда при сборке пакета необходимо создавать файл *.orig.tar.g(x)z?

Сообщение Hephaestus »

жучара писал(а):
30.04.2020 17:35
И это уже не простой "Helloword".
Да. Это нечто большее. Но это восьмой раздел. Дополнительные примеры.
До них ещё дойти надо. Вы сначала базовую сборку освойте как следует, а это не всегда просто
(у меня, например, поначалу упорно получался пустой пакет).
жучара писал(а):
30.04.2020 17:35
Их руками набивать?
Не надо.
Насколько я понял при беглом просмотре, часть файлов там создана скриптами.
Ещё часть - это всё тот же debhello.
Ближе к концу там появляется debhello-2.0, debhello-2.1, да.
Но это всего лишь примеры работы с разными системами сборки.
Во-первых, они Вам на данном этапе нафиг не нужны,
а во-вторых, при Вашем подходе это всё равно не поможет.
Что Вы будете делать, когда в тексте встретится /path/to/upstream-vcs, я боюсь даже предполагать (ведь наверняка такого пути в системе нет).
жучара писал(а):
30.04.2020 17:35
..Значит, где всё это дело есть.
Если уж на то пошло, то текст файлов, входящих в изначальный debhello,
есть прямо в тексте руководства. Всё там же, в разделе 4.
А если говорить об исходниках, входящих в debmake-doc, то они живут здесь
жучара писал(а):
30.04.2020 17:35
И да, в бинарнике debmake-doc исходники debhello отсутствую напрочь. И ни о чём этом автор не упоминает.
Это вопрос к сопровождающему данного пакета.
Я подозреваю, что сопровождающий и автор руководства - это разные люди, занимающиеся разными задачами.
Следовательно, не стоит ожидать от них согласования текста руководства с содержимым пакета (или наоборот).
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Ответить