Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.bugs.dist > #1134395 > unrolled thread

Bug#1029448: ITP: alire -- Package manager for Ada sources

Started byLudovic Brenta <ludovic@ludovic-brenta.org>
First post2023-01-22 18:20 +0100
Last post2023-01-28 18:50 +0100
Articles 9 — 2 participants

Back to article view | Back to linux.debian.bugs.dist


Contents

  Bug#1029448: ITP: alire -- Package manager for Ada sources Ludovic Brenta <ludovic@ludovic-brenta.org> - 2023-01-22 18:20 +0100
    Bug#1029448: Debian package for Alire 1.2.1 Ludovic Brenta <ludovic@ludovic-brenta.org> - 2023-01-22 18:50 +0100
    Bug#1029448: alire in Debian; dependencies of the package Ludovic Brenta <ludovic@ludovic-brenta.org> - 2023-01-23 20:00 +0100
      Bug#1029448: alire in Debian; dependencies of the package Stephane Carrez <Stephane.Carrez@vacs.fr> - 2023-01-23 21:20 +0100
        Bug#1029448: alire in Debian; dependencies of the package Ludovic Brenta <ludovic@ludovic-brenta.org> - 2023-01-24 00:00 +0100
          Bug#1029448: alire in Debian; dependencies of the package Stephane Carrez <Stephane.Carrez@vacs.fr> - 2023-01-28 15:00 +0100
            Bug#1029448: alire in Debian; dependencies of the package Ludovic Brenta <ludovic@ludovic-brenta.org> - 2023-01-28 16:40 +0100
              Bug#1029448: alire in Debian; dependencies of the package Stephane Carrez <Stephane.Carrez@vacs.fr> - 2023-01-28 17:50 +0100
                Bug#1029448: alire in Debian; dependencies of the package Ludovic Brenta <ludovic@ludovic-brenta.org> - 2023-01-28 18:50 +0100

#1134395 — Bug#1029448: ITP: alire -- Package manager for Ada sources

FromLudovic Brenta <ludovic@ludovic-brenta.org>
Date2023-01-22 18:20 +0100
SubjectBug#1029448: ITP: alire -- Package manager for Ada sources
Message-ID<FQMaC-o2Z-29@gated-at.bofh.it>
Package: wnpp
Owner: Ludovic Brenta <ludovic@ludovic-brenta.org>
Severity: wishlist

* Package name    : alire
  Version         : 1.2.1
  Upstream Author : Alejandro R. Mosteo and others
* URL or Web page : https://github.com/alire-project
* License         : GPLv3
  Description     : Package manager for Ada sources

ALIRE: Ada LIbrary REpository.

A catalog of ready-to-use Ada libraries plus a command-line tool (alr)
to obtain, build, and incorporate them into your own projects. It aims
to fulfill a similar role to Rust's cargo or OCaml's opam.

This is a source package manager, in contrast to apt which is a binary
package manager.

-- 
Ludovic Brenta.

[toc] | [next] | [standalone]


#1134399 — Bug#1029448: Debian package for Alire 1.2.1

FromLudovic Brenta <ludovic@ludovic-brenta.org>
Date2023-01-22 18:50 +0100
SubjectBug#1029448: Debian package for Alire 1.2.1
Message-ID<FQMDD-odo-25@gated-at.bofh.it>
In reply to#1134395
OK, after a little struggling I managed to build the package (notably,
git@github.com:alire-project/alire.git requires permissions which I
don't have, used https://github.com/alire-project/alire.git).

During the build I noticed that alire pulls and recompiles several
libraries it depends on.  This violates Debian policy; a Debian package
must never duplicate another.  I notice gnatcoll and xmlezout among the
dependencies that are already packaged for Debian.  There may be others
I didn't see.

Therefore, please update the packaging of alire to build-depend on these
existing packages and not to recompile them from source.

I have filed bug #1029448 to track the introduction of alire into
Debian.  A Debian bug is also a dedicated, public mailing list: in this
case, 1029448@bugs.debian.org.

-- 
Ludovic Brenta.

[toc] | [prev] | [next] | [standalone]


#1134567 — Bug#1029448: alire in Debian; dependencies of the package

FromLudovic Brenta <ludovic@ludovic-brenta.org>
Date2023-01-23 20:00 +0100
SubjectBug#1029448: alire in Debian; dependencies of the package
Message-ID<FRacV-DbZ-3@gated-at.bofh.it>
In reply to#1134395
Here is what I get with dpkg --info alire_1.2.1-2_amd64.deb after building it:

 new Debian package, version 2.0.
 size 3434464 bytes: control archive=1560 bytes.
     476 bytes,    13 lines      control              
    2386 bytes,    35 lines      md5sums              
 Package: alire
 Version: 1.2.1-2
 Architecture: amd64
 Maintainer: Stephane Carrez <Stephane.Carrez@gmail.com>
 Installed-Size: 17740
 Depends: libc6 (>= 2.35)
 Section: devel
 Priority: optional
 Homepage: https://github.com/alire-project
 Description: Ada package manager.
  A catalog of ready-to-use Ada libraries plus a command-line tool
  (`alr`) to obtain, build, and incorporate them into your own projects.
  It aims to fulfill a similar role to Rust's `cargo` or OCaml's `opam`.

As you can see, it does not depend on libgnat-12 and does not even recommend gnat.  This
seems suspicious to me.  Could you please check that the dependencies are generated
correctly?

-- 
Ludovic Brenta.

[toc] | [prev] | [next] | [standalone]


#1134582 — Bug#1029448: alire in Debian; dependencies of the package

FromStephane Carrez <Stephane.Carrez@vacs.fr>
Date2023-01-23 21:20 +0100
SubjectBug#1029448: alire in Debian; dependencies of the package
Message-ID<FRbsl-E9C-9@gated-at.bofh.it>
In reply to#1134567
Hi Ludovic,

On 23/01/2023 19:51, Ludovic Brenta wrote:
> Here is what I get with dpkg --info alire_1.2.1-2_amd64.deb after building it:
> 
>   new Debian package, version 2.0.
>   size 3434464 bytes: control archive=1560 bytes.
>       476 bytes,    13 lines      control
>      2386 bytes,    35 lines      md5sums
>   Package: alire
>   Version: 1.2.1-2
>   Architecture: amd64
>   Maintainer: Stephane Carrez <Stephane.Carrez@gmail.com>
>   Installed-Size: 17740
>   Depends: libc6 (>= 2.35)
>   Section: devel
>   Priority: optional
>   Homepage: https://github.com/alire-project
>   Description: Ada package manager.
>    A catalog of ready-to-use Ada libraries plus a command-line tool
>    (`alr`) to obtain, build, and incorporate them into your own projects.
>    It aims to fulfill a similar role to Rust's `cargo` or OCaml's `opam`.
> 
> As you can see, it does not depend on libgnat-12 and does not even recommend gnat.  This
> seems suspicious to me.  Could you please check that the dependencies are generated
> correctly?
> 

Yes, I think this comes from the way they build Alire by default to reduce dependencies
on the GNAT compiler and other shared libraries.

$ ldd bin/alr
         linux-vdso.so.1 (0x00007ffc555ed000)
         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f152fe1f000)
         /lib64/ld-linux-x86-64.so.2 (0x00007f1531205000)

By not depending on the GNAT compiler installed, you can use Alire with several newer
or older compiler as you wish.

I think this comes from the definition in alire_common.gpr:

    package Binder is
       for Switches ("Ada") use ("-Es", "-g", "-static");
    end Binder;

[toc] | [prev] | [next] | [standalone]


#1134610 — Bug#1029448: alire in Debian; dependencies of the package

FromLudovic Brenta <ludovic@ludovic-brenta.org>
Date2023-01-24 00:00 +0100
SubjectBug#1029448: alire in Debian; dependencies of the package
Message-ID<FRdXb-FBL-21@gated-at.bofh.it>
In reply to#1134582
Stephane Carrez <Stephane.Carrez@vacs.fr> writes:
> By not depending on the GNAT compiler installed, you can use Alire with several newer
> or older compiler as you wish.

This may be fine on operating systems that lack a package manager but this contradicts the
Debian Ada Policy, which requires all Ada packages to depend on the same gnat compiler.
Therefore, please package alire in such a way that the binary package depends on, and uses,
the existing Debian packages i.e. gnat-12, libgnatcoll21 and libxmlezout7 at run-time, and
build-depends and uses the corresponding -dev packages at compile time.

-- 
Ludovic Brenta.

[toc] | [prev] | [next] | [standalone]


#1135204 — Bug#1029448: alire in Debian; dependencies of the package

FromStephane Carrez <Stephane.Carrez@vacs.fr>
Date2023-01-28 15:00 +0100
SubjectBug#1029448: alire in Debian; dependencies of the package
Message-ID<FSTUm-1Kik-11@gated-at.bofh.it>
In reply to#1134610
Hi

After stuggling with gbp and its pq import/export process, I've managed to
do the changes, have them on the debian/bookworm branch (as quilt patches)
and produce a new Debian package.

This is what I'm getting now:

ciceron@theia:~/debian$ dpkg --info alire_1.2.1-3_amd64.deb
  new Debian package, version 2.0.
  size 2962740 bytes: control archive=1648 bytes.
      666 bytes,    16 lines      control
     2386 bytes,    35 lines      md5sums
  Package: alire
  Version: 1.2.1-3
  Architecture: amd64
  Maintainer: Stephane Carrez <Stephane.Carrez@gmail.com>
  Installed-Size: 16227
  Depends: libc6 (>= 2.34), libgcc-s1 (>= 3.0), libgnat-12 (>= 12.2.0), libgnatcoll21 (>= 23.0.0), libxmlezout7 (>= 1.06.2)
  Section: devel
  Priority: optional
  Homepage: https://github.com/alire-project
  Description: Ada package manager.
   A catalog of ready-to-use Ada libraries plus a command-line tool
   (`alr`) to obtain, build, and incorporate them into your own projects.
   It aims to fulfill a similar role to Rust's `cargo` or OCaml's `opam`.
   .
   This is a source package manager, in contrast to apt which is a binary
   package manager.


After installation, the alr binary depends on the following shared libraries:

ciceron@theia:~/debian$ ldd /usr/bin/alr
         linux-vdso.so.1 (0x00007ffc36dca000)
         libgnatcoll.so.21 => /lib/x86_64-linux-gnu/libgnatcoll.so.21 (0x00007f1508e00000)
         libxmlezout.so.7 => /lib/x86_64-linux-gnu/libxmlezout.so.7 (0x00007f150a71b000)
         libgnarl-12.so => /lib/x86_64-linux-gnu/libgnarl-12.so (0x00007f150a6cf000)
         libgnat-12.so => /lib/x86_64-linux-gnu/libgnat-12.so (0x00007f1508800000)
         libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f150a6af000)
         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f150861f000)
         libgnatprj.so.10 => /lib/x86_64-linux-gnu/libgnatprj.so.10 (0x00007f1507c00000)
         libxmlada_schema.so.7 => /lib/x86_64-linux-gnu/libxmlada_schema.so.7 (0x00007f150a5d7000)
         libxmlada_dom.so.8 => /lib/x86_64-linux-gnu/libxmlada_dom.so.8 (0x00007f15095de000)
         libxmlada_sax.so.7 => /lib/x86_64-linux-gnu/libxmlada_sax.so.7 (0x00007f150958c000)
         libxmlada_input.so.7 => /lib/x86_64-linux-gnu/libxmlada_input.so.7 (0x00007f150957d000)
         libxmlada_unicode.so.7 => /lib/x86_64-linux-gnu/libxmlada_unicode.so.7 (0x00007f1507800000)
         /lib64/ld-linux-x86-64.so.2 (0x00007f150a741000)
         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f150949e000)

The process I've used to build the package is:

git clone -b debian/bookworm --recursive https://github.com/stcarrez/alire.git
cd alire
git remote add upstream https://github.com/alire-project/alire.git
git fetch upstream
gbp buildpackage --git-ignore-new --git-pristine-tar \
         --git-pristine-tar-commit --git-upstream-tag='v1.2.1' \
         --git-submodules


Stephane

[toc] | [prev] | [next] | [standalone]


#1135215 — Bug#1029448: alire in Debian; dependencies of the package

FromLudovic Brenta <ludovic@ludovic-brenta.org>
Date2023-01-28 16:40 +0100
SubjectBug#1029448: alire in Debian; dependencies of the package
Message-ID<FSVt7-1Lm5-29@gated-at.bofh.it>
In reply to#1135204
>  Depends: libc6 (>= 2.34), libgcc-s1 (>= 3.0), libgnat-12 (>= 12.2.0), libgnatcoll21 (>= 23.0.0), libxmlezout7 (>= 1.06.2)

is at odds with

> ciceron@theia:~/debian$ ldd /usr/bin/alr
>         linux-vdso.so.1 (0x00007ffc36dca000)
>         libgnatcoll.so.21 => /lib/x86_64-linux-gnu/libgnatcoll.so.21 (0x00007f1508e00000)
>         libxmlezout.so.7 => /lib/x86_64-linux-gnu/libxmlezout.so.7 (0x00007f150a71b000)
>         libgnarl-12.so => /lib/x86_64-linux-gnu/libgnarl-12.so (0x00007f150a6cf000)
>         libgnat-12.so => /lib/x86_64-linux-gnu/libgnat-12.so (0x00007f1508800000)
>         libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f150a6af000)
>         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f150861f000)
>         libgnatprj.so.10 => /lib/x86_64-linux-gnu/libgnatprj.so.10 (0x00007f1507c00000)
>         libxmlada_schema.so.7 => /lib/x86_64-linux-gnu/libxmlada_schema.so.7 (0x00007f150a5d7000)
>         libxmlada_dom.so.8 => /lib/x86_64-linux-gnu/libxmlada_dom.so.8 (0x00007f15095de000)
>         libxmlada_sax.so.7 => /lib/x86_64-linux-gnu/libxmlada_sax.so.7 (0x00007f150958c000)
>         libxmlada_input.so.7 => /lib/x86_64-linux-gnu/libxmlada_input.so.7 (0x00007f150957d000)
>         libxmlada_unicode.so.7 => /lib/x86_64-linux-gnu/libxmlada_unicode.so.7 (0x00007f1507800000)
>         /lib64/ld-linux-x86-64.so.2 (0x00007f150a741000)
>         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f150949e000)

You need to add libgnatprj10, libxmlada-schema7 etc. to the dependencies; preferably in an
automated way.

You're almost there, keep up the good work.

Also, I've checked that no existing package provides a file named /usr/bin/alr, so you're
good in that respect.

-- 
Ludovic Brenta.

[toc] | [prev] | [next] | [standalone]


#1135219 — Bug#1029448: alire in Debian; dependencies of the package

FromStephane Carrez <Stephane.Carrez@vacs.fr>
Date2023-01-28 17:50 +0100
SubjectBug#1029448: alire in Debian; dependencies of the package
Message-ID<FSWyR-1M0n-9@gated-at.bofh.it>
In reply to#1135215
On 28/01/2023 16:28, Ludovic Brenta wrote:
>>   Depends: libc6 (>= 2.34), libgcc-s1 (>= 3.0), libgnat-12 (>= 12.2.0), libgnatcoll21 (>= 23.0.0), libxmlezout7 (>= 1.06.2)
> 
> is at odds with
> 
>> ciceron@theia:~/debian$ ldd /usr/bin/alr
>>          linux-vdso.so.1 (0x00007ffc36dca000)
>>          libgnatcoll.so.21 => /lib/x86_64-linux-gnu/libgnatcoll.so.21 (0x00007f1508e00000)
>>          libxmlezout.so.7 => /lib/x86_64-linux-gnu/libxmlezout.so.7 (0x00007f150a71b000)
>>          libgnarl-12.so => /lib/x86_64-linux-gnu/libgnarl-12.so (0x00007f150a6cf000)
>>          libgnat-12.so => /lib/x86_64-linux-gnu/libgnat-12.so (0x00007f1508800000)
>>          libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f150a6af000)
>>          libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f150861f000)
>>          libgnatprj.so.10 => /lib/x86_64-linux-gnu/libgnatprj.so.10 (0x00007f1507c00000)
>>          libxmlada_schema.so.7 => /lib/x86_64-linux-gnu/libxmlada_schema.so.7 (0x00007f150a5d7000)
>>          libxmlada_dom.so.8 => /lib/x86_64-linux-gnu/libxmlada_dom.so.8 (0x00007f15095de000)
>>          libxmlada_sax.so.7 => /lib/x86_64-linux-gnu/libxmlada_sax.so.7 (0x00007f150958c000)
>>          libxmlada_input.so.7 => /lib/x86_64-linux-gnu/libxmlada_input.so.7 (0x00007f150957d000)
>>          libxmlada_unicode.so.7 => /lib/x86_64-linux-gnu/libxmlada_unicode.so.7 (0x00007f1507800000)
>>          /lib64/ld-linux-x86-64.so.2 (0x00007f150a741000)
>>          libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f150949e000)
> 
> You need to add libgnatprj10, libxmlada-schema7 etc. to the dependencies; preferably in an
> automated way.
> 

I've tried:

Build-Depends: debhelper (>= 11), gnat,
  gprbuild (>= 2015-2), python3,
  libgnatcoll21-dev, libxmlezout10-dev,
  libxmlada-dom12-dev, libxmlada-sax12-dev,
  libxmlada-input12-dev, libxmlada-unicode12-dev,
  libgnatprj10-dev

but this does not change the final build dependencies which is declared with:

Package: alire
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}

Alire does not directly use XML/Ada nor GNATPRJ.
These shared libraries are linked/used by libgnatcoll.so.21 and libgnatprj.so.10.

Any suggestions on how to solve that?

Stephane

[toc] | [prev] | [next] | [standalone]


#1135230 — Bug#1029448: alire in Debian; dependencies of the package

FromLudovic Brenta <ludovic@ludovic-brenta.org>
Date2023-01-28 18:50 +0100
SubjectBug#1029448: alire in Debian; dependencies of the package
Message-ID<FSXuV-1MB7-5@gated-at.bofh.it>
In reply to#1135219
Stephane Carrez <Stephane.Carrez@vacs.fr> writes:
> Alire does not directly use XML/Ada nor GNATPRJ.
> These shared libraries are linked/used by libgnatcoll.so.21 and libgnatprj.so.10.

Ah, ok, in that case the dependencies are already handled i.e. the package libgnatcoll21
depends on libxmlada-* and libgnatprj10.

So you don't need to do anything more.  I'll try to upload.

-- 
Ludovic Brenta.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.bugs.dist


csiph-web