Problem with downloading PPM modules

Hi. My Perl version is 5.24.3, I cannot install modules from PPM.
https://code.activestate.com/ppm is unavailable.
Any idea about this?

thanks.

Most of the legacy sites from ActiveState are offline due to a database outage last week. The database is being recovered and moved to cloud servers, but I don’t have a ETA for a restoration of the PPM service, or the other affected pages and URLs.

2 Likes

PPM is back online now.

1 Like

Hi there, cannot use the PPM to install module. Getting error message like this: “failed 500 Can’t connect to ppm4.activestate.com:443”. Kindly suggest!

How old is your ActivePerl?

We have been required to update our TLS/SSL connection standards for PPM in order to move it to the cloud. Old PPM clients cannot negotiate a handshake now because they can only use deprecated and insecure SSL versions.

Try running a “ppm search net” from the command line.
In many of these older versions the error will be obvious, and will look like
“failed 500 SSL negotiation failed”

If you’re getting a 500 error when making a call to PPM, it’s time to upgrade your Perl.

As a workaround, you can allow your browser to handle the download of individual module files. The manual method does not support the detection of any dependencies, so you may require multiple iterations of downloads in order to detect and install all dependencies in correct order.

See the documentation that shipped with your old version, and locate the section on using PPMX files. There may be a note that Business Edition licenses are required, but this requirement is no longer enforced.

Hi there,

Thank you so much for your reply. I am using ActivePerl v5.14.2. I ran the “ppm search net” and it seemed to work and brought a list of 960 package names/versions (please see below). But, apparently, could not connect to “ppm4.activestate.com:443”.

==================
C:>ppm search net
Downloading ActiveState Package Repository packlist…redirect
Downloading ActiveState Package Repository packlist…failed 500 Can’t connect to ppm4.activestate.com:443

1: AI-Genetic 0.05
2: AI-Genetic-Pro 0.401
3: AI-NeuralNet-BackProp 0.89
4: AI-NeuralNet-FastSOM 0.16
5: AI-NeuralNet-Hopfield 0.1
…
…
…
955: Win32-Unicode-InternetShortcut 0.02
956: Win32API-Net 0.18
957: WordList-Phrase-JV-Proverb-PeribahasaNet 0.01
958: WordList-Phrase-SU-Proverb-PeribahasaNet 0.01
959: libnet 3.07
960: net-lastfmapi 0.63

Does this mean I can somehow manage to install modules using PPM or PPMX or some other way for this version of ActivePerl (v5.14.2)?

Please kindly suggest.

You may have at least one Non-ActiveState repository configured. Examples might be Bribes de Perl, or Trouchelle. A “ppm repo list” will report all external repositories that are configured. Few examples of third-party repositories remain. Those that are have been essentially mothballed.

Keep in mind that there is always an internal repository/packlist that reflects the distributions that are already installed, whether shipped or added locally.

We encountered the same connection problem as well, and here I will share a solution that we found. We are on ActivePerl 5.16.1, and we cannot upgrade because ActiveState discontinued the “PerlEx” accelerator that we use.

We have the old PPM client, which cannot connect to ppm4.activestate.com because that server has disabled the old SSL versions. We worked around this issue by setting up a server to act as the “middleman” between our PPM client and the ActiveState PPM server. We used nginx to do this, acting as a proxy between our PPM client and ActiveState’s server.

In the nginx configuration we made sure to enable all of the old SSL protocols and the old RC4 cipher, so that the PPM client will be able to connect to it. We configured nginx to pass all requests through to ppm4.activestate.com.

Then in the PPM client, under Edit -> Preferences -> Repositories, we disabled the existing repository and added a new repository which is our proxy server. (We entered the same URL as the existing repo but with the domain portion changed to our proxy server) That worked great, and now we’re able to install modules again using the PPM client.

We just devised a 2nd solution which I think is even more robust: we set up a server which has our own copy of the repository, and then we connected the PPM client to that server instead. Now we’re covered even if ActiveState’s server is ever shut down.

To achieve this, we first downloaded the XML file which is referenced in the PPM client under Edit -> Preferences -> Repositories. We then wrote a script to read through that XML file and download each of the modules that is listed in it, placing the modules in the same directory structure that is indicated in the XML file. The number of modules was a little over 20000, totalling around 2 GB in size.

On this new server we made sure to enable all the old SSL protocols plus the old RC4 cipher, and then in the PPM client we disabled the existing repository and added our new one. This is working well, and I like the fact that our Perl installation is now self-contained and self-reliant.