Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 163908 - gnome-extra/gnome-games fails to compile because of guile-1.8.1-r1
Summary: gnome-extra/gnome-games fails to compile because of guile-1.8.1-r1
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
: 166165 166174 168914 (view as bug list)
Depends on:
Blocks: guile-1.8
  Show dependency tree
 
Reported: 2007-01-26 14:38 UTC by Juergen Rose
Modified: 2007-03-21 09:18 UTC (History)
12 users (show)

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


Attachments
emerge --info (emerge_info_thinkpad.txt,4.54 KB, text/plain)
2007-01-26 14:39 UTC, Juergen Rose
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Juergen Rose 2007-01-26 14:38:59 UTC
emerging gnome-games fails with:

i686-pc-linux-gnu-gcc -O2 -march=pentium-m -fomit-frame-pointer -o sol sol.o slot.o dialog.o cscmi.o events.o press_data.o draw.o menu.o card.o statistics.o -pthread -Wl,-z -Wl,now -Wl,--export-dynamic  ../libgames-support/.libs/libgames-support.a /usr/lib/libgnomeui-2.so -L/usr/lib /usr/lib/libjpeg.so /usr/lib/libbonoboui-2.so /usr/lib/libgnome-keyring.so /usr/lib/libgnomecanvas-2.so /usr/lib/libgnome-2.so /usr/lib/libesd.so /usr/lib/libaudiofile.so /usr/lib/libasound.so /usr/lib/libart_lgpl_2.so /usr/lib/libbonobo-2.so /usr/lib/libgnutls.so /usr/lib/libtasn1.so /usr/lib/libgcrypt.so /usr/lib/libgpg-error.so /usr/lib/libbonobo-activation.so /usr/lib/libORBitCosNaming-2.so /usr/lib/librsvg-2.so /usr/lib/libgnomevfs-2.so /usr/lib/libdbus-glib-1.so /usr/lib/libdbus-1.so -lnsl -lssl -lcrypto -lresolv -lutil /usr/lib/libgconf-2.so /usr/lib/libpopt.so /usr/lib/libORBit-2.so /usr/lib/libgthread-2.0.so -lpthread /usr/lib/libgsf-1.so -lbz2 /usr/lib/libcroco-0.6.so /usr/lib/libglade-2.0.so /usr/lib/libSM.so /usr/lib/libICE.so /usr/lib/libgtk-x11-2.0.so /usr/lib/libgdk-x11-2.0.so /usr/lib/libatk-1.0.so /usr/lib/libgdk_pixbuf-2.0.so /usr/lib/libpangocairo-1.0.so /usr/lib/libpangoft2-1.0.so /usr/lib/libexpat.so /usr/lib/libpango-1.0.so -lrt /usr/lib/libcairo.so /usr/lib/libfreetype.so /usr/lib/libfontconfig.so /usr/lib/libxml2.so /usr/lib/libglitz.so /usr/lib/libpng12.so -lz /usr/lib/libXrender.so /usr/lib/libX11.so /usr/lib/libXau.so /usr/lib/libXdmcp.so /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so /usr/lib/libglib-2.0.so /usr/lib/libguile.so /usr/lib/libgmp.so -lcrypt -lm /usr/lib/libltdl.so -ldl
dialog.o: In function `show_hint_dialog':
dialog.c:(.text+0x500): undefined reference to `SCM_NFALSEP'
dialog.c:(.text+0x51d): undefined reference to `scm_num2int'
...
cscmi.c:(.text+0x6c): undefined reference to `scm_long2num'
cscmi.o: In function `c2scm_deck':
cscmi.c:(.text+0xaf): undefined reference to `SCM_BOOL'
...

Reproducible: Always
Comment 1 Juergen Rose 2007-01-26 14:39:37 UTC
Created attachment 108199 [details]
emerge --info
Comment 2 Mart Raudsepp gentoo-dev 2007-01-26 17:20:27 UTC
You apparently need guile-1.8 with deprecated and discouraged USE flags for gnome-games to work with guile USE flag.
Need to discuss the introduction of these USE flags further with the dev-scheme/guile maintainer.
Comment 3 Willard Dawson 2007-02-06 20:18:14 UTC
Can someone give an example of how to specify Guile USE flags in /etc/portage/package.use to enable gnome-games to compile successfully?
Comment 4 Willard Dawson 2007-02-06 20:27:30 UTC
Please disregard my last reply to this bug.  I did of course figure it out immediately after committing it... :-(
Comment 5 Mart Raudsepp gentoo-dev 2007-02-10 10:35:56 UTC
*** Bug 166165 has been marked as a duplicate of this bug. ***
Comment 6 Mart Raudsepp gentoo-dev 2007-02-10 10:42:08 UTC
*** Bug 166174 has been marked as a duplicate of this bug. ***
Comment 7 Mart Raudsepp gentoo-dev 2007-02-10 10:45:51 UTC
app-office/gnotime also fails because of this.

Scheme team/hkBst, please reconsider having the discouraged and deprecated USE flags or share your thoughts. Many packages need them and built_with_use on two different USE flags on multiple packages and them being for enabling stuff that is extensively used with programs designed for guile-1.{5.6?} gives pain and a very bad migration path over all package visibility states (unstable, stable) from the newer guile.
Comment 8 Marijn Schouten (RETIRED) gentoo-dev 2007-02-10 10:51:02 UTC
discouraged is already implied by deprecated (because of guile compilation failure otherwise), so you only need to check for deprecated use flag to get compatibility stuff.
Comment 9 Rémi Cardona (RETIRED) gentoo-dev 2007-03-01 18:30:31 UTC
*** Bug 168914 has been marked as a duplicate of this bug. ***
Comment 10 Daniel Gryniewicz (RETIRED) gentoo-dev 2007-03-01 20:34:56 UTC
Question:  How are we supposed to ensure stable packages work with ~guile?  After all, stable guile doesn't have discourgaged or deprecated USE flags, so we can't test for them; I guess we're going to have to hard dep on 1.6.x, unless those flags can be removed and the compat code built in automatically.
Comment 11 Marijn Schouten (RETIRED) gentoo-dev 2007-03-02 10:35:47 UTC
yes, if packages won't work with guile-1.8 then you will have to harddep on 1.6. For testing use flags on guile-1.8 only you can use the following code:

        if has_version =guile-1.8*; then
                local flags="deprecated regex"
                built_with_use dev-scheme/guile ${flags} || die "guile must be built with \"${flags}\" use flags"
        fi

possibly augmented with an eerror to mirror the die.
Comment 12 Mart Raudsepp gentoo-dev 2007-03-04 13:51:25 UTC
(In reply to comment #11)
> yes, if packages won't work with guile-1.8 then you will have to harddep on 1.6.

guile 1.6 and 1.8 are in the same SLOT - we can't harddep on 1.6 without causing major headaches to users with upgrade-downgrade cycles.

I assume you have reconsidered having discouraged and deprecated USE flags for guile, and are going to keep them?
The problem with them in my eyes is that it gives no real benefits and it gives problems like we are having here.
A user shouldn't care about having or not having discouraged API included in a package or not. These USE flags are not something that add functionality - they are something that make you recompile guile after trying to install a popular package that simply has to still support guile-1.6 too, learn about local USE flags setting, and waste time from all that.

The only benefit I have heard is that it helps developers not use discouraged or deprecated guile API when they are developing something.
This is not the way in which I think this should be achieved sanely. Other libraries achieve this nicely by allowing the developer to define a preprocessor macro that says to not include function prototypes and forward declarations of deprecated symbols and it works really good - and doesn't involve breaking the ABI on a same SLOT upgrade with the default set of USE flags.
Having USE flags for controlling deprecated stuff in a library kind of thing seems to be a precedent in this case.

So, are these USE flags going to be kept, instead of just enabling them always without new USE flags?
Comment 13 Marijn Schouten (RETIRED) gentoo-dev 2007-03-04 14:39:59 UTC
There doesn't seem to be anything i can do about the slotting and I can't help that some packages still don't work with guile-1.8, after 1.8.0 came out on 12 feb 2006, even when deprecated features are enabled.

Calling guile a library is not very enlightening. Guile is a programming language. If you want all the compatibility stuff than all you need is the deprecated use flag, but I think it is good that you can also disable deprecated stuff, which is why I think it is good that the flag exists. Also enabling deprecated features in guile-1.6* caused some problems. From 1.6.7 ebuild:

        # Please keep --enable-deprecation=no in future bumps.
        # Danny van Dyk <kugelfang@gentoo.org 2004/09/19

from Changelog:

  19 Sep 2004; Danny van Dyk <kugelfang@gentoo.org> +guile-1.6.4-r2.ebuild:
  Bumped to version 1.6.4-r2. This version is only necessary for gnucash on
  amd64. It disables deprecations that leave undefined references in shared
  libraries.

I'm considering removing discouraged use flag since it is not independent of the deprecated flag, but it also isn't causing any problems, so there doesn't seem to be any great need either.
Comment 14 Jakub Moc (RETIRED) gentoo-dev 2007-03-16 10:30:55 UTC
Moving app-office/gnotime to Bug 171141 which has a patch.
Comment 15 Daniel Gryniewicz (RETIRED) gentoo-dev 2007-03-19 20:52:27 UTC
Okay, gnome-games is fixed.  I really wish this wasn't necessary.

Does this really mean you can't have gnome-games and gnucash on the same system?
Comment 16 Marijn Schouten (RETIRED) gentoo-dev 2007-03-20 08:58:28 UTC
gnucash-2.0.5 doesn't really need guile-1.8. In fact I can only compile it with guile-1.6.8.
Comment 17 Mart Raudsepp gentoo-dev 2007-03-20 14:13:28 UTC
(In reply to comment #16)
> gnucash-2.0.5 doesn't really need guile-1.8.

> In fact I can only compile it with guile-1.6.8.

This doesn't matter at all until guile-1.6 and guile-1.8 share the same SLOT, which they do at the moment..

> It disables deprecations that leave undefined references in shared libraries.

It leaves the impression that if user wants to have a well working gnucash, he needs to disable deprecated USE flag - on the other hand, if he wants to have gnome-games (which is, well, part of big gnome meta), he needs to have the deprecated USE flag enabled.
How can one have both?
Comment 18 Marijn Schouten (RETIRED) gentoo-dev 2007-03-20 18:26:00 UTC
(In reply to comment #17)
> This doesn't matter at all until guile-1.6 and guile-1.8 share the same SLOT,
> which they do at the moment..

did you mean "unless" instead of "until" here?

> > It disables deprecations that leave undefined references in shared libraries.

where is this coming from? 

> It leaves the impression that if user wants to have a well working gnucash, he
> needs to disable deprecated USE flag - on the other hand, if he wants to have
> gnome-games (which is, well, part of big gnome meta), he needs to have the
> deprecated USE flag enabled.
> How can one have both?

I'm not following you at all. Gnucash can use either guile-1.6.8 or guile-1.8.1 with deprecated use flag. The current ebuild for gnucash-2.0.5 depends on guile-1.8.1, but this is not strictly necessary and in fact I can't compile it that way.
Comment 19 Mart Raudsepp gentoo-dev 2007-03-20 19:05:24 UTC
(In reply to comment #18)
> (In reply to comment #17)
> > This doesn't matter at all until guile-1.6 and guile-1.8 share the same SLOT,
> > which they do at the moment..
> 
> did you mean "unless" instead of "until" here?

Yes

> > > It disables deprecations that leave undefined references in shared libraries.
> 
> where is this coming from? 

From comment #13 where you pasted a bit of the ChangeLog

> > It leaves the impression that if user wants to have a well working gnucash, he
> > needs to disable deprecated USE flag - on the other hand, if he wants to have
> > gnome-games (which is, well, part of big gnome meta), he needs to have the
> > deprecated USE flag enabled.
> > How can one have both?
> 
> I'm not following you at all. Gnucash can use either guile-1.6.8 or guile-1.8.1
> with deprecated use flag.

Ok, good. comment #16 was just causing confusion then. I assume the problem (comment #13) for gnucash with deprecated stuff in guile is not an issue in 1.8

> The current ebuild for gnucash-2.0.5 depends on
> guile-1.8.1, but this is not strictly necessary and in fact I can't compile it
> that way.

Above you said gnucash can use either.. Does it need deprecated USE flag then too, or what makes gnucash be able to use guile-1.8 for others?
Comment 20 Marijn Schouten (RETIRED) gentoo-dev 2007-03-21 09:18:51 UTC
(In reply to comment #19)
> > The current ebuild for gnucash-2.0.5 depends on
> > guile-1.8.1, but this is not strictly necessary and in fact I can't compile it
> > that way.
> 
> Above you said gnucash can use either.. Does it need deprecated USE flag then
> too, or what makes gnucash be able to use guile-1.8 for others?

I was having some problems myself compiling gnucash with guile-1.8.1, but I know now that they were caused by a broken g-wrap install. But whilst I didn't know that I tried to make it work with 1.6.8 and it worked. Opfer was having the same problem and confirms it works with 1.6.8. So I think you should ask seemant to make gnucash be able to use either 1.6.8 or 1.8.1.