Upgrade Plone 3.2.3 to 3.3.X to 5.X

Hello Plone community. I am new to Plone and am having trouble upgrading it. We are running Plone 3.2.3 on Linux (OpenSUSE 11)...all super old. I've taken over looking after it as the one who set it up is no longer with the company. I intend to upgrade it all to the newest Plone available as well as Centos 7.

However, I would like to be able to migrate this current Plone setup to the new setup which means I need to upgrade it to something newer...Ive spent a couple days going through forums and google etc but have been unable to find the answer.

"Error: Couldn't find a distribution for 'plone.recipe.zope2install==3.2'." is there error I keep getting. According to the Upgrading from 3.2 to 3.3.x guide, it should be easy but I am having zero luck.

Could anyone perhaps point me in the right direction or have any suggestions?

Current buildout.cfg

############################################
#
# Buildout Configuration File for Standalone Plone
# ------------------------------------------------
# $LastChangedDate: 2009-06-29 08:49:26 -0700 (Mon, 29 Jun 2009) $ $LastChangedRevision: 25769M $
#
# After making changes in this configuration file,
# you should run bin/buildout to update the components.
#
# ALWAYS back up all Plone/Zope data and components
# before changing configuration.
#
# Running "bin/buildout" will update your installation,
# installing missing components as necessary.
#
# Use "bin/buildout -n" to update all components,
# including Plone, to the newest available releases.
# Generally, you only want to do that as part
# of a planned migration.
#
############################################


[buildout]

############################################
# Plone Component Versions
# ------------------------
# This version of the Unified Installer has the components
# of Plone 3.2.3 preloaded so that it can install without
# an Internet connection.
extends = https://dist.plone.org/release/3.3.5/versions.cfg
versions = versions
index = https://pypi.python.org/simple/


############################################
# Ports
# -----
# Specify the port on which your Zope installation
# will listen:
http-address = 8080


############################################
# Eggs
# ----
# Add an indented line to the eggs section for any Python
# eggs or packages you wish to include.
#
eggs =
    Plone
    Products.LDAPMultiPlugins
    Products.LDAPUserFolder
    Products.PloneLDAP

# Optional Functionality
# ----------------------
#
# Commonly used products:
# * LinguaPlone provides tools for building multi-lingual sites
# * Products.CacheSetup adds the "CacheFu" Plone speedup kit
# * PloneHelpCenter is a simple knowledge base
# * PloneFormGen provides through-the-web form building
#
#    Products.LinguaPlone
#    Products.CacheSetup
#    Products.PloneHelpCenter
#    Products.PloneFormGen
#
# Commonly used development tools:
# * Clouseau uses AJAX to provide a Python prompt inside Plone
# * DocFinderTab puts an object documentation inspector in the Zope Management Interface
# * Gloworm is a Firebug-like viewlet inspector and customizer
# * plone.reload allows you to refresh Python code and ZCML configuration
#   without restarting Zope. Note that to use plone.reload, you'll also
#   need to uncomment the "zcml" entry for it below.
#
#    Products.Clouseau
#    Products.DocFinderTab
#    Products.Gloworm
#    plone.reload


############################################
# ZCML Slugs
# ----------
# Some eggs need ZCML slugs to tell Zope to
# use them. Eggs with names beginning with "Products."
# usually don't need this.
zcml =
#    plone.reload


############################################
# Development Eggs
# ----------------
# You can use paster to create "development eggs" to
# develop new products/themes. Put these in the src/
# directory.
# You will also need to add the egg names in the
# eggs section above, and may also need to add them
# to the zcml section.
#
# Provide the *paths* to the eggs you are developing here:
develop =
#    src/my.package


############################################
# Debug Mode
# ----------
# Change debug-mode to "on" to run in development mode.
#
debug-mode = off


############################################
############################################
# Buildout instructions beyond this point are
# usually only changed by experienced developers.
#
# Beyond here there be dragons!


eggs-directory=/opt/Plone-3.2.3/buildout-cache/eggs
download-cache=/opt/Plone-3.2.3/buildout-cache/downloads
newest = false
parts =
    zope2
    productdistros
    instance
    zopepy
    zopeskel
    precompile
    chown
    unifiedinstaller


# unzip all eggs for easier debugging
unzip = true

# let's share our Zope install
zope-directory = /opt/Plone-3.2.3


# This section installs the components of Zope 2.
# Zope operating instances are created elsewhere.

[zope2]
recipe = plone.recipe.zope2install
# update zope by updating this URL:
url = ${versions:zope2-url}
# fake eggs are required to satisfy Zope dependencies while
# zope is not yet eggified.
fake-zope-eggs = true
additional-fake-eggs =
    ZConfig
    pytz


# Use this section to download additional old-style products.
# List any number of URLs for product tarballs under URLs (separate
# with whitespace, or break over several lines, with subsequent lines
# indented). If any archives contain several products inside a top-level
# directory, list the archive file name (i.e. the last part of the URL,
# normally with a .tar.gz suffix or similar) under 'nested-packages'.
# If any archives extract to a product directory with a version suffix, list
# the archive name under 'version-suffix-packages'.

[productdistros]
recipe = plone.recipe.distros
urls =
nested-packages =
version-suffix-packages =


# Use this section to install and configure a Zope operating
# instance.

[instance]
recipe = plone.recipe.zope2instance
zope2-location = ${zope2:location}
# The line below sets only the initial password. It will not change an
# existing password.
user = admin: *********
http-address = ${buildout:http-address}
effective-user = plone
# change debug-mode to "on" to run in development mode
debug-mode = ${buildout:debug-mode}
# change verbose-security to "on" for detailed security
# errors while developing
verbose-security = off
# change deprecation-warnings to "on" to get log warnings
# for deprecated usages.
deprecation-warnings = off


# If you want Zope to know about any additional eggs, list them here.
# e.g. eggs = ${buildout:eggs} my.package
eggs =
    ${buildout:eggs}


# If you want to register ZCML slugs for any packages, list them here.
# e.g. zcml = my.package my.other.package
zcml =
    ${buildout:zcml}


products =
    ${buildout:directory}/products
    ${productdistros:location}


# You may also control the environment variables for the instance.
environment-vars =
    PYTHON_EGG_CACHE ${buildout:directory}/var/.python-eggs


# installs a zopepy python interpreter that runs with your
# full Zope environment
[zopepy]
recipe = zc.recipe.egg
eggs = ${instance:eggs}
interpreter = zopepy
extra-paths = ${instance:zope2-location}/lib/python
scripts = zopepy


# installs paster and Zopeskel
[zopeskel]
recipe = zc.recipe.egg
eggs =
    PasteScript
    ZopeSkel


# compiles .py files in ./parts and ./products so that they don't
# need to be compiled by the daemon

[precompile]
recipe = plone.recipe.precompiler


# This recipe is used to set permissions -- and ownership for root mode installs

[chown]
recipe = plone.recipe.command
command =
    chmod 600 .installed.cfg
    find ${buildout:directory} -type d -name var -exec chown -R ${instance:effective-user} \{\} \;
    find ${buildout:eggs-directory} -type d -name LC_MESSAGES -exec chown -R ${instance:effective-user} \{\} \;
    find ${buildout:directory} -name runzope -exec chown ${instance:effective-user} \{\} \;
update-command = ${chown:command}


# This recipe installs the plonectl script and a few other convenience
# items.

[unifiedinstaller]
recipe = plone.recipe.unifiedinstaller
user = ${instance:user}
primary-port = ${instance:http-address}
sudo-command =sudo

Full error I get when running bin/buildout

Download error: (1, 'error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version') -- Some packages may not be found!
Download error: (1, 'error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version') -- Some packages may not be found!
Couldn't find index page for 'plone.recipe.zope2install' (maybe misspelled?)
Download error: (1, 'error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version') -- Some packages may not be found!
Getting distribution for 'plone.recipe.zope2install==3.2'.
While:
  Installing.
  Getting section zope2.
  Initializing section zope2.
  Installing recipe plone.recipe.zope2install.
  Getting distribution for 'plone.recipe.zope2install==3.2'.
Error: Couldn't find a distribution for 'plone.recipe.zope2install==3.2'.

Typically, you proceed as follows:

  • you install the new target Plone version (under *nix like systems, the so called "UnifiedInstaller" is the easiest way).
  • you copy the storages (usually found in the var subfolder) from the old installation to the new one.
  • you start the new installation and "migrate" the portals via the corresponding action (I have forgotten where this action is located but I remember that is was prominent).

Piggybacking on what Dieter mentioned, I'd also look at what add-ons you have installed and whatever template customization (if any) were made.

Upgrading a vanilla site is somewhat straight forward, but add in some really crappy add-ons (PFA still brings back nightmares) custom templates, and or nonexistent persistent utilities and you'll have a not so fun time.

If things are too messy it maybe just better to use transmogrifier and export and re-import.

Importing content from other sources

Transmogrifier Documentation

At first it is a good idea to upgrade to latest Plone 4.3 and then from there to 5.1.
There are two upgrade guides, the 4.x series here https://docs.plone.org/4/en/manage/upgrading/index.html
and the one for the 5.x-series here: https://docs.plone.org/manage/upgrading/index.html

Depended on the add-ons used in the site the path can be rough. A vanilla Plone usually works fine, but regarding to add-ons it really depends on how well-maintained they are. If latter is the case an export/import strategy like sketched above is probably better.

Hi my old friends in Plone
Sorry to bump an old topic, but I see my self in a similar situation.
An NGO I used to donate some Plone support asked me to help upgrading a 3.2 site to an actual version.
As I lost my grip on buildout and such I might need your help.
Has anybody of you guys done such a 3.2->5.1 (or similar) migration.

I believe, I did a migration in the dawn of time, when I first was asked for help.
So chances are good, i hope :), that the modules are "upgradable"

thanks
robert
(the greyt)

Plone Foundation Code of Conduct