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

Re: Initial version of 'gambas-package-config' tool


On Saturday, November 23rd, 2024 at 18:08, Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx> wrote:

> Hi,
> 
> I have just added the initial version of the 'gambas-package-config'
> tool in the '/app/src' directory.
> 
> The goal of this project is generating configuration inside the new
> '.obs' source directory. That '.obs' directory will then be used by the
> openSUSE Build Service to make binary packages for openSUSE, Ubuntu,
> ArchLinux...
> 
> The packages are described in the 'conf' directory of the project. There
> is one file for each package. Each file includes the summary (or short
> description in one line) of the package and its full multi-line description.
> 
> Other information is gathered directly from the Gambas source directory
> where the 'gambas-package-config' is stored. In other words,
> 'gambas-package-config' is only intended to be run from the IDE, and
> from its project directory located in '/app/src'.

I had a glimps at the /app/src/gambas-package-config/template. I guess this info is used for making the correct .obs recipe to build for different distributions.

One thing I noticed is:
The gambas3_Debian_11.dsc and gambas3.dsc (/app/src/gambas-package-config/template) originate from official debian.
They contain packages like gambas3-gb-gui, gambas3-gb-hash, gambas3-gb-jit, gambas3-examples etc and lack gambas3-dev-tools, gambas3-gui and maybe more.
Official debian doesn't package according to current Gambas3 wiki instructions.

I have no idea what the .dsc files are used for, but they are not a good template to make correct packages.

> 
> Now I need help from Laurent Carlier, or other ArchLinux packagers, to
> check the generated PKGBUILD.
> 
> It obviously create more packages than the original one, because the
> original one didn't follow the specifications written in the wiki. But I
> don't why exactly, so I need help.

The auto generated packages table is misleading as it had gb.jit and gb.hash as packages that need to be made. 
Instructions on runtime did show gb.hash as part of runtime but not gb.jit (has been corrected). 

So,contradictions in the info provided might be the reason specifications aren't met by Arch, Debian and so on.
Debian seems to still be packaging like when gb.jit was a package using LLVM and just adds on the new packages every new package round.

You can kind of see it in their control files, additions are done below and rest of control file stays fairly unmodified. That is at least how it looks like.
So, in between changes in packaging, like gambas3-gb-gui changing to gambas3-gui, are simply not picked up I think by most packagers for main distro's.

That is why I did some serious work on wiki last weekend, using the 'Gambas Ubuntu Team' ppa conrol files for 3.19.x and 3.18.x as guide when in doubt for making static package list tables for 3.18 and 3.19 package instructions

If you look at the package table now (3.18 and 3.19) for the packages that need to be made, it is way more obvious that no gb.jit and gb.hash are needed as they are simply not in the table.

I also ordered the packages like in my own debian control files, first gambas3, gambas3-dev-tools etc and next all component packages in alphabetic order.
Checking my control file against the package list table to see if dependencies are correct is a lot easier and new additions should be easily spotted.

I did update my 3.19.6 control file and actually made packages and tested all. Feel free to pick the slightly modified recipe up at:
- https://gitlab.com/gbWilly/gambas3-debian-repository/-/tree/main/recipes-dev (for quilt)
OR AT
- https://gitlab.com/gbWilly/gambas3-debian-repository/-/tree/main/recipes (for native).
ONLY the 3.19.6 recipe has been modified! There are downloadable archives with full recipe.

I do plan on adding runtime dependencies to the package list table (on the wiki) for all, in gambas or partly in gambas written components.
That info should be more clear to a packager, than a note below the package list table on runtime dependency and next figuring out what components need this added dependency.

Maybe you could try to make auto generated package table for 3.19.90 in a same format and order and more complete when it comes to dependencies.

> 
> As for the other distributions, it will follow the same logic, with
> template files including commands enclosed by "@{" and "}".
> 
> The commands will be mostly the same, depending of what is actually
> needed to generate the files.
> 
> For example, RPM specification file describe a package in one place, and
> the files that must be installed elsewhere. So this need some new command.
> 
> By centralizing the definition of package configuration files for all
> distributions in one place, I hope it will make packaging Gambas easier.
> 
> Waiting for your comments now!

These are my 2 cents on the matter.

I'll help out where I can with recipes, but I'm limited to the debian/ubuntu side of packaging.


> 
> Best regards,
> 
> --
> Benoît Minisini.

gbWilly


Follow-Ups:
Re: Initial version of 'gambas-package-config' toolgbWilly <gbWilly@xxxxxxxxxxxxxx>
Re: Initial version of 'gambas-package-config' toolgbWilly <gbWilly@xxxxxxxxxxxxxx>
Re: Initial version of 'gambas-package-config' toolBenoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx>
References:
Initial version of 'gambas-package-config' toolBenoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx>