Jeremiah I have had another response from <[email protected]> the evince list (to my original post): Hi Richard, How are you compiling evince? One way of encountering the errors you are facing is that either shared-mime-info is not installed on your system or glib is not finding it, so please double check that you have shared-mime info installed [1] (If you are using jhbuild, just do jhbuild install shared-mime-info) Greetings José
[1] http://freedesktop.org/wiki/Software/shared-mime-info On Tue, Mar 19, 2013 at 4:48 AM, Richard Shann <[email protected]> wrote: Hi Hib, I have had some feedback from Jeremiah who is working with the Mac on the evince library build, he ran the call to ev_file_get_mime_type("file:///tmp/DenemoYBsSdY/denemoprintB.pdf", 1, NULL) in gdb and got back the string "text/plain" So he appended ";text/plain" and ";application/octet-stream" for good measure to the pdfdocument.evince-backend file: MimeType=application/pdf;application/x-bzpdf;application/x-gzpdf;application/x-ext-pdf;text/plain;application/octet-stream but reports it still didn't load. He says he is still hacking so there is no need to respond to this unless you have a specific idea (e.g. about that "text/plain" thing) that will help. Thanks again, Richard > > Hi Richard, > > > > On Sun, Mar 17, 2013 at 4:10 PM, Richard Shann <[email protected]> > > wrote: > >> Running GNU/Denemo on Mac OSX we use ev_document_factory_get_document() > >> to load a pdf file. On this platform (only) the call fails with the > >> message > >> > >> File type application/octet-stream type (application/octet-stream) is > >> not supported > >> > >> Can anyone suggest what might be wrong? The call is working fine on > >> GNU/Linux and on Windows. > > > > Previously, I've run into the same problem when porting Evince to > > Windows. It has something to do with Evince' mime-type > > detection/handling. I think there were several issues with it. > > > > First step to fixing this is to see what this evince function returns: > > > > mime_type = ev_file_get_mime_type (uri, TRUE, error); > > > > If that returns 'application/octet-stream', I guess you need to > > register the pdf mime type somewhere in your OS specific mime type > > store. > > > > If the mime type is something like 'application/pdf', then make sure > > the returned mimetype is specified in the file > > /usr/lib/evince/4/backends/pdfdocument.evince-backend. > > > > Regards, > > > > Hib Eris _______________________________________________ evince-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/evince-list On Tue, 2013-03-19 at 08:28 -0500, Jeremiah Benham wrote: > > > On Tue, Mar 19, 2013 at 6:23 AM, Richard Shann > <[email protected]> wrote: > Jeremiah - here is the response from the evince list about the > text/plain value. > Can you run the > ev_file_get_mime_type("file:///tmp/DenemoYBsSdY/denemoprintB.pdf", 0, > NULL) > > This returned: > application/octet-stream > > I set it to look for the modules path using getenv and now I am > getting some errors. Maybe I can copy libevdocument.2.dylib to > libevdocument.2.so or something. libevdocument.2.dylib exists with > /jeremiahbenham/Desktop/Denemo.app/Contents/MacOS/../Resources/lib. I > placed it in my LD_LIBRARY_PATH. Here is the error: > > (denemo:179): EvinceDocument-WARNING **: > dlopen(/Users/jeremiahbenham/Desktop/Denemo.app/Contents/MacOS/../Resources/lib/evince/2/backends/libpdfdocument.so, > 10): Library not loaded: /usr/lib/libevdocument.2.dylib > Referenced > from: > /Users/jeremiahbenham/Desktop/Denemo.app/Contents/MacOS/../Resources/lib/evince/2/backends/libpdfdocument.so > Reason: image not found > > (denemo:179): EvinceDocument-WARNING **: Cannot load backend > 'pdfdocument' since file > '/Users/jeremiahbenham/Desktop/Denemo.app/Contents/MacOS/../Resources/lib/evince/2/backends/libpdfdocument.so' > cannot be read. > warning: Ignored unknown object module at 0x1998d300 with type > 0x38c85a > > > (denemo:179): EvinceDocument-WARNING **: > dlopen(/Users/jeremiahbenham/Desktop/Denemo.app/Contents/MacOS/../Resources/lib/evince/2/backends/libpdfdocument.so, > 10): Library not loaded: /usr/lib/libevdocument.2.dylib > Referenced > from: > /Users/jeremiahbenham/Desktop/Denemo.app/Contents/MacOS/../Resources/lib/evince/2/backends/libpdfdocument.so > Reason: image not found > > (denemo:179): EvinceDocument-WARNING **: Cannot load backend > 'pdfdocument' since file > '/Users/jeremiahbenham/Desktop/Denemo.app/Contents/MacOS/../Resources/lib/evince/2/backends/libpdfdocument.so' > cannot be read. > > ** (denemo:179): WARNING **: Trying to read the pdf file > file:///tmp/DenemoXTxl4l/denemoprintB.pdf gave an error: File type > application/octet-stream type (application/octet-stream) is not > supported > > > Jeremiah > > > > call he suggests, the different second parameter is a boolean > which > toggles between "fast" mime type detection and slow. We were > calling for > "fast". > > He gives a helpful reference to where in the code this is > going on ... > email is below > Richard > > 8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8>< > > On Tue, Mar 19, 2013 at 9:48 AM, Richard Shann > <[email protected]> wrote: > > Hi Hib, > > > > I have had some feedback from Jeremiah who is working with > the Mac on > > the evince library build, he ran the call to > > > > > ev_file_get_mime_type("file:///tmp/DenemoYBsSdY/denemoprintB.pdf", 1, > NULL) > > > > in gdb and got back the string > > > > "text/plain" > > "text/plain" is obviously not correct, it should be something > with > 'pdf' in it I guess. > > Could you see what > > ev_file_get_mime_type("file:///tmp/DenemoYBsSdY/denemoprintB.pdf", 0, > NULL) > > gives back as well? > > Evince code for mime type detection is in > libdocument/ev-file-helpers.c. > I'm afraid it is a bit unpredictable when glib fails to find > the > correct mime-type/content-type. > > On Tue, 2013-03-19 at 00:46 -0500, Jeremiah Benham wrote: > > I decided to hack on evince a bit. I put a few lines of code > in to set > > the evince module dir based on environment variable. I am > also going > > to force all files to be pdf if the filename ends with .pdf > so that we > > don't have to mess wity mime stuff. > > > > Jeremiah > > > > On Mar 18, 2013 5:58 PM, "Jeremiah Benham" > > <[email protected]> wrote: > > On 3/18/13, Richard Shann <[email protected]> > wrote: > > > Jeremiah - > > > > > > I have received this very informative reply from > Hib Eris - > > would you like > > > me to put a print-out of ev_file_get_mime_type() > into the > > sources > > > or are you able to do > > > > > > call ev_file_get_mime_type > > ("file:///tmp/Denemou<xxx>/denemoprintB.pdf", 1, > > > NULL) > > > > > > while in gdb? (The temp directory will be <xxx> > and you need > > either A or B > > > depending). > > > > I ran this in gdb: > > (gdb) print (char *) ev_file_get_mime_type > > ("file:///tmp/DenemoYBsSdY/denemoprintB.pdf", 1, > NULL) > > > > This is what it returned: > > $3 = 0x76836c0 "text/plain" > > > > I ran: > > file /tmp/DenemoYBsSdY/denemoprintB.pdf > > it returned: > > /tmp/DenemoYBsSdY/denemoprintB.pdf: PDF document, > version 1.4 > > > > > > > > or can you just > > > check /usr/lib/evince/4/backends/pdfdocument.evince-backend > > > > It looks ok. At the end it has: > > > > MimeType=application/pdf;application/x-bzpdf;application/x-gzpdf;application/x-ext-pdf > > I appended: > > ;text/plain;application/octet-stream > > > > Unfortunately it is still not loading. I am going to > have to > > do some > > tinkering I guess. I am not sure if this > > pdfdocument.evince-backend is > > even being read. I will let you know later my > progress or lack > > of. > > > > Jeremiah > > > > > first (I would guess it is ok) > > > and look at the other fix - the "register the pdf > mime type > > somewhere in > > > your OS specific mime type > > > store" thing. > > > The email exchange follows > > > Richard > > > > > > > 8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8>< > > > > > > Hi Richard, > > > > > > On Sun, Mar 17, 2013 at 4:10 PM, Richard Shann > > <[email protected]> > > > wrote: > > >> Running GNU/Denemo on Mac OSX we use > > ev_document_factory_get_document() > > >> to load a pdf file. On this platform (only) the > call fails > > with the > > >> message > > >> > > >> File type application/octet-stream type > > (application/octet-stream) is > > >> not supported > > >> > > >> Can anyone suggest what might be wrong? The call > is working > > fine on > > >> GNU/Linux and on Windows. > > > > > > Previously, I've run into the same problem when > porting > > Evince to > > > Windows. It has something to do with Evince' > mime-type > > > detection/handling. I think there were several > issues with > > it. > > > > > > First step to fixing this is to see what this > evince > > function returns: > > > > > > mime_type = ev_file_get_mime_type (uri, TRUE, > error); > > > > > > If that returns 'application/octet-stream', I > guess you need > > to > > > register the pdf mime type somewhere in your OS > specific > > mime type > > > store. > > > > > > If the mime type is something like > 'application/pdf', then > > make sure > > > the returned mimetype is specified in the file > > > > /usr/lib/evince/4/backends/pdfdocument.evince-backend. > > > > > > Regards, > > > > > > Hib Eris > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > That > > > > > > > > > > > > _______________________________________________ > > > Denemo-devel mailing list > > > [email protected] > > > > https://lists.gnu.org/mailman/listinfo/denemo-devel > > > > > > > _______________________________________________ Denemo-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/denemo-devel
