Build Error: Win32Clipboard 0.03 for Perl 5.28.1 on Windows

Looking for help with this package that is failing to build in my project.

Runtime Details

Failing Packages

  • Win32Clipboard 0.03

Reasons

  • Multiple top level files in C:\Temp/distfiles/CPAN/platform-sources/data-acquisition/c5e8dfaced4172016d714a0d0a3ae06e2627dd0cfb76ffc98f567b441ae1cb3a/Win32Clipboard-0.03.zip: Clipboard.pll.110 Clipboard.pll.30x Clipboard.pm install.bat README readme.txt source test.pl at C:/build/camel/lib/ActiveState/Build/Utils.pm line 347.

Hi @skp911,

Thanks for writing and sorry for the error. I’ve passed it on to our dev team to take a look at.

Cheers!
–zak

Hi. Was this resolved and is it related to my current problem?
state install Win32::Clipboard
╔════════════════════╗
║ Installing Package ║
╚════════════════════╝

Something Went Wrong
────────────────────
x No valid package matches your query

Hi @rrolih,

Thanks for writing!

Use name Win32-Clipboard instead. eg.

% state install Win32-Clipboard

Cheers!
–zak

Thank you Zak:
Ran: state install Win32-Clipboard
╔════════════════════╗
║ Installing Package ║
╚════════════════════╝

Updating Runtime
────────────────
Changes to your runtime may require some dependencies to be rebuilt.
An activestate.yaml has been created at: R:\Requirement Management\Scripting\Perl\activestate.yaml.
Package added: Win32-Clipboard
Your local project has been updated.
Run state push to save changes to the platform.
Run state history to review your local changes.
Run state activate to start using your runtime.

Ran:
state push
state activate

then my script generates:
Cwd.c: loadable library and perl binaries are mismatched (got handshake key 0000000000E67DC8, needed 0000000000000000)

thoughts?

Hey @rrolih,

That’s odd. I just built a simple test project with Win32::Clipboard and Perl 5.28.1 and it worked.

Can you share more details on the history of your project?

Alternately, do you want to try running state activate zakg/Perl-5.28.1-Win32Clipboard-test and see if it installs properly and succeeds with the minimal test script from https://metacpan.org/pod/Win32::Clipboard

Cheers!
–zak

Thanks Zak.

  1. Although a long-time Activestate Perl user, I’m a complete novice with state - so I don’t know if I’ve got it set up properly. I’ve basically been running old and new scripts with no problem until this latest one.
    To recover from the last error I deleted the yaml file.
    Is there something I should do, specifically, to provide a history?
  2. Regarding your second suggestion, no apparent errors. Minimal script worked fine. Are there permissions issues to consider? I use a work computer - many things are locked down.

Hey @rrolih - No worries and sorry that it’s not a smoother transition yet.

As for history, just knowing roughly what steps you’ve followed is good. Even better is something like the *nix history command. I’m not a Windows user, but it looks like Powershell has an analogue: about History - PowerShell | Microsoft Docs

For the second suggestion, as long as you’ve got network access, permissions shouldn’t be an issue. The build of Perl that you get runs in a nicely self-contained environment and shouldn’t require more permissions than you’d typically have as an unprivileged user.

Also, you might find later versions of Perl on the Platform are easier to work with. We made significant improvements starting with Perl 5.32.

Cheers!
–zak

Thanks Zak. Powershell history didn’t help - just a list of commands since the shell was started.
Can you tell me if state is actually needed after a package gets installed?
After: state install Win32-Clipboard
Building 0/0
Installing 2/2
Package added: Win32-Clipboard
Your local project has been updated.

I assumed I could then execute any script using Win32::Clipboard?
Can’t locate Win32/Clipboard.pm in @INC (you may need to install the Win32::Clipboard module) (@INC contains: C:\Users\rrolih\AppData\Local\activestate\fa931e4d\site\lib C:/Perl64/site/lib C:/Perl64/lib) at .\test.pl line 18.
BEGIN failed–compilation aborted at .\test.pl line 18.

Hey @rrolih,

By default, state sets up local projects that are isolated from each other. This is meant to support the common practice of developing multiple projects and allows you to add and remove dependencies from your projects without fear of breaking your global environment. You choose which particular project to use in a given shell by calling state activate <project name>.

If you’d like to promote a particular local project to be your global environment, run state activate --default <project name>

Cheers!
–zak