[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fink-devel
Subject:    [Fink-devel] Overhauling gclasspath
From:       Trevor Harmon <trevor () vocaro ! com>
Date:       2008-11-30 6:01:09
Message-ID: 5DE1551D-62BB-4C88-9C82-AB6CF185BEF0 () vocaro ! com
[Download RAW message or body]

I maintain the gclasspath package (formerly classpath), and I recently  
learned that it has file conflicts with gcc43. For some reason, gcc43  
installs classpath along with it, and it does strange things to the  
files. For instance, it installs the classpath binaries to %p/lib/ 
gcc4.3/bin, and then it creates symbolic links to a couple of them in  
%p/bin (grmic and grmiregistry). I don't know why it puts only these  
two in bin but not others. Even stranger, it installs man pages for a  
bunch of classpath executables without making those executables  
available in %p/bin, and it installs only one of the three classpath  
info files.

I've decided to work around these problems by making classpath  
dependent on gcc43 and simply preventing it from installing the files  
that gcc43 installs. It can therefore fill in the gaps left by gcc43.  
However, I'm not sure if this decision is correct or even if I've  
implemented it properly. Could someone please take a look at it?

Thanks,

Trevor


["gclasspath.info" (gclasspath.info)]

Package: gclasspath
Version: 0.97.2
Revision: 1
Description: Essential libraries for Java
License: GPL
Maintainer: Trevor Harmon <trevor@vocaro.com>

# The gcc43 dependency is an anomaly; see DescPackaging
Depends: libiconv, system-java (>= 1.5), gcc43 (>= 4.3.2), gconf2-shlibs (>= 2.6.0), \
gtk+2-shlibs (>= 2.8)

BuildDepends: libiconv-dev, ecj (>= 3.2.2), system-java-dev (>= 1.4), fink (>= 0.28), \
gconf2-dev (>= 2.6.0), gtk+2-dev (>= 2.8)

# classpath includes header files and a dylib, but it's not BuildDependsOnly
BuildDependsOnly: false

ConfigureParams: --disable-dependency-tracking --disable-plugin \
--infodir=%p/share/info --with-ecj-jar=%p/share/java/ecj/ecj.jar --with-vm=java

InstallScript: <<
  make install DESTDIR=%d
  
  # Do not install these files; see DescPackaging
  rm -f %i/bin/grmic
  rm -f %i/bin/grmiregistry
  rm -f %i/share/info/cp-tools.info
  rm -f %i/share/man/man1/gappletviewer.1
  rm -f %i/share/man/man1/gcjh.1
  rm -f %i/share/man/man1/gjar.1
  rm -f %i/share/man/man1/gjarsigner.1
  rm -f %i/share/man/man1/gjavah.1
  rm -f %i/share/man/man1/gkeytool.1
  rm -f %i/share/man/man1/gnative2ascii.1
  rm -f %i/share/man/man1/gorbd.1
  rm -f %i/share/man/man1/grmid.1
  rm -f %i/share/man/man1/grmiregistry.1
  rm -f %i/share/man/man1/gserialver.1
  rm -f %i/share/man/man1/gtnameserv.1

  # Remove the class packages; they will be installed using the JarFiles field
  rm -f %i/share/glibj.zip
  rm -f %i/share/tools.zip
<<

Source: mirror:gnu:classpath/classpath-%v.tar.gz
Source-MD5: 6a35347901ace03c31cc49751b338f31

# classpath includes some dylibs, but these are used by classpath itself and are
# not intended to be shared. Therefore, a -shlibs SplitOff isn't necessary.
Shlibs: <<
	!%p/lib/classpath/libgconfpeer.dylib
	!%p/lib/classpath/libgtkpeer.dylib
	!%p/lib/classpath/libjavaio.0.dylib
	!%p/lib/classpath/libjavalang.0.dylib
	!%p/lib/classpath/libjavalangmanagement.0.dylib
	!%p/lib/classpath/libjavalangreflect.0.dylib
	!%p/lib/classpath/libjavanet.0.dylib
	!%p/lib/classpath/libjavanio.0.dylib
	!%p/lib/classpath/libjavautil.0.dylib
	!%p/lib/classpath/libjawt.dylib
<<

JarFiles: lib/glibj.zip:glibj.jar tools/tools.zip:tools.jar

DocFiles: AUTHORS BUGS COPYING ChangeLog HACKING INSTALL LICENSE NEWS README THANKYOU \
TODO

# Cannot install cp-tools.info due to gcc43 conflict (see DescPackaging)
InfoDocs: cp-hacking.info cp-vmintegration.info

Homepage: http://www.gnu.org/software/classpath/classpath.html

DescDetail: <<
GNU Classpath, Essential Libraries for Java, is a GNU project to create free
core class libraries for use with virtual machines and compilers for the Java
programming language.
<<

DescPackaging: <<
The package is called "gclasspath" instead of "classpath" because Fink has a
bug preventing packages that install JAR files from being called "classpath."
See: http://article.gmane.org/gmane.os.apple.fink.devel/17181

The ConfigureParams field disables web browser plugin integration. If enabled,
pkg-config reports that it can find none of the following: mozilla-plugin,
firefox-plugin, xulrunner-plugin, mozilla-firefox-plugin, seamonkey-plugin,
and iceape-plugin. While it may be possible to support these in Fink, I'm not
sure how.

The ConfigureParams field also sets the infodir parameter to prevent Classpath
from installing files into the deprecated %p/info directory. Note that to get
this to work, the DESTDIR parameter also had to be set in the InstallScript.

The gcc43 package includes some Classpath files that are redundant with and
conflict with this package. For example, gcc43 installs grmic and grmiregistry
into %p/bin. As a workaround, this package simply avoids installing these
files and instead requires gcc43 to be installed. Therefore, gcc43 is listed as
a dependency even though this package does not actually depend on it. (gcc43
should be fixed so that it does not install Classpath files.

This is a one-time build, so the disable-dependency-tracking parameter is added
to speed up compilation.

The package does not build with "fink rebuild -m --build-as-nobody" due to a
prompt regarding the cpio command. Otherwise, build-as-nobody works fine.
<<





-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic