Sys::syslog module availability on Windows version?

Posted by vreiner on 2006-10-23 15:56

Hiya all,

I've installed a recent build of ActiveState Perl on Windows Server2003 SP1, and I have a script that needs the sys::syslog module. I checked the builds status page and the module is listed as "core". However it doesn't seem to be accessible according to the script I'm using (ASSP, found on SourceForge). There is another module called Net::Syslog but it's listed as "not meant to replace sys::Syslog" so I'm not sure what do to.

The other ASSP users are having the same difficulty. Can anyone tell me A) what I'm doing wrong or B) how I can get the sys::Syslog module installed or activated?

Thanks in advance!
Victor

jeff.griffiths | Tue, 2006-10-24 10:13

Syse::Syslog appears to be a UNIX-only module as it is a direct interface to UNIX syslog. I'd guess that the script you are trying to run is not meant to be run on Windows. More on Sys::Syslog:

http://search.cpan.org/~saper/Sys-Syslog-0.18/Syslog.pm

vreiner | Tue, 2006-10-24 11:01

Jeff,

I've seen the CPAN page you refer to. Syslog may have started in the Unix world but is available for most if not all enterprise-class hardware and OS's. Syslog is formally defined by RFC 3164 and 3195, making it OS-independent. The script I'm using is designed for use on multiple platforms. From the ASSP SourceForge project page:

"All 32-bit MS Windows (95/98/NT/2000/XP), All POSIX (Linux/BSD/UNIX-like
OSes), OS Independent (Written in an interpreted language), IBM OS/2"

None of this is relevant really because on ActiveState's site it clearly states that sys::Syslog is a core module for ALL OS's supported by ActiveState Perl. Core modules are defined "Package is automatically installed with ActivePerl". You can see for yourself:

http://ppm.activestate.com/BuildStatus/5.8-S.html

ActiveState is saying that sys::Syslog should be available for any Perl script running on any OS they support. What this tells me is that there is an issue with ActiveState Perl, whether it's a matter of the Windows installer not installing the package properly, or a configuration setting within the Perl install, or a problem with the Windows version of the module itself, or something I haven't thought of.

It might be minor, it might not, but it's a matter for ActiveState so I'm posting here. If there is a better forum for me to post this question or an email address for me to send it to, please let me know.

Thanks!

jeff.griffiths | Tue, 2006-10-24 12:01

The description of the module is this:

"Sys::Syslog - Perl interface to the UNIX syslog(3) calls"

As Windows is not a UNIX system and does not feature the infrastructure needed for this module, we don't include it in the Windows builds of ActivePerl. While you are correct in noting that there is an RFC spec for 'syslog', the CPAN module Sys::Syslog seems to only be targeted at UNIX systems.

My best suggestion would be to contact the maintainers of ASSP and ask them how they got their code running using ActivePerl.

vreiner | Tue, 2006-10-24 12:30

Jeff,

If the module is not available for AS perl then all is cleared up. However the Build Status pages for both version 5.8.x and 5.6.x are wrong. If it's not an available module then it should not be listed as CORE for the Windows install.

You wrote "we don't include it" so I assume you work for ActiveState? If so could you please send a message to the proper person to update the Build Status pages, so others in the future won't have the same confusion? Also, how would I go about requesting that as a feature for future development? I would love to have the functionality. There are numerous syslog packages available for the Windows platform so it's in the realm of possibilty.

Lastly, the ASSP folk can't address the problem directly. The script tests for the presence of various modules and enables features based on availability. The syslog module is not available, so ASSP doesn't enable it. Since syslog capability is more of a feature than a requirement there's not a big drive to correct the problem from the ASSP side. Besides, they write the scripts, not the perl interpreter.

Thanks!

jeff.griffiths | Tue, 2006-10-24 13:14

You should advise the ASSP people to look into Net::Syslog, it DOES work on Windows. Sys::Syslog will never work on Windows because it is just a thin interface to the UNIX native syslog utility.