GNU bug report logs -
#39999
make install fails on mac (Catilina, Guile-3.0.1)
Previous Next
To reply to this bug, email your comments to 39999 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guile <at> gnu.org
:
bug#39999
; Package
guile
.
(Mon, 09 Mar 2020 14:35:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Massimiliano Gubinelli <m.gubinelli <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-guile <at> gnu.org
.
(Mon, 09 Mar 2020 14:35:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi,
make install on the last Guile 3.0.1 fails on my Mac (Catilina) with the following message
../build-aux/install-sh -c -d '/Users/mgubi/t/guile3-usr/include/guile/3.0/libguile'
/usr/bin/install -c -m 644 version.h scmconfig.h '/Users/mgubi/t/guile3-usr/include/guile/3.0/libguile'
/Library/Developer/CommandLineTools/usr/bin/make install-data-hook
/usr/bin/install -c -m 644 libguile-3.0-gdb.scm /Users/mgubi/t/guile3-usr/lib/libguile-3.0.a-gdb.scm
sed: -e: No such file or directory
make[5]: *** [install-data-hook] Error 1
make[4]: *** [install-data-am] Error 2
make[3]: *** [install-am] Error 2
make[2]: *** [install] Error 2
make[1]: *** [install-recursive] Error 1
make: *** [install] Error 2
I found that the following change to libguile/Makefile go around the problem
INSTANTIATE = \
$(SED) -i '' -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
-e 's,[@]pkglibdir[@],$(pkglibdir),g' \
-e 's,[@]GUILE_EFFECTIVE_VERSION[@],$(GUILE_EFFECTIVE_VERSION),g’
HTH,
Best
Massimiliano Gubinelli
Information forwarded
to
bug-guile <at> gnu.org
:
bug#39999
; Package
guile
.
(Wed, 11 Mar 2020 11:12:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 39999 <at> debbugs.gnu.org (full text, mbox):
Hi,
Massimiliano Gubinelli <m.gubinelli <at> gmail.com> skribis:
> make install on the last Guile 3.0.1 fails on my Mac (Catilina) with the following message
>
>
> ../build-aux/install-sh -c -d '/Users/mgubi/t/guile3-usr/include/guile/3.0/libguile'
> /usr/bin/install -c -m 644 version.h scmconfig.h '/Users/mgubi/t/guile3-usr/include/guile/3.0/libguile'
> /Library/Developer/CommandLineTools/usr/bin/make install-data-hook
> /usr/bin/install -c -m 644 libguile-3.0-gdb.scm /Users/mgubi/t/guile3-usr/lib/libguile-3.0.a-gdb.scm
> sed: -e: No such file or directory
> make[5]: *** [install-data-hook] Error 1
> make[4]: *** [install-data-am] Error 2
> make[3]: *** [install-am] Error 2
> make[2]: *** [install] Error 2
> make[1]: *** [install-recursive] Error 1
> make: *** [install] Error 2
I suppose the ‘sed’ invocation in the INSTANTIATE variable in Makefile
assumes we’re using GNU sed, which is probably not the case on your
machine.
> I found that the following change to libguile/Makefile go around the problem
>
> INSTANTIATE = \
> $(SED) -i '' -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
> -e 's,[@]pkglibdir[@],$(pkglibdir),g' \
> -e 's,[@]GUILE_EFFECTIVE_VERSION[@],$(GUILE_EFFECTIVE_VERSION),g’
What if you move ‘-i’ last, and without ''? That should expand to
something like:
sed -e … -e … -e … -i libguile-3.0-gdb.scm
Thanks,
Ludo’.
Information forwarded
to
bug-guile <at> gnu.org
:
bug#39999
; Package
guile
.
(Wed, 11 Mar 2020 14:05:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 39999 <at> debbugs.gnu.org (full text, mbox):
Hi Massimiliano,
Massimiliano Gubinelli <m.gubinelli <at> gmail.com> skribis:
> Is ok to do
>
> Horst:clean mgubi$ sed -e 's,pippo,pluto,g' -e 's,pippo,pluto,g' -e 's,pippo,pluto,g' -i ‘' test
Does it modify the file called ‘test’ in this case?
Thanks for testing!
Ludo’.
Information forwarded
to
bug-guile <at> gnu.org
:
bug#39999
; Package
guile
.
(Wed, 11 Mar 2020 14:34:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 39999 <at> debbugs.gnu.org (full text, mbox):
Hi Ludovic,
the problem seems to be the multiple -e together with -i.
Example:
Horst:clean mgubi$ cat - > test
pippo
Horst:clean mgubi$ sed -i -e 's,pippo,pluto,g' -e 's,pippo,pluto,g' -e 's,pippo,pluto,g' test
sed: -e: No such file or directory
Horst:clean mgubi$ sed -e 's,pippo,pluto,g' -e 's,pippo,pluto,g' -e 's,pippo,pluto,g' test
pluto
Horst:clean mgubi$ sed -i -e 's,pippo,pluto,g' test
Horst:clean mgubi$
The first command give error while the other work. If I put -i at the end I get
Horst:clean mgubi$ sed -e 's,pippo,pluto,g' -e 's,pippo,pluto,g' -e 's,pippo,pluto,g' -i test
sed: -i may not be used with stdin
Is ok to do
Horst:clean mgubi$ sed -e 's,pippo,pluto,g' -e 's,pippo,pluto,g' -e 's,pippo,pluto,g' -i ‘' test
Best,
Max
> On 11. Mar 2020, at 12:11, Ludovic Courtès <ludo <at> gnu.org> wrote:
>
> Hi,
>
> Massimiliano Gubinelli <m.gubinelli <at> gmail.com> skribis:
>
>> make install on the last Guile 3.0.1 fails on my Mac (Catilina) with the following message
>>
>>
>> ../build-aux/install-sh -c -d '/Users/mgubi/t/guile3-usr/include/guile/3.0/libguile'
>> /usr/bin/install -c -m 644 version.h scmconfig.h '/Users/mgubi/t/guile3-usr/include/guile/3.0/libguile'
>> /Library/Developer/CommandLineTools/usr/bin/make install-data-hook
>> /usr/bin/install -c -m 644 libguile-3.0-gdb.scm /Users/mgubi/t/guile3-usr/lib/libguile-3.0.a-gdb.scm
>> sed: -e: No such file or directory
>> make[5]: *** [install-data-hook] Error 1
>> make[4]: *** [install-data-am] Error 2
>> make[3]: *** [install-am] Error 2
>> make[2]: *** [install] Error 2
>> make[1]: *** [install-recursive] Error 1
>> make: *** [install] Error 2
>
> I suppose the ‘sed’ invocation in the INSTANTIATE variable in Makefile
> assumes we’re using GNU sed, which is probably not the case on your
> machine.
>
>> I found that the following change to libguile/Makefile go around the problem
>>
>> INSTANTIATE = \
>> $(SED) -i '' -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
>> -e 's,[@]pkglibdir[@],$(pkglibdir),g' \
>> -e 's,[@]GUILE_EFFECTIVE_VERSION[@],$(GUILE_EFFECTIVE_VERSION),g’
>
> What if you move ‘-i’ last, and without ''? That should expand to
> something like:
>
> sed -e … -e … -e … -i libguile-3.0-gdb.scm
>
> Thanks,
> Ludo’.
Information forwarded
to
bug-guile <at> gnu.org
:
bug#39999
; Package
guile
.
(Wed, 29 Apr 2020 19:09:03 GMT)
Full text and
rfc822 format available.
Message #17 received at 39999 <at> debbugs.gnu.org (full text, mbox):
MacOS uses BSD sed. When the -i option to sed is used, it has a mandatory argument, which should be a zero length string to edit the file in-place.
Gnu sed’s -i option uses an optional argument, rather than a mandatory argument, which if not present allows the file to be edited in-place. Adding a zero-length string might cause problems.
Configure needs to add a zero length quote when compiling using BSD sed, and nothing when compiling using Gnu sed, or avoid the whole problem by making a backup using a prefix, in which case both use the same syntax.
wlh
Information forwarded
to
bug-guile <at> gnu.org
:
bug#39999
; Package
guile
.
(Wed, 29 Apr 2020 19:35:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 39999 <at> debbugs.gnu.org (full text, mbox):
Sorry; my explanation above is not correct.
What I meant to say is that to edit a file in place WITHOUT CREATING a backup file, BSD sed’s -i option requires a zero-length string as a mandatory argument, while Gnu sed’s -i option does not take any argument. If a backup file is wanted, then their option -i syntax is identical.
The INSTANTIATE macro as written is not including any argument to sed’s -i option, meaning that no backup file is wanted.
Therefore, a very simply solution to this problem is to make a backup file, then delete it. Both sed versions would work correctly.
A more complicated solution is to determine which version of sed is being used, and change the INSTANTIATE macro to use the correct syntax.
Gnu sed has a version option (—version), but BSD sed does not (it throws an error when either -v or —version are used).
wlh
Information forwarded
to
bug-guile <at> gnu.org
:
bug#39999
; Package
guile
.
(Thu, 30 Apr 2020 00:05:01 GMT)
Full text and
rfc822 format available.
Message #23 received at submit <at> debbugs.gnu.org (full text, mbox):
"W. Lincoln Harvey" via "Bug reports for GUILE, GNU's Ubiquitous
Extension Language" <bug-guile <at> gnu.org> writes:
> backup file, BSD sed’s -i option requires a zero-length string as a
> mandatory argument, while Gnu sed’s -i option does not take any
> argument.
In cases like this, it is good to read the POSIX specs.
However, you will find that -i is not specified at all.
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html
Information forwarded
to
bug-guile <at> gnu.org
:
bug#39999
; Package
guile
.
(Thu, 30 Apr 2020 00:05:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-guile <at> gnu.org
:
bug#39999
; Package
guile
.
(Thu, 30 Apr 2020 01:07:01 GMT)
Full text and
rfc822 format available.
Message #29 received at 39999 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Greg,
Good point. The BSD sed man page says:
"The -E, -a and -i options are non-standard FreeBSD extensions and may not be available on other operating systems."
So perhaps a better solution is to not use the -i option at all and be POSIX compliant?
Informally looking through some of the code, this was the only use of the -i option that I found.
wlh
[Message part 2 (text/html, inline)]
Information forwarded
to
bug-guile <at> gnu.org
:
bug#39999
; Package
guile
.
(Fri, 01 May 2020 14:38:01 GMT)
Full text and
rfc822 format available.
Message #32 received at submit <at> debbugs.gnu.org (full text, mbox):
wlharvey4--- via "Bug reports for GUILE, GNU's Ubiquitous Extension
Language" <bug-guile <at> gnu.org> writes:
> Greg,
>
> Good point. The BSD sed man page says:
>
> "The -E, -a and -i options are non-standard FreeBSD extensions and may not be available on other operating systems."
>
> So perhaps a better solution is to not use the -i option at all and be POSIX compliant?
>
> Informally looking through some of the code, this was the only use of the -i option that I found.
If that is at all reasonable, then I think it's the best thing to do.
FWIW, the saem text about -i being a FreeBSD extension appears in the
NetBSD man page.
Information forwarded
to
bug-guile <at> gnu.org
:
bug#39999
; Package
guile
.
(Fri, 01 May 2020 14:38:01 GMT)
Full text and
rfc822 format available.
This bug report was last modified 5 years and 43 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.