guysoft / mod-ui-docker

Docker container that attaches to jack and runs mod-ui
GNU General Public License v3.0
6 stars 1 forks source link

How to add guitarix plugins #3

Open buscon opened 4 years ago

buscon commented 4 years ago

hi,

I tried to add the guitarix plugins with the following step:

  1. adding an extra install_mod-gx.sh cd $ZYNTHIAN_PLUGINS_SRC_DIR git clone https://github.com/brummer10/guitarix cd guitarix/trunk/ ./waf configure --lv2dir=$ZYNTHIAN_PLUGINS_DIR/lv2 ./waf build ./waf -j1 install ./waf clean cd ..

  2. in the Docker file I added these lines before postinstall_mod-lv2-data.sh

COPY ./install_mod-gx.sh /home/moduser/install_mod-gx.sh RUN /home/moduser/install_mod-gx.sh

but when I run the docker (from scratch), no guitarix plugins appear in the mod-ui. any suggestion on how to do that?

T

guysoft commented 4 years ago

Can you provide by any chance a full `Dockerfile`` and install_mod-gx.sh so I can build and test? I can't really reproduce otherwise.

buscon commented 4 years ago

sure, here are the two files

mod-ui-docker-guitarix.tar.gz

buscon commented 4 years ago

hi,

did you have any luck in reproducing the issue?

guysoft commented 4 years ago

Hey, started and had other things this week. I can try tomorrow or start of next week.

buscon commented 4 years ago

great, thanks a lot!

guysoft commented 4 years ago

You have two issues which show you are not actually building, please take a close look at the script next time.

  1. moduser@a5fcbefcb6a6:~/src-mod-plugins/guitarix/trunk$ ./waf configure --lv2dir=$ZYNTHIAN_PLUGINS_DIR/lv2
    Setting top to                           : /home/moduser/src-mod-plugins/guitarix/trunk 
    Setting out to                           : /home/moduser/src-mod-plugins/guitarix/trunk/build 
    Checking for program 'msgfmt'            : not found 
    Could not find the program ['msgfmt']
    (complete log in /home/moduser/src-mod-plugins/guitarix/trunk/build/config.log)

You also get after fixing it:

Checking for program 'intltool-merge'    : not found 
Checking for 'sndfile'                   : not found 
Checking for 'libcurl'                   : not found
Checking for font RobotoCondensed        : not found 
Checking for program 'sassc'             : not found

And many many more

You are missing the build deps

fix is to add (And I hope I got them all):

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
    intltool \
    gettext \
    libsndfile1-dev \
    libglibmm-2.4-dev \
    libfftw3-dev \
    libcurl4-openssl-dev \
    sassc \
    fonts-roboto \
    libgtk-3-dev \
    gtkmm-3.0-dev \
    ladspa-sdk \
    liblrdf0-dev \
    libboost-system-dev \
    libboost-iostreams-dev \
    libzita-convolver-dev \
    libzita-resampler-dev \
    gperf \
    faust \
    avahi-gobject \
    bluez \
    liblo-dev 
    libeigen3-dev \
  && rm -rf /var/lib/apt/lists/* \
  && apt -qyy clean

Only then run the configure

  1. The install command of guitarix is using update-desktop-database which does not exist, bypass with:

RUN echo '#!/bin/bash' > /usr/bin/update-desktop-database
RUN chmod 777 /usr/bin/update-desktop-database

Also, please post a decent fork of what you are doing. It not straightforward to download clone this repo and then extract over it the zip. Also a build log would have captured this sooner.

The graphics of the pedals is also not there: Screenshot_20200705_221006

buscon commented 4 years ago

thanks for your feedback!

I did a fork of your repo and added the edits you suggested here but it did not work. Can you have a look at my fork and tell me what it is missing or wrong? https://github.com/buscon/mod-ui-docker

Thanks!

guysoft commented 4 years ago

Yes , you pasted the docker commands in the bash script and not in to the Dockerfile.

Please read: https://linuxhint.com/understand_dockerfile/

buscon commented 4 years ago

ok, thanks, I got confused. Now I put the commands in the Dockerfile, still guitarix does not show up. can you have a look?

guysoft commented 4 years ago

Please post your full build log.

buscon commented 4 years ago

ok, do you mean this?

$ docker run -p 8888:8888 --user=1000 -v /dev/snd:/dev/snd:rw -v /dev/shm:/dev/shm:rw -v mod-ui-data:/home/moduser/mod-ui/data guysoft/mod-ui Unable to find image 'guysoft/mod-ui:latest' locally latest: Pulling from guysoft/mod-ui f476d66f5408: Pull complete 8882c27f669e: Pull complete d9af21273955: Pull complete f5029279ec12: Pull complete fc5ad4b2f66a: Pull complete 92221514a2c6: Pull complete 7dc5d0714a15: Pull complete 8043b5af7d7a: Pull complete b9de679acaeb: Pull complete fdafc0ca6676: Pull complete 143f3bc76a63: Pull complete ff8686dd207c: Pull complete 0d566ea84b4e: Pull complete 3c4e00841e6b: Pull complete b590129a7429: Pull complete a3162504be4a: Pull complete 3e7e0a3b920d: Pull complete f29f85948639: Pull complete ec4e023a792e: Pull complete 6a7e83e81c5e: Pull complete ecb9ecb2b811: Pull complete 555fe2b69fae: Pull complete ca1510bc5baf: Pull complete 6ca57ac51d4c: Pull complete add7fd4bd79b: Pull complete edf0db93cd55: Pull complete 384775077d12: Pull complete dd0eb62a8cb7: Pull complete 996169f730b4: Pull complete f750d010543e: Pull complete Digest: sha256:067668ee5c60446b9e09bb040a346a01e1c8aaecf1de71cdce38f783915e9695 Status: Downloaded newer image for guysoft/mod-ui:latest ~/mod-ui ~

guysoft commented 4 years ago

Dude, you are not even building it. You need to use docker-compose-build.yml

sudo docker-compose -f docker-compose-build.yml build

That log.

Then run it with sudo docker-compose -f docker-compose-build.yml up -d.

It sees you never actually did any docker-compose builds. I can help you so much. Other than that you will need to use guides to understand how to use it. Since I can't support understanding how to use docker.

buscon commented 4 years ago

ok, thanks for the explanation I installed docker-compose, now I understand what you meant with build.

I now get two errors, both seem to be related to permissions. I am on linux mint. I did run the composer as sudo, but I guess the docker user does not have the permission to do that? or why do I get such errors?

thanks!

  1. creating the update-desktop-database does not work Step 40/50 : RUN echo '#!/bin/bash' > /usr/bin/update-desktop-database ---> Running in 48451193cffb /bin/sh: 1: cannot create /usr/bin/update-desktop-database: Permission denied ERROR: Service 'mod-ui' failed to build: The command '/bin/sh -c echo '#!/bin/bash' > /usr/bin/update-desktop-database' returned a non-zero code: 2

  2. apt does not work either: Step 41/48 : RUN apt-get update && apt-get install -y --no-install-recommends intltool gettext libsndfile1-dev libglibmm-2.4-dev libfftw3-dev libcurl4-openssl-dev sassc fonts-roboto libgtk-3-dev gtkmm-3.0-dev ladspa-sdk liblrdf0-dev libboost-system-dev libboost-iostreams-dev libzita-convolver-dev libzita-resampler-dev gperf faust avahi-gobject bluez liblo-dev libeigen3-dev && rm -rf /var/lib/apt/lists/* && apt -qyy clean ---> Running in 8e6e18483ff1 Reading package lists... E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied) E: Unable to lock directory /var/lib/apt/lists/ ERROR: Service 'mod-ui' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y --no-install-recommends intltool gettext libsndfile1-dev libglibmm-2.4-dev libfftw3-dev libcurl4-openssl-dev sassc fonts-roboto libgtk-3-dev gtkmm-3.0-dev ladspa-sdk liblrdf0-dev libboost-system-dev libboost-iostreams-dev libzita-convolver-dev libzita-resampler-dev gperf faust avahi-gobject bluez liblo-dev libeigen3-dev && rm -rf /var/lib/apt/lists/* && apt -qyy clean' returned a non-zero code: 100

guysoft commented 4 years ago

You are running the commands as user and not as root. They are failing due to no write permissions. Read about the docker user command

buscon commented 4 years ago

I read about it, am I supposed to use the commands as root?

guysoft commented 4 years ago

You are using a container system to compile, build and ship software. It has its own scripting language and you are asking me basic questions how to operate it. Moreover you don't actually understand how it actually works, how it managers users and when I provide a detailed solution you have no idea how to actually use it.

If you know docker, this comment should be all the information you need to add guitarix pedals to the project: https://github.com/guysoft/mod-ui-docker/issues/3#issuecomment-653927209

I really try to help you out, and it took me about an hour to compile the solution above and resolve all the required dependencies for guitarix. I would like to help, but without you knowing how to use docker, which is basically on what this repo is based on, I can't also explain you how it works. If you lack the knowledge either go and learn it or pay someone to do it.

buscon commented 4 years ago

ok, no problem, I will look into docker and try to understand your suggestions. I tried to install the needed software as root (inside docker), though some packages cannot be found.

guysoft commented 4 years ago

Ok, waiting here, take your time to understand how it works.