Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Sep 2020 18:57:12 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 249348] audio/mixxx: Update to 2.3 (change build system to CMake)
Message-ID:  <bug-249348-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D249348

            Bug ID: 249348
           Summary: audio/mixxx: Update to 2.3 (change build system to
                    CMake)
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: acm@FreeBSD.org
          Reporter: fbsd-bugzilla@schlachter.ca
          Assignee: acm@FreeBSD.org
             Flags: maintainer-feedback?(acm@FreeBSD.org)

The Mixxx 2.3 beta was released in June, though I haven't been able to find=
 an
estimated release date for the final version. For porting, the major change=
 is
a transition to CMake for the build instead of SCons (see bug 247189).

I've opened this bug to document changes for building Mixxx 2.3 with CMake,
currently with the latest git snapshot of the 2.3 branch. I think most chan=
ges
for porting the (upcoming) new version will just be adaptations of the exis=
ting
patches for the new build system.

Here's what I've done so far to try to make it build:

- add security/qtkeychain, sysutils/upower, comms/hidapi as dependencies. (=
Some
of these are patched out in the current port.)

- portmidi: rather than patching this out, I think the best solution would =
be
to add a new portmidi port. After downloading the sources, I tried the
following changes to build:

   - configure script using ccmake is interactive. I had to manually specify
the JAVA_INCLUDE_PATH and JAVA_JVM_LIBRARY paths as described in
`portmidi/trunk/pm_linux/README_LINUX.txt`. The paths depend on the install=
ed
JDK version. There must be a good way to do this automatically. In my case,
these paths are: JAVA_INCLUDE_PATH=3D/usr/local/openjdk8/include and
JAVA_JVM_LIBRARY=3D/usr/local/openjdk8/jre/lib/amd64/server/libjvm.so
   - add `/usr/local/include` to `include_directories` on line 68 of
portmidi/trunk/CMakeLists.txt
   - set the env variable LIBRARY_PATH=3D/usr/local/lib in order to find as=
ound
library from alsa, may be better to instead patch in the `-L/usr/local/lib`
flag throughout the source files
   - patch two functions using deprecated `ftime` to use `gettimeofday` in
`porttime/ptlinux.c` (c.f. https://forum.freecadweb.org/viewtopic.php?t=3D1=
5724).

  For the default make target, I get this error around 93%:
    make[2]: don't know how to make pm_java/jportmidi/JPortMidi.class. Stop

  It is possible to patch out portmidi: keep existing patch to
controllers/controllermanager.cpp, remove REQUIRED keyword in CMakeLists.txt
for PortMidi, comment out `portmidicontroller.cpp` and `portmidienumerator.=
cpp`
around line 2365 of CMakeLists.txt. However, this causes build failures lat=
er
on that I haven't yet figured out.

- use system libusb. I'm not sure how to make this happen in CMakeLists.txt
(see lines around 2260). I don't use a USB controller, and configure succee=
ds
if the feature is disabled (cmake -DHID=3Doff ...). It should be possible t=
o pass
the flags '-DLIBUSB_INCLUDE_DIR=3D/usr/include
-DLIBUSB_LIBRARIES=3D/usr/lib/libusb.so' to the configure command, but this=
 fails
in logic around lib-hdiapi.

- add include directory for ogg.h in libshout. There may be a better way to=
 do
this, but I just added `/usr/local/include` to `include_directories` in
`lib/libshout/CMakeLists.txt`.

- change `endian.h` to `sys/endian.h`, and `byteswap.h` to
`infiniband/byteswap.h` in lib/kaitai/kaitaistream.cpp

With these changes (patching out portmidi since I haven't succeded in build=
ing
it yet), mixxx 2.3 configures successfully and builds partially (12%), fail=
ing
eventually with:

  In file included from
/home/david/Downloads/mixxx/cmake_build/mixxx-lib_autogen/T7JLZL2D4I/moc_po=
rtmidicontroller.cpp:10:
/home/david/Downloads/mixxx/cmake_build/mixxx-lib_autogen/T7JLZL2D4I/../../=
../src/controllers/midi/portmidicontroller.h:20:10:
fatal error:=20
      'portmidi.h' file not found
#include <portmidi.h>
         ^~~~~~~~~~~~

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-249348-7788>