Re: Constantly changing libtool

2021-04-16 Thread Warren Young
On Apr 15, 2021, at 11:23 AM, Paul Smith  wrote:
> 
> On Thu, 2021-04-15 at 08:33 -0500, Laurence Marks wrote:
>> there should be a way to autoupdate autoXYZ files for each system

autoreconf?   https://linux.die.net/man/1/autoreconf

>> without user intervention.

Post-checkout hooks?   https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

> The problem comes (IMO) from checking in generated files.

Ding-ding-ding!  Correct answer.

You (the OP) should be shipping a bootstrap/autogen.sh type script with your 
software to bring the version controlled checkout’s state up to the level you’d 
use for a distribution tarball, running the tools that autoreconf would do, in 
the proper order.

Here’s the relevant section of one of mine:

   https://tangentsoft.com/mysqlpp/file?name=bootstrap&ln=124-129

As that script shows, there’s a lot more you may want to put in such a script.  
What all you write here depends on build system details of the software.

For instance, my current version control system doesn’t like to version-control 
symlinks all that much, so in packages that need symlinks to avoid committing 
redundant files, I have the bootstrap script regenerate them.


Re: Constantly changing libtool

2021-04-16 Thread Thomas Jahns

Hi Laurence,

from what I can see, you are trying to solve an issue outside the scope 
autotools, which are AFAIK used in two contexts successfully:


1. users are provided a combination of source program and autotools 
generated files, and, unless they want to change the build system 
itself, have no need to worry about the autotools underpinnings but just 
run configure and make.


2. users receive source without autotools artifacts and are expected to 
run autotools at least once successfully.


Scenario 1. is obviously not helpful if people are expected to also 
change the build system to e.g. include new files. In scenario 2. more 
work than absolutely needed might be expected of users.


It seems your approach is somewhere in between: you supply 
autotools-generated files but expect users to also run autotools. I 
think you can improve outcomes by setting minimum version requirements 
in configure.ac so the consistency of the dev environment improves but 
that would probably not take care of all issues with e.g. new gcc versions.


My suggestion would be to supply more than just the sources: consider 
handing out virtual machine images or docker containers. Doing so would 
enable you to keep much more under control than only the sources. Users 
would receive a complete environment that's almost guaranteed to produce 
identical results to what you prepared for lectures/hands-on sessions.


Thomas Jahns


On 4/15/21 4:41 PM, Laurence Marks wrote:

As you say, it has files generated by autotools in a cvs (anonymous), so
when checking out there is a clash.

---
The software is at http://www.numis.northwestern.edu/Software/, mainly edm
& semper-7.0beta. They are both old, not so great but I still use them
every year or so for teaching, and there are a few others who use them.
They are updated via cvs (yes, they are that old). I am updating them
currently (for a class) so they may be changing.

At least for edm most of the problems are with fftw-2.1.5 (
http://www.fftw.org/download.html) which is also somewhat old. (Updating
the code to use more recent fftw would be a pain.)

On Thu, Apr 15, 2021 at 9:27 AM Peter Johansson  wrote:


Hi Laurence,

On 15/4/21 6:35 am, Bob Friesenhahn wrote:

Most problems seem to stem from packages providing the generated files
from Autoconf, Automake, and libtool so that end users don't need to
have the tools available.


It will be easier for people here to help if you provide a bit more
information about your set-up. Is the problem when building from a
tarball or when building from git/subversion? If the latter, do have you
checked in files generated by autotools into git/subversion, so when
checking out/cloning the source to a system with other autotools
versions, there becomes a clash between versions?

Cheers,

Peter









--
Thomas Jahns
HPC-Gruppe
Abteilung Anwendungssoftware

Deutsches Klimarechenzentrum GmbH
Bundesstraße 45a • D-20146 Hamburg • Germany

Phone:  +49 40 460094-151
Fax:+49 40 460094-270
Email:  Thomas Jahns 
URL:www.dkrz.de

Geschäftsführer: Prof. Dr. Thomas Ludwig
Sitz der Gesellschaft: Hamburg
Amtsgericht Hamburg HRB 39784



smime.p7s
Description: S/MIME Cryptographic Signature


Re: Constantly changing libtool

2021-04-15 Thread Paul Smith
On Thu, 2021-04-15 at 08:33 -0500, Laurence Marks wrote:
> In the same way as autoXZY sets up Makefiles in an OS independent
> fashion, there should be a way to autoupdate autoXYZ files for each
> system without user intervention. (I don't mean automake itself or
> similar, I do mean only the local files.) In an ideal world this
> would be a macro in configure.ac

The problem comes (IMO) from checking in generated files.  If you only
check in actual source files, not generated files, then you don't run
into these issues with different people having different versions of
build tools.

For GNU make I never check in any files generated by running autotools:
I check in configure.ac and Makefle.am and that's all.  I don't even
check in .po files (latest versions pulled automatically by the build
config) or gnulib-installed files (installed during config as well).

Of course, this means that everyone who wants to build the software
needs to have their own local copy of ALL the tools needed to do so,
including autoconf, automake, and libtool (actually we don't use
libtool for GNU make but...).  There's never a free lunch so you just
have to decide which cost is more dear.





Re: Constantly changing libtool

2021-04-15 Thread Laurence Marks
As you say, it has files generated by autotools in a cvs (anonymous), so
when checking out there is a clash.

---
The software is at http://www.numis.northwestern.edu/Software/, mainly edm
& semper-7.0beta. They are both old, not so great but I still use them
every year or so for teaching, and there are a few others who use them.
They are updated via cvs (yes, they are that old). I am updating them
currently (for a class) so they may be changing.

At least for edm most of the problems are with fftw-2.1.5 (
http://www.fftw.org/download.html) which is also somewhat old. (Updating
the code to use more recent fftw would be a pain.)

On Thu, Apr 15, 2021 at 9:27 AM Peter Johansson  wrote:

> Hi Laurence,
>
> On 15/4/21 6:35 am, Bob Friesenhahn wrote:
> > Most problems seem to stem from packages providing the generated files
> > from Autoconf, Automake, and libtool so that end users don't need to
> > have the tools available.
>
> It will be easier for people here to help if you provide a bit more
> information about your set-up. Is the problem when building from a
> tarball or when building from git/subversion? If the latter, do have you
> checked in files generated by autotools into git/subversion, so when
> checking out/cloning the source to a system with other autotools
> versions, there becomes a clash between versions?
>
> Cheers,
>
> Peter
>
>
>
>

-- 
Professor Laurence Marks
Department of Materials Science and Engineering
Northwestern University
www.numis.northwestern.edu
"Research is to see what everybody else has seen, and to think what nobody
else has thought" Albert Szent-Györgyi


Re: Constantly changing libtool

2021-04-15 Thread Peter Johansson

Hi Laurence,

On 15/4/21 6:35 am, Bob Friesenhahn wrote:
Most problems seem to stem from packages providing the generated files 
from Autoconf, Automake, and libtool so that end users don't need to 
have the tools available.


It will be easier for people here to help if you provide a bit more 
information about your set-up. Is the problem when building from a 
tarball or when building from git/subversion? If the latter, do have you 
checked in files generated by autotools into git/subversion, so when 
checking out/cloning the source to a system with other autotools 
versions, there becomes a clash between versions?


Cheers,

Peter






Re: Constantly changing libtool

2021-04-15 Thread Bob Friesenhahn

On Thu, 15 Apr 2021, Laurence Marks wrote:


In the same way as autoXZY sets up Makefiles in an OS independent fashion,
there should be a way to autoupdate autoXYZ files for each system without
user intervention. (I don't mean automake itself or similar, I do mean only
the local files.) In an ideal world this would be a macro in
configure.ac


When dealing with updated software there might not be any viable 
approach other than to install the various Autotools packages using a 
common installation prefix.


Sometimes executing

  autoreconf --install --force

using an existing Autotools installation is a viable solution.

Given that all of the software you are using is already released and 
sometimes very archaic, you are going to need to deal with the 
situation in front of you.  There is not going to be some new release 
which is somehow going to solve this issue to your satisfaction.


Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/
Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt



Re: Constantly changing libtool

2021-04-15 Thread Laurence Marks
Unfortunately things are not consistent, and in general have not been for
some time. It all depends upon which version has been installed which is
sometimes (often) beyond the control/competence of users. Even someone who
is moderately competent can have problems. For instance, on my laptop I
have both cygwin & Ubuntu; my cluster has Centos. Some of my students have
VM and/or Mac-Unix, and who knows what other users in Russia/Japan/etc have
-- I can't control that. I typically install autoXYZ on my systems in
/use/local, but that is not a reliable or general fix.

When moving between machines/OS to test (as gcc & now gfortran are moving
targets) I almost always have to reconfig. Libtool is part of the issue,
but there are also couplings to aclocal macros and sometimes other
components as well.

In the same way as autoXZY sets up Makefiles in an OS independent fashion,
there should be a way to autoupdate autoXYZ files for each system without
user intervention. (I don't mean automake itself or similar, I do mean only
the local files.) In an ideal world this would be a macro in
configure.ac

_
Professor Laurence Marks
"Research is to see what everybody else has seen, and to think what nobody
else has thought", Albert Szent-Györgyi
www.numis.northwestern.edu

On Thu, Apr 15, 2021, 08:12 Bob Friesenhahn 
wrote:

> On Wed, 14 Apr 2021, Laurence Marks wrote:
>
> > It is not timestamp issues, it is version issues -- e.g. libtool 2.4.2
> > versus 2.4.6 (for instance, those are just invented numbers). In many
> cases
> > aclocal, libtool, ltmain.sh and maybe a few others do not work if they
> were
> > created with a different autoXYZ version than is on the computer where
> they
> > are being installed. It seems to be "special" to libtool.
>
> There has not been a libtool release since 2014 and it is 2021
> already.
>
> The issues you are complaining about should not be existing for quite
> a long time already, and are easily corrected by installing consistent
> Autotools versions under the same installation prefix.  If you don't
> like the archaic versions your system provides, then simply uninstall
> (or not use) those packages and install using current Autotools
> release versions.
>
> It is intended that libtool components are installed into the software
> which uses them.  This assures consistent versions.  If the libtool
> components were not installed and distributed with the package, then
> there could be problems as you describe.
>
> Bob
> --
> Bob Friesenhahn
> bfrie...@simple.dallas.tx.us,
> https://urldefense.com/v3/__http://www.simplesystems.org/users/bfriesen/__;!!Dq0X2DkFhyF93HkjWTBQKhk!CjQjRsGtyWBePsFky9wEHrKJFYZgwc9ACi_I8ll7bvAa-RaEo1asjDsmsAO-D4rcH7MlDA$
> GraphicsMagick Maintainer,
> https://urldefense.com/v3/__http://www.GraphicsMagick.org/__;!!Dq0X2DkFhyF93HkjWTBQKhk!CjQjRsGtyWBePsFky9wEHrKJFYZgwc9ACi_I8ll7bvAa-RaEo1asjDsmsAO-D4oDSZ6wRw$
> Public Key,
> https://urldefense.com/v3/__http://www.simplesystems.org/users/bfriesen/public-key.txt__;!!Dq0X2DkFhyF93HkjWTBQKhk!CjQjRsGtyWBePsFky9wEHrKJFYZgwc9ACi_I8ll7bvAa-RaEo1asjDsmsAO-D4od8dCEwg$
>


Re: Constantly changing libtool

2021-04-15 Thread Bob Friesenhahn

On Wed, 14 Apr 2021, Laurence Marks wrote:


It is not timestamp issues, it is version issues -- e.g. libtool 2.4.2
versus 2.4.6 (for instance, those are just invented numbers). In many cases
aclocal, libtool, ltmain.sh and maybe a few others do not work if they were
created with a different autoXYZ version than is on the computer where they
are being installed. It seems to be "special" to libtool.


There has not been a libtool release since 2014 and it is 2021 
already.


The issues you are complaining about should not be existing for quite 
a long time already, and are easily corrected by installing consistent 
Autotools versions under the same installation prefix.  If you don't 
like the archaic versions your system provides, then simply uninstall 
(or not use) those packages and install using current Autotools 
release versions.


It is intended that libtool components are installed into the software 
which uses them.  This assures consistent versions.  If the libtool 
components were not installed and distributed with the package, then 
there could be problems as you describe.


Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/
Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt



Re: Constantly changing libtool

2021-04-14 Thread Laurence Marks
It is not timestamp issues, it is version issues -- e.g. libtool 2.4.2
versus 2.4.6 (for instance, those are just invented numbers). In many cases
aclocal, libtool, ltmain.sh and maybe a few others do not work if they were
created with a different autoXYZ version than is on the computer where they
are being installed. It seems to be "special" to libtool.

On Wed, Apr 14, 2021 at 3:36 PM Bob Friesenhahn <
bfrie...@simple.dallas.tx.us> wrote:

> On Wed, 14 Apr 2021, Laurence Marks wrote:
>
> > I have some software which has been "fine" for about 15 years, with one
> > exception: every 6-12 months or so when I (or students/others) compile it
> > we run into version problems. The typical ones are version mismatch
> between
> > libtool and/or aclocal (called from libtool). While I can futze around
> with
> > libtoolize/aclocal/autoconf/automake etc until it works, this is not
> viable
> > for users who barely understand linux.
> >
> > Is there some way in configure.ac (Makefile.am) to setup so the relevant
> > version fixes can be done automatically? There are so many posts about
> > version mismatches that this should be there. Maybe it is and I just
> missed
> > it.
>
> Most problems seem to stem from packages providing the generated files
> from Autoconf, Automake, and libtool so that end users don't need to
> have the tools available.  This would be combined with file time-stamp
> issues.  Many source control systems do not preserve file time-stamps.
>
> If the operating system distribution (or some other source) provides
> versions which differ from what the package provided, then there will
> be a problem.
>
> One thing that can help quite a lot is to include AM_MAINTAINER_MODE
> in configure.ac so that the user needs to add the
> --enable-maintainer-mode option in order to enable self-maintenance
> rules.  If the user does not provide the option, then the existing
> files will be used, which is usually just fine unless a file has
> actually been modified.
>
> It is sometimes said that 'autoreconf --force' will solve all
> problems, but in my experience this is not always true.
>
> Bob
> --
> Bob Friesenhahn
> bfrie...@simple.dallas.tx.us,
> https://urldefense.com/v3/__http://www.simplesystems.org/users/bfriesen/__;!!Dq0X2DkFhyF93HkjWTBQKhk!G3ek0gkcIrC1V4ZVdsgymVIc8_myhWPWhHAgikVKVkhnWQpQZyjj1MyMzheM1ajhg0kYkg$
> GraphicsMagick Maintainer,
> https://urldefense.com/v3/__http://www.GraphicsMagick.org/__;!!Dq0X2DkFhyF93HkjWTBQKhk!G3ek0gkcIrC1V4ZVdsgymVIc8_myhWPWhHAgikVKVkhnWQpQZyjj1MyMzheM1ahChk89tg$
> Public Key,
> https://urldefense.com/v3/__http://www.simplesystems.org/users/bfriesen/public-key.txt__;!!Dq0X2DkFhyF93HkjWTBQKhk!G3ek0gkcIrC1V4ZVdsgymVIc8_myhWPWhHAgikVKVkhnWQpQZyjj1MyMzheM1ahdtcF-sA$
>


-- 
Professor Laurence Marks
Department of Materials Science and Engineering
Northwestern University
www.numis.northwestern.edu
"Research is to see what everybody else has seen, and to think what nobody
else has thought" Albert Szent-Györgyi


Re: Constantly changing libtool

2021-04-14 Thread Bob Friesenhahn

On Wed, 14 Apr 2021, Laurence Marks wrote:


I have some software which has been "fine" for about 15 years, with one
exception: every 6-12 months or so when I (or students/others) compile it
we run into version problems. The typical ones are version mismatch between
libtool and/or aclocal (called from libtool). While I can futze around with
libtoolize/aclocal/autoconf/automake etc until it works, this is not viable
for users who barely understand linux.

Is there some way in configure.ac (Makefile.am) to setup so the relevant
version fixes can be done automatically? There are so many posts about
version mismatches that this should be there. Maybe it is and I just missed
it.


Most problems seem to stem from packages providing the generated files 
from Autoconf, Automake, and libtool so that end users don't need to 
have the tools available.  This would be combined with file time-stamp 
issues.  Many source control systems do not preserve file time-stamps.


If the operating system distribution (or some other source) provides 
versions which differ from what the package provided, then there will 
be a problem.


One thing that can help quite a lot is to include AM_MAINTAINER_MODE 
in configure.ac so that the user needs to add the 
--enable-maintainer-mode option in order to enable self-maintenance 
rules.  If the user does not provide the option, then the existing 
files will be used, which is usually just fine unless a file has 
actually been modified.


It is sometimes said that 'autoreconf --force' will solve all 
problems, but in my experience this is not always true.


Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/
Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt



Re: Constantly changing libtool

2021-04-14 Thread Karl Berry
Hi Laurence - sorry, but I can't imagine how to automatically correct
version mismatches. The possible problems are both unpredictable and
endless, seems to me. Maybe others here have some more useful
idea. --best, karl.



Constantly changing libtool

2021-04-14 Thread Laurence Marks
I have some software which has been "fine" for about 15 years, with one
exception: every 6-12 months or so when I (or students/others) compile it
we run into version problems. The typical ones are version mismatch between
libtool and/or aclocal (called from libtool). While I can futze around with
libtoolize/aclocal/autoconf/automake etc until it works, this is not viable
for users who barely understand linux.

Is there some way in configure.ac (Makefile.am) to setup so the relevant
version fixes can be done automatically? There are so many posts about
version mismatches that this should be there. Maybe it is and I just missed
it.

-- 
Professor Laurence Marks
Department of Materials Science and Engineering
Northwestern University
www.numis.northwestern.edu
"Research is to see what everybody else has seen, and to think what nobody
else has thought" Albert Szent-Györgyi