public inbox for gentoo-java@lists.gentoo.org
 help / color / mirror / Atom feed
From: Joshua Nichols <nichoj@gentoo.org>
To: gentoo-java@lists.gentoo.org
Subject: Re: [gentoo-java] new jruby ebuild
Date: Wed, 30 Aug 2006 22:49:25 -0400	[thread overview]
Message-ID: <44F64E35.1070401@gentoo.org> (raw)
In-Reply-To: <20060830013824.GA9966@oak>

Hi Sean,

Sean McEligot wrote:
> I updated the jruby ebuild for my first gentoo project. It's nearly
> complete. I just have to test a few things. I added /usr/bin/jruby and
> /usr/bin/jirb and some others. I also added /usr/share/jruby. I also
> created an ebuild for jvyaml, a new dependancy in jruby. I tried to
> contact the last maintainer (luckyduck@gentoo.org) but the email
> bounced. I'd like to get some help checking over my work. I'd also like
> to know the steps involved to get this into main. Here's the ebuilds:
>
>   
luckyduck is actually retired, so that would explain the bounce. The
proper way to get the ball rolling is to file a version bump request in
bugzilla for jruby, and a new package request in bugzilla for jvyaml.

Your ebuilds need a little bit of cleaning up, so I'm going to comment
inline.
> == jruby-0.9.0.ebuild ==
> # Copyright 1999-2005 Gentoo Foundation
> # Distributed under the terms of the GNU General Public License v2
> # $Header: /var/cvsroot/gentoo-x86/dev-java/jruby/jruby-0.7.0-r1.ebuild,v 1.3 2005/07/16 14:28:28 axxo Exp $
>
> inherit base java-pkg-2
>
>   

I don't see anything using functionality from base, so you probably
don't need to inherit. And since you're using ant, you should inherit
java-ant-2

> DESCRIPTION="Java based ruby interpreter implementation"
> HOMEPAGE="http://jruby.sourceforge.net/"
> SRC_URI="mirror://sourceforge/jruby/${PN}-src-${PV}.tar.gz"
> #SRC_URI="http://dist.codehaus.org/jruby/jruby-src-${PV}.tar.gz
>   
You should probably removed commented code that isn't being used.
> KEYWORDS="x86 amd64"
>   
New versions should always be keyworded with unstable keywords.
> LICENSE="GPL-2"
> SLOT="0"
> IUSE="doc examples jikes junit source"
>   
jikes is a deprecated used flag. We have other mechanisms for
controlling the compiler.

test should be used instead of junit.
> RDEPEND=">=virtual/jre-1.4
> 	=dev-java/jvyaml-0.1*
> 	=dev-java/bsf-2.3*
> 	=dev-java/jakarta-oro-2.0*
> 	=dev-java/gnu-regexp-1.1*"
> DEPEND=">=virtual/jdk-1.4
> 	${RDEPEND}
> 	>=dev-java/ant-1.4
> 	jikes? ( dev-java/jikes )
> 	junit? ( dev-java/junit )
> 	source? ( app-arch/zip )"
>
>   
Lose the jikes, as mentioned above. Ditto on junit -> test.
> src_unpack() {
> 	unpack ${A}
> 	cd ${S}/lib
> 	rm -rf *.jar
> 	java-pkg_jar-from bsf-2.3
> 	java-pkg_jar-from jakarta-oro-2.0
> 	java-pkg_jar-from gnu-regexp-1
> 	java-pkg_jar-from jvyaml
> 	use junit && java-pkg_jar-from junit
> }
>
> src_compile() {
> 	local antflags="jar"
> 	use doc && antflags="${antflags} create-apidocs"
> 	use jikes && antflags="${antflags} -Dbuild.compiler=jikes"
> 	use junit && antflags="${antflags} test"
> 	ant ${antflags} || die "Compile Failed"
> }
>
>   
Testing should be done in src_test.

You should be using eant instead of ant directly. This can be slimmed
down to:

eant jar $(use_doc create-apidocs)

use_doc will check if using doc flag, and if so, will print the args you
pass to it... or 'javadoc' if you don't give it any args.

> src_install() {
> 	java-pkg_dojar ${S}/lib/jruby.jar
>
> 	use doc && java-pkg_dohtml -r docs/api/*
> 	if use examples; then
> 		dodir /usr/share/doc/${PF}/examples
> 		cp -r samples/* ${D}/usr/share/doc/${PF}/examples
> 	fi
> 	use source && java-pkg_dosrc src/org
> 	java-pkg_dolauncher jruby \
> 						--main 'org.jruby.Main' \
> 						--java_args '-Djruby.base=/usr/share/jruby -Djruby.home=/usr/share/jruby -Djruby.lib=/usr/share/jruby/lib -Djruby.script=jruby -Djruby.shell=/bin/sh'
> 	insinto /usr/share/${PN}
> 	doins -r lib
> 	exeinto /usr/bin
> 	newexe ${S}/bin/gem jgem
> 	newexe ${S}/bin/gem_server jgem_server
> 	newexe ${S}/bin/gemlock jgem_lock
> 	newexe ${S}/bin/gemri jgemri
> 	newexe ${S}/bin/gemwhich jgemwhich
> 	newexe ${S}/bin/update_rubygems jupdate_rubygems
> 	newexe ${S}/bin/generate_yaml_index.rb jgenerate_yaml_index.rb
> 	newexe ${S}/bin/index_gem_repository.rb jindex_gem_repository.rb 
> 	doexe ${S}/bin/jirb
> }
> == jvyaml-0.1.ebuild ==
> # Copyright 1999-2006 Gentoo Foundation
> # Distributed under the terms of the GNU General Public License v2
> # $Header: Exp $
>
> inherit java-pkg-2 java-ant-2 eutils
>
> DESCRIPTION="Java YAML parser and emitter"
> HOMEPAGE="https://jvyaml.dev.java.net/"
> SRC_URI="https://${PN}.dev.java.net/files/documents/5215/35811/${PN}-src-${PV}.tar.gz"
> LICENSE="MIT"
> SLOT="0"
> KEYWORDS="~amd64 ~ppc ~x86"
> IUSE="doc examples source"
> DEPEND=">=virtual/jdk-1.3
> 	sys-apps/sed
> 	dev-java/ant-core
> 	source? ( app-arch/zip )"
> RDEPEND=">=virtual/jre-1.3"
>
> S="${WORKDIR}/${PN}-${PV}"
>   
This S is unnecessary, since that is what the default value of S is.
> src_unpack() {
> 	unpack ${A}
> }
>
>   
This src_unpack is unnecessary, because that is the default src_unpack
> src_compile() {
> 	local antflags="jar"
> 	use doc && antflags="${antflags} javadoc"
> 	eant ${antflags} || die "compilation failed"
> }
>
>   
This can be rewritten as:
eant jar $(use_doc)
> src_install() {
> 	java-pkg_dojar lib/${PN}.jar
>
> 	if use doc; then
> 		dodoc README
> 		java-pkg_dohtml -r www/*
> 		java-pkg_dohtml -r doc/api
> 	fi
>   
README should generally always be installed. doc is traditionally used
for generating and installing documantation that may take more time /
space to process/install
> 	use source && java-pkg_dosrc src/*
>
> 	#newenvd ${FILESDIR}/jvyaml-${PV} 22jvyaml
>   
Should remove uncommented code.
> }
>
>   
Hope this doesn't come off to harsh :)

Some resources that would be of interest:
The Java development guide:
    http://www.gentoo.org/proj/en/java/java-devel.xml
The Gentoo Developer Handbook:
    http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml
The Devmanual:
    http://devmanual.gentoo.org/

Regards,

-- 
Joshua Nichols
Gentoo/Java Project Lead
-- 
gentoo-java@gentoo.org mailing list



  reply	other threads:[~2006-08-31  2:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-30  1:39 [gentoo-java] new jruby ebuild Sean McEligot
2006-08-31  2:49 ` Joshua Nichols [this message]
2006-08-31 14:23   ` Sean McEligot
  -- strict thread matches above, loose matches on Subject: below --
2006-08-30 16:37 Sean McEligot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44F64E35.1070401@gentoo.org \
    --to=nichoj@gentoo.org \
    --cc=gentoo-java@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox