* [devel] golang policy @ 2016-01-31 15:33 Denis Pynkin 2016-02-01 7:36 ` Alexey Gladkov 2019-12-13 7:21 ` Ildar Mulyukov 0 siblings, 2 replies; 9+ messages in thread From: Denis Pynkin @ 2016-01-31 15:33 UTC (permalink / raw) To: ALT Linux Team development discussions Hi, А как у нас планируется работать с пакетами, написанными на Go? Пакетить все зависимости в отдельные src или можно какие-то аналоги для bundle, как предлагают в Fedora Project? -- wbr,d4s ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] golang policy 2016-01-31 15:33 [devel] golang policy Denis Pynkin @ 2016-02-01 7:36 ` Alexey Gladkov 2016-02-01 15:29 ` Denis Pynkin 2019-12-13 7:21 ` Ildar Mulyukov 1 sibling, 1 reply; 9+ messages in thread From: Alexey Gladkov @ 2016-02-01 7:36 UTC (permalink / raw) To: ALT Linux Team development discussions On Sun, Jan 31, 2016 at 06:33:30PM +0300, Denis Pynkin wrote: > Hi, > > А как у нас планируется работать с пакетами, написанными на Go? > Пакетить все зависимости в отдельные src или можно какие-то аналоги для > bundle, как предлагают в Fedora Project? Политика в многом схожая с Fedora. Не все пакеты несут зависимости с собой (например в виде Godeps). Для таких проектов зависимости пакетируются. Буквально вчера в сизиф пошёл новый golang и rpm-build-golang, где была предпринята попытка упорядочить зоопарк golang-пакетов. Если есть идеи по этому поводу рад буду обсудить )) -- Rgrds, legion ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] golang policy 2016-02-01 7:36 ` Alexey Gladkov @ 2016-02-01 15:29 ` Denis Pynkin 2016-02-01 15:41 ` Dmitry V. Levin 2016-02-01 16:27 ` Alexey Gladkov 0 siblings, 2 replies; 9+ messages in thread From: Denis Pynkin @ 2016-02-01 15:29 UTC (permalink / raw) To: ALT Linux Team development discussions; +Cc: Alexey Gladkov On Mon, Feb 01, 2016 at 08:36:28AM +0100, Alexey Gladkov wrote: > > А как у нас планируется работать с пакетами, написанными на Go? > > Пакетить все зависимости в отдельные src или можно какие-то аналоги для > > bundle, как предлагают в Fedora Project? > > Политика в многом схожая с Fedora. Не все пакеты несут зависимости с > собой (например в виде Godeps). Для таких проектов зависимости > пакетируются. к своему стыду, не знал про godeps. Я правильно понимаю, что godeps поможет в создании bundle либо отдельных пакетиков с зависимостями? > Буквально вчера в сизиф пошёл новый golang и rpm-build-golang, где была > предпринята попытка упорядочить зоопарк golang-пакетов. пока не пришло. ждем-с в репозитории. > Если есть идеи по этому поводу рад буду обсудить )) Собственно, мозговой штурм сегодня привел меня к безрадостному заключению, что bundle зависимостей для каждого пакета go, чуть ли не единственый выход. У нас же нет жесткого bundling policy? С т.з. безопасности меня это очень напрягает, откровенно говоря. Рано или поздно появятся пакеты, которым нужна одна и та же зависимость, но разных версий (и разным API) :( В рамках bundle это решается легко, с распиленными на кусочки зависимостями -- уже сложнее. Дальше, не совсем понятно, как работать с исходниками в случае bundle. Пока пришел к выводу, что собственно код программы -- калька из апстрима, а все зависимости в отдельный гит, по сути снапшотом, и отдельным bundle пакетом, который провайдит только bundle-пакет. Еще вопрос -- поддерживает ли наш rpm зависимости вида: BuildRequires: golang(github.com/gorilla/context) ? ЗЫ буду рад, если окажется что по поводу bundle я заблуждаюсь. -- wbr,d4s ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] golang policy 2016-02-01 15:29 ` Denis Pynkin @ 2016-02-01 15:41 ` Dmitry V. Levin 2016-02-01 16:27 ` Alexey Gladkov 1 sibling, 0 replies; 9+ messages in thread From: Dmitry V. Levin @ 2016-02-01 15:41 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 577 bytes --] On Mon, Feb 01, 2016 at 06:29:22PM +0300, Denis Pynkin wrote: [...] > Еще вопрос -- поддерживает ли наш rpm зависимости вида: > BuildRequires: golang(github.com/gorilla/context) ? $ rpmquery --provides perl-base | grep -E '([^/]*/){2,}' perl(Config/Perl/V.pm) = 0.240 perl(File/Spec/Functions.pm) = 3.560 perl(File/Spec/Unix.pm) = 3.560 perl(Hash/Util/FieldHash.pm) = 1.150 perl(IO/Socket/INET.pm) = 1.350 perl(IO/Socket/UNIX.pm) = 1.260 perl(List/Util/XS.pm) = 1.410 perl(PerlIO/via/QuotedPrint.pm) = 0.080 perl(Tie/Hash/NamedCapture.pm) = 0.090 -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] golang policy 2016-02-01 15:29 ` Denis Pynkin 2016-02-01 15:41 ` Dmitry V. Levin @ 2016-02-01 16:27 ` Alexey Gladkov 2016-02-16 12:51 ` Denis Pynkin 1 sibling, 1 reply; 9+ messages in thread From: Alexey Gladkov @ 2016-02-01 16:27 UTC (permalink / raw) To: Denis Pynkin; +Cc: ALT Linux Team development discussions On Mon, Feb 01, 2016 at 06:29:22PM +0300, Denis Pynkin wrote: > к своему стыду, не знал про godeps. > Я правильно понимаю, что godeps поможет в создании bundle либо отдельных > пакетиков с зависимостями? Godeps (github.com/tools/godep) способ зафиксировать конкретные ревизии у зависимостей в go. Другой способ для разработчика библиотеки на go зафиксировать ревизию это использовать gopkg.in . > Собственно, мозговой штурм сегодня привел меня к безрадостному заключению, > что bundle зависимостей для каждого пакета go, чуть ли не единственый > выход. У нас же нет жесткого bundling policy? > С т.з. безопасности меня это очень напрягает, откровенно говоря. > > Рано или поздно появятся пакеты, которым нужна одна и та же зависимость, > но разных версий (и разным API) :( По задумке создателей go библиотеки должны быть всегда обратно совместимы или же import path должен быть изменён )) > В рамках bundle это решается легко, с распиленными на кусочки > зависимостями -- уже сложнее. Зато так легче отслеживать где и какой ревизии библиотека используется в дистрибутиве. Особенно это важно т.к. после сборки нет возможности узнать из чего была собрана программа на go. Представьте решение задачи с bundle по устранению уязвимости в golang.org/x/crypto/ssh. Кто с этим модулем собран и с какой ревизией. > Дальше, не совсем понятно, как работать с исходниками в случае bundle. > Пока пришел к выводу, что собственно код программы -- калька из апстрима, > а все зависимости в отдельный гит, по сути снапшотом, и отдельным bundle пакетом, > который провайдит только bundle-пакет. Я пока тоже не имею однозначного мнения на этот счёт. Если и делать bundle-пакет или bundle-бранч, то через godep, чтобы можно было автоматизировать проверку этих зависимостей. > Еще вопрос -- поддерживает ли наш rpm зависимости вида: > BuildRequires: golang(github.com/gorilla/context) ? Да. Я рассматривал этот вариант как основной. -- Rgrds, legion ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] golang policy 2016-02-01 16:27 ` Alexey Gladkov @ 2016-02-16 12:51 ` Denis Pynkin 2016-02-16 13:05 ` Alexey Gladkov 0 siblings, 1 reply; 9+ messages in thread From: Denis Pynkin @ 2016-02-16 12:51 UTC (permalink / raw) To: Alexey Gladkov; +Cc: ALT Linux Team development discussions, Denis Pynkin On Mon, Feb 01, 2016 at 05:27:04PM +0100, Alexey Gladkov wrote: > > Дальше, не совсем понятно, как работать с исходниками в случае bundle. > > Пока пришел к выводу, что собственно код программы -- калька из апстрима, > > а все зависимости в отдельный гит, по сути снапшотом, и отдельным bundle пакетом, > > который провайдит только bundle-пакет. > > Я пока тоже не имею однозначного мнения на этот счёт. Если и делать > bundle-пакет или bundle-бранч, то через godep, чтобы можно было > автоматизировать проверку этих зависимостей. > > > Еще вопрос -- поддерживает ли наш rpm зависимости вида: > > BuildRequires: golang(github.com/gorilla/context) ? > > Да. Я рассматривал этот вариант как основной. пока пробую резать на пакетики, но что-то я не совсем понимаю, что у нас с путями для golang Например, упаковал я, пользуясь примерами, github.com/gorilla/websocket в пакет golang-github-gorilla-websocket-devel и вижу, что все файлы *.go кладутся по пути: /usr/share/gocode/src/github.com/gorilla/websocket а при сборке зависимого от него пакета вижу ошибку: + /usr/share/golang/golang-build lxc exec.go:11:2: cannot find package "github.com/gorilla/websocket" in any of: /usr/lib64/golang/src/github.com/gorilla/websocket (from $GOROOT) /usr/src/RPM/BUILD/lxd-2.0.0/.build/src/github.com/gorilla/websocket (from $GOPATH) почему у нас игнорируется /usr/share/gocode? Кривохак в %build в виде "export GOPATH="%go_path:$BUILDDIR"" работает, но мне кажется, что это лучше поправить в rpm-build-golang. Или я где-то что-то недопонимаю? -- wbr,d4s ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] golang policy 2016-02-16 12:51 ` Denis Pynkin @ 2016-02-16 13:05 ` Alexey Gladkov 0 siblings, 0 replies; 9+ messages in thread From: Alexey Gladkov @ 2016-02-16 13:05 UTC (permalink / raw) To: Denis Pynkin; +Cc: ALT Linux Team development discussions On Tue, Feb 16, 2016 at 03:51:55PM +0300, Denis Pynkin wrote: > пока пробую резать на пакетики, но что-то я не совсем понимаю, что > у нас с путями для golang > > Например, упаковал я, пользуясь примерами, github.com/gorilla/websocket в пакет > golang-github-gorilla-websocket-devel и вижу, что все файлы *.go кладутся по > пути: /usr/share/gocode/src/github.com/gorilla/websocket > > а при сборке зависимого от него пакета вижу ошибку: > > + /usr/share/golang/golang-build lxc > exec.go:11:2: cannot find package "github.com/gorilla/websocket" in any of: > /usr/lib64/golang/src/github.com/gorilla/websocket (from $GOROOT) > /usr/src/RPM/BUILD/lxd-2.0.0/.build/src/github.com/gorilla/websocket (from $GOPATH) > > почему у нас игнорируется /usr/share/gocode? > > Кривохак в %build в виде "export GOPATH="%go_path:$BUILDDIR"" работает, но > мне кажется, что это лучше поправить в rpm-build-golang. > > Или я где-то что-то недопонимаю? Путь для системных модулей /usr/lib64/golang, для сторонних библиотек используется /usr/share/gocode, который нужно добавлять GOPATH (как вы и сделали). Класть src в архитектурно зависимую директорию не имеет. -- Rgrds, legion ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] golang policy 2016-01-31 15:33 [devel] golang policy Denis Pynkin 2016-02-01 7:36 ` Alexey Gladkov @ 2019-12-13 7:21 ` Ildar Mulyukov 1 sibling, 1 reply; 9+ messages in thread From: Ildar Mulyukov @ 2019-12-13 7:21 UTC (permalink / raw) To: ALT Linux Team development discussions On Mon, Feb 1, 2016 at 10:38 AM Denis Pynkin <denis.pynkin@gmail.com> wrote: > А как у нас планируется работать с пакетами, написанными на Go? > Пакетить все зависимости в отдельные src или можно какие-то аналоги для > bundle, как предлагают в Fedora Project? Коллеги, какие у нас новости на эту тему? мне кажется, собирать по пакету на каждую зависимость --- нереальный объём. Тут только роботы, возможно, справятся. Какие у нас варианты? Спасибо. С уважением, Ильдар -- Ildar Mulyukov, (ΙΧΘΥΣ) child of God email: ildar.mulyukov@gmail.com matrix: @ildar:matrix.org GoogleTalk: ildar.mulyukov@gmail.com blog: http://johan-notes.blogspot.com/ ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <CAEdvWkSUYFQ_+OgMQtq=AD6eJS-DuVsaq7mG7YEtowWCGukTeA@mail.gmail.com>]
* Re: [devel] golang policy @ 2021-10-12 14:44 ` Anton Farygin 0 siblings, 0 replies; 9+ messages in thread From: Anton Farygin @ 2021-10-12 14:44 UTC (permalink / raw) To: devel On 28.12.2019 15:40, Alexey Shabalin wrote: > > > пт, 13 дек. 2019 г., 10:22 Ildar Mulyukov <ildar.mulyukov@gmail.com>: > > On Mon, Feb 1, 2016 at 10:38 AM Denis Pynkin > <denis.pynkin@gmail.com> wrote: > > А как у нас планируется работать с пакетами, написанными на Go? > > Пакетить все зависимости в отдельные src или можно какие-то > аналоги для > > bundle, как предлагают в Fedora Project? > > Коллеги, > какие у нас новости на эту тему? мне кажется, собирать по пакету на > каждую зависимость --- нереальный объём. Тут только роботы, возможно, > справятся. > Какие у нас варианты? > Спасибо. С уважением, Ильдар > > > Упаковываем зависимости вместе с пакетом(вендоризируем - складываем в > vendor). На каждую зависимость делать отдельный пакет нет смысла. > Примеры можно посмотреть в пакетах telegraf, traefik(в спеке есть > инструкция по подготовке к вендоризации). > Для вендоризации используеются: > - dep ensure -vendor-only (для старых проектов) > - go mod vendor (для проектов, которые перешли на новую схему) Вообще про policy хороший вопрос. Понадобилось мне упаковать утилиту, написанную на go. по примеру из других пакетов vendor я сделал и утилита собирается. Но в других пакетах есть какие-то странные вещи типа %golang_prepare В нём делается: $ rpm --eval %golang_prepare /usr/share/golang/golang-prepare Который вообще делает что-то такое: #!/bin/sh -eu BUILDDIR="${BUILDDIR?}" IMPORT_PATH="${IMPORT_PATH?}" mkdir-vp--"$BUILDDIR/src/$IMPORT_PATH" cp-alv--* "$BUILDDIR/src/$IMPORT_PATH" Никакой документации на предмет того, что принято писать в BUILDDIR и IMPORT_PATH я не нашёл. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2021-10-12 14:44 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-01-31 15:33 [devel] golang policy Denis Pynkin 2016-02-01 7:36 ` Alexey Gladkov 2016-02-01 15:29 ` Denis Pynkin 2016-02-01 15:41 ` Dmitry V. Levin 2016-02-01 16:27 ` Alexey Gladkov 2016-02-16 12:51 ` Denis Pynkin 2016-02-16 13:05 ` Alexey Gladkov 2019-12-13 7:21 ` Ildar Mulyukov 2021-10-12 14:44 ` Anton Farygin
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git