building java rpm

Peter Lesterhuis peterlesterhuis at tiscali.nl
Sat Jun 25 20:40:51 UTC 2005


Hi,
I am trying to build a java rpm based on the nosrc.rpm from jpackage.org 
and the source from http://java.sun.com/j2se/1.5.0/download.jsp (the 
.bin-file).
I have never built rpms before; however I did some homework by reading 
the tutorial from Guru Labs on this subject.

It seems like I have to make some adjustments in the specs-file. The 
first 2 errors after <rpmbuild -ba specfile> I could solve myself, but 
the next one is too complicated for me to understand.


$ rpmbuild -ba java-1.5.0-sun.spec
Executing(%prep): /bin/sh -e /home/peter/rpmbuild/tmp/rpm-tmp.27537
+ umask 022
+ cd /home/peter/rpmbuild/BUILD
+ rm -rf /home/peter/rpmbuild/BUILD/jre1.5.0_03
+ export MORE=10000
+ MORE=10000
+ sh /home/peter/rpmbuild/SOURCES/jre-1_5_0_03-linux-i586.bin
+ cd /home/peter/rpmbuild/BUILD
+ cd jre1.5.0_03
++ /usr/bin/id -u
+ '[' 500 = 0 ']'
++ /usr/bin/id -u
+ '[' 500 = 0 ']'
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ chmod -R go=u-w bin CHANGES COPYRIGHT javaws lib LICENSE man plugin 
README THIRDPARTYLICENSEREADME.txt Welcome.html
+ chmod -R u+w bin CHANGES COPYRIGHT javaws lib LICENSE man plugin 
README THIRDPARTYLICENSEREADME.txt Welcome.html
++ echo 
/usr/lib/jvm/java-1.5.0-sun-1.5.0.03/jre/plugin/i386/ns7/libjavaplugin_oji.so
++ sed 's|/usr/lib/jvm/java-1.5.0-sun-1.5.0.03/jre|jre|'
+ _OJI_PLUGIN=jre/plugin/i386/ns7/libjavaplugin_oji.so
+ '[' '!' -f jre/plugin/i386/ns7/libjavaplugin_oji.so ']'
+ exit 1
error: Bad exit status from /home/peter/rpmbuild/tmp/rpm-tmp.27537 (%prep)


RPM build errors:
    Bad exit status from /home/peter/rpmbuild/tmp/rpm-tmp.27537 (%prep)


The /home/peter/rpmbuild/tmp/rpm-tmp.27537 is a part %prep section of 
the specs-file. The (first part of the) spec-file looks like this:

%define section         non-free

%define origin          sun
%define priority        1503
%define javaver         1.5.0
%define cvsver          1_5_0
%define buildver        03

%define name            java-%{javaver}-%{origin}
%define release         1jpp

# TODO: Think about using conditionals for version variants.

%define version         %{javaver}.%{buildver}
#define version         %{javaver}

%define cvsversion      %{cvsver}_%{buildver}
#define cvsversion      %{cvsver}

%define javaws_ver      %{javaver}
%define javaws_version  %{cvsversion}

%define toplevel_dir    jre%{javaver}_%{buildver}
#define toplevel_dir    jdk%{javaver}

%define sdklnk          java-%{javaver}-%{origin}
%define jrelnk          jre-%{javaver}-%{origin}
%define sdkdir          %{name}-%{version}
%define jredir          %{sdkdir}/jre
%define sdkbindir       %{_jvmdir}/%{sdklnk}/bin
%define sdklibdir       %{_jvmdir}/%{sdklnk}/lib
%define jrebindir       %{_jvmdir}/%{jrelnk}/bin
%define jvmjardir       %{_jvmjardir}/%{name}-%{version}

%define x11bindir       %{_prefix}/X11R6/bin
%define x11encdir       %{_prefix}/X11R6/lib/X11/fonts/encodings
%define fontconfigdir   %{_sysconfdir}/fonts
%define fontdir         %{_datadir}/fonts/java
%define xsldir          %{_datadir}/xml/%{name}-%{version}

%ifarch %ix86
%define target_cpu      i586
%define pluginname      
%{_jvmdir}/%{jredir}/plugin/i386/ns7/libjavaplugin_oji.so
%endif
%ifarch x86_64%define target_cpu      amd64
%endif

%define cgibindir       %{_var}/www/cgi-bin

# Avoid RPM 4.2+'s internal dep generator, it may produce bogus
# Provides/Requires here.
%define _use_internal_dependency_generator 0

# This prevents aggressive stripping.
%define debug_package %{nil}

Name:           %{name}
Version:        %{version}
Release:        %{release}
Epoch:          0
Summary:        Java Runtime Environment for %{name}
License:        Sun Binary Code License
Group:          Development/Interpreters
Vendor:         JPackage Project
Distribution:   JPackage
URL:            http://java.sun.com/j2se/%{javaver}/Source1:        
%{name}-register-java-fonts.xsl
Source2:        %{name}-unregister-java-fonts.xsl
NoSource:       0
Provides:       jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
Provides:       jre-%{origin} = %{epoch}:%{version}-%{release}
Provides:       jre-%{javaver}, java-%{javaver}, jre = %{epoch}:%{javaver}
Provides:       java-%{origin} = %{epoch}:%{version}-%{release}
Provides:       java = %{epoch}:%{javaver}
Requires:       /usr/sbin/update-alternatives
Requires:       jpackage-utils >= 0:1.5.38
Conflicts:      kaffe
BuildArch:      i586 x86_64
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildRequires:  jpackage-utils >= 0:1.5.38, sed, %{_bindir}/perl
%ifnarch x86_64
Provides:       javaws = %{epoch}:%{javaws_ver}
%endifProvides:       jdbc-stdext = %{epoch}:3.0, jdbc-stdext = 
%{epoch}:%{version}
Provides:       java-sasl = %{epoch}:%{version}
%ifnarch x86_64
Obsoletes:      javaws-menu
%endif

%description
This package contains the Java Runtime Environment for %{name}

%package        devel
Summary:        Java Development Kit for %{name}
Group:          Development/Compilers
Requires:       /usr/sbin/update-alternatives
Provides:       java-sdk-%{javaver}-%{origin} = 
%{epoch}:%{version}-%{release}
Provides:       java-sdk-%{origin} = %{epoch}:%{version}-%{release}
Provides:       java-sdk-%{javaver}, java-sdk = %{epoch}:%{javaver}
Provides:       java-devel-%{origin} = %{epoch}:%{version}-%{release}
Provides:       java-%{javaver}-devel, java-devel = %{epoch}:%{javaver}
Requires:       %{name} = %{epoch}:%{version}-%{release}

%description    develwritten using the Java programming language.

%package        src
Summary:        Source files for %{name}
Group:          Development/Interpreters
Requires:       %{name} = %{epoch}:%{version}-%{release}

%description    src
This package contains source files for %{name}.

%package        demo
Summary:        Demonstration files for %{name}
Group:          Development/Interpreters
Requires:       %{name} = %{epoch}:%{version}-%{release}
# Without this a requirement on libjava_crw_demo_g.so is added which
# is not in the main java package. libjava_crw_demo.so is but not "_g".
AutoReq:        0
Summary:        Browser plugin files for %{name}
Group:          Internet/WWW/Browsers
Requires:       %{name} = %{epoch}:%{version}-%{release}
Requires:       %{_bindir}/find, sed
Provides:       java-plugin = %{epoch}:%{javaver}, 
java-%{javaver}-plugin = %{epoch}:%{version}
Conflicts:      java-%{javaver}-ibm-plugin, java-%{javaver}-blackdown-plugin
Conflicts:      java-%{javaver}-bea-plugin
Obsoletes:      java-1.3.1-plugin, java-1.4.0-plugin, java-1.4.1-plugin, 
java-1.4.2-plugin

%description    plugin
This package contains browser plugin files for %{name}.
Note!  This package supports browsers built with GCC 3.2 and later.
%endif

%package        fonts
Summary:        TrueType fonts for %{origin} JVMs
Group:          Text Processing/Fonts
Requires:       %{name} = %{epoch}:%{version}-%{release}, 
%{_bindir}/ttmkfdir
Requires:       %{_sbindir}/chkfontpath, %{x11bindir}/mkfontdir, mktemp
Requires:       %{_bindir}/xsltproc, %{_bindir}/perl
Provides:       java-fonts = %{epoch}:%{javaver}, java-%{javaver}-fonts
Conflicts:      java-%{javaver}-ibm-fonts, java-%{javaver}-blackdown-fonts
Conflicts:      java-%{javaver}-bea-fonts
Obsoletes:      java-1.3.1-fonts, java-1.4.0-fonts, java-1.4.1-fonts, 
java-1.4.2-fonts

%description    fonts
This package contains the TrueType fonts for %{origin} JVMs.

%package        alsa
Summary:        ALSA support for %{name}
Group:          Development/Libraries/Java
Requires:       %{name} = %{epoch}:%{version}-%{release}

%description    alsa
This package contains Advanced Linux Sound Architecture (ALSA) support
libraries for %{name}.

%package        jdbc
Summary:        JDBC/ODBC bridge driver for %{name}
Group:          Development/Libraries/Java
AutoReq:        0
Requires:       %{name} = %{epoch}:%{version}-%{release}%description    jdbc
This package contains the JDBC/ODBC bridge driver for %{name}.


%prep
rm -rf $RPM_BUILD_DIR/%{toplevel_dir}
export MORE=10000
sh %{SOURCE0} <<EOF >/dev/null
yes
EOF
%setup -T -D -n %{toplevel_dir}
chmod -R go=u-w *
chmod -R u+w *

%ifnarch x86_64
# make sure the plugin exists
_OJI_PLUGIN=$(echo %pluginname | sed 's|%{_jvmdir}/%{jredir}|jre|')
if [ ! -f $_OJI_PLUGIN ]; then
  exit 1
fi
%endif


What does the error mean?  Any help would be appreciated.
Peter.






More information about the fedora-list mailing list