• Do not register here on develop.twiki.org, login with your twiki.org account.
• Use View topic Item7848 for generic doc work for TWiki-6.1.1. Use View topic Item7851 for doc work on extensions that are not part of a release. More... Close
• Anything you create or change in standard webs (Main, TWiki, Sandbox etc) will be automatically reverted on every SVN update.
Does this site look broken?. Use the LitterTray web for test cases.

I thought I'd already checked this in, but...

The following patch informs TWiki of whether it is running under IndigoPerl; it simply changes perlType. I wanted this in because I wanted TWiki to pick up the set of paths most appropriate to an IndigoPerl install. IndigoPerl is a bundle of Perl 5.8, Apache and mod_perl so there is almost no configuration on a Windows box: once you know you are on IndigoPerl everything is in a standard place. This is a useful diagnostic in itself but is also a key enabler for TWiki:Codev.PlatformDefaults.


Index: bin/configure
--- bin/configure       (revision 6478)
+++ bin/configure       (working copy)
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl -w
 # TWiki Collaboration Platform, http://TWiki.org/
@@ -1416,12 +1416,15 @@
             $cygwinRcsVerNum = $pkg;
     } elsif ($TWiki::cfg{DetailedOS} =~ /win/i && $TWiki::cfg{DetailedOS} !~ /d
arwin/i ) {
-        # Windows Perl - try ActivePerl-only function: returns number if
-        # successful, otherwise treated as a literal (bareword).
-        my $isActivePerl= eval 'Win32::BuildNumber !~ /Win32/';
-        if( $isActivePerl ) {
-            $perltype = 'ActiveState';
-            $perlverMsg = $perlver . ", build " . Win32::BuildNumber();
+     # Windows Perl - try detecting which by trying Win32 only function:
+     # returns number if successful, otherwise treated as a literal (bareword).

+     my $win32buildNumber = eval 'Win32::BuildNumber !~ /Win32/';
+     if( $win32buildNumber ) {
+          if ($Config::Config{ldflags} =~ m/indigoperl/i) {
+                   $perltype = 'IndigoPerl';
+           } else {
+             $perltype = 'ActiveState';
+           }
         } else {
             # Could be SiePerl or some other Win32 port of Perl
             $perltype = 'SiePerl or other Windows Perl';

Question; what's the short-term value of this? You are not switching on perltype==indigoperl anywhere, and AFAICT from reading the code the only difference this would make is that it would announce it was indigoperl instead of 'generic'.

Oh, and one thing you need to do is check that IndigoPerl supports safe pipes. Otherwise a public server using it is wide open to hacking.


IndigoPerl uses the same code as ActiveState. The only difference is that it is bundled with Apache + ModPerl.

I'd prefer to apply than defer this


  1. Why do you need to be able to identify it?
  2. Does it support safe pipes?


IndigoPerl needs a different set of defaults, minimally someone needs to be pointed to the right page on TWiki.org to manully find the right defaults. Optimally we could detect the environment and automatically switch to the right set.

Indy tells me that it is the same code base as ActiveStatePerl. If that supports safepipes then so does IndigoPerl.

Who can we ask?


http://aspn.activestate.com/ASPN/docs/ActivePerl/5.8/lib/Pod/perlipc.html#safe_pipe_opens says that they are (should) be supported.


Undeferred, post Dakar CC

Summary Code to distinguish between ActiveStatePerl and IndigoPerl
ReportedBy MartinCleaver

SVN Range

AppliesTo Engine

Priority Enhancement
CurrentState New

TargetRelease major
Edit | Attach | Watch | Print version | History: r13 < r12 < r11 < r10 < r9 | Backlinks | Raw View |  Raw edit | More topic actions
Topic revision: r13 - 2006-02-13 - CrawfordCurrie
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback