Summary: | No keyboard when recompiling 3.0.1 appimage | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | beuc |
Component: | General | Assignee: | Krita Bugs <krita-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | halla |
Priority: | NOR | ||
Version: | 3.0.1 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/krita/0397774143eefb1a1f19cf561176f1d28c8428af | Version Fixed In: | |
Attachments: |
appimage: add missing build dependencies to fix lack of keyboard support when building from minimal CentOS environment
appimage: do not remove previously built appimages appimage: add documentation |
Description
beuc
2016-09-11 19:37:08 UTC
It's normal. It checks all the libraries in the appdir and copies the dependencies recursively. I don't use docker, I use a plain centos 6.7 vm. I'm not sure what the differences are: you will have to investigate that yourself, since I don't have this issue with exactly the same script. When the user runs a build script in a clean environment and gets an incorrect result, this usually is a problem with the script, not the user's fault. This could be a missing base dependency that is installed with a common install of CentOS, but not in a tight environment such as the 70MB Docker image. Aka, like #368624, a missing build dependency. Before I try anything, any specifics about your centos vm installation? Of course it must be a difference between your docker and the vm I use. I download the default CentOS-6.8-x86_64-bin-DVD1.iso and install it in VirtualBox. I use the plain gnome desktop install so I've got a terminal and a browser, and then I run the scripts. Hi, I downloaded and installed CentOS-6.8-x86_64-bin-DVD1.iso, with the default Desktop install target (Gnome). I noted that mesa-libGLU-devel is not installed by default : $ rpm -q mesa-libGLU-devel package mesa-libGLU-devel is not installed So maybe I didn't make the same install as you, or you installed that package manually at a point? I also noticed this when in the build-deps.sh step, ext_qt part: xkbcommon-x11........... yes (bundled copy, XKB config root: /usr/share/X11/xkb) xkbcommon-evdev......... no Is that the normal, with regard to the xkbcommon dependency? > Is that the normal, with regard to the xkbcommon dependency?
For instance, the result of this comment on your build environment would help :)
# rpm -qa | grep xkb
[root@krita-builder out]# rpm -qa | grep xkb libxkbfile-1.0.6-1.1.el6.x86_64 xorg-x11-xkb-utils-7.7-12.el6.x86_64 [root@krita-builder out]# rpm -qa | grep GLU mesa-libGLU-11.0.7-4.el6.x86_64 OK so it doesn't come from these packages. Now, I could rebuild an appimage with a working keyboard from a CentOS VM. By comparing the build output I noted 2 discrepancies with the slimmer (docker) CentOS environment, both in the early 'ext_qt' configuration phase: 1) Iconv .................. yes Iconv .................. no Note that this happens before ext_iconv is built. This is also an issue when building AppImageKit : [ 75%] Building C object CMakeFiles/runtime.dir/runtime.c.o Linking C executable runtime libisofs.a(isofs.c.o): In function `isofs_fix_entry': /AppImageKit/isofs.c:604: undefined reference to `libiconv_open' /AppImageKit/isofs.c:621: undefined reference to `libiconv' /AppImageKit/isofs.c:628: undefined reference to `libiconv_close' /AppImageKit/isofs.c:647: undefined reference to `libiconv_close' collect2: error: ld returned 1 exit status make[2]: *** [runtime] Error 1 make[1]: *** [CMakeFiles/runtime.dir/all] Error 2 make: *** [all] Error 2 fatal: No tags can describe 'd5fcf2e4d8b50361585e1c7d9ffa9143bc852065'. Try --always, or create some tags. /AppImageKit + cd / + ln -sf /usr/share/pkgconfig /usr/lib/pkgconfig Note that this AppImageKit build error is ignored, btw. This is fixed by installing: $ yum install glibc-devel 2) xkbcommon-x11........... yes (bundled copy, XKB config root: /usr/share/X11/xkb) xkbcommon-x11........... yes (bundled copy, XKB config root: not found) This looks like the keyboard source issue. This is fixed by installing: $ yum install xkeyboard-config I'm trying a full rebuild now, if this works I'll produce a patch. Created attachment 101125 [details]
appimage: add missing build dependencies to fix lack of keyboard support when building from minimal CentOS environment
appimage: add missing build dependencies to fix lack of keyboard support when building from minimal CentOS environment
Created attachment 101126 [details]
appimage: do not remove previously built appimages
appimage: do not remove previously built appimages
Created attachment 101127 [details]
appimage: add documentation
appimage: add documentation
Build now works from a minimal CentOS such as Docker's :) Attached are 3 patched: - adding missing QT build dependencies - avoid clearing /out/* since I lost all my previous builds :/ - add documentation I would recommend pushing it to krita/3.0.1 along with fe518206866a6cffdc64903ce3bf18b5e7a80867 2ac3c47e3ba91005143f4b59768f4e235e6d6762 so that people checking out the stable branch get a fully-working script. Cheers! I'm wondering, being a docker newbie, in the docker instructions, what do the XXXXXX and YYYYY stand for? Git commit 0397774143eefb1a1f19cf561176f1d28c8428af by Boudewijn Rempt. Committed on 17/09/2016 at 07:19. Pushed by rempt into branch 'master'. Apply Beuc's patches to the appimage build script A +42 -0 packaging/linux/appimage/README.txt M +1 -1 packaging/linux/appimage/build-deps.sh http://commits.kde.org/krita/0397774143eefb1a1f19cf561176f1d28c8428af Thanks for reviewing the patches. XXX and YYY are 2 git-commit-like identifiers. Point is : when you start a Docker image, quit, then restart the image again, the environment is completely reset, so when you want to save your changes you: - commit the last XXX container identifier (displayed in the command prompt or in 'docker ps -a'); this displays the new image id YYY - tag YYY with a descriptive name Still wanting to remove out/* btw? |