I’ve compiled the OpenSprinkler firmware 2.1.9(7) using the build instructions given in https://openthings.freshdesk.com/support/solutions/articles/5000165132-how-to-compile-opensprinkler-firmware.
Besides using the modified UIPEthernet library, available in the OpenSprinkler github repository: https://github.com/OpenSprinkler/UIPEthernet/archive/fixes/dhcp.zip, some changes described by the script given above need to be made:
– Rename the library “UIPEthernet-fixes-dhcp” to “UIPEthernet”
– Get the library for the OLED display from https://github.com/ThingPulse/esp8266-oled-ssd1306.git, but backup to 4.1.0 as the latest version of the OLED code isn’t compatible:
cd ~/Arduino/libraries/esp8266-oled-ssd1306, git checkout tags/4.1.0
– Rename the library “esp8266-oled-ssd1306” to “SSD1306”.
– Get the library for the MQTT Arduino Client for MQTT from: https://github.com/knolleary/pubsubclient.git and remove the tests directory as it will not compile but is unnecessary: rm -rf ~/Arduino/libraries/pubsubclient/tests
With these changes the compilation was successful. The Ubuntu based Linux-Distribution Linux Mint 20.1 (Codename Ulyssa) with its Cinnamon Edition was used to perform the compilation. VirtualBox 6.1.22 was installed to run Linux.