Thread: Adding packages fro WAL-G and Odyssey

Adding packages fro WAL-G and Odyssey

From
Andrey Borodin
Date:
Hi!

I'm maintaining backup tool WAL-G, connection pooler Odyssey and some other PG-related tools.
I want to make these tools available via PGDG apt repository.
Where should I start? I've read some wiki pages [0] but did not figure out what to do...

We already build deb packages for internal distribution, but I think process may be different in this case.

Also, I'd like to do the same for Yum repository, but I think I should start from Apt.

Thanks!

Best regards, Andrey Borodin.

[0] https://wiki.postgresql.org/wiki/Apt


Re: Adding packages fro WAL-G and Odyssey

From
Devrim Gündüz
Date:
Hi Andrey,

On Sat, 2021-02-20 at 14:40 +0500, Andrey Borodin wrote:

> > Does any of these link to PG as an extension or are they "normal"
> > programs that do not depend on the PG major version?
> They are normal. Kind of.
> I'm planning to release Odyssey 1.2 soon, so I'd start from Odyssey,
> I think.

I took if I can RPMify Odyssey. Unless I'm missing something, there is
no other way than running make local_run to run it as a daemon -- which
I don't think is doable for any kind of packaging system.

So, what I if install build/sources/odyssey binary under /usr/bin, cp
oddysey.conf to /etc/odyssey.conf and run it via systemctl? Is this
sufficient ?

Regards,

--
Devrim Gündüz
Open Source Solution Architect, Red Hat Certified Engineer
Twitter: @DevrimGunduz , @DevrimGunduzTR

Attachment

Re: Adding packages fro WAL-G and Odyssey

From
Andrey Borodin
Date:
Devrim, thank you for looking into this!

> 30 марта 2021 г., в 02:05, Devrim Gündüz <devrim@gunduz.org> написал(а):
> On Sat, 2021-02-20 at 14:40 +0500, Andrey Borodin wrote:
>
>>> Does any of these link to PG as an extension or are they "normal"
>>> programs that do not depend on the PG major version?
>> They are normal. Kind of.
>> I'm planning to release Odyssey 1.2 soon, so I'd start from Odyssey,
>> I think.
>
> I took if I can RPMify Odyssey. Unless I'm missing something, there is
> no other way than running make local_run to run it as a daemon -- which
> I don't think is doable for any kind of packaging system.
>
> So, what I if install build/sources/odyssey binary under /usr/bin, cp
> oddysey.conf to /etc/odyssey.conf and run it via systemctl? Is this
> sufficient ?


I think this should work. There is a setting "daemonize", I think it must be on to start properly in this setup.

Thank you!

Best regards, Andrey Borodin.


Re: Adding packages fro WAL-G and Odyssey

From
Christoph Berg
Date:
Re: Andrey Borodin
> > we'd need a proper debian/ directory for these, either in the upstream
> > repo or in a separate one.
> Odyssey had debian/ dir https://github.com/yandex/odyssey/tree/master/scripts/debian

Hi,

that directory would need to be /debian, not somewhere deeper in the
tree. (Interestingly, you already have a /debian, just with less
files.)

> WAL-G is simply one Go binary. https://github.com/wal-g/wal-g/tree/master/cmd/pg
> Though it's a separate Go binary for each DB: PG, MySQL, MSSQL, MongoDB etc. But I think it's better to start from PG
anyway.
> We used to build this binary and create almost empty debian/ dir with a script (FPA). We can commit this dir it it's
betterto have it in source tree.
 

FPA usually doesn't produce "proper" packages with a curated
debian/changelog (no throwing away of old entries, and sensible log
messages) and the other bits.

debian/rules shouldn't try to build a -dbg package these days

debian/control shouldn't depend on postgresql-server-dev-13 but on
postgresql-server-dev-all if you really need server headers instead of
just the client ones.

The Description needs more content

Standards-Version is outdated

Consider using debhelper-compat (= 13) instead of debian/compat 9

Consider providing a systemd .service file along the init script


Christoph



Re: Adding packages fro WAL-G and Odyssey

From
Andrey Borodin
Date:

> 5 июля 2021 г., в 21:25, Christoph Berg <myon@debian.org> написал(а):
>
> Re: Andrey Borodin
>>> we'd need a proper debian/ directory for these, either in the upstream
>>> repo or in a separate one.
>> Odyssey had debian/ dir https://github.com/yandex/odyssey/tree/master/scripts/debian
>
> Hi,
>
> that directory would need to be /debian, not somewhere deeper in the
> tree. (Interestingly, you already have a /debian, just with less
> files.)
>
>> WAL-G is simply one Go binary. https://github.com/wal-g/wal-g/tree/master/cmd/pg
>> Though it's a separate Go binary for each DB: PG, MySQL, MSSQL, MongoDB etc. But I think it's better to start from
PGanyway. 
>> We used to build this binary and create almost empty debian/ dir with a script (FPA). We can commit this dir it it's
betterto have it in source tree. 
>
> FPA usually doesn't produce "proper" packages with a curated
> debian/changelog (no throwing away of old entries, and sensible log
> messages) and the other bits.
>
> debian/rules shouldn't try to build a -dbg package these days
>
> debian/control shouldn't depend on postgresql-server-dev-13 but on
> postgresql-server-dev-all if you really need server headers instead of
> just the client ones.
>
> The Description needs more content
>
> Standards-Version is outdated
>
> Consider using debhelper-compat (= 13) instead of debian/compat 9
>
> Consider providing a systemd .service file along the init script

Thanks, Christoph!
We have updated /debian stuff in Odyssey. Can you please take a look again?
https://github.com/yandex/odyssey/pull/372/files

Best regards, Andrey Borodin.