Subversion Repositories ALCASAR

Rev

Rev 2743 | Rev 2775 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2743 Rev 2757
1
By Rexy
1
By Rexy
2
 
2
 
3
ALCASAR need the following programs that don't be included as RPM in Mageia :
3
ALCASAR need the following programs that don't be included as RPM in Mageia :
4
  - coovachilli (the captive portal)
4
  - coovachilli (the captive portal)
5
  - havp (http antivirus proxy)
5
  - havp (http antivirus proxy)
6
  - ipt_netflow kernel module (netflow log system)
6
  - ipt_netflow kernel module (netflow log system)
7
  - wkhtmltopdf (html to pdf renderer)
7
  - wkhtmltopdf (html to pdf renderer)
8
  - nfdump (collector & processor for netflow data)
8
  - nfdump (collector & processor for netflow data)
9
 
9
 
10
This howto explains how to build RPM of these programs in order to keep the distribution clean
10
This howto explains how to build RPM of these programs in order to keep the distribution clean
11
 
11
 
12
****  Prepare the RPM creation structure ***
12
****  Prepare the RPM creation structure ***
13
- upadate your system : urpmi --auto-update
13
- upadate your system : urpmi --auto-update
14
- install the following RPMs "kernel-userspace-headers", "rpm-build", "gengetopt", "libtool" packages
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}
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
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
 
17
 
18
****  For Coova-chilli   *****
18
****  For Coova-chilli   *****
19
- retrieve the last tarball of coova-chilli (or the svn archive).
19
- retrieve the last tarball of coova-chilli (or the svn archive).
20
- Untar it and test the compilation process ("sh ./bootstrap", "./configure --enable-json --enable-libjson --enable-mdns", "make", "make install").
20
- Untar it and test the compilation process ("sh ./bootstrap", "./configure --enable-json --enable-libjson --enable-mdns", "make", "make install").
21
- all is in the /usr/local". Remove the instaled files ("make uninstall") and the binaries ("make clean").
21
- all is in the /usr/local". Remove the instaled files ("make uninstall") and the binaries ("make clean").
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/.
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/.
23
- copy the SPEC file from the ALCASAR archive to the directory ~/rpmbuild/SPEC
23
- copy the SPEC file from the ALCASAR archive to the directory ~/rpmbuild/SPEC
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) 
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) 
25
 
25
 
26
INFO : .spec modifications since Redhat RPM :
26
INFO : .spec modifications since Redhat RPM :
27
	- add this 1st line : "%define _disable_ld_no_undefined 1" to avoid errors for unused variables
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)
28
	- for 64b version, add 2 lines with "lib64" directory on the section removing statics binaries (rm -rf $RPM_BUILD_ROOT/usr/lib/*.la)
29
	- remove from the archive the unuused files for ALCASAR (wpad.dat, wwwdir, etc. via la directive '%exclude')
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 
30
	- change %make (deprecated) with %make_build and change %makeinstall (deprecated) with %make_install 
31
 
31
 
32
**** For HAVP ****
32
**** For HAVP ****
33
- install the RPM of clamav-devel
33
- install the RPM of clamav-devel
34
- download, uncompress, and test the compilation of the last version of havp (./configure + make)
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
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 -bb ***.spec
36
- rpmbuild -bb ***.spec
37
 
37
 
38
****  For ipt_netflow  ****
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) 
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)"
40
- install the RPMs "kernel-server-devel" (choose the targeted kernel), "lib64iptables-devel (or libiptables-devel in 32b arch)"
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)
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.
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.
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).
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).
44
- change to the directory ~/pmbuild/SPEC and run "rpmbuild -bb ****.spec"
44
- change to the directory ~/pmbuild/SPEC and run "rpmbuild -bb ****.spec"
45
- install the fresh rpm (urpmi) and load ALCASAR iptables rules (alcasar-iptables.sh). Great job ;-) 
45
- install the fresh rpm (urpmi) and load ALCASAR iptables rules (alcasar-iptables.sh). Great job ;-) 
46
 
46
 
47
**** For wkhtmltopdf ****
47
**** For wkhtmltopdf --> no longer need (included in Mageia7) ****
48
- 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.
48
- 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.
49
- build with: rpmbuild -bb --clean wkhtmltopdf-%{version}-%{release}.spec
49
- build with: rpmbuild -bb --clean wkhtmltopdf-%{version}-%{release}.spec
50
 
50
 
51
**** For nfdump ****
51
**** For nfdump ****
52
- install lib64rrdtool-devel, bison, flex
52
- install lib64rrdtool-devel, bison, flex
-
 
53
 
53
**** For gammu (if new version needed)
54
**** For gammu --> only if new version is needed
54
- see .spec or SRPMS and adapt. !! long time compilation
55
- see .spec or SRPMS and adapt. !! long time compilation
55
 
56