Sophie

Sophie

distrib > Mandriva > 2009.0 > x86_64 > by-pkgid > 9a9fcb2a47ca82d13e725c7d85b1d080 > files > 11

netbeans-ide-6.1-6mdv2009.0.src.rpm

%define nb_              netbeans
%define nb_org           %{nb_}.org
%define nb_ver           6.1
%define nb_release_time  200805300101
%define nb_home          %{_datadir}/%{nb_}
%define nb_dir           %{nb_home}/%{nb_ver}

%define nb_platform_ver  8
%define nb_platform      platform%{nb_platform_ver}
%define nb_platform_dir  %{nb_home}/%{nb_platform}
%define nb_platform_pkg  libnb-%{nb_platform}

%define nb_harness       harness
%define nb_harness_dir   %{nb_home}/%{nb_harness}
%define nb_harness_pkg   %{nb_}-%{nb_platform}-%{nb_harness}
%define nb_ide_ver       9
%define nb_ide           ide%{nb_ide_ver}
%define nb_ide_dir       %{nb_home}/%{nb_ide}
%define nb_ide_pkg       %{nb_}-%{nb_ide}-%{nb_ver}

%define nb_java_ver      2
%define nb_java          java%{nb_java_ver}
%define nb_java_dir      %{nb_home}/%{nb_java}

%define nb_apisupport_ver  1
%define nb_apisupport      apisupport%{nb_apisupport_ver}
%define nb_apisupport_dir  %{nb_home}/%{nb_apisupport}

%define nb_nb            nb%{nb_ver}
%define nb_nb_dir        %{nb_dir}/%{nb_nb}
%define nb_bin_dir       %{nb_dir}/bin
%define nb_etc_dir       %{nb_dir}/etc

%define nb_javadoc_site  http://bits.netbeans.org/%{nb_ver}/javadoc
%define noautoupdate_file .noautoupdate

%define cluster basic

%define nb_icon         %{nb_nb_dir}/netbeans.png
%define nb_launcher     %{nb_bin_dir}/netbeans
%define nb_desktop      %{name}-ide-%{version}.desktop

%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}

# Layout defined by ant-1.7.0-1jpp.4.fc9.rpm
%define ant_bin_dir /usr/bin
%define ant_etc_dir %{_datadir}/ant/etc
%define ant_lib_dir %{_datadir}/java
%define ant_lib_dir2 %{_datadir}/java/ant

# Used xml resolver
%define xml_resolver netbeans-resolver
%define xml_resolver_ver %{nb_ver}
%define xml_resolver_jar %{_javadir}/%{xml_resolver}-%{xml_resolver_ver}.jar

# Used netbeans-svnclientadapter-6.1.jar
%define svnclientadapter     libnb-svnclientadapter
%define svnclientadapter_ver %{nb_ver}
%define svnclientadapter_jar %{_javadir}/libnb-svnClientAdapter-%{svnclientadapter_ver}.jar

Name:           %{nb_}-ide
Version:        %{nb_ver}
Release:        %mkrel 6
Summary:        Integrated Development Environment (IDE)
Group:          Development/Java
License:        GPLv2 with exceptions or CDDL
URL:            http://www.netbeans.org

# Source0: http://download.netbeans.org/netbeans/%{nb_ver}/final/zip/netbeans-%{nb_ver}-%{nb_release_time}-%{cluster}_cluster-src.zip
Source0: http://nbi.netbeans.org/files/documents/210/2056/%{nb_}-%{nb_ver}-%{nb_release_time}-%{cluster}_cluster-src.zip
Source1: %{nb_}-ide-launcher.zip
Source2: %{nb_}-ide.desktop-template
%define nb_desktop_template %{SOURCE2}

Patch0: %{nb_}-%{version}-00-copy-build.patch
Patch1: %{nb_}-%{version}-10-ant-external-build.patch
Patch2: %{nb_}-%{version}-20-ant-build.patch
Patch3: %{nb_}-%{version}-30-parse-project-xml.patch
Patch4: %{nb_}-%{version}-40-build-xml.patch
Patch5: %{nb_}-%{version}-50-ide-launcher.patch
Patch6: %{nb_}-%{version}-60-small-ide-config.patch

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: java-1.6.0 >= 1.6.0
BuildRequires: java-rpmbuild >= 0:1.5
BuildRequires: ant >= 0:1.7.0
BuildRequires: ant-junit >= 0:1.7.0
BuildRequires: ant-nodeps >= 0:1.7.0
BuildRequires: ant-trax >= 0:1.7.0
BuildRequires: junit >= 0:3.8.2
BuildRequires: junit4 >= 0:4.3.1
BuildRequires: swing-layout >= 0:1.0
BuildRequires: javahelp2 >= 2.0.05
# BuildRequires: jna >= 0:3.0.2 It is provided by nb_platform
BuildRequires: %{nb_platform_pkg} >= %{version}
BuildRequires: lucene2 >= 0:2.3.0
BuildRequires: unzip
BuildRequires: desktop-file-utils
BuildRequires: libnb-javaparser = %{version}
BuildRequires: xerces-j2 >= 0:2.8.0
BuildRequires: appframework >= 1.0.3
BuildRequires: beansbinding >= 1.2.1
BuildRequires: freemarker >= 2.3.8
BuildRequires: jsch >= 0.1.24
BuildRequires: %{xml_resolver} >= %{xml_resolver_ver}
BuildRequires: ini4j >= 0.2.6
BuildRequires: libnb-svnclientadapter >= %{version}
BuildRequires: imagemagick

Requires: java >= 0:1.6
# Requires: swing-layout >= 0:1.0
# Requires: javahelp2 >= 2.0.05 It is provided by nb_platform
# Requires: jna >= 0:3.0.2 It is provided by nb_platform
Requires: %{nb_platform_pkg} >= %{version}
Requires: libnb-%{nb_apisupport} >= %{version}
Requires: libnb-%{nb_ide} >= %{version}
Requires: libnb-%{nb_java} >= %{version}
Requires: lucene2 >= 0:2.3.0
Requires: junit >= 0:3.8.2
Requires: junit4 >= 0:4.3.1

%description
Integrated Development Environment (IDE) for Java, C/C++, Ruby, UML, etc.

%package %{nb_apisupport}
Summary: Common NetBeans Platform Development Related Libraries for NetBeans
Group: Development/Java
Requires: %{nb_platform_pkg} >= %{version}
Requires: %{nb_harness_pkg} >= %{version}
Provides: libnb-%{nb_apisupport} = %{version}
Obsoletes: libnb-%{nb_apisupport}
%description %{nb_apisupport}
Common libraries for development of NetBeans Platform modular extensions.

%package %{nb_ide}
Summary: Integrated Development Environment (IDE) Libraries for NetBeans
Group: Development/Java
Requires: %{nb_platform_pkg} >= %{version}
Requires: jsch >= 0.1.24
Requires: %{xml_resolver} >= %{xml_resolver_ver}
Requires: ini4j >= 0.2.6
Requires: freemarker >= 2.3.8
Requires: xerces-j2 >= 0:2.8.0
Requires: netbeans-svnclientadapter >= %{version}
Provides: libnb-%{nb_ide} = %{version}
Obsoletes: libnb-%{nb_ide}
%description %{nb_ide}
Common languages independent libraries for use in the IDE.


%package %{nb_java}
Summary: Common Java Related Libraries for NetBeans
Group: Development/Java
Requires: %{name}-%{nb_ide} >= %{version}
Requires: java >= 1.6.0
Requires: libnb-javaparser = %{version}
Requires: appframework >= 1.0.3
Requires: beansbinding >= 1.2.1
Requires: ant >= 0:1.7.0
Requires: ant-junit >= 0:1.7.0
Requires: ant-nodeps >= 0:1.7.0
Requires: ant-trax >= 0:1.7.0
Provides: libnb-%{nb_java} = %{version}
Obsoletes: libnb-%{nb_java}
%description %{nb_java}
Common libraries for the NetBeans Java IDE.

%prep
%setup -q -c
%setup -q -T -D -a 1

find . -type d -print0 | xargs -t -0 chmod 755
find . -type f -print0 | xargs -t -0 chmod 644
find . -type f \( -iname "*.jar" -o -iname "*.zip" \) -print0 | xargs -t -0 %{__rm} -f

# Generate stub jar file, so there is something in jsr223  module.
%{__mkdir_p} libs.jsr223/src/javax/script
echo "As of Java 6, JSR 223 is included in the JRE." > libs.jsr223/src/javax/script/readme.txt
%{__mkdir_p} libs.jsr223/external
jar cf libs.jsr223/external/jsr223-api.jar libs.jsr223/src/javax/script/readme.txt

# Generate stub jar file, so there is something in swingapp module.
%{__mkdir_p} swingapp/src/javax/swing
echo "As of Java 6, SwingWorker is included in the JRE." > swingapp/src/javax/swing/SwingWorker-readme.txt
%{__mkdir_p} libs.jsr223/external
jar cf swingapp/external/swing-worker-1.1.jar swingapp/src/javax/swing/SwingWorker-readme.txt

# to build the netbeans modules the installed jars will be used instead of pre-packaged ones
# javahelp2.jar is required for the build target "bootstrap" for "JavaHelp indexing".
%{__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} o.apache.tools.ant.module/external/lib
%{__ln_s} -f %{_javadir}/freemarker.jar libs.freemarker/external/freemarker-2.3.8.jar

%patch0 -p1 -b .sav
%patch1 -p1 -b .sav
%patch2 -p1 -b .sav
%patch3 -p1 -b .sav
%patch4 -p1 -b .sav
%patch5 -p1 -b .sav
%patch6 -p1 -b .sav

%build

mkdir -p nbbuild/netbeans
%{__ln_s} -f %{nb_platform_dir} nbbuild/netbeans/%{nb_platform}


IDE_EXT_DIR=nbbuild/netbeans/%{nb_ide}/modules/ext
%{__mkdir_p}  ${IDE_EXT_DIR}
%{__ln_s} -f %{_javadir}/jsch.jar ${IDE_EXT_DIR}/jsch-0.1.24.jar
%{__ln_s} -f %{xml_resolver_jar} ${IDE_EXT_DIR}/resolver-1.2.jar
%{__ln_s} -f %{_javadir}/ini4j.jar  ${IDE_EXT_DIR}/ini4j-0.2.6.jar
# The freemarker 2.2 isn't compatible with 2.3. It means that future versions can be incompatible too.
# Therefore, we must use the freemarker-2.3.jar link instead of freemarker.jar
%{__ln_s} -f %{_javadir}/freemarker.jar  ${IDE_EXT_DIR}/freemarker-2.3.8.jar
%{__ln_s} -f %{svnclientadapter_jar} ${IDE_EXT_DIR}/svnClientAdapter-0.9.23.jar
%{__ln_s} -f %{_javadir}/xerces-j2.jar  ${IDE_EXT_DIR}/xerces-2.8.0.jar
%{__ln_s} -f %{_javadir}/lucene2.jar  ${IDE_EXT_DIR}/lucene-core-2.2.0.jar
%{__ln_s} -f %{_javadir}/commons-logging.jar ${IDE_EXT_DIR}/commons-logging-1.0.4.jar

JAVA_EXT_DIR=nbbuild/netbeans/%{nb_java}/modules/ext
%{__mkdir_p}  ${JAVA_EXT_DIR}
%{__ln_s} -f %{_javadir}/libnb-javaparser-api-6.1.jar ${JAVA_EXT_DIR}/javac-api-nb-7.0-b07.jar
%{__ln_s} -f %{_javadir}/libnb-javaparser-impl-6.1.jar ${JAVA_EXT_DIR}/javac-impl-nb-7.0-b07.jar
#In JRE!!! %{__ln_s} -f %{_javadir}/swing-worker.jar ${JAVA_EXT_DIR}/swing-worker-1.1.jar
%{__ln_s} -f %{_javadir}/appframework.jar ${JAVA_EXT_DIR}/appframework-1.0.3.jar
%{__ln_s} -f %{_javadir}/beansbinding.jar ${JAVA_EXT_DIR}/beansbinding-1.2.1.jar
%{__ln_s} -f %{_javadir}/junit4.jar ${JAVA_EXT_DIR}/junit-4.1.jar
%{__ln_s} -f %{_javadir}/junit.jar ${JAVA_EXT_DIR}/junit-3.8.2.jar

%{ant_nb_opt} \
    -Do.n.core.dir=%{nb_platform_dir} \
    -Dnb.cluster.platform-is-built=true \
    -Dnb.cluster.harness-is-built=true \
    -Dcore.dir=%{nb_platform_dir} \
    -Do.n.bootstrap.dir=%{nb_platform_dir} \
    -Dopenide.awt.dir=%{nb_platform_dir} \
    -Dlibs.beans-binding.classpath=%{_javadir}/beansbinding.jar \
    -Dlibs.swing-layout.classpath=%{_javadir}/swing-layout.jar \
    -Dcluster.config=basic \
    -f nbbuild/build.xml build-nozip

# Build desktop file
%{__cp} -p %{nb_desktop_template} %{nb_desktop}
sed --in-place "s|<nb_ver>|%{nb_ver}|g" %{nb_desktop}
sed --in-place "s|<nb_icon>|%{nb_icon}|g" %{nb_desktop}
sed --in-place "s|<nb_launcher>|%{nb_launcher}|g" %{nb_desktop}

%install

# Installs the specified source(s) in the destination directory.
# $1 the destination directory.
# $2 the source(s), e.g. nbbuild/netbeans/platform8/* .
install_package() {
    DISTDIR=$1
    shift
    SOURCES=$*
    %{__mkdir_p} ${DISTDIR}
    %{__cp} -pr ${SOURCES} ${DISTDIR}
}

# Prevents use of autoupdate on the specified directory.
# $1 the directory being prevented for autoupdate.
noautoupdate() {
    echo > $1/%{noautoupdate_file}
}

%{__rm} -rf $RPM_BUILD_ROOT

# Install apisupport
install_package $RPM_BUILD_ROOT%{nb_apisupport_dir} nbbuild/netbeans/%{nb_apisupport}/*
noautoupdate $RPM_BUILD_ROOT%{nb_apisupport_dir}

# Install ide
install_package $RPM_BUILD_ROOT%{nb_ide_dir} nbbuild/netbeans/%{nb_ide}/*
noautoupdate $RPM_BUILD_ROOT%{nb_ide_dir}

# Install java
install_package $RPM_BUILD_ROOT%{nb_java_dir} nbbuild/netbeans/%{nb_java}/*
noautoupdate $RPM_BUILD_ROOT%{nb_java_dir}
# install java ant
install -d -m 755 $RPM_BUILD_ROOT%{nb_java_dir}/ant/bin
%{__ln_s} -f %{ant_bin_dir}/ant $RPM_BUILD_ROOT%{nb_java_dir}/ant/bin/ant
%{__ln_s} -f %{ant_bin_dir}/antRun $RPM_BUILD_ROOT%{nb_java_dir}/ant/bin/antRun
%{__ln_s} -f %{ant_etc_dir} $RPM_BUILD_ROOT%{nb_java_dir}/ant/etc
install -d -m 755 $RPM_BUILD_ROOT%{nb_java_dir}/ant/lib
%{__ln_s} -f %{ant_lib_dir}/ant.jar $RPM_BUILD_ROOT%{nb_java_dir}/ant/lib/ant.jar
%{__ln_s} -f %{ant_lib_dir}/ant-launcher.jar $RPM_BUILD_ROOT%{nb_java_dir}/ant/lib/ant-launcher.jar
%{__ln_s} -f %{ant_lib_dir2}/ant-junit.jar $RPM_BUILD_ROOT%{nb_java_dir}/ant/lib/ant-junit.jar
%{__ln_s} -f %{ant_lib_dir2}/ant-nodeps.jar $RPM_BUILD_ROOT%{nb_java_dir}/ant/lib/ant-nodeps.jar
%{__ln_s} -f %{ant_lib_dir2}/ant-trax.jar $RPM_BUILD_ROOT%{nb_java_dir}/ant/lib/ant-trax.jar


# Install nb
install_package $RPM_BUILD_ROOT%{nb_nb_dir} nbbuild/netbeans/%{nb_nb}/*
noautoupdate $RPM_BUILD_ROOT%{nb_nb_dir}
echo NBMDV >$RPM_BUILD_ROOT%{nb_nb_dir}/config/productid
# install nb bin (launcher)
install_package $RPM_BUILD_ROOT%{nb_bin_dir} nbbuild/netbeans/bin/*
# install nb htmls
%{__cp} -p nbbuild/netbeans/CREDITS.html $RPM_BUILD_ROOT%{nb_dir}/
%{__cp} -p nbbuild/netbeans/README.html $RPM_BUILD_ROOT%{nb_dir}/
%{__cp} -p nbbuild/netbeans/netbeans.css $RPM_BUILD_ROOT%{nb_dir}/
# Links to nb components
%{__ln_s} %{nb_harness_dir} $RPM_BUILD_ROOT%{nb_dir}/%{nb_harness}
%{__ln_s} %{nb_apisupport_dir} $RPM_BUILD_ROOT%{nb_dir}/%{nb_apisupport}
%{__ln_s} %{nb_ide_dir} $RPM_BUILD_ROOT%{nb_dir}/%{nb_ide}
%{__ln_s} %{nb_java_dir} $RPM_BUILD_ROOT%{nb_dir}/%{nb_java}
%{__ln_s} %{nb_platform_dir} $RPM_BUILD_ROOT%{nb_dir}/%{nb_platform}

# Install accesible link to the launcher
%{__mkdir_p} ${RPM_BUILD_ROOT}%{_bindir}
%{__ln_s} %{nb_launcher} ${RPM_BUILD_ROOT}%{_bindir}/netbeans
%{__mkdir_p} ${RPM_BUILD_ROOT}%{_sysconfdir}
%{__cp} nbbuild/netbeans/etc/netbeans* ${RPM_BUILD_ROOT}%{_sysconfdir}
%{__mkdir_p} $RPM_BUILD_ROOT%{nb_etc_dir}
%{__ln_s} %{_sysconfdir}/netbeans.conf $RPM_BUILD_ROOT%{nb_etc_dir}/netbeans.conf
%{__ln_s} %{_sysconfdir}/netbeans.clusters $RPM_BUILD_ROOT%{nb_etc_dir}/netbeans.clusters

# Install desktop file
desktop-file-validate  %{nb_desktop}
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/applications/%{nb_org}
desktop-file-install --vendor="" \
    --dir=$RPM_BUILD_ROOT%{_datadir}/applications/%{nb_org} \
    %{nb_desktop}

install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps
%{_bindir}/convert -resize 48x48 ide.branding/release/netbeans.png \
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps/netbeans.png
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps
%{_bindir}/convert -resize 32x32 ide.branding/release/netbeans.png \
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/netbeans.png
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps
%{_bindir}/convert -resize 16x16 ide.branding/release/netbeans.png \
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps/netbeans.png
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/pixmaps
ln -s %{_datadir}/icons/hicolor/48x48/apps/netbeans.png $RPM_BUILD_ROOT%{_datadir}/pixmaps

%clean
%{__rm} -rf $RPM_BUILD_ROOT

%post
%{update_desktop_database}
%update_icon_cache hicolor

%postun 
%{update_desktop_database}
%update_icon_cache hicolor

%files
%defattr(644,root,root,755)
%dir %{nb_dir}/
%{nb_dir}/
%docdir %{nb_nb_dir}/docs
%dir %{nb_bin_dir}/
%attr(755,root,root) %{nb_launcher}
%{nb_etc_dir}/
%{_sysconfdir}/netbeans.conf
%{_sysconfdir}/netbeans.clusters
%doc %{nb_dir}/CREDITS.html
%doc %{nb_dir}/README.html
%{nb_dir}/netbeans.css
%{_bindir}/netbeans
%dir %{_datadir}/applications/%{nb_org}/
%{_datadir}/applications/%{nb_org}/%{nb_desktop}
%{_datadir}/pixmaps/*
%{_datadir}/icons/*/*/apps/*

%files %{nb_apisupport}
%defattr(644,root,root,755)
%{nb_apisupport_dir}/

%files %{nb_ide}
%defattr(644,root,root,755)
%{nb_ide_dir}/

%files %{nb_java}
%defattr(644,root,root,755)
%{nb_java_dir}/


%changelog
* Mon Sep 15 2008 Thierry Vignaud <tvignaud@mandriva.com> 6.1-6mdv2009.0
+ Revision: 284944
- rebuild for libnb-platform8

* Fri Aug 15 2008 Alexander Kurtakov <akurtakov@mandriva.org> 6.1-4mdv2009.0
+ Revision: 272427
- relax java requires

* Thu Aug 14 2008 Jaroslav Tulach <jtulach@mandriva.org> 6.1-1mdv2009.0
+ Revision: 271897
- Updating to version 6.1 by backporting Fedora's package

  + Thierry Vignaud <tvignaud@mandriva.com>
    - rebuild

* Tue Mar 11 2008 Alexander Kurtakov <akurtakov@mandriva.org> 0:6.0-8mdv2008.1
+ Revision: 186546
- add desktop-file-utils BR
- really add the desktop file
- add desktop file and icons

* Sun Feb 24 2008 Jaroslav Tulach <jtulach@mandriva.org> 0:6.0-7mdv2008.1
+ Revision: 174447
- Fixing broken junit support

* Wed Jan 16 2008 Jaroslav Tulach <jtulach@mandriva.org> 0:6.0-6mdv2008.1
+ Revision: 153647
- Alexander Kurtakov suggested to put NetBeans into /usr/share, as that will prevent unneeded differences between 32 and 64-bit architectures
- Suppressing additional license check on startup, as this is GPL or CDDL code only package
- Adding also apisupport cluster, so the development of modular NetBeans extensions is supported out of the box

* Wed Jan 02 2008 Jaroslav Tulach <jtulach@mandriva.org> 0:6.0-4mdv2008.1
+ Revision: 140640
- Simlinking default installation of ant, so NetBeans can find it and use it

* Wed Jan 02 2008 Jaroslav Tulach <jtulach@mandriva.org> 0:6.0-2mdv2008.1
+ Revision: 140349
- netbeans-ide now requires presence of ide and java clusters

* Wed Dec 26 2007 Jaroslav Tulach <jtulach@mandriva.org> 0:6.0-0mdv2008.1
+ Revision: 137909
- create netbeans-ide