public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] ATTENTION!  Broken builds ahead
@ 2003-11-22  1:17 Spider
  2003-11-22  2:18 ` Jason Rhinelander
  0 siblings, 1 reply; 16+ messages in thread
From: Spider @ 2003-11-22  1:17 UTC (permalink / raw
  To: gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 1960 bytes --]

Okay,
   I spoke up a while ago about this, and came with correct and
suggested syntax for theese problems, but there seems to be a LOT of
cruft in the tree anyhow.


I did some grep for "gtk2"  IUSE statements, and went through them all. 
I'm sad to say that the majority of all ebuilds i found have severe
logic flaws.

Thats correct, Most of the builds -DONT- work either as they should nor
as intended.


Here is a list of broken ebuilds ( i tried to just get the latest
version )  , comments on -why- they are broken, and how it should be
done.

I dont have explicit knowledge about all theese builds, so some may be
special cases, but far from all are.


ATTN DEVS! 
   I want you all who are -responsible- for theese to go through and fix
this. ASAP.


   I could just as well have gone through all theese myself and checked
in the changes, but noone would learn what they were doing right by me
just fixing things for them.  Thats why I want the various maintainers
to have looks at it and fix. This way I hope I will Never have to face
this problem again.


If I find more builds with the same logic flaws in the future, I will
hard mask said builds and bug the maintainers in private, but this is a
wide sweep and I grabbed all of those that were on my list, checked and
signed up here.   

If you feel overwhelmed by the stuff you have, I'm sure there are bored
people around who want a go at cleaning things out, Just say so and it
will be fixed, we're a community after all.  


But, I feel like a grumpy old man now after wading through errors and
bugs (and bugzilla was too slow for me to even be usable, or you would
have had bugs a plenty there too. Hah, saved you were ;) so do take the
time to check the list, see what mistakes others have made, 
And Dont Repeat Them.


Regards, 
   Spider




-- 
begin  .signature
This is a .signature virus! Please copy me into your .signature!
See Microsoft KB Article Q265230 for more information.
end

[-- Attachment #1.2: broken.ebuilds.txt --]
[-- Type: application/octet-stream, Size: 8089 bytes --]

./app-emulation/fuse/fuse-0.6.1.1.ebuild
broken DEPEND

./dev-games/ogre/ogre-0.12.0.ebuild
gtk2 misuse, should be gtk


./app-text/dasher/dasher-3.0.2.ebuild
no DEPEND logic

./dev-lisp/bigloo-lib/bigloo-lib-0.17.ebuild
is it really gtk? gtk2?  ?? weird

logic is flawed anyhow. should nest.



./dev-perl/gtk2-perl/gtk2-perl-0.12.ebuild
what does the gtk2 USE flag do? (IUSE bork)

./dev-python/twisted/twisted-1.1.0.ebuild
IUSE doesn't match USE flags

is logic really correct?


./games-board/ggz-gtk-client/ggz-gtk-client-0.0.7.ebuild
./games-board/ggz-gtk-games/ggz-gtk-games-0.0.7.ebuild


logic flawed, try

myconf="--enable-gtk2"
use gtk2 || myconf="--enable-gtk" 

, that will default to gtk2, and reset it if USE="-gtk2" is set.
currently it overrides gtk2 setting. BAD.



./games-emulation/psemu-cdr/psemu-cdr-1.8.ebuild

|| (
                gtk2? ( =x11-libs/gtk+-2* )
                gtk? ( =x11-libs/gtk+-1* )
                =x11-libs/gtk+-2*
        )
Messy. 
since gtk isn't optional, don't use that flag.

gtk2? ( =x11-libs/gtk+-2* )
!gtk2? ( =x11-libs/gtk+-1* )

We can only have gtk2, or not have gtk2.  since we need a gtk interface, we won't listen to "-gtk -gtk2" (however, in this case it will build the gtk 1.2 interface )

 


./games-strategy/dopewars/dopewars-1.5.8.ebuild

flawed DEPEND logic :
gtk? ()
gtk2? () 

This should be :
gtk? ( 
	gtk2? ( =dev-libs/gtk+-2* )
	!gtk2? ( =dev-libs/gtk+-1.2* )
)


this logic:
if [ "`use gtk`" ] || [ "`use gtk2`" ]
then
	myconf="$myconf --enable-gui-server"
	use gtk2 || myconf="$myconf --disable-glib2"
else
	myconf="$myconf --disable-gui-client"
fi


is flawed, should be :
if [ "`use gtk`" ];
then
	myconf="$myconf --enable-gui-server"
	use gtk2 || myconf="$myconf --disable-glib2"
else
	myconf="$myconf --disable-gui-client"
fi


the case "-gtk gtk2" is broken and should not give a gtk interface. providing this is flawed and will cause breakage in the near future.

./games-strategy/freeciv/freeciv-

        gtk? ( =x11-libs/gtk+-1*
                        >=dev-libs/glib-1.2.5
                        >=media-libs/imlib-1.9.2
                        >=media-libs/libogg-1.0
                        >=media-libs/libvorbis-1.0-r2 )
        gtk2? ( >=x11-libs/gtk+-2.0.0
                        >=dev-libs/glib-2.0.0
                        >=dev-libs/atk-1.0.3
                        >=x11-libs/pango-1.0.5
                        >=media-libs/libogg-1.0
                        >=media-libs/libvorbis-1.0-r2 )"



This will in the case of USE="gtk gtk2" Force dependencies on -BOTH- gtk 1.2 and gtk 2.0, which is bad behaviour.




./gnome-extra/shermans-aquarium/shermans-aquarium-2.2.0.ebuild

IUSE="gtk gtk2" 

 you can't disable gtk, why is gtk listed as a USE flag?



./media-gfx/pornview/pornview-0.2.0_pre1.ebuild
hard dep on gtk 1.2 -AND- gtk 2 if gtk2 is enabled. 




./media-sound/aumix/aumix-2.8.ebuild
        gtk?  ( =x11-libs/gtk+-1.2* )
        gtk2? ( >=x11-libs/gtk+-2.0.0 )

Broken behaviour, change to
gtk? ( 
	gtk2? ( >=x11-libs/gtk+-2.0.0 )
	!gtk2? ( =x11-libs/gtk+-1.2* )
)

and the logic inside :
local myconf
if use gtk2; then
	myconf="${myconf} --without-gtk1"
elif use gtk; then
	myconf="${myconf} --without-gtk"
else
	myconf="${myconf} --without-gtk --without-gtk1";
fi


to
if use gtk ;
then
	use gtk2 && myconf="${myconf} --without-gtk1"
else
	myconf="${myconf} --without-gtk --without-gtk1";
fi



./media-sound/gamix/gamix-1.99_p14.ebuild
DEPEND section wrong, no ()

Should this really have gtk2 flag? reconsider badly. the first dep suggests it will only build against gtk2 because dev-libs/gtk+ will always make for the latest.





./media-tv/nvtv/nvtv-0.4.5.ebuild

always depends on both gtk 1.2 and 2.x

gtk+ logic inside seems broken.




./media-video/mplayer/mplayer-1.0_pre2.ebuild
looks good except for inside the DEPEND subsection:

        gtk? ( !gtk2? ( =x11-libs/gtk+-1.2*
                       =dev-libs/glib-1.2* )
               media-libs/libpng
               >=x11-base/xfree-4.2.1-r2 )
        gtk2? ( >=x11-libs/gtk+-2.0.6
                >=dev-libs/glib-2.0.6 )


the last gtk2?  should be moved inside the gtk? section :
( moved the libpng + xfree depends up just to get the logic clearer )

gtk? (
	media-libs/libpng
	>=x11-base/xfree-4.2.1-r2
	!gtk2? ( =x11-libs/gtk+-1.2*
        	=dev-libs/glib-1.2* )
	gtk2? ( >=x11-libs/gtk+-2.0.6
		>=dev-libs/glib-2.0.6 )
)


./media-video/nvclock/nvclock-0.7-r1.ebuild
gtk2 in IUSE. 





./net-analyzer/ethereal/ethereal-0.9.16.ebuild
        gtk2? ( >=dev-libs/glib-2.0.4 =x11-libs/gtk+-2* )
        !gtk2 ( gtk? ( =x11-libs/gtk+-1.2* ) )
Broken logic , won't detect "-gtk gtk2"  .invalid case, but should give the correct dependencies anyhow. 

gtk? (
	gtk2? ( >=dev-libs/glib-2.0.4 =x11-libs/gtk+-2* )
	!gtk2? ( =x11-libs/gtk+-1.2* ) 
)

The logic inside the build doesn't seem to detect USE="-gtk" if gtk+1.2 is disabled but installed.  (yes , this happens quite frequently. )




./net-analyzer/nessus-core/nessus-core-2.0.9.ebuild
        gtk? ( =x11-libs/gtk+-1.2* )
        gtk2? ( =x11-libs/gtk+-2* )

Will cause USE="gtk gtk2" to depend on both. 

if [ `use gtk` ]; then
	myconf="${myconf} --enable-gtk"
elif [ `use gtk2` ]; then
	myconf="${myconf} --enable-gtk"
else
	myconf="${myconf} --disable-gtk"
fi


erm. if USE="gtk gtk2" it will be --enable-gtk --enable-gtk,
if USE="-gtk" it will be --disable-gtk .. 

Why does it check for "gtk2" here? seems unnecessary. suggested change:


use gtk && myconf="${myconf} --enable-gtk" || myconf="${myconf} --disable-gtk"



./net-im/linphone/linphone-0.12.0.ebuild
	gtk? ( =x11-libs/gtk+-1.2* )
        gtk2? ( >=x11-libs/gtk+-2 )

Bad, will depend on both versions :/
        if use gtk && use doc
        then
                myconf="${myconf} --enable-gtk-doc"
        else
                myconf="${myconf} --disable-gtk-doc"
        fi

remove the "use gtk" here, gtk-doc is a perl based documentation project (originally started to document the gtk+ api, therefore the name)  and has nothing to do with "gtk" 

        if use gnome
        then
            use gtk2 && myconf="${myconf} --enable-platform-gnome-2"
        else
            use gnome || myconf="${myconf}--enable-gnome_ui=no"
        fi


What? 
	gnome gtk gtk2 ==  gnome2 
	gnome gtk -gtk2 == ???
	-gnome -gnome == no gnome ? (and a broken myconf="" there too. )



Why the gtk?  in DEPEND when its never used in the mainline?
Why isn't gtk in IUSE?


./x11-misc/hotkeys/hotkeys-0.5.7.1-r1.ebuild
Bad use of "gtk2" , should be "gtk" 




./x11-plugins/gkrellm-bgchanger/gkrellm-bgchanger-0.0.4.ebuild
DEPEND="gtk2? ( =app-admin/gkrellm-2* )
        gtk? ( =app-admin/gkrellm-1.2* )"



USE="gtk gtk2" will give -what - dependencies? both?  sheesh.

gtk? (
	gtk2? ( =app-admin/gkrellm-2* )
	!gtk2? ( =app-admin/gkrellm-1.2* )
)





./x11-plugins/i8krellm/i8krellm-2.5.ebuild
        x11-libs/gtk+
        gtk2? ( =x11-libs/gtk+-2*
                =app-admin/gkrellm-2* )


What will this depend on if I have USE="-gtk2" ?  Probably it will install gtk+2.0 anyhow. Theese deps should be fixed, see previous item as an example.




./x11-terms/mlterm/mlterm-2.8.0_p1-r1.ebuild


This one is wrong in several places, really "ouch" 
|| gtk? ... and then a gtk2 check? if they don't want gtk they don't want gtk. Either version.

if there isn't a choice then don't check for gtk! 





./x11-themes/redhat-artwork/redhat-artwork-0.88-r2.ebuild
        gtk? (  >=media-libs/gdk-pixbuf-0.2.5
                        =x11-libs/gtk+-1.2* )
        kde? (  >=x11-libs/qt-3.0.5
                >=kde-base/kdebase-3.0.2 )
        gtk2? ( >=x11-libs/gtk+-2* )

Here we go again, unescaped gtk/gtk2 sequence, in this case we want both, so it should be :
gtk? (
	>=media-libs/gdk-pixbuf-0.2.5
	=x11-libs/gtk+-1.2*
	gtk2? ( >=x11-libs/gtk+-2* )
)




./x11-wm/aewm/aewm-1.2.3.ebuild
Good escaping , but the syntax in DEPEND is deprecated. ( somone fix repoman! )
        gtk2? ( >=x11-libs/gtk+-2.0.0 ) : ( =x11-libs/gtk+-1.2* ) <-- this is deprecated.  still works, but won't in a while.






[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2003-11-23 16:43 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-11-22  1:17 [gentoo-dev] ATTENTION! Broken builds ahead Spider
2003-11-22  2:18 ` Jason Rhinelander
2003-11-22  2:40   ` Spider
2003-11-22 11:50     ` foser
2003-11-22 22:46       ` Mike Frysinger
2003-11-22 22:57         ` Aron Griffis
2003-11-22 23:06         ` Spider
2003-11-22 23:34           ` foser
2003-11-22 23:43             ` Aron Griffis
2003-11-23  0:05               ` foser
2003-11-22 23:59             ` Spider
2003-11-23 11:21             ` Paul de Vrieze
2003-11-23 11:40               ` Spider
2003-11-23 13:10                 ` foser
2003-11-23 16:43                   ` Paul de Vrieze
2003-11-22 23:31         ` foser

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox