Sophie

Sophie

distrib > Mageia > 3 > x86_64 > media > core-release-src > by-pkgid > 1a20356f1fe902b4741090d0fceae855 > files > 11

netbeans-7.0.1-3.mga2.src.rpm

# Prevent brp-java-repack-jars from being run.
%define __jar_repack %{nil}

%define __alternatives %{_sbindir}/alternatives

%define with_java7 1

%define nb_              netbeans
%define nb_org           %{nb_}.org


%define nb_ver_major     7.0
%define nb_bugfix_ver    1
%define nb_ver           %{nb_ver_major}.%{nb_bugfix_ver}

%define nb_alt_priority  701
%define nb_release_time  201107282000
%define nb_home          %{_datadir}/%{nb_}
%define nb_dir           %{nb_home}/%{nb_ver_major}
%define nb_legaldoc_dir  ide.branding/release-toplevel
%define nb_license       %{nb_legaldoc_dir}/LICENSE.txt

%define nb_platform_ver  13
%define nb_platform      platform
%define nb_platform_dir  %{nb_home}/%{nb_platform}%{nb_platform_ver}
%define nb_platform_pkg  %{nb_}-platform
%define nb_platform_vpkg %{nb_}-%{nb_platform}%{nb_platform_ver}

%define nb_harness       harness
%define nb_harness_dir   %{nb_home}/%{nb_harness}
%define nb_harness_pkg   %{nb_platform_pkg}-%{nb_harness}

%define nb_ide_ver       14
%define nb_ide           ide
%define nb_ide_dir       %{nb_home}/%{nb_ide}%{nb_ide_ver}
%define nb_ide_pkg       %{nb_}-%{nb_ide}
%define nb_ide_vpkg      %{nb_}-%{nb_ide}%{nb_ide_ver}

%define nb_java_ver      5
%define nb_java          java
%define nb_java_dir      %{nb_home}/%{nb_java}%{nb_java_ver}
%define nb_java_pkg      %{nb_}-%{nb_java}
%define nb_java_vpkg     %{nb_}-%{nb_java}%{nb_java_ver}

%define nb_apisupport_ver  3
%define nb_apisupport      apisupport
%define nb_apisupport_dir  %{nb_home}/%{nb_apisupport}%{nb_apisupport_ver}
%define nb_apisupport_pkg  %{nb_}-%{nb_apisupport}
%define nb_apisupport_vpkg %{nb_}-%{nb_apisupport}%{nb_apisupport_ver}

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

%define nb_cvsclient        cvsclient
%define nb_cvsclient_pkg    %{nb_}-%{nb_cvsclient}
%define nb_cvsclient_jar    org-netbeans-lib-cvsclient.jar
%define nb_cvsclient_dir    %{nb_ide_dir}/modules
#define nb_cvsclient_sysjar netbeans-cvsclient-%{nb_ver}.jar
%define nb_cvsclient_sysjar netbeans-cvsclient-6.9.jar
%define nb_cvsclient_sysln  netbeans-cvsclient.jar

# See http://wiki.netbeans.org/NBDistroIDs
%define nb_distro_id NBFC

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

%define cluster base

%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
%if %with_java7
%define jdk_opt         -Dpermit.jdk6.builds=true -Dpermit.jdk7.builds=true
%else
%define jdk_opt         -Dpermit.jdk6.builds=true
%endif
%define verify_opt      -Dverify.checkout=false
# Note: use the Ant option -v to get build log with details
%define ant_nb_opt %{ant} %{jdk_opt} %{compiler_opt} %{verify_opt}
%define build_nb_dir nbbuild/netbeans

# Layout defined by the ant package
%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 6.7.1
%define xml_resolver_jar %{xml_resolver}-%{xml_resolver_ver}.jar

# Used svn client adapter
%define svnclientadapter     netbeans-svnclientadapter
%define svnclientadapter_ver 6.7.1
%define svnclientadapter_jar %{svnclientadapter}.jar

%define javaparser_ver 7.0.1

# existing commons-logging-1.0.4.jar instead of required commons-logging-1.1.jar
%define commons_logging_ver 1.1

# existing ini4j-0.3.2.jar instead of required ini4j-0.4.1.jar
%define ini4j_ver 0.5.1

%define svnjavahl_ver 1.6.0

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

# Creates the time stamp of the last modification for the NetBeans cluster.
# See:
# %%{nb_javadoc_site}/org-netbeans-bootstrap/overview-summary.html#java.io.File-.lastModified
#
# %%{1} the directory of the NetBeans cluster.
%define lastModified()  echo > %{1}/.lastModified

# Creates artifacts of the NetBeans cluster.
# %%{1} the directory of the NetBeans cluster.
%define nbCluster() \
  %{expand:%%noautoupdate %{1}} ; %{expand:%%lastModified %{1}} ;

# Links the system JAR.
# %%{1} - the sys jar
# %%{2} - the symlink name/path (optional)
%global lnSysJAR() \
  if [ -f %{_javadir}/%{1} ] ; then \
    %__ln_s -f %{_javadir}/%{*} ; \
  else \
    echo "%{1} doesn't exist." ; exit 1 ; \
  fi ;

# Links the system JAR.
# %%{1} - the sys jar
# %%{2} - the symlink name/path (optional)
%global lnSys() \
  if [ -f %{1} ] ; then \
    %__ln_s -f %{*} ; \
  else \
    echo "%{1} doesn't exist." ; exit 1 ; \
  fi ;

%global rm_files_log ./rmFiles.lst

# Removes all specified files, and creates the file rmFiles.lst.
# %%{1} - the iname value, e.g. "*.zip"
%global rmFiles() \
  find . -type f \\( -iname %{1} \\) | \
  tee -a %{rm_files_log} | xargs -t %__rm -f ;

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

# Officially released zip is used:
Source0: http://download.netbeans.org/%{nb_}/%{version}/final/zip/%{nb_}-%{version}-%{nb_release_time}-src.zip

Source1: %{name}-ide.desktop-template
%define nb_desktop_template %{SOURCE1}
Source2:        http://bits.netbeans.org/maven2/org/netbeans/api/org-netbeans-lib-cvsclient/RELEASE701/org-netbeans-lib-cvsclient-RELEASE701.pom

# Do not relese binary files
Patch0:         do-not-release-external-jars.patch
# create a smaller netbeans cluster
Patch1:         smaller-netbeans.patch
Patch2:         remove-dependencies-on-unbuilt-clusters.patch
# do not distribute non-linux bits
Patch3:         only-linux-native-libs.patch
# do not distribute windows launchers
Patch4:         no-windows-exec.patch
Patch5:         do-not-copy-windows-launcher.patch
Patch6:         no-windows-binaries.patch
# compat with newer mylyn
Patch7:         mylyn-internal-api-changes.patch
# compat with java-1.7.0-openjdk
Patch8:         db-jdk7-compat.patch
# no ant-libs
Patch9:         no-ant-libs.patch
# no -werror
Patch10:        werror-is-a-bad-idea.patch
# compatibility with netbeans-javaparser 
Patch11:        netbeans-javaparser-7.0.1-compat.patch
# changes to the launcher
Patch12:        ide-launcher.patch
# add missing xml apis to classpath
# fix for https://bugzilla.redhat.com/show_bug.cgi?id=670303
Patch13:        add-xml-commons-apis-to-classpath.patch
Patch14:        svn-support.patch

Patch15:        netbeans-7.0.1-00-updatecenters.patch

BuildArch: noarch

BuildRequires: jpackage-utils
BuildRequires: java-devel >= 0:1.6.0

BuildRequires: ant >= 0:1.7.0
BuildRequires: ant-junit >= 0:1.7.0
BuildRequires: antlr3-java
BuildRequires: apache-commons-codec
BuildRequires: appframework >= 1.03
BuildRequires: beansbinding >= 1.2.1
BuildRequires: bindex >= 2.2
BuildRequires: bytelist
BuildRequires: desktop-file-utils
BuildRequires: eclipse-mylyn
BuildRequires: eclipse-mylyn-commons
BuildRequires: eclipse-mylyn-tasks-bugzilla
BuildRequires: eclipse-subclipse
BuildRequires: felix-osgi-core >= 1.4.0
BuildRequires: felix-osgi-compendium >= 1.4.0
BuildRequires: felix-main >= 1.4.0
BuildRequires: flute
BuildRequires: freemarker >= 2.3.8
BuildRequires: ini4j
BuildRequires: jakarta-commons-logging >= 1.0.4
BuildRequires: jakarta-oro >= 2.0.8
BuildRequires: jakarta-commons-net >= 1.4.1
BuildRequires: javahelp2 >= 2.0.05
BuildRequires: jna >= 3.0.9
BuildRequires: jna-contrib
BuildRequires: jsch
BuildRequires: junit >= 3.8.2
BuildRequires: junit4 >= 4.5
BuildRequires: jvyamlb
BuildRequires: jzlib
BuildRequires: libicns-utils
BuildRequires: lucene >= 2.4.1
BuildRequires: netbeans-javaparser >= %{javaparser_ver}
BuildRequires: netbeans-svnclientadapter >= %{svnclientadapter_ver}
#BuildRequires: %{nb_harness_pkg}   >= %{version}
#BuildRequires: %{nb_platform_vpkg} >= %{version}
BuildRequires: sac
BuildRequires: simplevalidation
BuildRequires: stringtemplate
BuildRequires: svn-javahl
BuildRequires: swing-layout >= 0:1.0
BuildRequires: swingx
BuildRequires: unzip
BuildRequires: xerces-j2 >= 2.7.1
BuildRequires: %{xml_resolver} >= %{xml_resolver_ver}
BuildRequires: jemmy

Requires: jpackage-utils
Requires: java >= 0:1.6.0
Requires: %{nb_apisupport_vpkg} >= %{version}
Requires: %{nb_harness_pkg}     >= %{version}
Requires: %{nb_ide_vpkg}        >= %{version}
Requires: %{nb_java_vpkg}       >= %{version}
Requires: %{nb_platform_vpkg}   >= %{version}
Requires: lucene >= 2.4.1
Requires: junit >= 3.8.2
Requires: junit4 >= 4.5

%description
NetBeans IDE is an Integrated Development Environment (IDE) for Java/JavaFX, 
C/C++, Ruby, PHP, etc. The NetBeans IDE is oriented on wide audience of 
developers from beginners up to experts. A developer can find useful set of 
the development tools that are embedded in the IDE or can be integrated with. 
The NetBeans IDE is the modular system and it can be configured according to 
user needs. Please, visit http://www.netbeans.org/ for more information about 
this open-source project.


%package %{nb_apisupport}

Summary: Common NetBeans Platform Development Related Libraries for NetBeans
Group: Development/Java 
Requires: jpackage-utils
Requires: java >= 0:1.6.0
Requires: %{nb_ide_vpkg}      >= %{version}
Requires: %{nb_java_vpkg}     >= %{version}
Requires: %{nb_platform_vpkg} >= %{version}
Requires: %{nb_harness_pkg}   >= %{version}

Provides: %{nb_apisupport_vpkg} = %{version}-%{release}

%description %{nb_apisupport}
The NetBeans appisupport cluster, version %{nb_apisupport_ver}.
Common libraries for development of NetBeans Platform modular extensions.


%package %{nb_ide}

Summary: Integrated Development Environment (IDE) Libraries for NetBeans
Group: Development/Java 
Requires: jpackage-utils
Requires: java >= 0:1.6.0


Requires: antlr3-java
Requires: bytelist
Requires: flute
Requires: freemarker >= 2.3.8
Requires: ini4j
Requires: jakarta-commons-logging >= 1.0.4
Requires: jakarta-commons-net >= 1.4.1
Requires: jakarta-oro >= 2.0.8
Requires: jsch
Requires: jvyamlb
Requires: jzlib
# A requirement for an owner of the /usr/share/netbeans directory
Requires: netbeans-svnclientadapter >= %{svnclientadapter_ver}
Requires: %{nb_cvsclient_pkg} >= %{version}
Requires: sac
Requires: subversion-javahl
Requires: swingx
Requires: xerces-j2 >= 2.7.1
Requires: %{xml_resolver} >= %{xml_resolver_ver}
Requires: %{nb_platform_vpkg} >= %{version}

Provides: %{nb_ide_vpkg} = %{version}-%{release}

%description %{nb_ide}
The NetBeans ide cluster, version %{nb_ide_ver}.
Common languages independent libraries for use in the IDE.


%package %{nb_java}

Summary: Common Java Related Libraries for NetBeans
Group: Development/Java 
Requires: jpackage-utils
Requires: java >= 0:1.6.0
Requires: java-sdk >= 0:1.6.0
Requires: java-javadoc >= 0:1.6.0

Requires: ant >= 1.7.0
Requires: ant-junit >= 1.7.0
Requires: ant-nodeps >= 1.7.0
Requires: ant-trax >= 1.7.0
Requires: appframework >= 1.03
Requires: beansbinding >= 1.2.1
Requires: netbeans-javaparser >= %{javaparser_ver}
Requires: %{nb_ide_vpkg} >= %{version}
# A requirement for an owner of the /usr/share/netbeans directory
Requires: %{nb_platform_vpkg} >= %{version}

Provides: %{nb_java_vpkg} = %{version}-%{release}

%description %{nb_java}
The NetBeans java cluster, version %{nb_java_ver}.
Common libraries for the NetBeans Java IDE.


%package %{nb_cvsclient}

Summary: NetBeans CVS Client Library
Group: Development/Java 
Requires: jpackage-utils
Requires: java >= 0:1.6.0

%description %{nb_cvsclient}
Implementation of the client side of CVS server connection. 
Local connections are not supported.

%prep
%setup -q -c

# delete binaries shipped with netbeans
%rmFiles "binaries-list"
%rmFiles "*.dll"
%rmFiles "*.exe"
%rmFiles "*.jar"
%rmFiles "*.ser"
%rmFiles "*.so"
%rmFiles "*.zip"
rm -rf dlight.nativeexecution/release


%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1

%build

#ln -sf %{_javadir} o.apache.tools.ant.module/external/lib

IDE_EXT_DIR=%{build_nb_dir}/%{nb_ide}/modules/ext
%{__mkdir_p} ${IDE_EXT_DIR}
%lnSysJAR %{xml_resolver_jar} ${IDE_EXT_DIR}/resolver-1.2.jar
%lnSysJAR ValidationAPI.jar ${IDE_EXT_DIR}/ValidationAPI.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
%lnSysJAR antlr3-runtime.jar ${IDE_EXT_DIR}/antlr-runtime-3.1.3.jar
%lnSysJAR flute.jar ${IDE_EXT_DIR}/flute-1.3.jar
%lnSysJAR freemarker.jar  ${IDE_EXT_DIR}/freemarker-2.3.8.jar
%lnSysJAR %{svnclientadapter_jar} ${IDE_EXT_DIR}/svnClientAdapter-1.6.13.jar
%lnSysJAR xerces-j2.jar  ${IDE_EXT_DIR}/xerces-2.8.0.jar
%lnSysJAR commons-logging.jar ${IDE_EXT_DIR}/commons-logging-%{commons_logging_ver}.jar
%lnSysJAR jakarta-oro.jar ${IDE_EXT_DIR}/jakarta-oro-2.0.8.jar
%lnSysJAR commons-net.jar ${IDE_EXT_DIR}/commons-net-1.4.1.jar
%lnSysJAR jzlib.jar ${IDE_EXT_DIR}/jzlib-1.0.7.jar
%lnSysJAR bytelist.jar ${IDE_EXT_DIR}/bytelist-0.1.jar
%lnSysJAR jvyamlb.jar ${IDE_EXT_DIR}/jvyamlb-0.2.3.jar
%lnSysJAR sac.jar ${IDE_EXT_DIR}/sac-1.3.jar
%lnSysJAR svn-javahl.jar  ${IDE_EXT_DIR}/svnjavahl-%{svnjavahl_ver}.jar
%lnSysJAR swingx.jar ${IDE_EXT_DIR}/swingx-0.9.5.jar

JAVA_EXT_DIR=%{build_nb_dir}/%{nb_java}/modules/ext
%{__mkdir_p} ${JAVA_EXT_DIR}
%lnSysJAR netbeans-javaparser-api.jar ${JAVA_EXT_DIR}/javac-api-nb-7.0-b07.jar
%lnSysJAR netbeans-javaparser-impl.jar ${JAVA_EXT_DIR}/javac-impl-nb-7.0-b07.jar
%lnSysJAR appframework.jar ${JAVA_EXT_DIR}/appframework-1.0.3.jar
%lnSysJAR beansbinding.jar ${JAVA_EXT_DIR}/beansbinding-1.2.1.jar
%lnSysJAR junit.jar ${JAVA_EXT_DIR}/junit-3.8.2.jar
%lnSysJAR junit4.jar ${JAVA_EXT_DIR}/junit-4.5.jar

# To build the netbeans modules the installed jars will be used instead of pre-packaged ones
%{__mkdir_p} apisupport.harness/external
%lnSysJAR apache-commons-codec.jar libs.commons_codec/external/apache-commons-codec-1.3.jar
%lnSysJAR commons-httpclient.jar libs.bugtracking/external/commons-httpclient-3.1.jar
%lnSysJAR commons-lang.jar libs.bugtracking/external/commons-lang-2.3.jar
%lnSysJAR commons-logging.jar libs.commons_logging/external/commons-logging-1.1.jar
%lnSysJAR bindex.jar apisupport.harness/external/bindex-2.2.jar
%lnSys %{_datadir}/eclipse/dropins/mylyn/eclipse/plugins/org.eclipse.mylyn.tasks.core_3.6.0.v20110608-1400.jar libs.bugtracking/external/org.eclipse.mylyn.tasks.core_3.3.1.jar
%lnSys %{_datadir}/eclipse/dropins/mylyn/eclipse/plugins/org.eclipse.mylyn.tasks.core_3.6.0.v20110608-1400.jar libs.bugtracking/external/org.eclipse.mylyn.commons.core_3.3.1.jar
%lnSys %{_datadir}/eclipse/dropins/mylyn-commons/eclipse/plugins/org.eclipse.mylyn.commons.net_3.6.0.v20110608-1400.jar libs.bugtracking/external/org.eclipse.mylyn.commons.net_3.3.0.jar
%lnSys %{_datadir}/eclipse/dropins/mylyn-bugzilla/eclipse/plugins/org.eclipse.mylyn.bugzilla.core_3.6.0.v20110608-1400.jar libs.bugzilla/external/org.eclipse.mylyn.bugzilla.core_3.3.1.jar
#%lnSys %{_datadir}/eclipse/dropins/subclipse-clientadapter/eclipse/plugins/org.tigris.subversion.clientadapter_1.6.12.jar libs.svnClientAdapter/external/svnClientAdapter-main-1.6.13.jar
%lnSysJAR felix/org.osgi.core.jar libs.osgi/external/osgi.core-4.2.jar
%lnSysJAR felix/org.osgi.compendium.jar libs.osgi/external/osgi.cmpn-4.2.jar
%lnSysJAR javahelp2.jar apisupport.harness/external/jsearch-2.0_05.jar
%lnSysJAR javahelp2.jar javahelp/external/jhall-2.0_05.jar
%lnSysJAR lucene.jar libs.lucene/external/lucene-core-3.0.3.jar
%lnSysJAR ini4j.jar libs.ini4j/external/ini4j-0.5.1.jar
%lnSysJAR javahelp2.jar javahelp/external/jhall-2.0_05.jar
%lnSysJAR jemmy.jar jemmy/external/jemmy-2.3.0.0.jar
%lnSysJAR jna.jar libs.jna/external/jna-3.2.7.jar
%lnSysJAR jna/platform.jar core.nativeaccess/external/platform-3.2.7.jar
%lnSysJAR jsch.jar libs.jsch/external/jsch-0.1.44.jar
%lnSysJAR junit4.jar libs.junit4/external/junit-4.8.2.jar
%lnSysJAR netbeans-javaparser-api.jar libs.javacapi/external/javac-api-nb-7.0-b07.jar
%lnSysJAR netbeans-javaparser-impl.jar libs.javacimpl/external/javac-impl-nb-7.0-b07.jar
%lnSysJAR netbeans-svnclientadapter.jar libs.svnClientAdapter.javahl/external/svnClientAdapter-1.6.13.jar
%lnSysJAR swing-layout.jar o.jdesktop.layout/external/swing-layout-1.0.4.jar

#
# HACK. We build all of netbeans (including platform/harness), but we do not
# install platform or harness. Use the separate netbeans-platform package
# instead.
#

# build netbeans
%{ant_nb_opt} \
-Dlibs.beans-binding.classpath=%{_javadir}/beansbinding.jar \
-Dext.binaries.downloaded=true \
-Dcluster.config=basic \
-f nbbuild/build.xml build-nozip

# Generate higher quality png icons
icns2png -x ide.branding/release/netbeans.icns

# 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_launcher>|%{nb_launcher}|g" %{nb_desktop}
sed --in-place "s|<nb_icon>|%{nb_}|g" %{nb_desktop}

rm -f %{build_nb_dir}/%{nb_harness}/suite.xml.orig

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

%{__rm} -rf %{buildroot}

# Install apisupport
install_package %{buildroot}%{nb_apisupport_dir} %{build_nb_dir}/%{nb_apisupport}/*
%nbCluster %{buildroot}%{nb_apisupport_dir}

# Install ide
install_package %{buildroot}%{nb_ide_dir} %{build_nb_dir}/%{nb_ide}/*
%nbCluster %{buildroot}%{nb_ide_dir}

# linking the ide to the external JARs
pushd %{buildroot}%{nb_ide_dir}/modules/ext
#  %lnSysJAR jsch.jar jsch-0.1.41.jar
#  %lnSysJAR %{xml_resolver_jar} resolver-1.2.jar
#  %lnSysJAR ini4j.jar ini4j-%{ini4j_ver}.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
#  %lnSysJAR freemarker.jar freemarker-2.3.8.jar
#  %lnSysJAR %{svnclientadapter_jar} svnClientAdapter-1.6.0.jar
#  %lnSysJAR svn-javahl.jar svnjavahl-%{svnjavahl_ver}.jar
#  %lnSysJAR xerces-j2.jar xerces-2.8.0.jar
#  %lnSysJAR lucene.jar lucene-core-2.4.1.jar
#  %lnSysJAR commons-logging.jar commons-logging-%{commons_logging_ver}.jar
#  %lnSysJAR jakarta-oro.jar jakarta-oro-2.0.8.jar
#  %lnSysJAR jzlib.jar jzlib-1.0.7.jar
#  %lnSysJAR bytelist.jar bytelist-0.1.jar
#  %lnSysJAR jvyamlb.jar jvyamlb-0.2.3.jar
#  %lnSysJAR swingx.jar swingx-0.2.3.jar
popd

# Install cvsclient (extract from ide)

install -d -m 0755 %{buildroot}%{_javadir}
# jar
install -m 644 %{buildroot}%{nb_cvsclient_dir}/%{nb_cvsclient_jar} \
               %{buildroot}%{_javadir}/%{nb_cvsclient_sysjar}
# versionless link to the system jar
(cd %{buildroot}%{_javadir} && \
 %__ln_s %{nb_cvsclient_sysjar} %{nb_cvsclient_sysln})
# linking the ide to the system jar
(cd %{buildroot}%{nb_cvsclient_dir} && \
 %__ln_s -f %{_javadir}/%{nb_cvsclient_sysjar} %{nb_cvsclient_jar})

# Install java
install_package %{buildroot}%{nb_java_dir} %{build_nb_dir}/%{nb_java}/*
# install java ant
install -d -m 755 %{buildroot}%{nb_java_dir}/ant/bin
install -d -m 755 %{buildroot}%{nb_java_dir}/ant/lib
%nbCluster %{buildroot}%{nb_java_dir}

# "linking" Java API javadoc
%define nb_java_cSP_dir %{nb_java_dir}/config/Services/Platforms
%define JDK_ver 1.6
%{__mkdir_p} %{buildroot}%{nb_java_cSP_dir}/org-netbeans-api-java-Platform/
cat <<KONEC >%{buildroot}%{nb_java_cSP_dir}/org-netbeans-api-java-Platform/default_platform.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE platform PUBLIC "-//NetBeans//DTD Java PlatformDefinition 1.0//EN"
                          "http://www.netbeans.org/dtds/java-platformdefinition-1_0.dtd">
<platform default="yes" name="JDK %{JDK_ver} (Default)">
    <properties>
        <property name="platform.ant.name" value="default_platform"/>
    </properties>
    <javadoc>
        <resource>file:/usr/share/javadoc/java/</resource>
    </javadoc>
</platform>
KONEC


# linking the java to the external JARs
#pushd %{buildroot}%{nb_java_dir}/modules/ext
#  %lnSysJAR netbeans-javaparser-api.jar javac-api-nb-7.0-b07.jar
#  %lnSysJAR netbeans-javaparser-impl.jar javac-impl-nb-7.0-b07.jar
#  %lnSysJAR appframework.jar appframework-1.0.3.jar
#  %lnSysJAR beansbinding.jar beansbinding-1.2.1.jar
#  %lnSysJAR junit4.jar junit-4.5.jar
#  %lnSysJAR junit.jar junit-3.8.2.jar
#popd

# linking the Ant components
pushd %{buildroot}%{nb_java_dir}/ant
  %{__ln_s} -f %{ant_bin_dir}/ant bin/ant
  %{__ln_s} -f %{ant_bin_dir}/antRun bin/antRun
  %{__ln_s} -f %{ant_etc_dir} etc
# - jars
  pushd lib
    %{__ln_s} -f %{ant_lib_dir}/ant.jar ant.jar
    %{__ln_s} -f %{ant_lib_dir}/ant-launcher.jar ant-launcher.jar
    %{__ln_s} -f %{ant_lib_dir2}/ant-junit.jar ant-junit.jar
    %{__ln_s} -f %{ant_lib_dir2}/ant-nodeps.jar ant-nodeps.jar
#    %{__ln_s} -f %{ant_lib_dir2}/ant-trax.jar ant-trax.jar
  popd
popd

# Install nb
install_package %{buildroot}%{nb_nb_dir} %{build_nb_dir}/%{nb_nb}/*
# install nb bin (launcher)
install_package %{buildroot}%{nb_bin_dir} %{build_nb_dir}/bin/*
# install nb etc (netbeans.conf, netbeans.clusters)
install_package %{buildroot}%{nb_etc_dir} %{build_nb_dir}/etc/*
# inistall nb/nbX.X config
echo -n "%{nb_distro_id}" > %{buildroot}%{nb_nb_config_dir}/productid
%nbCluster %{buildroot}%{nb_nb_dir}

# Links to nbX.X components
pushd %{buildroot}%{nb_dir}
  %{__ln_s} ../%{nb_harness}                        %{nb_harness}
  %{__ln_s} ../%{nb_apisupport}%{nb_apisupport_ver} %{nb_apisupport}
  %{__ln_s} ../%{nb_ide}%{nb_ide_ver}               %{nb_ide}
  %{__ln_s} ../%{nb_java}%{nb_java_ver}             %{nb_java}
  %{__ln_s} ../%{nb_platform}%{nb_platform_ver}     %{nb_platform}
popd

# Install icons
%{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/16x16/apps
cp -a netbeans_16x16x32.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/netbeans.png
%{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/32x32/apps
cp -a netbeans_32x32x32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/netbeans.png
%{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a netbeans_48x48x32.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/netbeans.png
%{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/128x128/apps
cp -a netbeans_128x128x32.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/netbeans.png

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

mkdir -p %{buildroot}%{_mavenpomdir}
install -pm 644 %{SOURCE2} %{buildroot}%{_mavenpomdir}/JPP-netbeans-cvsclient.pom
%add_maven_depmap -f cvsclient JPP-netbeans-cvsclient.pom netbeans-cvsclient.jar -a "org.netbeans.lib:cvsclient"

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

%post
%{__alternatives} --install %{_bindir}/%{nb_} %{nb_} %{nb_launcher} %{nb_alt_priority}

%preun
if [ "$1" = "0" ]; then
    %{__alternatives} --remove %{nb_} %{nb_launcher}
fi

%files
%defattr(-,root,root,-)
%dir %{nb_dir}/
%{nb_dir}/
%docdir %{nb_nb_dir}/docs
%dir %{nb_bin_dir}/
%attr(755,root,root) %{nb_launcher}
%{nb_etc_dir}/
%dir %{_datadir}/applications/%{nb_org}/
%{_datadir}/applications/%{nb_org}/%{nb_desktop}
%{_datadir}/icons/hicolor/*/apps/netbeans.png
%doc %{nb_legaldoc_dir}/*

%files %{nb_apisupport}
%defattr(-,root,root,-)
%{nb_apisupport_dir}/
%doc %{nb_license}

%files %{nb_ide}
%defattr(-,root,root,-)
%{nb_ide_dir}/
%doc %{nb_license}

%files %{nb_java}
%defattr(-,root,root,-)
%{nb_java_dir}/
%doc %{nb_license}

%files %{nb_cvsclient}
%defattr(-,root,root,-)
%{_javadir}/*
%doc %{nb_license}
%{_mavenpomdir}/*
%{_mavendepmapfragdir}/*


%changelog

* Sun Feb 12 2012 gil <gil> 7.0.1-3.mga2
+ Revision: 207985
- try to fix icon in desktop entry
- build fix added cvsclient pom
- build fix
- added cvsclien pom

* Sun Dec 04 2011 gil <gil> 7.0.1-2.mga2
+ Revision: 176057
- build fix
  edit desktop file
- build fix
  edit desktop file

* Fri Dec 02 2011 gil <gil> 7.0.1-1.mga2
+ Revision: 175121
- added ini4j.jar in %%nb_ide_dir/modules/ext
- added ini4j.jar in %%nb_ide_dir/modules/ext
- edit %%nb_dir
- update to 7.0.1-201107282000

* Thu Sep 15 2011 dmorgan <dmorgan> 6.9.1-1.mga2
+ Revision: 144086
- Fix P4
- Remove hardcoded Vendor tag
- Fix %%mkrel
- imported package netbeans

  + gil <gil>
    - update to 6.9.1-201007282301


* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.9-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Wed Sep 01 2010 Victor G. Vasilyev <victor.vasilyev@sun.com> 6.9-2
- Fix for https://netbeans.org/bugzilla/show_bug.cgi?id=189196

* Mon Feb 15 2010 Victor G. Vasilyev <victor.vasilyev@sun.com> 6.9-1
- introduce the cvsclient subpackage 
  https://bugzilla.redhat.com/show_bug.cgi?id=572165
- re-base for the NetBeans 6.9

* Mon Feb 15 2010 Victor G. Vasilyev <victor.vasilyev@sun.com> 6.8-6
- Provide vpkg for all cluster packages, but not harness
- stub jar files: jsr223, swing-worker
- swingx

* Thu Feb 11 2010 Victor G. Vasilyev <victor.vasilyev@sun.com> 6.8-5
- add dependencies on Jruby's pkgs: bytelist, jvyamlb
- clean up comments

* Wed Feb 10 2010 Victor G. Vasilyev <victor.vasilyev@sun.com> 6.8-4
- set priority of alternatives to 680
- remove the fake tag 'provides' needed only for rebuilding maven-scm

* Mon Feb 08 2010 Victor G. Vasilyev <victor.vasilyev@sun.com> 6.8-3
- a fake tag 'provides' needed only for rebuilding maven-scm

* Sat Feb 06 2010 Victor G. Vasilyev <victor.vasilyev@sun.com> 6.8-2
- remove dependencies on Jruby's pkgs: bytelist, jvyamlb

* Thu Nov 26 2009 Victor G. Vasilyev <victor.vasilyev@sun.com> 6.8-1
- re-base for the NetBeans 6.8

* Sat May 23 2009 Victor G. Vasilyev <victor.vasilyev@sun.com> 6.7.1-1
- re-base for the NetBeans 6.7.1