[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Build System Bug on Arch Linux
From: |
mwaters517 |
Subject: |
Build System Bug on Arch Linux |
Date: |
Wed, 09 Sep 2020 14:36:56 +1000 |
User-agent: |
Roundcube Webmail/1.3.8 |
Hi All,
I've found a some what obscure bug in the GNU-CAP build system. I've
figured out what the
problem is and can offer a solution that has been tested and appears to
work. I've tested
this against the latest git repository.
As the build system proceeds it moves through each gnucap sub-directory
(eg. gnucap/apps)
and uses "pwd" and "sed" to create the LIBPATH and MODELGEN directories.
Unfortunately if
the current working directory contains two or more instances of the
sub-directory name
(in my case "apps") the build breaks :
...
...
make[1]: Entering directory '/home/user/apps/geda/gnucap/git/apps'
mkdir O
mkdir: cannot create directory ‘O’: File exists
make[1]: [Makefile:31: default] Error 1 (ignored)
cat Make1 Make2 ../Make3 Make.depend >O/Makefile
(cd O; make -k)
make[2]: Entering directory '/home/user/apps/geda/gnucap/git/apps/O'
(export LD_LIBRARY_PATH=`pwd | sed 's/apps/lib/g'`; `pwd | sed
's/apps/modelgen/g'`/gnucap-modelgen -cc ../d_mos1.model)
/bin/sh: /home/user/modelgen/geda/gnucap/git/modelgen/O/gnucap-modelgen:
No such file or directory
...
...
In the above, the directory "apps" appears twice and so gets replaced
twice. I've found an
incantation of "sed" where the last appearance of a string is replaced,
which is what is
required here. Instead of using : sed 's/apps/lib/g', use : sed
's/\(.*\)apps/\1lib/'`. I only
have a problem with the directory "apps" but it could happen in any of
the other sub-directories
as well.
The fault occurs in the file gnucap/apps/Make1. The following shows the
original lines commented
out and the new lines replacing them :
#LIBPATH = `pwd | sed 's/apps/lib/g'`
LIBPATH = `pwd | sed 's/\(.*\)apps/\1lib/'`
#MODELGEN = `pwd | sed 's/apps/modelgen/g'`/gnucap-modelgen
MODELGEN = `pwd | sed 's/\(.*\)apps/\1modelgen/'`/gnucap-modelgen
Incidentally, "mkdir" has the switch "-p" so that if the directory to be
made already exist no
error message is generated.
Hope this helps. Thanks for your efforts writing gnucap.
Mike Waters
- Build System Bug on Arch Linux,
mwaters517 <=