Giter Club home page Giter Club logo

Comments (8)

rrthomas avatar rrthomas commented on August 26, 2024 1

What I struggle a bit to understand is the main point you want to make in this discussion.

My point: as far as I can tell, the differences between Autoconf Archive and not-autotools are less significant than you say, and I think that's important.

Your opinion is (reasonably enough!) that the differences are exactly as you say.

The reason we can hold these different opinions is because of the lack of explicit direction in the autoconf-archive documentation; we interpret the available evidence differently.

If I were to try to resolve our difference of opinion, I would do it by asking the autoconf-archive maintainers explicitly to document how they think the project should be used. So, I shall do that. Meantime, I am closing this issue, as you have convinced me that your interpretation is entirely reasonable (and may well be correct).

from not-autotools.

madmurphy avatar madmurphy commented on August 26, 2024

@rrthomas You don't need to copy and paste Autoconf Archive macros. Once you install the package aclocal will find them for you.

from not-autotools.

rrthomas avatar rrthomas commented on August 26, 2024

@madmurphy, the installation instructions for autoconf-archive are pretty brief and vague, but it does say:

[The ]repository can be cloned anonymously, which is probably the most convenient way to access the Archive. 
…
For the benefit of everyone who doesn’t use Git, traditional release archives can be downloaded from any GNU mirror

The implication is that one does not normally install a package, though this is certainly possible, and some GNU/Linux distros package it. However, this is just a convenience to developers: it would be contrary to the GNU Coding Standards to have autoconf-archive as a build-time dependency; as you observe, you run aclocal, and thereby copy the macros you use into your project.

So, this sentence:

The Autoconf Archive expects users to install a package that makes some new macros automatically available.

is misleading, as I don't believe one can say that the Autoconf Archive expects users (i.e. developers) to install a package. In any case, simply copying the relevant macros into one's project works just fine.

from not-autotools.

madmurphy avatar madmurphy commented on August 26, 2024

The implication is that one does not normally install a package, though this is certainly possible, and some GNU/Linux distros package it. However, this is just a convenience to developers: it would be contrary to the GNU Coding Standards to have autoconf-archive as a build-time dependency; as you observe, you run aclocal, and thereby copy the macros you use into your project.

You might not have caught the spirit of the Autoconf Archive. A developer installs it on his/her machine – so that manual copying-pasting of single macros is not required – then launches autoreconf, so that a configure script for the final user is generated, which will not depend on Autotools or Autoconf Archive.

is misleading, as I don't believe one can say that the Autoconf Archive expects users (i.e. developers) to install a package

Again, you are free to copy manually as many macros as you want, but “the spirit” of the Autoconf Archive is to avoid that you have to do that.

In any case, simply copying the relevant macros into one's project works just fine.

I have no doubts about that.

from not-autotools.

rrthomas avatar rrthomas commented on August 26, 2024

You might not have caught the spirit of the Autoconf Archive. A developer installs it on his/her machine – so that manual copying-pasting of single macros is not required

I can find no evidence that this is the intended way to use autoconf-archive, as I say (and I've been a user and contributor for many years!). Can you point to something in the Autoconf Archive documentation that suggests this is the intended way to use it?

In any case, simply copying the relevant macros into one's project works just fine.

I have no doubts about that.

This then suggests that it's not a "difference" from not-autotools; rather, Autoconf Archive has a feature that not-autotools lacks, namely that it can be used in an additional way.

Sorry if this seems rather pedantic, but I think it's important: it suggests, as I say, that the two projects at the very least can be used in pretty much exactly the same way, without any problem. This is a good thing: it means that a developer who is familiar with not-autotools can immediately use autoconf-archive in the same way, and also that there is a single technique by which both can be combined.

from not-autotools.

madmurphy avatar madmurphy commented on August 26, 2024

I can find no evidence that this is the intended way to use autoconf-archive, as I say (and I've been a user and contributor for many years!). Can you point to something in the Autoconf Archive documentation that suggests this is the intended way to use it?

Is it not enought that the Autoconf Archive package is designed to install its macros in /usr/share/aclocal, mandates the syntax of one macro per file where the file is named like the macro (which is what aclocal requires), and that the function of aclocal is exacly that of retrieving the macros necessary for generating a configure script?

This then suggests that it's not a "difference" from not-autotools; rather, Autoconf Archive has a feature that not-autotools lacks, namely that it can be used in an additional way.

A project that supports such a feature makes a choice that has consequences for its own evolution from my point of view.

Sorry if this seems rather pedantic, but I think it's important: it suggests, as I say, that the two projects at the very least can be used in pretty much exactly the same way, without any problem. This is a good thing: it means that a developer who is familiar with not-autotools can immediately use autoconf-archive in the same way, and also that there is a single technique by which both can be combined.

Yes, they can be used in the same way (by manually copying and pasting the macros in both cases). But deciding to support or not automatic macro import with aclocal has repercussions on how the macros evolve (not repercussions on the final user).

from not-autotools.

rrthomas avatar rrthomas commented on August 26, 2024

Is it not enought that the Autoconf Archive package is designed to install its macros in /usr/share/aclocal, mandates the syntax of one macro per file where the file is named like the macro (which is what aclocal requires), and that the function of aclocal is exacly that of retrieving the macros necessary for generating a configure script?

As I said, the documentation says nothing about running make install. The part of the documentation that I quoted says:

[The ]repository can be cloned anonymously, which is probably the most convenient way to access the Archive.

I read this as suggesting that you clone the archive, then copy the macros you need. There is no INSTALL file in the project.

A project that supports such a feature makes a choice that has consequences for its own evolution from my point of view.

As far as I can see, the only consequence you have mentioned is a need for backwards compatibility. But, I have not worried overmuch about making my contributions to Autoconf Archive backwards compatible, as when I introduce an incompatibility that only affects users who want or need to update to a later version of a given macro (which, I have assumed, will only happen at a moment of their choice, because the macros will be copied as source into their project). So, it is not clear to me that the maintainers of Autoconf Archive believe that it is necessary to keep backwards compatibility.

from not-autotools.

madmurphy avatar madmurphy commented on August 26, 2024

the documentation says nothing about running make install

The Autoconf Archive ships a configure.ac and a Makefile.am files. Someone interested in the archive should know what these files are.

There is no INSTALL file in the project.

The INSTALL file magically appears after you launch autoreconf -i.

As far as I can see, the only consequence you have mentioned is a need for backwards compatibility.

More than the need, the freedom from, in the case of the Not Autotools project.

I have not worried overmuch about making my contributions to Autoconf Archive backwards compatible, as when I introduce an incompatibility that only affects users who want or need to update to a later version of a given macro (which, I have assumed, will only happen at a moment of their choice, because the macros will be copied as source into their project).

You assume that since you did not know that Autoconf Archive was an actual package and other packages can depend on it (development-wise) all other developers think the same.

If you look at the “Required By” section of the autoconf-archive package distributed by Arch you will notice that the following packages depend on it in order to be compiled:

gnome-builder, gnome-common, abiword, amsynth, dbus, dbus-python, deepin-metacity, exempi, gnome-applets, gnome-flashback, gnome-latex, gnome-online-miners, gnome-panel, gnote, gnumeric, goffice, gsound, gspell, gtksourceview3, gupnp-dlna, jami-daemon, jp2a, lib32-dbus, lib32-libthai, lib32-polkit, libblockdev, libblockdev (testing), libgee, libgphoto2, libgsf, libimobiledevice, libmm-glib, libplist, libqrtr-glib, libzapojit, metalog, modemmanager, mpfr, pcsclite, pluma, polkit, powertop, profanity, sane, scrot, thermald, ukui-media, ukui-menus, vala, workrave, xdg-dbus-proxy, yelp, zenity

(the list is probably inaccurate, as some of these packages switched to Meson in the meanwhile – but it gives you an idea)

From my experience the normality among package maintainers is actually to let autoreconf copy and paste the AX macros, not to copy and paste them manually.

What I struggle a bit to understand is the main point you want to make in this discussion.

from not-autotools.

Related Issues (2)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.