[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building gambas on OBS


Am 13.11.24 um 23:31 schrieb Benoît Minisini:
Le 12/11/2024 à 16:35, munix9 a écrit :
Am 11.11.24 um 23:12 schrieb munix9:
Am 11.11.24 um 19:54 schrieb Benoît Minisini:

Hi,

OK, let's try to use OpenSUSE Build Service.

Here is what I will do now:

1) I add the same ".obs" directory than you to the root of Gambas sources. I update them according to the 'master' branch.

2) I make a "gambas-package-config" Gambas project in the "app/src" directory. This project will generate the contents of the ".obs" directory.

At the moment, I don't think that everything can be generated automatically. To start, I think I can put the same component description automatically everywhere. I will try to go further, but I think package dependencies must be done manually, as they are different between distributions.

The goal is the following:

1) Every Debian/Ubuntu/ArchLinux/SuSE/Fedora packager will just have to take the files from the ".obs" directory to make Gambas packages for their distribution. No excuse anymore for having incorrect packages of Gambas in Debian, Ubuntu (for example)...

2) All packages will be available on 'build.opensuse.org'.

I just don't understand at the moment if just "x86_64" is possible, or if we can have "aarch64" packages too, and if the package build must be done locally or if it can occurs only on the openSUSE servers.


That all sounds very reasonable.


OK, this is going to be a slightly longer answer ...

There are already some package build descriptions on the net, which I have used for the poc, for example: The one from Arch, mine for openSUSE, Fedora also has its own, the ones from Debian/Ubuntu that don't (quite) match the defaults, the ones that exist from the gambas team on launchpad, ... and probably a few more.

It is not always the bad intention of a packager to make changes to the specification, but rather the needs of the respective distribution.

OBS offers the possibility to make and organize adaptations for corresponding distributions - I have done this in the poc for Debian_11, for example, because libwebkit2gtk-4.1-dev is not available there and libwebkit2gtk-4.0-dev is used instead.

OBS recognizes this by the fact that it does not use the standard build-spec gambas3.dsc for Debian_11, but the gambas3-Debian_11.dsc

With automation this can and should be taken into account - this will happen more often over time for the different distributions.


The possible architectures:

Check out https://build.opensuse.org/project/monitor/home:munix9:gambas:test now, I added aarch64, except for Arch. This is actually relatively easy to do in OBS as long as some requirements are met: - the distribution offers the architecture (i.e. corresponding binaries for the build)
- OBS has integrated the distribution and the various architectures

With Arch, for example, only x86_64 exists, see https://build.opensuse.org/project/show/Arch:Community With Ubuntu 24.04 there are significantly more: https://build.opensuse.org/project/show/Ubuntu:24.04 But: A sensible selection should also be made here, otherwise the build of the packages can take a very long time.


A possible organization on OBS:
This is just a suggestion, I'm sure you've already given it some thought.

Let's assume that the base project for Gambas in OBS is home:gambas (or home:Gambas, or home:benoit_minisini, or devel:languages:gambas, or Gambas: - this will probably not be accepted).

For the master branch, it might be a good idea:
home:gambas:master or
home:gambas:unstable or
home:gambas:daily or
home:gambas:latest (to be avoided, as it is often confused with “latest stable version”)

For the stable branch it would probably be easier, if needed:
home:gambas:stable


And then the last three versions (?!):
home:gambas:3.19
home:gambas:3.18
home:gambas:3.17

The question is whether you should also offer several sub-versions: in my opinion no, that would be too much and no longer easy to manage. In exceptional situations, you could create a corresponding sub-project if something has gone completely wrong and you need to offer a dedicated sub-version:
home:gambas:3.18.4

You may need a general sub-project that contains additional packages that are needed to build gambas but are not provided by the distribution.

Of course you could disable the build of the corresponding package in gambas “--disable-...”, like for qt4 e.g. in openSUSE, but sometimes you still want to build and offer the packages, including dependencies.

e.g. the gb.mongodb available in master: for openSUSE the mongo client is not available in the official sources, but only in the devel section. It is possible to offer this additionally in OBS and such packages could then end up here, for example:
home:gambas or
home:gambas:common or
home:gambas:extra

That's enough from my side for now.
Regards


Follow-Ups:
Re: Building gambas on OBSmunix9 <munix9@xxxxxxxxxxxxxx>
References:
Building gambas on OBSmunix9 <munix9@xxxxxxxxxxxxxx>
Re: Building gambas on OBSBenoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx>
Re: Building gambas on OBSmunix9 <munix9@xxxxxxxxxxxxxx>
Re: Building gambas on OBSmunix9 <munix9@xxxxxxxxxxxxxx>
Re: Building gambas on OBSBenoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx>