Giter VIP home page Giter VIP logo

alien-automake's People

Contributors

kiwiroy avatar plicease avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

majensen kiwiroy

alien-automake's Issues

Windows: build fails under cpanm unless --verbose flag is passed

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.

Support system install for Alien::automake

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.