[Pkg-owncloud-maintainers] OwnCloud 3rdparty stuff

Adam Williamson awilliam at redhat.com
Thu Jan 2 10:42:14 UTC 2014


Hi, folks. I just wanted to let you guys all know that I'm working my
way towards a proposal to try and harmonize OC upstream's 3rdparty/
stuff with how Debian and Fedora/RH package the same bits, so we could
hopefully avoid the need for downstream patching and symlinking and
other messiness.

I spent most of today teaching myself roughly how OC's autoloader works
and figuring out how PSR-0 and PEAR and stuff that's neither all relate
to each other, and I'm hoping tomorrow I can send some more patches
upstream to OC that rearrange its 3rdparty bits such that we downstream
can unbundle them all 'magically' - i.e. if we just wipe the bundled
copies, OC will find our systemwide copies. I think we should be able to
get very close to this, if I'm not missing anything.

This would have a nice benefit for upstream in that they could simplify
their autoloader: all the registerPrefix crap could be dumped if we make
sure PSR-0 compliant things are laid out in a consistent fashion, as the
things they use it for are all actually PSR-0 compliant. I think I might
even be able to attempt the patch to the autoloader if things go well,
but baby steps!

So far I've made some notes on all the 3rdparty bits in OC 6.0.0a,
categorizing them into stuff that actually comes from PEAR (or a
third-party PEAR channel), stuff that's not from PEAR but is PSR-0
compliant, and stuff that's not at all PEAR-ish or PSR-0 compliant at
all (these things, we'll just have to try and make sure are laid out in
the same way under 3rdparty/ upstream and under /usr/share/php
downstream, I think). I'm pasting those notes below. I'm also trying to
keep track of how all the bits are packaged in both Fedora and Debian.

If you guys had any ongoing work in this area, please do let me know! No
point duplicating it :) And of course any thoughts, pointers etc.

Thanks!

files_encryption/3rdparty
+++++++++++++++++++++++++

PEAR
----

Crypt_Blowfish

files_external/3rdparty
+++++++++++++++++++++++

PEAR
----

Dropbox
phpseclib

PSR-0
-----

aws-sdk-php: vendor name "AWS"
smb4php

PEAR
----

NOT PEAR/PSR-0
--------------

google-api-php-client: files named after classes, directory structure
arbitrary (1.0 is PEAR-style with prefix Google)
php-opencloud: nearly PEAR, but not quite (1.8 is PSR-0, vendor name
"OpenCloud")

core/3rdparty
+++++++++++++

PSR-0
-----

Doctrine: vendor name "Doctrine"
Patchwork? (...mixes classes and namespaces, but I think a PSR-0
compliant autoloader probably works on it...debian packages it PSR
style)
phpass
PHPExcel (actually has a PEAR distribution, but the non-PEAR tarball is
'recommended' by upstream and is PSR-0 compliant AFAICS)
mediawiki
Pimple
Sabre? (uses a namespace \Sabre\VObject and everything else PEAR-style)

PEAR
----

Console
Archive
MDB2.php
PEAR(.php)
PEAR5.php
symfony: vendor name "Symfony"
System.php
XML

NOT PEAR/PSR-0
--------------

class.phpmailer.php
dompdf
getid3
phpdocx
-- 
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net
http://www.happyassassin.net




More information about the Pkg-owncloud-maintainers mailing list