From 522ae2fa8b610f13ae69835959dea710f808d887 Mon Sep 17 00:00:00 2001 From: Arturo Borrero Gonzalez Date: Wed, 28 Nov 2018 13:47:28 +0100 Subject: [PATCH] ebtables: legacy renaming The original ebtables tool is now the legacy version, let's rename it. A more uptodate client of the ebtables tool is provided in the iptables tarball (ebtables-nft). The new tool was formerly known as ebtables-compat. The new -legacy binary has no problem if called via a symlink with the 'ebtables' name, so users can still name this binary with whatever name. Signed-off-by: Arturo Borrero Gonzalez Signed-off-by: Pablo Neira Ayuso Signed-off-by: Phil Sutter --- Makefile.am | 21 +++++++++++---------- ebtables.8.in => ebtables-legacy.8.in | 14 +++++++++++++- ebtables-save.in | 2 +- include/ebtables_u.h | 2 +- 4 files changed, 26 insertions(+), 13 deletions(-) rename ebtables.8.in => ebtables-legacy.8.in (98%) diff --git a/Makefile.am b/Makefile.am index 14938fea4f252..b16a4d6dba269 100644 --- a/Makefile.am +++ b/Makefile.am @@ -26,11 +26,11 @@ AM_CPPFLAGS = ${regular_CPPFLAGS} -I${top_srcdir}/include \ -DEBTD_PIPE=\"${PIPE}\" -DEBTD_PIPE_DIR=\"${PIPE_DIR}\" AM_CFLAGS = ${regular_CFLAGS} -sbin_PROGRAMS = ebtables ebtablesd ebtablesu ebtables-restore +sbin_PROGRAMS = ebtables-legacy ebtablesd ebtablesu ebtables-legacy-restore EXTRA_PROGRAMS = static examples/ulog/test_ulog sysconf_DATA = ethertypes -sbin_SCRIPTS = ebtables-save -man8_MANS = ebtables.8 +sbin_SCRIPTS = ebtables-legacy-save +man8_MANS = ebtables-legacy.8 lib_LTLIBRARIES = libebtc.la libebtc_la_SOURCES = \ @@ -47,21 +47,22 @@ libebtc_la_SOURCES = \ extensions/ebtable_nat.c # Make sure ebtables.c can be built twice libebtc_la_CPPFLAGS = ${AM_CPPFLAGS} -ebtables_SOURCES = ebtables-standalone.c -ebtables_LDADD = libebtc.la +ebtables_legacy_SOURCES = ebtables-standalone.c +ebtables_legacy_LDADD = libebtc.la ebtablesd_LDADD = libebtc.la -ebtables_restore_LDADD = libebtc.la +ebtables_legacy_restore_SOURCES = ebtables-restore.c +ebtables_legacy_restore_LDADD = libebtc.la static_SOURCES = ebtables.c static_LDFLAGS = -static static_LDADD = libebtc.la examples_ulog_test_ulog_SOURCES = examples/ulog/test_ulog.c getethertype.c daemon: ebtablesd ebtablesu -exec: ebtables ebtables-restore +exec: ebtables-legacy ebtables-legacy-restore -CLEANFILES = ebtables-save ebtables.sysv ebtables-config ebtables.8 +CLEANFILES = ebtables-legacy-save ebtables.sysv ebtables-config ebtables-legacy.8 -ebtables-save: ebtables-save.in ${top_builddir}/config.status +ebtables-legacy-save: ebtables-save.in ${top_builddir}/config.status ${AM_V_GEN}sed -e 's![@]sbindir@!${sbindir}!g' <$< >$@ ebtables.sysv: ebtables.sysv.in ${top_builddir}/config.status @@ -70,7 +71,7 @@ ebtables.sysv: ebtables.sysv.in ${top_builddir}/config.status ebtables-config: ebtables-config.in ${top_builddir}/config.status ${AM_V_GEN}sed -e 's![@]sysconfigdir@!${sysconfigdir}!g' <$< >$@ -ebtables.8: ebtables.8.in ${top_builddir}/config.status +ebtables-legacy.8: ebtables-legacy.8.in ${top_builddir}/config.status ${AM_V_GEN}sed -e 's![@]PACKAGE_VERSION!${PACKAGE_VERSION}!g' \ -e 's![@]PACKAGE_DATE@!${PROGDATE}!g' \ -e 's![@]LOCKFILE@!${LOCKFILE}!g' <$< >$@ diff --git a/ebtables.8.in b/ebtables-legacy.8.in similarity index 98% rename from ebtables.8.in rename to ebtables-legacy.8.in index 3e97c84da0e86..3417045fbd89d 100644 --- a/ebtables.8.in +++ b/ebtables-legacy.8.in @@ -24,7 +24,7 @@ .\" .\" .SH NAME -ebtables (@PACKAGE_VERSION@) \- Ethernet bridge frame table administration +ebtables-legacy (@PACKAGE_VERSION@) \- Ethernet bridge frame table administration (legacy) .SH SYNOPSIS .BR "ebtables " [ -t " table ] " - [ ACDI "] chain rule specification [match extensions] [watcher extensions] target" .br @@ -50,6 +50,18 @@ ebtables (@PACKAGE_VERSION@) \- Ethernet bridge frame table administration .br .BR "ebtables " [ -t " table ] [" --atomic-file " file] " --atomic-save .br + +.SH LEGACY +This tool uses the old xtables/setsockopt framework, and is a legacy version +of ebtables. That means that a new, more modern tool exists with the same +functionality using the nf_tables framework and you are encouraged to migrate now. +The new binaries (known as ebtables-nft and formerly known as ebtables-compat) +uses the same syntax and semantics than this legacy one. + +You can still use this legacy tool. You should probably get some specific +information from your Linux distribution or vendor. +More docs are available at https://wiki.nftables.org + .SH DESCRIPTION .B ebtables is an application program used to set up and maintain the diff --git a/ebtables-save.in b/ebtables-save.in index df141490c20b1..17924a2b8df90 100644 --- a/ebtables-save.in +++ b/ebtables-save.in @@ -50,7 +50,7 @@ sub process_table { # ======================================================== unless (-x $ebtables) { exit -1 }; -print "# Generated by ebtables-save v$version on " . `date`; +print "# Generated by ebtables-save v$version (legacy) on " . `date`; if (defined($ENV{'EBTABLES_SAVE_COUNTER'}) && $ENV{'EBTABLES_SAVE_COUNTER'} eq "yes") { $cnt = "--Lc"; } diff --git a/include/ebtables_u.h b/include/ebtables_u.h index 7f5968dc6f39d..901b28233f140 100644 --- a/include/ebtables_u.h +++ b/include/ebtables_u.h @@ -395,7 +395,7 @@ extern int ebt_printstyle_mac; #define BASE_CHAIN (hookmask & (1 << NF_BR_NUMHOOKS)) /* Clear the bit in the hook_mask that tells if the rule is on a base chain */ #define CLEAR_BASE_CHAIN_BIT (hookmask &= ~(1 << NF_BR_NUMHOOKS)) -#define PRINT_VERSION printf(PROGNAME" v"PROGVERSION" ("PROGDATE")\n") +#define PRINT_VERSION printf(PROGNAME" v"PROGVERSION" (legacy) ("PROGDATE")\n") #ifndef PROC_SYS_MODPROBE #define PROC_SYS_MODPROBE "/proc/sys/kernel/modprobe" #endif -- 2.21.0