Subversion Repositories ALCASAR

Rev

Rev 3273 | 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
 
3258 rexy 10
This howto explains how to build RPM of these programs in order to keep the distribution clean (no binary installed if not packaged)
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)
3283 rexy 48
- test the module : go to the directory of sources and try to load it (insmod ./ipt_NETFLOW.ko), look at "journalctrl -f" to check that the module is correctly loaded).
49
exemple :
50
mai 15 01:13:55 alcasar.lan kernel: ipt_NETFLOW: loading out-of-tree module taints kernel.
51
mai 15 01:13:55 alcasar.lan kernel: ipt_NETFLOW version 2.6, srcversion 9B0006338FF61FE7DC5507D
52
mai 15 01:13:55 alcasar.lan kernel: ipt_NETFLOW: hashsize 498011 (3890K)
53
mai 15 01:13:55 alcasar.lan kernel: netflow: registering: /proc/net/stat/ipt_netflow
54
mai 15 01:13:55 alcasar.lan kernel: netflow: registered: /proc/net/stat/ipt_netflow
55
mai 15 01:13:55 alcasar.lan kernel: netflow: registering: /proc/net/stat/ipt_netflow_snmp
56
mai 15 01:13:55 alcasar.lan kernel: netflow: registered: /proc/net/stat/ipt_netflow_snmp
57
mai 15 01:13:55 alcasar.lan kernel: netflow: registering: /proc/net/stat/ipt_netflow_flows
58
mai 15 01:13:55 alcasar.lan kernel: netflow: registered: /proc/net/stat/ipt_netflow_flows
59
mai 15 01:13:55 alcasar.lan kernel: netflow: registered: sysctl net.netflow
60
mai 15 01:13:55 alcasar.lan kernel: ipt_NETFLOW: added destination 127.0.0.1:2055
61
mai 15 01:13:55 alcasar.lan kernel: ipt_NETFLOW protocol version 5 (NetFlow) enabled.
62
mai 15 01:13:55 alcasar.lan kernel: ipt_NETFLOW is loaded.
63
mai 15 01:14:06 alcasar.lan systemd[1]: systemd-hostnamed.service: Deactivated successfully.
64
 
3147 rexy 65
- Run "alcasar-iptables.sh" to reload netfilter rules (no errors should appear). Run "alcasar-daemon.sh" to verify that all is ok.
3283 rexy 66
- if all is ok, copy the tarball (ipt-netflow-x.y.tar.gz) in rpmbuild/SOURCES.
67
- Copy and adapt the .spec in rpmbuild/SPECS (change the versions of kernel, kernel source and Changelog).
2925 rexy 68
- Run "rpmbuild -bb ****.spec"
2562 rexy 69
- install the fresh rpm (urpmi) and load ALCASAR iptables rules (alcasar-iptables.sh). Great job ;-) 
2101 richard 70
 
3222 rexy 71
**** For wkhtmltopdf ****
2169 tom.houday 72
- 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.
73
- build with: rpmbuild -bb --clean wkhtmltopdf-%{version}-%{release}.spec
2427 tom.houday 74
 
2562 rexy 75
**** For nfdump ****
3273 rexy 76
- Download archive of the last stable version (https://github.com/phaag/nfdump) - Can't actually update to 1.7.6 due to rrd version (V1.7.2 --> 1.9)
3258 rexy 77
- install lib64rrdtool-devel, bison, flex (urpmi lib64rrdtool-devel bison flex)
3203 rexy 78
- Copy & adapt .spec
79
- rpmbuild -bb ***.spec
2757 rexy 80
 
81
**** For gammu --> only if new version is needed
3203 rexy 82
- see .spec in SRPMS and adapt it. copy 69-gammu-acl.rules in SOURCES with the tarball
3269 rexy 83
- install cmake, doxygen, gettext-devel, mariadb-devel (lib64mariadb-devel), lib64bluez-devel, lib64gudev1.0-devel, lib64curl-devel, postgresql15-devel, lib64usb1.0-devel