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

Re: [gambas-package-config] Automatic generation of OBS configuration


On Sunday, December 1st, 2024 at 12:48, gbWilly <gbWilly@xxxxxxxxxxxxxx> wrote:

> On Saturday, November 30th, 2024 at 20:08, Benoît Minisini benoit.minisini@xxxxxxxxxxxxxxxx wrote:
> 
> > Hi,
> > 
> > The 'gambas-package-config' configuration now generates in the '.obs'
> > directory:
> > 
> > - The 'PKGBUILD' file.
> > - The 'gambas3.spec' file.
> > - The 'debian.tar.gz' file.
> > 
> > I have now some requirements and questions...
> > 
> > 1) Can Paolo, Laurent, Willy, or anyone else, check these files and
> > their corresponding template in the 'gambas-package-config' project to
> > tell me what the errors are, what is missing, and so on...
> 
> 
> I will do so, later today. You want changes in a merge request to the template folder in 'gambas-package-config' with notes as a comment in the request? Or rather here on list?
> 

I have run through the debian.orig folder, as seeing the date I presume 'gambas-package-config' made these from the template.
I have done a merge request (https://gitlab.com/gambas/gambas/-/merge_requests/367).
I will add a detailed description and some explaining of what I did below:
-----
Some more explaining to the changes done than mentioned in the changelog in the recipe:

I will first shortly explain the steps needed to keep a recipe up to date and steps done to improve the quality of said recipe

1. Part of checking recipes is after building running linian checks against the build and getting rid of:
   1. errors -> can be errors or not be errors. If no error then I have to tell lintian it is ok in a separate file with exceptions
   2. warnings -> not quite like debian wants stuff without it breaking stuff
   3. info -> often usefull as it mentions things like spelling mistakes, double word use and more. More for perfecting the package

2. Further checking is seeing if depended packages actually exist in debian repositories and at what versions.
For example debain 11 had NO gcc-11 nor g++-11 (armhf) in repositories, so rules file for debain11 needs to be modified. I have never been able to test debain11 on armfh/arm54 architecture as I only have a vm for debain12 arm64 (building packages takes 5,5 to 6 hours, whereas amd64 in vm builds in less than 8 minutes)

3. Also checking gambas3 requirements on wiki and add packages as needed.

Above also means testing recipe if it builds, installs and what errors and warnings are reported or not reported anymore. So, improving can mean many builds. But once a recipe for a branch (e.g 3.18.x) is done and good, no changes are needed and it will work for all versions in that branch (so 3.18.0 to 3.18.4).

The 3.18.x recipe will not work for 3.19.x branch because of gb.highlight change, so a modified recipe is needed for the whole 3.19.x branch.

The recipe for gambas 3.19.90 (the one you build a debian.tar.gz for) will not work for 3.19.6 either, because of db2 and mongodb additions, but rest is the same. Of course the 3.19.90 will be suited for future 3.20.0 build and that whole 3.20.x branch for that matter.

In short, once each branch has its recipe, only master recipe needs manual attention to keep up with your new component additions, component renaming, dependecy changes etc.

Here is a detailed list of changes I have done in this master recipe and why (so you know for future reference):

* changelog
  - added changes and shorted some stuff explained
* control
  - added Vcs-Git field and modified my mail address to the correct one
  - added all gambas3-gb-db2 components as dependecy for gambas3  (package specification on gambas wiki)
  - added gambas3-gb-qt6-x11 component as dependecy for gambas3
  - set gambas3-dev in section oldlibs (for all transitional packages, not only libraries
        -> debian policy advised by lintian
  - set gambas3-dev priority to optional
        -> advised by lintian to meet debian policies
  - gambas3-dev has word 'dummpy' added before transitional
        -> advised by lintian to meet debian policies
  - set gambas3-devel in section oldlibs (for all transitional packages, not only libraries)
        -> debian policy advised by lintian)
  - set gambas3-devel priority to optional (advised by lintian to meet debian policies)
  - gambas3-devel has word 'dummpy' added before transitional (advised by lintian to meet debian policies)
  - removed entry 'Conflicts' from gambas3-dev-tools (lintian advises not to use breaks and conflicts together)
       -> for this situation 'Breaks' combined with 'Replaces' is advised (I looked it up)
  - set gambas3-dev-tools to break at gambas3-dev (<< 3.15.0), gambas3-devel (<< 3.19.6)
       -> last gambas3-dev package on debian was before 3.15
       -> gambas3-devel packages is still made on debian, last 3.19.5 on testing, hence 3.19.6
  - gambas3-ide has gambas3-gb-qt6 added as possible qui dependency (package specification on gambas wiki)
  - gambas3-ide has gzip added as dependency  (package specification on gambas wiki)
  - gambas3-ide has pngquant and translate-shell added as 'Suggests' so user can choose (package specification on gambas wiki)
  - removed entry 'Conflicts' from gambas3-scripter (lintian advises not to use breaks and conflicts together)
        -> for this situation 'Breaks' combined with 'Replaces' is advised (I looked it up)
  - added gambas2-gb-db2-mysql (package specification on gambas wiki)
  - added gambas3-gb-db2-odbc (package specification on gambas wiki)
  - added gambas2-gb-db2-postgresql (package specification on gambas wiki)
  - added gambas3-gb-db2-sqlite3 (package specification on gambas wiki)
  - In gambas3-gb-desktop I split the line 'This package provides... utilities are used' to be within 80 characters
        -> lintian advised it (there is some more of these)
        QUESTION: gambas3-gb-desktop depending on gambas3-gb-desktop-x11 is not like stated on gambas wiki
        I took it from the Ubuntu ppa control as I asume you had it in there for a reason.
        Is it needed YES OR NO?
  - removed word 'provides' from description of gambas3-gb-form-htmlview
        -> linitian told me it was there twice like: 'This component provides provides a lightweight ..'
        QUESTION: gambas3-gb-form-htmlview here depending on gambas3-gui is not like stated on gambas wiki
        I took it from the Ubuntu ppa control as I asume you had it in there for a reason.
        Is it needed YES OR NO?
  - In gambas3-gb-form-terminal I split the line 'This component provides a... in your application.' to be within 80 characters
        -> lintian advised it
  - In gambas3-gb-gsl I changed 'This package allow to use...' to 'This package allow one to use...'
        -> lintian advised it
  - In gambas3-gb-gtk-opengl I changed 'allow' to 'allow one'
        -> lintian advised it
   - In gambas3-gb-gtk3-opengl I changed 'allow' to 'allow one'
        -> lintian advised it
   - In gambas3-gb-form-highlight I split the line 'This package includes ... simple specific syntax.' to be within 80 characters
        -> lintian advised it
   - In gambas3-gb-mime I changed 'allow' to 'allow one'
        -> lintian advised it
   - In gambas3-gb-ncurses I changed 'allow' to 'allow one'
        -> lintian advised it
   - In gambas3-gb-pcre I modified word 'expresions' to 'expressions'
        -> yes, lintian checks spelling
   - In gambas3-gb-qt5-webview modified Architecture from 'any' to 'amd64 arm64 armhf i386'
        -> to prevent other archs building it from this recipe as it is not possible on other archs
   - In gambas3-gb-qt6-webview modified Architecture from 'any' to 'amd64 arm64 armhf i386'
        -> to prevent other archs building it from this recipe as it is not possible on other archs
   - removed double use of 'component' from description of gambas3-gb-term
   - removed double use of 'component' from description of gambas3-gb-web-form
   - removed double use of 'component' from description of gambas3-gb-web-gui
* copyright
  - modified my mail address to the correct one
* gambas3-gb-db2-mysql.install
  - added (was still missing in template)
* gambas3-gb-db2-odbc.install
  - added (was still missing in template)
* gambas3-gb-db2-postgresql.install
  - added (was still missing in template)
* gambas3-gb-db2-sqlite3.install
  - added (was still missing in template)
* gambas3-runtime.links
  - putting a 256X256 .png in a .../64x64/mimetypes folder gives lintian warnings (no errors, package will be made and work)
  - make sure to put proper sized icons in proper named folders to meet debian policy
* gambas3-scripter.links
  - putting a 256X256 .png in a .../64x64/mimetypes folder gives lintian warnings (see above)
----

Enjoy,

gbWilly


Follow-Ups:
Re: [gambas-package-config] Automatic generation of OBS configurationT Lee Davidson <t.lee.davidson@xxxxxxxxx>
References:
Re: [gambas-package-config] Automatic generation of OBS configurationgbWilly <gbWilly@xxxxxxxxxxxxxx>