forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.HUSKY

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 17.10.2023, 19:43
Semen Panevin
Guest
 
Сообщений: n/a
По умолчанию cvsdate.h

Semen Panevin написал(а) к All в Oct 23 18:08:12 по местному времени:

Доброго здоровьица тебе, All!

При билде husky cvsdate.h генерится только при make update
При этом делается обязательный pull/checkout из ремоута сначала, хотя для получения даты используется потом только git log, которому remote вроде бы и не нужен.

Нельзя ли как-то отделить pull/checkout от генерации cvsdate.h ?
fetch/checkout делается средствами пакетного менеджера Gentoo, саму сборку хочется сделать полностью offline, но для этого приходится героически костылить мейкфайл...

С наилучшими пожеланиями, Семён.

... Незаменимых людей нет, но исключением стать хочется... (c)...
--- GoldED+/LNX 1.1.5-b20231008 (Linux 6.1.53-gentoo-r1 iF6M10)
Ответить с цитированием
  #2  
Старый 17.10.2023, 22:05
Michael Dukelsky
Guest
 
Сообщений: n/a
По умолчанию cvsdate.h

Michael Dukelsky написал(а) к Semen Panevin в Oct 23 20:48:08 по местному времени:

Привет, Semen!

17 October 2023 18:08, Semen Panevin послал(а) письмо к All:

SP> При билде husky cvsdate.h генерится только при make update
SP> При этом делается обязательный pull/checkout из ремоута сначала, хотя
SP> для получения даты используется потом только git log, которому remote
SP> вроде бы и не нужен.

SP> Нельзя ли как-то отделить pull/checkout от генерации cvsdate.h ?
SP> fetch/checkout делается средствами пакетного менеджера Gentoo,

А нельзя попросить его не делать pull?

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

Не знаю, зачем надо героически костылить мейкфайл. Сборка делается полностью оффлайн так:
make -j NN depend && make -j NN

Здесь NN - это число параллельных веток исполнения мейкфайла.

Желаю успехов, Semen!
За сим откланиваюсь, Michael.

... node (at) f1042 (dot) ru
--- GoldED+/LNX 1.1.5-b20231008
Ответить с цитированием
  #3  
Старый 17.10.2023, 23:05
Semen Panevin
Guest
 
Сообщений: n/a
По умолчанию Re: cvsdate.h

Semen Panevin написал(а) к Michael Dukelsky в Oct 23 21:34:28 по местному времени:

Доброго здоровьица тебе, Michael!

Tuesday October 17 2023 20:48, Michael Dukelsky писал Semen Panevin:

SP>> Нельзя ли как-то отделить pull/checkout от генерации cvsdate.h ?
SP>> fetch/checkout делается средствами пакетного менеджера Gentoo,
MD> А нельзя попросить его не делать pull?
Ну так я это и прошу :) Не делать pull при make update (это единственный способ сгенерить csvdate.h, ну кроме как делать это "руками", украв код из мейкфайла... Или я чего-то недопонял в этой жизни)

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

MD> Не знаю, зачем надо героически костылить мейкфайл. Сборка делается
MD> полностью оффлайн так: make -j NN depend && make -j NN
Ииии... при этом нету csvdate.h т.к. он генерится только при make update (который вызывается из build.sh, если его использовать, и не передать ему опцию --offline)
И ничё не работает.

Это поведение даже в доках описано, что csvdate.h генерится только при update (который мне не нужен, т.к. у меня скачанные репы и так up-to-date, и при ./build.sh --offline всё равно не вызывается)

Поскольку в Gentoo ebuild за fetch+checkout отвечает фаза src_unpack, которая ничего не знает про build.sh поскольку его ещё нету пока не скачана репа huskybase - эта фаза сама фетчит и чекаутит все нужные репы. И build.sh вообще не используется, разруливание зависимостей делается средствами управления зависимостями Gentoo а не ворнингами из build.sh.

А поскольку src_unpack уже обновила и зачекаутила все нужные для сборки репы - эта фаза из make update становится бессмысленной и беспощадной.

MD> Здесь NN - это число параллельных веток исполнения мейкфайла.
Что делает параметр -j я в курсе :)

В Gentoo сборка делается в песочнице, в которую исходники попадают через фазу src_unpack. И ходить из уже спопулированной песочницы в remote в других фазах сборки - моветон и может быть вообще запрещено настройками безопасности.

Не, ну я-то конечно уже закостылил в своём Gentoo ebuild Makefile с помощью sed, но хочется, чтобы такая возможность была более штатной. Gentoo не единственная система, работающая с исходниками, а не готовыми бинарными пакетами. Давно не имел дела с фрёй, там от портов ещё не отказались? Если нет - то там похожие грабли могут быть...

Вторая проблема, описанная в следующем письме, про gzip, более серьёзная. Gentoo предлагает возможность с помощью фича-флагов пакетного менеджера включать-выключать автоматическое сжатие манов-доков и автоматический стрип бинарей на этапе мержа собранных и заинсталенных в песочнице исходников в корень системы, и очень ругается, если на этапе сборки оно было уже сжато или стрипнуто, и очень просит так не делать. И позволяет законфигурить желаемый метод упаковки (bzip2 по дефолту). А gzip в мейкахфайлах хаски ну прям гвоздями прибит :( strip в общем-то тем же sed-ом относительно легко костылится...

С наилучшими пожеланиями, Семён.

... Жизнь принуждает человека ко многим добровольным действиям... (c)...
--- GoldED+/LNX 1.1.5-b20231008 (Linux 6.1.53-gentoo-r1 iF6M10)
Ответить с цитированием
  #4  
Старый 18.10.2023, 00:54
Michael Dukelsky
Guest
 
Сообщений: n/a
По умолчанию cvsdate.h

Michael Dukelsky написал(а) к Semen Panevin в Oct 23 22:58:50 по местному времени:

Привет, Semen!

17 October 2023 21:34, Semen Panevin послал(а) письмо к Michael Dukelsky:

SP>>> Нельзя ли как-то отделить pull/checkout от генерации cvsdate.h ?
SP>>> fetch/checkout делается средствами пакетного менеджера Gentoo,
MD>> А нельзя попросить его не делать pull?
SP> Ну так я это и прошу :) Не делать pull при make update (это
SP> единственный способ сгенерить csvdate.h, ну кроме как делать это
SP> "руками", украв код из мейкфайла... Или я чего-то недопонял в этой
SP> жизни)

Я имел в виду, что может можно не делать git pull средствами твоего пакетного менеджера, а сделать это с помощью make update. Неужто в этом Gentoo всё прибито гвоздями и ничего нельзя сконфигурировать? Как-то не верится.

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

MD>> Не знаю, зачем надо героически костылить мейкфайл. Сборка
MD>> делается полностью оффлайн так: make -j NN depend && make -j NN
SP> Ииии... при этом нету csvdate.h т.к. он генерится только при make
SP> update (который вызывается из build.sh, если его использовать, и не
SP> передать ему опцию --offline) И ничё не работает.

SP> Это поведение даже в доках описано, что csvdate.h генерится только при
SP> update (который мне не нужен, т.к. у меня скачанные репы и так
SP> up-to-date, и при ./build.sh --offline всё равно не вызывается)

SP> Поскольку в Gentoo ebuild за fetch+checkout отвечает фаза src_unpack,
SP> которая ничего не знает про build.sh поскольку его ещё нету пока не
SP> скачана репа huskybase - эта фаза сама фетчит и чекаутит все нужные
SP> репы.

Зачем тут checkout вообще не понял. Пропусти эту фазу. Поставь вместо неё make update.

SP> И build.sh вообще не используется, разруливание зависимостей
SP> делается средствами управления зависимостями Gentoo а не ворнингами из
SP> build.sh.

Какое ещё управление зависимостями с помощью предупреждений из build.sh??? Ты о чём?

SP> А поскольку src_unpack уже обновила и зачекаутила все нужные для
SP> сборки репы - эта фаза из make update становится бессмысленной и
SP> беспощадной.

Пропусти src_unpack или переконфигури её.

SP> В Gentoo сборка делается в песочнице, в которую исходники попадают
SP> через фазу src_unpack. И ходить из уже спопулированной песочницы в
SP> remote в других фазах сборки - моветон и может быть вообще запрещено
SP> настройками безопасности.

Сборка разбита на два чётко разделённых этапа. На первом обновляются исходники и для этого нужен доступ в сеть. На втором происходит собственно сборка и на этом этапе сеть не нужна и не используется. Если ты посмотришь на сборку rpm, то увидишь, что там второй этап происходит в chroot со сменой пространств имён, в том числе и сетевого. Так что не надо ломиться в открытую дверь.

Желаю успехов, Semen!
За сим откланиваюсь, Michael.

... node (at) f1042 (dot) ru
--- GoldED+/LNX 1.1.5-b20231008
Ответить с цитированием
  #5  
Старый 18.10.2023, 09:41
Semen Panevin
Guest
 
Сообщений: n/a
По умолчанию Re: cvsdate.h

Semen Panevin написал(а) к Michael Dukelsky в Oct 23 07:14:14 по местному времени:

Доброго здоровьица тебе, Michael!

Tuesday October 17 2023 22:58, Michael Dukelsky писал Semen Panevin:

MD>>> А нельзя попросить его не делать pull?
SP>> Ну так я это и прошу :) Не делать pull при make update (это
SP>> единственный способ сгенерить csvdate.h, ну кроме как делать это
SP>> "руками", украв код из мейкфайла... Или я чего-то недопонял в
SP>> этой жизни)

MD> Я имел в виду, что может можно не делать git pull средствами твоего
MD> пакетного менеджера, а сделать это с помощью make update.
Где его взять? :) Чтобы его сделать - нужно сначала выкачать huskybase. Сам себя он не выкачает :)

MD> Неужто в
MD> этом Gentoo всё прибито гвоздями и ничего нельзя сконфигурировать?
MD> Как-то не верится.
Как раз в нём сконфигурировано, где должны храниться клоны гит репозиториев для пакетов, куда должны распаковываться рабочие копии указанных бранчей. А huskybase/Makefile про это ничего не знает.

Более того, в Gentoo встроена опция отключения online операций при работе с EVCS, т.е. я одной переменной могу ему сказать не ходить в remote, не фетчить обновы. При этом ничто не мешает ходить между бранчами локальных клонов уже скачанных реп. Но вот husky не умеет при этом перегенерить csvdate.h т.к. он это делает только при make update который хочет сходить в remote сначала.

В общем в Gentoo как раз всё более гибко сделано, а текущий build flow хаски не позволяет эту гибкость реализовать в полной мере штатными средствами. Но большую часть таки можно за-sed-ить :)

SP>> И build.sh вообще не используется, разруливание зависимостей
SP>> делается средствами управления зависимостями Gentoo а не
SP>> ворнингами из build.sh.

MD> Какое ещё управление зависимостями с помощью предупреждений из
MD> build.sh??? Ты о чём?

if [ -n "$(grep 'PROGRAMS=' $huskymak | grep 'hpt')" ] && \
[ -n "$(grep '^PERL=1' $huskymak)" ] && \
( [ -z "$(perl -v 2>&1 | grep 'This is perl')" ] || \
[ -z "$(perl -MExtUtils::Embed -e 'print "Yes"' 2>&1 | grep 'Yes')" ] )
then
printf '%s\n' "To build hpt with Perl, you must install Perl" >&2
die "and Perl module 'ExtUtils::Embed'"
fi

Ну и ещё парочка рядом. Может я конечно неправильно это назвал "управлением зависимостей" :)

SP>> А поскольку src_unpack уже обновила и зачекаутила все нужные для
SP>> сборки репы - эта фаза из make update становится бессмысленной и
SP>> беспощадной.
MD> Пропусти src_unpack или переконфигури её.
Злой ты :) Хочешь чтобы я Gentoo превратил в какую-нибудь шлакварь :)

SP>> В Gentoo сборка делается в песочнице, в которую исходники
SP>> попадают через фазу src_unpack. И ходить из уже спопулированной
SP>> песочницы в remote в других фазах сборки - моветон и может быть
SP>> вообще запрещено настройками безопасности.

MD> Сборка разбита на два чётко разделённых этапа. На первом обновляются
MD> исходники и для этого нужен доступ в сеть.
Да понимаю я как работает build.sh и make update, у них есть некоторое количество ограничений. К примеру, захардкоженный base path к репозиториям, что не позволяет использовать зеркала или форки, не позволяет работать оффлайн с разными бранчами средствами пакетного менеджера.

В общем не позволят оно в текущем виде полностью следовать Gentoo way...

Поэтому make update я не хочу использовать для скачивания и распаковки нужных репозиториев, хочу идти gentoo way, но вот cvsdate.h сама себя не сгенерит :(


С наилучшими пожеланиями, Семён.

... Ребята, давайте жить дружно! (с) Леопольд
--- GoldED+/LNX 1.1.5-b20231008 (Linux 6.1.53-gentoo-r1 iF6M10)
Ответить с цитированием
  #6  
Старый 20.10.2023, 14:09
Semen Panevin
Guest
 
Сообщений: n/a
По умолчанию Re: cvsdate.h

Semen Panevin написал(а) к Michael Dukelsky в Oct 23 07:14:14 по местному времени:

Доброго здоровьица тебе, Michael!

Tuesday October 17 2023 22:58, Michael Dukelsky писал Semen Panevin:

MD>>> А нельзя попросить его не делать pull?
SP>> Ну так я это и прошу :) Не делать pull при make update (это
SP>> единственный способ сгенерить csvdate.h, ну кроме как делать это
SP>> "руками", украв код из мейкфайла... Или я чего-то недопонял в
SP>> этой жизни)

MD> Я имел в виду, что может можно не делать git pull средствами твоего
MD> пакетного менеджера, а сделать это с помощью make update.
Где его взять? :) Чтобы его сделать - нужно сначала выкачать huskybase. Сам себя он не выкачает :)

MD> Неужто в
MD> этом Gentoo всё прибито гвоздями и ничего нельзя сконфигурировать?
MD> Как-то не верится.
Как раз в нём сконфигурировано, где должны храниться клоны гит репозиториев для пакетов, куда должны распаковываться рабочие копии указанных бранчей. А huskybase/Makefile про это ничего не знает.

Более того, в Gentoo встроена опция отключения online операций при работе с EVCS, т.е. я одной переменной могу ему сказать не ходить в remote, не фетчить обновы. При этом ничто не мешает ходить между бранчами локальных клонов уже скачанных реп. Но вот husky не умеет при этом перегенерить csvdate.h т.к. он это делает только при make update который хочет сходить в remote сначала.

В общем в Gentoo как раз всё более гибко сделано, а текущий build flow хаски не позволяет эту гибкость реализовать в полной мере штатными средствами. Но большую часть таки можно за-sed-ить :)

SP>> И build.sh вообще не используется, разруливание зависимостей
SP>> делается средствами управления зависимостями Gentoo а не
SP>> ворнингами из build.sh.

MD> Какое ещё управление зависимостями с помощью предупреждений из
MD> build.sh??? Ты о чём?

if [ -n "$(grep 'PROGRAMS=' $huskymak | grep 'hpt')" ] && \
[ -n "$(grep '^PERL=1' $huskymak)" ] && \
( [ -z "$(perl -v 2>&1 | grep 'This is perl')" ] || \
[ -z "$(perl -MExtUtils::Embed -e 'print "Yes"' 2>&1 | grep 'Yes')" ] )
then
printf '%s\n' "To build hpt with Perl, you must install Perl" >&2
die "and Perl module 'ExtUtils::Embed'"
fi

Ну и ещё парочка рядом. Может я конечно неправильно это назвал "управлением зависимостей" :)

SP>> А поскольку src_unpack уже обновила и зачекаутила все нужные для
SP>> сборки репы - эта фаза из make update становится бессмысленной и
SP>> беспощадной.
MD> Пропусти src_unpack или переконфигури её.
Злой ты :) Хочешь чтобы я Gentoo превратил в какую-нибудь шлакварь :)

SP>> В Gentoo сборка делается в песочнице, в которую исходники
SP>> попадают через фазу src_unpack. И ходить из уже спопулированной
SP>> песочницы в remote в других фазах сборки - моветон и может быть
SP>> вообще запрещено настройками безопасности.

MD> Сборка разбита на два чётко разделённых этапа. На первом обновляются
MD> исходники и для этого нужен доступ в сеть.
Да понимаю я как работает build.sh и make update, у них есть некоторое количество ограничений. К примеру, захардкоженный base path к репозиториям, что не позволяет использовать зеркала или форки, не позволяет работать оффлайн с разными бранчами средствами пакетного менеджера.

В общем не позволят оно в текущем виде полностью следовать Gentoo way...

Поэтому make update я не хочу использовать для скачивания и распаковки нужных репозиториев, хочу идти gentoo way, но вот cvsdate.h сама себя не сгенерит :(


С наилучшими пожеланиями, Семён.

... Ребята, давайте жить дружно! (с) Леопольд
--- GoldED+/LNX 1.1.5-b20231008 (Linux 6.1.53-gentoo-r1 iF6M10)
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 13:43. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot