tim-janik / anklang

MIDI and Audio Synthesizer and Composer
https://anklang.testbit.eu/
Mozilla Public License 2.0
51 stars 3 forks source link

Build breaks: cp: ./ls-tree.lst: No such file or directory #18

Closed yurivict closed 5 months ago

yurivict commented 9 months ago

I build on FreeBSD 13.2 from a tarball, not a git repository.

Either the build is broken from tarballs, or perhaps some shell command fails and causes this.

tim-janik commented 9 months ago

The tarball builds are ok. The latest nightly that was just built a few hours ago was built directly from the generated tarball. You can upload the full build log here and I can take a peak. Make sure to build with make V=1 so the actual shell commands can be seen. Does npm & electronjs work on FreeBSD BTW? Both are needed for a build.

tim-janik commented 9 months ago

I'm referring to dist tarballs, not the github snapshots:

https://github.com/tim-janik/anklang/releases/download/v0.2.0.nightly2309212136/anklang-0.2.0.nightly2309212136.tar.zst

tim-janik commented 9 months ago

Note that the latest CI build (which is not a nightly) succeeded and produced a (largish) assets.zip file. Within that, there is a dist tarball that already has the '/usr/bin/env bash' fix applied for #17.

https://github.com/tim-janik/anklang/actions/runs/6268281811

yurivict commented 9 months ago
===>  Building for anklang-0.2.0
gmake[1]: Entering directory '/usr/ports/audio/anklang/work/anklang-0.2.0'
realpath: illegal option -- -
usage: realpath [-q] [path ...]
  MODE     production
  GEN      out/ls-tree.d
if test -r .git ; then                                  \
        git ls-tree -r --name-only HEAD > out/ls-tree.lst ;     \
   else                                                         \
        cp ./ls-tree.lst out/ls-tree.lst ;                      \
   fi
  CHECK    Configuration dependencies...
pkg-config --exists --print-errors 'alsa >= 1.0.5 flac >= 1.2.1 ogg >= 1.3.4 opus >= 1.3.1 glib-2.0 >= 2.32.3 gmodule-no-export-2.0 >= 2.32.3 gthread-2.0 >= 2.32.3 gobject-2.0 >= 2.32.3 dbus-1 >= 1.12.16'
cp: ./ls-tree.lst: No such file or directory
convert --version 2>&1 | grep -q 'Version:.*\bImageMagick\b' \
  || { echo "out/config-cache.mk: failed to detect ImageMagick convert: convert" >&2 ; false ; }
out/config-cache.mk: failed to detect ImageMagick convert: convert
gmake[1]: *** [misc/config-checks.mk:108: out/config-cache.mk] Error 1
gmake[1]: Leaving directory '/usr/ports/audio/anklang/work/anklang-0.2.0'
===> Compilation failed unexpectedly.
yurivict commented 9 months ago

Apparently realpath fails. When some command fails - the whole batch should fail. Continuing after a failed command in shell scripts is a problem.

tim-janik commented 9 months ago

The shell scripts do fail, they have set -Ee, this one is probably in the Makefile setup:

$ git -P grep realpath
Makefile.mk:# if 'realpath --relative-to' is missing, os.path.realpath could be used as fallback
Makefile.mk:build2srcdir         != realpath --relative-to $(builddir) .

The project is using GNU-isms in a lot of places (realpath --relative-to is part of GNU coreutils): realpath --relative-to

tim-janik commented 9 months ago

I build on FreeBSD 13.2 from a tarball, not a git repository.

Either the build is broken from tarballs, or perhaps some shell command fails and causes this.

On a related note... I don't know if electronjs works on FreeBSD, but if the majority of npm packages can be made to work, the UI could also run inside a regular web browser. I'm exploring that in another repo: https://github.com/tim-janik/web-mode https://github.com/tim-janik/webhead If that could be ported to FreeBSD, we could use it as a drop-on for Electron, since Anklang does not depend on the Nodejs integration of Electron.

tim-janik commented 9 months ago

Note that the latest CI build (which is not a nightly) succeeded and produced a (largish) assets.zip file. Within that, there is a dist tarball that already has the '/usr/bin/env bash' fix applied for #17.

https://github.com/tim-janik/anklang/actions/runs/6268281811

The last run now has a separate dist-tarball in a smaller archive: https://github.com/tim-janik/anklang/actions/runs/6268907244

tim-janik commented 5 months ago

Since there has been no activity here lately, I'll close this. Please re-open if you have further questions...