Can't install luci-ssl-nginx, missing uwsgi dependencies

This worked last night (Aug 15) but not this morning (Aug 16)

opkg update
opkg install luci-ssl-nginx

Now it complains about uwsgi dependencies

  • satisfy_dependencies_for: Cannot satisfy the following dependencies for luci-ssl-nginx:
  •  uwsgi
    
  •  uwsgi-luci-support
    
  • opkg_install_cmd: Cannot install package luci-ssl-nginx.

I see in the repository, these packages which were installed earlier are no longer there

http://downloads.openwrt.org/releases/19.07.3/packages/mips_24kc/packages/uwsgi_2.0.18-1_mips_24kc.ipk
http://downloads.openwrt.org/releases/19.07.3/packages/mips_24kc/packages/uwsgi-syslog-plugin_2.0.18-1_mips_24kc.ipk
http://downloads.openwrt.org/releases/19.07.3/packages/mips_24kc/packages/uwsgi-cgi-plugin_2.0.18-1_mips_24kc.ipk
http://downloads.openwrt.org/releases/19.07.3/packages/mips_24kc/packages/uwsgi-luci-support_2.0.18-1_mips_24kc.ipk

Suggestions?

uwsgi has a dependency on libpcre, which was moved from the feeds to the core packages a few days ago. (https://github.com/openwrt/packages/commit/6f5412e6beb25d94cb30f088177900f2619af514)

If you are updating your feeds, but still maintaining a 19.07.3 base, it probably won't work. It'll report that xxx has a dependency on libpcre and cannot be found type error. I'm sure if it already isn't backported, it'll be in the next milestone release.

If you are building from source, make sure you either pull or rebase from the master branch, which should fix it.

Thanks for the quick reply. I understand what you are saying but am having trouble seeing how it applies to this particular instance.

I am using a prebuilt 19.07.3 openwrt for my platform.

opkg is using this repository

https://downloads.openwrt.org/releases/19.07.3/packages/mips_24kc/

this repository currently has libpcre in "packages". The package can be found below

https://downloads.openwrt.org/releases/19.07.3/packages/mips_24kc/packages/libpcre_8.43-1_mips_24kc.ipk

when I do

opkg update
opkg list | grep libpcre

It can find the libpcre package, so whether it is in packages or base, it should be able to install it.

when I do

opkg list | grep uwsgi

It finds none of the packages.

So it sounds like you are saying things won't install because libpcre is a dependency and it moved from packages to base.

It hasn't done that (yet) for the respository I am using above as it is still in the packages directory.

Even if it did move to base, wouldn't that get accounted for when I do

opkg update

and it downloads the current package lists?

I think my problem is the uwsgi-* packages are no longer present in the repository I am using. Maybe that is the result of some build time dependency that caused the uwsgi-* packages to not build because of the move you mentioned.

However, I don't think it is resulting in an install time dependency problem with libpcre because opkg can find libpcre it just doesn't find uwsgi-* which don't exist anymore in the most recent list of packages opkg update downloaded.

Sorry in advance if I am not understanding how things work.

I'm not sure if they backport changes, since it would defeat the purpose of freezing the tree for a release. This means that the buildbot servers may be trying to build from an updated feed that no longer has the libpcre, so some packages that require it might fail. The fact that the 19.07.3 Release repo is still building a libpcre package means it hasn't been updated.

19.07.3 builds libpcre_8.43-1_mips_24kc.ipk 79.4 KB Sun Aug 16 06:17:42 2020, where-as the snapshot doesn't.

I'm not seeing any CURRENT failogs, and I don't have access to previous ones, but I can tell you that what you are looking for is available in the snapshots repo.. So, if it was broken, it's at least fixed in the nightly builds, but I don't know if they'll alter 19.07.3 to update it, or just wait until the next release to fix it.

https://downloads.openwrt.org/snapshots/packages/mips_24kc/packages/

uwsgi-cgi-plugin_2.0.19.1-1_mips_24kc.ipk	8.9 KB	Sun Aug 16 03:43:18 2020
uwsgi-logfile-plugin_2.0.19.1-1_mips_24kc.ipk	2.6 KB	Sun Aug 16 03:43:17 2020
uwsgi-luci-support_2.0.19.1-1_mips_24kc.ipk	2.0 KB	Sun Aug 16 03:43:19 2020
uwsgi-python3-plugin_2.0.19.1-1_mips_24kc.ipk	52.0 KB	Sun Aug 16 03:43:18 2020
uwsgi-syslog-plugin_2.0.19.1-1_mips_24kc.ipk	2.4 KB	Sun Aug 16 03:43:17 2020
uwsgi_2.0.19.1-1_mips_24kc.ipk	258.7 KB	Sun Aug 16 03:43:16 2020

last build changes and compile, appears to be an issue; wait a day?

The feeds get updated, but the CORE doesn't (which is where pcre now lives).

Collecting package info: feeds/packages/net/uwsgi
ERROR: please fix feeds/packages/net/uwsgi/Makefile - see logs/feeds/packages/net/uwsgi/dump.txt for details

Unless they backport the change (https://github.com/openwrt/openwrt/commit/e16b84df15c1eac7b389fb715c9d00969acf3b30#diff-811e67a81272f40b87b5125fc38a15fb) and the follow up commits, 19.07.3 can't find libpcre because it is no longer in the feeds where 19.07.3 expects it to be (feeds/packages/net/uwsgi) because the source code moved it to package/libs/pcre (which is not updated by the upstream feeds)

I would wait until the next full release (19.07.4?) which will fix it.. or, use one of the Snapshot images and repo.

That's how I see it anyway, I'm sure someone will correct me if I'm wrong :slight_smile:

Thank you for the explanation.

So if I understand correctly, the "core" was frozen/tagged at the time of release while the "packages" aren't, at least not the ones above.

A library got moved from "packages" to "core"

The release repository is built using a mixed environment, where the "core" is the frozen/tagged release snapshot while the "packages" are the latest master trunk. The packages that depend on libpcre will expect it to be in "core" but since they are built against a frozen/tagged "core", libpcre isn't there.

This breaks the build of packages (ie the latest versions) which expect libpcre to be in the new location. When these builds break, the associated packages are not created.

It would seem someone could have tagged and/or branched the set of packages prior to the library move, so the repository would always have a consistent set of packages that can be built with the tagged/frozen/released "core"

Again, thanks for your explanations.

Fixed today., to check on what is coming in the pipe on tagged versions, packages, master ...

1 Like

Great, thanks for letting me know and also the tips on how to track down changes.

luci-ssl-nginx installs correction now

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