appimage-packages / kmail

KDE Kmail Appimage
https://s3-eu-central-1.amazonaws.com/ds9-apps/kmail-master-appimage/kmail-git20170302-x86_64.AppImage
2 stars 0 forks source link

libkrb5.so.26 missing #7

Closed probonopd closed 7 years ago

probonopd commented 7 years ago

Running on Fedora 25:

kmail: error while loading shared libraries: libkrb5.so.26: cannot open shared object file: No such file or directory
ScarlettGatelyMoore commented 7 years ago

Please see your exclude/blacklist: https://raw.githubusercontent.com/probonopd/AppImages/master/excludelist

I am notu sure what I can do here.

star-buck commented 7 years ago

I get this, seems related:

''' netrunner@netrunner-pc:~$ ./kmail-git20170215-15_13_38-x86_64.AppImage 2017-02-15 20:15:10 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-02-15 20:15:10 0 [Note] mysqld (mysqld 5.6.33-0ubuntu0.14.04.1) starting as process 3773 ... 2017-02-15 20:15:10 3773 [Warning] Using pre 5.5 semantics to load error messages from /tmp/.mount_prTSg8/usr/share/mysql/english/. 2017-02-15 20:15:10 3773 [Warning] If this is not intended, refer to the documentation for valid usage of --lc-messages-dir and --language parameters. 2017-02-15 20:15:10 3773 [Note] Plugin 'FEDERATED' is disabled. mysqld: Table 'mysql.plugin' doesn't exist 2017-02-15 20:15:10 3773 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 2017-02-15 20:15:10 3773 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-02-15 20:15:10 3773 [Note] InnoDB: The InnoDB memory heap is disabled 2017-02-15 20:15:10 3773 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-02-15 20:15:10 3773 [Note] InnoDB: Memory barrier is not used 2017-02-15 20:15:10 3773 [Note] InnoDB: Compressed tables use zlib 1.2.8 2017-02-15 20:15:10 3773 [Note] InnoDB: Using Linux native AIO 2017-02-15 20:15:10 3773 [Note] InnoDB: Using CPU crc32 instructions 2017-02-15 20:15:10 3773 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2017-02-15 20:15:10 3773 [Note] InnoDB: Completed initialization of buffer pool 2017-02-15 20:15:10 3773 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created! 2017-02-15 20:15:10 3773 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB 2017-02-15 20:15:10 3773 [Note] InnoDB: Database physically writes the file full: wait... 2017-02-15 20:15:13 3773 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB 2017-02-15 20:15:14 3773 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB 2017-02-15 20:15:15 3773 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 2017-02-15 20:15:15 3773 [Warning] InnoDB: New log files created, LSN=45781 2017-02-15 20:15:15 3773 [Note] InnoDB: Doublewrite buffer not found: creating new 2017-02-15 20:15:15 3773 [Note] InnoDB: Doublewrite buffer created 2017-02-15 20:15:15 3773 [Note] InnoDB: 128 rollback segment(s) are active. 2017-02-15 20:15:15 3773 [Warning] InnoDB: Creating foreign key constraint system tables. 2017-02-15 20:15:15 3773 [Note] InnoDB: Foreign key constraint system tables created 2017-02-15 20:15:15 3773 [Note] InnoDB: Creating tablespace and datafile system tables. 2017-02-15 20:15:15 3773 [Note] InnoDB: Tablespace and datafile system tables created. 2017-02-15 20:15:15 3773 [Note] InnoDB: Waiting for purge to start 2017-02-15 20:15:15 3773 [Note] InnoDB: 5.6.33 started; log sequence number 0 2017-02-15 20:15:15 3773 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 14c8e9f5-f3b3-11e6-87fb-c89cdca2b9f6. 2017-02-15 20:15:15 3773 [Note] Server hostname (bind-address): '*'; port: 3306 2017-02-15 20:15:15 3773 [Note] IPv6 is available. 2017-02-15 20:15:15 3773 [Note] - '::' resolves to '::'; 2017-02-15 20:15:15 3773 [Note] Server socket created on IP: '::'. 2017-02-15 20:15:15 3773 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString) org.kde.pim.akonadiserver: Failed to use database "akonadi" org.kde.pim.akonadiserver: Database error: "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) QMYSQL: Unable to connect" org.kde.pim.akonadiserver: Failed to connect to database! org.kde.pim.akonadiserver: Database error: "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) QMYSQL: Unable to connect" QSqlDatabasePrivate::removeDatabase: connection 'initConnection' is still in use, all queries will cease to work. org.kde.pim.akonadiserver: Failed to remove runtime connection config file org.kde.pim.akonadicontrol: Application 'akonadiserver' exited normally... kmail: error while loading shared libraries: libkrb5.so.26: cannot open shared object file: No such file or directory '''

star-buck commented 7 years ago

@probonopd : Is it even possible to run mysql and users on the fly and akonadi then connecting or does the whole concept of appimages is limited supporting these more complex scenarios?

Would it require to ship some form of base system "runtimes" that both flatpak and snap apparently came up with?

@ScarlettGatelyClark : Please stick to this kmail app, it is important that we find out if such applications can be made to work on appimage or not and compare exactly this usecase of Kmail to snap and flatpak solutions.

probonopd commented 7 years ago

@ScarlettGatelyClark

Please see your exclude/blacklist: https://raw.githubusercontent.com/probonopd/AppImages/master/excludelist

I am notu sure what I can do here.

You are 100% correct in blaming me here. My (obviously wrong) assumption was that all relevant target systems come with Kerberos.

We had this come up 10 days ago here, the truth is that probably almost no one really uses/needs Kerberos but still some libraries such as libcurl draw it in as a dependency. It was suggested to write a "dummy" library that just resolves the symbols without doing anything actually, but so far work on this hasn't started yet. Do you think we could set some compile-time options to not draw in Kerberos?

probonopd commented 7 years ago

2017-02-15 20:15:15 3773 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

At least this part seems to be a separate issue. But @star-buck further down the

kmail: error while loading shared libraries: libkrb5.so.26: cannot open shared object file: No such file or directory

is exactly the error discussed in this issue. The obvious, quick solution would be to just bundle it (i.e., remove it from the excludelist) but I am a bit hesitant to do that because it would increase AppImage sizes for everyone at the benefit of <0.01% of users who actually use Kerberos. (If you don't care about a few extra MB, just bundle it.)

probonopd commented 7 years ago

@star-buck

Is it even possible to run mysql and users on the fly and akonadi then connecting or does the whole concept of appimages is limited supporting these more complex scenarios?

Sure, shouldn't be a problem. As long as you can write a bash script that, e.g.,

  1. starts the mysql daemon
  2. launches KMail
  3. stops the mysql daemon as soon as KMail exits this totally should be doable. Remember an AppImage is just a self-mounting filesystem that executes whatever payload you put in there.

Would it require to ship some form of base system "runtimes" that both flatpak and snap apparently came up with?

Yes, this would be doable quite easily. But you'd lose the simplicity of the "one file = one app" concept that users like (and know from e.g., Android APKs and iOS IPAs).

ScarlettGatelyMoore commented 7 years ago

Yeah I think that is one thing that set appimages apart from others is download and run. Nothing else required.

star-buck commented 7 years ago

@ScarlettGatelyClark : can you do that script?

probonopd commented 7 years ago

@star-buck the current script

#!/bin/sh
DIR="`dirname \"$0\"`"
HERE="`( cd \"$DIR\" && pwd )`"
export LD_PRELOAD=$HERE/exec_wrapper.so
export QML2_IMPORT_PATH=$HERE/qml
export QT_PLUGIN_PATH=$HERE/plugins
export PATH=$HERE/usr/bin/:$HERE/usr/sbin/:$HERE/usr/games/:$HERE/bin/:$HERE/sbin/:$PATH
export LD_LIBRARY_PATH=$HERE/usr/lib/:$HERE/usr/lib/x86_64-linux-gnu/:$HERE/usr/lib64/:$HERE/lib/:$HERE/lib/x86_64-linux-gnu/:$HERE/lib64/:$LD_LIBRARY_PATH
export XDG_DATA_DIRS=$HERE/usr/share:$HOME/.local/share:$HERE/share:/usr/local/share/:/usr/share:$XDG_DATA_DIRS
export XDG_DATA_HOME=$HOME/.local/share
export XDG_CONFIG_DIRS=$HERE/.config:$HERE/etc/xdg:$XDG_CONFIG_DIRS
export KDE_FORK_SLAVES=1
export GST_PLUGIN_PATH=$HERE/lib
export GST_PLUGIN_SCANNER=$HERE/bin

kmail 

seems to be doing the job already pretty well. Looks like either the mysql daemon is implicitly started and stopped by KMail, or it is not really required? - Edit: May be required by akonadi.

@ScarlettGatelyClark I have the feeling that

$ cat /tmp/.mount_dy7CAY/usr/sbin/mysqld-akonadi
#!/bin/sh
DIR="\`dirname \"\$0\"\`"
HERE="\`( cd \"\$DIR\" && pwd )\`"

exec \$HERE././/sbin/mysqld $@

is not exactly what you intended, as \$HERE././/sbin/mysqld goes nowhere...

ScarlettGatelyMoore commented 7 years ago

!/bin/sh

DIR="`dirname \"\$0\"`" HERE="`( cd \"\$DIR\" && pwd )`"

exec \$HERE/usr/sbin/mysqld $@

is that file

ScarlettGatelyMoore commented 7 years ago

The original bug here is fixed. Lets move this converstation to bug https://github.com/appimage-packages/kmail/issues/11