After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 554121 - gmime-2.4.0 is "slottable" but not its documentation
gmime-2.4.0 is "slottable" but not its documentation
Status: VERIFIED FIXED
Product: gmime
Classification: Other
Component: general
2.4.x
Other Linux
: Normal normal
: ---
Assigned To: Jeffrey Stedfast
Jeffrey Stedfast
Depends on:
Blocks:
 
 
Reported: 2008-09-27 22:52 UTC by Gilles Dartiguelongue
Modified: 2008-10-04 01:25 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gmime-HEAD-slot-doc.patch (1.38 KB, patch)
2008-10-02 20:12 UTC, Gilles Dartiguelongue
none Details | Review
2.4.1 gtk-doc patch (851 bytes, patch)
2008-10-03 03:26 UTC, Yaakov Selkowitz
none Details | Review

Description Gilles Dartiguelongue 2008-09-27 22:52:44 UTC
Heya,

I was trying to update the ebuild on gentoo and here is what I have:

 * Detected file collision(s):
 * 
 * 	/usr/share/gapi-2.0/gmime-api.xml
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-header.html
 * 	/usr/share/gtk-doc/html/gmime/Filters.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-param.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-from.html
 * 	/usr/share/gtk-doc/html/gmime/home.png
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-stream-filter.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-multipart-signed.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-stream-fs.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-stream-null.html
 * 	/usr/share/gtk-doc/html/gmime/core.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-enriched.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-object.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-message-part.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-stream.html
 * 	/usr/share/gtk-doc/html/gmime/up.png
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-message-partial.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-filters.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-cipher-context.html
 * 	/usr/share/gtk-doc/html/gmime/gmime.devhelp
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-utils.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-session-simple.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-basic.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-multipart-encrypted.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-gzip.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-gpg-context.html
 * 	/usr/share/gtk-doc/html/gmime/Sessions.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-multipart.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-internet-address.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-iconv.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-stream-mmap.html
 * 	/usr/share/gtk-doc/html/gmime/gmime.devhelp2
 * 	/usr/share/gtk-doc/html/gmime/gmime-changes-2-0.html
 * 	/usr/share/gtk-doc/html/gmime/Headers.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-stream-mem.html
 * 	/usr/share/gtk-doc/html/gmime/MimeParts.html
 * 	/usr/share/gtk-doc/html/gmime/classes.html
 * 	/usr/share/gtk-doc/html/gmime/index.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-compiling.html
 * 	/usr/share/gtk-doc/html/gmime/left.png
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-data-wrapper.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-strip.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-building.html
 * 	/usr/share/gtk-doc/html/gmime/index.sgml
 * 	/usr/share/gtk-doc/html/gmime/InternetAddresses.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-crlf.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-changes-2-2.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-yenc.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-charset.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-resources.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-content-type.html
 * 	/usr/share/gtk-doc/html/gmime/style.css
 * 	/usr/share/gtk-doc/html/gmime/Parsers.html
 * 	/usr/share/gtk-doc/html/gmime/DataWrappers.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-disposition.html
 * 	/usr/share/gtk-doc/html/gmime/right.png
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-md5.html
 * 	/usr/share/gtk-doc/html/gmime/gmime.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-best.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-message.html
 * 	/usr/share/gtk-doc/html/gmime/CipherContexts.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-session.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-html.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-filter-windows.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-stream-buffer.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-data-wrappers.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-stream-cat.html
 * 	/usr/share/gtk-doc/html/gmime/ch01.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-streams.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-iconv-utils.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-stream-file.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-parser.html
 * 	/usr/share/gtk-doc/html/gmime/Streams.html
 * 	/usr/share/gtk-doc/html/gmime/fundamentals.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-charset.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-question-index.html
 * 	/usr/share/gtk-doc/html/gmime/gmime-gmime-part.html
 * 	/usr/lib/debug/usr/bin/gmime-uudecode.debug
 * 	/usr/lib/debug/usr/bin/gmime-uuencode.debug
 * 	/usr/bin/gmime-uuencode
 * 	/usr/bin/gmime-uudecode
 * 	/usr/lib64/mono/gmime-sharp/gmime-sharp.dll

So even if gmime is supposed to be parallel installable between 2.2 and 2.4, it seems it's sharp dll and documentation can't. Don't worry about the gmime-uuencode, it's a specific gentoo change to allow multiple uuencode to coexist.

For doc, the solution should consist of adding the slot (2.4) to DOC_MODULE
Comment 1 Jeffrey Stedfast 2008-09-27 23:39:23 UTC
fixed the install of /usr/share/gapi-2.0/gmime-api.xml, dunno why whoever wrote the makefile fu made it install that.

I've tried setting the TARGET_DIR for the docs, but it gets ignored - maybe I'll have to make a copy of gtk-doc.make rather than pulling in the version from the installed gtk-docs package.

a better solution would be to fix the gtk-doc.make rules in the gtk-doc package to use:

TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE_VERSIONED)

if DOC_MODULE_VERSIONED is defined.

that would solve your docs issue.

/usr/lib64/mono/gmime-sharp/gmime-sharp.dll

should just be a symlink which I guess is made by gacutil, because the real .dll should be installed into /usr/lib64/mono/gac/gmime-sharp/2.4.0.0__2b75c2ad004c52e4/gmime-sharp.dll
Comment 2 Gilles Dartiguelongue 2008-10-01 22:46:41 UTC
alright, so what shall I do about gmime-sharp ? is it supported to have dll of both slots installed ? how would a program compiled with 2.2 react in presence of 2.4 with the symlink ? should the symlink contain the version of the slot ?

sorry I'm a mono n00b :)
Comment 3 Jeffrey Stedfast 2008-10-02 14:00:14 UTC
those are good questions, I'm not totally sure...

fwiw, the only program that uses gmime-2.2's gmime-sharp.dll is beagle and right now, no program sues gmime-2.4's gmime-sharp.dll, but beagle will likely be the first to use it.

my suggestion would be to follow beagle's development and see when they finally move to gmime-2.4, when they do that, stop shipping gmime-2.2's gmime-sharp and switch over to gmime-2.4's gmime-sharp

the debian gmime package maintainer is also the mono package maintainer iirc, so maybe I can poke him to find out if he has ideas and get back to you with a solution.

I'm pretty sure that you can have both gmime-sharp.dll's installed at the same time (2.4 is strong signed with a different key than 2.2), just not sure if the symlink will throw a wrench into the loading.
Comment 4 Jeffrey Stedfast 2008-10-02 14:22:21 UTC
ok, I have the gmime-sharp.dll issue resolved in svn now, I made it install into a versioned directory ${prefix}/mono/gmime-sharp-2.4/

now I just gotta figure out how I want to solve the docs issue.

I may just pull in my own version of gtk-doc.make and modify it to install into a versioned prefix.

I hope to have a 2.4.1 with these fixes out sometime this weekend.

thanks for bringing these issues to my attention, I totally didn't even notice them when I was checking that 2.4 was parallel installable :(
Comment 5 Jeffrey Stedfast 2008-10-02 16:56:05 UTC
ok, just released 2.4.1 with fixes for all of these issues. hopefully you won't find more :p
Comment 6 Gilles Dartiguelongue 2008-10-02 20:12:16 UTC
Created attachment 119822 [details] [review]
gmime-HEAD-slot-doc.patch

actually if you apply this patch on revision 1482, it should make it nicely go into /usr/share/gtk-doc/gmime-2.4/ with no particular hassle.

I've commited some entities in gmime-docs.xml because they would prevent doc compilation on my system, feel free to drop that part.

 docs/reference/Makefile.am     |    3 +--
 docs/reference/gmime-docs.sgml |    4 ++--
 gtk-doc.make                   |    2 +-
 3 files changed, 4 insertions(+), 5 deletions(-)
Comment 7 Gilles Dartiguelongue 2008-10-02 22:49:42 UTC
ah too late for a patch :)

well, I'm still happy to say 2.4.1 is now collision-free, thanks very much.
Comment 8 Yaakov Selkowitz 2008-10-03 03:26:15 UTC
Created attachment 119837 [details] [review]
2.4.1 gtk-doc patch

Please reopen; unfortunately 2.4.1 doesn't completely fix these issues.

Actually, Gilles solution was much closer.  Devhelp requires that the .devhelp file have the same name as the parent directory.  Furthermore, the book needs a unique name for both 2.0/2.2 and 2.4 to show up on the book index.

I'm attaching a patch for use together with the latest stock gtk-doc.make.

Like Gilles, I also get numerous warnings such as:

Warning: multiple "IDs" for constraint linkend: InternetAddressGroup.

Removing those three lines as Gilles did, though, removes the documentation for those three classes, where leaving them in, while noisy, does build.

Also, regarding gmime-sharp, mono/gmime-sharp.dll.config.in needs a 's/2.0/2.4/'.
Comment 9 Jeffrey Stedfast 2008-10-03 14:05:32 UTC
hmmm, the docs don't build for me if I apply your cygwin ports patch :(

the problem with putting the version info in the DOCS_MODULE variable is that gtk-doc.make assumes that $(DOCS_MODULE)-sections.txt, $(DOCS_MODULE).hierarchy, etc all exist but they don't, because they are called gmime-sections.txt, etc.

I could rename everything, but that's a huge hassle whenever I might change API again in the future, plus it destroys revision history :(

I've submitted a bug report to gtk-doc guys, so maybe this will get fixed soon
Comment 10 Gilles Dartiguelongue 2008-10-03 23:06:32 UTC
(In reply to comment #9)
> I could rename everything, but that's a huge hassle whenever I might change API
> again in the future, plus it destroys revision history :(

hassle: yes, loose history: no

svn does keep history for moved and copied files (that's how you do tags as well so it'd better keep the damn history :) ).

Comment 11 Jeffrey Stedfast 2008-10-04 00:53:35 UTC
good news, I've submitted a gtk-doc patch upstream that solves the devhelp issue as well.

see bug #554718
Comment 12 Jeffrey Stedfast 2008-10-04 01:25:46 UTC
ok, I've just uploaded a new version to:

http://www.gnome.org/~fejj/gmime-2.4.1.1.tar.gz

could you guys check that this works?