Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 210021 - x11-libs/openmotif unslotting
Summary: x11-libs/openmotif unslotting
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard:
Keywords: InVCS
Depends on: 209912
Blocks: motif-tracker
  Show dependency tree
 
Reported: 2008-02-13 16:19 UTC by Jakub Moc (RETIRED)
Modified: 2008-03-25 15:26 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Proposed ebuild to have openmotif-2.2 libraries without interfering with more recent versions (openmotif-legacy-2.2.3.ebuild,2.41 KB, text/plain)
2008-02-15 16:46 UTC, Stefaan De Roeck (RETIRED)
Details
Ebuild for legacy Open Motif 2.2 libraries (openmotif-legacy-2.2.3.ebuild,1.64 KB, text/plain)
2008-02-23 19:49 UTC, Ulrich Müller
Details
Ebuild for legacy Open Motif 2.2 libraries (openmotif-compat-2.2.3.ebuild,1.83 KB, text/plain)
2008-02-26 11:23 UTC, Ulrich Müller
Details
Ebuild for legacy Open Motif 2.2 libraries (openmotif-compat-2.2.3.ebuild,1.75 KB, text/plain)
2008-03-13 10:13 UTC, Ulrich Müller
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jakub Moc (RETIRED) gentoo-dev 2008-02-13 16:19:41 UTC
Works in progress... :P
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2008-02-13 16:32:38 UTC
http://dev.gentooexperimental.org/~jakub/overlay/x11-libs/openmotif/

TODO: wipe useless functions from motif-config
Comment 2 Jakub Moc (RETIRED) gentoo-dev 2008-02-13 18:13:28 UTC
Should be all done and ready for testing in ~arch...
Comment 3 Ulrich Müller gentoo-dev 2008-02-13 20:46:00 UTC
> http://dev.gentooexperimental.org/~jakub/overlay/x11-libs/openmotif/

In motif-config-2.3, you probably want an "exit 0" in get_inc_path, too:

 get_inc_path() {
        echo "/usr/include/"
+       exit 0
 }
Comment 4 Ulrich Müller gentoo-dev 2008-02-14 10:13:51 UTC
Committed (still package.masked) with two changes:
- The demo binaries definitely don't belong into /usr/share/doc, so I removed
  them completely. If there is demand for them (what I doubt) we may think about
  installing them in /usr/libexec/openmotif.
- Fixed symlink for system.mwmrc; this was already broken in motif-config.
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2008-02-14 10:18:52 UTC
(In reply to comment #4)
> - The demo binaries definitely don't belong into /usr/share/doc, so I removed
>   them completely. If there is demand for them (what I doubt) we may think
> about
>   installing them in /usr/libexec/openmotif.

They originally were in /usr/libexec/openmotif, then I moved them to the demos src stuff because I disliked the location... Shrug. There's no way to disable compiling them without lots of messing, doesn't make much sense to compile them and delete them right after. :)
Comment 6 Ulrich Müller gentoo-dev 2008-02-14 11:48:09 UTC
(In reply to comment #5)
> There's no way to disable compiling them without lots of messing,
> doesn't make much sense to compile them and delete them right after. :)

I didn't spend attention to this because compile time for the demos is only a small fraction of the total time. But you are right of course; it is more intelligent not to compile the demos in the first place. Fixed version committed.
Comment 7 Jakub Moc (RETIRED) gentoo-dev 2008-02-14 13:51:41 UTC
Meh, IIRC I tried this sed approach but it didn't work for some reason... Maybe I just screwed and did the sed on a wrong file, anyway I'll test when I have more time. :)
Comment 8 Stefaan De Roeck (RETIRED) gentoo-dev 2008-02-15 09:33:24 UTC
Could I ask why we are unslotting this?  I have a binary application that needs openmotif 2.2, and I guess there are other people with the same problem.  
Comment 9 Ulrich Müller gentoo-dev 2008-02-15 10:20:37 UTC
(In reply to comment #8)
> Could I ask why we are unslotting this?  I have a binary application that
> needs openmotif 2.2, and I guess there are other people with the same problem.

We could think about an ebuild for openmotif 2.2 that installs only the shared libraries, i.e. lib{Xm,Mrm,Uil}.so*. The libraries are properly slotted: .so.3 for openmotif-2.2 and .so.4 for openmotif-2.3, so they could be installed alongside each other in /usr/$(get_libdir)/.

Would such a solution suit your needs?
Comment 10 Stefaan De Roeck (RETIRED) gentoo-dev 2008-02-15 10:22:29 UTC
(In reply to comment #9)
> Would such a solution suit your needs?

It would most certainly! Thanks in advance. 
Comment 11 Jakub Moc (RETIRED) gentoo-dev 2008-02-15 14:31:27 UTC
(In reply to comment #8)
> Could I ask why we are unslotting this?  I have a binary application that needs
> openmotif 2.2, and I guess there are other people with the same problem.  

Because it's utterly broken (see Bug 204249 and the blockers there). And I'm definitely against any re-slotting of this legacy crap.

Comment 12 Stefaan De Roeck (RETIRED) gentoo-dev 2008-02-15 16:46:29 UTC
Created attachment 143578 [details]
Proposed ebuild to have openmotif-2.2 libraries without interfering with more recent versions

Does the attached ebuild seem like an acceptable solution?
It's supposed to install just some .so.3 files in /usr/$(get_libdir) (apart from some cruft in /usr/share/doc).
Comment 13 Jakub Moc (RETIRED) gentoo-dev 2008-02-15 16:54:24 UTC
So, once again:

- *nothing* in the tree needs this
- there's *noone* to maintain this
- if something doesn't work with an openmotif version that changed about *5* files altogether in the source code since 2002 (unpack openmotif-2.3.0 and check the timestamps) then it's utter junk that deserves to die a painful death.

So, I'd suggest you go maintain this cruft in your overlay together with your binary-only stuff, instead of causing more maintenance burden with this that noone's interested in maintaining at all.
Comment 14 Stefaan De Roeck (RETIRED) gentoo-dev 2008-02-15 16:58:51 UTC
I am only trying to help.  Thank you for making me feel so welcome to do so.  
Comment 15 Ulrich Müller gentoo-dev 2008-02-15 17:22:33 UTC
<http://www.motifzone.org/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=75&MMN_position=74:3> says:
| Open Motif 2.3 is an updated version of 2.2. Any applications
| built against a previous 2.x release of Open Motif will be binary
| compatible with this release.

So in principle, binary applications should be compatible. However, upstream has changed the library slot from 3 to 4, so they may not find the library.

Stefaan, does application work if you add a symlink from 
lib{Xm,Mrm,Uil}.so.4 to *.so.3? (This solution was already taken for net-misc/icaclient.)
Comment 16 Jakub Moc (RETIRED) gentoo-dev 2008-02-15 18:18:05 UTC
(In reply to comment #14)
> I am only trying to help.  Thank you for making me feel so welcome to do so.  

Well the only help here is making the whole horrible toolkit die. And yeah what's  said above, the ABI change doesn't make absolutely any sense - the only 'development' this horrible thing has seen since 2002 have been the loads of security fixes we have in the 2.2.x ebuilds.
Comment 17 Andy Wang 2008-02-19 17:02:06 UTC
It bugs me that upstream made a library version change to .4, if there weren't any binary compatibility changes.  If there were, then this gets rather ugly for people who rely on binary only commercial packages.  Binary only commercial packages exist and as much as some people seem to think they suck, for alot of us in the real world, there's no choice.

If the upstream decided to make the bump to .4, I think it's in gentoo's best interest to maintain a .3 library that can be installed to appease those "stupid" binary only commercial packages. Isn't the point of having versioned shared libraries, so things can co-exist and make older applications happy?
Comment 18 Jakub Moc (RETIRED) gentoo-dev 2008-02-19 17:12:04 UTC
(In reply to comment #17)
> It bugs me that upstream made a library version change to .4, if there weren't
> any binary compatibility changes. 

You can ask upstream why did they do such stupid thing. Seeing this:

<snip>
Open Motif 2.3 is an updated version of 2.2. Any applications
built against a previous 2.x release of Open Motif will be binary
compatible with this release.
</snip>

they don't even seem to grok what's SONAME good for, apparently, so all I can do is wish you a good luck with that investigation.

> If there were, then this gets rather ugly for people who rely on binary only 
> commercial packages.  Binary only commercial packages exist and as much as 
> some people seem to think they suck, for alot of us in the real world, there's 

You paid for it, you go complain to your vendor that it's incompatible/broken with 'recent' openmotif versions.

> If the upstream decided to make the bump to .4, I think it's in gentoo's best
> interest to maintain a .3 library that can be installed to appease those
> "stupid" binary only commercial packages. Isn't the point of having versioned
> shared libraries, so things can co-exist and make older applications happy?

Once again, as stated multiple times on multiple other bugs - there's *no* maintainer for this and there's absolutely *zero* interest in maintaining anything but a single slot and single implementation of this legacy toolkit on Gentoo. If commercial stuff breaks for you, well sorry but that's not our fault,  there's nothing in out repository that'd require slotting or anything like that.
Create the symlinks, use a wrapper script to run that and move on.

So, please lets stop beating a dead horse finally, it won't go anywhere. 
Comment 19 Ulrich Müller gentoo-dev 2008-02-19 17:48:49 UTC
I guess we should at least add some elog message to pkg_postinst. Would something like the following be appropriate:

| Gentoo is no longer providing slotted Open Motif libraries. See bug 204249
| and its dependencies for the reasons.
|
| From the Open Motif 2.3.0 (upstream) release notes:
| "Open Motif 2.3 is an updated version of 2.2. Any applications built
| against a previous 2.x release of Open Motif will be binary compatible
| with this release."
|
| If you have binary-only applications requiring libXm.so.3, you may
| therefore create a symlink from libXm.so.3 to libXm.so.4. Please note,
| however, that there will be no Gentoo support for this.
Comment 20 Vittorio 2008-02-23 00:21:10 UTC
I agree to removing old buggy libs
the only problem is that many crap apps (namely Xilinx) still rely on openmotif < 2.3
the symlink method seems to work, so it's true that they're binary compatible

you'd only need to automate the linking procedure and openmotif-2.2 is easily trashable

(In reply to comment #19)
> I guess we should at least add some elog message to pkg_postinst. Would
> something like the following be appropriate:
> 
> | Gentoo is no longer providing slotted Open Motif libraries. See bug 204249
> | and its dependencies for the reasons.
> |
> | From the Open Motif 2.3.0 (upstream) release notes:
> | "Open Motif 2.3 is an updated version of 2.2. Any applications built
> | against a previous 2.x release of Open Motif will be binary compatible
> | with this release."
> |
> | If you have binary-only applications requiring libXm.so.3, you may
> | therefore create a symlink from libXm.so.3 to libXm.so.4. Please note,
> | however, that there will be no Gentoo support for this.
> 

Comment 21 Ulrich Müller gentoo-dev 2008-02-23 00:41:13 UTC
(In reply to comment #20)
> you'd only need to automate the linking procedure [...]

Easy: we just had to add a USE flag. But it is a gross hack, so I'm not sure if we should do this. Also, the symlink will confuse revdep-rebuild.
Comment 22 Jakub Moc (RETIRED) gentoo-dev 2008-02-23 00:45:09 UTC
(In reply to comment #21)
> (In reply to comment #20)
> > you'd only need to automate the linking procedure [...]
> 
> Easy: we just had to add a USE flag. But it is a gross hack, so I'm not sure if
> we should do this. Also, the symlink will confuse revdep-rebuild.

s/confuse/break... So - not a viable solution really; you are on your own with out-of-the-tree stuff.
Comment 23 Stefaan De Roeck (RETIRED) gentoo-dev 2008-02-23 09:14:11 UTC
(In reply to comment #21)
> (In reply to comment #20)
> > you'd only need to automate the linking procedure [...]
> 
> Easy: we just had to add a USE flag. But it is a gross hack, so I'm not sure if
> we should do this. Also, the symlink will confuse revdep-rebuild.
> 

It's either that or a separate package that only installs the libraries, I don't see any other alternatives (and no, I don't follow the out-of-tree logic at all, I don't feel like abandoning users simply because they need closed-source and/or third-party software).  
If a symlink confuses revdep-rebuild, we could simply copy the library to the old soname (which is maybe even dirtier :) )
Comment 24 Jakub Moc (RETIRED) gentoo-dev 2008-02-23 09:31:47 UTC
I heavily regret to have invested my time into *fixing* openmotif for users. Instead of thank you, I only get rants from bugs into my mailbox, people moaning about third-party crap that 'needs' slotting, people failing to understand that lesstif and openmotif cannot coexist on the same system and people suggesting nonsensical completely unneeded hacks to be introduced in the (finally sane) ebuild.

Do guys whatever you want in the ebuild - just because it's oooooh so horribly difficult for users who have already installed a third-party unsupported by Gentoo stuff *manually* to also *manually* create a compat symlink somewhere in /opt and start the broken cruft via a wrapper script. Exactly like net-misc/icaclient does. openmotif-2.3.0-r1 even provides a postinstall about this.

I don't care any more, closing this bug as there's nothing left to fix here anyway. Stabilization handled in Bug 204265, after that's finished there will be no way to install 2.2 slot anywhere but it can rot in the tree indefinitely 
so that we don't 'abandon' users.
Comment 25 Ulrich Müller gentoo-dev 2008-02-23 19:49:15 UTC
Created attachment 144451 [details]
Ebuild for legacy Open Motif 2.2 libraries

@Stefaan: For reference, I attach an updated version of the 2.2.3 ebuild, following our discussion on IRC.

In case we should add this at all, it should go to a different package, like "openmotif-legacy" or "openmotif-compat", so nothing in the Portage tree will depend on it.

(In reply to comment #24)
> Stabilization handled in Bug 204265, after that's finished there will be no
> way to install 2.2 slot anywhere but it can rot in the tree indefinitely so
> that we don't 'abandon' users.

This is no solution. We should remove both the 2.2 slot and motif-config as soon as 2.3 is stable. They are both no longer functional.
Comment 26 Jakub Moc (RETIRED) gentoo-dev 2008-02-23 19:56:00 UTC
I really don't grok what are you trying to do here???

<snip>
emake -j1 -C lib DESTDIR="${D}" install-exec || die "emake install failed"
# cleanup
rm -fR "${D}"/usr/$(get_libdir)/*.{so,la,a}
</snip>

You've installed and then just nuked the whole thing.
Comment 27 Ulrich Müller gentoo-dev 2008-02-23 20:01:43 UTC
(In reply to comment #26)
> emake -j1 -C lib DESTDIR="${D}" install-exec || die "emake install failed"
> # cleanup
> rm -fR "${D}"/usr/$(get_libdir)/*.{so,la,a}
> 
> You've installed and then just nuked the whole thing.

That wouldn't make much sense. ;-) Only the static libraries and the *.so symlinks are removed. What is left are the shared libraries and the *.so.3 symlinks. This is all what is needed.
Comment 28 Ulrich Müller gentoo-dev 2008-02-26 11:23:28 UTC
Created attachment 144666 [details]
Ebuild for legacy Open Motif 2.2 libraries

Updated ebuild to install also libUil. (Some third-party applications need it, see bug 53759.)

I think the way to go is to add this as x11-libs/openmotif-compat, and keep it there for some limited time. Regular systems will never install it (nothing depends on it), but we don't desert users who need it for legacy binaries. And we can finally get rid of x11-libs/motif-config then.

We already have several *-compat packages in the tree, so this will not be an exception.
Comment 29 Ulrich Müller gentoo-dev 2008-03-13 10:13:36 UTC
Created attachment 145984 [details]
Ebuild for legacy Open Motif 2.2 libraries

This contains an updated SRC_URI and a minor tweak in the sed expressions.
Comment 30 Stefaan De Roeck (RETIRED) gentoo-dev 2008-03-25 11:38:01 UTC
(In reply to comment #29)
> Created an attachment (id=145984) [edit]
> Ebuild for legacy Open Motif 2.2 libraries

I can confirm this ebuild works beautifully on my system.  (using Maple 11)
Comment 31 Ulrich Müller gentoo-dev 2008-03-25 15:25:12 UTC
(In reply to comment #30)
> I can confirm this ebuild works beautifully on my system.

Committed to tree as x11-libs/openmotif-compat-2.2.3.
Let's hope that everyone is happy now. ;-)
Comment 32 Ulrich Müller gentoo-dev 2008-03-25 15:26:46 UTC
> Committed to tree as x11-libs/openmotif-compat-2.2.3.

I pruned the keywords to "~amd64 ~x86". Others will be added on users' request.

Closing.