Makefile 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764
  1. #
  2. # Copyright (C) 2006-2016 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. include $(INCLUDE_DIR)/kernel.mk
  9. PKG_NAME:=iptables
  10. PKG_VERSION:=1.8.10
  11. PKG_RELEASE:=1
  12. PKG_SOURCE_URL:=https://netfilter.org/projects/iptables/files
  13. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
  14. PKG_HASH:=5cc255c189356e317d070755ce9371eb63a1b783c34498fb8c30264f3cc59c9c
  15. PKG_FIXUP:=autoreconf
  16. PKG_FLAGS:=nonshared
  17. PKG_INSTALL:=1
  18. PKG_BUILD_FLAGS:=gc-sections no-lto
  19. PKG_BUILD_PARALLEL:=1
  20. PKG_LICENSE:=GPL-2.0
  21. PKG_CPE_ID:=cpe:/a:netfilter:iptables
  22. include $(INCLUDE_DIR)/package.mk
  23. ifeq ($(DUMP),)
  24. -include $(LINUX_DIR)/.config
  25. include $(INCLUDE_DIR)/netfilter.mk
  26. STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell grep 'NETFILTER' $(LINUX_DIR)/.config | $(MKHASH) md5)
  27. endif
  28. define Package/iptables/Default
  29. SECTION:=net
  30. CATEGORY:=Network
  31. SUBMENU:=Firewall
  32. URL:=https://netfilter.org/
  33. endef
  34. define Package/iptables/Module
  35. $(call Package/iptables/Default)
  36. DEPENDS:=+libxtables $(1)
  37. endef
  38. define Package/xtables-legacy
  39. $(call Package/iptables/Default)
  40. TITLE:=IP firewall administration tool
  41. DEPENDS+= +kmod-ipt-core +libip4tc +IPV6:libip6tc +libiptext +IPV6:libiptext6 +libxtables
  42. endef
  43. define Package/iptables-zz-legacy
  44. $(call Package/iptables/Default)
  45. TITLE:=IP firewall administration tool
  46. DEPENDS+= +xtables-legacy
  47. PROVIDES:=iptables iptables-legacy
  48. ALTERNATIVES:=\
  49. 200:/usr/sbin/iptables:/usr/sbin/xtables-legacy-multi \
  50. 200:/usr/sbin/iptables-restore:/usr/sbin/xtables-legacy-multi \
  51. 200:/usr/sbin/iptables-save:/usr/sbin/xtables-legacy-multi
  52. endef
  53. define Package/iptables-zz-legacy/description
  54. IP firewall administration tool.
  55. Matches:
  56. - icmp
  57. - tcp
  58. - udp
  59. - comment
  60. - conntrack
  61. - limit
  62. - mac
  63. - mark
  64. - multiport
  65. - set
  66. - state
  67. - time
  68. Targets:
  69. - ACCEPT
  70. - CT
  71. - DNAT
  72. - DROP
  73. - REJECT
  74. - FLOWOFFLOAD
  75. - LOG
  76. - MARK
  77. - MASQUERADE
  78. - REDIRECT
  79. - SET
  80. - SNAT
  81. - TCPMSS
  82. Tables:
  83. - filter
  84. - mangle
  85. - nat
  86. - raw
  87. endef
  88. define Package/xtables-nft
  89. $(call Package/iptables/Default)
  90. TITLE:=IP firewall administration tool nft
  91. DEPENDS:=+libnftnl +libiptext +IPV6:libiptext6 +libiptext-nft +kmod-nft-compat
  92. endef
  93. define Package/arptables-nft
  94. $(call Package/iptables/Default)
  95. DEPENDS:=+kmod-nft-arp +xtables-nft +kmod-arptables
  96. TITLE:=ARP firewall administration tool nft
  97. PROVIDES:=arptables
  98. ALTERNATIVES:=\
  99. 300:/usr/sbin/arptables:/usr/sbin/xtables-nft-multi \
  100. 300:/usr/sbin/arptables-restore:/usr/sbin/xtables-nft-multi \
  101. 300:/usr/sbin/arptables-save:/usr/sbin/xtables-nft-multi
  102. endef
  103. define Package/ebtables-nft
  104. $(call Package/iptables/Default)
  105. DEPENDS:=+kmod-nft-bridge +xtables-nft +kmod-ebtables
  106. TITLE:=Bridge firewall administration tool nft
  107. PROVIDES:=ebtables
  108. ALTERNATIVES:=\
  109. 300:/usr/sbin/ebtables:/usr/sbin/xtables-nft-multi \
  110. 300:/usr/sbin/ebtables-restore:/usr/sbin/xtables-nft-multi \
  111. 300:/usr/sbin/ebtables-save:/usr/sbin/xtables-nft-multi
  112. endef
  113. define Package/iptables-nft
  114. $(call Package/iptables/Default)
  115. TITLE:=IP firewall administration tool nft
  116. DEPENDS:=+kmod-ipt-core +xtables-nft
  117. PROVIDES:=iptables
  118. ALTERNATIVES:=\
  119. 300:/usr/sbin/iptables:/usr/sbin/xtables-nft-multi \
  120. 300:/usr/sbin/iptables-restore:/usr/sbin/xtables-nft-multi \
  121. 300:/usr/sbin/iptables-save:/usr/sbin/xtables-nft-multi
  122. endef
  123. define Package/iptables-nft/description
  124. Extra iptables nftables nft binaries.
  125. iptables-nft
  126. iptables-nft-restore
  127. iptables-nft-save
  128. iptables-translate
  129. iptables-restore-translate
  130. endef
  131. define Package/iptables-mod-conntrack-extra
  132. $(call Package/iptables/Module, +kmod-ipt-conntrack-extra)
  133. TITLE:=Extra connection tracking extensions
  134. endef
  135. define Package/iptables-mod-conntrack-extra/description
  136. Extra iptables extensions for connection tracking.
  137. Matches:
  138. - connbytes
  139. - connlimit
  140. - connmark
  141. - recent
  142. - helper
  143. Targets:
  144. - CONNMARK
  145. endef
  146. define Package/iptables-mod-conntrack-label
  147. $(call Package/iptables/Module, +kmod-ipt-conntrack-label @IPTABLES_CONNLABEL)
  148. TITLE:=Connection tracking labeling extension
  149. DEFAULT:=y if IPTABLES_CONNLABEL
  150. endef
  151. define Package/iptables-mod-conntrack-label/description
  152. Match and set label(s) on connection tracking entries
  153. Matches:
  154. - connlabel
  155. endef
  156. define Package/iptables-mod-filter
  157. $(call Package/iptables/Module, +kmod-ipt-filter)
  158. TITLE:=Content inspection extensions
  159. endef
  160. define Package/iptables-mod-filter/description
  161. iptables extensions for packet content inspection.
  162. Includes support for:
  163. Matches:
  164. - string
  165. - bpf
  166. endef
  167. define Package/iptables-mod-ipopt
  168. $(call Package/iptables/Module, +kmod-ipt-ipopt)
  169. TITLE:=IP/Packet option extensions
  170. endef
  171. define Package/iptables-mod-ipopt/description
  172. iptables extensions for matching/changing IP packet options.
  173. Matches:
  174. - dscp
  175. - ecn
  176. - length
  177. - statistic
  178. - tcpmss
  179. - unclean
  180. - hl
  181. Targets:
  182. - DSCP
  183. - CLASSIFY
  184. - ECN
  185. - HL
  186. endef
  187. define Package/iptables-mod-ipsec
  188. $(call Package/iptables/Module, +kmod-ipt-ipsec)
  189. TITLE:=IPsec extensions
  190. endef
  191. define Package/iptables-mod-ipsec/description
  192. iptables extensions for matching ipsec traffic.
  193. Matches:
  194. - ah
  195. - esp
  196. - policy
  197. endef
  198. define Package/iptables-mod-nat-extra
  199. $(call Package/iptables/Module, +kmod-ipt-nat-extra)
  200. TITLE:=Extra NAT extensions
  201. endef
  202. define Package/iptables-mod-nat-extra/description
  203. iptables extensions for extra NAT targets.
  204. Targets:
  205. - MIRROR
  206. - NETMAP
  207. endef
  208. define Package/iptables-mod-nflog
  209. $(call Package/iptables/Module, +kmod-nfnetlink-log +kmod-ipt-nflog)
  210. TITLE:=Netfilter NFLOG target
  211. endef
  212. define Package/iptables-mod-nflog/description
  213. iptables extension for user-space logging via NFNETLINK.
  214. Includes:
  215. - libxt_NFLOG
  216. endef
  217. define Package/iptables-mod-trace
  218. $(call Package/iptables/Module, +kmod-ipt-debug)
  219. TITLE:=Netfilter TRACE target
  220. endef
  221. define Package/iptables-mod-trace/description
  222. iptables extension for TRACE target
  223. Includes:
  224. - libxt_TRACE
  225. endef
  226. define Package/iptables-mod-nfqueue
  227. $(call Package/iptables/Module, +kmod-nfnetlink-queue +kmod-ipt-nfqueue)
  228. TITLE:=Netfilter NFQUEUE target
  229. endef
  230. define Package/iptables-mod-nfqueue/description
  231. iptables extension for user-space queuing via NFNETLINK.
  232. Includes:
  233. - libxt_NFQUEUE
  234. endef
  235. define Package/iptables-mod-hashlimit
  236. $(call Package/iptables/Module, +kmod-ipt-hashlimit)
  237. TITLE:=hashlimit matching
  238. endef
  239. define Package/iptables-mod-hashlimit/description
  240. iptables extensions for hashlimit matching
  241. Matches:
  242. - hashlimit
  243. endef
  244. define Package/iptables-mod-rpfilter
  245. $(call Package/iptables/Module, +kmod-ipt-rpfilter)
  246. TITLE:=rpfilter iptables extension
  247. endef
  248. define Package/iptables-mod-rpfilter/description
  249. iptables extensions for reverse path filter test on a packet
  250. Matches:
  251. - rpfilter
  252. endef
  253. define Package/iptables-mod-iprange
  254. $(call Package/iptables/Module, +kmod-ipt-iprange)
  255. TITLE:=IP range extension
  256. endef
  257. define Package/iptables-mod-iprange/description
  258. iptables extensions for matching ip ranges.
  259. Matches:
  260. - iprange
  261. endef
  262. define Package/iptables-mod-cluster
  263. $(call Package/iptables/Module, +kmod-ipt-cluster)
  264. TITLE:=Match cluster extension
  265. endef
  266. define Package/iptables-mod-cluster/description
  267. iptables extensions for matching cluster.
  268. Netfilter (IPv4/IPv6) module for matching cluster
  269. This option allows you to build work-load-sharing clusters of
  270. network servers/stateful firewalls without having a dedicated
  271. load-balancing router/server/switch. Basically, this match returns
  272. true when the packet must be handled by this cluster node. Thus,
  273. all nodes see all packets and this match decides which node handles
  274. what packets. The work-load sharing algorithm is based on source
  275. address hashing.
  276. This module is usable for ipv4 and ipv6.
  277. If you select it, it enables kmod-ipt-cluster.
  278. see `iptables -m cluster --help` for more information.
  279. endef
  280. define Package/iptables-mod-extra
  281. $(call Package/iptables/Module, +kmod-ipt-extra)
  282. TITLE:=Other extra iptables extensions
  283. endef
  284. define Package/iptables-mod-extra/description
  285. Other extra iptables extensions.
  286. Matches:
  287. - addrtype
  288. - condition
  289. - owner
  290. - pkttype
  291. - quota
  292. endef
  293. define Package/iptables-mod-physdev
  294. $(call Package/iptables/Module, +kmod-ipt-physdev)
  295. TITLE:=physdev iptables extension
  296. endef
  297. define Package/iptables-mod-physdev/description
  298. The iptables physdev match.
  299. endef
  300. define Package/iptables-mod-led
  301. $(call Package/iptables/Module, +kmod-ipt-led)
  302. TITLE:=LED trigger iptables extension
  303. endef
  304. define Package/iptables-mod-led/description
  305. iptables extension for triggering a LED.
  306. Targets:
  307. - LED
  308. endef
  309. define Package/iptables-mod-socket
  310. $(call Package/iptables/Module, +kmod-ipt-socket)
  311. TITLE:=Socket match iptables extensions
  312. endef
  313. define Package/iptables-mod-socket/description
  314. Socket match iptables extensions.
  315. Matches:
  316. - socket
  317. endef
  318. define Package/iptables-mod-tproxy
  319. $(call Package/iptables/Module, +kmod-ipt-tproxy)
  320. TITLE:=Transparent proxy iptables extensions
  321. endef
  322. define Package/iptables-mod-tproxy/description
  323. Transparent proxy iptables extensions.
  324. Targets:
  325. - TPROXY
  326. endef
  327. define Package/iptables-mod-tee
  328. $(call Package/iptables/Module, +kmod-ipt-tee)
  329. TITLE:=TEE iptables extensions
  330. endef
  331. define Package/iptables-mod-tee/description
  332. TEE iptables extensions.
  333. Targets:
  334. - TEE
  335. endef
  336. define Package/iptables-mod-u32
  337. $(call Package/iptables/Module, +kmod-ipt-u32)
  338. TITLE:=U32 iptables extensions
  339. endef
  340. define Package/iptables-mod-u32/description
  341. U32 iptables extensions.
  342. Matches:
  343. - u32
  344. endef
  345. define Package/iptables-mod-checksum
  346. $(call Package/iptables/Module, +kmod-ipt-checksum)
  347. TITLE:=IP CHECKSUM target extension
  348. endef
  349. define Package/iptables-mod-checksum/description
  350. iptables extension for the CHECKSUM calculation target
  351. endef
  352. define Package/ip6tables-zz-legacy
  353. $(call Package/iptables/Default)
  354. DEPENDS:=@IPV6 +kmod-ip6tables +xtables-legacy
  355. CATEGORY:=Network
  356. TITLE:=IPv6 firewall administration tool
  357. PROVIDES:=ip6tables ip6tables-legacy
  358. ALTERNATIVES:=\
  359. 200:/usr/sbin/ip6tables:/usr/sbin/xtables-legacy-multi \
  360. 200:/usr/sbin/ip6tables-restore:/usr/sbin/xtables-legacy-multi \
  361. 200:/usr/sbin/ip6tables-save:/usr/sbin/xtables-legacy-multi
  362. endef
  363. define Package/ip6tables-nft
  364. $(call Package/iptables/Default)
  365. DEPENDS:=@IPV6 +kmod-ip6tables +xtables-nft
  366. TITLE:=IP firewall administration tool nft
  367. PROVIDES:=ip6tables
  368. ALTERNATIVES:=\
  369. 300:/usr/sbin/ip6tables:/usr/sbin/xtables-nft-multi \
  370. 300:/usr/sbin/ip6tables-restore:/usr/sbin/xtables-nft-multi \
  371. 300:/usr/sbin/ip6tables-save:/usr/sbin/xtables-nft-multi
  372. endef
  373. define Package/ip6tables-nft/description
  374. Extra ip6tables nftables nft binaries.
  375. ip6tables-nft
  376. ip6tables-nft-restore
  377. ip6tables-nft-save
  378. ip6tables-translate
  379. ip6tables-restore-translate
  380. endef
  381. define Package/ip6tables-extra
  382. $(call Package/iptables/Default)
  383. DEPENDS:=+libxtables +kmod-ip6tables-extra
  384. TITLE:=IPv6 header matching modules
  385. endef
  386. define Package/ip6tables-extra/description
  387. iptables header matching modules for IPv6
  388. endef
  389. define Package/ip6tables-mod-nat
  390. $(call Package/iptables/Default)
  391. DEPENDS:=+libxtables +kmod-ipt-nat6
  392. TITLE:=IPv6 NAT extensions
  393. endef
  394. define Package/ip6tables-mod-nat/description
  395. iptables extensions for IPv6-NAT targets.
  396. endef
  397. define Package/libip4tc
  398. $(call Package/iptables/Default)
  399. SECTION:=libs
  400. CATEGORY:=Libraries
  401. TITLE:=IPv4 firewall - shared libiptc library
  402. ABI_VERSION:=2
  403. endef
  404. define Package/libip6tc
  405. $(call Package/iptables/Default)
  406. SECTION:=libs
  407. CATEGORY:=Libraries
  408. TITLE:=IPv6 firewall - shared libiptc library
  409. ABI_VERSION:=2
  410. endef
  411. define Package/libiptext
  412. $(call Package/iptables/Default)
  413. SECTION:=libs
  414. CATEGORY:=Libraries
  415. TITLE:=IPv4 firewall - shared libiptext library
  416. ABI_VERSION:=0
  417. DEPENDS:=+libxtables
  418. endef
  419. define Package/libiptext6
  420. $(call Package/iptables/Default)
  421. SECTION:=libs
  422. CATEGORY:=Libraries
  423. TITLE:=IPv6 firewall - shared libiptext library
  424. ABI_VERSION:=0
  425. DEPENDS:=+libxtables
  426. endef
  427. define Package/libiptext-nft
  428. $(call Package/iptables/Default)
  429. SECTION:=libs
  430. CATEGORY:=Libraries
  431. TITLE:=IPv4/IPv6 firewall - shared libiptext nft library
  432. ABI_VERSION:=0
  433. DEPENDS:=+libxtables
  434. endef
  435. define Package/libxtables
  436. $(call Package/iptables/Default)
  437. SECTION:=libs
  438. CATEGORY:=Libraries
  439. TITLE:=IPv4/IPv6 firewall - shared xtables library
  440. MENU:=1
  441. ABI_VERSION:=12
  442. DEPENDS:=+IPTABLES_CONNLABEL:libnetfilter-conntrack
  443. endef
  444. define Package/libxtables/config
  445. config IPTABLES_CONNLABEL
  446. bool "Enable Connlabel support"
  447. default n
  448. help
  449. This enable connlabel support in iptables.
  450. endef
  451. TARGET_CPPFLAGS := \
  452. -I$(PKG_BUILD_DIR)/include \
  453. -I$(LINUX_DIR)/user_headers/include \
  454. $(TARGET_CPPFLAGS)
  455. TARGET_CFLAGS += \
  456. -I$(PKG_BUILD_DIR)/include \
  457. -I$(LINUX_DIR)/user_headers/include \
  458. -DNO_LEGACY
  459. CONFIGURE_ARGS += \
  460. --enable-shared \
  461. --enable-static \
  462. --enable-devel \
  463. --with-kernel="$(LINUX_DIR)/user_headers" \
  464. --with-xtlibdir=/usr/lib/iptables \
  465. --with-xt-lock-name=/var/run/xtables.lock \
  466. $(if $(CONFIG_IPTABLES_CONNLABEL),,--disable-connlabel) \
  467. $(if $(CONFIG_IPV6),,--disable-ipv6)
  468. MAKE_FLAGS := \
  469. $(TARGET_CONFIGURE_OPTS) \
  470. COPT_FLAGS="$(TARGET_CFLAGS)" \
  471. KERNEL_DIR="$(LINUX_DIR)/user_headers/" PREFIX=/usr \
  472. KBUILD_OUTPUT="$(LINUX_DIR)" \
  473. BUILTIN_MODULES="$(patsubst ip6t_%,%,$(patsubst ipt_%,%,$(patsubst xt_%,%,$(IPT_BUILTIN) $(IPT_CONNTRACK-m) $(IPT_NAT-m))))"
  474. ifneq ($(wildcard $(PKG_BUILD_DIR)/.config_*),$(subst .configured_,.config_,$(STAMP_CONFIGURED)))
  475. define Build/Configure/rebuild
  476. $(FIND) $(PKG_BUILD_DIR) -name \*.o -or -name \*.\?o -or -name \*.a | $(XARGS) rm -f
  477. rm -f $(PKG_BUILD_DIR)/.config_*
  478. rm -f $(PKG_BUILD_DIR)/.configured_*
  479. touch $(subst .configured_,.config_,$(STAMP_CONFIGURED))
  480. endef
  481. endif
  482. define Build/Configure
  483. $(Build/Configure/rebuild)
  484. $(Build/Configure/Default)
  485. endef
  486. define Build/InstallDev
  487. $(INSTALL_DIR) $(1)/usr/include
  488. $(INSTALL_DIR) $(1)/usr/include/iptables
  489. $(INSTALL_DIR) $(1)/usr/include/net/netfilter
  490. # XXX: iptables header fixup, some headers are not installed by iptables anymore
  491. $(CP) $(PKG_BUILD_DIR)/include/iptables/*.h $(1)/usr/include/iptables/
  492. $(CP) $(PKG_BUILD_DIR)/include/iptables.h $(1)/usr/include/
  493. $(CP) $(PKG_BUILD_DIR)/include/ip6tables.h $(1)/usr/include/
  494. $(CP) $(PKG_BUILD_DIR)/include/libiptc $(1)/usr/include/
  495. $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
  496. $(INSTALL_DIR) $(1)/usr/lib
  497. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.so* $(1)/usr/lib/
  498. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip*tc.so* $(1)/usr/lib/
  499. $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
  500. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/xtables.pc $(1)/usr/lib/pkgconfig/
  501. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libip*tc.pc $(1)/usr/lib/pkgconfig/
  502. # XXX: needed by firewall3
  503. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext*.so $(1)/usr/lib/
  504. endef
  505. define Package/xtables-legacy/install
  506. $(INSTALL_DIR) $(1)/usr/sbin
  507. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/xtables-legacy-multi $(1)/usr/sbin/
  508. endef
  509. define Package/iptables-zz-legacy/install
  510. $(INSTALL_DIR) $(1)/usr/sbin
  511. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/iptables-legacy{,-restore,-save} $(1)/usr/sbin/
  512. $(INSTALL_DIR) $(1)/usr/lib/iptables
  513. endef
  514. define Package/xtables-nft/install
  515. $(INSTALL_DIR) $(1)/usr/sbin
  516. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/xtables-nft-multi $(1)/usr/sbin/
  517. endef
  518. define Package/arptables-nft/install
  519. $(INSTALL_DIR) $(1)/usr/sbin
  520. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/arptables-nft{,-restore,-save} $(1)/usr/sbin/
  521. $(INSTALL_DIR) $(1)/usr/lib/iptables
  522. $(CP) $(PKG_BUILD_DIR)/extensions/libarpt_*.so $(1)/usr/lib/iptables/
  523. endef
  524. define Package/ebtables-nft/install
  525. $(INSTALL_DIR) $(1)/usr/sbin
  526. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/ebtables-nft{,-restore,-save} $(1)/usr/sbin/
  527. $(INSTALL_DIR) $(1)/usr/lib/iptables
  528. $(CP) $(PKG_BUILD_DIR)/extensions/libebt_*.so $(1)/usr/lib/iptables/
  529. endef
  530. define Package/iptables-nft/install
  531. $(INSTALL_DIR) $(1)/usr/sbin
  532. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/iptables-nft{,-restore,-save} $(1)/usr/sbin/
  533. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/iptables{,-restore}-translate $(1)/usr/sbin/
  534. endef
  535. define Package/ip6tables-zz-legacy/install
  536. $(INSTALL_DIR) $(1)/usr/sbin
  537. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/ip6tables-legacy{,-restore,-save} $(1)/usr/sbin/
  538. endef
  539. define Package/ip6tables-nft/install
  540. $(INSTALL_DIR) $(1)/usr/sbin
  541. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/ip6tables-nft{,-restore,-save} $(1)/usr/sbin/
  542. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/ip6tables{,-restore}-translate $(1)/usr/sbin/
  543. endef
  544. define Package/libip4tc/install
  545. $(INSTALL_DIR) $(1)/usr/lib
  546. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip4tc.so.* $(1)/usr/lib/
  547. endef
  548. define Package/libip6tc/install
  549. $(INSTALL_DIR) $(1)/usr/lib
  550. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip6tc.so.* $(1)/usr/lib/
  551. endef
  552. define Package/libiptext/install
  553. $(INSTALL_DIR) $(1)/usr/lib
  554. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext.so $(1)/usr/lib/
  555. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext4.so $(1)/usr/lib/
  556. endef
  557. define Package/libiptext6/install
  558. $(INSTALL_DIR) $(1)/usr/lib
  559. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext6.so $(1)/usr/lib/
  560. endef
  561. define Package/libiptext-nft/install
  562. $(INSTALL_DIR) $(1)/usr/lib
  563. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext_*.so $(1)/usr/lib/
  564. endef
  565. define Package/libxtables/install
  566. $(INSTALL_DIR) $(1)/usr/lib
  567. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.so.* $(1)/usr/lib/
  568. endef
  569. define BuildPlugin
  570. define Package/$(1)/install
  571. $(INSTALL_DIR) $$(1)/usr/lib/iptables
  572. for m in $(patsubst xt_%,ipt_%,$(2)) $(patsubst ipt_%,xt_%,$(2)) $(patsubst xt_%,ip6t_%,$(2)) $(patsubst ip6t_%,xt_%,$(2)); do \
  573. if [ -f $(PKG_INSTALL_DIR)/usr/lib/iptables/lib$$$$$$$${m}.so ]; then \
  574. $(CP) $(PKG_INSTALL_DIR)/usr/lib/iptables/lib$$$$$$$${m}.so $$(1)/usr/lib/iptables/ ; \
  575. fi; \
  576. done
  577. $(3)
  578. endef
  579. $$(eval $$(call BuildPackage,$(1)))
  580. endef
  581. $(eval $(call BuildPackage,libxtables))
  582. $(eval $(call BuildPackage,libip4tc))
  583. $(eval $(call BuildPackage,libip6tc))
  584. $(eval $(call BuildPackage,libiptext))
  585. $(eval $(call BuildPackage,libiptext6))
  586. $(eval $(call BuildPackage,libiptext-nft))
  587. $(eval $(call BuildPackage,xtables-legacy))
  588. $(eval $(call BuildPackage,xtables-nft))
  589. $(eval $(call BuildPackage,arptables-nft))
  590. $(eval $(call BuildPackage,ebtables-nft))
  591. $(eval $(call BuildPackage,iptables-nft))
  592. $(eval $(call BuildPackage,iptables-zz-legacy))
  593. $(eval $(call BuildPlugin,iptables-mod-conntrack-extra,$(IPT_CONNTRACK_EXTRA-m)))
  594. $(eval $(call BuildPlugin,iptables-mod-conntrack-label,$(IPT_CONNTRACK_LABEL-m)))
  595. $(eval $(call BuildPlugin,iptables-mod-extra,$(IPT_EXTRA-m)))
  596. $(eval $(call BuildPlugin,iptables-mod-physdev,$(IPT_PHYSDEV-m)))
  597. $(eval $(call BuildPlugin,iptables-mod-filter,$(IPT_FILTER-m)))
  598. $(eval $(call BuildPlugin,iptables-mod-ipopt,$(IPT_IPOPT-m)))
  599. $(eval $(call BuildPlugin,iptables-mod-ipsec,$(IPT_IPSEC-m)))
  600. $(eval $(call BuildPlugin,iptables-mod-nat-extra,$(IPT_NAT_EXTRA-m)))
  601. $(eval $(call BuildPlugin,iptables-mod-iprange,$(IPT_IPRANGE-m)))
  602. $(eval $(call BuildPlugin,iptables-mod-cluster,$(IPT_CLUSTER-m)))
  603. $(eval $(call BuildPlugin,iptables-mod-hashlimit,$(IPT_HASHLIMIT-m)))
  604. $(eval $(call BuildPlugin,iptables-mod-rpfilter,$(IPT_RPFILTER-m)))
  605. $(eval $(call BuildPlugin,iptables-mod-led,$(IPT_LED-m)))
  606. $(eval $(call BuildPlugin,iptables-mod-socket,$(IPT_SOCKET-m)))
  607. $(eval $(call BuildPlugin,iptables-mod-tproxy,$(IPT_TPROXY-m)))
  608. $(eval $(call BuildPlugin,iptables-mod-tee,$(IPT_TEE-m)))
  609. $(eval $(call BuildPlugin,iptables-mod-u32,$(IPT_U32-m)))
  610. $(eval $(call BuildPlugin,iptables-mod-nflog,$(IPT_NFLOG-m)))
  611. $(eval $(call BuildPlugin,iptables-mod-trace,$(IPT_DEBUG-m)))
  612. $(eval $(call BuildPlugin,iptables-mod-nfqueue,$(IPT_NFQUEUE-m)))
  613. $(eval $(call BuildPlugin,iptables-mod-checksum,$(IPT_CHECKSUM-m)))
  614. $(eval $(call BuildPackage,ip6tables-nft))
  615. $(eval $(call BuildPackage,ip6tables-zz-legacy))
  616. $(eval $(call BuildPlugin,ip6tables-extra,$(IPT_IPV6_EXTRA-m)))
  617. $(eval $(call BuildPlugin,ip6tables-mod-nat,$(IPT_NAT6-m)))