Monthly Archives: ottobre 2015

Building Courier RPMs

Today we will create rpm packages for the installation of a mail server (IMAP pop3) .Our reference software is Courier, available as a source to the following link.La creation rpm package is required when you want to use same packages to other servers (or a few) .I went to use the latest available release that works perfectly with the systemd.Ho Centos7 used as the operating system then make sure you have the necessary packages for costrire the rpms, an extract of files spec

courier-authlib:

courier-authlib

courier:

courier

courier-authlib and courier-imap are written in C++, which means you need to make sure the C++ compiler and the standard C++ library for your system are installed. The packages will have names like “gcc-c++” and “libstdc++-devel”. You will also need the “rpm-build” package as well. Run the following command to facilitate the installation of the required packages:

yum install rpm-build.x86_64 perl-CGI-Session.noarch gamin.x86_64 libtool openldap-devel mysql-devel zlib-devel sqlite-devel postgresql-devel gdbm-devel pam-devel expect gcc gcc-c++ libtool-ltdl-devel.x86_64 perl-Digest-MD5.x86_64 netpbm-progs mgetty-sendfax groff openssl-perl libidn-devel gamin-devel.x86_64 perl-ExtUtils-Embed.noarch mailcap.noarch

Download the source code for the current Courierauthlib and Courier from the official download page. I also downloaded the package courier-unicode, because required in compiling authlib and courier-maildrop.If you have not already done so, configure your home directory so that you can build RPM files without needing root privileges. This involves two steps: Create a directory structure RPMs in your home directory.

mkdir -m 755 rpm
mkdir -m 755 rpm/BUILD
mkdir -m 755 rpm/RPMS
mkdir -m 755 rpm/SOURCES
mkdir -m 755 rpm/SPECS
mkdir -m 755 rpm/SRPMS

Create a .rpmmacros file in your home directory which contains a pointer to the directory structure you just created. I use a second line which marks any RPM packages I build with my own name and email address- while not strictly required, it is a good idea. My file looks like this:

%_topdir /home/thomasmilian/rpm
%packager thomasmilian <postmaster@prometheusproject.it>

The next step will be to create rpm packages.

rpmbuild -ta courier-unicode-1.4.tar.bz2
rpmbuild -ta courier-authlib-0.66.3.tar.bz2
rpmbuild -ta courier-0.75.0.20150809.tar.bz2
rpmbuild -ta maildrop-2.8.3.20150809.tar.bz2

in path /home/”user-name”/rpm/RPMS/x86_64/

pacchetti
End

Creazione di pacchetti RPM per Courier

Oggi andremo a creare dei pacchetti rpm per l’installazione di un server di posta (imap – pop3).Il nostro software di riferimento è Courier, reperibile come sorgente al seguente link.La creazione di pacchetti rpm è necessaria al momento si voglia utilizzare gli stessi pacchetti per altri server (o solo alcuni).Sono andato ad utilizzare l’ultima release disponibile che funziona perfettamente con il systemd.Ho utilizzato Centos7 come sistema operativo successivamente assicurarsi di avere i pacchetti necessari per costrire gli rpms;di seguito un estratto del files di spec di courier-authlib:

courier-authlib

requisiti courier-authlib

di courier:

courier

requisiti courier

Courier-authlib e courier-imap sono scritti in C ++, il che significa che è necessario assicurarsi che il compilatore C ++ e la libreria standard C ++ per il sistema siano installati. I pacchetti avranno nomi come “gcc-c ++” e “libstdc ++ – devel”. Sarà inoltre necessario il pacchetto “rpm-build”.Se si prevede di costruire corriere-authlib con il supporto per vpopmail, è necessario installare sia Qmail e vpopmail prima di procedere.

Eseguire il comando seguente per facilitare l’installazione dei pacchetti richiesti:

yum install rpm-build.x86_64 perl-CGI-Session.noarch gamin.x86_64 libtool openldap-devel mysql-devel zlib-devel sqlite-devel postgresql-devel gdbm-devel pam-devel expect gcc gcc-c++ libtool-ltdl-devel.x86_64 perl-Digest-MD5.x86_64 netpbm-progs mgetty-sendfax groff openssl-perl libidn-devel gamin-devel.x86_64 perl-ExtUtils-Embed.noarch mailcap.noarch

Scarica il codice sorgente corrente per Courier-authlib e Courier dalla pagina ufficiale di download. Ho scaricato anche il pacchetto courier-unicode, perchè richiesto nella compilazione di courier-authlib e maildrop.
Se non l’hai già fatto, configurare la propria directory home in modo che si possano costruire i file RPM senza aver bisogno dei privilegi di root. Ciò comporta due fasi:

Creare una struttura di directory RPM nella propria home directory.

mkdir -m 755 rpm
mkdir -m 755 rpm/BUILD
mkdir -m 755 rpm/RPMS
mkdir -m 755 rpm/SOURCES
mkdir -m 755 rpm/SPECS
mkdir -m 755 rpm/SRPMS

Creare un file .rpmmacros nella propria home directory che contiene un puntatore alla struttura della directory appena creata. Io uso una seconda linea che segna tutti i pacchetti RPM che ho costruito con il mio nome e indirizzo email anche se non strettamente necessario. Il mio file è simile al seguente:

%_topdir /home/thomasmilian/rpm
%packager thomasmilian <postmaster@prometheusproject.it>

Il passo successiva sarà quello di creare i pacchetti rpm

rpmbuild -ta courier-unicode-1.4.tar.bz2
rpmbuild -ta courier-authlib-0.66.3.tar.bz2
rpmbuild -ta courier-0.75.0.20150809.tar.bz2
rpmbuild -ta maildrop-2.8.3.20150809.tar.bz2

che saranno disponibili nel path /home/”user-name”/rpm/RPMS/x86_64/

pacchetti

Fine