Summary: | net-im/sim-9999 live svn ebuild for preview of upcoming 0.9.5 (now using cmake) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Bernd Steinhauser <gentoo> |
Component: | New packages | Assignee: | Peter Volkov (RETIRED) <pva> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | caster, radfoj |
Priority: | Lowest | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
live svn ebuild for net-im/sim
live ebuild using cmake Fixed sound installs Install ogg sounds Improved ebuild using cmake Patch to use ENABLE_ values instead of USE_ Updated live ebuild Diff from the last to the current ebuild Live ebuild diff to current ebuild |
Description
Bernd Steinhauser
2007-11-28 19:30:22 UTC
Created attachment 137266 [details]
live svn ebuild for net-im/sim
Ok, of course a warning about this, this is a live ebuild, that fetches sources directly from svn, so there could be compiling issues.
I've removed the fetch restrictions, but maybe they are still relevant, if that is the case I would readd it or can't that work with svn ebuilds?
I've also removed "emake -j1" in favour of just "emake", because I had never a problem compiling it on smp systems with -j4.
I've tried it and it kinda works, but it didn't fix my main problem... since about month ago, the jabber plugin won't connect to google talk :( I've tried searching for upstream bugzilla, didn't find, and the russian mailing lists archives don't work either, so the last option is try to join the mailing list without reading the archives first... Nevermind, I found the bug, sorry for spam :) http://sim-im.org/wiki/Roadmap This is where you'll find most of the information. ;) (In reply to comment #0) > Upstream works on new icons and sounds, they are complete, as far as I know > (but I don't know of all critical files have already been removed). > In addition in preview to upcoming 0.9.5 a lot of bugs have been fixed (lost > messages, problems deleting users etc.). I looked at the svn copy and what sim installs and it still installs the icons and sounds which have an unclear license. /usr/share/apps/sim/icons/icq5.1.jisp /usr/share/apps/sim/icons/icq5.jisp /usr/share/apps/sim/icons/icqlite.jisp /usr/share/apps/sim/sounds/alert.wav [...] /usr/share/apps/sim/sounds/web.wav So this would still need a fetch restriction. I'll look into that. Hm, fetch restriction doesn't seem to be possible. Thank you Bernd for ebuild. I've put masked ebuild in the tree. I do not think fetch restriction is relevant here as we (gentoo) do not redistribute svn sources and each user have to download this sources on it's own. Actually may be we should change to mirror restriction in sim at some point of time... But, of course, better to fix the problem in the first place. And I think it's good idea at some point to move to cmake build as autotools are not supported by sim development team for some time now. I will not do this until 0.9.5 release, so if somebody wants something to do this is a good idea to implement :) (In reply to comment #7) > Thank you Bernd for ebuild. I've put masked ebuild in the tree. I do not think > fetch restriction is relevant here as we (gentoo) do not redistribute svn > sources and each user have to download this sources on it's own. Actually may > be we should change to mirror restriction in sim at some point of time... But, > of course, better to fix the problem in the first place. Hm, ok maybe that is the reason, why it is not possible to restrict svn checkout. ;) > And I think it's good idea at some point to move to cmake build as autotools > are not supported by sim development team for some time now. I will not do this > until 0.9.5 release, so if somebody wants something to do this is a good idea > to implement :) I'll try, but as I understood it, they want to move to cmake, but didn't do so yet. If I have a live sim ebuild with cmake instead of autotools working I'll attach it to this bug and reopen the bug. Created attachment 138493 [details]
live ebuild using cmake
Ok, I took a look at it and it seems to work, but there are some things:
- I don't know if -DUSE_OPENSSL=off actually does deactivate it. USE_OPENSSL is listed in CMakeLists.txt, but there is no Option triggered in CMakeCache.txt as far as I can tell.
- Arts doesn't seem to be deactivatable currently
- Some files don't get installed (that's what I meant, they haven't switched completely yet, I guess)
- I don't know how to activate debug with cmake (can't find the option similar to --enable-debug)
- I don't know if the flags stuff is still needed. It compiled here fine without them, I left them in, commented out, for now.
Unfortunately cmake-utils.eclass doesn't support -DUSE_FOO, only -DENABLE_FOO and -DWITH_FOO.
Use this ebuild only to test it, this is not for the tree, because it doesn't install everything at the moment.
Comment on attachment 137266 [details]
live svn ebuild for net-im/sim
In the tree.
Created attachment 138982 [details]
Fixed sound installs
I've added the ogg sounds to the install routine.
See the patch that follows.
Created attachment 138984 [details, diff]
Install ogg sounds
This installs the ogg sounds, too.
I've also send this patch upstream, maybe they'll include it.
Created attachment 139040 [details]
Improved ebuild using cmake
I've improved the ebuild.
First, the patch isn't needed anymore, it has been included.
I've made a patch to change USE_ to ENABLE_ and sent it upstream, I'll attach it here as well, just uncomment the line in the ebuild, if you want to use it.
With this it gets a lot easier to enable several things. Therefore I've added a few more useflags. I tested it already and it works quite well.
I've removed the filter-flag lines, because I don't see the reason and I couldn't find a bug about that. I also emerged it with those flags and it worked.
Please complain if you think, that is wrong. ;-)
Since there are only two issues left I'll reopen this bug, because I think, that the cmake ebuild (if hopefully they'll include that patch) is now as good as the other ebuild.
The two issues are:
- .la files don't get installed, they don't even get created. I don't exactly know if they are needed
- I don't know if there is a way to disable arts when using cmake.
Created attachment 139041 [details, diff]
Patch to use ENABLE_ values instead of USE_
Reopen, please test the ebuild that uses cmake. Comment on attachment 139041 [details, diff]
Patch to use ENABLE_ values instead of USE_
Upstream included it in the source.
Created attachment 141358 [details]
Updated live ebuild
Ok, this is an updated live ebuild. Because the changes are bigger, I'll provide a patch, that shows the changes, that have been made and explain them.
Created attachment 141360 [details, diff]
Diff from the last to the current ebuild
Changes:
- Use EAPI="1" and Slot dependencies to prevent, that KDE4 packages are pulled in
- Add dependency to freetype, fontconfig, libsdl, libpng and libXScrnSaver because sim does link against them (and therefore they are needed at build time)
- Correct usage of DEPEND and RDEPEND
- Remove dependency scrnsaverproto (sim depends on libXScrnSaver and only indirectly on scrnsaverproto)
- Rework inherit list, move set-kdedir to src_compile (where it belongs) and get rid of src_unpack
- Remove the debug passage, cmake-utils.eclass does that already
- Maybe something else, that I forgot to mention ;-)
I tested it and it works for me, but feedback if it works is strongly recommend, especially regarding the fact, that the USE_ -> ENABLE_ patch has been integrated upstream, so please watch out for problems.
If everything works then I guess this ebuild is close to what can go into portage.
Bernd, AFAIS dependencies *are* correct. > - Add dependency to freetype, fontconfig, libsdl, libpng and libXScrnSaver > because sim does link against them (and therefore they are needed at build > time) Well. sim links against that, but having them all in DEPEND is wrong. Sim code itself does not have any functions from freetype, libpng and libsd. sim depends on function from qt which in case uses freetype to render text - that's why you see them in ldd output. But this libraries are not necessary/redudant because qt could change text rendering engine and then sim will not be linked with freetype but you'll force users to install it. So having sim linked with them does not mean sim uses them. I do not know why you have sim linked with sdl btw. May be thats because of screensaver. fontconfig could be added to (R)DEPEND but it's not so necessary as qt depends on freetype-2 which depends on fontconfig. But if you wish I'll do that. libXScrnSaver is already there. > - Correct usage of DEPEND and RDEPEND What do you mean by that? > - Remove dependency scrnsaverproto (sim depends on libXScrnSaver and only > indirectly on scrnsaverproto) libXScrnSaver provides library which is required at run time, while scrnsaverproto has header file required at build time. So that dependency is correct. > I tested it and it works for me, but feedback if it works is strongly > recommend, especially regarding the fact, that the USE_ -> ENABLE_ patch has > been integrated upstream, so please watch out for problems. Well, I'm not cmake guru too. So I'd leave this kind of things for upstream. Build works here too. I'm going to test this a little bit more, and commit. The question I have not, what USE flags you think should be enabled by default. Currently I've enabled jabber, oscar and yahoo. What else? The last thing, part with arts could be removed completely. I was necessary because of the way autotools were used: configure script failed in case you have enabled arts in sim but disabled in kde. cmake seems to work fine with arts part. Thank you for your work on sim! (In reply to comment #19) > Well. sim links against that, but having them all in DEPEND is wrong. Sim code > itself does not have any functions from freetype, libpng and libsd. sim depends > on function from qt which in case uses freetype to render text - that's why you > see them in ldd output. But this libraries are not necessary/redudant because > qt could change text rendering engine and then sim will not be linked with > freetype but you'll force users to install it. So having sim linked with them > does not mean sim uses them. I do not know why you have sim linked with sdl > btw. May be thats because of screensaver. > > fontconfig could be added to (R)DEPEND but it's not so necessary as qt depends > on freetype-2 which depends on fontconfig. But if you wish I'll do that. > Well, I wanted to do some testing and research on the deps anyway, because about some of them I was not quite sure. So remove them, if you want to. But though your point might be true for fontconfig/freetype; png and mng support should be somewhere in the deps for sim, because the icons are in that format. Of course you could tell me now, that if qt would remove support for that format it would be broken anyway, so maybe it might be more a question of how to handle things. ;-) But of course you are right, that it only depends through qt on them. Where sdl comes from, no idea, honestly, I was really surprised to see, that it links against that one at all (used scanelf, not only ldd btw). > libXScrnSaver is already there. Oops, my fault, sorry, so then this point makes no sense. ;) > > > - Correct usage of DEPEND and RDEPEND > > What do you mean by that? I meant, that app-arch/zip and kdebase/kdebase-data are only needed at runtime, but the ebuild had it in DEPEND, which means build time, afaik. > > - Remove dependency scrnsaverproto (sim depends on libXScrnSaver and only > > indirectly on scrnsaverproto) > > libXScrnSaver provides library which is required at run time, while > scrnsaverproto has header file required at build time. So that dependency is > correct. That was a result of my mistake above, sorry. ;) > > > I tested it and it works for me, but feedback if it works is strongly > > recommend, especially regarding the fact, that the USE_ -> ENABLE_ patch has > > been integrated upstream, so please watch out for problems. > > Well, I'm not cmake guru too. So I'd leave this kind of things for upstream. > Build works here too. I'm going to test this a little bit more, and commit. Well, they are kind of new to cmake as well. Actually I think, that everyone is "kind of new" to cmake. ;-) So, there are problems, like for example lacking "packaging" support. (cpack does that, but for whatever reason it doesn't work here.) Well, not Gentoo's problems. ;) > > The question I have not, what USE flags you think should be enabled by default. > Currently I've enabled jabber, oscar and yahoo. What else? Well first, there could be a lot more useflags for sim. Basically everything, that is a plugin in sim, can be deactivated. When I made the ebuild I added some useflags, because I wanted to test, if it works, but I tried not to introduce new useflags, that are not in use.desc. (Or actually I looked which useflags are already there and if they match what they mean in sim.) So there is a lot of stuff, that can be deactivated, but I don't know if anybody would want that. Of course deactivating Things like "About" or "Icons" doesn't really make sence, but there could be a few more. The list of variables, that is not yet included (left the advanced onces out): ENABLE_PLUGIN_ABOUT:BOOL=ON ENABLE_PLUGIN_ACTION:BOOL=ON ENABLE_PLUGIN_AUTOAWAY:BOOL=ON ENABLE_PLUGIN_BACKGROUND:BOOL=ON ENABLE_PLUGIN_DOCK:BOOL=ON ENABLE_PLUGIN_FILTER:BOOL=ON ENABLE_PLUGIN_FLOATY:BOOL=ON ENABLE_PLUGIN_FORWARD:BOOL=ON ENABLE_PLUGIN_ICONS:BOOL=ON ENABLE_PLUGIN_LIVEJOURNAL:BOOL=ON ENABLE_PLUGIN_NAVIGATE:BOOL=ON ENABLE_PLUGIN_NETMONITOR:BOOL=ON ENABLE_PLUGIN_ONTOP:BOOL=ON ENABLE_PLUGIN_OSD:BOOL=ON ENABLE_PLUGIN_PROXY:BOOL=ON ENABLE_PLUGIN_REMOTE:BOOL=ON ENABLE_PLUGIN_REPLACE:BOOL=ON ENABLE_PLUGIN_SHORTCUTS:BOOL=ON ENABLE_PLUGIN_SOUND:BOOL=ON ENABLE_PLUGIN_SPLASH:BOOL=ON ENABLE_PLUGIN_STYLES:BOOL=ON ENABLE_PLUGIN_TRANSPARENT:BOOL=ON ENABLE_PLUGIN_UPDATE:BOOL=ON ENABLE_PLUGIN_WINDOCK:BOOL=ON ENABLE_PLUGIN_ZODIAK:BOOL=ON Basically a use flag could be added for every single one of them. The variables, that would make sence could be filter, netmonitor, osd, remote, replace, transparent. I didn't really think about what useflags should be deactivated by default, but I would maybe do this: IUSE="debug gpg +jabber kde +msn +oscar sms spell +ssl weather +yahoo" > The last thing, part with arts could be removed completely. I was necessary > because of the way autotools were used: configure script failed in case you > have enabled arts in sim but disabled in kde. cmake seems to work fine with > arts part. Well I don't know if there might be a way to configure it in the future. But if there will be, it could easily be readded. Thanks for the quick answer, I already figured a few things out since I provided this ebuild, I'll attach a new one, which will contain a few more use flags, if you think, that they are not needed, than you could of course remove them. Ooops, now that was a _BIG_ fault of mine. I used qlist to generate a list of the files, that should be scanned by scanelf, but there sneaked a file in, that didn't belong to sim. So I guess, that will clear a lot of things up. ;) I checked this again, because the libsdl dep seemed to be really strange (since even qt doesn't depend on that). And you wouldn't believe it, that package directly depended on all of those questionable dependencies. *lol* Created attachment 141499 [details]
Live ebuild
Ok, updated the ebuild again.
Sorry about that dependency mess.
Created attachment 141501 [details, diff]
diff to current ebuild
- Remove the media-libs dependencies again
- Rework pkg_setup (I think it is better understandable what it does, this way)
- Die, when no protocols are activated
- Add some more use flags and some defaults
- Disable some plugins we have no use for
(In reply to comment #20) > I meant, that app-arch/zip and kdebase/kdebase-data are only needed at runtime, > but the ebuild had it in DEPEND, which means build time, afaik. When project used autotools zip was used at build time to create ziped icon archives. See plugins/weather/jisp/Makefile.am. Unpack at runtime is handeled by sim itself (see sim/qzip/unzip.c), so zip program is not required at runtime. kdebase-data seem not required at build time (the only place I see it is .desktop file) so could be moved to RDEPEND. > Well first, there could be a lot more useflags for sim. Basically everything, > that is a plugin in sim, can be deactivated. Rithgt, but I do not think this is necessary. Plugins does not require additional dependencies and with cmake could be built and disabled at buildtime without USE flags. If somebody wants to disable/enable plugins he should use /etc/portage/env and define inside /etc/portage/env/net-im/sim mycmakeargs to preffered -D... But may be it's better to rename mycmakeargs to SIMCMAKEOPTS or SIMCMAKEARGS and comment this part inside ebuild. I'll do that. So no I do not think useflags are necessary for plugins as it's not very important and could be done in any way :) > I didn't really think about what useflags should be deactivated by default, but > I would maybe do this: IUSE="debug gpg +jabber kde +msn +oscar sms spell +ssl > weather +yahoo" Does msm works in sim? Also ssl normally enabled at profile level, so I'd like not to enable this in ebuild.(In reply to comment #23) > - Die, when no protocols are activated > - Disable some plugins we have no use for WINDOCK i think is not enabled in unix, but disable update and check are really good ideas. Thank you for your work. (In reply to comment #24) > When project used autotools zip was ... Well, cmake/Jisp.cmake seems to define same things for cmake build process. But I'm not sure that this is used during build, because only jisp directories I found contains rules for jisp which are already distributed inside plugins/_core/emoticons_prebuilt/ . Bernd, I've commited a bit modified ebuild with less USE flags. If you want something to modify ebuilds/patches are always welcome. :) Thank you for your work on this stuff! Currently I've decided to have by default enabled only oscar and jabber support. It's enough for general use. Other protocols could be enabled separately... Also: # It's possible to disable/enable pluging defining SIMCMAKEOPTS. E.g. put # SIMCMAKEOPTS="-DENABLE_PLUGIN_TRANSPARENT:BOOL=Off" # inside /etc/portage/env/net-im/sim to disable transparent plugin. So currently this bug again FIXED :) (In reply to comment #24) > Does msm works in sim? Also ssl normally enabled at profile level, so I'd like > not to enable this in ebuild.(In reply to comment #23) Since I only use icq, I don't know. I enabled ssl, because I read, that icq might not work without ssl, but I didn't check that. But of course, if it is enabled at profile level it is not needed. I just thought it doesn't hurt. > WINDOCK i think is not enabled in unix, but disable update and check are really > good ideas. Thank you for your work. Again, I disabled windock, because it doesn't hurt. ;) It is of course not needed at all. (In reply to comment #26) > Bernd, I've commited a bit modified ebuild with less USE flags. If you want > something to modify ebuilds/patches are always welcome. :) Thank you for your > work on this stuff! Your welcome. ;) |