fusion809 / AppImages

[NO LONGER MAINTAINED] My repository of recipes for building AppImages. Fork of https://github.com/probonopd/AppImages.
https://fusion809.github.io/appimages/
MIT License
10 stars 0 forks source link

Help building an AppImage for gVim (GTK+2) #3

Closed fusion809 closed 8 years ago

fusion809 commented 8 years ago

Hi,

I would like to build an AppImage for gVim (with a GTK+2 interface), but I keep getting broken package errors whenever I try to build one. Here is my yml file:

app: gvim

ingredients:
  package: vim-gtk
  dist:    trusty
  sources:
    - deb http://au.archive.ubuntu.com/ubuntu/ trusty main universe
    - deb http://au.archive.ubuntu.com/ubuntu/ trusty-updates universe
    - deb http://au.archive.ubuntu.com/ubuntu/ trusty-security main restricted
    - deb http://au.archive.ubuntu.com/ubuntu/ trusty-security universe
  ppas:
    - jonathonf/vim

and whenever I try to build it I get the error:


AppImages
.git
client
recipes
appimageassistant
appimageupdate
arduino
atom
atom.desktop
Recipe
audacity
blender
bluegriffon
brackets
Recipe
calibre
chromium
Recipe
clementine
codeblocks
CodeBlocks
CodeBlocks.AppDir
usr
tmp
AppImageAssistant
AppRun
binutils_2.25-5_amd64.deb
codeblocks_16.01+dfsg-2~bpo8+1_amd64.deb
codeblocks-common_16.01+dfsg-2~bpo8+1_all.deb
excludedeblist
file_5.22+15-2+deb8u2_amd64.deb
functions.sh
libcodeblocks0_16.01+dfsg-2~bpo8+1_amd64.deb
libexpat1_2.1.0-6+deb8u3_amd64.deb
libice6_1.0.9-1+b1_amd64.deb
libjbig0_2.1-3.1_amd64.deb
libjpeg62-turbo_1.3.1-12_amd64.deb
liblzma5_5.1.1alpha+20120614-2+b3_amd64.deb
libmagic1_5.22+15-2+deb8u2_amd64.deb
libnotify4_0.7.6-2_amd64.deb
libpng12-0_1.2.50-2+deb8u2_amd64.deb
libsm6_1.2.2-1+b1_amd64.deb
libtiff5_4.0.3-12.3+deb8u1_amd64.deb
libuuid1_2.25.2-6_amd64.deb
libwxbase3.0-0_3.0.2-1+b1_amd64.deb
libwxgtk3.0-0_3.0.2-1+b1_amd64.deb
libx11-6_1.6.2-3_amd64.deb
libx11-data_1.6.2-3_all.deb
libxau6_1.0.8-1_amd64.deb
libxcb1_1.10-3+b1_amd64.deb
libxdmcp6_1.1.1-1+b1_amd64.deb
libxext6_1.3.3-1_amd64.deb
libxxf86vm1_1.1.3-1+b1_amd64.deb
multiarch-support_2.19-18+deb8u6_amd64.deb
sources.list
status
x11-common_7.7+7_all.deb
zlib1g_1.2.8.dfsg-2+b1_amd64.deb
out
Recipe
cura
darktable
demonsaw
docfetcher
eclipse
electronbuilderapp
emacs
emacs-snapshot
engauge-digitizer
etcher
fbreader
firefox
firefox-dev
fontforge
freecad
freemind
fritzing
gimp
gitg
graphmonkey
hexchat
hugin
idea
inkscape
inkscape-standalone
inkscape-trunk
iridium
irscrutinizer
kdevelop
keepassx
kicad
krita
leafpad
libreoffice
lmms
lyx
meta
blockify
codeblocks
codelite
emacs
fbreader
geany
hydrogen
liteide
mendeley
messengerfordesktop
messengerfordesktop
out
messengerfordesktop.yml
Recipe
openra
OpenRA.yml
qbittorrent
out
qBittorrent
qbittorrent.yml
Recipe
runescape
spotify
supertux
vim
gvim
tmp
excludedeblist
functions.sh
libacl1_2.2.52-1_amd64.deb
libattr1_2.4.47-1ubuntu1_amd64.deb
libgpm2_1.20.4-6.1_amd64.deb
libpcre3_8.31-2ubuntu2.2_amd64.deb
libselinux1_2.2.2-1_amd64.deb
libtinfo5_5.9+20140118-1ubuntu1_amd64.deb
multiarch-support_2.19-0ubuntu6.9_amd64.deb
Packages.gz
sources.list
status
vim_8.0.0051-0york1~14.04_amd64.deb
vim-common_8.0.0051-0york1~14.04_all.deb
vim-runtime_8.0.0051-0york1~14.04_all.deb
xxd_8.0.0051-0york1~14.04_amd64.deb
Recipe
vim.yml
metapolator
monodevelop
mypaint
netbeans
obpm
octave
openra
OpenRA
OpenRA.AppDir
tmp
AppImageAssistant
AppRun
aspell_0.60.7~20110707-1ubuntu1_amd64.deb
aspell-en_7.1-0-1_all.deb
excludedeblist
functions.sh
iso-codes_3.52-1_all.deb
libaspell15_0.60.7~20110707-1ubuntu1_amd64.deb
libdbus-glib-1-2_0.100.2-1_amd64.deb
libdrm-intel1_2.4.52-1_amd64.deb
libdrm-nouveau2_2.4.52-1_amd64.deb
libdrm-radeon1_2.4.52-1_amd64.deb
libelf1_0.158-0ubuntu5_amd64.deb
libenchant1c2a_1.6.0-10ubuntu1_amd64.deb
libexif12_0.6.21-1ubuntu1_amd64.deb
libexpat1_2.1.0-4ubuntu1_amd64.deb
libffi6_3.1~rc1+r3.0.13-12_amd64.deb
libfreetype6_2.5.2-1ubuntu2_amd64.deb
libgcrypt11_1.5.3-2ubuntu4_amd64.deb
libgdiplus_2.11+git20131008.9732566-5ubuntu1_amd64.deb
libgeoclue0_0.12.99-3ubuntu1_amd64.deb
libgif4_4.1.6-11_amd64.deb
libgl1-mesa-dri_10.1.0-4ubuntu5_amd64.deb
libgraphite2-3_1.2.4-1ubuntu1_amd64.deb
libgstreamer-plugins-base1.0-0_1.2.3-1_amd64.deb
libgstreamer1.0-0_1.2.3-1_amd64.deb
libharfbuzz-icu0_0.9.27-1_amd64.deb
libharfbuzz0b_0.9.27-1_amd64.deb
libhunspell-1.3-0_1.3.2-6ubuntu2_amd64.deb
libice6_1.0.8-2_amd64.deb
libicu52_52.1-3_amd64.deb
libjavascriptcoregtk-3.0-0_2.4.0-1ubuntu2_amd64.deb
libjbig0_2.0-2ubuntu4_amd64.deb
libjpeg-turbo8_1.3.0-0ubuntu2_amd64.deb
libjpeg8_8c-2ubuntu8_amd64.deb
libllvm3.4_3.4-1ubuntu3_amd64.deb
liblua5.1-0_5.1.5-5_amd64.deb
liblzma5_5.1.1alpha+20120614-2ubuntu2_amd64.deb
libmono-corlib2.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-corlib4.5-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-data-tds4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-i18n-cjk4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-i18n-mideast4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-i18n-other4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-i18n-rare4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-i18n-west4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-i18n4.0-all_3.2.8+dfsg-4ubuntu1_all.deb
libmono-i18n4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-posix4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-security4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system-configuration4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system-core4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system-data4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system-drawing4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system-enterpriseservices4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system-numerics4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system-runtime-serialization4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system-security4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system-transactions4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system-xml-linq4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system-xml4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libmono-system4.0-cil_3.2.8+dfsg-4ubuntu1_all.deb
libncursesw5_5.9+20140118-1ubuntu1_amd64.deb
libnotify4_0.7.6-1ubuntu3_amd64.deb
libopenal-data_1.14-4ubuntu1_all.deb
libopenal1_1.14-4ubuntu1_amd64.deb
liborc-0.4-0_0.4.18-1ubuntu1_amd64.deb
libpciaccess0_0.13.2-1_amd64.deb
libpng12-0_1.2.50-1ubuntu2_amd64.deb
libsecret-1-0_0.16-0ubuntu1_amd64.deb
libsecret-common_0.16-0ubuntu1_all.deb
libsm6_1.2.1-2_amd64.deb
libsoup2.4-1_2.44.2-1ubuntu2_amd64.deb
libsqlite3-0_3.8.2-1ubuntu2_amd64.deb
libtiff5_4.0.3-7_amd64.deb
libtinfo5_5.9+20140118-1ubuntu1_amd64.deb
libuuid1_2.20.1-5.1ubuntu20_amd64.deb
libwebkitgtk-3.0-0_2.4.0-1ubuntu2_amd64.deb
libwebkitgtk-3.0-common_2.4.0-1ubuntu2_all.deb
libwebp5_0.4.0-4_amd64.deb
libx11-6_1.6.2-1ubuntu2_amd64.deb
libx11-data_1.6.2-1ubuntu2_all.deb
libxau6_1.0.8-1_amd64.deb
libxcb1_1.10-2ubuntu1_amd64.deb
libxcomposite1_0.4.4-1_amd64.deb
libxdamage1_1.1.4-1ubuntu1_amd64.deb
libxdmcp6_1.1.1-1_amd64.deb
libxml2_2.9.1+dfsg1-3ubuntu4_amd64.deb
libxrender1_0.9.8-1_amd64.deb
libxslt1.1_1.1.28-2build1_amd64.deb
libxt6_1.1.4-1_amd64.deb
mono-4.0-gac_3.2.8+dfsg-4ubuntu1_all.deb
mono-gac_3.2.8+dfsg-4ubuntu1_all.deb
mono-runtime_3.2.8+dfsg-4ubuntu1_amd64.deb
mono-runtime-common_3.2.8+dfsg-4ubuntu1_amd64.deb
mono-runtime-sgen_3.2.8+dfsg-4ubuntu1_amd64.deb
multiarch-support_2.19-0ubuntu6_amd64.deb
openra_release.20161015_all.deb
sources.list
status
x11-common_7.7+1ubuntu8_all.deb
xdg-utils_1.1.0~rc1-2ubuntu7_all.deb
zenity_3.8.0-1ubuntu1_amd64.deb
zenity-common_3.8.0-1ubuntu1_all.deb
zlib1g_1.2.8.dfsg-1ubuntu1_amd64.deb
OpenRA2
out
Recipe
openttd
opera
pinta
platformio
powershell
pulseview
pycharm
pythongtk3hello
qcad
qgroundcontrol
qtox
ricochet
ring
robocut
scilab
scribus
scribusctl
scribusctlubuntu
ser-player
sigil
simplescreenrecorder
skype
solvespace
spotify
sqlitebrowser
Recipe
stellarium
sublimetext
subsurface
terminix
texstudio
texworks
thunderbird
tor-browser
travis
upwork
vlc
vlc3
vscode
vsxu
wine
wireshark
wxhexeditor
xdgurl
.gitignore
.travis.yml
appdir-lint.sh
bintray-tidy.sh
bintray.sh
excludedeblist
excludelist
functions.sh
LICENSE
README.md
test.sh
travis.sh
trigger.sh
Recipe — emacs-snapshot
Recipe — codeblocks
vim.yml
vim.desktop
OpenRA.yml
messengerfordesktop.yml
qbittorrent.yml
Recipe — netbeans
Recipe — openra
.gitignore

Broken vim-gtk:amd64 Depends on libpython3.4 [ amd64 ] < none -> 3.4.0-2ubuntu1.1 > ( libs ) (>= 3.4.2)
Broken vim-gtk:amd64 Depends on libruby1.9.1 [ amd64 ] < none -> 1.9.3.484-2ubuntu1.2 > ( libs ) (>= 1.9.2.0)
  Considering libruby1.9.1:amd64 0 as a solution to vim-gtk:amd64 9998
  Re-Instated ruby:amd64
  Re-Instated ruby1.9.1:amd64
  Re-Instated libssl1.0.0:amd64
  Re-Instated openssl:amd64
  Re-Instated ca-certificates:amd64
  Re-Instated libffi6:amd64
  Re-Instated libgdbm3:amd64
  Re-Instated libtinfo5:amd64
  Re-Instated libncursesw5:amd64
  Re-Instated readline-common:amd64
  Re-Instated libreadline6:amd64
  Re-Instated libyaml-0-2:amd64

  Re-Instated zlib1g:amd64
  Re-Instated libruby1.9.1:amd64
Broken vim-gtk:amd64 Depends on libselinux1 [ amd64 ] < none -> 2.2.2-1 > ( libs ) (>= 1.32)
  Considering libselinux1:amd64 0 as a solution to vim-gtk:amd64 9998
  Re-Instated libpcre3:amd64
  Re-Instated libselinux1:amd64
Broken vim-gtk:amd64 Depends on libsm6 [ amd64 ] < none -> 2:1.2.1-2 > ( libs )
  Considering libsm6:amd64 1 as a solution to vim-gtk:amd64 9998
  Re-Instated libuuid1:amd64
  Re-Instated libsm6:amd64
Broken vim-gtk:amd64 Depends on libtcl8.6 [ amd64 ] < none -> 8.6.1-4ubuntu1 > ( libs ) (>= 8.6.0)
  Considering libtcl8.6:amd64 0 as a solution to vim-gtk:amd64 9998
  Re-Instated tzdata:amd64
  Re-Instated libtcl8.6:amd64
Broken vim-gtk:amd64 Depends on libx11-6 [ amd64 ] < none -> 2:1.6.2-1ubuntu2 > ( libs )
  Considering libx11-6:amd64 1 as a solution to vim-gtk:amd64 9998
  Re-Instated libxau6:amd64
  Re-Instated libxdmcp6:amd64
  Re-Instated libxcb1:amd64
  Re-Instated libx11-data:amd64
  Re-Instated libx11-6:amd64
Broken vim-gtk:amd64 Depends on libxt6 [ amd64 ] < none -> 1:1.1.4-1 > ( libs )
  Considering libxt6:amd64 1 as a solution to vim-gtk:amd64 9998
  Re-Instated libxt6:amd64
Done
E: Unable to correct problems, you have held broken packages.

Thanks for your time, Brenton

fusion809 commented 8 years ago

Nvm had to add extra repos.

fusion809 commented 8 years ago

Well it builds better now, but it is having difficulty determining the package's version. Namely it creates an AppImage with the filename:

GVim-.glibc2.15-x86_64.AppImage
fusion809 commented 8 years ago

Oh and the AppImage returns the error:

/bin/bash: ../lib/x86_64-linux-gnu/libtinfo.so.5: no version information available (required by /bin/bash)
/root/.cache/thumbnails/normal/9022fa7bc47454b0948866b2a68ebbec.png is missing. Probably not running ./bin//gvim.wrapper from within an AppImage.
Hence falling back to using .DirIcon
./bin//gvim.wrapper: line 110: 18117 Aborted                 (core dumped) LD_LIBRARY_PATH="" zenity --question --title="$TITLE" --text="$TEXT" 2> /dev/null
Error detected while processing /usr/share/vim/vimrc:
line   20:
E484: Cannot open file /usr/share/vim/syntax/syntax.vim

when it is run. I have tried adding the lines:

  - cd ../share/vim/
  - mkdir syntax
  - cp vim80/syntax/syntax.vim syntax/syntax.vim

to my yaml.

probonopd commented 8 years ago

Please ask the gVim developers to provide an AppImage.

fusion809 commented 8 years ago

I have https://github.com/vim/vim/issues/1204. Did so before I even opened this issue, though I should have mentioned that when I opened this issue.

probonopd commented 8 years ago

The error message says that it is trying lo load something from /usr/share/vim/syntax/syntax.vim. Clearly, this cannot work, since the AppImage is mounted to a different, ever-changing location. Most likely this means the gVim is not relocateable at runtime. Please request support for that, e.g., using binreloc.

In the meantime, you could try adding binpatch: true as the second line in your yaml. This will binary-patch /usr to a relative path which sometimes works.

fusion809 commented 8 years ago

Aha binpatch worked. It seems to be working perfectly now. Except the AppImage's name does not specify the package version. Here is my yaml:

app: gvim
binpatch: true

ingredients:
  package: vim-gtk
  dist:    trusty
  sources:
    - deb http://archive.ubuntu.com/ubuntu/ trusty main restricted
    - deb http://archive.ubuntu.com/ubuntu/ trusty universe
    - deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted
    - deb http://archive.ubuntu.com/ubuntu/ trusty-updates universe
    - deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted
    - deb http://archive.ubuntu.com/ubuntu/ trusty-security universe
  ppas:
    - jonathonf/vim

script:
  # Needed due to missing icon file for gvim
  - cp ./usr/share/icons/hicolor/scalable/apps/gvim.svg .
  # Needed due to missing gvim binary that is mentioned in gvim.desktop file
  - cd ./usr/bin
  - ln -sf vim.gtk gvim

and it produces an AppImage GVim-.glibc2.15-x86_64.AppImage. Although it requires a Recipe that excludes XML metadata.

fusion809 commented 8 years ago

By-the-way, I have gone into the AppDir of GVIM and run:

grep --include="*" -R "8.0.0051" .

(where 8.0.0051 is the version of this package) and it failed to find where the package version is defined. So it seems like getting a package version is going to be a challenge.

probonopd commented 8 years ago

What happens if you ONLY use deb http://archive.ubuntu.com/ubuntu/ trusty main and leave away all other repositories?

fusion809 commented 8 years ago

If you mean, without the PPA also, then it gives the error:

    Reinst Failed early because of libgtk2.0-0:amd64
    Reinst Failed because of libgail18:amd64
    Reinst Failed because of libgnomecanvas2-0:amd64
Investigating (1) libbonoboui2-0 [ amd64 ] < none -> 2.24.5-0ubuntu3 > ( libs )
Broken libbonoboui2-0:amd64 Depends on libgnomecanvas2-0 [ amd64 ] < none -> 2.30.3-2 > ( libs ) (>= 2.11.1)
  Considering libgnomecanvas2-0:amd64 2 as a solution to libbonoboui2-0:amd64 2
  Holding Back libbonoboui2-0:amd64 rather than change libgnomecanvas2-0:amd64
Investigating (2) vim-gnome [ amd64 ] < none -> 2:7.4.052-1ubuntu3 > ( editors )
Broken vim-gnome:amd64 Depends on libbonoboui2-0 [ amd64 ] < none -> 2.24.5-0ubuntu3 > ( libs ) (>= 2.15.1)
  Considering libbonoboui2-0:amd64 2 as a solution to vim-gnome:amd64 10004
    Reinst Failed because of libgnomecanvas2-0:amd64
Broken vim-gnome:amd64 Depends on libgnomeui-0 [ amd64 ] < none -> 2.24.5-3 > ( libs ) (>= 2.22.0)
  Considering libgnomeui-0:amd64 1 as a solution to vim-gnome:amd64 10004
Done
E: Unable to correct problems, you have held broken packages.
probonopd commented 8 years ago

No, I mean with:

  sources:
    - deb http://archive.ubuntu.com/ubuntu/ trusty main
  ppas:
    - jonathonf/vim
fusion809 commented 8 years ago

Builds fine, no package version determined though.

fusion809 commented 8 years ago

Although I found that on my Ubuntu 16.10 VM it doesn't ask to install a desktop icon, rather I get the error:

./bin//gvim.wrapper: line 110:  3264 Aborted                 (core dumped) LD_LIBRARY_PATH="" zenity --question --title="$TITLE" --text="$TEXT" 2> /dev/null

Despite this it launches seemingly without any further issues.

probonopd commented 8 years ago

It appears like the vim project does continuous builds on Travis CI already, so they could provide AppImages of these builds:

https://travis-ci.org/vim/vim