OJS OCS OMP OHS

You are viewing the PKP Support Forum | PKP Home Wiki



Packaging Open Journal System for Debian

OJS development discussion, enhancement requests, third-party patches and plug-ins.

Moderators: jmacgreg, btbell, michael, bdgregg, barbarah, asmecher

Forum rules
Developer Resources:

Documentation: The OJS Technical Reference and the OJS API Reference are both available from the OJS Documentation page.

Git: You can access our public Git Repository here. Comprehensive Git usage instructions are available on the wiki.

Bugzilla: You can access our Bugzilla report tracker here.

Search: You can use our Google Custom Search to search across our main website, the support forum, and Bugzilla.

Questions and discussion are welcome, but if you have a workflow or usability question you should probably post to the OJS Editorial Support and Discussion subforum; if you have a technical support question, try the OJS Technical Support subforum.

Packaging Open Journal System for Debian

Postby jerico » Sat May 16, 2009 2:54 pm

Hi PKP team,

I am currently packaging OJS for Debian, see [0].

First of all I wanted to congratulate you for the beautiful code you wrote. It's real fun to go through your code.

I have got two questions:

1) At Debian we never install the same library twice. We use canonical installation locations so that all installed packages can share libraries.

OJS claims to use ADOdb 4.90 (June 8, 2006) [1]. It seems however, that OJS' ADOdb version is different from the "official" release. [2] I've done a diff and it seems that ADOdb has been quite heavily modified.

I did another diff for smarty and also found differences though only very few ones.

TinyMCE 3.0.9 seems very different from the version shipped with OJS. Any idea where this may come from? Is the shipped version newer?

I've talked to the Debian guys and they say no chance to get this into the distribution. I'm quite sure that other distributions will have the same reservations. If you're interested in helping me to get OJS into Debian then we've got the following options:
- build (and maintain) a compatibility layer on top of the official ADOdb/smarty/TinyMCE API
- convince ADOdb/smarty/TinyMCE to take over changes into their upstream code.

Anybody interested in working with me to resolve this?

EDIT: btw, getting easy upstream updates for 3rd-party libraries will be good for OJS as well, just think of 3rd-party security updates that now can probably only be integrated with a lot of manual work.

2) As you probably know, Debian comes with a package management system of its own. We use a script library called "debconf" to ask Debian users configuration questions. I have therefore patched the OJS cli installer script to get its information from environment variables.

Do you see any problems with the option I chose? Do you see a better option?

EDIT: I've tried to upload the patch. But the upload didn't work. Should I submit the patch as a post?

Florian

PS: If anybody wants to directly participate in the packaging effort: You're most certainly welcome!

[0] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=511879
[1] see lib/libraries.txt
[2] viewtopic.php?f=8&t=812
jerico
 
Posts: 94
Joined: Sat May 16, 2009 2:45 pm

Re: Packaging Open Journal System for Debian

Postby asmecher » Mon May 18, 2009 8:14 pm

Hi Florian,

Thanks for the kind words -- we've worked really hard on this software and it's great to hear that work validated. It would be very exciting to see it in Debian (not least because I'm a Debian user).

Unfortunately, OJS contains a slightly modified version of ADODB -- there are a few bug fixes that we apply that were never incorporated into the main codebase (for example, see http://phplens.com/lens/lensforum/msgs.php?id=17698). I'd be happy to describe these further if you think it'd be useful. I believe the mysqli driver should work, though I haven't tried it myself. It's likely that the fixes mentioned above wouldn't be active, however.

If you like, open an entry in our Bugzilla database (http://pkp.sfu.ca/bugzilla) for issues relating to Debian compatibility and upgrade the patch there. It's entirely likely that we could incorporate it into our main codebase.

Regards,
Alec Smecher
Public Knowledge Project Team
asmecher
 
Posts: 8337
Joined: Wed Aug 10, 2005 12:56 pm

Re: Packaging Open Journal System for Debian

Postby jerico » Tue May 19, 2009 8:44 am

Hi Alec,

asmecher wrote:,
There are a few bug fixes [...]. I'd be happy to describe these further if you think it'd be useful.


I'm very happy that you answered so favourably. I think together we'll be able to solve the compatibility problems. Unfortunately, I am afraid that there is no "one best way" for all the bug fixes and patches. I think we'll have to decide for every individual patch how to handle it best.

Is there any way we can establish a direct collaboration (IRC, Jabber, Skype, whatever...)? I think it would be easiest to get into a working relationship quickly.

asmecher wrote:I believe the mysqli driver should work, though I haven't tried it myself.


In the meantime I tried this out. But I was wrong. The functions that were introduced into the API are not present there neither. Don't know how I was dreaming this up.

asmecher wrote:If you like, open an entry in our Bugzilla database (http://pkp.sfu.ca/bugzilla) for issues relating to Debian compatibility and upgrade the patch there. It's entirely likely that we could incorporate it into our main codebase.


Great, you'll see the patch come in today.

Florian
jerico
 
Posts: 94
Joined: Sat May 16, 2009 2:45 pm

Re: Packaging Open Journal System for Debian

Postby jerico » Tue May 19, 2009 4:00 pm

Hi Alec,

here is what I propose:

1) I took the original upstream version of the libraries OJS ships and diffed them against your patched version.

--> Smarty & ADOdb: looks good
--> TinyMCE: Please tell me against which version I should diff. The one mentioned in lib/libraries.txt (3.0.9) had too many differences to be the right one. Maybe I just did it wrong?

2) I propose that I divide the diffs into smaller patches and open a bug in bugzilla for each of them.

--> It would be great if we got a new Bugzilla Component "Debian Package" for the OJS product. This way we can keep the rest of bugzilla clear and it will be easier to keep track. Can you configure this in bugzilla?

3) Then we can discuss and solve the bugs one by one with the OJS contributors.

4) While we do this I'll have to find an official Debian Developer who'll QA and upload the package to the Debian repository. There is no guarantee that I'll find one. But that doesn't matter too much. We could distribute the package by other means (e.g. on the PKP website) in the meantime. Sooner or later we'll find one.

Is this process ok for you?

BTW: I've already got a preliminary Debian package that ships with the patched libraries. It's still alpha but you can test it if you like. Is there a place where I could upload it?

Florian
jerico
 
Posts: 94
Joined: Sat May 16, 2009 2:45 pm

Re: Packaging Open Journal System for Debian

Postby jerico » Tue May 19, 2009 7:45 pm

asmecher wrote:If you like, open an entry in our Bugzilla database for issues relating to Debian compatibility and upgrade the patch there.


See http://pkp.sfu.ca/bugzilla/show_bug.cgi?id=4322

Patch has been uploaded.
jerico
 
Posts: 94
Joined: Sat May 16, 2009 2:45 pm

Re: Packaging Open Journal System for Debian

Postby asmecher » Wed May 20, 2009 6:50 am

Hi Florian,

The Smarty version we're using looks like 2.6.18 -- try diffing that and see if it comes up OK.

I've added a Debian package component to Bugzilla.

It's been a long time since I upgraded ADODB, and I suspect they may be somewhat out of date, but we used to maintain diffs against the stock ADODB library in lib/adodb/diff. If you're working to reconcile our copy against the stock library, a fresh diff would be best to work with, but you might refer to the diffs included in CVS to see what individual things have been changed, rather than seeing all the changes at once. (The ADODB fix I referred to earlier is not included in that set; my bad.)

Yes, this process is great, and I'm excited at the prospect of joining the Debian project! Once this is ready for OJS, by the way, our other apps will be very easy to add as well using the same package template.

If you like, email me a test package personally and I'll give it a look.

Aside from a couple of space-based indents (rather than tabs), the patch looks fine. It's probably best to mention at this point -- the release you're working with (2.2.3) is probably the last or next-to-last release in our current stable line, after which point we'll be moving to 2.3, which is quite different code-wise and may need to be packaged differently. It represents the abstraction of a lot of the support code into a separate library ("pkp" in our CVS repository), to reconcile commonalities between OJS, OCS, the Harvester, and the upcoming OMP. in Debian-land, I think this would be a separate library. We'll continue to maintain the stable release for quite a while, of course, but thought I'd give you a heads-up.

Regards,
Alec Smecher
Public Knowledge Project Team
asmecher
 
Posts: 8337
Joined: Wed Aug 10, 2005 12:56 pm

Re: Packaging Open Journal System for Debian

Postby jerico » Wed May 20, 2009 11:40 am

asmecher wrote:The Smarty version we're using looks like 2.6.18


yep, that's what I've found out as well, 2.6.18 with some very few changes

asmecher wrote:I've added a Debian package component to Bugzilla.


great!

asmecher wrote:you might refer to the diffs included in CVS


ok, I'll try to reconcile the fresh diff and the existing patches.

Only one question remains open:
--> Can you please tell me what version of TinyMCE you are shipping? I couldn't find out that one...
jerico
 
Posts: 94
Joined: Sat May 16, 2009 2:45 pm

Re: Packaging Open Journal System for Debian

Postby jerico » Wed May 20, 2009 11:41 am

asmecher wrote:If you like, email me a test package personally and I'll give it a look.


I just sent you a binary and a source package.
jerico
 
Posts: 94
Joined: Sat May 16, 2009 2:45 pm

Re: Packaging Open Journal System for Debian

Postby asmecher » Thu May 21, 2009 7:43 am

Hi Florian,

That should be TinyMCE 3.0.7.

Regards,
Alec Smecher
Public Knowledge Project Team
asmecher
 
Posts: 8337
Joined: Wed Aug 10, 2005 12:56 pm

Re: Packaging Open Journal System for Debian

Postby jerico » Thu May 21, 2009 3:20 pm

Thanks for the TinyMCE version. I already got Mylyn (Eclipse) to work with your Bugzilla page. I'll now start to get the bugs in there.
jerico
 
Posts: 94
Joined: Sat May 16, 2009 2:45 pm

Re: Packaging Open Journal System for Debian

Postby jerico » Thu May 21, 2009 6:17 pm

asmecher wrote:It's probably best to mention at this point -- the release you're working with (2.2.3) is probably the last or next-to-last release in our current stable line, after which point we'll be moving to 2.3, which is quite different code-wise and may need to be packaged differently. It represents the abstraction of a lot of the support code into a separate library ("pkp" in our CVS repository), to reconcile commonalities between OJS, OCS, the Harvester, and the upcoming OMP. in Debian-land, I think this would be a separate library. We'll continue to maintain the stable release for quite a while, of course, but thought I'd give you a heads-up.


This is not a problem. Packaging an extra library is not much work. We'll certainly be able to move to 2.3 easily as soon as it is released.
jerico
 
Posts: 94
Joined: Sat May 16, 2009 2:45 pm

Re: Packaging Open Journal System for Debian

Postby jerico » Fri May 22, 2009 12:53 am

Just to inform you that I have opened bugs for all differences with individual patches attached:
-> I have included all changes up to HEAD revision.
-> I've made use of bug dependency to establish a hierarchy of bugs that can be nicely viewed in Mylyn.
-> The patches in lib/diff were by file and not by logical coherence. I didn't do it that way. I've rather tried to re-group differences that logically belong together into larger change-sets that we can handle as one entity. This means that we may have changes from several files in one patch. Or we may also have several patches that concern the same file.

I now propose the following next steps:

1) There were some (few) changes that I do not understand 100%. I called them "unspecified changes". Maybe you can help me interpreting these and change the title accordingly.

2) TinyMCE was a special case. Looking at the source code I found out that we have version 3.2.2.3 in the CVS (both OJS 2.2.3 and HEAD). There are however a lot of binary files that changed between the two versions (images). Probably you have some custom smilies or something. There are also some files that are only present in one of the two versions. I included lists with the files concerned in the bug. Can you help me interpret these differences?

3) Next we have to decide for each of the change-sets how we can either get it upstream or into a compatibility layer on top of the original upstream code (or eliminate it in some other way). It would be nice if you could comment on individual bugs about how you think we should proceed. I'll do the same from my side.
jerico
 
Posts: 94
Joined: Sat May 16, 2009 2:45 pm

Re: Packaging Open Journal System for Debian

Postby asmecher » Fri May 22, 2009 8:49 am

My correction re: TinyMCE -- that actually looks like version 3.2.2.3.

Regards,
Alec Smecher
Public Knowledge Project Team
asmecher
 
Posts: 8337
Joined: Wed Aug 10, 2005 12:56 pm

Re: Packaging Open Journal System for Debian

Postby asmecher » Fri May 22, 2009 2:56 pm

Hi Florian,

I've been giving some further thought to the question of whether or not to remove the included libraries from CVS or not. Our release plans are currently as follows: OJS 2.2.3 (and, in parallel, OCS 2.1.1) are our stable releases, and we'll continue to maintain these lines for quite some time with absolutely minimal changes (just security issues and minor bug fixes). Our 2.3 lines (current CVS HEAD for OJS and OCS) are where we're putting any changes that fall outside those criteria. I think it would be too disruptive to pull the libraries out of CVS for the stable releases, but I agree that it's a good idea for the development (2.3) releases going forward.

To generate a Debian package, that's going to mean exporting from CVS and removing the lib/ directory there.

Meanwhile, I really like the idea of going back to the maintainers of those packages (e.g. ADODB) and trying again to get them to include some of the fixes that we've been maintaining locally. We've been waiting on a few of these for quite a while, but another reminder from another source wouldn't hurt.

Regards,
Alec Smecher
Public Knowledge Project Team
asmecher
 
Posts: 8337
Joined: Wed Aug 10, 2005 12:56 pm

Re: Packaging Open Journal System for Debian

Postby jerico » Fri May 22, 2009 4:35 pm

asmecher wrote:I think it would be too disruptive to pull the libraries out of CVS for the stable releases, but I agree that it's a good idea for the development (2.3) releases going forward.


Yes, I understand that and I find it a very good solution.

asmecher wrote:To generate a Debian package, that's going to mean exporting from CVS and removing the lib/ directory there.


That's not a problem at all. We do this very often. Many times we have to "clean" source packages before they can go into the repository because they contain 3rd-party software that is packaged otherwise or is not free. You can have a look at the source package that I sent you. I am doing exactly this in the source download script.

BTW: By far not all open source projects are as responsive as you are. I'm really impressed how quickly you respond and how much you are helping to get OJS ready for Debian. This will be a very important argument in your favour once we have to find someone to upload the package to the Debian repositories.

asmecher wrote:Meanwhile, I really like the idea of going back to the maintainers of those packages (e.g. ADODB) and trying again to get them to include some of the fixes that we've been maintaining locally.


I agree. That way not only OJS but thousands of other projects using these libraries will benefit from what you are doing.

asmecher wrote:We've been waiting on a few of these for quite a while, but another reminder from another source wouldn't hurt.


There is another possibility that I probably didn't mention yet: If we see that the upstream maintainers are not responding then we can still try to get your fixes into the Debian packages. We simply open a bug against the Debian package and post a link to the upstream bug report in there. Then I'll write a patch against the package concerned and ask the maintainer of the package to apply it. This way the maintainer has minimal work. Sometimes Debian developers are not willing to maintain those patches. But many times they help if upstream doesn't respond.

Florian
jerico
 
Posts: 94
Joined: Sat May 16, 2009 2:45 pm

Next

Return to OJS Development

Who is online

Users browsing this forum: No registered users and 3 guests