File netbeans-platform.spec of Package netbeans-platform

#
# spec file for package netbeans-platform (Version 6.5)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define __jar_repack %{nil}
%define nb_             netbeans
%define nb_ver          6.5
%define nb_release_time 200811100001
%define nb_home         %{_datadir}/%{nb_}
%define nb_dir          %{nb_home}/%{nb_ver}
%define nb_platform_ver 9
%define nb_platform     platform%{nb_platform_ver}
%define nb_platform_dir %{nb_home}/%{nb_platform}
%define nb_harness      harness
%define nb_harness_dir  %{nb_home}/%{nb_harness}
%define nb_javadoc      javadoc
%define nb_javadoc_dir  %{_javadocdir}/%{nb_}-%{nb_platform}
%define compiler_opt    -Dbuild.compiler.deprecation=false -Dbuild.compiler.debug=false
%define jdk_opt         -Dpermit.jdk6.builds=true
%define verify_opt      -Dverify.checkout=false
%define ant_nb_opt      %{ant} %{jdk_opt} %{compiler_opt} %{verify_opt}
%define nb_javadoc_site http://bits.netbeans.org/%{nb_ver}/javadoc

Name:           netbeans-platform
Version:        6.5
Release:        3
Summary:        NetBeans Platform %{nb_platform_ver}
Group:          Development/Libraries
License:        GPLv2 with exceptions or CDDL
Url:            http://platform.netbeans.org
# bnc#509430
# rm nbbuild/licenses/Northwoods
Source0:        http://download.netbeans.org/%{nb_}/%{version}/final/zip/%{nb_}-%{version}-%{nb_release_time}-ml-platform-src.tar.bz2
Patch0:         %{name}-%{version}-build_bootstrap.patch
Patch1:         %{name}-%{version}-properties.patch
# http://www.netbeans.org/issues/show_bug.cgi?id=134544
Patch2:         %{name}-%{version}-win_launcher.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildArch:      noarch
BuildRequires:  jpackage-utils
BuildRequires:  java-devel
BuildRequires:  ant >= 1.7.0
BuildRequires:  ant-junit >= 1.7.0
BuildRequires:  ant-nodeps >= 1.7.0
BuildRequires:  ant-trax >= 1.7.0
BuildRequires:  junit4 >= 4.5
BuildRequires:  swing-layout >= 1.0
BuildRequires:  javahelp2 >= 2.0.05
BuildRequires:  jna >= 3.0.2
BuildRequires:  fdupes
Requires:       jpackage-utils
Requires:       java
Requires:       swing-layout >= 1.0
Requires:       javahelp2 >= 2.0.05
Requires:       jna >= 3.0.2
#Obsoletes: netbeans-platform8 < 6.5
#Provides:  netbeans-platform8 < 6.5

%description
The NetBeans Platform is a generic framework for Swing applications. 
It provides the services common to almost all large desktop applications: 
window management, menus, settings and storage, update management, file 
access, etc.

%package javadoc
License:        GPLv2 with exceptions or CDDL
Summary:        Javadoc documentation for NetBeans Platform %{nb_platform_ver}
Group:          Documentation
#Obsoletes: netbeans-platform8-javadoc < 6.5

%description javadoc
NetBeans Platform is a set of modules, each providing
their own APIs and working together or in a standalone
mode. This package provides one master 
javadoc to all of them.

%package harness
License:        GPLv2 with exceptions or CDDL
Summary:        Build harness for NetBeans Platform %{nb_platform_ver}
Group:          Development/Libraries
Requires:       jpackage-utils
Requires:       java >= 1.6.0
Requires:       ant >= 1.7.0
Requires:       %{name} = %{version}
Requires:       javahelp2 >= 2.0.05
#Obsoletes: netbeans-platform8-harness < 6.5

%description harness
Harness with build scripts and ant tasks for everyone who
build an application on top of NetBeans Platform

%prep
%setup -q -c 
find . -type f \( -iname "*.jar" -o -iname "*.zip" \) | xargs -t %{__rm} -f
find . -type f \( -iname "*.exe" \) | xargs -t %{__rm} -f
find . -type f \( -iname "binaries-list" \) | xargs -t %{__rm} -f
# As of Java 6, JSR 223 is included in the JRE.
# Generate the stub jar file, so there is something in jsr223 API module
%{__mkdir_p} libs.jsr223/src/javax/script
echo "package javax.script; class empty { }" > libs.jsr223/src/javax/script/empty.java
%{__mkdir_p} libs.jsr223/external
jar cf libs.jsr223/external/jsr223-api.jar libs.jsr223/src/javax/script/empty.java
# to build the netbeans modules the installed jars will be used instead of pre-packaged ones
%{__ln_s} -f %{_javadir}/swing-layout.jar o.jdesktop.layout/external/swing-layout-1.0.3.jar
%{__ln_s} -f %{_javadir}/javahelp2.jar apisupport.harness/external/jsearch-2.0_05.jar
%{__ln_s} -f %{_javadir}/javahelp2.jar javahelp/external/jh-2.0_05.jar
%{__ln_s} -f %{_javadir}/jna.jar libs.jna/external/jna-3.0.2.jar
%{__ln_s} -f %{_javadir}/junit4.jar libs.junit4/external/junit-4.5.jar
%patch0 -p1
%patch1 -p1
%patch2 -p1

%build
# build platform
%{ant_nb_opt} -f nbbuild/build.xml build-platform
%{__ln_s} -f %{_javadir}/swing-layout.jar nbbuild/netbeans/%{nb_platform}/modules/ext/swing-layout-1.0.3.jar
%{__ln_s} -f %{_javadir}/javahelp2.jar nbbuild/netbeans/%{nb_platform}/modules/ext/jsearch-2.0_05.jar
%{__ln_s} -f %{_javadir}/javahelp2.jar nbbuild/netbeans/%{nb_platform}/modules/ext/jh-2.0_05.jar
%{__ln_s} -f %{_javadir}/jna.jar nbbuild/netbeans/%{nb_platform}/modules/ext/jna-3.0.2.jar
%{__ln_s} -f %{_javadir}/junit4.jar nbbuild/netbeans/%{nb_platform}/modules/ext/junit-4.5.jar
# build platform harness
%{ant_nb_opt} -f apisupport.harness/build.xml
%{__ln_s} -f %{_javadir}/javahelp2.jar nbbuild/netbeans/%{nb_harness}/jsearch-2.0_05.jar
# build platform javadoc
%{ant_nb_opt} \
   -Dallmodules= \
   -Dcluster.config=platform \
   -Dconfig.javadoc.cluster=%{nb_platform} \
   -Dconfig.javadoc.netbeans=\
openide.util,openide.actions,openide.options,openide.awt,\
openide.dialogs,openide.nodes,openide.explorer,openide.filesystems,openide.modules,\
openide.text,openide.windows,openide.loaders,openide.io,queries,\
o.n.api.progress,settings,javahelp,openide.execution,\
sendopts,options.api,editor.mimelookup \
   -Djavadoc.docs.org-netbeans-api-java=%{nb_javadoc_site}/org-netbeans-api-java/ \
   -Djavadoc.docs.org-netbeans-modules-project-ant=%{nb_javadoc_site}/org-netbeans-modules-project-ant/ \
   -Djavadoc.docs.org-netbeans-modules-projectapi=%{nb_javadoc_site}/org-netbeans-modules-projectapi/ \
   -f nbbuild/build.xml build-javadoc
%{__rm} -rf nbbuild/build/javadoc/*.zip
# clean up links to ext jars
%{__rm} -f nbbuild/netbeans/%{nb_platform}/modules/ext/swing-layout-1.0.3.jar
%{__rm} -f nbbuild/netbeans/%{nb_platform}/modules/ext/jsearch-2.0_05.jar
%{__rm} -f nbbuild/netbeans/%{nb_platform}/modules/ext/jh-2.0_05.jar
%{__rm} -f nbbuild/netbeans/%{nb_platform}/modules/ext/jna-3.0.2.jar
%{__rm} -f nbbuild/netbeans/%{nb_platform}/modules/ext/junit-4.5.jar
%{__rm} -f nbbuild/netbeans/%{nb_harness}/jsearch-2.0_05.jar
# clean up stub jars
%{__rm} -f nbbuild/netbeans/%{nb_platform}/modules/ext/script-api.jar

%install
export NO_BRP_CHECK_BYTECODE_VERSION=true
# install platform
%{__mkdir_p} %{buildroot}%{nb_platform_dir}
%{__cp} -pr nbbuild/netbeans/%{nb_platform}/* %{buildroot}%{nb_platform_dir}
echo > %{buildroot}%{nb_platform_dir}/.noautoupdate
# linking the platform to the external JARs
%{__ln_s} -f %{_javadir}/swing-layout.jar %{buildroot}%{nb_platform_dir}/modules/ext/swing-layout-1.0.3.jar
%{__ln_s} -f %{_javadir}/javahelp2.jar %{buildroot}%{nb_platform_dir}/modules/ext/jsearch-2.0_05.jar
%{__ln_s} -f %{_javadir}/javahelp2.jar %{buildroot}%{nb_platform_dir}/modules/ext/jh-2.0_05.jar
%{__ln_s} -f %{_javadir}/jna.jar %{buildroot}%{nb_platform_dir}/modules/ext/jna-3.0.2.jar
%{__ln_s} -f %{_javadir}/junit4.jar %{buildroot}%{nb_platform_dir}/modules/ext/junit-4.5.jar
# install harness
%{__mkdir_p} %{buildroot}%{nb_harness_dir}
%{__cp} -pr nbbuild/netbeans/%{nb_harness}/* %{buildroot}%{nb_harness_dir}
echo > %{buildroot}%{nb_harness_dir}/.noautoupdate
# linking the harness to the external JARs
%{__ln_s} -f %{_javadir}/javahelp2.jar %{buildroot}%{nb_harness_dir}/jsearch-2.0_05.jar
# install javadoc
%{__mkdir_p} %{buildroot}%{nb_javadoc_dir}
%{__cp} -pr nbbuild/build/javadoc/* %{buildroot}%{nb_javadoc_dir}
# orig suffix is not allowed in SUSE
mv %{buildroot}/%{nb_harness_dir}/suite.xml.orig %{buildroot}/%{nb_harness_dir}/suite.xml.upstream
%fdupes -s %{buildroot}/%{nb_javadoc_dir}

%clean
%{__rm} -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc nbbuild/licenses/CDDL-1.0 nbbuild/licenses/CDDL-GPL-2-CP 
%doc nbbuild/licenses/GPL-2-CP nbbuild/licenses/GPL-with-Proguard-exception
%dir %{nb_home}/
%dir %{nb_platform_dir}/
%{nb_platform_dir}/config
%{nb_platform_dir}/core
%dir %{nb_platform_dir}/lib
%{nb_platform_dir}/lib/boot.jar
%attr(755, root, root) %{nb_platform_dir}/lib/nbexec
%{nb_platform_dir}/lib/org-openide-modules.jar
%{nb_platform_dir}/lib/org-openide-util.jar
%{nb_platform_dir}/modules
%{nb_platform_dir}/update_tracking
%{nb_platform_dir}/.noautoupdate

%files harness
%defattr(-,root,root,-)
%dir %{nb_harness_dir}/
%{nb_harness_dir}/config
%{nb_harness_dir}/etc
%{nb_harness_dir}/jnlp
%dir %{nb_harness_dir}/launchers
%attr(755, root, root) %{nb_harness_dir}/launchers/app.sh
%{nb_harness_dir}/modules
%{nb_harness_dir}/update_tracking
%doc %{nb_harness_dir}/README
%{nb_harness_dir}/build.xml
%{nb_harness_dir}/common.xml
%{nb_harness_dir}/jdk.xml
%{nb_harness_dir}/jnlp.xml
%{nb_harness_dir}/jsearch-2.0_05.jar
%{nb_harness_dir}/run.xml
%{nb_harness_dir}/suite.xml
%{nb_harness_dir}/suite.xml.upstream
%{nb_harness_dir}/tasks.jar
%{nb_harness_dir}/.noautoupdate

%files javadoc
%defattr(-,root,root,-)
%doc %{nb_javadoc_dir}/

%changelog
openSUSE Build Service is sponsored by