[devel] Сборка расширений PostgreSQL
alexei на taf.ru
alexei на taf.ru
Ср Фев 9 16:29:47 MSK 2022
----- Исходное сообщение -----
> От: "alexei" <alexei на taf.ru>
> Кому: "ALT Linux Team development discussions" <devel на lists.altlinux.org>
> Отправленные: Среда, 9 Февраль 2022 г 21:25:43
> Тема: Re: [devel] Сборка расширений PostgreSQL
> ----- Исходное сообщение -----
>> От: "ldv" <ldv на altlinux.org>
>> Кому: "alexei" <alexei на taf.ru>
>> Копия: "ALT Linux Team development discussions" <devel на lists.altlinux.org>
>> Отправленные: Среда, 9 Февраль 2022 г 21:14:54
>> Тема: Re: [devel] Сборка расширений PostgreSQL
>
>> On Wed, Feb 09, 2022 at 08:51:08PM +0800, alexei на taf.ru wrote:
>> [...]
>>> Поправил
>>>
>>> https://git.altlinux.org/tasks/294683/logs/events.4.1.log
>>>
>>> girar-check-perms: access to kde5-kdb DENIED for taf: does not belong to
>>> approved builders list: zerg
>>
>> Я посмотрел, какие изменения понадобилось сделать в этом пакете:
>> https://git.altlinux.org/tasks/294683/gears/1100/git?p=git;a=commitdiff;h=master
>>
>> На мой взгляд, следующая часть изменения концепутально неправильная:
>>
>> diff --git a/.gear/kdb.spec b/.gear/kdb.spec
>> index 7b37cc91..c68e9055 100644
>> --- a/.gear/kdb.spec
>> +++ b/.gear/kdb.spec
>> @@ -2,6 +2,7 @@
>>
>> %define sover 4
>> %define libkdb3 libkdb3%sover
>> +%define pg_ver 14
>>
>> Name: kde5-%rname
>> Version: 3.2.0
>> @@ -21,7 +22,7 @@ Source: %rname-%version.tar
>> BuildRequires(pre): rpm-build-kf5
>> BuildRequires: extra-cmake-modules qt5-base-devel qt5-wayland-devel
>> BuildRequires: libicu-devel
>> -BuildRequires: libmysqlclient-devel postgresql-devel sqlite3 libsqlite3-devel
>> +BuildRequires: libmysqlclient-devel postgresql%pg_ver-server-devel sqlite3
>> libsqlite3-devel
>> BuildRequires: kf5-kcoreaddons-devel
>> BuildRequires: rpm-build-python3 python3(shlex)
>>
>> Пакет kdb не должен зашивать версию postgresql-server-devel в сборочные
>> зависимости. Более того, никакой обычный пакет не должен этого делать,
>> вместо этого следует всегда использовать то, что является версией по
>> умолчанию в репозитории на момент сборки.
>>
>> Например, одна из реализаций может содержать
>> "Provides: postgresql-server-devel".
>
> Идея как раз в том, что если кому-то надо именно серверный API, то он должен
> четко понимать под какую ветку он собирает приложение, так как это API,
> в отличии от libpq обратно не совместимо.
>
> Тут скорее надо смотреть внутрь самого приложения, реально ли ему надо
> лезть в серверный API, или может это какой-то атавизм, и вполне достаточно
> интерфейса libpq.
И еще, при сборке серверного расширения выбор к какой ветке линковаться происходит
на этапе написания спека. Потому что ситуация, когда расширение работает на старой
версии но ломается на новой и чинится апстримом где-то через полгода-год, это проза
жизни, пример - timescaledb.
Подробная информация о списке рассылки Devel