Автор Тема: Учимся собирать пакеты из исходников  (Прочитано 12218 раз)

ms1984

  • Гость
Иду в шпаргалку :

1. разворачиваю окружение для Р8 64 бита:
в каталоге гир выполнить конфиг находящийся $HOME/.apt/sisyphus-64-apt.conf без проверки сифиса для 64х разрядной архитектуры и разместить их в каталоге по адресу =$HOME/hasher-repo/sisyphus -v ~/hasher 

gear -v --hasher -- hsh --lazy-cleanup --apt-config=$HOME/.apt/sisyphus-64-apt.conf --no-sisyphus-check=packager,gpg,changelog --target=x86_64 --repo=$HOME/hasher-repo/sisyphus -v ~/hasher
 
 второй этап:

2. окружение развернули (правда для хешера по умолчанию  в каталог hesher) делаем команду на сборку ребилд:
 
в каталоге гир  собрать без проверки сифиза  ....(при сборке откуда-из какого конфига вытаскивать будет инфу как ему собирать?)  и поместить собранные пакеты по адресу =$HOME/hasher-repo/p8 -v ~/hasher

gear --hasher -- hsh-rebuild --no-sisyphus-check=packager,gpg,changelog --repo=$HOME/hasher-repo/p8 -v ~/hasher
 
Вроде бы как то так
« Последнее редактирование: 13.07.2016 17:58:49 от ms1984 »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Вроде бы как то так

Опять вы ничего не поняли :-(

Правильный ответ:
gear -v --hasher -- hsh --lazy-cleanup --apt-config=$HOME/.apt/p8-64-apt.conf --no-sisyphus-check=packager,gpg,changelog --repo=$HOME/hasher-repo/p8 -v  ~/hasher

gear --hasher -- hsh-rebuild --no-sisyphus-check=packager,gpg,changelog --repo=$HOME/hasher-repo/p8 -v ~/hasher

Как видите, нужно было 7 заменить на 8...

ms1984

  • Гость
Как видите, нужно было 7 заменить на 8...

Да.Все верно вы говорите. Но я лапухнулся.Сейчас сравнивал шпаргалки первый вариант с обновленным. В первом варианте, который я не обновил у меня не было команды с указанием каталога HOME/hasher-repo/p8 а был только HOME/hasher-repo/p7 - на который я пялился и думал, что поставить, а мозгов зайти в  HOME/hasher-repo/ и посмотреть что там есть р8 не хватило и плюс отсутствие понимания деталей. пока только уяснил алгоритм действий как мне кажется.
 сейчас читаю и смотрю назначения каталогов и их содержимое.

Правильный ответ:
gear -v --hasher -- hsh --lazy-cleanup --apt-config=$HOME/.apt/p8-64-apt.conf --no-sisyphus-check=packager,gpg,changelog --repo=$HOME/hasher-repo/p8 -v  ~/hasher

gear -v --hasher -- hsh --lazy-cleanup --apt-config=$HOME/.apt/sisyphus-64-apt.conf --no-sisyphus-check=packager,gpg,changelog --target=x86_64 --repo=$HOME/hasher-repo/sisyphus -v ~/hasher

В вашей команде на развертывание окружение не увидел, что разворачиваете для 64бит? ??? у меня цель 64разрядной архитектуры  обозначена но нет Р8. хотя да.если не указывать по умолчанию тагет собирет под текущую а она 64бита
« Последнее редактирование: 13.07.2016 23:25:56 от ms1984 »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
В вашей команде на развертывание окружение не увидел, что разворачиваете для 64бит? ???

Выше писал:
--target указывает архитектуру процессора. Если не указать, соберёт для текущей архитектуры

То есть архитектуру нужно указывать, если собираете на 64 битной системе 32-битный пакет, а так необязательно.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
То есть архитектуру нужно указывать, если собираете на 64 битной системе 32-битный пакет, а так необязательно.
Не надо - так у вас всякие pentium и i686 могут собраться. Пример - 32-битный процессор

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Давайте, далее рассмотрим, где брать gear-репозитории пакетов.
Все пакеты в Альт собраны либо через gear либо srpm (пакет исходников). Но в любом случае создаётся gear-репозиторий по адресу:
https://www.altlinux.org/gears для пакетов, отправленных на сборку через gear
https://www.altlinux.org/srpms для пакетов из srpm

Если вы хотите попробовать собрать новую версию для какого-то пакета, который есть в Альте, то клонируете его gear-репозиторий как любой другой git-репозиторий:
git clone http://www.altlinux.org/gears/первая_буква_названия_пакета/название_пакета.git
либо
git clone http://www.altlinux.org/srpms/первая_буква_названия_пакета/название_пакета.git

Адрес репозитория для клонирования указан в поле URL.

Теперь рассмотрим, что собой представляет gear-репозиторий.
Gear-репозиторий пакета представляет собой обычный git-репозиторий, в котором есть помимо исходника файлы gear:
1. Обычно в каталоге .gear/ лежит файл rules, в котором описываются действия, которые необходимо сделать gear для сборки srpm-пакета.
Содержимое .gear/rules пакета deadbeef:
tar: deadbeef name=deadbeef-@version@
copy?: *.patch

Первая строка указывает, что нужно каталог deadbeef (исходники программы) сжать в архив tar и дать имя архиву deadbeef-@version@. В данном случае дополнительно прописывать имя пакету излишне, так как архив создался бы и так с этим именем.
Вторая строка говорит о том, что будут скопированы все файлы *.patch, если они есть в каталоге. Наличие вопроса в copy?: как раз и обозначает это если.

2. Спек. Если спек находится в корне репозитория, его местоположение не нужно прописывать в .gear/rules

3. Патчи и другие файлы, их нужно обязательно прописывать в .gear/rules

Дальнейшее изучение gear требует от вас поверхностные знаний git и его базовых команд. Если находясь в gear-репозитории, ввести в терминале gitk, то запустится программа управления git-репозиторием. Вы можете посмотреть, что майнтейнер делал в каждом коммите и попробовать понять даже, чем он руководствовался. Но для изучения рекомендую более простой пакет, например gcdemu, там всего несколько коммитов.

Вот вам и задание склонировать gear-репозиторий пакета gcdemu и разобраться, чего же я делал и зачем. Вики в помощь.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Не надо - так у вас всякие pentium и i686 могут собраться. Пример - 32-битный процессор

Не будут, так как в конфиге ~/.hasher/config прописано:
# target
if [ `uname -m` = "i686" ]; then
    def_target=i586
fi

Кроме того, это не актуально для 64-битных процессоров, архитектура у них у всех x86_64

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Кроме того, это не актуально для 64-битных процессоров, архитектура у них у всех x86_64
Ну нет, если ядро 32-битное, то будут как раз и собираться pentium

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Там надо развёрнутый case писать на все 32-битные архитектуры ;-)

ms1984

  • Гость
Вот вам и задание склонировать gear-репозиторий пакета gcdemu и разобраться, чего же я делал и зачем. Вики в помощь.

Спешить не буду!принял к исполнению.

ms1984

  • Гость
Не будут, так как в конфиге ~/.hasher/config прописано:

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

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Ну нет, если ядро 32-битное, то будут как раз и собираться pentium

А разве uname -m может вернуть pentium4? Вроде i686 возвращает, а пакеты при этом под pentium4 у меня собирались, когда я был на 32 битном ядре.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Цитата: Антон Мидюков от Сегодня в 10:16:55

    Не будут, так как в конфиге ~/.hasher/config прописано:


хочу сказать, что у меня нет данной скрытой папки и такого кофига.

Ну да, а слона то вы (точку перед hasher) вы и не приметили ;-)

ms1984

  • Гость
 
Ну да, а слона то вы (точку перед hasher) вы и не приметили ;-)

сори.нашел. все. :-)

ms1984

  • Гость
склонировать gear-репозиторий пакета gcdemu
+++++++++++++++++++++++++++++++++++++++++++

1. клонирую репозиторий
базовая команда из шпоры:
$git clone gitery:/people/antohami/packages/$package_name.gitмоя действующая команда:
$git clone https://git.altlinux.org/people/antohami/packages/gcdemu.gitПроверяю/получаю:
[abra@comp-core-i7-4700mq-070d27 ~]$ git clone https://git.altlinux.org/people/antohami/packages/gcdemu.git
Cloning into 'gcdemu'...
fatal: unable to access 'https://git.altlinux.org/people/antohami/packages/gcdemu.git/': error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
[abra@comp-core-i7-4700mq-070d27 ~]$

----remeik- ошибка соединения проверки сертификата.
Проверяю/получаю:
[abra@comp-core-i7-4700mq-070d27 ~]$ git clone http://git.altlinux.org/people/antohami/packages/gcdemu.git
Cloning into 'gcdemu'...
Checking connectivity... done.
[abra@comp-core-i7-4700mq-070d27 ~]$

блин накосячил. он склонировался не в каталог ~/gear, а в домашний каталог.Вопрос если я перетащу его ручками в ~/gear ничего страшного страшного не будет? хотя надо попробовать. дальше увидим... перетащил руками в ~/gear
И сразу вопрос вылез в связи с этим как посмотреть какие он файлы помимо папки - gcdemu подтянул с собой? .. хм. хотя можно его склонировать в какой нить каталог и посмотреть что в этом каталоге будет помимо каталога gcdemu и если что будет уже из домашнего каталога почистить чтобы срам не разводить
.вытаскивает только каталог с именем gcdemu. все ок.

Проверяю/получаю:
[abra@comp-core-i7-4700mq-070d27 ~]$ cd gear
[abra@comp-core-i7-4700mq-070d27 gear]$ git clone http://git.altlinux.org/people/antohami/packages/gcdemu.git
fatal: destination path 'gcdemu' already exists and is not an empty directory.
[abra@comp-core-i7-4700mq-070d27 gear]$

 ---- remeik так как вырезал из домашнего каталога клонированный каталог gcdemu в ~/gear вероятно ругается что он туда залить не может. удалил его. там только старый deadbeef.
Проверяю/получаю:
[abra@comp-core-i7-4700mq-070d27 gear]$ git clone http://git.altlinux.org/people/antohami/packages/gcdemu.git
Cloning into 'gcdemu'...
Checking connectivity... done.
[abra@comp-core-i7-4700mq-070d27 gear]$ ls
command_gear.txt  deadbeef  gcdemu  hasher-init.sh  hsh-buildreq.sh
[abra@comp-core-i7-4700mq-070d27 gear]$

ага.все успешно.
++++++++++++++
Шаг2. Заходим в директорию скаченного клона gcdemu
[abra@comp-core-i7-4700mq-070d27 gear]$ cd gcdemu
[abra@comp-core-i7-4700mq-070d27 gcdemu]$
+++++++++++++++
Шаг3. Находясь в этом каталоге(стыдно блин спрашивать, но грят самый глупый вопрос, - вопрос не заданный.. (с) тильд надо поставить или точку?) (./gcdemu),  ~/gcdemu надо ввести команду на сборку. (готовлю команду на сборку)
Для приготовления команды на сборку надо прочитать ридми/рулес. он находится в каталоге home/gear/gcdemu/.gear/rules =вижу агроменный "фигВам":
tar.bz2: gcdemu
copy?: *.patch
copy: ru.po
и соответственно лезу переводить, чего эти буковки с циферками от меня хотят, благо низкий поклон выше в сообщение все описано.Осталось перевести с русского на русский.
Пока найдешь как правильно забить команду (gitk в каких каталогах только не загонял ее ... не хочет пахать хоть убей, а вот git log сливает всю информацию, но увы там больше одной страницы листать не умею в терминале,  пошел искать как перелистывать... и тоже ищу как правильно gitk забивать  в терминал чтобы рассказывала не стеснялась...)
Спойлер
commit 31880f35a7730922c818b6205c8e46adc85a2d48
Author: Anton Midyukov <antohami@altlinux.org>
Date:   Sun Apr 3 17:10:45 2016 +0700

    3.0.1-alt2
   
    - Added russian translation of git
    - fix desktop file

commit 6b6287a8e8fa03805596f19fb6d927c96cb59e82
Author: Anton Midyukov <antohami@altlinux.org>
Date:   Fri Jan 15 12:25:13 2016 +0700

    3.0.1-alt1
   
    - New version;
    - Added russian translation;
    - Fix iconsdir.

commit 02f4e9cefacd7022151b6eb312cded956270d8d0
Author: Anton Midyukov <antohami@altlinux.org>
Date:   Thu Jan 14 11:23:42 2016 +0700

    Import archive gcdemu-3.0.1

commit 9cd8974f6ae09dfda250eb5ec92873b988a2072b
Author: Anton Midyukov <antohami@altlinux.org>
Date:   Sun Oct 18 22:33:40 2015 +0700

    3.0.0-alt2
   
    - Added autostart.patch;
    - Added requires: cdemu-client.

commit 848fe76bd23e7a251a8bc64b6221874dde03ee4f
Author: Anton Midyukov <antohami@altlinux.org>
Date:   Sun Oct 18 20:37:55 2015 +0700

    Added autostart.patch

commit 792bdfc7cfd1b6eb10b4be15aa4e3c6c81908d37
Author: Anton Midyukov <antohami@altlinux.org>
Date:   Mon Sep 21 12:01:49 2015 +0700

    3.0.0-alt1
   
    - Initial build for ALT Linux Sisyphus.

commit 46115d8a9d62da9c91896ee0cedc10e09ca86b46
Author: Anton Midyukov <antohami@altlinux.org>
Date:   Mon Sep 21 12:01:10 2015 +0700

    Add .gear/rules

commit 36c44f797bc6cf10aeb261ce27d149e1e628da37
Author: Anton Midyukov <antohami@altlinux.org>
Date:   Mon Sep 21 10:54:12 2015 +0700

    Import archive gcdemu-3.0.0
~
~
~
~
lines 1-59/59 (END)
« Последнее редактирование: 15.07.2016 06:17:19 от ruslandh »