Re: slib build-time dependency
Shiro Kawai <[email protected]> Thu, 12 Dec 2024 19:41:49 -1000
| Newsgroups | gmane.lisp.scheme.gauche |
|---|---|
| Message-ID | <CALN0JNF8k_xoB6zfdb8--t_eLcY7EF0_81qvKFiO_d4rfc=QiA@mail.gmail.com> |
--===============8578334569532989229== Content-Type: multipart/alternative; boundary="0000000000002da9f30629204a92" --0000000000002da9f30629204a92 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable slibcat should belong to slib. The reason Gauche provides it is because of the original slibcat installation process. Original slib distribution is packaged in the way that you can just unpack the package under desired location; no need to run build process. The exception is slibcat, which should be generated by any Scheme implementation available on the machine. To make it transparent to users, slib is designed so that when the user first uses slib, it generates slibcat. It works when each user installs slib in their private location. Unfortunately, it causes a problem when slib is installed in system-wide location; the first user may not have a write permission needed to generate slibcat. Gauche's installer has rules to install slibcat to workaround that surprise. However, if slib is provided as a package that user can install in a fixed location, there's no problem that the package pre-generate slibcat and installs in the same location. Do you need a configure option in Gauche to prevent generating slibcat? I can add it if so. --shiro On Thu, Dec 12, 2024 at 2:53=E2=80=AFPM NIIBE Yutaka via Gauche-devel < [email protected]> wrote: > Hello, > > While I maintain Gauche package in Debian, I realize that slib > dependency blocks unstable -> testing migration. See: > > https://tracker.debian.org/pkg/gauche > > Basically, the problem is: which package is responsible for slibcat? > > While it's mainly an issue of Debian packaging (of gauche and slib), I > think that it could be handled by Gauche itself cleanly, so that a user > can use gauche + slib consistently under a distribution packaging > system. > > Currently, slib is detected by configure at build time, and it's a kind > of *hard* one. slibcat is generated by Gauche at build time of Gauche. > > FYI, in Debian, slibcat is provided by slib package for other Scheme > implementations, like: > > slib: /var/lib/slib/gambc/slibcat > slib: /var/lib/slib/mitscheme/slibcat > slib: /var/lib/slib/chez/slibcat > > In the case of Gauche, it's > > gauche: /usr/share/gauche-0.98/0.9.15-p2/lib/slibcat > > Possibly, we can remove the dependency by gauche; Then, slib package > will be not needed at build time of Gauche. We could only specify > SLIB_DIR=3D/var/lib/slib/gauche and let slib package provide slibcat for > gauche. > > This means that it will be slib package which will depends on gauche > package (to generate slibcat at build time of slib or installation time > of slib). This allows upgrading slib package. And for gauche package, > slib is optional. > > Just an idea, not tested at all. How do you think? > -- > > > _______________________________________________ > Gauche-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/gauche-devel > --0000000000002da9f30629204a92 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">slibcat=C2=A0should belong to slib.=C2=A0 =C2=A0The reason= =C2=A0Gauche provides it is because of the original slibcat=C2=A0installati= on process.<div><br></div><div>Original slib distribution is packaged in th= e way that you can just unpack the package under desired=C2=A0location; no = need to run build process.=C2=A0 The exception is slibcat, which should be = generated by any Scheme implementation available on the machine.=C2=A0 To m= ake it transparent to users, slib is designed so that when the user first u= ses slib, it generates slibcat.=C2=A0 It works when each user installs slib= in their private location.</div><div><br></div><div>Unfortunately, it caus= es a problem when slib is installed in system-wide location; the first user= may not have a write permission needed to generate slibcat.=C2=A0 =C2=A0Ga= uche's installer has rules to install slibcat=C2=A0to workaround that s= urprise.</div><div><br></div><div>However, if slib is provided as a package= that user can install in a fixed location, there's no problem that the= package pre-generate slibcat=C2=A0and installs in the same location.</div>= <div><br></div><div>Do you need a configure option in Gauche to prevent gen= erating slibcat?=C2=A0 I can add it if so.</div><div><br></div><div>--shiro= </div><div><br></div><div><br></div><div><br><div><div><br></div></div></di= v></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr= ">On Thu, Dec 12, 2024 at 2:53=E2=80=AFPM NIIBE Yutaka via Gauche-devel <= ;<a href=3D"mailto:[email protected]" target=3D"_blank">ga= [email protected]</a>> wrote:<br></div><blockquote class= =3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg= b(204,204,204);padding-left:1ex">Hello,<br> <br> While I maintain Gauche package in Debian, I realize that slib<br> dependency blocks unstable -> testing migration.=C2=A0 See:<br> <br> =C2=A0 =C2=A0 <a href=3D"https://tracker.debian.org/pkg/gauche" rel=3D"nore= ferrer" target=3D"_blank">https://tracker.debian.org/pkg/gauche</a><br> <br> Basically, the problem is: which package is responsible for slibcat?<br> <br> While it's mainly an issue of Debian packaging (of gauche and slib), I<= br> think that it could be handled by Gauche itself cleanly, so that a user<br> can use gauche + slib consistently under a distribution packaging<br> system.<br> <br> Currently, slib is detected by configure at build time, and it's a kind= <br> of *hard* one.=C2=A0 slibcat is generated by Gauche at build time of Gauche= .<br> <br> FYI, in Debian, slibcat is provided by slib package for other Scheme<br> implementations, like:<br> <br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 slib: /var/lib/slib/gambc/slibcat<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 slib: /var/lib/slib/mitscheme/slibcat<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 slib: /var/lib/slib/chez/slibcat<br> <br> In the case of Gauche, it's<br> <br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 gauche: /usr/share/gauche-0.98/0.9.15-p2/lib/sl= ibcat<br> <br> Possibly, we can remove the dependency by gauche; Then, slib package<br> will be not needed at build time of Gauche.=C2=A0 We could only specify<br> SLIB_DIR=3D/var/lib/slib/gauche and let slib package provide slibcat for<br= > gauche.<br> <br> This means that it will be slib package which will depends on gauche<br> package (to generate slibcat at build time of slib or installation time<br> of slib).=C2=A0 This allows upgrading slib package.=C2=A0 And for gauche pa= ckage,<br> slib is optional.<br> <br> Just an idea, not tested at all.=C2=A0 How do you think?<br> -- <br> <br> <br> _______________________________________________<br> Gauche-devel mailing list<br> <a href=3D"mailto:[email protected]" target=3D"_blank">Gau= [email protected]</a><br> <a href=3D"https://lists.sourceforge.net/lists/listinfo/gauche-devel" rel= =3D"noreferrer" target=3D"_blank">https://lists.sourceforge.net/lists/listi= nfo/gauche-devel</a><br> </blockquote></div> --0000000000002da9f30629204a92-- --===============8578334569532989229== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============8578334569532989229== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Gauche-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/gauche-devel --===============8578334569532989229==--