PDK discussion

Perl Dev Kit usage questions; Perl Dev Kit practices and project questions

Problem compiling for Linux with PerlApp 9.2.1 on Mac OSX

When I tried to download and install the module Bio::Phylo-0.50 using ppm I found that I was not authorized to do so because it had been removed from ActivePerl's available modules (Error: 401). I downloaded the moodule from CPAN, compiled and installed it manually and it worked fine for compiling stand-alone scripts with Mac OS X as the target.

However, when I try to compile scripts with linux-x86-32 I get the message:
401 Authorization Required at /ActivePerl/PPM/Client.pm line166.

perlapp - single exe-file

Is it possible to create single exe-file from perl project if main utility incluiding (by use,require) many other pl-files,ini-files and pm-files? Besides the utility using for Win32:API interactions few dll-files. The goal is to create single exe-file and to use only it on other computer.

Perl exe crashing with unexepected errors

I have a command line application written in perl. I generated the exe for the app using "PerlAPP". The application is being used by a C# application from where it gets spawned with the necessary arguments and runs in the background.

It is found that the application is crashing often with some unusual errors.
I am able to track couple of them:

1) Can't create C:\......\Local\Temp\.....\attributes.dll : Permission denied at Perlapp line 934 -- It may seem to be a permission issue but its not. Since its happening at times say 10 out 50 cases

PerlSvc/PerlApp: What do to about non-perl files

Today, it seems like more and more module maintainers are putting essential non-perl files in lib. These files are being accessed by modules via __FILE__.

Regardless of the philosophical position on whether the package maintainers are correct in doing so, it is seriously causing me a headache.

For example, take Mojolicious. Mojo::Util is a pretty important module. Yet, instead of using __DATA__, they have externalized the data to a file (ok, separating data from code, good design principle in theory), and opening the file via (ln 30):

PerlSvc: Not working on Win2008 R2?

I have a tool wrapped in PerlSvc -- using PDK 32 for Perl32, PDK 64 for Perl64.

Windows 2008 (32 binaries): OK
Windows 7 (32/64 binaries): OK
Windows 2008 R2 (32/64 binaries): Not OK

It must be an OS setting or something; on R2 when I run the binary from command line, the program starts fine. When running through service control manager (via mmc or net start), the following emits to Event Viewer:

Undefined subroutine &PerlSvc::Startup called at /PerlSvc.pm line 95.

So it must be an extract and/or use issue.

Use of uninitialized value in substr at /<x.exe>PerlApp/DATA.pm line 170


I am working with Perl 5.8.8 and I've purchased the PDK Version
'ActiveState Perl Dev Kit 9.2.1 Build 296433'.

All runs fine. I could create an executable. But when I start it, following
message appears:

'Use of uninitialized value in substr at /PerlApp/DATA.pm line 170'

As the program will be run by many users, the message will be confusing someones. To avoid
a lot of support-questions I would ask you, if somebody know what I can do to
oppress this message

Thanks a lot for your answer


multiple targets

can a perlapp support multiple targets?

perlapp --target linux-x86-32 --target windows-x86-32 --target windows-x86-64

so when specifying targets:

perlapp --target linux-x86-32

I get no error.. however when I specify targets:

perlapp --target linux-x86-32 --target windows-x86-32 --target windows-x86-64

I get error:

error: Can't locate Proc/Daemon.pm

Does anyone have any insight on this? I know the Proc::Daemon perl mod did not get installed in the activeperl for windows, so .... How do i get it installed?

Unpacking ActivePerl...done
Syncing target-site PPM database with .packlists...done
Downloading ActiveState Package Repository packlist....done

perlapp dropping privs

Is this supported?

file gets executed as root, app drops privileges to normal user, perlapp can no longer write to pdk-root directory. Can this be changed? is there an environment variable to set?

Binary no longer works

Have a development CentOS box that I've created a binary to run on another Linux box that did not have perl. All worked well up until recently. The runtime box was recently updated. It now has Perl 5.8.8 (non-activestae build) and some other pkg updates... but it is still basically the same OS (32bit CentOS 2.6.18).

Now when the binary is executed it reports libperl.so found at /usr/lib/perl5/... not an ActiveState binary.

the /tmp gets the pdk-xxxx/ dir with the libperl.so from the binary but never seems to be referenced.