perlalien / alien-automake Goto Github PK
View Code? Open in Web Editor NEWBuild or find automake
Build or find automake
I'm seeing build failures under strawberry perl (tested on 5.28 and 5.32, both portable editions).
The point of failure is this and is consistent across runs:
MAKEINFO doc/automake.info
./doc/automake.texi:6402: Node `Linking Multiple Yacc Parsers' requires a sectioning command (e.g., @unnumberedsubsec).
./doc/automake.texi:6402: `Linking Multiple Yacc Parsers' has no Up field (perhaps incorrect sectioning?).
makeinfo: Removing output file `doc/automake.info' due to errors; use --force to preserve.
A longer log from one build is below (Alien configure and build stages). I can provide the rest if needed.
Curiously, the build succeeds when running cpanm with the verbose flag: cpanm --verbose Alien::automake
, and also when building by hand.
Diffs show the logs for the successful and failed builds are identical up to the point of failure, directory names excepted.
If it related to doc building then disabling the docs might be one option. I would not expect much use of them from an alien module. This seems relevant if so: https://stackoverflow.com/questions/48071270/how-to-disable-automake-docs
Shawn.
Alien::Build::CommandSequence> + sh ./configure --prefix=/C/shawn/perls/5.28.2_64_PDL/perl/site/lib/auto/share/dist/Alien-automake --with-pic --disable-shared
configure: WARNING: unrecognized options: --with-pic, --disable-shared
configure: loading site script C:/Users/user/AppData/Local/Temp/qBfrqOY725/config.site
checking whether make supports nested variables... yes
checking build system type... i686-pc-mingw32
checking host system type... i686-pc-mingw32
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether ln -s works... no, using cp -pR
checking for perl... /usr/bin/perl
checking for tex... no
checking for yacc... no
checking for byacc... no
checking for bison... no
checking for lex... no
checking for flex... no
checking whether autoconf is installed... yes
checking whether autoconf works... yes
checking whether autoconf is recent enough... yes
checking whether ln works... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
configure: will now look for a sturdy POSIX shell, for our testsuite
checking for sh... /usr/bin/sh
checking for sh5... no
checking for dash... no
checking for ash... no
checking for bash... /usr/bin/bash
checking for zsh... no
checking for ksh... no
checking for pdksh... no
checking whether /usr/bin/sh supports $(cmd)... yes
checking whether /usr/bin/sh supports $((expr))... yes
checking whether /usr/bin/sh supports ${#var}... yes
checking whether /usr/bin/sh supports ${var#glob} and ${var%glob}... yes
checking whether /usr/bin/sh preserves exit traps with "set -e"... yes
checking whether /usr/bin/sh can define exit traps in a shell function... yes
checking whether /usr/bin/sh corrupts stderr with "set -x"... no
checking whether /usr/bin/sh can return early from "dot-sourced" files... yes
checking whether /usr/bin/sh supports alias named like shell builtins... yes
checking whether /usr/bin/sh supports "test -e"... yes
configure: shell /usr/bin/sh is good enough, stop looking
configure: will use /usr/bin/sh as the testsuite shell
configure: will now look for generic compilers
checking for cc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking for aCC... no
checking for FCC... no
checking for KCC... no
checking for xlC_r... no
checking for xlC... no
checking for c++... c++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C++... yes
checking whether c++ accepts -g... yes
checking for c++ option to enable C++11 features... none needed
checking for xlf95... no
checking for f95... no
checking for fort... no
checking for ifort... no
checking for ifc... no
checking for efc... no
checking for pgfortran... no
checking for pgf95... no
checking for lf95... no
checking for ftn... no
checking for nagfor... no
checking for xlf90... no
checking for f90... no
checking for armflang... no
checking for flang... no
checking for pgf90... no
checking for pghpf... no
checking for epcf90... no
checking for g95... no
checking for gfortran... gfortran
checking whether the Fortran compiler works... yes
checking for Fortran compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU Fortran... yes
checking whether gfortran accepts -g... yes
checking for xlf... no
checking for f77... no
checking for frt... no
checking for pgf77... no
checking for cf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for g77... no
checking for armflang... no
checking for flang... no
checking for gfortran... gfortran
checking whether the Fortran 77 compiler works... yes
checking for Fortran 77 compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU Fortran 77... yes
checking whether gfortran accepts -g... yes
configure: will now look for GNU compilers
configure: gcc is already a GNU C compiler
configure: c++ is already a GNU C++ compiler
configure: gfortran is already a GNU Fortran compiler
configure: gfortran is already a GNU Fortran 77 compiler
checking for gcj... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating pre-inst-env
configure: WARNING: unrecognized options: --with-pic, --disable-shared
Alien::Build::CommandSequence> + make
make[1]: Entering directory `/c/shawn/perls/528~1.2_6/data/.cpanm/work/1648983079.26528/Alien-automake-0.16/_alien/build_Yc2O/automake-1.16.5'
make[2]: Entering directory `/c/shawn/perls/528~1.2_6/data/.cpanm/work/1648983079.26528/Alien-automake-0.16/_alien/build_Yc2O/automake-1.16.5'
make[2]: Leaving directory `/c/shawn/perls/528~1.2_6/data/.cpanm/work/1648983079.26528/Alien-automake-0.16/_alien/build_Yc2O/automake-1.16.5'
Updating ./doc/version.texi
GEN bin/automake
GEN bin/aclocal
GEN bin/aclocal-1.16
GEN bin/automake-1.16
GEN t/ax/shell-no-trail-bslash
GEN t/ax/cc-no-c-o
GEN runtest
GEN doc/aclocal.1
GEN doc/automake.1
GEN lib/Automake/Config.pm
GEN doc/aclocal-1.16.1
GEN doc/automake-1.16.1
GEN t/ax/test-defs.sh
make[1]: Leaving directory `/c/shawn/perls/528~1.2_6/data/.cpanm/work/1648983079.26528/Alien-automake-0.16/_alien/build_Yc2O/automake-1.16.5'
Alien::Build::CommandSequence> + make install
make[1]: Entering directory `/c/shawn/perls/528~1.2_6/data/.cpanm/work/1648983079.26528/Alien-automake-0.16/_alien/build_Yc2O/automake-1.16.5'
MAKEINFO doc/automake.info
./doc/automake.texi:6402: Node `Linking Multiple Yacc Parsers' requires a sectioning command (e.g., @unnumberedsubsec).
./doc/automake.texi:6402: `Linking Multiple Yacc Parsers' has no Up field (perhaps incorrect sectioning?).
makeinfo: Removing output file `doc/automake.info' due to errors; use --force to preserve.
make[1]: *** [doc/automake.info] Error 1
make[1]: Leaving directory `/c/shawn/perls/528~1.2_6/data/.cpanm/work/1648983079.26528/Alien-automake-0.16/_alien/build_Yc2O/automake-1.16.5'
external command failed at C:/shawn/perls/5.28.2_64_PDL/perl/site/lib/Alien/Build/CommandSequence.pm line 88.
gmake: *** [Makefile:1032: _alien/mm/build] Error 2
-> FAIL Testing Alien::automake failed. See C:\shawn\perls\528~1.2_6\data\.cpanm\work\1648983079.26528\build.log for details. Retry with --force to force install it.
I lost the thread on this when I saw this fail when migrating to GitHub actions (since the fail seemed unrelated to the PR), but it looks like macOS is broken again.
https://github.com/PerlAlien/Alien-automake/runs/2107960810?check_suite_focus=true
https://gist.github.com/kiwiroy/2b02e5e744041c200b427e5dc5b2245d
For reliability reasons, we so far have not supported system install for Alien::automake
or Alien::autoconf
.
https://gist.github.com/0beb2cb7390c0d513f3fca81e6745585
log comes from this branch:
8833376
key error:
threads.c: loadable library and perl binaries are mismatched (got handshake key 0xd880000, needed 0xdb80080)
https://gist.github.com/plicease/0beb2cb7390c0d513f3fca81e6745585#file-typescript-L322
Essentially the problem is, the Perl that we are using can be different from /usr/bin/perl. If you are using PERL5LIB and have binary modules installed, then they will likely break the system automake (which usually uses /usr/bin/perl, but could be something else again). This is potentially a problem with autoconf as well, although I have only so far see it in automake (perhaps autoconf is only using pure perl modules, but even then having an incompatible PP perl module could potentially break things). I can "fix" the test by deleting PERL5LIB from the environment in the test, but this would likely just hide a bug.
All of this is very annoying for environments that have a working system autoconf + automake. Solutions would be happily entertained.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.