Skip to contentSkip to conversation

shadowsocks-libev: add connmarktos build option

PATCH New DUPONCHEEL Sébastien 4 participants 9 messages Nov 15, 2018 – Nov 21, 2018 1 message not in the archive

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 shadowsocks-libev: add connmarktos build option

---
 package/shadowsocks-libev/Config.in            | 7 +++++++
 package/shadowsocks-libev/shadowsocks-libev.mk | 4 ++++
 2 files changed, 11 insertions(+)
package/shadowsocks-libev/Config.in +7 -0
index f58abdb..acd9a67 100644
@@ -15,6 +15,13 @@ config BR2_PACKAGE_SHADOWSOCKS_LIBEV
 
 	  https://github.com/shadowsocks/shadowsocks-libev
 
+config BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS
+	bool "enable connmarktos feature"
+	depends on BR2_PACKAGE_SHADOWSOCKS_LIBEV
+	select BR2_PACKAGE_LIBNETFILTER_CONNTRACK
+	help
+	  Build with the connmark to TOS feature
+
 comment "shadowsocks-libev needs a toolchain w/ threads"
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on BR2_TOOLCHAIN_HAS_SYNC_8 || !BR2_ARCH_IS_64
package/shadowsocks-libev/shadowsocks-libev.mk +4 -0
index 7fdcd3f..34d95ca 100644
@@ -21,4 +21,8 @@ ifeq ($(BR2_riscv),y)
 SHADOWSOCKS_LIBEV_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -D_REENTRANT"
 endif
 
+ifeq ($(BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS),y)
+SHADOWSOCKS_LIBEV_CONF_OPTS += --enable-connmarktos
+endif
+
 $(eval $(autotools-package))
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 shadowsocks-libev: add connmarktos build option

Hi S?bastien,

Thanks for your contribution. A few comments below.

Quoted 11 lines · DUPONCHEEL S?bastien
---
 package/shadowsocks-libev/Config.in            | 7 +++++++
 package/shadowsocks-libev/shadowsocks-libev.mk | 4 ++++
 2 files changed, 11 insertions(+)
package/shadowsocks-libev/Config.in +0 -0
index f58abdb..acd9a67 100644

package/shadowsocks-libev/Config.in config BR2_PACKAGE_SHADOWSOCKS_LIBEV · line 23

Quoted 9 lines
package/shadowsocks-libev/Config.in +6 -0
@@ -15,6 +15,13 @@ config BR2_PACKAGE_SHADOWSOCKS_LIBEV
 
 	  https://github.com/shadowsocks/shadowsocks-libev
 
+config BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS
+	bool "enable connmarktos feature"
+	depends on BR2_PACKAGE_SHADOWSOCKS_LIBEV
+	select BR2_PACKAGE_LIBNETFILTER_CONNTRACK
+	help
+	  Build with the connmark to TOS feature

If the size increase of enabling this feature is not huge we usually just enable it unconditionally when the required dependencies are enabled. This reduced the number of config options that the user has to go through.

package/shadowsocks-libev/shadowsocks-libev.mk ifeq ($(BR2_riscv),y) · line 24

Quoted 12 lines
package/shadowsocks-libev/Config.in +0 -0
 comment "shadowsocks-libev needs a toolchain w/ threads"
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on BR2_TOOLCHAIN_HAS_SYNC_8 || !BR2_ARCH_IS_64
package/shadowsocks-libev/shadowsocks-libev.mk +1 -0
index 7fdcd3f..34d95ca 100644
@@ -21,4 +21,8 @@ ifeq ($(BR2_riscv),y)
 SHADOWSOCKS_LIBEV_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -D_REENTRANT"
 endif
 
+ifeq ($(BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS),y)

So instead of that do

ifeq ($(BR2_PACKAGE_LIBNETFILTER_CONNTRACK),y)

package/shadowsocks-libev/shadowsocks-libev.mk ifeq ($(BR2_riscv),y) · line 25

Quoted 1 line
package/shadowsocks-libev/shadowsocks-libev.mk +1 -0
+SHADOWSOCKS_LIBEV_CONF_OPTS += --enable-connmarktos

If libnetfilter_conntrack is a build time dependency you also need to add it to SHADOWSOCKS_LIBEV_DEPENDENCIES here to make sure it build before shadowsocks-libev.

package/shadowsocks-libev/shadowsocks-libev.mk ifeq ($(BR2_riscv),y) · line 26

Quoted 1 line
package/shadowsocks-libev/shadowsocks-libev.mk +1 -0
+endif

You should also add --disable-connmarktos (or the equivalent option) in the 'else' part of this condition.

package/shadowsocks-libev/shadowsocks-libev.mk ifeq ($(BR2_riscv),y) · line 28

Quoted 1 line
package/shadowsocks-libev/shadowsocks-libev.mk +0 -0
 $(eval $(autotools-package))

baruch

--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

A message that is not in the archive (sent off-list or not yet received): [email protected]

#3 lore raw

PATCH 1/1 shadowsocks-libev: add connmarktos build option

Hi S?bastien,

Please keep the list on Cc.

Quoted 41 lines · DUPONCHEEL S?bastien

it's nice to see you here :)
Thank you for your review and comments.

See my proposal below :

Le 15/11/2018 ? 19:24, Baruch Siach a ?crit:

Quoted 18 lines

Thanks for your contribution. A few comments below.

Quoted 14 lines · DUPONCHEEL S?bastien
---
  package/shadowsocks-libev/Config.in            | 7 +++++++
  package/shadowsocks-libev/shadowsocks-libev.mk | 4 ++++
  2 files changed, 11 insertions(+)
package/shadowsocks-libev/Config.in +0 -0
index f58abdb..acd9a67 100644
@@ -15,6 +15,13 @@ config BR2_PACKAGE_SHADOWSOCKS_LIBEV
 
  	  https://github.com/shadowsocks/shadowsocks-libev
 
Quoted 10 lines

package/shadowsocks-libev/Config.in config BR2_PACKAGE_SHADOWSOCKS_LIBEV · line 23

Quoted 6 lines
package/shadowsocks-libev/Config.in +6 -0
+config BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS
+	bool "enable connmarktos feature"
+	depends on BR2_PACKAGE_SHADOWSOCKS_LIBEV
+	select BR2_PACKAGE_LIBNETFILTER_CONNTRACK
+	help
+	  Build with the connmark to TOS feature

If the size increase of enabling this feature is not huge we usually just enable it unconditionally when the required dependencies are enabled. This reduced the number of config options that the user has to go through.

For now, this feature only concerns ss-server and requires the operation of advanced iptables and tc rules. This is a very specific feature that will not be widely used, I think it is better to disable it by default

So, i propose to be more verbose on what this feature implies :

Quoted 11 lines

config BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS
- bool "enable connmarktos feature"
+ bool "ss-server: enable connmarktos feature" depends on BR2_PACKAGE_SHADOWSOCKS_LIBEV
select BR2_PACKAGE_LIBNETFILTER_CONNTRACK
help
- Build with the connmark to TOS feature
+ Build ss-server with the connmark to TOS feature.
+ This feature require advanced tc, iptables and conntrac
+ rules to perform QoS on the server side.
+ if unsure say N.

Sounds reasonable to me. Let's see what others think.

Quoted 23 lines
Quoted 14 lines

package/shadowsocks-libev/shadowsocks-libev.mk ifeq ($(BR2_riscv),y) · line 24

Quoted 12 lines
package/shadowsocks-libev/Config.in +0 -0
  comment "shadowsocks-libev needs a toolchain w/ threads"
  	depends on BR2_TOOLCHAIN_HAS_SYNC_4
  	depends on BR2_TOOLCHAIN_HAS_SYNC_8 || !BR2_ARCH_IS_64
package/shadowsocks-libev/shadowsocks-libev.mk +1 -0
index 7fdcd3f..34d95ca 100644
@@ -21,4 +21,8 @@ ifeq ($(BR2_riscv),y)
  SHADOWSOCKS_LIBEV_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -D_REENTRANT"
  endif
 
+ifeq ($(BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS),y)

So instead of that do

Quoted 6 lines

ifeq ($(BR2_PACKAGE_LIBNETFILTER_CONNTRACK),y)

package/shadowsocks-libev/shadowsocks-libev.mk ifeq ($(BR2_riscv),y) · line 25

Quoted 1 line
package/shadowsocks-libev/shadowsocks-libev.mk +1 -0
+SHADOWSOCKS_LIBEV_CONF_OPTS += --enable-connmarktos

If libnetfilter_conntrack is a build time dependency you also need to add it to SHADOWSOCKS_LIBEV_DEPENDENCIES here to make sure it build before shadowsocks-libev.

As seen in "squid.mk", i propose to do something like this :

Review

Quoted 3 lines
(quoted diff) +2 -1
-SHADOWSOCKS_LIBEV_DEPENDENCIES = host-pkgconf c-ares libev libsodium mbedtls pcre
+SHADOWSOCKS_LIBEV_DEPENDENCIES = host-pkgconf c-ares libev libsodium mbedtls pcre \
+ $(if $(BR2_PACKAGE_LIBNETFILTER_CONNTRACK),libnetfilter_conntrack)

The _OPTS and _DEPENDENCIES additions are usually grouped together. The squid case is spacial because there is no _OPTS change there.

Quoted 5 lines
Quoted 3 lines

package/shadowsocks-libev/shadowsocks-libev.mk ifeq ($(BR2_riscv),y) · line 26

Quoted 1 line
package/shadowsocks-libev/shadowsocks-libev.mk +1 -0
+endif

You should also add --disable-connmarktos (or the equivalent option) in the 'else' part of this condition.

Unfortunately there is no such option.

The AC_ARG_ENABLE macro in configure.ac automatically provides --enable-foo and --disable-foo.

baruch

--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

#4 lore raw

PATCH 1/1 shadowsocks-libev: add connmarktos build option

Hello,

Quoted 12 lines · Baruch Siach
Quoted 11 lines

config BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS
- bool "enable connmarktos feature"
+ bool "ss-server: enable connmarktos feature" depends on BR2_PACKAGE_SHADOWSOCKS_LIBEV
select BR2_PACKAGE_LIBNETFILTER_CONNTRACK
help
- Build with the connmark to TOS feature
+ Build ss-server with the connmark to TOS feature.
+ This feature require advanced tc, iptables and conntrac
+ rules to perform QoS on the server side.
+ if unsure say N.

Quoted 1 line

Sounds reasonable to me. Let's see what others think.

Yes, soon reasonable to me as well. Perhaps the option title should be:

bool "conmarktos support in ss-server"

or

bool "ss-server conmarktos support"

S?bastien, could you take into account the various comments received from Baruch, and send an updated version ?

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#5 lore raw

PATCH 1/1 shadowsocks-libev: add connmarktos build option

Yes, i am doing this ASAP.

Best regards,
DUPONCHEEL S?bastien.

Le 20/11/2018 ? 09:00, Thomas Petazzoni a ?crit?:

Quoted 30 lines

Hello,

Quoted 11 lines · Baruch Siach
Quoted 11 lines

config BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS
- bool "enable connmarktos feature"
+ bool "ss-server: enable connmarktos feature" depends on BR2_PACKAGE_SHADOWSOCKS_LIBEV select BR2_PACKAGE_LIBNETFILTER_CONNTRACK
help
- Build with the connmark to TOS feature
+ Build ss-server with the connmark to TOS feature.
+ This feature require advanced tc, iptables and conntrac
+ rules to perform QoS on the server side.
+ if unsure say N.

Quoted 1 line

Sounds reasonable to me. Let's see what others think.

Yes, soon reasonable to me as well. Perhaps the option title should be:

bool "conmarktos support in ss-server"

or

bool "ss-server conmarktos support"

S?bastien, could you take into account the various comments received from Baruch, and send an updated version ?

Thanks!

Thomas

#6 lore raw

PATCH 1/1 shadowsocks-libev: add connmarktos build option

In reply to Baruch Siach

Hi Baruch,

Please see my feedback below :

Le 17/11/2018 ? 21:49, Baruch Siach a ?crit?:

Quoted 86 lines

Hi S?bastien,

Please keep the list on Cc.

Quoted 40 lines · DUPONCHEEL S?bastien

it's nice to see you here :)
Thank you for your review and comments.

See my proposal below :

Le 15/11/2018 ? 19:24, Baruch Siach a ?crit:

Quoted 18 lines

Thanks for your contribution. A few comments below.

Quoted 14 lines · DUPONCHEEL S?bastien
---
   package/shadowsocks-libev/Config.in            | 7 +++++++
   package/shadowsocks-libev/shadowsocks-libev.mk | 4 ++++
   2 files changed, 11 insertions(+)
package/shadowsocks-libev/Config.in +0 -0
index f58abdb..acd9a67 100644
@@ -15,6 +15,13 @@ config BR2_PACKAGE_SHADOWSOCKS_LIBEV
 
   	  https://github.com/shadowsocks/shadowsocks-libev
 
Quoted 10 lines

package/shadowsocks-libev/Config.in config BR2_PACKAGE_SHADOWSOCKS_LIBEV · line 23

Quoted 6 lines
package/shadowsocks-libev/Config.in +6 -0
+config BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS
+	bool "enable connmarktos feature"
+	depends on BR2_PACKAGE_SHADOWSOCKS_LIBEV
+	select BR2_PACKAGE_LIBNETFILTER_CONNTRACK
+	help
+	  Build with the connmark to TOS feature

If the size increase of enabling this feature is not huge we usually just enable it unconditionally when the required dependencies are enabled. This reduced the number of config options that the user has to go through.

For now, this feature only concerns ss-server and requires the operation of advanced iptables and tc rules. This is a very specific feature that will not be widely used, I think it is better to disable it by default

So, i propose to be more verbose on what this feature implies :

Quoted 11 lines

config BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS
- bool "enable connmarktos feature"
+ bool "ss-server: enable connmarktos feature" depends on BR2_PACKAGE_SHADOWSOCKS_LIBEV select BR2_PACKAGE_LIBNETFILTER_CONNTRACK
help
- Build with the connmark to TOS feature
+ Build ss-server with the connmark to TOS feature.
+ This feature require advanced tc, iptables and conntrac
+ rules to perform QoS on the server side.
+ if unsure say N.

Sounds reasonable to me. Let's see what others think.

Quoted 22 lines
Quoted 14 lines

package/shadowsocks-libev/shadowsocks-libev.mk ifeq ($(BR2_riscv),y) · line 24

Quoted 12 lines
package/shadowsocks-libev/Config.in +0 -0
   comment "shadowsocks-libev needs a toolchain w/ threads"
   	depends on BR2_TOOLCHAIN_HAS_SYNC_4
   	depends on BR2_TOOLCHAIN_HAS_SYNC_8 || !BR2_ARCH_IS_64
package/shadowsocks-libev/shadowsocks-libev.mk +1 -0
index 7fdcd3f..34d95ca 100644
@@ -21,4 +21,8 @@ ifeq ($(BR2_riscv),y)
   SHADOWSOCKS_LIBEV_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -D_REENTRANT"
   endif
 
+ifeq ($(BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS),y)

So instead of that do

Quoted 6 lines

ifeq ($(BR2_PACKAGE_LIBNETFILTER_CONNTRACK),y)

package/shadowsocks-libev/shadowsocks-libev.mk ifeq ($(BR2_riscv),y) · line 25

Quoted 1 line
package/shadowsocks-libev/shadowsocks-libev.mk +1 -0
+SHADOWSOCKS_LIBEV_CONF_OPTS += --enable-connmarktos

If libnetfilter_conntrack is a build time dependency you also need to add it to SHADOWSOCKS_LIBEV_DEPENDENCIES here to make sure it build before shadowsocks-libev.

As seen in "squid.mk", i propose to do something like this :

Review

Quoted 3 lines
(quoted diff) +2 -1
-SHADOWSOCKS_LIBEV_DEPENDENCIES = host-pkgconf c-ares libev libsodium mbedtls pcre
+SHADOWSOCKS_LIBEV_DEPENDENCIES = host-pkgconf c-ares libev libsodium mbedtls pcre \
+ $(if $(BR2_PACKAGE_LIBNETFILTER_CONNTRACK),libnetfilter_conntrack)

The _OPTS and _DEPENDENCIES additions are usually grouped together. The squid case is spacial because there is no _OPTS change there.

Quoted 6 lines
Quoted 4 lines
Quoted 3 lines

package/shadowsocks-libev/shadowsocks-libev.mk ifeq ($(BR2_riscv),y) · line 26

Quoted 1 line
package/shadowsocks-libev/shadowsocks-libev.mk +1 -0
+endif

You should also add --disable-connmarktos (or the equivalent option) in the 'else' part of this condition.

Unfortunately there is no such option.

The AC_ARG_ENABLE macro in configure.ac automatically provides --enable-foo and --disable-foo.

The AC_ARG_ENABLE statement in shadowsocks looks broken, neither --disable-connmarktos nor --enable-connmarktos=no are working. In fact, it activates the feature.

ifeq ($(BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS),y) SHADOWSOCKS_LIBEV_DEPENDENCIES += libnetfilter_conntrack SHADOWSOCKS_LIBEV_CONF_OPTS += --enable-connmarktos else
SHADOWSOCKS_LIBEV_CONF_OPTS += --disable-connmarktos endif

seb at compile:src/buildroot ?shadowsocks?$ cat .config | grep CONNMARK
# BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS is not set
seb at compile:src/buildroot ?shadowsocks*?$ ldd ./output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/bin/ss-server | grep libnetfilter_conntrack.so.3

	libnetfilter_conntrack.so.3 => /home/seb/src/buildroot/output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/lib/libnetfilter_conntrack.so.3 (0x00006f816dde4000)

Best regards,
DUPONCHEEL S?bastien.

Quoted 6 lines

baruch

--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20181120/04ab28d9/attachment.html>

#7 lore raw

PATCH 1/1 shadowsocks-libev: add connmarktos build option

Hi S?bastien,

Quoted 16 lines · DUPONCHEEL S?bastien
Quoted 5 lines
Quoted 3 lines
Quoted 2 lines

You should also add --disable-connmarktos (or the equivalent option) in the 'else' part of this condition.

Unfortunately there is no such option.

The AC_ARG_ENABLE macro in configure.ac automatically provides --enable-foo and --disable-foo.

The AC_ARG_ENABLE statement in shadowsocks looks broken, neither --disable-connmarktos nor --enable-connmarktos=no are working. In fact, it activates the feature.

ifeq ($(BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS),y) SHADOWSOCKS_LIBEV_DEPENDENCIES += libnetfilter_conntrack SHADOWSOCKS_LIBEV_CONF_OPTS += --enable-connmarktos else
SHADOWSOCKS_LIBEV_CONF_OPTS += --disable-connmarktos endif

Quoted 4 lines

seb at compile:src/buildroot ?shadowsocks?$ cat .config | grep CONNMARK
# BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS is not set
seb at compile:src/buildroot ?shadowsocks*?$ ldd ./output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/bin/ss-server | grep libnetfilter_conntrack.so.3

	libnetfilter_conntrack.so.3 => /home/seb/src/buildroot/output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/lib/libnetfilter_conntrack.so.3 (0x00006f816dde4000)

Did you try full rebuild? Changing the Buildroot config does not trigger rebuild of already built packages.

https://buildroot.org/downloads/manual/manual.html#full-rebuild

For a single package test you can use this shortcut instead of a full rebuild:

rm -r output/build/shadowsocks-libev-*
make shadowsocks-libev

baruch

--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

#8 lore raw

PATCH 1/1 shadowsocks-libev: add connmarktos build option

In reply to DUPONCHEEL Sébastien
Quoted 5 lines · DUPONCHEEL S?bastien

Hi Baruch,

Please see my feedback below :

Le 17/11/2018 ? 21:49, Baruch Siach a ?crit?:

[snip]

Quoted 5 lines
Quoted 2 lines

The AC_ARG_ENABLE macro in configure.ac automatically provides --enable-foo and --disable-foo.

The AC_ARG_ENABLE statement in shadowsocks looks broken, neither --disable-connmarktos nor --enable-connmarktos=no are working. In fact, it activates the feature.

Yes, that's a classic problem - people refuse to read documentation so they
don't notice that the third argument is not "code to run when the option is yes" but actually it is "code to run when the option is given".

So, either you fix this by patching shadowsocks-libev's configure.ac and replacing

- enable_connmarktos="yes"
+ enable_connmarktos="$enableval"

and sending the patch upstream, or you do

ifeq ($(BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS),y) SHADOWSOCKS_LIBEV_DEPENDENCIES += libnetfilter_conntrack SHADOWSOCKS_LIBEV_CONF_OPTS += --enable-connmarktos # --disable-connmarktos *enables* it.
endif

Obviously, the first option is preferred.

Regards,
Arnout

Quoted 28 lines

ifeq ($(BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS),y) SHADOWSOCKS_LIBEV_DEPENDENCIES += libnetfilter_conntrack SHADOWSOCKS_LIBEV_CONF_OPTS += --enable-connmarktos else
SHADOWSOCKS_LIBEV_CONF_OPTS += --disable-connmarktos endif

seb at compile:src/buildroot ?shadowsocks?$ cat .config | grep CONNMARK
# BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS is not set
seb at compile:src/buildroot ?shadowsocks*?$ ldd ./output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/bin/ss-server | grep libnetfilter_conntrack.so.3

	libnetfilter_conntrack.so.3 => /home/seb/src/buildroot/output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/lib/libnetfilter_conntrack.so.3 (0x00006f816dde4000)

Best regards,
DUPONCHEEL S?bastien.

Quoted 6 lines

baruch

--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#9 lore raw

PATCH 1/1 shadowsocks-libev: add connmarktos build option

Pull request opened upstream, thank you.

Best regards,
DUPONCHEEL S?bastien

Le 20/11/2018 ? 23:25, Arnout Vandecappelle a ?crit?:

Quoted 60 lines · DUPONCHEEL S?bastien
Quoted 5 lines

Hi Baruch,

Please see my feedback below :

Le 17/11/2018 ? 21:49, Baruch Siach a ?crit?:

[snip]

Quoted 4 lines
Quoted 2 lines

The AC_ARG_ENABLE macro in configure.ac automatically provides --enable-foo and --disable-foo.

The AC_ARG_ENABLE statement in shadowsocks looks broken, neither --disable-connmarktos nor --enable-connmarktos=no are working. In fact, it activates the feature.

Yes, that's a classic problem - people refuse to read documentation so they
don't notice that the third argument is not "code to run when the option is yes" but actually it is "code to run when the option is given".

So, either you fix this by patching shadowsocks-libev's configure.ac and replacing

(quoted diff) +1 -1
-  enable_connmarktos="yes"
+  enable_connmarktos="$enableval"

and sending the patch upstream, or you do

ifeq ($(BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS),y) SHADOWSOCKS_LIBEV_DEPENDENCIES += libnetfilter_conntrack SHADOWSOCKS_LIBEV_CONF_OPTS += --enable-connmarktos # --disable-connmarktos *enables* it.
endif

Obviously, the first option is preferred.

Regards,
Arnout

Quoted 26 lines

ifeq ($(BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS),y) SHADOWSOCKS_LIBEV_DEPENDENCIES += libnetfilter_conntrack SHADOWSOCKS_LIBEV_CONF_OPTS += --enable-connmarktos else
SHADOWSOCKS_LIBEV_CONF_OPTS += --disable-connmarktos endif

seb at compile:src/buildroot ?shadowsocks?$ cat .config | grep CONNMARK
# BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS is not set
seb at compile:src/buildroot ?shadowsocks*?$ ldd ./output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/bin/ss-server | grep libnetfilter_conntrack.so.3

	libnetfilter_conntrack.so.3 => /home/seb/src/buildroot/output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/lib/libnetfilter_conntrack.so.3 (0x00006f816dde4000)

Best regards,
DUPONCHEEL S?bastien.

Quoted 6 lines

baruch

--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot