Differences between revisions 1 and 48 (spanning 47 versions)
Revision 1 as of 2012-03-23 22:48:02
Size: 485
Comment:
Revision 48 as of 2015-11-28 15:31:38
Size: 6555
Comment: Some more points done for zarafa-webapp
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Packaging Giraffe the open source variant of the Zarafa Collaboration Platform ## page was renamed from Giraffe
=
Packaging Giraffe =

Giraffe is
the free open source variant of the Zarafa Collaboration Platform packaged for Debian.

<<TableOfContents>>

== Resources ==
Line 4: Line 11:
 * SCM: http://anonscm.debian.org/gitweb/?p=pkg-giraffe/giraffe.git;a=summary
=== To Do ===
 * Zarafa SCM: https://anonscm.debian.org/gitweb/cgit/pkg-giraffe/giraffe.git
 * Zarafa-!WebApp SCM: https://anonscm.debian.org/cgit/pkg-giraffe/zarafa-webapp.git
 * Mailing List (Discussing): https://lists.alioth.debian.org/mailman/listinfo/pkg-giraffe-discuss
 * Mailing List (Maintaining/Packaging): https://lists.alioth.debian.org/pipermail/pkg-giraffe-maintainers
 * Upstream: https://community.zarafa.com/
 * Upstream Source: https://download.zarafa.com/community/
Line 7: Line 18:
 * Rebranding
 * Patches against libical, libvmime
 * Embedded copies of Smarty, fckeditor
 * Use Debconf
== Current State ==
The packages of Zarafa (server) are [[https://ftp-master.debian.org/new/zarafa_7.2.1~RC51272+dfsg1-1.html|uploaded to experimental]] and is waiting for a review by the ftpmasters in the new queue. zarafa-webapp isn't finally packaged and not available by the Debian repositories, the packaging process is not yet finished.
Line 12: Line 21:
(list originally provided by GuidoGünther in https://honk.sigxcpu.org/piki/agx/publications/2011-06-debian-groupware-zs.pdf) === libvmime ===
 * repackage done [[http://www.vmime.org/|libvmime]]
  * libVMime SCM: https://anonscm.debian.org/cgit/pkg-giraffe/libvmime.git/

=== zarafa-server, ... ===
==== ToDo ====
 * Check place of the database while install (local or remote) -> Debconf
 * Fix Lintian errors and warnings
 * Review and forward patches against DebPkg:libical (and DebPkg:libvmime, see above) on upstream. For now it seems we can run with the versions of the revitalized package.
 * Move dlopen'ed libs to private directory
 * Remove embedded copies of fckeditor via the dfsg-clean branch in git, (use DebPkg:fckeditor package)
  * To be re done with version 7.2.x
 * Test full functionality
  * We'd need some Outlook users here, too...
 * fix init script
  * systemd compatibility
  * error out when database is missing
  * often hangs on stop
 * systemd unit file (partially done)
 * MTA integration
 * check package descriptions
 * logrotate (upstream available in installer/linux/zarafa.logrotate, put in zarafa-common, split it per package)
 * check pre-/postinstall scripts: they do no error handling, don't include debhelper snippets
 * z-push upstream update
 * do not run as UID 0 (problematic for zarafa-search, otherwise it is configurable in the config files)
 * zarafa-common: kill it with fire, no useful parts
 * Adding mechanism to not conflict with packages from upstream

==== Done ====
 * (./) import upstream version 7.2.0
 * (./) switch to debhelper
 * (./) Use [[http://people.debian.org/~seanius/policy/examples/dbconfig-common/doc/dbconfig-common-using.html|dbconfig-common]]/Debconf to generate the initial configuration
  * database name
  * database user
  * database login
 * zarafa-client:
     * (./) Rename zarafa-client to libzarafa-client0 since it contains no client programs
     * (./) make libzarafaclient a proper versioned shared lib (or a private one)
 * (./) Adding some basic autopkgtests

=== WebApp ===
==== ToDo ====
 * Support more web server configurations (currently only Apache2)
 * Lintian is complaining about
   * tinymce (DebPkg:TinyMCE currently overridden as Debian version is to old)
 * Adding mechanism to not conflict with packages from upstream

==== Done ====
 * (./) Basic packaging, Alioth git repo: https://anonscm.debian.org/cgit/pkg-giraffe/zarafa-webapp.git/
  * ITP DebianBug:783640
 * Lintian was complaining about
  * (./) jquery-1.6.2.min.js (removed and symlinked to DebPkg:libjs-jquery)
  * (./) player.swf and moxieplayer.swf (Upstream want to ship this, removed within Debian packaging)
  * (./) ext-{base,all}.js, prettify.js (removed and symlinked to DebPkg:libjs-extjs DebPkg:libjs-jac DebPkg:libjs-prettify)
 * (./) Adding some basic autopkgtests (DebPkg:python-selenium, DebPkg:chromdriver DebPkg:phantomjs needed)
 * (./) Default website is available via https, http is redirected to https (This requires finally a valid vhost!)

The origin of this list is provided by GuidoGünther in https://honk.sigxcpu.org/piki/agx/publications/2011-06-debian-groupware-zs.pdf.

There was also a talk given on the Zarafa Tour 2015 in Hannover (in german)[[attachment:Talk-Hannover-ZarafaTour2015.pdf]].

== Using KVM for testing ==
You probably wont use your current system to test the zarafa packages and that's a good idea so far. KVM is a good alternative for testing because it's supporting snapshot mechanism for easy using and resetting of installations.

=== Installing needed KVM components ===
Installation is easy as it's simply a one liner.
{{{
$ sudo apt-get install qemu-kvm libvirt-bin bridge-utils virt-manager virtinst
}}}

=== Further preparations ===
After this ensure you are a member of the group 'libvirt'
{{{
$ sudo usermod -aG libvirt [YOUR_USERNAME]
}}}
The virtual network adapter inside the libvirt environment is disabled per default so before to continue start it.
{{{
$ virsh -c qemu:///system net-autostart default
$ virsh -c qemu:///system net-start default
}}}
The next calls maybe not really needed, but on the other hand it's no problem if the storage pools already up, so just to throw possible issues away.
{{{
$ virsh -c qemu:///system pool-start default
$ virsh -c qemu:///system pool-start boot-scratch
}}}

=== Installation of a virtual image ===
After the finishing of the preparation from above you can install a first image. The installation can be as known done fully automated by a preseed file, Guido has prepared file preseed.cfg. Download the file for example to the 'Downloads' folder within your home directory.
{{{
$ wget -P $HOME/Downloads http://honk.sigxcpu.org/projects/libvirt/preseed/preseed.cfg
}}}
Next you can set up a install, for example based on the Jessie release amd64 and named unstable-amd64-zarafa.
{{{
$ RELEASE=unstable
$ NAME=zarafa
$ DIST=amd64
$ virt-install --connect=qemu:///system \
               --location="http://ftp.us.debian.org/debian/dists/$RELEASE/main/installer-$DIST" \
               --initrd-inject=$HOME/Downloads/preseed.cfg \
               --extra-args="auto" \
               --name $RELEASE-$DIST-$NAME --ram=512 \
               --disk=pool=default,size=10,format=qcow2,bus=virtio
}}}
This will install a image named 'unstable-amd64-zarafa.qcow2' with a size of 10GB under /var/lib/libvirt/images/. After the install the image will boot automatically.

=== Usage of KVM images ===
to fill out

Packaging Giraffe

Giraffe is the free open source variant of the Zarafa Collaboration Platform packaged for Debian.

Resources

Current State

The packages of Zarafa (server) are uploaded to experimental and is waiting for a review by the ftpmasters in the new queue. zarafa-webapp isn't finally packaged and not available by the Debian repositories, the packaging process is not yet finished.

libvmime

zarafa-server, ...

ToDo

  • Check place of the database while install (local or remote) -> Debconf

  • Fix Lintian errors and warnings
  • Review and forward patches against libical (and libvmime, see above) on upstream. For now it seems we can run with the versions of the revitalized package.

  • Move dlopen'ed libs to private directory
  • Remove embedded copies of fckeditor via the dfsg-clean branch in git, (use fckeditor package)

    • To be re done with version 7.2.x
  • Test full functionality
    • We'd need some Outlook users here, too...
  • fix init script
    • systemd compatibility
    • error out when database is missing
    • often hangs on stop
  • systemd unit file (partially done)
  • MTA integration
  • check package descriptions
  • logrotate (upstream available in installer/linux/zarafa.logrotate, put in zarafa-common, split it per package)
  • check pre-/postinstall scripts: they do no error handling, don't include debhelper snippets
  • z-push upstream update
  • do not run as UID 0 (problematic for zarafa-search, otherwise it is configurable in the config files)
  • zarafa-common: kill it with fire, no useful parts
  • Adding mechanism to not conflict with packages from upstream

Done

  • (./) import upstream version 7.2.0

  • (./) switch to debhelper

  • (./) Use dbconfig-common/Debconf to generate the initial configuration

    • database name
    • database user
    • database login
  • zarafa-client:
    • (./) Rename zarafa-client to libzarafa-client0 since it contains no client programs

    • (./) make libzarafaclient a proper versioned shared lib (or a private one)

  • (./) Adding some basic autopkgtests

WebApp

ToDo

  • Support more web server configurations (currently only Apache2)
  • Lintian is complaining about
    • tinymce (TinyMCE currently overridden as Debian version is to old)

  • Adding mechanism to not conflict with packages from upstream

Done

The origin of this list is provided by GuidoGünther in https://honk.sigxcpu.org/piki/agx/publications/2011-06-debian-groupware-zs.pdf.

There was also a talk given on the Zarafa Tour 2015 in Hannover (in german)Talk-Hannover-ZarafaTour2015.pdf.

Using KVM for testing

You probably wont use your current system to test the zarafa packages and that's a good idea so far. KVM is a good alternative for testing because it's supporting snapshot mechanism for easy using and resetting of installations.

Installing needed KVM components

Installation is easy as it's simply a one liner.

$ sudo apt-get install qemu-kvm libvirt-bin bridge-utils virt-manager virtinst

Further preparations

After this ensure you are a member of the group 'libvirt'

$ sudo usermod -aG libvirt [YOUR_USERNAME]

The virtual network adapter inside the libvirt environment is disabled per default so before to continue start it.

$ virsh -c qemu:///system net-autostart default
$ virsh -c qemu:///system net-start default

The next calls maybe not really needed, but on the other hand it's no problem if the storage pools already up, so just to throw possible issues away.

$ virsh -c qemu:///system pool-start default
$ virsh -c qemu:///system pool-start boot-scratch

Installation of a virtual image

After the finishing of the preparation from above you can install a first image. The installation can be as known done fully automated by a preseed file, Guido has prepared file preseed.cfg. Download the file for example to the 'Downloads' folder within your home directory.

$ wget -P $HOME/Downloads http://honk.sigxcpu.org/projects/libvirt/preseed/preseed.cfg

Next you can set up a install, for example based on the Jessie release amd64 and named unstable-amd64-zarafa.

$ RELEASE=unstable
$ NAME=zarafa
$ DIST=amd64
$ virt-install --connect=qemu:///system \
               --location="http://ftp.us.debian.org/debian/dists/$RELEASE/main/installer-$DIST" \
               --initrd-inject=$HOME/Downloads/preseed.cfg \
               --extra-args="auto" \
               --name $RELEASE-$DIST-$NAME --ram=512 \
               --disk=pool=default,size=10,format=qcow2,bus=virtio

This will install a image named 'unstable-amd64-zarafa.qcow2' with a size of 10GB under /var/lib/libvirt/images/. After the install the image will boot automatically.

Usage of KVM images

to fill out