Subversion Repositories ALCASAR

Rev

Rev 2728 | Rev 2741 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
1939 richard 1
By Rexy
2
 
3
ALCASAR need the following programs that don't be included as RPM in Mageia :
2520 rexy 4
  - coovachilli (the captive portal)
5
  - havp (http antivirus proxy)
6
  - ipt_netflow kernel module (netflow log system)
7
  - wkhtmltopdf (html to pdf renderer)
8
  - nfdump (collector & processor for netflow data)
1939 richard 9
 
10
This howto explains how to build RPM of these programs in order to keep the distribution clean
11
 
12
****  Prepare the RPM creation structure ***
2520 rexy 13
- upadate your system : urpmi --auto-update
1939 richard 14
- install the following RPMs "kernel-userspace-headers", "rpm-build", "gengetopt", "libtool" packages
15
- create directories structure in your home : mkdir -p ~/rpmbuild/{SRPMS,SOURCES,SPECS,tmp}
16
- Option : find the ".rpmmacros" file on mageia wiki (https://wiki.mageia.org/en/Packagers_RPM_tutorial) and copy it in your home directory
17
 
2562 rexy 18
****  For Coova-chilli   *****
1939 richard 19
- retrieve the last tarball of coova-chilli (or the svn archive).
2245 richard 20
- Untar it and test the compilation process ("sh ./bootstrap", "./configure --enable-json --enable-libjson --enable-mdns", "make", "make install").
1939 richard 21
- all is in the /usr/local". Remove the instaled files ("make uninstall") and the binaries ("make clean").
2245 richard 22
- rename the directory and compress it (ie : tar -cvzf coova-chilli-1.4.tar.gz coova-chilli-1.4). Copy this tarball in the directory ~/rpmbuild/SOURCES/.
1939 richard 23
- copy the SPEC file from the ALCASAR archive to the directory ~/rpmbuild/SPEC
2245 richard 24
- change to the directory ~/pmbuild/SPEC and run the RPM build process excluding 'ssl' : "rpmbuild -bb coova-chilli.spec" (or rpmbuild -ba to create also the SRPMS) 
1939 richard 25
 
26
INFO : .spec modifications since Redhat RPM :
2562 rexy 27
	- add this 1st line : "%define _disable_ld_no_undefined 1" to avoid errors for unused variables
28
	- for 64b version, add 2 lines with "lib64" directory on the section removing statics binaries (rm -rf $RPM_BUILD_ROOT/usr/lib/*.la)
2656 rexy 29
	- remove from the archive the unuused files for ALCASAR (wpad.dat, wwwdir, etc. via la directive '%exclude')
30
	- change %make (deprecated) with %make_build and change %makeinstall (deprecated) with %make_install 
1939 richard 31
 
2562 rexy 32
**** For HAVP ****
1939 richard 33
- install the RPM of clamav-devel
34
- download, uncompress, and test the compilation of the last version of havp (./configure + make)
35
- copy the tarball in ~/rpmbuild/SOURCES/. copy the patch file ("havp-init.diff") in ~/rpmbuil/SOURCE. Copy and adapt the .spec in ~/rpmbuid/SPEC
36
- rpmbuild -dd ***.spec
37
 
2562 rexy 38
****  For ipt_netflow  ****
39
- Must be complied on a system which runs the target kernel. So install manually the targeted kernel and reboot (ipt_NETFLOW will not load during this reboot) 
40
- install the RPMs "kernel-server-devel" (choose the targeted kernel), "lib64iptables-devel (or libiptables-devel in 32b arch)"
2730 rexy 41
- download, uncompress and test the compilation of the last version of ipt-netflow (./configure --disable-dkms --disable-snmp-agent, make all install). The module is compiled in the same directory. The libs are copied in the /lib64/iptables (libip6t_NETFLOW.so & libipt_NETFLOW.so)
42
- test the module : go to the directory of sources and try to load it (depmod + modprobe ipt_NETFLOW), look at "journalctrl -f" and run "lsmod|grep ipt_NETFLOW" to verify if it's loaded. Run "alcasar-iptables.sh" to reload netfilter rules (no errors should appear). Run "alcasar-daemon.sh" to verify that all is ok.
2682 rexy 43
- if all is ok, copy the tarball in rpmbuild/SOURCES. Copy and adapt the .spec in rpmbuild/SPECS (change the versions of kernel and rpm).
2520 rexy 44
- change to the directory ~/pmbuild/SPEC and run "rpmbuild -bb ****.spec"
2728 rexy 45
	--> !!! Pb : rpmbuild ne réalise pas le "make install" correctement (pas de copie du module compilé "~/rpmbuild/BUILD/ipt_NETFLOW.ko" vers /lib/modules/kernel-.../extra/ipt_NETFLOW.ko). Solutions : lancez la compil à la main (make + make install) depuis le répertoire ~/rpmbuild/BUILD
2562 rexy 46
- install the fresh rpm (urpmi) and load ALCASAR iptables rules (alcasar-iptables.sh). Great job ;-) 
2101 richard 47
 
2562 rexy 48
**** For wkhtmltopdf ****
2169 tom.houday 49
- download the archive of the binaries of the last version (https://wkhtmltopdf.org/downloads.html) in ~/rpmbuild/SOURCES/wkhtmltox-%{version}_linux-generic-amd64.tar.xz.
50
- build with: rpmbuild -bb --clean wkhtmltopdf-%{version}-%{release}.spec
2427 tom.houday 51
 
2562 rexy 52
**** For nfdump ****
2427 tom.houday 53
- install lib64rrdtool-devel, bison, flex