Created attachment 290791 [details] liquidwar6-0.0.11_beta.ebuild A unique multiplayer games
Created attachment 290793 [details] liquidwar6-libpng-1.5.patch Patch to build liquidwar using =libpng-1.5.* See: https://savannah.gnu.org/bugs/index.php?34614
Created attachment 306003 [details] liquidwar6-0.0.13_beta.ebuild Version bump for liquidwar6 no more patching required for libpng-1.5 flag: csound (in portage tree)
Works fine here, thanks. (:
Liquid War6 seems to have a hard dependency on <=libpng-1.5 which is already patched from <=libpng-1.4. Now that libpng-1.6 is in tree this needs another fix. At least this should be explicitly specified in the ebuild.
I'll take a look. But it'll be hard to do it fast. Sorry for the inconvenience.
Created attachment 359070 [details] liquidwar6-0.0.13_beta.ebuild
Created attachment 359072 [details] liquidwar6-9999.ebuild VCS ebuild
Created attachment 359076 [details] liquidwar6-0.0.13_beta.ebuild In reply to #comment4 At least should be specified in the ebuild Sandbox violation at install time are avoided using emake -j1, using make install rather than one by one instructions in the ebuild.
Created attachment 359650 [details] liquidwar6-9999.ebuild
* games.eclass always last in inherit line * order deps alphabetically and the useflag dependencies last ordered by useflag names * put REQUIRED_USE directly after IUSE * for the non-live ebuild do a newline before the useflag conditional link * missing die on "cd" and "sed" in many places, in some places you forgot the "die" and just appended a string * myconf syntax is horrible, just do: egamesconf $(use_enable nls) ... the only one that actually needs the myconf syntax is myconf="${myconf} --enable-silent" ...the rest can be realized like this: $(usex opengl "$(use_enable gtk)" "--disable-gtk --enable-headless") * we don't really need to cd back to ${S} or ${S}/${PN} when we are at the end of the phase * egamesconf and emake already have error handling, no need to "die" there * instead of your find construct do this: "find . -name README -delete" (do not forget the dot) * ${GAMES_DATADIR_BASE} usage looks fishy.. just use "/usr/share" * you are missing some quotes, e.g. on "${D}${GAMES_PREFIX}" (both variables can contain whitespace, since they are user controlled) * use allinone && rm -r ${D}${GAMES_PREFIX}/include || die <- that is wrong in multiple ways. 1) it will die when allinone useflag is disabled, 2) it will break for users who manually want to run the src_install phase twice... so better do "rm -f" and omit the "|| die" * libpng is missing a slot... only slot 0 provides headers! The rest are only for binary compatibility. * use virtual/opengl instead of media-libs/mesa unless you need to depend on some fancy useflags, so do: opengl? ( virtual/opengl ) * I think the intl and iconv useflags are misinterpreted here... afais they are only to specify search dirs * nls should depend (build time) on gettext * autotools already adds libtool dep * do not depend directly on sys-devel/gcc[openmp] but use something like this: pkg_setup() { if use openmp; then if [[ $(tc-getCC) == *gcc ]] && ! tc-has-openmp ; then ewarn "OpenMP is not available in your current selected gcc" die "need openmp capable gcc" fi fi games_pkg_setup } last but not least: we really need a solution for libpng-1.6... before that we can't really import it
I forgot: ofc the openmp checks need toolchain-funcs.eclass
Created attachment 359656 [details] liquidwar6-9999.ebuild Thank you for comments hasufell Compile and links fine using libpng1.6 (only minor changes to configure.ac)
* no stable keywords * try to avoid REQUIRED_USE usage when possible, it was originally meant to avoid broken setups in conjunction with libraries, not to mark logically connections between useflags in general (those connections can be put in metadata.xml if needed) * you missed some spots of "cd foo || die" * those seds look ugly... ok, this is a live ebuild so you have a point, but for non-live ebuilds this should definitely be a patch * games.eclass is still not last in inherit line (yes, you need to so git-2_src_unpack manually then) * afais the linguas_* variables do nothing? * "emake foo install" in src_install still have a "|| die", but don't need it * emake has a "-C <dir>" option, so some of those "cd <dir> ; emake" can be converted to "emake -C <dir>" * usually virtual/libintl should be behind "nls" useflag too here * did you test that sdl-image does not need ANY useflag? It might need jpeg, png or something depending on the image format of the game, you have to manually check that
almost missed that: * no stable keywords in general in new ebuilds * for live ebuilds KEYWORDS variable must be _empty_
Created attachment 359686 [details, diff] liquidwar6-0.0.13_beta-autotools.patch libpng1.6 autotools + ldconfig removal patch
Created attachment 359688 [details] liquidwar6-0.0.13_beta.ebuild Still need to check sdl-image flags
*liquidwar6-0.0.13_beta (30 Sep 2013) 30 Sep 2013; Julian Ospald <hasufell@gentoo.org> +liquidwar6-0.0.13_beta.ebuild, +files/liquidwar6-0.0.13_beta-ldconfig.patch, +files/liquidwar6-0.0.13_beta-libpng-1.6.patch, +files/liquidwar6-0.0.13_beta-paths.patch, +metadata.xml: initial import wrt #388441 based on Samuel Bauers ebuilds I changed a lot and removed useflags which are either somewhat broken due to this being beta or useless. We shouldn't provide every configure switch there is... only those that make sense and work. E.g. csound is definitely broken.
In reply to comment #13 About the pruned flags: csound: best to skip it if it's broken. opengl: it's the only rendering modules in 0.0.13beta, but in live version, there are also two other renderers. will have to be reintroduced in future version http: only enables network gaming, maybe some people find useful to disable it. allinone: Why pruning this flag ? Live project now uses this by default. Here the project is built using shared libraries, but yet nothing else uses them. Maybe a good idea to enable a monolithic build (even better default +allinone). It would also be meaningful to purge headers when using this. Thanks for the commit, game's author seems pleased too.
(In reply to Samuel BAUER from comment #18) > In reply to comment #13 > > allinone: Why pruning this flag ? Live project now uses this by default. > Here the project is built using shared libraries, but yet nothing else uses > them. Maybe a good idea to enable a monolithic build (even better default > +allinone). It would also be meaningful to purge headers when using this. > What's the gain? I'd just leave configure defaults for such things unless I see a good reason to change it. So we either force it or leave it as is. But a useflag doesn't really make sense to me at this point.
The gain is only about user choice, even too much choice tends to be quite messy sometimes and moreover harder to maintain. Just leave things as they are. P.S.: I should check better before, allinone isn't by default with the live sources, it was just my own default