Subversion Repositories ALCASAR

Rev

Rev 3203 | 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
  - ipt_netflow kernel module (netflow log system)
6
  - wkhtmltopdf (html to pdf renderer)
7
  - nfdump (collector & processor for netflow data)
3147 rexy 8
  - havp (http antivirus proxy) used only before ALCASAR V3.5
1939 richard 9
 
10
This howto explains how to build RPM of these programs in order to keep the distribution clean
2821 rexy 11
The compilation options are set in /etc/rpm/macro.d/*
2990 rexy 12
The .spec & RPM can be test with the tool "rpmlint"
1939 richard 13
 
14
****  Prepare the RPM creation structure ***
3147 rexy 15
- update your system : urpmi --auto-update
2925 rexy 16
- install the following RPMs : urpmi kernel-userspace-headers rpm-build gengetopt libtool
1939 richard 17
- create directories structure in your home : mkdir -p ~/rpmbuild/{SRPMS,SOURCES,SPECS,tmp}
18
- Option : find the ".rpmmacros" file on mageia wiki (https://wiki.mageia.org/en/Packagers_RPM_tutorial) and copy it in your home directory
19
 
2562 rexy 20
****  For Coova-chilli   *****
2821 rexy 21
- install the following RPMs "lib64openssl-devel", "lib64json-c-devel"
3088 rexy 22
- retrieve the last git archive of coova-chilli (https://github.com/coova/coova-chilli).
23
- Unzip it and test the compilation process ("sh ./bootstrap", "./configure --disable-static --enable-shared --enable-largelimits --enable-chilliredir --enable-chilliscript --with-poll --enable-dhcpopt --enable-libjson --enable-json 	--enable-mdns --with-openssl", "make", "make install").
1939 richard 24
- all is in the /usr/local". Remove the instaled files ("make uninstall") and the binaries ("make clean").
3207 rexy 25
- rename the directory (coova-chilli-1.x) and compress it (ie : tar -cvzf coova-chilli-1.x.tar.gz coova-chilli-1.x). Copy this tarball in the directory ~/rpmbuild/SOURCES/.
1939 richard 26
- copy the SPEC file from the ALCASAR archive to the directory ~/rpmbuild/SPEC
3088 rexy 27
- copy the .patch and SHA256* files in the directory ~/rpmbuild/SOURCES
28
//- Add the option -Wno-format-truncation à la ligne "%Werror_cflags" du fichier /etc/rpm/macro.d/20build.macros (avoid the following warning : https://github.com/coova/coova-chilli/issues/509) 
2775 rexy 29
- change to the directory ~/pmbuild/SPEC and run the RPM build process : "rpmbuild -bb coova-chilli.spec" (or rpmbuild -ba to create also the SRPMS) 
1939 richard 30
 
2821 rexy 31
INFO : .spec tunning :
32
	- add this 1st line : "%define _disable_ld_no_undefined 1" to avoid errors for unused references (ld)
33
	- add the line "automake --add-missing" before "make"
3088 rexy 34
	- for 64b version, add 2 lines with "lib64" directory in the section "removing statics binaries" (rm -rf $RPM_BUILD_ROOT/usr/lib/*.la)
35
	- remove from the archive the unused files for ALCASAR (wpad.dat, wwwdir, etc.) via la directive '%exclude'
2775 rexy 36
	- change %make (deprecated) with %make_build and change %makeinstall (deprecated) with %make_install
1939 richard 37
 
2562 rexy 38
**** For HAVP ****
1939 richard 39
- install the RPM of clamav-devel
40
- download, uncompress, and test the compilation of the last version of havp (./configure + make)
41
- copy the tarball in ~/rpmbuild/SOURCES/. copy the patch file ("havp-init.diff") in ~/rpmbuil/SOURCE. Copy and adapt the .spec in ~/rpmbuid/SPEC
2741 rexy 42
- rpmbuild -bb ***.spec
1939 richard 43
 
2562 rexy 44
****  For ipt_netflow  ****
2968 rexy 45
- Must be complied on a system which runs the target kernel. So install manually the targeted kernel and the same version of kernel-userspace-headers and reboot (ipt_NETFLOW will not load during this reboot) 
46
- install the RPMs "kernel-server-devel" (choose the targeted kernel), "lib64iptables-devel"
3147 rexy 47
- 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 (ipt_NETFLOW.ko). The libs are copied in the /lib64/iptables (libip6t_NETFLOW.so & libipt_NETFLOW.so)
48
- test the module : go to the directory of sources and try to load it (insmod ./ipt_NETFLOW.ko), look at "journalctrl -f" to verify that the module is corectly loaded).
49
- Run "alcasar-iptables.sh" to reload netfilter rules (no errors should appear). Run "alcasar-daemon.sh" to verify that all is ok.
2925 rexy 50
- if all is ok, copy the tarball in rpmbuild/SOURCES.
3103 rexy 51
- Copy and adapt the .spec in rpmbuild/SPECS (change the versions of kernel, kernel source and rpm).
2925 rexy 52
- Run "rpmbuild -bb ****.spec"
2562 rexy 53
- install the fresh rpm (urpmi) and load ALCASAR iptables rules (alcasar-iptables.sh). Great job ;-) 
2101 richard 54
 
2757 rexy 55
**** For wkhtmltopdf --> no longer need (included in Mageia7) ****
2169 tom.houday 56
- 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.
57
- build with: rpmbuild -bb --clean wkhtmltopdf-%{version}-%{release}.spec
2427 tom.houday 58
 
2562 rexy 59
**** For nfdump ****
3079 rexy 60
- Download archive of the last stable version (https://github.com/phaag/nfdump)
2427 tom.houday 61
- install lib64rrdtool-devel, bison, flex
3203 rexy 62
- Copy & adapt .spec
63
- rpmbuild -bb ***.spec
2757 rexy 64
 
65
**** For gammu --> only if new version is needed
3203 rexy 66
- see .spec in SRPMS and adapt it. copy 69-gammu-acl.rules in SOURCES with the tarball
67
- install cmake, doxygen, gettext-devel, mysql-devel (lib64mariadb-devel), lib64bluez-devel, lib64gudev1.0-devel, lib64curl-devel, postgresql15-devel, lib64usb1.0-devel