Comments (3)
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.
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.
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)
- Feature request: pull vtp mode from a switch HOT 2
- find_or_create at PostgreSQL:line85 should be in a transaction HOT 1
- discovery when using device_identity fails if device has multiple device_ip, but the desired one is already set as canonical address HOT 4
- action's workers visualiser HOT 1
- makerancidconf default bug HOT 4
- include device_port_properties.remote_dns in node search HOT 1
- Get Queue Jobs via API does not give the same result as via UI HOT 5
- Problem with Port report "Blocked - Error Disabled" HOT 1
- discoverall not re-discovering some already known devices HOT 1
- No jobs are running in Tenants HOT 2
- Issue with search of a node with his DNS CNAME HOT 1
- Issue with platform detection HOT 2
- IP inventory from Fortigate devices HOT 1
- IP inventory not offering all known L3 interface IP Prefixes HOT 3
- 'switchport trunk native vlan' is getting set whenever a VLAN on an access port is changed HOT 1
- Datatable error, and shifted data in device/ports page HOT 1
- CORS Error, to external content in Netdisco Web Plugin. HOT 1
- CLI driver (SSH) on Nexus might not discover all arp entries HOT 2
- Device Discovery not possible in edge routed fabric with isolated underlay network HOT 4
- locating MAC / switchport info for a device IP address
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from netdisco.