On Sun, Jul 12, 2015 at 3:09 AM, Daniel Shahaf <d...@daniel.shahaf.name> wrote:
> Nico Kadel-Garcia wrote on Sun, Jul 12, 2015 at 01:24:56 -0400:
>> Building subversion-1.9.0-rc2 with 'autogen.sh' encounters some issues
>> with recent versions of Fedora.
>
> Why are you running autogen.sh?  It's required when building from
> a checkout, it's not required when building from a tarball.

Except when it is required, because of autoconf and aclocal version
incompatiblites. So it's a very common upstream Fedora/RHEL RPM
building standard.

>> 3) Subversion 1.9's autogen.sh tries to determine the location of
>> /usr/share/local by finding the "aclocal" binary, which now is found
>> in "/bin/aclocal" instead of "/usr/bin/aclocal".  It then looks in
>> "/bin/../share/aclocal" for the libtool.m4., Hilarity ensues.
>>
>> It's not a hard patch, and I've included it below.
>>
>> --- subversion-1.9.0-rc2/autogen.sh.libtool     2015-02-13
>> 15:36:06.000000000 -0500
>> +++ subversion-1.9.0-rc2/autogen.sh     2015-07-04 01:35:24.683176737 -0400
>> @@ -76,7 +76,10 @@
>>  $libtoolize --copy --automake --force
>>
>>  ltpath="`dirname $libtoolize`"
>> -
>> +if [ -L "$ltpath" -a "$ltpath" = "/bin" ]; then
>> +    # Avoid "/bin" symlink to "/usr/bin" confusion
>> +    ltpath=/usr/bin
>> +fi
>
> We can't presume that /usr/bin is the target of /bin when the latter is
> a symlink.  That's not necessarily true everywhere.

Can you think of a specific instance where "libtool" is in
"/bin/libtool" where this would not apply? In all circumstance I know
of where "/bin" is a symlink with "libtoolize" in it, it's the case,
especially in the new "let's throw out the File System Hierarchy and
let's play 'I'm smarter than you, neener neener neener'"  with PATH
and symlinks

In case it's not clear, I'm a bit cross with Fedora's decision to do
this. The reason to keep "/bin" with small, static binaries or
libraries only in "/lib" or "/lib64" was because in yesteryear, "/usr"
was often on a separate disk. much larger disk than "/", and this
protected small recovery and bootstrapping tools on "/". It also kept
critical recovery binaries and libraries out of the more dynamically
modified "/usr" components..

> I see there's a "aclocal --print-ac-dir" flag which seems to just print
> the path we need.  Does that help?  Can we eg first look for aclocal in
> PATH and then run that command to find the share/aclocal dir?

This would make sense if the tool was written to look for "aclocal".
It's not, it's set to look for "libtoolize", for reasons I'm uncertain
of. That actually makes more sense. Let me think about that.


> Daniel
>
>>  if [ "x$LIBTOOL_M4" = "x" ]; then
>>      ltm4_error='(try setting the LIBTOOL_M4 environment variable)'
>>      if [ -d "$ltpath/../share/aclocal/." ]; then

Reply via email to