ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Утилиты для работы с  setversions?
@ 2019-10-26 13:31 Andrey Savchenko
  2019-10-26 14:17 ` Alexey Tourbin
  0 siblings, 1 reply; 10+ messages in thread
From: Andrey Savchenko @ 2019-10-26 13:31 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 564 bytes --]

Добрый день!

Есть ли у нас утилиты для работы с set versions? На вики ничего
не нашёл. Мне нужно развернуть set:<hash_array> в список символов.
Понятно, что для этого нужны бинарники, они в пакете есть.

Ещё было бы полезно знать, как получить список символов для каждой
библиотеки до вычисления хешей.

Best regards,
Andrew Savchenko

[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] Утилиты для работы с setversions?
  2019-10-26 13:31 [devel] Утилиты для работы с setversions? Andrey Savchenko
@ 2019-10-26 14:17 ` Alexey Tourbin
  2019-10-26 15:10   ` Andrey Savchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Alexey Tourbin @ 2019-10-26 14:17 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1422 bytes --]

On Sat, Oct 26, 2019 at 4:31 PM Andrey Savchenko <bircoph@altlinux.org> wrote:
> Добрый день!
>
> Есть ли у нас утилиты для работы с set versions? На вики ничего
> не нашёл. Мне нужно развернуть set:<hash_array> в список символов.
> Понятно, что для этого нужны бинарники, они в пакете есть.

Set-версия состоит из упорядоченного набора bpp-битных хешей (а
кодируются дельты между хешами).  Хеши можно получить через закрытое
API, которое доступно через только через #include "set.c".  Прикрепил
пример.

$ rpm -q --provides glibc-core |grep 'libdl.*set'
libdl.so.2()(64bit) = set:hdBjS1I4gQ8BohwImELo8Zh
$ ./a.out set:hdBjS1I4gQ8BohwImELo8Zh
0272
0a8f
12b4
1f1c
1fb0
23f5
31a1
3571
35d3
3bcb

> Ещё было бы полезно знать, как получить список символов для каждой
> библиотеки до вычисления хешей.

Список для Provides делается через /usr/lib/rpm/provided_symbols.
Список для Requires делается более сложным образом с использованием
/usr/lib/rpm/ldd.

[-- Attachment #2: printset.c --]
[-- Type: text/x-csrc, Size: 514 bytes --]

#include <stdio.h>
#include "set.c"

int main(int argc, char **argv)
{
    assert(argc == 2);
    const char *s = argv[1];
    assert(strncmp(s, "set:", 4) == 0);
    s += 4;

    int bpp, m;
    int rc = decode_set_init(s, &bpp, &m);
    assert(rc == 0);

    size_t len = strlen(s);
    int n = decode_set_size(len, m);
    assert(n > 0);

    unsigned v[n];
    n = decode_set(s, m, v);
    assert(n > 0);

    int w = (bpp + 3) / 4;
    for (int i = 0; i < n; i++)
	printf("%0*x\n", w, v[i]);

    return 0;
}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] Утилиты для работы с setversions?
  2019-10-26 14:17 ` Alexey Tourbin
@ 2019-10-26 15:10   ` Andrey Savchenko
  2019-10-26 22:38     ` Alexey Tourbin
  0 siblings, 1 reply; 10+ messages in thread
From: Andrey Savchenko @ 2019-10-26 15:10 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1886 bytes --]

On Sat, 26 Oct 2019 17:17:25 +0300 Alexey Tourbin wrote:
> On Sat, Oct 26, 2019 at 4:31 PM Andrey Savchenko <bircoph@altlinux.org> wrote:
> > Добрый день!
> >
> > Есть ли у нас утилиты для работы с set versions? На вики ничего
> > не нашёл. Мне нужно развернуть set:<hash_array> в список символов.
> > Понятно, что для этого нужны бинарники, они в пакете есть.
> 
> Set-версия состоит из упорядоченного набора bpp-битных хешей (а
> кодируются дельты между хешами).  Хеши можно получить через закрытое
> API, которое доступно через только через #include "set.c".  Прикрепил
> пример.
> 
> $ rpm -q --provides glibc-core |grep 'libdl.*set'
> libdl.so.2()(64bit) = set:hdBjS1I4gQ8BohwImELo8Zh
> $ ./a.out set:hdBjS1I4gQ8BohwImELo8Zh
> 0272
> 0a8f
> 12b4
> 1f1c
> 1fb0
> 23f5
> 31a1
> 3571
> 35d3
> 3bcb

Как я понял, это хеши символов. По какому алгоритму они вычисляются?
Мне нужно для имеющегося списка символов вычислить аналогичные хеши
для дальнейшего сравнения.
 
> > Ещё было бы полезно знать, как получить список символов для каждой
> > библиотеки до вычисления хешей.
> 
> Список для Provides делается через /usr/lib/rpm/provided_symbols.
> Список для Requires делается более сложным образом с использованием
> /usr/lib/rpm/ldd.


Best regards,
Andrew Savchenko

[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] Утилиты для работы с setversions?
  2019-10-26 15:10   ` Andrey Savchenko
@ 2019-10-26 22:38     ` Alexey Tourbin
  2019-10-26 22:47       ` Andrey Savchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Alexey Tourbin @ 2019-10-26 22:38 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1197 bytes --]

On Sat, Oct 26, 2019 at 6:10 PM Andrey Savchenko <bircoph@altlinux.org> wrote:
> On Sat, 26 Oct 2019 17:17:25 +0300 Alexey Tourbin wrote:
> > $ rpm -q --provides glibc-core |grep 'libdl.*set'
> > libdl.so.2()(64bit) = set:hdBjS1I4gQ8BohwImELo8Zh
> > $ ./a.out set:hdBjS1I4gQ8BohwImELo8Zh
> > 0272
> > 0a8f
> > 12b4
> > 1f1c
> > 1fb0
> > 23f5
> > 31a1
> > 3571
> > 35d3
> > 3bcb
>
> Как я понял, это хеши символов. По какому алгоритму они вычисляются?
> Мне нужно для имеющегося списка символов вычислить аналогичные хеши
> для дальнейшего сравнения.

Это set.c:hash(), но можно воспользоваться set_new/set_add, который
хеширует и сортирует строки по хешу.  Прикрепил более полный пример.

$ /usr/lib/rpm/provided_symbols /lib64/libdl.so.2 |./a.out
set:hdBjS1I4gQ8BohwImELo8Zh                                1
0272 dladdr1
0a8f _dlfcn_hook
12b4 dlsym
1f1c dlerror
1fb0 dlclose
23f5 dlopen
31a1 dlinfo
3571 dlvsym
35d3 dladdr
3bcb dlmopen

[-- Attachment #2: printset.c --]
[-- Type: text/x-csrc, Size: 1184 bytes --]

#include <stdio.h>
#include "set.c"

int main(int argc, char **argv)
{
    assert(argc == 2);
    const char *s = argv[1];
    assert(strncmp(s, "set:", 4) == 0);
    s += 4;

    int bpp, m;
    int rc = decode_set_init(s, &bpp, &m);
    assert(rc == 0);

    size_t len = strlen(s);
    int n = decode_set_size(len, m);
    assert(n > 0);

    unsigned v[n];
    n = decode_set(s, m, v);
    assert(n > 0);

    // Read the list of symbols from stdin.
    struct set *set = set_new();
    char *line = NULL;
    size_t alloc = 0;
    while ((len = getline(&line, &alloc, stdin)) != -1) {
	assert(len > 1);
	len--;
	assert(line[len] == '\n');
	line[len] = '\0';
	set_add(set, line);
    }
    
    // Hash and sort the symbols by hash.
    s = set_fini(set, bpp);
    assert(s && "non-empty set");
    s = _free(s); // don't neeed the result, only the internal structure

    // Join v[] and set->sv[].
    int w = (bpp + 3) / 4;
    for (int i = 0; i < n; i++) {
	// TODO: handle collisions and/or missing elements,
	// advance lists separately like in mergesort.
	assert(set->sv[i].v == v[i]);
	printf("%0*x %s\n", w, v[i], set->sv[i].s);
    }

    set_free(set);
    return 0;
}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] Утилиты для работы с setversions?
  2019-10-26 22:38     ` Alexey Tourbin
@ 2019-10-26 22:47       ` Andrey Savchenko
  2019-10-29 18:23         ` Andrey Savchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Andrey Savchenko @ 2019-10-26 22:47 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1422 bytes --]

On Sun, 27 Oct 2019 01:38:40 +0300 Alexey Tourbin wrote:
> On Sat, Oct 26, 2019 at 6:10 PM Andrey Savchenko <bircoph@altlinux.org> wrote:
> > On Sat, 26 Oct 2019 17:17:25 +0300 Alexey Tourbin wrote:
> > > $ rpm -q --provides glibc-core |grep 'libdl.*set'
> > > libdl.so.2()(64bit) = set:hdBjS1I4gQ8BohwImELo8Zh
> > > $ ./a.out set:hdBjS1I4gQ8BohwImELo8Zh
> > > 0272
> > > 0a8f
> > > 12b4
> > > 1f1c
> > > 1fb0
> > > 23f5
> > > 31a1
> > > 3571
> > > 35d3
> > > 3bcb
> >
> > Как я понял, это хеши символов. По какому алгоритму они вычисляются?
> > Мне нужно для имеющегося списка символов вычислить аналогичные хеши
> > для дальнейшего сравнения.
> 
> Это set.c:hash(), но можно воспользоваться set_new/set_add, который
> хеширует и сортирует строки по хешу.  Прикрепил более полный пример.
> 
> $ /usr/lib/rpm/provided_symbols /lib64/libdl.so.2 |./a.out
> set:hdBjS1I4gQ8BohwImELo8Zh                                1
> 0272 dladdr1
> 0a8f _dlfcn_hook
> 12b4 dlsym
> 1f1c dlerror
> 1fb0 dlclose
> 23f5 dlopen
> 31a1 dlinfo
> 3571 dlvsym
> 35d3 dladdr
> 3bcb dlmopen

Спасибо! Как раз это мне и нужно.

Best regards,
Andrew Savchenko

[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] Утилиты для работы с setversions?
  2019-10-26 22:47       ` Andrey Savchenko
@ 2019-10-29 18:23         ` Andrey Savchenko
  2019-10-30  2:04           ` Alexey Tourbin
  0 siblings, 1 reply; 10+ messages in thread
From: Andrey Savchenko @ 2019-10-29 18:23 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 2310 bytes --]

On Sun, 27 Oct 2019 01:47:00 +0300 Andrey Savchenko wrote:
> On Sun, 27 Oct 2019 01:38:40 +0300 Alexey Tourbin wrote:
> > On Sat, Oct 26, 2019 at 6:10 PM Andrey Savchenko <bircoph@altlinux.org> wrote:
> > > On Sat, 26 Oct 2019 17:17:25 +0300 Alexey Tourbin wrote:
> > > > $ rpm -q --provides glibc-core |grep 'libdl.*set'
> > > > libdl.so.2()(64bit) = set:hdBjS1I4gQ8BohwImELo8Zh
> > > > $ ./a.out set:hdBjS1I4gQ8BohwImELo8Zh
> > > > 0272
> > > > 0a8f
> > > > 12b4
> > > > 1f1c
> > > > 1fb0
> > > > 23f5
> > > > 31a1
> > > > 3571
> > > > 35d3
> > > > 3bcb
> > >
> > > Как я понял, это хеши символов. По какому алгоритму они вычисляются?
> > > Мне нужно для имеющегося списка символов вычислить аналогичные хеши
> > > для дальнейшего сравнения.
> > 
> > Это set.c:hash(), но можно воспользоваться set_new/set_add, который
> > хеширует и сортирует строки по хешу.  Прикрепил более полный пример.
> > 
> > $ /usr/lib/rpm/provided_symbols /lib64/libdl.so.2 |./a.out
> > set:hdBjS1I4gQ8BohwImELo8Zh                                1
> > 0272 dladdr1
> > 0a8f _dlfcn_hook
> > 12b4 dlsym
> > 1f1c dlerror
> > 1fb0 dlclose
> > 23f5 dlopen
> > 31a1 dlinfo
> > 3571 dlvsym
> > 35d3 dladdr
> > 3bcb dlmopen
> 
> Спасибо! Как раз это мне и нужно.

К сожалению, для решения реальной проблемы этого недостаточно:

$ /usr/lib/rpm/provided_symbols /usr/lib64/libharfbuzz-subset.so.0 | ./get_hash set:nkVnoZa9uXJTAxpulY0e0jZy0
warning: hash collision: _ZN10__cxxabiv115__forced_unwindD1Ev _ZNK2OT8OffsetToINS_12ConditionSetENS_7IntTypeIjLj4EEELb1EE8sanitizeEP21hb_sanitize_context_tPKv
get_hash: get_hash.c:45: main: Assertion `set->sv[i].v == v[i]' failed.
Aborted (core dumped)

Понятно, что нужно обрабатывать коллизии хешей, но код set.c слишком
велик, чтоб в нём разобраться за разумное время без детальной документации.

Best regards,
Andrew Savchenko

[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] Утилиты для работы с setversions?
  2019-10-29 18:23         ` Andrey Savchenko
@ 2019-10-30  2:04           ` Alexey Tourbin
  2019-10-30  9:06             ` Andrey Savchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Alexey Tourbin @ 2019-10-30  2:04 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Tue, Oct 29, 2019 at 9:23 PM Andrey Savchenko <bircoph@altlinux.org> wrote:
> К сожалению, для решения реальной проблемы этого недостаточно:

Давайте решим реальную проблему. Что вы хотите сделать? Left outer join?

> $ /usr/lib/rpm/provided_symbols /usr/lib64/libharfbuzz-subset.so.0 | ./get_hash set:nkVnoZa9uXJTAxpulY0e0jZy0
> warning: hash collision: _ZN10__cxxabiv115__forced_unwindD1Ev _ZNK2OT8OffsetToINS_12ConditionSetENS_7IntTypeIjLj4EEELb1EE8sanitizeEP21hb_sanitize_context_tPKv
> get_hash: get_hash.c:45: main: Assertion `set->sv[i].v == v[i]' failed.
> Aborted (core dumped)
>
> Понятно, что нужно обрабатывать коллизии хешей, но код set.c слишком
> велик, чтоб в нём разобраться за разумное время без детальной документации.

В примере в TODO сказано, что это не настоящий join, и что нужно для
настоящего join'а продвигать списки по-отдельности. Вы зря валите на
код set.c. У вас есть два примитива: 1) распаковать set-строку в
массив хешей v[]; 2) прохешировать заданный набор строк и
отсортировать их по хешу, будет массив пар <str,v>[].  Этим задача
set.c исчерпывается, и дальше разбираться в его коде не нужно.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] Утилиты для работы с setversions?
  2019-10-30  2:04           ` Alexey Tourbin
@ 2019-10-30  9:06             ` Andrey Savchenko
  2019-10-30 10:46               ` Vladimir D. Seleznev
  0 siblings, 1 reply; 10+ messages in thread
From: Andrey Savchenko @ 2019-10-30  9:06 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1034 bytes --]

On Wed, 30 Oct 2019 05:04:27 +0300 Alexey Tourbin wrote:
> On Tue, Oct 29, 2019 at 9:23 PM Andrey Savchenko <bircoph@altlinux.org> wrote:
> > К сожалению, для решения реальной проблемы этого недостаточно:
> 
> Давайте решим реальную проблему. Что вы хотите сделать? Left outer join?

Задача следующая:

1) Есть библиотека foo-1.0
2) Она обновилась до foo-1.0.1
3) Возник unmet пакета bar на libfoo.so (>= set:abcdef)

Мне нужно знать, каких именно символов из foo стало не хватать bar.

Будет при этом left outer join или right inner join — мне абсолютно
не важно. От rpm мне нужна возможность отображать set в список
символов (при наличии библиотеки, разумеется).

Best regards,
Andrew Savchenko

[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] Утилиты для работы с setversions?
  2019-10-30  9:06             ` Andrey Savchenko
@ 2019-10-30 10:46               ` Vladimir D. Seleznev
  2019-10-30 11:38                 ` Andrey Savchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Vladimir D. Seleznev @ 2019-10-30 10:46 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Wed, Oct 30, 2019 at 12:06:26PM +0300, Andrey Savchenko wrote:
> On Wed, 30 Oct 2019 05:04:27 +0300 Alexey Tourbin wrote:
> > On Tue, Oct 29, 2019 at 9:23 PM Andrey Savchenko <bircoph@altlinux.org> wrote:
> > > К сожалению, для решения реальной проблемы этого недостаточно:
> > 
> > Давайте решим реальную проблему. Что вы хотите сделать? Left outer join?
> 
> Задача следующая:
> 
> 1) Есть библиотека foo-1.0
> 2) Она обновилась до foo-1.0.1
> 3) Возник unmet пакета bar на libfoo.so (>= set:abcdef)
> 
> Мне нужно знать, каких именно символов из foo стало не хватать bar.
> 
> Будет при этом left outer join или right inner join — мне абсолютно
> не важно. От rpm мне нужна возможность отображать set в список
> символов (при наличии библиотеки, разумеется).

Я думаю, проще воспользоваться утилитой rpmsodiff(1) из состава пакета
qa-robot, которая в т.ч. сравнивает символы в пределах SONAME:

$ rpmsodiff /ALT/repo/sisyphus/date/2017/01/01/x86_64/RPMS.classic/libglusterfs3-3.8.4-alt1.x86_64.rpm \
            /ALT/repo/sisyphus/date/2018/01/01/x86_64/RPMS.classic/libglusterfs3-3.12.4-alt1.x86_64.rpm |
            head -n 15
	common sonames:
libgfchangelog.so.0	/usr/lib64/libgfchangelog.so.0.0.1	/usr/lib64/libgfchangelog.so.0.0.1
libgfrpc.so.0	/usr/lib64/libgfrpc.so.0.0.1	/usr/lib64/libgfrpc.so.0.0.1
libgfxdr.so.0	/usr/lib64/libgfxdr.so.0.0.1	/usr/lib64/libgfxdr.so.0.0.1
libglusterfs.so.0	/usr/lib64/libglusterfs.so.0.0.1	/usr/lib64/libglusterfs.so.0.0.1

--- libglusterfs3-3.8.4-alt1/libgfchangelog.so.0	2016-10-02 02:02:01.000000000 +0300
+++ libglusterfs3-3.12.4-alt1/libgfchangelog.so.0	2017-12-17 20:05:18.000000000 +0300
@@ -74,3 +74,3 @@
 gf_readline	T
-gf_rfc3986_encode	T
+gf_rfc3986_encode_space_newline	T
 gf_thread_cleanup	T

	1 symbols removed

-- 
   С уважением,
   Владимир Селезнев


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] Утилиты для работы с setversions?
  2019-10-30 10:46               ` Vladimir D. Seleznev
@ 2019-10-30 11:38                 ` Andrey Savchenko
  0 siblings, 0 replies; 10+ messages in thread
From: Andrey Savchenko @ 2019-10-30 11:38 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 3415 bytes --]

On Wed, 30 Oct 2019 13:46:26 +0300 Vladimir D. Seleznev wrote:
> On Wed, Oct 30, 2019 at 12:06:26PM +0300, Andrey Savchenko wrote:
> > On Wed, 30 Oct 2019 05:04:27 +0300 Alexey Tourbin wrote:
> > > On Tue, Oct 29, 2019 at 9:23 PM Andrey Savchenko <bircoph@altlinux.org> wrote:
> > > > К сожалению, для решения реальной проблемы этого недостаточно:
> > > 
> > > Давайте решим реальную проблему. Что вы хотите сделать? Left outer join?
> > 
> > Задача следующая:
> > 
> > 1) Есть библиотека foo-1.0
> > 2) Она обновилась до foo-1.0.1
> > 3) Возник unmet пакета bar на libfoo.so (>= set:abcdef)
> > 
> > Мне нужно знать, каких именно символов из foo стало не хватать bar.
> > 
> > Будет при этом left outer join или right inner join — мне абсолютно
> > не важно. От rpm мне нужна возможность отображать set в список
> > символов (при наличии библиотеки, разумеется).
> 
> Я думаю, проще воспользоваться утилитой rpmsodiff(1) из состава пакета
> qa-robot, которая в т.ч. сравнивает символы в пределах SONAME:

Она мне ответит на вопрос чем отличается новая и старая библиотека,
но не на вопрос какие символы из этой разницы нужны заданному
пакету. Понятно, что можно прообждампить все бинарники пакета
и затем сопоставить списки символов с вытащенными из разницы.

Но ведь rpm уже обладает всей нужной информацией в виде set!
Просто нет инструментов для работы с ней :/

P.S. Конкретно возникшую прошблему с libharfbuzz я уже решил иными
методами, но безусловно, что подобные задачи будут возникать
и в дальнейшем, и было бы очень полезно иметь инструменты для их
решения. 

> $ rpmsodiff /ALT/repo/sisyphus/date/2017/01/01/x86_64/RPMS.classic/libglusterfs3-3.8.4-alt1.x86_64.rpm \
>             /ALT/repo/sisyphus/date/2018/01/01/x86_64/RPMS.classic/libglusterfs3-3.12.4-alt1.x86_64.rpm |
>             head -n 15
> 	common sonames:
> libgfchangelog.so.0	/usr/lib64/libgfchangelog.so.0.0.1	/usr/lib64/libgfchangelog.so.0.0.1
> libgfrpc.so.0	/usr/lib64/libgfrpc.so.0.0.1	/usr/lib64/libgfrpc.so.0.0.1
> libgfxdr.so.0	/usr/lib64/libgfxdr.so.0.0.1	/usr/lib64/libgfxdr.so.0.0.1
> libglusterfs.so.0	/usr/lib64/libglusterfs.so.0.0.1	/usr/lib64/libglusterfs.so.0.0.1
> 
> --- libglusterfs3-3.8.4-alt1/libgfchangelog.so.0	2016-10-02 02:02:01.000000000 +0300
> +++ libglusterfs3-3.12.4-alt1/libgfchangelog.so.0	2017-12-17 20:05:18.000000000 +0300
> @@ -74,3 +74,3 @@
>  gf_readline	T
> -gf_rfc3986_encode	T
> +gf_rfc3986_encode_space_newline	T
>  gf_thread_cleanup	T
> 
> 	1 symbols removed
> 


Best regards,
Andrew Savchenko

[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-10-30 11:38 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-26 13:31 [devel] Утилиты для работы с setversions? Andrey Savchenko
2019-10-26 14:17 ` Alexey Tourbin
2019-10-26 15:10   ` Andrey Savchenko
2019-10-26 22:38     ` Alexey Tourbin
2019-10-26 22:47       ` Andrey Savchenko
2019-10-29 18:23         ` Andrey Savchenko
2019-10-30  2:04           ` Alexey Tourbin
2019-10-30  9:06             ` Andrey Savchenko
2019-10-30 10:46               ` Vladimir D. Seleznev
2019-10-30 11:38                 ` Andrey Savchenko

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