Recursive dependency detected! PACKAGE_python3-pymysql - fresh repo

Hello folks,

I tried to build OpenWrt but an error message appeared when trying
$ make menuconfig:

Collecting package info: done
tmp/.config-package.in:33826:error: recursive dependency detected!
tmp/.config-package.in:33826:	symbol PACKAGE_python3-pymysql depends on PYTHON3_PYMYSQL_SHA_PASSWORD_SUPPORT
feeds/packages/lang/python/pymysql/Config.in:4:	symbol PYTHON3_PYMYSQL_SHA_PASSWORD_SUPPORT depends on PACKAGE_python3-pymysql
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"

Guessed that the commit in https://github.com/openwrt/packages/pull/22301/files should help but it seems it doesn't.
Don't quite understand this.

My repo was cloned today. Commands were:
$ git checkout v23.05.2
$ ./scripts/feeds update -a
$ ./scripts/feeds install -a
$ make menuconfig

Linux flavor is:
$ uname -r
6.1.62-1-MANJARO

Best regards.

Log follows:

$ ./scripts/feeds update -a
Updating feed 'packages' from 'https://git.openwrt.org/feed/packages.git^8e3a1824645f5e73ec44c897ac0755c53fb4a1f8' ...
Cloning into './feeds/packages'...
remote: Enumerating objects: 194627, done.
remote: Counting objects: 100% (194627/194627), done.
remote: Compressing objects: 100% (80145/80145), done.
remote: Total 194627 (delta 113760), reused 183568 (delta 104536), pack-reused 0
Receiving objects: 100% (194627/194627), 51.88 MiB | 2.27 MiB/s, done.
Resolving deltas: 100% (113760/113760), done.
Updating files: 100% (4550/4550), done.
Switched to a new branch '8e3a1824645f5e73ec44c897ac0755c53fb4a1f8'
/home/po/tmp/openwrt
Updating feed 'luci' from 'https://git.openwrt.org/project/luci.git^7739e9f5b03b830f51d53c384be4baef95054cb3' ...
Cloning into './feeds/luci'...
remote: Enumerating objects: 43556, done.
remote: Counting objects: 100% (43556/43556), done.
remote: Compressing objects: 100% (8540/8540), done.
remote: Total 425876 (delta 37580), reused 36704 (delta 31800), pack-reused 382320
Receiving objects: 100% (425876/425876), 189.58 MiB | 2.24 MiB/s, done.
Resolving deltas: 100% (253705/253705), done.
Updating files: 100% (4626/4626), done.
Updating files: 100% (2101/2101), done.
Switched to a new branch '7739e9f5b03b830f51d53c384be4baef95054cb3'
/home/po/tmp/openwrt
Updating feed 'routing' from 'https://git.openwrt.org/feed/routing.git^83ef3784a9092cfd0a900cc28e2ed4e13671d667' ...
Cloning into './feeds/routing'...
remote: Enumerating objects: 11190, done.
remote: Counting objects: 100% (11190/11190), done.
remote: Compressing objects: 100% (6718/6718), done.
remote: Total 11190 (delta 5135), reused 9083 (delta 3826), pack-reused 0
Receiving objects: 100% (11190/11190), 2.57 MiB | 1.50 MiB/s, done.
Resolving deltas: 100% (5135/5135), done.
Switched to a new branch '83ef3784a9092cfd0a900cc28e2ed4e13671d667'
/home/po/tmp/openwrt
Updating feed 'telephony' from 'https://git.openwrt.org/feed/telephony.git^9746ae8f964e18f04b64fbe1956366954ff223f8' ...
Cloning into './feeds/telephony'...
remote: Enumerating objects: 11600, done.
remote: Counting objects: 100% (11600/11600), done.
remote: Compressing objects: 100% (6967/6967), done.
remote: Total 11600 (delta 6522), reused 8009 (delta 4404), pack-reused 0
Receiving objects: 100% (11600/11600), 2.33 MiB | 1.90 MiB/s, done.
Resolving deltas: 100% (6522/6522), done.
Switched to a new branch '9746ae8f964e18f04b64fbe1956366954ff223f8'
/home/po/tmp/openwrt
Create index file './feeds/packages.index'
Checking 'true'... ok.
Checking 'false'... ok.
Checking 'working-make'... ok.
Checking 'case-sensitive-fs'... ok.
Checking 'proper-umask'... ok.
Checking 'gcc'... ok.
Checking 'working-gcc'... ok.
Checking 'g++'... ok.
Checking 'working-g++'... ok.
Checking 'ncurses.h'... ok.
Checking 'git'... ok.
Checking 'rsync'... ok.
Checking 'perl-data-dumper'... ok.
Checking 'perl-findbin'... ok.
Checking 'perl-file-copy'... ok.
Checking 'perl-file-compare'... ok.
Checking 'perl-thread-queue'... ok.
Checking 'tar'... ok.
Checking 'find'... ok.
Checking 'bash'... ok.
Checking 'xargs'... ok.
Checking 'patch'... ok.
Checking 'diff'... ok.
Checking 'cp'... ok.
Checking 'seq'... ok.
Checking 'awk'... ok.
Checking 'grep'... ok.
Checking 'egrep'... ok.
Checking 'getopt'... ok.
Checking 'realpath'... ok.
Checking 'stat'... ok.
Checking 'gzip'... ok.
Checking 'unzip'... ok.
Checking 'bzip2'... ok.
Checking 'wget'... ok.
Checking 'install'... ok.
Checking 'perl'... ok.
Checking 'python'... ok.
Checking 'python3'... ok.
Checking 'python3-distutils'... ok.
Checking 'python3-stdlib'... ok.
Checking 'file'... ok.
Checking 'which'... ok.
Checking 'argp.h'... ok.
Checking 'fts.h'... ok.
Checking 'obstack.h'... ok.
Checking 'libintl.h'... ok.
Checking 'ldconfig-stub'... ok.
Collecting package info: done
Collecting target info: done
Create index file './feeds/luci.index'
Collecting package info: done
Collecting target info: done
Create index file './feeds/routing.index'
Collecting package info: done
Collecting target info: done
Create index file './feeds/telephony.index'
Collecting package info: done
Collecting target info: done

$ ./scripts/feeds install -a
Collecting package info: done
Collecting target info: done
WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist
WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist
WARNING: Makefile 'package/utils/busybox/Makefile' has a build dependency on 'libpam', which does not exist
WARNING: Makefile 'package/boot/kexec-tools/Makefile' has a dependency on 'liblzma', which does not exist
WARNING: Makefile 'package/network/services/lldpd/Makefile' has a dependency on 'libnetsnmp', which does not exist
WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a dependency on 'libpam', which does not exist
WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a dependency on 'libpam', which does not exist
WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a build dependency on 'libpam', which does not exist
Installing all packages from feed packages.
Installing package '2to3' from packages
Installing package 'python3' from packages

[ The line "Installing package 'bluez' from packages" and subsequent lines to
"Installing package 'sngrep' from telephony" were removed in order to keep the post shorter. ]

Installing package 'yate' from telephony
$

$ make menuconfig
Collecting package info: done
tmp/.config-package.in:33826:error: recursive dependency detected!
tmp/.config-package.in:33826: symbol PACKAGE_python3-pymysql depends on PYTHON3_PYMYSQL_SHA_PASSWORD_SUPPORT
feeds/packages/lang/python/pymysql/Config.in:4: symbol PYTHON3_PYMYSQL_SHA_PASSWORD_SUPPORT depends on PACKAGE_python3-pymysql
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"

1 Like

I have the same problem (as I do not use python, I simply ignore it and my build has no problem), I have not checked it out but maybe this commit is not backported to 23.05.2?

Thanks for info.

I can probably ignore Python. I'm only interested in making a package in C.

It seems that if I check out the master branch,
"scripts/feeds update" will get the latest feeds (and the error is not shown),
and if I checkout the v23.05.2 tag, "scripts/feeds update" will get a
particular commit in the feeds.
Just guessing how it works...

So I have successfully made a package with v23.05.2, ignoring the error.

1 Like

I just checked and it has been backported to 23.05.

So if you check out 23.05/Main you should be good

I cloned master, then checked tag v23.05.2, then updated and installed all feeds. And the bug shows up... is there something better than manually applying the Makefile patch?

If you check out a tag it is fixed at that tag and you will not receive the backported fixes.
You should checkout 23.05 SNAPSHOT:
git checkout openwrt-23.05

2 Likes

It works. Thanks.

The openwrt-23.05 branch is the bugfix branch, right? So in theory should be safe to use it instead of the release one. It is the code to be released as (currently) 23.05.3... right?

1 Like

Exactly :+1:

If your problem is solved, please consider marking this topic as [Solved]. See How to mark a topic as [Solved] for a short how-to.

I can't do it, I'm not the poster. @Axel can ...

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.