[Zope-dev] Packaging Zope for Fedora

Marius Gedminas mgedmin at b4net.lt
Fri Mar 21 20:29:51 EDT 2008


Disclaimer: my knowledge is not complete, and my track record of writing
emails late at night is not very good.  Take this with a big grain of
salt.

On Fri, Mar 21, 2008 at 11:57:31AM -0700, Timothy Selivanow wrote:
> As the subject implies, I'm working on a package for Fedora.  I've come
> across some missing dependencies, and some that are different versions.
> Because of the way that Python packages are put together (shared library
> environment), I'm trying to strip out everything that is not Zope
> specific (e.g. mechanize, docutils, etc.) that way Zope won't clobber
> already existing packages, and new packages won't clobber Zope.

Be careful: I wouldn't be surprised if the foreign packages in the Zope
tree have bugfixes applied to them.  I trust those fixes were also sent
to their respective upstreams as well, but it may make it a bit more
difficult to find out which upstream version is really needed.

> Here is my list (that I've discovered so far...) and some notes and
> questions.  I would appreciate any information on resolving these.  My
> list was taken from Zope-3.4.0c1/build/lib.linux-x86_64-2.5 (in my arch
> specific case...) after doing a `python install.py build` (side note,
> why is it called install.py and not setup.py?).

Good question.  It's called setup.py in the Subversion tree -- but the
tarball is not based on the old monolithic SVN tree any more.

> BTrees --
> 	Does not currently exist in Fedora as a separate package.
> 	Is this of Zope origin? (If not, where? Required version?)
> 	If Zope origin, is it useful outside of Zope?

It is part of ZODB.  It may be useful outside of Zope.

> persistent --
> 	Does not currently exist in Fedora as a separate package.
> 	Is this of Zope origin? (If not, where? Required version?)
> 	If Zope origin, is it useful outside of Zope?

ZODB again.

> transaction --
> 	Does not currently exist in Fedora as a separate package.
> 	Is this of Zope origin? (If not, where? Required version?)
> 	If not Zope origin, is it useful outside of Zope?

ZODB again.

> ThreadedAsync --
> 	Does not currently exist in Fedora as a separate package.
> 	Is this of Zope origin? (If not, where? Required version?)
> 	If Zope origin, is it useful outside of Zope?
 
ZODB again.

> ClientForm --
> 	This currently exists in Fedora (version 0.2.7)
> 	Diffing the directories and files reveals differences.
> 	What version is required for Zope? What about newer versions?
>
> mechanize --
> 	This currently exists in Fedora (version 0.1.6)
> 	Diffing the directories and files reveals differences.
> 	What version is required for Zope? What about newer versions?
> 

I'm pretty sure these two are only used for zope.testbrowser.  It ought
to be sufficient to take the latest upstream version and see if
zope.testbrowser's test suite passes with it.

Benji York is the one with most knowledge about zope.testbrowser and its
dependencies.  If he offers different advice, listen to him, not to me.

> twisted --
> 	This currently exists in Fedora (version 2.4.0)
> 	Diffing the directories reveals that is it mostly compatible,
> 		however, missing some features (I have a list).
> 	What parts are required by Zope?
> 	Some of the missing parts are no longer being maintained, or are
> 		incompatible with newest Twisted (2.5.0). Thoughts?

AFAIK twisted is only bundled with Zope 3 for convenience.  It is used
for its HTTP server as one of the alternatives (the other ones being
ZServer and WSGI), but even that part is not used by default.

> pytz --
> 	This currently exists in Fedora (version 2006p)
> 	Diffing the directories and files reveals differences.
> 	What version is required for Zope? What about newer versions?
> 	The Zope versions do not have the .py extension.  Possible
> 		problems with Zope if they do (i.e., lib resolving)?

I think any non-broken pytz version should work.  (Ubuntu once shipped a
completely broken one.)

> RestrictedPython --
> 	Does not currently exist in Fedora as a separate package.
> 	Is this it? <http://pypi.python.org/pypi/RestrictedPython/3.4.2>
> 	Required version for Zope? What about newer versions?

I honestly have no idea.

> Also, there is an existing package in Fedora called
> python-zope-interface, version 3.0.1 I assume (in F8), and I'm wondering
> if it would be worth keeping separate (or at least available, updated,
> maybe with a Conflicts: zope) in Fedora and are there other parts of
> Zope (e.g. ZODB, ZEO) that would be useful by themselves?

Yes and no.

The Zope 3 upstream is now split into hundreds of little packages
(Python eggs), each registered on the Python Package Index, with
intricate and sometimes suboptimal dependency lists.  If there's an easy
way to convert a Python egg to an RPM, you may want to look at this, but
beware: the dust hasn't fully settled yet.  There's no guarantee that
the packages on PyPI will work with each other at any given point of
time.  The Zope 3 Known Good Set fixes that, so you may want to look
into it:
http://wiki.zope.org/zope3/FAQGeneral#what-is-the-kgs-known-good-set

On the other hand having multiple small packages will make your job harder.

> I'm sorry if this seems daunting (it is on my side ;) and/or demanding,
> but I would like this packaged the best possible way for both projects.
> Who knows, this might show up in future RHEL versions (maybe I'm
> delusional ;)

The current consensus in the Zope community seems to be "avoid
distribution packages, build your own Python from sources, then install
Zope from sources in a sandbox".  My personal experience with Zope 2
Debian packages reinforces the notion, although I still stubbornly stick
with Python that comes with my distro.

Well, sudo apt-get install zope2.9-sandbox was *very* nice for playing
around in a sandbox, but for production use I will install Zope from
sources.  And I will probably have multiple different installations of
different versions of Zope in different sandboxes, because each upgrade
has to be carefully tested and scheduled with the clients.

That's the voice of practicality.

The voice of idealism says that yes, every little Zope package ought to
be packaged in each popular distro, and these should work together
nicely, and be bug-free and fully supported.  It will take a lot of time
and work to reach that state, and I'm afraid most of the Zopers are too
busy building production applications to be much help with this.

At least we have automated test suites...

> Thank you for your time and patience.

Marius Gedminas
-- 
Despite all appearances, your boss is a thinking, feeling, human being.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://mail.zope.org/pipermail/zope-dev/attachments/20080322/eaea8517/attachment-0001.bin


More information about the Zope-Dev mailing list