File: INSTALL.rst

package info (click to toggle)
xtables-addons 3.30-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,588 kB
  • sloc: ansic: 11,712; sh: 5,151; perl: 643; makefile: 153; python: 15
file content (127 lines) | stat: -rw-r--r-- 3,870 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Installation instructions for Xtables-addons
============================================

Xtables-addons uses the well-known configure(autotools) infrastructure
in combination with the kernel's Kbuild system.

.. code-block:: sh

	$ ./configure
	$ make
	# make install


Supported configurations for this release
=========================================

* iptables >= 1.6.0

* kernel-devel >= 5.4
  with prepared build/output directory

  * ``CONFIG_NF_CONNTRACK``

  * ``CONFIG_NF_CONNTRACK_MARK`` enabled =y or as module (=m)

  * ``CONFIG_CONNECTOR`` y/m if you wish to receive userspace
    notifications from pknock through netlink/connector (if not, edit the
    ``mconfig`` file in Xtables-addons to exclude pknock)

  * ``CONFIG_TEXTSEARCH_BM`` y/m if you wish to use xt_ipp2p (if not, edit the
    ``mconfig`` file in Xtables-addons to exclude ipp2p)

(Use xtables-addons-1.x if you need support for Linux < 3.7.
Use xtables-addons-2.x if you need support for Linux < 4.15.
Use xtables-addons<3.19 if you need support for Linux <=4.16.)
Note: xtables-addons regularly fails to build with patched-to-death
kernels like on RHEL or SLES because the API does not match
LINUX_KERNEL_VERSION anymore.


Selecting extensions
====================

You can edit the ``mconfig`` file to select what modules to build and
install. By default, all modules are enabled.


Configuring and compiling
=========================

.. code-block:: sh

	./configure [options]

``--without-kbuild``
	Deactivate building kernel modules, and just do userspace parts.

``--with-kbuild=``
	Specifies the path to the kernel build output directory. We need
	it for building the kernel extensions. It defaults to
	``/lib/modules/$(running version)/build``, which usually points to
	the right directory. (If not, you need to install something.)

	For RPM building, it should be ``/usr/src/linux-obj/...``
	or whatever location the distribution makes use of.

``--with-xtlibdir=``
	Specifies the path to where the newly built extensions should
	be installed when ``make install`` is run. The default is to
	use the same path that Xtables/iptables modules use, as
	determined by ``pkg-config xtables --variable xtlibdir``.
	Thus, this option normally does *not* need to be specified
	anymore, even if your distribution put modules in a strange
	location.

If you want to enable debugging, use

.. code-block:: sh

	./configure CFLAGS="-ggdb3 -O0"

(``-O0`` is used to turn off instruction reordering, which makes debugging
much easier.)

To make use of a libxtables that is not in the default path, either

a) append the location of the pkg-config files like:

   .. code-block:: sh

   	PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

   (Assuming that files have been installed), or,

b) override the pkg-config variables, for example:

   .. code-block:: sh

   	./configure libxtables_CFLAGS="-I../iptables/include" \
   	libxtables_LIBS="-L../iptables/.libs \
   	-Wl,-rpath,../iptables/.libs -lxtables"

   (Use this in case you wish to use it without having to
   run ``make install``. This is because the ``libxtables.pc`` pkgconfig
   file in ../iptables would already point to e.g. ``/usr/local``.)


Build-time options
==================

``V=``
	This variable controls the verbosity of make commands:

	* ``V=0``: "silent" (output filename)

	* ``V=1``: "verbose" (entire gcc command line)


Note to distribution packagers
==============================

Except for ``--with-kbuild``, distributions should not have a need to
supply any other flags (besides ``--prefix=/usr`` and perhaps
``--libdir=/usr/lib64``, etc.) to configure when all prerequired packages
are installed. If *iptables-devel* is installed, necessary headers should
already be in ``/usr/include``, so that overriding ``PKG_CONFIG_PATH``,
``libxtables_CFLAGS`` and ``libxtables_LIBS`` variables should not be needed.