%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