Giter Site home page Giter Site logo

Comments (3)

ollyg avatar ollyg commented on June 15, 2024

Hi @inphobia

I'm confused! The install docs give the following system packages for opensuse:

zypper install curl automake gcc make postgresql postgresql-server openssh openssl net-snmp perl perl-DBD-Pg perl-SNMP

So how are EV and others affected by this? Aren't they coming in from the cpanm route, as source?

(putting to one side the proxy issue which is indeed strange!)

Best wishes
Oliver

from netdisco.

inphobia avatar inphobia commented on June 15, 2024
testdisc@linux005:~> cpanm --test-only EV
--> Working on EV
Fetching http://www.cpan.org/authors/id/M/ML/MLEHMANN/EV-4.33.tar.gz ... OK
==> Found dependencies: Canary::Stability
--> Working on Canary::Stability
Fetching http://www.cpan.org/authors/id/M/ML/MLEHMANN/Canary-Stability-2013.tar.gz ... OK
Configuring Canary-Stability-2013 ... OK
Building and testing Canary-Stability-2013 ... OK
Successfully tested Canary-Stability-2013
Configuring EV-4.33 ... OK
Building and testing EV-4.33 ... FAIL
! Testing EV failed. See /home/testdisc/.cpanm/work/1693206982.13932/build.log for details. Retry with --force to force install it.

looking through the build logs a major factor seems to be the default cflags which turn some warnings into errors, like:
libev/ev_iouring.c:300:1: error: no return statement in function returning non-void [-Werror=return-type]

i managed to build it via the interactive option & enabling/disabling backends at random & got it ti build a few times, but overwriting comppiles flags via our current 1 line installer to try & remove the return type upgrading from warning to error was a very unfun experience.

this is what it seems to use for options:

"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- EV.bs blib/arch/auto/EV/EV.bs 644
"/usr/bin/perl" "/usr/lib/perl5/5.38.0/ExtUtils/xsubpp"  -typemap '/usr/lib/perl5/5.38.0/ExtUtils/typemap' -typemap '/home/testdisc/.cpanm/work/1693206982.13932/EV-4.33/typemap'  EV.xs > EV.xsc
mv EV.xsc EV.c
cc -c  -Ilibev -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -Wall -pipe   -DVERSION=\"4.33\" -DXS_VERSION=\"4.33\" -fPIC "-I/usr/lib/perl5/5.38.0/x86_64-linux-thread-multi/CORE"  -DEV_USE_REALTIME=0 -DEV_USE_SELECT=1 -DEV_USE_POLL=1 -DEV_USE_EPOLL=1 -DEV_USE_LINUXAIO=1 -DEV_RECOMMEND_LINUXAIO=0 -DEV_USE_IOURING=1 -DEV_RECOMMEND_IOURING=0 -DEV_USE_KQUEUE=0 -DEV_USE_PORT=0 -DEV_USE_INOTIFY=1 -DEV_USE_EVENTFD=1 -DEV_USE_SIGNALFD=1  EV.c

only compiler on the system atm:
cc (SUSE Linux) 13.2.1 (gcc)

think it stopped building around gcc9 or so on opensuse.

don't have any old cpanm build caches lying around to see how it used to build.

from netdisco.

inphobia avatar inphobia commented on June 15, 2024

found one from a year ago it seems from opensuse 15.3 - gcc7, where the -Werror=return-type is not present so we just get warnings that don't get upgraded to errors.

"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- EV.bs blib/arch/auto/EV/EV.bs 644
"/usr/bin/perl" "/usr/lib/perl5/5.26.1/ExtUtils/xsubpp"  -typemap '/usr/lib/perl5/5.26.1/ExtUtils/typemap' -typemap '/home/testdisc/.cpanm/work/1664133041.30028/EV-4.33/typemap'  EV.xs > EV.xsc
mv EV.xsc EV.c
cc -c  -Ilibev -D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -Wall -pipe   -DVERSION=\"4.33\" -DXS_VERSION=\"4.33\" -fPIC "-I/usr/lib/perl5/5.26.1/x86_64-linux-thread-multi/CORE"  -DEV_USE_REALTIME=0 -DEV_USE_SELECT=1 -DEV_USE_POLL=1 -DEV_USE_EPOLL=1 -DEV_USE_LINUXAIO=1 -DEV_RECOMMEND_LINUXAIO=0 -DEV_USE_IOURING=1 -DEV_RECOMMEND_IOURING=0 -DEV_USE_KQUEUE=0 -DEV_USE_PORT=0 -DEV_USE_INOTIFY=1 -DEV_USE_EVENTFD=1 -DEV_USE_SIGNALFD=1  EV.c

they actually have a diff to fix those return-type issues:
https://build.opensuse.org/package/show/devel:languages:perl/perl-EV
but trying to get cpanm to use the srcrpm from there was a waste of time.

just to be sure i made a custom tarball of ev with the diff from suse applied & provided that as source to cpanm, which gave no issues.

choosing between providing a custom tarball, trying to get cpanm somehow allow me to remove that compiler option or adding the additional repo, i found the latter option the most workable and for tumbleweed, which is a rolling release, perhaps also the best tested one. (switched to rolling releases, easier to fix most of the time instead of migrating from 5 year old os versions to something brandnew)

from netdisco.

Related Issues (20)

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.