Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

opennds: error: recursive dependency detected! #827

Closed
Alexey71 opened this issue Mar 25, 2022 · 15 comments
Closed

opennds: error: recursive dependency detected! #827

Alexey71 opened this issue Mar 25, 2022 · 15 comments

Comments

@Alexey71
Copy link

After update d078190

tmp/.config-package.in:101924:error: recursive dependency detected!
tmp/.config-package.in:101924:  symbol PACKAGE_iptables-legacy is selected by PACKAGE_iptables-nft
tmp/.config-package.in:102731:  symbol PACKAGE_iptables-nft is selected by PACKAGE_opennds
tmp/.config-package.in:100954:  symbol PACKAGE_opennds depends on PACKAGE_iptables-legacy
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"
@Alexey71
Copy link
Author

@mwarning @bluewavenet

@bluewavenet
Copy link
Contributor

@Alexey71
Where are you seeing this problem?
Extensive testing here does not give any problems.
Are you installing v9.7.0-2 on snapshot?
Have you installed iptables(legacy) before installing openNDS?

@Alexey71
Copy link
Author

@bluewavenet
Yes Snapshot

alexey@DESKTOP:~$ cd ~/openwrt && rm -rf tmp && git pull origin master && ./scripts/feeds update -a && ./scripts/feeds install -a && make menuconfig
From https://github.com/openwrt/openwrt
 * branch                  master     -> FETCH_HEAD
Already up to date.
Updating feed 'packages' from 'https://git.openwrt.org/feed/packages.git' ...
Already up to date.
Updating feed 'luci' from 'https://git.openwrt.org/project/luci.git' ...
Already up to date.
Updating feed 'routing' from 'https://git.openwrt.org/feed/routing.git' ...
Already up to date.
Updating feed 'telephony' from 'https://git.openwrt.org/feed/telephony.git' ...
Already up to date.
Create index file './feeds/packages.index'
Create index file './feeds/luci.index'
Create index file './feeds/routing.index'
Create index file './feeds/telephony.index'
Installing all packages from feed packages.
Installing all packages from feed luci.
Installing all packages from feed routing.
Installing all packages from feed telephony.
tmp/.config-package.in:101943:error: recursive dependency detected!
tmp/.config-package.in:101943:  symbol PACKAGE_iptables-legacy is selected by PACKAGE_iptables-nft
tmp/.config-package.in:102750:  symbol PACKAGE_iptables-nft is selected by PACKAGE_opennds
tmp/.config-package.in:100973:  symbol PACKAGE_opennds depends on PACKAGE_iptables-legacy
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"



*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

alexey@DESKTOP:~/openwrt$

@bluewavenet
Copy link
Contributor

@Alexey71
I regularly build using SDK and do not have any issues. Also the OpenWrt build bots are not having problems.
Is this a problem with your setup?
Maybe you need to do make clean or make dirclean before updating the feeds... not really my area of expertise.

@Alexey71
Copy link
Author

@bluewavenet
I have downloaded the source code. I didn't change any settings in menuconfig. After exiting menuconfig the error reappears

I see not only I have a mistake
openwrt/openwrt#9407 (comment)

@bluewavenet
Copy link
Contributor

@Alexey71
See my comments on openwrt/openwrt#9407 (comment)

@Alexey71
Copy link
Author

Alexey71 commented Mar 26, 2022

@bluewavenet
Can try https://github.com/Alexey71/routing/commit/8399a927961fd006c719f11ba3ffe5e2f98341b3
No more error

config-package.in

	config PACKAGE_opennds
		tristate "opennds............................... Open public network gateway daemon"
		default y if DEFAULT_opennds
		default m if ALL
		select PACKAGE_kmod-ipt-nat
		select PACKAGE_libpthread if USE_GLIBC
		select PACKAGE_kmod-ipt-conntrack
		select PACKAGE_librt if USE_GLIBC
		select PACKAGE_libmicrohttpd-no-ssl
		select PACKAGE_libc
		select PACKAGE_iptables-legacy if PACKAGE_iptables-nft<PACKAGE_opennds
		depends on m || (PACKAGE_nodogsplash != y)
		help
		 openNDS is a Captive Portal solution that offers an instant way to provide restricted access to the Internet.
		   With little or no configuration, a dynamically generated and adaptive splash page sequence is automatically served.
		   Both client driven Captive Portal Detection (CPD) and gateway driven Captive Portal Identification (CPI - RFC 8910 and RFC 8908) are supported.
		   Internet access is granted by either a click to continue button, or after credential verification as a result of filling in a login form.
		   The package incorporates the FAS API allowing many flexible customisation options.
		   The creation of sophisticated third party authentication applications is fully supported.
		   Internet hosted https portals can be implemented with no security errors, to inspire maximum user confidence.
		   This version requires iptables-nft.
		 https://github.com/opennds/opennds
		 Rob White <rob@blue-wave.net>

@bluewavenet
Copy link
Contributor

@Alexey71
It is this line that is the problem:
select PACKAGE_iptables-legacy if PACKAGE_iptables-nft<PACKAGE_opennds

It is incorrect and is not present in the config-package.in created by the sdk

@Alexey71
Copy link
Author

@bluewavenet
Ok. What if just deleteiptables-legacy
in 33 line
CONFLICTS:=nodogsplash nodogsplash2 iptables-legacy
Error is gone

@bluewavenet
Copy link
Contributor

@bluewavenet
Copy link
Contributor

@Alexey71

Ok. What if just delete iptables-legacy

Yes that will work, but what happens if someone already has iptables-legacy installed?
They will end up with both iptables-legacy and iptables-nft with unpredictable results.

@Alexey71
Copy link
Author

@bluewavenet
As far as I know, Snaphot (branch - master) uses nft by default.
Let's wait to see if anyone else has an answer.

@bluewavenet
Copy link
Contributor

@Alexey71

As far as I know, Snaphot (branch - master) uses nft by default.

Yes it does. In addition, it does not have iptables installed by default.

The problem is that the bug in the iptables makefile results in the installation of iptables-legacy and allows concurrent installation of iptables-nft - which is really bad.

It seems that build-bots and sdk take the last definition for PROVIDES, but the tool chain takes the first value.....

@Alexey71
Copy link
Author

fixed 8574cb4

@bluewavenet
Copy link
Contributor

@Alexey71
Be aware this fix, with the current iptables issue, will dramatically compromise the performance of openNDS when quotas are enabled if iptables-legacy is present. It also can result in conflicts with numerous other packages that also use iptables.
You will have to exercise a high level of caution when installing openNDS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants