Am 16.10.2013 um 20:28 schrieb Wes Hardaker <w...@hardakers.net>: > Jens Rehsack <rehs...@gmail.com> writes: > >> The question is not, are you responsible - the question is, are you reliable. >> Perl and CPAN have an active community. SNMP hasn't been updated since 2007 >> and could need a lot of enhancements. > > Ah, but it's a lot more tricky than that. Our recommended install path > is actually to get the Net-SNMP source and install it, as it installs > the perl SNMP module too. > > And the reason that CPAN is intentionally old is that people have > complained (loudly) when the current SNMP module requires the most > current Net-SNMP libraries, which *aren't* on their system. And because > the .xs file links against specific versions of the Net-SNMP library, > they are tightly coupled. > > So in short, on most systems you should either: > > 1) install the default perl/SNMP/Net-SNMP bundles that come with the OS > 2) build and install everything from the Net-SNMP source tarball that > properly aligns the libraries and SNMP module. > > At one point in the past we always had the SNMP module up to date on > CPAN, and we got endless complaints about people doing auto-updates but > couldn't for the SNMP module because of the versioning requirements. > They *wanted* us to leave the one in CPAN old so that it wouldn't ask > them to update. > > In short: everything is a huge pain and it's not a winable situation. > Any option we had would make someone unhappy.
This is not true, and with an experienced Perl developer and CPAN community member you might get more and better perspectives. You can: 1) separate SNMP out of net-snmp and manage requirements using Config::AutoConf 2) tell (via "exit(0)") explicitly when you cannot run smoke tests because of insufficient dependencies. 3) remove SNMP implementation from CPAN and replace it by a placeholder loading Lib::NetSNMP (your bundled one), if available or complain loudly when missing 4) follow my recommendation below 5..n) >> Further: SNMP should be a "meta-module" like JSON and switch to Alien::SNMP >> or >> Lib::SNMP (in favor), Net::SNMP or any other XS binding or Pure-Perl >> module … > > Maybe so, if we were going to ideally change the world. But there is a > huge amount of existing code out there that uses the SNMP perl module > and thus unless the APIs were identical, all that existing code would > break. So that's likely a non-starter. Why? Because you think I don't know about keeping API stable during such processes? It's perfect … 1st releases will bundle Lib::NetSNMP, but recommend updated version Later releases will step by step via adapter pattern allow other SNMP distributions can be used. Even later ones unbundle SNMP and recommend the most active developed SNMP distribution on CPAN (we're here 3-4 years in future, just to have a feeling what "later" means). Much later, we might start to depreciate API and provide better one … Evolving takes time - but that doesn't mean, it's impossible neither it's a non-starter ;) >> Adopting the module would allow me to do such namespace cleanup, and >> having created an own SNMP agent and wrote a lot of ASN.1 based >> communication software (SNMP, SUPL, …) makes me experienced enough to >> honor previous authors contribution and improve for CPAN. > > You're welcome to contribute patches to the SNMP module through the > Net-SNMP tracker if you like. We always welcome new help. > > It sounds like you're wanting to rewrite an existing module. IE, you're > looking for a name space to take and make your own. Why not just create > a new module with a new name if you're intending to write something from > scratch? This is a separate thingie and shouldn't be mixed into discussion about SNMP and Net-SNMP modules on CPAN. I mentioned that only, because initially the tone was "you don't know enough about snmp". To summarize: I'm not interested in contributing to net-snmp (the linux only and partially bsd supporting, often crashing and memory leaking snmpd :P). I'm interested in improving CPAN. If that would mean (when I had to maintain an XS module for net-snmp's client libs) to contribute to net-snmp because of fixes are required to improve CPAN (module stability), I would do. See Alien::SVN or GraphViz how other projects manage language bindings without strain CPAN ^^ Again: I'm offering help for CPAN and I think, this will include a lot of help for the Perl5 binding to net-snmp, but primary goal for me is CPAN and Perl. Cheers -- Jens Rehsack rehs...@gmail.com