Open LeoSum8 opened 9 months ago
Hi again, thank you @alufers for fixing the xxd issue. My build was failing due to this one.
I am now able to build again, however now I am encountering another weird behaviour but I am able to work around:
I run the build inside a docker container using the latest nixos/nix image via
git clone --recursive --branch develop https://github.com/muvox-io/euphonium app
cd app
nix --extra-experimental-features "nix-command flakes" build "git+file://$(pwd)?submodules=1#app-esp32" -L
the build stops/fails at:
...
euphonium-esp32> -- Building ESP-IDF components for target esp32
euphonium-esp32> Processing 1 dependencies:
euphonium-esp32> [1/1] idf (5.2.1)
euphonium-esp32> -- Project sdkconfig file /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/targets/esp32/sdkconfig
euphonium-esp32> -- Compiler supported targets: xtensa-esp-elf
euphonium-esp32> -- Looking for sys/types.h
euphonium-esp32> -- Looking for sys/types.h - found
euphonium-esp32> -- Looking for stdint.h
euphonium-esp32> -- Looking for stdint.h - found
euphonium-esp32> -- Looking for stddef.h
euphonium-esp32> -- Looking for stddef.h - found
euphonium-esp32> -- Check size of time_t
euphonium-esp32> -- Check size of time_t - done
euphonium-esp32> -- Found Python3: /nix/store/yyx5g9vn2qzrflsfysz1pm577qmwgs6h-python3-3.10.13-env/bin/python3.10 (found version "3.10.13") found components: Interpreter
euphonium-esp32> -- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS
euphonium-esp32> -- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS - Success
euphonium-esp32> -- App "euphonium-esp32" version: 1
euphonium-esp32> -- Adding linker script /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/targets/esp32/build/esp-idf/esp_system/ld/memory.ld
euphonium-esp32> -- Adding linker script /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_system/ld/esp32/sections.ld.in
euphonium-esp32> -- Adding linker script /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_rom/esp32/ld/esp32.rom.ld
euphonium-esp32> -- Adding linker script /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_rom/esp32/ld/esp32.rom.api.ld
euphonium-esp32> -- Adding linker script /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
euphonium-esp32> -- Adding linker script /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_rom/esp32/ld/esp32.rom.newlib-data.ld
euphonium-esp32> -- Adding linker script /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld
euphonium-esp32> -- Adding linker script /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
euphonium-esp32> -- Adding linker script /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_rom/esp32/ld/esp32.rom.eco3.ld
euphonium-esp32> -- Adding linker script /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/soc/esp32/ld/esp32.peripherals.ld
euphonium-esp32> fatal: not a git repository (or any of the parent directories): .git
euphonium-esp32> fatal: not a git repository (or any of the parent directories): .git
euphonium-esp32> CMake Deprecation Warning at /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/core/external/bell/CMakeLists.txt:1 (cmake_minimum_required):
euphonium-esp32> Compatibility with CMake < 3.5 will be removed from a future version of
euphonium-esp32> CMake.
euphonium-esp32> Update the VERSION argument <min> value or use a ...<max> suffix to tell
euphonium-esp32> CMake that the project does not need compatibility with older versions.
euphonium-esp32> -- Bell options:
euphonium-esp32> -- Disable all codecs: OFF
euphonium-esp32> -- - AAC audio codec: ON
euphonium-esp32> -- - MP3 audio codec: ON
euphonium-esp32> -- - Vorbis audio codec: ON
euphonium-esp32> -- - Opus audio codec: ON
euphonium-esp32> -- - ALAC audio codec: ON
euphonium-esp32> -- Disable built-in audio sinks: OFF
euphonium-esp32> -- Use Vorbis float version: OFF
euphonium-esp32> -- - ALSA sink: OFF
euphonium-esp32> -- - PortAudio sink: OFF
euphonium-esp32> -- Use cJSON only: OFF
euphonium-esp32> -- Disable Fmt: OFF
euphonium-esp32> -- Disable Mqtt: OFF
euphonium-esp32> -- Disable Regex: OFF
euphonium-esp32> -- Disable Web server: OFF
euphonium-esp32> -- Found Nanopb: /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/core/external/bell/external/nanopb
euphonium-esp32> /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/core/external/bell/external/nanopb
euphonium-esp32> CMake Deprecation Warning at /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/core/external/bell/external/opus/CMakeLists.txt:1 (cmake_minimum_required):
euphonium-esp32> Compatibility with CMake < 3.5 will be removed from a future version of
euphonium-esp32> CMake.
euphonium-esp32> Update the VERSION argument <min> value or use a ...<max> suffix to tell
euphonium-esp32> CMake that the project does not need compatibility with older versions.
euphonium-esp32> CMake Error at /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/core/external/bell/CMakeLists.txt:283 (add_subdirectory):
euphonium-esp32> add_subdirectory given source "external/nlohmann_json" which is not an
euphonium-esp32> existing directory.
euphonium-esp32> CMake Deprecation Warning at /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/core/external/cspot/cspot/CMakeLists.txt:1 (cmake_minimum_required):
euphonium-esp32> Compatibility with CMake < 3.5 will be removed from a future version of
euphonium-esp32> CMake.
euphonium-esp32> Update the VERSION argument <min> value or use a ...<max> suffix to tell
euphonium-esp32> CMake that the project does not need compatibility with older versions.
euphonium-esp32> -- Components: app_trace app_update bootloader bootloader_support bt cmock console core cxx driver efuse esp-tls esp_adc esp_app_format esp_bootloader_format esp_coex esp_common esp_eth esp_event esp_gdbstub esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server esp_hw_support esp_lcd esp_littlefs esp_local_ctrl esp_mm esp_netif esp_netif_stack esp_partition esp_phy esp_pm esp_psram esp_ringbuf esp_rom esp_system esp_timer esp_wifi espcoredump espressif__mdns esptool_py fatfs freertos hal heap http_parser idf_test ieee802154 json log lwip main mbedtls mqtt newlib nvs_flash nvs_sec_provider openthread partition_table perfmon protobuf-c protocomm pthread sdmmc soc spi_flash spiffs tcp_transport ulp unity usb vfs wear_levelling wifi_provisioning wpa_supplicant xtensa
euphonium-esp32> -- Component paths: /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/app_trace /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/app_update /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/bootloader /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/bootloader_support /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/bt /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/cmock /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/console /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/targets/esp32/components/core /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/cxx /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/driver /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/efuse /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp-tls /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_adc /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_app_format /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_bootloader_format /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_coex /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_common /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_eth /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_event /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_gdbstub /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_hid /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_http_client /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_http_server /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_https_ota /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_https_server /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_hw_support /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_lcd /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/targets/esp32/components/esp_littlefs /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_local_ctrl /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_mm /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_netif /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_netif_stack /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_partition /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_phy /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_pm /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_psram /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_ringbuf /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_rom /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_system /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_timer /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esp_wifi /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/espcoredump /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/targets/esp32/components/espressif__mdns /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/esptool_py /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/fatfs /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/freertos /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/hal /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/heap /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/http_parser /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/idf_test /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/ieee802154 /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/json /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/log /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/lwip /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/targets/esp32/main /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/mbedtls /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/mqtt /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/newlib /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/nvs_flash /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/nvs_sec_provider /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/openthread /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/partition_table /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/perfmon /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/protobuf-c /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/protocomm /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/pthread /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/sdmmc /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/soc /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/spi_flash /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/spiffs /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/tcp_transport /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/ulp /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/unity /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/usb /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/vfs /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/wear_levelling /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/wifi_provisioning /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/wpa_supplicant /nix/store/y3m954ir2l27dirgs7s4iphb2p1s1p8d-esp-idf-5.2.1/sdk/components/xtensa
euphonium-esp32> -- Configuring incomplete, errors occurred!
euphonium-esp32> cmake failed with exit code 1, output of the command is in the /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/targets/esp32/build/log/idf_py_stderr_output_22051 and /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/targets/esp32/build/log/idf_py_stdout_output_22051
I think the important part is:
euphonium-esp32> CMake Error at /tmp/nix-build-euphonium-esp32.drv-0/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/core/external/bell/CMakeLists.txt:283 (add_subdirectory):
euphonium-esp32> add_subdirectory given source "external/nlohmann_json" which is not an
euphonium-esp32> existing directory.
nlohmann_json is there in the repo:
bash-5.2# ls -la /app/src/core/external/bell/external/
total 60
drwxr-xr-x 15 root root 4096 May 7 10:07 .
drwxr-xr-x 8 root root 4096 May 7 10:07 ..
drwxr-xr-x 5 root root 4096 May 7 10:07 alac
drwxr-xr-x 6 root root 4096 May 7 10:07 cJSON
drwxr-xr-x 3 root root 4096 May 7 10:07 civetweb
drwxr-xr-x 7 root root 4096 May 7 10:07 fmt
drwxr-xr-x 2 root root 4096 May 7 10:07 libhelix-mp3
drwxr-xr-x 3 root root 4096 May 7 10:07 mdnssvc
drwxr-xr-x 3 root root 4096 May 7 10:07 mqtt
drwxr-xr-x 12 root root 4096 May 7 10:07 nanopb
drwxr-xr-x 11 root root 4096 May 7 10:07 nlohmann_json
drwxr-xr-x 5 root root 4096 May 7 10:07 opencore-aacdec
drwxr-xr-x 14 root root 4096 May 7 10:07 opus
drwxr-xr-x 3 root root 4096 May 7 10:07 portaudio
drwxr-xr-x 4 root root 4096 May 7 10:07 tremor
but weirdly it doesn't seem to be copied to the temporary folder:
bash-5.2# ls -la /nix/store/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/src/core/external/bell/external/
total 52
dr-xr-xr-x 13 root root 4096 May 7 10:59 .
dr-xr-xr-x 8 root root 4096 Jan 1 1970 ..
dr-xr-xr-x 5 root root 4096 Jan 1 1970 alac
dr-xr-xr-x 6 root root 4096 Jan 1 1970 cJSON
dr-xr-xr-x 3 root root 4096 Jan 1 1970 civetweb
dr-xr-xr-x 7 root root 4096 Jan 1 1970 fmt
dr-xr-xr-x 2 root root 4096 Jan 1 1970 libhelix-mp3
dr-xr-xr-x 3 root root 4096 Jan 1 1970 mqtt
dr-xr-xr-x 12 root root 4096 Jan 1 1970 nanopb
dr-xr-xr-x 5 root root 4096 Jan 1 1970 opencore-aacdec
dr-xr-xr-x 14 root root 4096 Jan 1 1970 opus
dr-xr-xr-x 3 root root 4096 Jan 1 1970 portaudio
dr-xr-xr-x 4 root root 4096 Jan 1 1970 tremor
I notice that mdnssvc is also missing. So somehow not all of the source code seems to be copied.
So if I manually recopy the src folder (cp -R /app/src /nix/store/ibp2jwhmnsqsm7gilzq7gkrfzasln6c8-source/
) over the folder in the store, the build advances further and it finally completes the build of the esp32 image.
So I am able to complete the build this way but it seems weird. Am I using nix wrong?
Hi there, I would like to start contributing to this project. My c-coding-abilities are limited so I'd like to learn on the way and maybe start with getting the documentation up to date. I guess this would help others to chime in more easily in the future.
My initial starting point to look at this project was that I wanted to get euphonium working on the louder esp32 board for which I needed to create a new TAS5805m DAC driver. Since my esp32 board at hand only had 4mb of flash, I started forking the outdated master branch on which also the last available release (0.3.0 from July 2022) seems to be based. I got that to work on my fork: https://github.com/LeoSum8/euphonium_louderESP
Now I have a 16mb flash board sitting here and I am trying to integrate the driver into the current develop branch. However the build doesn't currently complete.
It fails with:
I am building via the nixos docker container.
Here's my Dockerfile:
I build and run it with:
Inside the container shell:
Could someone who successfully builds euphonium share some insight on how you do it? As stated in the beginning, I would offer to try and update the documentation accordingly as I learn.