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