Mailing List Archive

RFC: new gnustep eclasses
Hello all,

Fabian Groffen (grobian) and myself have been working on giving
some love to GNUstep support in Gentoo, which you can track progress
from the gnustep overlay:
http://overlays.gentoo.org/proj/gnustep

This has now turned in a massive rewrite of the gnustep eclasses and
base packages, with the following objectives:
* Cleaner and simpler eclasses (easier to read and maintain) and ebuilds
(easier to write). This includes removing the need for most of the
internal Gentoo/GNUstep variables defined in the current eclasses

* Use the new gnustep-make-2 system (needed for new packages)

* Less user environment pollution: no need to source a big script that
tinkered with LD_LIBRARY_PATH and set a bunch of other variables

* Easier user configuration (as in "emerge something and nothing more")

* Lots of cleanups here and there (new virtual for gnustep-back,
removal of useless global init scripts, fix sandbox issues for some
ebuilds...) listed in the overlay web pages

User feedback on the overlay is quite positive, so let's hear from
-dev now!

Latest version of the base eclass (sent with this mail) can be found at:
http://overlays.gentoo.org/proj/gnustep/browser/overlay/eclass/gnustep-base.eclass

This one does most of the hard work, especially in egnustep_env which
sets up an appropriate GNUstep compilation environment from the
installed gnustep-make.

Default functions are provided for:
pkg_setup, src_compile, src_install, pkg_postinst
(pkg_postinst points the users to shell scripts that need to be run
once as user)

Latest version of the gnustep-2 eclass can be found at:
http://overlays.gentoo.org/proj/gnustep/browser/overlay/eclass/gnustep-2.eclass

This one mostly sets dependencies on a full GNUstep base system and is
the one to include in a normal gnustep ebuild

For the interested, many other changes lie in the gnustep-base packages
in the overlay (most of the environment setting is now done by the
gnustep-make ebuild)

Feedback, comments, suggestions, other ideas are welcome!
--
Bernard Cafarelli (Voyageur)
NX and GNUstep Gentoo developer
Re: RFC: new gnustep eclasses [ In reply to ]
On 00:04 Tue 07 Aug , Bernard Cafarelli wrote:
> Latest version of the base eclass (sent with this mail) can be found at:
> http://overlays.gentoo.org/proj/gnustep/browser/overlay/eclass/gnustep-base.eclass
>
> This one does most of the hard work, especially in egnustep_env which
> sets up an appropriate GNUstep compilation environment from the
> installed gnustep-make.

Some suggestions on the eclass ...

Instead of your eval trick, try something like what's in molden-4.6.ebuild:

typeset -a args
args=( CC="$(tc-getCC) ${CFLAGS}" \
FC="${FORTRANC}" LDR="${FORTRANC}" FFLAGS="${FFLAGS}" )

emake -j1 "${args[@]}" || die "molden emake failed"

Some of your die() calls lack messages. Please add them.

I like a little different setup for this type of function:
117 egnustep_make() {
118 if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then
119 eval emake ${*} ${__GS_MAKE_EVAL} all || die "package make failed"
120 else
121 die "no Makefile found"
122 fi
123 }

Instead...
117 egnustep_make() {
118 if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then
119 eval emake ${*} ${__GS_MAKE_EVAL} all || die "package make failed"
120 return 0
121 fi
122 die "no Makefile found"
123 }

But that's just a matter of preference. Same kinda deal for egnustep_install().

Thanks,
Donnie
--
gentoo-dev@gentoo.org mailing list
Re: RFC: new gnustep eclasses [ In reply to ]
Bernard Cafarelli <voyageur@gentoo.org>:

> Feedback, comments, suggestions, other ideas are welcome!

As a GNUstep non-user, I am not really competent to comment on
it...but here a small diff.

V-Li

--- gnustep-base.eclass 2007-08-07 20:43:00.000000000 +0200
+++ gnustep-base.eclass.new 2007-08-07 20:42:27.000000000 +0200
@@ -50,16 +50,16 @@
egnustep_env
egnustep_doc
fi
- # Copies "convenience scripts"
+ # Copys "convenience scripts"
if [ -f "${FILESDIR}/config-${PN}.sh" ]; then
dodir ${GNUSTEP_SYSTEM_TOOLS}/Gentoo
exeinto ${GNUSTEP_SYSTEM_TOOLS}/Gentoo
- doexe ${FILESDIR}/config-${PN}.sh
+ doexe "${FILESDIR}/config-${PN}.sh"
fi
}

gnustep-base_pkg_postinst() {
- # Informs user about existence of "convenience script"
+ # Informs user about existence of "convenience script"
if [ -f "${FILESDIR}/config-${PN}.sh" ]; then
elog "Make sure to set happy defaults for this package
by executing:" elog " ${GNUSTEP_SYSTEM_TOOLS}/Gentoo/config-${PN}.sh"
@@ -139,7 +139,7 @@
egnustep_doc() {
if [ -d ./Documentation ]; then
# Check documentation presence
- cd ${S}/Documentation
+ cd "${S}/Documentation"
if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then
eval emake ${__GS_MAKE_EVAL} all || die "doc
make failed" eval emake ${__GS_MAKE_EVAL} install || die "doc install
failed"

--
http://www.gentoo.org/
http://www.faulhammer.org/
http://www.gnupg.org/
Re: RFC: new gnustep eclasses [ In reply to ]
Bernard Cafarelli ha scritto:
> Hello all,
>
>
hi
that's a cool project you are working on!
I wish I could contribute actively in the future
> Feedback, comments, suggestions, other ideas are welcome!
>
right now I found a problem (I wonder if it happens on others too) about
gnustep-back-art-0.12.0. unfortunately I don't figure how to fix it, so
I opened a bug at http://bugs.gentoo.org/show_bug.cgi?id=188044

I wish someone could help.
I'll ask to gnustep guys as soon as possible too

--
#include <stdio.h>
main(){printf("%x",4275974592);}

--
gentoo-dev@gentoo.org mailing list
Re: RFC: new gnustep eclasses [ In reply to ]
On 07-08-2007 00:04:13 +0200, Bernard Cafarelli wrote:
...
> some love to GNUstep support in Gentoo, which you can track progress
> from the gnustep overlay:
> http://overlays.gentoo.org/proj/gnustep
...
> Latest version of the base eclass (sent with this mail) can be found at:
> http://overlays.gentoo.org/proj/gnustep/browser/overlay/eclass/gnustep-base.eclass

We have incorporated all suggested changes more or less in our eclasses
now. We plan to inject the eclasses in a week from now if no major
issues are pointed out. So please give the eclass a quick scan if you
can and report any feedback to us. For convenience I also attached the
diffs made between the first post and this post.

Thanks for all remarks made sofar.



--
Fabian Groffen
Gentoo on a different level