On Mon, 4 Sept 2023, 09:12 Grégory Vanuxem, <[email protected]> wrote:

> Hello Dima,
>
> I agree with you, Dima, about the usefulness of pkg-config and I am
> not surprised the SAGE Team uses it; they incorporate tons of external
> libraries.
>
> <digression>
> In fact I discovered this utility some time ago, at the beginning of
> Gnome 2 development. I thought this utility was developed by this team
> since from my point of view at that time this is the team who really
> popularised this utility. I used it because I needed a quick image
> visualisator, 'eog' was becoming too library dependent, too large and
> too long to start to just see a pic. I have been doing photography for
> many years and to visualise pics I do not need a lot of functionality.
> The Evas library from DR16 (Enlightenment window manager)  started to
> use this utility and was useful to me to have linker arguments,
> cflags, say -DSOMETHING=1, and eventually the include path.
> </digression>
>
> But I see this application as an utility to know
> *settings/configuration* about a library, and now some applications,
> more than to know the version or (quick) help of an application. For
> example on my computer I have in /usr/share/pkg-config/ 'fontutil.pc'
> which contains:
>
> prefix=/usr
> exec_prefix=${prefix}
> libdir=${prefix}/lib/x86_64-linux-gnu
> datarootdir=${prefix}/share
> datadir=${datarootdir}
> fontrootdir=${datadir}/fonts/X11
> mapdir=${prefix}/share/fonts/X11/util
>
> Name: FontUtil
> Description: Font utilities dirs
> Version: 1.3.1
>
> I agree that the Name, Description and Version information could be
> useful, particularly for my needs, but its primary purpose is to
> display informations above in this file for me. To add to this, I do
> not even have the pkg-config or pkgconf package installed. I do not
> need them as of now. I totally agree with the package description:
> ===========================================================
> Description: manage compile and link flags for libraries (transitional
> package)
>  pkgconf is an implementation of the pkg-config system, which helps to
> configure
>  compiler and linker flags for development frameworks.
>  .
>  pkgconf is a replacement for pkg-config, providing additional
> functionality
>  while also maintaining compatibility.
>  .
>  This package only provides a dependency link to the pkgconf package to
> help
>  with package upgrades. It can be safely removed.
> Description-md5: df0bd7e16369ac7330df23f92a214b3a
> Multi-Arch: same
> Homepage: http://pkgconf.org/
> Tag: admin::configuring, devel::buildtools, interface::commandline,
>  role::program, scope::utility
> Section: devel
> ============================================================
>

applications/systems which have ability to call external command line
executables have interfaces to pkg-config.
E.g. there is a Python pkgconfig module.

There are also autoconf macros to call pkg-config. And cmake, too.

So it's, by far, not limited to libraries.




> So, yes, why not use this utility to display some information about
> FriCAS, even if I do not see a lot of information to write in it, I
> would prefer to keep version information available from the 'fricas'
> executable as you suggest I guess (but add a pkg-config file).
> Personally I would also prefer to add to the fricas script the ability
> to execute code and return to the shell. As of now 'fricas -eval'
> executes code at startup but does not leave the fricas REPL. What
> could also be useful is something like:
> └─$ perl -e 'print 2+2'
> 4
> ┌──(greg㉿ellipse)-[~]
> └─$ python3 -c 'print(2+2)'
> 4
>
> ┌──(greg㉿ellipse)-[~]
> └─$ julia -e 'print(2+2)'
> 4
> etc. (read a file also, why not)
>
> That way I could use, say, 'fricas -c ')lisp
> (lisp-implementation-type)' or other things. This information is
> already in the fricas startup script though, it is just an example.
>
> By the way I attached the primary patch, as an illustration, that just
> moves the code related to HyperDoc and Graphics availability.
>
> __
> Greg
>
>
> Le ven. 1 sept. 2023 à 23:39, Dima Pasechnik <[email protected]> a écrit :
> >
> > On Fri, Sep 1, 2023 at 11:51 PM Ralf Hemmecke <[email protected]> wrote:
> >
> > > > I'd propose to add the version support via pkg-config. If this is
> OK, I'd
> > > > provide a PR for this.
> > > >
> > > > pkg-config would output the version in an easily parceable format,
> so that
> > > > one would not need to call sed to santitize the output of
> > > >
> > > > fricas --version
> > >
> > > I cannot say whether the pkg-config stuff will make it into frica, but
> I
> > > would love to see how it works. Would it cost you too much effort to
> > > create such a PR?
> >
> > it's not clear to me what the FriCAS version is meant to be. Is it
> > PACKAGE_VERSION='2023-06-17' (in the current git master)
> >
> > >
> > > How is the underlying LISP recognized by pkg-config.
> >
> > it's all very easy - one creates a template file fricas.pc.in with the
> > values filled in by ./configure, which writes fricas.pc
> > The latter is then installed by "make install" (does FriCAS have
> > install target in the main
> > Makefile?) into $prefix/lib/pkgconfig/
> >
> > Then pkg-config reads fricas.pc when called, and prints the values it
> > is asked for. E.g. using GMP as
> > an example:
> >
> > $ pkg-config --modversion gmp # GMP version
> > 6.2.1
> > $ pkg-config --libs gmp # GMP libraries/flags fotr the linker
> > -lgmp
> >
> > etc.
> >
> > it allows custom fields to be added to fricas.pc, so it's easy to
> > fill/queue these, too, e.g. for the LIsp
> > name and Lisp version in the case of FriCAS.
> >
> > $ pkg-config --print-variables gmp # show all the variable defined for
> GMP
> > exec_prefix
> > includedir
> > libdir
> > pcfiledir
> > prefix
> > $ pkg-config --variable=libdir gmp # print the value of libdir variable
> > /usr/lib/x86_64-linux-gnu
> >
> > etc.
> >
> >
> >
> > HTH
> > Dima
> >
> >
> >
> >
> >
> >
> > >
> > > Otherwise, I do as Waldek proposed and single out the --version option
> > > to simply output the fricas and lisp version and exit when it appears
> on
> > > the command line of the fricas script.
> > >
> > > Ralf
> > >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups "FriCAS - computer algebra system" group.
> > > To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> > > To view this discussion on the web visit
> https://groups.google.com/d/msgid/fricas-devel/931beec1-a2c4-3be2-7198-87d9fc86136c%40hemmecke.org
> .
> >
> > --
> > You received this message because you are subscribed to the Google
> Groups "FriCAS - computer algebra system" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> > To view this discussion on the web visit
> https://groups.google.com/d/msgid/fricas-devel/CAAWYfq07TtLc4%3DPB0orTjZT3eRiU0e_Fvqw8ziWyN9PpfVP0rg%40mail.gmail.com
> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "FriCAS - computer algebra system" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/fricas-devel/CAHnU2dY445y34scW5UkoqoCOTJ6PeGzkiXp%3DqVp1zcmrOjg6Yw%40mail.gmail.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/CAAWYfq0OvnSUkc6KXApmwgifLLeAz%2BpuNHDsnqL4e4je8jBHxw%40mail.gmail.com.

Reply via email to