Ik probeer LMMS en soundio te compileren

Soundio is een afhankelijkheid van LMMS.

Omdat is de laatste versie van LMMS wil proberen, zal ik het zelf moeten compilen.

In yast kan ik libsoundio niet vinden.

Via google dit gevonden: http://libsound.io/#releases

Dus ik heb de tarball gedownload, uitgepakt, een build map aangemaakt.

Als eerste

cmake .. 

gedaan.

Dat lijkt goed te gaan, maar als ik dan make doe krijg ik:

guus@linux-0pkp:~/soundio> ls
libsoundio-1.1.0  libsoundio-1.1.0.tar.gz
guus@linux-0pkp:~/soundio> cd soundio-1.0.0
bash: cd: soundio-1.0.0: Bestand of map bestaat niet
guus@linux-0pkp:~/soundio> cd libsoundio-1.1.0/
guus@linux-0pkp:~/soundio/libsoundio-1.1.0> cd build
guus@linux-0pkp:~/soundio/libsoundio-1.1.0/build> cmake ..
-- The C compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
Configuring libsoundio version 1.1.0
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found JACK: /usr/lib64/libjack.so  
-- Found PULSEAUDIO: /usr/lib64/libpulse.so  
-- Found ALSA: /usr/lib64/libasound.so (found version "1.0.29") 
-- Could NOT find COREAUDIO (missing:  COREAUDIO_LIBRARY COREAUDIO_INCLUDE_DIR) 
-- Could NOT find WASAPI (missing:  WASAPI_INCLUDE_DIR) 
                                                                                                                                         
Installation Summary                                                                                                                     
--------------------                                                                                                                     
* Install Directory            : /usr/local                                                                                              
* Build Type                   : Debug                                                                                                   
* Build static libs            : ON                                                                                                      
* Build examples               : ON                                                                                                      
* Build tests                  : ON                                                                                                      
                                                                                                                                         
System Dependencies                                                                                                                      
-------------------                                                                                                                      
* threads                      : OK                                                                                                      
* JACK       (optional)        : OK                                                                                                      
* PulseAudio (optional)        : OK                                                                                                      
* ALSA       (optional)        : OK                                                                                                      
* CoreAudio  (optional)        : not found                                                                                               
* WASAPI     (optional)        : not found                                                                                               
                                                                                                                                         
-- Configuring done                                                                                                                                                                                                                         
-- Generating done                                                                                                                                                                                                                          
-- Build files have been written to: /home/guus/soundio/libsoundio-1.1.0/build                                                                                                                                                              
guus@linux-0pkp:~/soundio/libsoundio-1.1.0/build> make                                                                                                                                                                                      
Scanning dependencies of target libsoundio_shared                                                                                                                                                                                           
  1%] Building C object CMakeFiles/libsoundio_shared.dir/src/soundio.c.o                                                                                                                                                                   
In file included from /home/guus/soundio/libsoundio-1.1.0/src/jack.h:13:0,                                                                                                                                                                  
                 from /home/guus/soundio/libsoundio-1.1.0/src/soundio_private.h:15,                                                                                                                                                         
                 from /home/guus/soundio/libsoundio-1.1.0/src/soundio.c:8:                                                                                                                                                                  
/home/guus/soundio/libsoundio-1.1.0/src/atomics.h:44:23: fatal error: stdatomic.h: Bestand of map bestaat niet                                                                                                                              
 #include <stdatomic.h>                                                                                                                                                                                                                     
                       ^                                                                                                                                                                                                                    
compilation terminated.                                                                                                                                                                                                                     
CMakeFiles/libsoundio_shared.dir/build.make:62: recept voor doel 'CMakeFiles/libsoundio_shared.dir/src/soundio.c.o' is mislukt                                                                                                              
make[2]: *** [CMakeFiles/libsoundio_shared.dir/src/soundio.c.o] Fout 1                                                                                                                                                                      
CMakeFiles/Makefile2:205: recept voor doel 'CMakeFiles/libsoundio_shared.dir/all' is mislukt                                                                                                                                                
make[1]: *** [CMakeFiles/libsoundio_shared.dir/all] Fout 2                                                                                                                                                                                  
Makefile:127: recept voor doel 'all' is mislukt                                                                                                                                                                                             
make: *** [all] Fout 2                                                                                                                                                                                                                      
guus@linux-0pkp:~/soundio/libsoundio-1.1.0/build>

Ik snap niets van die fout, en hoop dat iemand hier mij helpen kan.

Cmake klaagt niet maar make wel? :open_mouth:

Core audio en wasapi zijn zo als ik het begrijp voor windows dus niet voor ons.
Ook cmake lmms komt met die melding, maar voegt er aan toe dat deze niet ondersteund worden op dit patform (linux)

Een tarbal bevat meestal een bestand READ.ME (of soortgelijke naam).
Daarin staan aanwijzingen. Is dat in deze tarbal niet zo?

Meestal, maar dat hangt van de instructies af, zijn de stappen ./configure, make, make install (deze laatste stap als root).

In yast kan ik libsoundio niet vinden.

Nog even over deze zin.

Als je met YaST, dus in de repos van je repo lijst, iets niet kan vinden, is de volgende stap zoeken met Search .

Ik heb het daar ook niet gevonden, dus je hebt niets gemist. Maar omdat je niet vermeldt dat je daarmee gezocht hebt, wijs ik toch even op deze mogelijkheid.

Alvast bedankt.

Ik vond even uit me hoofd wel iets voor thumbleweed en een rpm bij packman.

Als ik dan kies, open met YAST, dan gebeurd er niets. ( Er gebeurd wel iets, maar het stopt zonder een foutmelding )

https://pkgs.org/download/libsoundio-devel

Ik vroeg me al af of ik misschien een thumbleweed repository moet toevoegen ? ( dit bestand schijnt vrij niew te zijn en zit daarom niet in de huidige distros.

Ik had ook al gezocht bij https://software.opensuse.org/search.

Had ik niet vermeld, maar het is een goede tip ook voor andere die iets willen compilen.

Wat ik ook al geprobeerd heb, is om de rpm uit te pakken, en dan handmatig de bestanden naar de juiste plek te kopiëren.
( maar daar zaten weer geen devel bestanden bij, en wat ik tot nu toe begrijp van compileren is dat je de lib en de devel file moet hebben. )

Dit is een stukje uit de readme.

Install the dependencies:

 * cmake
 * ALSA library (optional)
 * libjack2 (optional)
 * libpulseaudio (optional)

mkdir build
cd build
cmake …
make
sudo make install



Misschien moet ik eens met ./config proberen. Kijken of dat iets bruikbaars oplevert.

Als er geen ./config staat o.i.d. dan zou ik dat niet doen. Trouwens, dan is config er waarschijnlijk ook helemaal niet.

Ik miste blijkbaar een jack 32 bit devel, maar loop nog steeds vast.

(in yast rpm provides gebruikt )

Toch iets van vooruitgang, en ik ben nu bij LMMS aan het kijken of daar iemand een oplossing weet, of een goede plaats on hulp te krijgen met soundio.

compilation terminated.                                                                                                                  
CMakeFiles/libsoundio_shared.dir/build.make:62: recept voor doel 'CMakeFiles/libsoundio_shared.dir/src/soundio.c.o' is mislukt           
make[2]: *** [CMakeFiles/libsoundio_shared.dir/src/soundio.c.o] Fout 1                                                                   
CMakeFiles/Makefile2:205: recept voor doel 'CMakeFiles/libsoundio_shared.dir/all' is mislukt                                                                                                                                                
make[1]: *** [CMakeFiles/libsoundio_shared.dir/all] Fout 2                                                                                                                                                                                  
Makefile:127: recept voor doel 'all' is mislukt                                                                                                                                                                                             
make: *** [all] Fout 2                                                                                                                                                                                                                      
guus@linux-0pkp:~/soundio/libsoundio-1.1.0/build>

word vervolgt. :slight_smile: (./ config niet geprobeerd)

Je kunt naatuurlijk altijd controleren of het vestand configure bestaat in die directory. Ik neem aan dat je begrijpt wat

./configure

betekent.

Ik begrijp het verschil niet tussen cmake … en ./config.

Voor zo ver ik begrijp doen ze het zelfde, kijken of alle afhankelijkheden ( dependecies) er zijn.

De OpenSUSE page over compilen zegt gebruik ./config. De read me zegt cmake …, maar voor de rest zijn de commando’s gelijk.

De LMMS dev’s hebben geen tijd om alle distro’s te testen. Toch kunnen we ( openSUSE ) hulp krijgen. We moeten even registreren bij discord lmms.
Dan plaatst je daar waar je vast loopt met het compilen. ( moet dan wel in het Engels )

Vind ik wel een nette oplossing, ze willen helpen, maar je moet zelf ook even wat moeite doen. En vervolgens word de lmms wiki aangepast, zodat ook voor openSUSE de lijst met dependecies compleet word.

Normaal melden we problemen met een package bij packman, maar ik ben er inmiddels achter dat er een probleem is met het buildsystem.
Hier door is er op leap 42.1 en 42.2 een probleem. Het vreemde is echter dat op leap 42.1, LMMS gewoon werkt, maar op 42.2 ontbreekt er iets.
Ik heb het probleem ook gemeld bij packman, maar kreeg als antwoord dat dit upstream opgelost moet worden. Upstream is in dit geval de LMMS dev’s.

Terug naar mijn probleem, ik heb een reactie van de LMMS dev’s.

@Gps we’ve opened up the #opendev channel for compiling questions, but the short of it is, you don’t need soundio.The long of it is, GCC 4.8 had a bug and didn’t ship this header, so you can try to import it manually or upgrade your compiler to 4.9.

Voor wie een vertaling nodig heeft:
Ik heb soundio niet nodig. Het # opendev kanaal is waar we dit soort problemen mogen melden.
De foutmelding, fatal error: stdatomic.h, heeft met een probleem met de compiler te maken. Een bug in GCC 4.8, die ik dus op kan lossen door GCC 4.9 te installeren.

Een korte zoektocht met google, ( opensuse gcc 4.9 ) leert mij echter dat ik daar voorzichtig mee moet zijn.
https://forums.opensuse.org/showthread.php/505895-Update-GCC-4-8-to-4-9

In yast vind ik wel gcc 5 en dat is wat ik er van begrijp de betere oplossing.
Graag zou ik de mening HCVV hier over horen. Hoeveel risico loop ik dat ik mijn systeem sloop, door gcc 5 te installeren ?
Is dat plug and prey of ?

Een heel rijtje vragen waar ik niet altijd een antwoord op heb.

cmake vs. ./configure.
Er is geen vaste opgelegde, andere dingen zijn verboden, manier om software te bouwen.
Als de documentatie zegt: doe A, dan zegt die dus duidelijk niet: doe B.
En ik verval in herhalingen (zie post #7): je kunt natuurlijk alleen ./configure doen als er een configure is. En ik suggereerde dat je dat even zou bekijken. Ik betwijfel dat die er is, want als de documentatie het niet vermeldt is het onwaarschijnlijk dat het er is.

Je zegt dat je gcc-5 met YaST vindt. Waarcshijnlijk bedoel je: met de Zoek functie in YaST > Software > Software beheer (YaST is echt wel meer dan alleen dat stukje software beheer). Dat is fijn, maar dat betekent alleen dat het in één van de repositoties van jouw repository lijst zit. Niet in welke. Als dat “gewoon” de Leap 42.1 OSS repo is, denk ik niet dat het gevaar kan om gcc-5 te installeren.

Installeer het, maar noteer ergens wat het allemaal aan dependencies meesleept. Dan kun je het ook weer makkelijk ongedaan maken. Of, als je Btrfs met snapper gebruikt kun je natuurlijk ook terugrollen. Het handigst is natuurlijk om zulke zaken eerst in een apaart systeem (bijv. een VM) te testen

Ik heb al in geen eeuwen meer iets zelf gebouwd (ik kan mij vaag een kernel herinneren een paar jaar terug). Het is echt vaak probeer en ga de mist in.

Bedankt.

En over yast, dat is één van de reden waarom ik van opensuse houd.
Geen Andere distro heeft alles zo mooi op één plaats.

Ik keek net in yast , en het is gewoon de officiele opensuse leap repsository, waar ik gcc 5 kan vinden, dus dat moet geen probleem zijn.

Ik ga even nadenken. Het word eigenlijk wel eens tijd dat ik eens ga spelen met een vm, met het grote voordeel dat ik niet mijn systeem kan slopen.

Maar even een update.

Het is inmiddels iemand op openSUSE leap 42.2 gelukt om LMMS te compileren, en alles werkt.

Het is mij ook gelukt om LMMS zelf te compileren op leap 42.1

Het is echter niet versie 1.1.3 die we van packman of openSUSE zelf krijgen, het is versie -1.2.0-rc2.

Voor wie niet zelf wil of kan compileren, raad ik aan om te wachten, of om te kijken om je net als ik geluk hebt, met 1.1.3.

Op leap 42.1 werkt LMMS 1.1.3 voor mij namelijk wel gewoon ondanks dat er dus een probleem is.

De details over wat er nou precies mis is gaan boven mijn computer pet.
Wel is duidelijk dat op meerdere distro’s Vestige ontbreekt in LMMS.
Vestige zoals je in onderstaande plaatje kan zien, onder instrument plugins.

Voor wie iets heeft met muziek maken op Linux, is het ook het vermelden waard dat we ook Carla zien. :slight_smile:
Ik heb het nog niet getest, maar eerdere progingen van mijn kant om Carla ook in LMMS te zien faalde.

Tot slot, ik liep even vast bij het compileren, maar dat loste ik op met gcc48 32 bit te installeren.

http://i.imgur.com/GWfbA9c.png