Building and maintaining a contrib Zentyal module
If you want to build one of the former Zentyal modules that have been moved to contrib, the first step would be to clone the Zentyal repository
git clone https://github.com/Zentyal/zentyal.git
You will notice there is a directory contrib directly under the main repo directory, where you have the source code of the modules that have been (or will be) moved away from official support.
Let's assume in this example that you want to build the ftp module for Zentyal Server 3.5
You will need to install the package zbuildtools in your host, adding the following line to /etc/apt/sources.list
deb http://archive.zentyal.org/zentyal 3.5 main extra
# apt-get update # apt-get install zbuildtools build-essential fakeroot
Move to the specific module that you want to build and run
FTP still depends on zentyal-users, you can check the enable dependencies in the contrib/ftp/schemas/ftp.yaml file. From Zentyal 3.5 on, all the users and LDAP services required for the other services are managed by Samba4, so we replace the enabledepends list to look like this
contrib/ftp/schemas$ cat ftp.yaml class: 'EBox::FTP' enabledepends: - samba models: - Options
If the module was built without any issues, you will find the package under debs-ppa
/zentyal/contrib/ftp/debs-ppa$ ls Packages.gz zentyal-ftp_3.5_all.deb zentyal-ftp_3.5.dsc Sources.gz zentyal-ftp_3.5_amd64.changes zentyal-ftp_3.5.tar.gz
You can now copy the resulting .deb file to your Zentyal machine
contrib/ftp/debs-ppa$ scp zentyal-ftp_3.5_all.deb firstname.lastname@example.org:
Now you can just install the .deb file in your Zentyal Server, it will probably have extra dependencies requiring additional software to be installed, you can just run sudo apt-get -f install to install those dependencies
root@zentyal:~# dpkg -i zentyal-ftp_3.5_all.deb Selecting previously unselected package zentyal-ftp. (Reading database ... 122755 files and directories currently installed.) Preparing to unpack zentyal-ftp_3.5_all.deb ... Unpacking zentyal-ftp (3.5) ... dpkg: dependency problems prevent configuration of zentyal-ftp: zentyal-ftp depends on vsftpd (>= 2.3.5-1ubuntu2ppa1); however: Package vsftpd is not installed. dpkg: error processing package zentyal-ftp (--install): dependency problems - leaving unconfigured Errors were encountered while processing: zentyal-ftp root@zentyal:~# apt-get -f install ... Setting up zentyal-ftp (3.5) ... Processing triggers for zentyal-core (3.5.2) ... * Restarting Zentyal module: haproxy [ OK ] * Restarting Zentyal module: webadmin [ OK ] * Restarting Zentyal module: logs [ OK ] * Restarting Zentyal module: events [ OK ] root@zentyal:~#
You should be able to see and enable the FTP module from the Zentyal web interface now.
Creating a local repository
Another possibility is to gather all your custom .deb files in a local repository. This way you won't need to run apt-get -f install to fix dependencies and the extra Zentyal components will appear directly on the Zentyal modules list of the interface.
Let's assume that you have a directory containing you .deb files
root@zentyal:/var/www/zentyal-contrib# ls zentyal-ftp_3.5_all.deb zentyal-pptp_3.0.2_all.deb
This directory is reachable through a webserver, this way it's easier to provide the modules to several machines. Inside this directory, run
# apt-ftparchive packages .|gzip > Packages.gz
And you will see a new file Packages.gz containing the package list for this repository. Now you just need to add the following line in the /etc/apt/sources.list of the Zentyal host
deb http://localhost/zentyal-contrib ./
Replace localhost with the IP or FQDN if you are accessing remotely. Now you just need to apt-get update and the zentyal packages will show up in the interface.
Maintaining a module
If there are active contributors and interest in maintaining an specific module, we will be glad to provide separate Git repositories, package repositories or any other required development resource.
To know more about Zentyal development, check Zentyal's Development documentation
There are several mailing list and channels to contact other members of the community and Zentyal staff detailed here: