Project

General

Profile

Actions

Bug #1012

closed

Monkey does not build with latest toolchain

Added by Hammel 9 months ago. Updated 9 months ago.

Status:
Closed
Priority:
Immediate
Assignee:
Target version:
Start date:
30 Jul 2023
Due date:
% Done:

100%

Estimated time:
Severity:
01 - Critical

Description

The Monkey web server build uses version 1.2.2. This doesn't build with the latest toolchain updates because of multiple definitions of worker_sched_node and sched_list. Finding the defintions and commenting them out doesn't quite clean up the errors.

Bumping to the latest version, 1.7.1, doesn't work because it doesn't cross compile easily.

Maybe this is the impetus I need to migrate to mongoose instead. But I don't know if they are 1-to-1 compatible.

Actions #1

Updated by Hammel 9 months ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 20

I can change the configure options to get v1.6.0 to build but it also has multiple-defined variable errors.

I can get 1.7.0 and 1.7.1 to get past configure but it dies trying to find cmake:

make[1]: Entering directory '/home/mjhammel/src/ximba/monkey/bld/monkey-1.7.0'
make[1]: /snap/cmake/858/bin/cmake: No such file or directory
Actions #2

Updated by Hammel 9 months ago

The cmake config is just plain broken on my system and doesn't build the application. It has references to a snap install of cmake and a developers custom directories. I don't know where this came from, but I hate cmake and don't want to waste any more time on this.

Monkey is used for piboxwww only (and maybe something in Ironman, but I think it's just a variation of piboxwww). It serves up php and javascript. I want to replace Monkey. So I just need something that can run server side php. Since I'm avoiding web tech in PiBox I only need a very simple web interface to serve up webcam videos, and most of that processing happens on the client side.

There are some options to look at. Busybox httpd might work but it's not clear if it will serve up php. However it seems many embedded systems use lighttpd instead. This would be a slight bigger binary but might be the easiest to switch to. lighttpd builds with autoconf.

Busybox can be configured with httpd. Buildroot can be configured with lighttpd. In both cases I can drop monkey completely but will need cusom config files for each solution that matches (at a minimum) the webroot used with Monkey.

OpenWRT use "uhttpd": but this appears to also use cmake, so I'm going to avoid that.

Actions #3

Updated by Hammel 9 months ago

I've enabled httpd in Busybox (for Buildroot build) and lighttpd in Buildroot.

Buildroot is rebuilding from scratch. Once completed I just need to verify that both servers are there and can run. I'll investigate configuring them to work with pmsui later.

I should disable the monkey build in the systems pkglist's in the metabuild for now. I'll retest them with the new web servers once I learn to configure them.

Actions #4

Updated by Hammel 9 months ago

  • Status changed from In Progress to Closed
  • % Done changed from 20 to 100

Busybox and Buildroot config changes tested on hardware (web servers are available and report help status). Each will be tested for suitability in their own RM issue separate from this one.

Changes committed and pushed.

Closing issue.

Actions

Also available in: Atom PDF