* [devel] Поиск зависимостей
@ 2007-09-19 7:52 Slava Dubrovskiy
2007-09-19 8:11 ` Alexey Tourbin
0 siblings, 1 reply; 11+ messages in thread
From: Slava Dubrovskiy @ 2007-09-19 7:52 UTC (permalink / raw)
To: ALT Devel discussion list
Здравствуйте.
Есть набор скриптов расположенных в /var/www/cgi-bin на перле.
Нужно определить их зависимости на перловые модули. Собирать их в пакет
нет необходимости.
Возможно ли запустить парсер для /var/www/cgi-bin чтобы получить список
всех используемых модулей?
--
WBR,
Dubrovskiy Vyacheslav
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Поиск зависимостей
2007-09-19 7:52 [devel] Поиск зависимостей Slava Dubrovskiy
@ 2007-09-19 8:11 ` Alexey Tourbin
2007-09-19 8:23 ` Slava Dubrovskiy
0 siblings, 1 reply; 11+ messages in thread
From: Alexey Tourbin @ 2007-09-19 8:11 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 436 bytes --]
On Wed, Sep 19, 2007 at 10:52:52AM +0300, Slava Dubrovskiy wrote:
> Есть набор скриптов расположенных в /var/www/cgi-bin на перле.
> Нужно определить их зависимости на перловые модули. Собирать их в пакет
> нет необходимости.
> Возможно ли запустить парсер для /var/www/cgi-bin чтобы получить список
> всех используемых модулей?
В каком формате Вам хочется получить список перловых модулей?
Попробуйте /usr/lib/rpm/perl.req .
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Поиск зависимостей
2007-09-19 8:11 ` Alexey Tourbin
@ 2007-09-19 8:23 ` Slava Dubrovskiy
2007-09-19 8:32 ` Alexey Tourbin
0 siblings, 1 reply; 11+ messages in thread
From: Slava Dubrovskiy @ 2007-09-19 8:23 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1168 bytes --]
Alexey Tourbin пишет:
> On Wed, Sep 19, 2007 at 10:52:52AM +0300, Slava Dubrovskiy wrote:
>
>> Есть набор скриптов расположенных в /var/www/cgi-bin на перле.
>> Нужно определить их зависимости на перловые модули. Собирать их в пакет
>> нет необходимости.
>> Возможно ли запустить парсер для /var/www/cgi-bin чтобы получить список
>> всех используемых модулей?
>>
>
> В каком формате Вам хочется получить список перловых модулей?
>
А какие возможны варианты? Хотелось бы иметь в виде списка пакетов или в
виде Math::BigInt
> Попробуйте /usr/lib/rpm/perl.req .
>
# /usr/lib/rpm/perl.req .
/usr/lib/rpm/perl.req: .: No such file or directory
А если так:
# /usr/lib/rpm/perl.req ./test_fcgi.fcgi
# perl(CGI/Fast.pm) at line 4 (depth 3) inside eval SKIP
/var/www/cgi-bin/video/test_fcgi.fcgi syntax OK
--
WBR,
Dubrovskiy Vyacheslav
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/x-pkcs7-signature, Size: 3249 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Поиск зависимостей
2007-09-19 8:23 ` Slava Dubrovskiy
@ 2007-09-19 8:32 ` Alexey Tourbin
2007-09-19 8:53 ` Slava Dubrovskiy
0 siblings, 1 reply; 11+ messages in thread
From: Alexey Tourbin @ 2007-09-19 8:32 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1074 bytes --]
On Wed, Sep 19, 2007 at 11:23:38AM +0300, Slava Dubrovskiy wrote:
> Alexey Tourbin пишет:
> > On Wed, Sep 19, 2007 at 10:52:52AM +0300, Slava Dubrovskiy wrote:
> >
> >> Есть набор скриптов расположенных в /var/www/cgi-bin на перле.
> >> Нужно определить их зависимости на перловые модули. Собирать их в пакет
> >> нет необходимости.
> >> Возможно ли запустить парсер для /var/www/cgi-bin чтобы получить список
> >> всех используемых модулей?
> >>
> >
> > В каком формате Вам хочется получить список перловых модулей?
> >
> А какие возможны варианты? Хотелось бы иметь в виде списка пакетов или в
> виде Math::BigInt
В общем-то то что дает perl.req это и есть список пакетов.
Его можно скармливать апту почти что в чистом виде.
> > Попробуйте /usr/lib/rpm/perl.req .
> >
> # /usr/lib/rpm/perl.req .
> /usr/lib/rpm/perl.req: .: No such file or directory
Вы хотите немало. Для отбора перловых файлов есть отдельная программа:
$ find /var/www/cgi-bin -type f |file -NF$'\t' -f - |/usr/lib/rpm/perl.req.files |/usr/lib/rpm/perl.req
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Поиск зависимостей
2007-09-19 8:32 ` Alexey Tourbin
@ 2007-09-19 8:53 ` Slava Dubrovskiy
2007-09-19 9:13 ` Alexey Tourbin
2007-09-19 9:29 ` Epiphanov Sergei
0 siblings, 2 replies; 11+ messages in thread
From: Slava Dubrovskiy @ 2007-09-19 8:53 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 2293 bytes --]
Alexey Tourbin пишет:
>>>> Есть набор скриптов расположенных в /var/www/cgi-bin на перле.
>>>> Нужно определить их зависимости на перловые модули. Собирать их в пакет
>>>> нет необходимости.
>>>> Возможно ли запустить парсер для /var/www/cgi-bin чтобы получить список
>>>> всех используемых модулей?
>>>>
>>> В каком формате Вам хочется получить список перловых модулей?
>>>
>> А какие возможны варианты? Хотелось бы иметь в виде списка пакетов или в
>> виде Math::BigInt
>>
> В общем-то то что дает perl.req это и есть список пакетов.
> Его можно скармливать апту почти что в чистом виде.
>
Не очень понятно как. Приведите пример, пожалуйста.
>>> Попробуйте /usr/lib/rpm/perl.req .
>>>
>> # /usr/lib/rpm/perl.req .
>> /usr/lib/rpm/perl.req: .: No such file or directory
>>
> Вы хотите немало. Для отбора перловых файлов есть отдельная программа:
> $ find /var/www/cgi-bin -type f |file -NF$'\t' -f - |/usr/lib/rpm/perl.req.files |/usr/lib/rpm/perl.req
>
Запустил:
# find /var/www/cgi-bin -type f |file -NF$'\t' -f -
|/usr/lib/rpm/perl.req.files |/usr/lib/rpm/perl.req
/var/www/cgi-bin/printenv syntax OK
/var/www/cgi-bin/video/get_dir_url.pm syntax OK
/var/www/cgi-bin/video/filter_tvc.pm syntax OK
# perl(cgi-lib.pl) at line 9 (depth 3) inside eval SKIP
# perl(easydata.set) at line 12 (depth 3) invalid SKIP
# perl(staff_users.set) at line 14 (depth 3) invalid SKIP
# perl(dblib.pl) at line 15 (depth 3) inside eval SKIP
# perl(edfunc.pl) at line 16 (depth 3) inside eval SKIP
# perl(staff_auth.pm) at line 17 (depth 3) inside eval SKIP
/var/www/cgi-bin/video/staff_adm_login.cgi syntax OK
и т.д. Там где Ok все понятно, а там где "inside eval SKIP" что это значит?
--
WBR,
Dubrovskiy Vyacheslav
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/x-pkcs7-signature, Size: 3249 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Поиск зависимостей
2007-09-19 8:53 ` Slava Dubrovskiy
@ 2007-09-19 9:13 ` Alexey Tourbin
2007-09-19 19:03 ` Michael Shigorin
2007-09-19 9:29 ` Epiphanov Sergei
1 sibling, 1 reply; 11+ messages in thread
From: Alexey Tourbin @ 2007-09-19 9:13 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 5503 bytes --]
On Wed, Sep 19, 2007 at 11:53:19AM +0300, Slava Dubrovskiy wrote:
> > В общем-то то что дает perl.req это и есть список пакетов.
> > Его можно скармливать апту почти что в чистом виде.
> Не очень понятно как. Приведите пример, пожалуйста.
$ perl.req /usr/bin/rss2mail2
# perl(Data/Dumper.pm) at line 314 (depth 3) inside eval SKIP
# perl(HTML/Lint.pm) at line 322 (depth 3) inside eval SKIP
# perl(XML/OPML.pm) at line 365 (depth 6) inside eval SKIP
/usr/bin/rss2mail2 syntax OK
perl(AppConfig.pm)
perl(base.pm)
perl(Class/DBI/BaseDSN.pm)
perl(Digest/MD5.pm)
perl(Encode.pm)
perl(Exception/Class.pm)
perl(Fcntl.pm)
perl(File/Path.pm)
perl(File/Spec/Functions.pm)
perl(Getopt/Long.pm)
perl(HTML/FormatText/WithLinks.pm)
perl(HTTP/Headers.pm)
perl(HTTP/Request.pm)
perl(List/Util.pm)
perl(LWP/UserAgent.pm)
perl(MIME/Lite.pm)
perl(MIME/Words.pm)
perl(Text/Autoformat.pm)
perl(Text/Diff.pm)
perl(warnings.pm)
perl(XML/Feed.pm)
$
Здесь все зависимости без версий, и их просто можно скармливать апту.
$ apt-get --dry-run install `perl.req /usr/bin/rss2mail2`
# perl(Data/Dumper.pm) at line 314 (depth 3) inside eval SKIP
# perl(HTML/Lint.pm) at line 322 (depth 3) inside eval SKIP
# perl(XML/OPML.pm) at line 365 (depth 6) inside eval SKIP
/usr/bin/rss2mail2 syntax OK
Reading Package Lists... Done
Building Dependency Tree... Done
Selecting perl-AppConfig for 'perl(AppConfig.pm)'
perl-AppConfig is already the newest version.
Selecting perl-base for 'perl(base.pm)'
perl-base is already the newest version.
Selecting perl-Class-DBI-BaseDSN for 'perl(Class/DBI/BaseDSN.pm)'
perl-Class-DBI-BaseDSN is already the newest version.
Selecting perl-base for 'perl(Digest/MD5.pm)'
perl-base is already the newest version.
Selecting perl-Encode for 'perl(Encode.pm)'
perl-Encode is already the newest version.
Selecting perl-Exception-Class for 'perl(Exception/Class.pm)'
perl-Exception-Class is already the newest version.
Selecting perl-base for 'perl(Fcntl.pm)'
perl-base is already the newest version.
Selecting perl-base for 'perl(File/Path.pm)'
perl-base is already the newest version.
Selecting perl-base for 'perl(File/Spec/Functions.pm)'
perl-base is already the newest version.
Selecting perl-base for 'perl(Getopt/Long.pm)'
perl-base is already the newest version.
Selecting perl-HTML-FormatText-WithLinks for 'perl(HTML/FormatText/WithLinks.pm)'
perl-HTML-FormatText-WithLinks is already the newest version.
Selecting perl-libwww for 'perl(HTTP/Headers.pm)'
perl-libwww is already the newest version.
Selecting perl-libwww for 'perl(HTTP/Request.pm)'
perl-libwww is already the newest version.
Package perl(List/Util.pm) is a virtual package provided by:
perl-base 5.8.8-alt14 [Installed]
perl-Scalar-List-Utils 1.18-alt1
You should explicitly select one to install.
E: Package perl(List/Util.pm) is a virtual package with multiple good
$
Кто собрал пакет perl-Scalar-List-Utils тот называется нехороший человек --
редиска.
В зависимостях с версиями нужно удалить пробелы.
$ perl.req /usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm
/usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm syntax OK
perl(XML/LibXML.pm) >= 1.600
perl(XML/LibXML/Boolean.pm)
perl(XML/LibXML/Literal.pm)
perl(XML/LibXML/NodeList.pm)
perl(XML/LibXML/Number.pm)
perl(XSLoader.pm)
$ perl.req /usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm |sed s/\ //g
/usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm syntax OK
perl(XML/LibXML.pm)>=1.600
perl(XML/LibXML/Boolean.pm)
perl(XML/LibXML/Literal.pm)
perl(XML/LibXML/NodeList.pm)
perl(XML/LibXML/Number.pm)
perl(XSLoader.pm)
$ apt-get --dry-run install `!!`
apt-get --dry-run install `perl.req /usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm |sed s/\ //g`
/usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm syntax OK
Reading Package Lists... Done
Building Dependency Tree... Done
E: Couldn't find package perl(XML
$
Что-то не работает.
В общем, тогда можно отрезать версии.
$ apt-get --dry-run install `perl.req /usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm |sed 's/ .*//g'`
/usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm syntax OK
Reading Package Lists... Done
Building Dependency Tree... Done
Selecting perl-XML-LibXML for 'perl(XML/LibXML.pm)'
perl-XML-LibXML is already the newest version.
Selecting perl-XML-LibXML for 'perl(XML/LibXML/Boolean.pm)'
perl-XML-LibXML is already the newest version.
Selecting perl-XML-LibXML for 'perl(XML/LibXML/Literal.pm)'
perl-XML-LibXML is already the newest version.
Selecting perl-XML-LibXML for 'perl(XML/LibXML/NodeList.pm)'
perl-XML-LibXML is already the newest version.
Selecting perl-XML-LibXML for 'perl(XML/LibXML/Number.pm)'
perl-XML-LibXML is already the newest version.
Selecting perl-base for 'perl(XSLoader.pm)'
perl-base is already the newest version.
0 upgraded, 0 newly installed, 0 removed and 175 not upgraded.
$
> # perl(cgi-lib.pl) at line 9 (depth 3) inside eval SKIP
> # perl(easydata.set) at line 12 (depth 3) invalid SKIP
> # perl(staff_users.set) at line 14 (depth 3) invalid SKIP
> # perl(dblib.pl) at line 15 (depth 3) inside eval SKIP
> # perl(edfunc.pl) at line 16 (depth 3) inside eval SKIP
> # perl(staff_auth.pm) at line 17 (depth 3) inside eval SKIP
> /var/www/cgi-bin/video/staff_adm_login.cgi syntax OK
> и т.д. Там где Ok все понятно, а там где "inside eval SKIP" что это значит?
Это значит что указанных зависимостей нет.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Поиск зависимостей
2007-09-19 9:13 ` Alexey Tourbin
@ 2007-09-19 19:03 ` Michael Shigorin
2007-09-19 19:18 ` Alexey Tourbin
0 siblings, 1 reply; 11+ messages in thread
From: Michael Shigorin @ 2007-09-19 19:03 UTC (permalink / raw)
To: ALT Linux Team development discussions; +Cc: Vitaly Lipatov
On Wed, Sep 19, 2007 at 01:13:05PM +0400, Alexey Tourbin wrote:
> Package perl(List/Util.pm) is a virtual package provided by:
> perl-base 5.8.8-alt14 [Installed]
> perl-Scalar-List-Utils 1.18-alt1
> You should explicitly select one to install.
> E: Package perl(List/Util.pm) is a virtual package with multiple good
> $
>
> Кто собрал пакет perl-Scalar-List-Utils тот называется
> нехороший человек -- редиска.
Хороший! А это повод ещё для одной проверки, вон на пересечение
с glibc-locales или filesystem есть же линтер.
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Поиск зависимостей
2007-09-19 19:03 ` Michael Shigorin
@ 2007-09-19 19:18 ` Alexey Tourbin
0 siblings, 0 replies; 11+ messages in thread
From: Alexey Tourbin @ 2007-09-19 19:18 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 961 bytes --]
On Wed, Sep 19, 2007 at 10:03:00PM +0300, Michael Shigorin wrote:
> On Wed, Sep 19, 2007 at 01:13:05PM +0400, Alexey Tourbin wrote:
> > Package perl(List/Util.pm) is a virtual package provided by:
> > perl-base 5.8.8-alt14 [Installed]
> > perl-Scalar-List-Utils 1.18-alt1
> > You should explicitly select one to install.
> > E: Package perl(List/Util.pm) is a virtual package with multiple good
> > $
> >
> > Кто собрал пакет perl-Scalar-List-Utils тот называется
> > нехороший человек -- редиска.
>
> Хороший! А это повод ещё для одной проверки, вон на пересечение
> с glibc-locales или filesystem есть же линтер.
Это повод для проверки на пересечение provides вообще. Если новый пакет
начинает предоставлять provides, и этот provides уже есть в репозитарии,
и ни один из пакетов с таким provides не принадлежит хорошему человеку
по ACL, то это повод просто не пропускать такой пакет на автомате.
Наверное и до этого доберёмся.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Поиск зависимостей
2007-09-19 8:53 ` Slava Dubrovskiy
2007-09-19 9:13 ` Alexey Tourbin
@ 2007-09-19 9:29 ` Epiphanov Sergei
2007-09-19 9:41 ` Alexey Tourbin
2007-09-19 9:45 ` Slava Dubrovskiy
1 sibling, 2 replies; 11+ messages in thread
From: Epiphanov Sergei @ 2007-09-19 9:29 UTC (permalink / raw)
To: ALT Linux Team development discussions
В сообщении от Wednesday 19 September 2007 12:53:19 Slava Dubrovskiy
написал(а):
> и т.д. Там где Ok все понятно, а там где "inside eval SKIP" что это
> значит?
Означает, что запрос на загрузку модуля расположен внутри eval-блока. То есть
сама команда
eval {use SomeModule};
не сломает запуск программы, если модуль SomeModule не стоит, но как при этом
поведёт себя программа, есть ли там проверка $@ или нет - сам парсер ничего
не знает и не сможет определить. Поэтому такие конструкции пропускаются.
--
С уважением, Епифанов Сергей
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Поиск зависимостей
2007-09-19 9:29 ` Epiphanov Sergei
@ 2007-09-19 9:41 ` Alexey Tourbin
2007-09-19 9:45 ` Slava Dubrovskiy
1 sibling, 0 replies; 11+ messages in thread
From: Alexey Tourbin @ 2007-09-19 9:41 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1104 bytes --]
On Wed, Sep 19, 2007 at 01:29:37PM +0400, Epiphanov Sergei wrote:
> В сообщении от Wednesday 19 September 2007 12:53:19 Slava Dubrovskiy
> написал(а):
> > и т.д. Там где Ok все понятно, а там где "inside eval SKIP" что это
> > значит?
>
> Означает, что запрос на загрузку модуля расположен внутри eval-блока. То есть
> сама команда
>
> eval {use SomeModule};
>
> не сломает запуск программы, если модуль SomeModule не стоит, но как при этом
> поведёт себя программа, есть ли там проверка $@ или нет - сам парсер ничего
> не знает и не сможет определить. Поэтому такие конструкции пропускаются.
Этот случай как раз сломает. Все "use" выполняются в безусловном
порядке так скоро, как парсер увидел use (perldoc -f use). Вот
eval "use SomeModule" # спратяно в строку
eval {require SomeModule}
это другое дело.
Фактически есть два разных eval'а -- т.н. entertry, т.е. eval BLOCK,
в котором код уже распарсен, и внутренний парсер в этом случае не
запускается. Просто перехватываются "die".
И есть eval EXPR, где на EXPR всякий раз запускается парсер (perldoc -f eval).
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Поиск зависимостей
2007-09-19 9:29 ` Epiphanov Sergei
2007-09-19 9:41 ` Alexey Tourbin
@ 2007-09-19 9:45 ` Slava Dubrovskiy
1 sibling, 0 replies; 11+ messages in thread
From: Slava Dubrovskiy @ 2007-09-19 9:45 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 849 bytes --]
Epiphanov Sergei пишет:
>> и т.д. Там где Ok все понятно, а там где "inside eval SKIP" что это
>> значит?
>>
> Означает, что запрос на загрузку модуля расположен внутри eval-блока. То есть
> сама команда
>
> eval {use SomeModule};
>
> не сломает запуск программы, если модуль SomeModule не стоит, но как при этом
> поведёт себя программа, есть ли там проверка $@ или нет - сам парсер ничего
> не знает и не сможет определить. Поэтому такие конструкции пропускаются.
>
Ага, понял. Спасибо большое.
--
WBR,
Dubrovskiy Vyacheslav
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/x-pkcs7-signature, Size: 3249 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2007-09-19 19:18 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-09-19 7:52 [devel] Поиск зависимостей Slava Dubrovskiy
2007-09-19 8:11 ` Alexey Tourbin
2007-09-19 8:23 ` Slava Dubrovskiy
2007-09-19 8:32 ` Alexey Tourbin
2007-09-19 8:53 ` Slava Dubrovskiy
2007-09-19 9:13 ` Alexey Tourbin
2007-09-19 19:03 ` Michael Shigorin
2007-09-19 19:18 ` Alexey Tourbin
2007-09-19 9:29 ` Epiphanov Sergei
2007-09-19 9:41 ` Alexey Tourbin
2007-09-19 9:45 ` Slava Dubrovskiy
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