ahlstromcj / sequencer64

A major reboot of Seq24. Current release 0.97.0 (2021-05-13), native JACK MIDI, Song recording, playlists, and a Windows/Qt version. For fresher code, see the Seq66 project. Note that trigger and mute-group-in-MIDI-file formats have evolved! Back up your work!
GNU Affero General Public License v3.0
237 stars 28 forks source link

Unable to compile on KDE Neon UE #142

Open absorber opened 6 years ago

absorber commented 6 years ago

Hello,

I'm trying to compile as per provided instructions but during the make phase, I get an error.

This was before I installed libjack-jackd2-dev, but this is after:

┌───| ~/sources/sequencer64 ](me@neon_UE)|[23:17][p:12514][bn:53][j:0]► [2] (master *%=)
└─$  make
Making all in resources/pixmaps
make[1]: Entering directory '/home/me/sources/sequencer64/resources/pixmaps'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/me/sources/sequencer64/resources/pixmaps'
Making all in libseq64
make[1]: Entering directory '/home/me/sources/sequencer64/libseq64'
Making all in include
make[2]: Entering directory '/home/me/sources/sequencer64/libseq64/include'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/me/sources/sequencer64/libseq64/include'
Making all in src
make[2]: Entering directory '/home/me/sources/sequencer64/libseq64/src'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/me/sources/sequencer64/libseq64/src'
make[2]: Entering directory '/home/me/sources/sequencer64/libseq64'
Top source-directory 'top_srcdir' is ..
* * * * * All libseq64 build items completed * * * * *
make[2]: Leaving directory '/home/me/sources/sequencer64/libseq64'
make[1]: Leaving directory '/home/me/sources/sequencer64/libseq64'
Making all in seq_rtmidi
make[1]: Entering directory '/home/me/sources/sequencer64/seq_rtmidi'
Making all in include
make[2]: Entering directory '/home/me/sources/sequencer64/seq_rtmidi/include'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/me/sources/sequencer64/seq_rtmidi/include'
Making all in src
make[2]: Entering directory '/home/me/sources/sequencer64/seq_rtmidi/src'
/bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I../../include    -I../include -I../../include -I../../libseq64/include -I../../seq_rtmidi/include   -DSEQ64_GIT_VERSION=\""0.94.5-10-gd1114c6 * master"\" -g -O2 -Wall -Wextra -pedantic  -D_REENTRANT -DAPI_VERSION="0.94"    -O3 -DDEBUG -D_DEBUG -fno-inline    -std=c++14 -Wno-variadic-macros -Wno-deprecated-declarations -MT midi_jack.lo -MD -MP -MF .deps/midi_jack.Tpo -c -o midi_jack.lo midi_jack.cpp
libtool: compile:  g++ -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I../../include -I../include -I../../include -I../../libseq64/include -I../../seq_rtmidi/include "-DSEQ64_GIT_VERSION=\"0.94.5-10-gd1114c6 * master\"" -g -O2 -Wall -Wextra -pedantic -D_REENTRANT -DAPI_VERSION=0.94 -O3 -DDEBUG -D_DEBUG -fno-inline -std=c++14 -Wno-variadic-macros -Wno-deprecated-declarations -MT midi_jack.lo -MD -MP -MF .deps/midi_jack.Tpo -c midi_jack.cpp  -fPIC -DPIC -o .libs/midi_jack.o
midi_jack.cpp: In member function ‘bool seq64::midi_jack::open_client_impl(bool)’:
midi_jack.cpp:1038:61: error: ‘create_jack_client’ was not declared in this scope
         jack_client_t * clipointer = create_jack_client(name); // , uuid);
                                                             ^
Makefile:614: recipe for target 'midi_jack.lo' failed
make[2]: *** [midi_jack.lo] Error 1
make[2]: Leaving directory '/home/me/sources/sequencer64/seq_rtmidi/src'
Makefile:470: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/me/sources/sequencer64/seq_rtmidi'
Makefile:586: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

┌───| ~/sources/sequencer64 ](me@neon_UE)|[23:17][p:12514][bn:53][j:0]► [2] (master *%=)
└─$  sudo make
Making all in resources/pixmaps
make[1]: Entering directory '/home/me/sources/sequencer64/resources/pixmaps'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/me/sources/sequencer64/resources/pixmaps'
Making all in libseq64
make[1]: Entering directory '/home/me/sources/sequencer64/libseq64'
Making all in include
make[2]: Entering directory '/home/me/sources/sequencer64/libseq64/include'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/me/sources/sequencer64/libseq64/include'
Making all in src
make[2]: Entering directory '/home/me/sources/sequencer64/libseq64/src'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/me/sources/sequencer64/libseq64/src'
make[2]: Entering directory '/home/me/sources/sequencer64/libseq64'
Top source-directory 'top_srcdir' is ..
* * * * * All libseq64 build items completed * * * * *
make[2]: Leaving directory '/home/me/sources/sequencer64/libseq64'
make[1]: Leaving directory '/home/me/sources/sequencer64/libseq64'
Making all in seq_rtmidi
make[1]: Entering directory '/home/me/sources/sequencer64/seq_rtmidi'
Making all in include
make[2]: Entering directory '/home/me/sources/sequencer64/seq_rtmidi/include'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/me/sources/sequencer64/seq_rtmidi/include'
Making all in src
make[2]: Entering directory '/home/me/sources/sequencer64/seq_rtmidi/src'
/bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I../../include    -I../include -I../../include -I../../libseq64/include -I../../seq_rtmidi/include   -DSEQ64_GIT_VERSION=\""0.94.5-10-gd1114c6 * master"\" -g -O2 -Wall -Wextra -pedantic  -D_REENTRANT -DAPI_VERSION="0.94"    -O3 -DDEBUG -D_DEBUG -fno-inline    -std=c++14 -Wno-variadic-macros -Wno-deprecated-declarations -MT midi_jack.lo -MD -MP -MF .deps/midi_jack.Tpo -c -o midi_jack.lo midi_jack.cpp
libtool: compile:  g++ -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I../../include -I../include -I../../include -I../../libseq64/include -I../../seq_rtmidi/include "-DSEQ64_GIT_VERSION=\"0.94.5-10-gd1114c6 * master\"" -g -O2 -Wall -Wextra -pedantic -D_REENTRANT -DAPI_VERSION=0.94 -O3 -DDEBUG -D_DEBUG -fno-inline -std=c++14 -Wno-variadic-macros -Wno-deprecated-declarations -MT midi_jack.lo -MD -MP -MF .deps/midi_jack.Tpo -c midi_jack.cpp  -fPIC -DPIC -o .libs/midi_jack.o
midi_jack.cpp: In member function ‘bool seq64::midi_jack::open_client_impl(bool)’:
midi_jack.cpp:1038:61: error: ‘create_jack_client’ was not declared in this scope
         jack_client_t * clipointer = create_jack_client(name); // , uuid);
                                                             ^
Makefile:614: recipe for target 'midi_jack.lo' failed
make[2]: *** [midi_jack.lo] Error 1
make[2]: Leaving directory '/home/me/sources/sequencer64/seq_rtmidi/src'
Makefile:470: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/me/sources/sequencer64/seq_rtmidi'
Makefile:586: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

I have KDE Neon UE (which is Ubuntu 16.04 base) along with KXStudio repos installed. Furthermore I have a2jmidi_bridge, a2jmidid and j2amidi_bridge installed. I have ALSA, JACK and PA sink running smoothly.

└─$  uname -a
Linux neon_UE 4.13.0-32-generic #35~16.04.1-Ubuntu SMP Thu Jan 25 10:13:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Thanks in advance.

ahlstromcj commented 6 years ago

The first set of message indicates you are trying to use the Qt build, but currently the Qt build is broken as I am in the middle of refactoring that code (based on Kepler34) to use the existing seq64 library code. It is going to be a number of days before I get it building with Qt 5, unfortunately.

You can do the following to see how the app works using Gtkmm:

./bootstrap --full-clean ./bootstrap -er -rm

This cleans out any junk from previous setups/builds and then builds for --enable-release and --enable-rtmidi, with gtkmm-2.4 being the GUI framework.

If the -er -rm build doesn't work, then that's an issue in the mainline, so let me know if that's the case. I am currently working in the qt5_reconcile branch, getting a few more kepler34 features to work in Gtkmm and then, later, getting the Qt 5 build back up and running.

I apologize; the project is in a little bit of flux right now.

absorber commented 6 years ago

No need to apologize, this is the FOSS life after all. In fact I'm glad someone is actively working on a FOSS sequencer usable for Linux :)

It compiled successfully enough to start the GUI (see full log here) but I get a segfault every time I right-click in the GUI:

└─$  seq64
[JACK server already started]
no JACK input port available, creating virtual port!
no JACK output port available, creating virtual port!
[Initialized, running without JACK sync]
2 rtmidi ports created:
Input ports (1):
  [0] 0:0 seq64:seq64 midi in 0 (virtual)
Output ports (1):
  [0] 0:0 seq64:seq64 midi out 0 (virtual)

(seq64:16614): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",

(seq64:16614): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",

** (seq64:16614): WARNING **: Invalid borders specified for theme pixmap:
        /usr/share/themes/Breeze/gtk-2.0/../assets/line-h.png,
borders don't fit within the image
Trace/breakpoint trap

┌───| ~ ](me@neon_UE)|[08:48][p:7909][bn:38][j:0]► [133]

I think this has to do with some missing theme assets. Does this warrant a separate bugreport?

ahlstromcj commented 6 years ago

There's something wrong with the Breeze and Breeze-Dark themes. They crash when bringing up a Gtkmm-2.4 menu entry with separator lines. The problem can be worked about by editing

/usr/share/themes/Breeze/gtk-2.0/widgets/menu

and, around line #272, in the 'style "separator_menu_item"' section, comment out with a hash (#) the line 'file = "../assets/line-h.png"'. This converts the separator to blank space and it won't crash.

Same with the Breeze-Dark theme.

It might be better to just not use separator lines in the seq64 menus.

-------- absorber 08:22 Mon 26 Feb --------

No need to apologize, this is the FOSS life after all. In fact I'm glad someone is actively working on a FOSS sequencer usable for Linux :)

It compiled successfully enough to start the GUI (see full log [1]here) but I get a segfault every time I right-click in the GUI:

└─$ seq64 [JACK server already started] no JACK input port available, creating virtual port! no JACK output port available, creating virtual port! [Initialized, running without JACK sync] 2 rtmidi ports created: Input ports (1): [0] 0:0 seq64:seq64 midi in 0 (virtual) Output ports (1): [0] 0:0 seq64:seq64 midi out 0 (virtual)

(seq64:16614): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",

(seq64:16614): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",

(seq64:16614): WARNING : Invalid borders specified for theme pixmap: /usr/share/themes/Breeze/gtk-2.0/../assets/line-h.png, borders don't fit within the image Trace/breakpoint trap

┌───| ~ ](me@neon_UE)|[08:48][p:7909][bn:38][j:0]► [133]

I think this has to do with some missing theme assets. Does this warrant a separate bugreport?

— You are receiving this because you commented. Reply to this email directly, [2]view it on GitHub, or [3]mute the thread.

Reverse link: [4]unknown

References

Visible links

  1. https://bpaste.net/show/d7988f25a00f
  2. https://github.com/ahlstromcj/sequencer64/issues/142#issuecomment-368423113
  3. https://github.com/notifications/unsubscribe-auth/AHnVqHTK5ZG2w2Gzk5L_agcTyw7Wj6HIks5tYmnNgaJpZM4SShd0
  4. https://github.com/ahlstromcj/sequencer64/issues/142#issuecomment-368423113

-- Well, anyway, I was reading this James Bond book, and right away I realized that like most books, it had too many words. The plot was the same one that all James Bond books have: An evil person tries to blow up the world, but James Bond kills him and his henchmen and makes love to several attractive women. There, that's it: 24 words. But the guy who wrote the book took thousands of words to say it. Or consider "The Brothers Karamazov", by the famous Russian alcoholic Fyodor Dostoyevsky. It's about these two brothers who kill their father. Or maybe only one of them kills the father. It's impossible to tell because what they mostly do is talk for nearly a thousand pages. If all Russians talk as much as the Karamazovs did, I don't see how they found time to become a major world power. I'm told that Dostoyevsky wrote "The Brothers Karamazov" to raise the question of whether there is a God. So why didn't he just come right out and say: "Is there a God? It sure beats the heck out of me." Other famous works could easily have been summarized in a few words:

absorber commented 6 years ago

Yeah so instead of commenting that line out in /usr/share/themes/Breeze/gtk-2.0/widgets/menu, I edited it to the full path (/usr/share/themes/Breeze/assets/line-h.png) and now it seems to work. It now looks like this.

It seems indeed that there's something wrong with the theme. I'll have a chat with Plasma devs and see if this can get fixed.

Btw, any idea how I can make the tooltips more readable? https://i.imgur.com/YK8Jxdb.png

ahlstromcj commented 6 years ago

Thanks for the better tip on fixing the Breeze theme. As for the tooltip coloring, maybe that's accessible from the theme? On my setup it is black text on yellow.

-------- absorber 11:50 Mon 26 Feb --------

Yeah so instead of commenting that line out in /usr/share/themes/Breeze/gtk-2.0/widgets/menu, I edited it to the full path (/usr/share/themes/Breeze/assets/line-h.png) and now it seems to work. It now looks like [1]this.

It seems indeed that there's something wrong with the theme. I'll have a chat with Plasma devs and see if this can get fixed.

Btw, any idea how I can make the tooltips more readable? [2]https://i.imgur.com/YK8Jxdb.png

— You are receiving this because you commented. Reply to this email directly, [3]view it on GitHub, or [4]mute the thread.

Reverse link: [5]unknown

References

Visible links

  1. https://bpaste.net/show/7bd6e2d13355
  2. https://i.imgur.com/YK8Jxdb.png
  3. https://github.com/ahlstromcj/sequencer64/issues/142#issuecomment-368476130
  4. https://github.com/notifications/unsubscribe-auth/AHnVqAFC3nrzPuzCznqRtU-AhurF5wTbks5tYpqSgaJpZM4SShd0
  5. https://github.com/ahlstromcj/sequencer64/issues/142#issuecomment-368476130

-- Q: What's the difference between a duck and an elephant? A: You can't get down off an elephant.

CJunit commented 6 years ago

Thanks for the tip about the themes crash, that's just what I was looking for!