On Sun, Apr 3, 2016 at 5:16 AM, Daniel Vrátil <dvra...@kde.org> wrote:
> On Sunday, April 3, 2016 12:58:24 PM CEST David Faure wrote: > > On Sunday 03 April 2016 12:43:27 Daniel Vrátil wrote: > > > Turns out when you include /usr/share in XDG_DATA_DIRS, all mime types > > > that > > > might have been provided by other dependencies in > > > /srv/jenkins/.../foo/inst/ usr/share/mime are ignored, possibly due to > > > update-mime-database not being ran for those directories. > > > > I'm not sure I fully understand this sentence. Do you mean the value of > > XDG_DATA_DIRS at update-mime-database time or during the running of unit > > tests? > > XDG_DATA_DIRS value when running the unit tests. > > > update-mime-database works on one specific install dir and creates files > > there. The value of XDG_DATA_DIRS during the run of update-mime-database > > shouldn't matter. > > > > If the stuff /srv/jenkins/.../foo/inst/usr/share/mime is ignored, it can > be > > either > > > 1) because update-mime-database wasn't run on that dir > > (which is my current hypothesis for the KIO kfileitemtest failure > which > > needs a mimetype from kcoreaddons) > > The thing is that the content of /srv/jenkins/.../foo/inst/usr/share/mime > is > NOT ignored, when /usr/share is NOT in XDG_DATA_DIRS. > > Once you include /usr/share in XDG_DATA_DIRS, the content of the > /srv/.../mime > folders IS ignored. > > Akonadi installs a mime file to share/mime/packages/akonadi-mime.xml which > introduces some new mimetypes and are used to find the right serialize > plugins > for those types. With /usr/share in XDG_DATA_DIRS Akonadi is not able to > find > serializer plugins for application/x-vnd.akonadi.calendar.todo for > instance, > because it (using QMimeDatabase) does not know about this mime type. > Removing > /usr/share from XDG_DATA_DIRS makes Akonadi (QMimeDatabase) find > application/ > x-vnd.akonadi.calendar.todo just find and thus find a respective serializer > plugin for the type. > > > > 2) because that dir isn't in > > XDG_DATA_DIRS (this is not the problem) later on. > > I verified that it is there. > > > 3) because > > update-mime-database ran but didn't create the stuff it's supposed to > > create -- I understand your email as saying this might be the problem, > but > > I can't confirm it: > > If I compare output of "make install" from CI and running it locally, it > indeed appears that update-mime-database is not run on the CI at all: > > CI: > 16:22:17 Install the project... > 16:22:17 -- Install configuration: "Debug" > 16:22:17 -- Installing: > /home/jenkins/sources/akonadi/kf5-qt5/local-inst/srv/ > > jenkins/install/ubuntu/x86_64/g++/kf5-qt5/kde/pim/akonadi/inst/usr/share/mime/ > packages/akonadi-mime.xml > 16:22:17 -- Installing: > /home/jenkins/sources/akonadi/kf5-qt5/local-inst/srv/ > > jenkins/install/ubuntu/x86_64/g++/kf5-qt5/kde/pim/akonadi/inst/usr/lib/x86_64- > linux-gnu/cmake/KF5Akonadi/KF5AkonadiConfig.cmake > > > Locally: > -- Install configuration: "Debug" > -- Up-to-date: /opt/kde-devel/share/mime/packages/akonadi-mime.xml > -- Updating MIME database at /opt/kde-devel/share/mime > -- Up-to-date: /opt/kde-devel/lib64/cmake/KF5Akonadi/KF5AkonadiConfig.cmake > > > > > on my own system, I have /usr/share/mime/packages/kde.xml defining > > application/x-smb-workgroup and /usr/share in XDG_DATA_DIRS, and yet > > running update-mime-database on /d/kde/inst/kde_frameworks/share/mime > > creates > > /d/kde/inst/kde_frameworks/share/mime/application/x-smb-workgroup.xml as > > expected. > > > I manually ran update-mime-database on the akonadi and kdepim-runtime > > > install dirs on Jenkins and the Zanshin tests magically started passing > > > again. > > Yes, which only proves that the problem was that it didn't run, not that > the > > value of XDG_DATA_DIRS is the problem. > > > > > Our idea for a quick dirty fix was to simply run update-mime-database > once > > > CI sets up the environment variables but before the test is executed. > > > > > > David, do you have any better suggestions? > > > > Yes, I'd like to know why "make install" in e.g. kcoreaddons doesn't > seem to > > run update-mime-database on CI while it does here (and given that > > update-mime-database *is* found in the CI). > > With the new CI I'm having trouble debugging this, there are no sources > and > > build dirs from previous runs anymore :-) > > update-mime-database seems to be run by ECM, the documentation says > > # The follow macro is available:: > # > # update_xdg_mimetypes(<path>) > # > # Updates the XDG mime database at install time (unless the > ``$DESTDIR`` > # environment variable is set, in which case it is up to package > managers > to > # perform this task). > > I suspect that CI uses "make DESTDIR=/srv/jenkins/...../foo/inst install" > to > install stuff, thus not triggering the update, as documented and it's up to > the CI script to run it manually.... > > Dan > > Sorry I have not been more responsive. I am visiting family and have been traveling. I think I found the issue. The function that checks whether our scripts should run it was not looking in /usr/share/mime Just commited a fix. Scarlett > -- > Daniel Vrátil > www.dvratil.cz | dvra...@kde.org > IRC: dvratil on Freenode (#kde, #kontact, #akonadi, #fedora-kde) > > _______________________________________________ > Kde-frameworks-devel mailing list > Kde-frameworks-devel@kde.org > https://mail.kde.org/mailman/listinfo/kde-frameworks-devel > >
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel