Blob Blame History Raw
%global eclipse_base     %{_libdir}/eclipse
%global eclipse_dropin   %{_datadir}/eclipse/dropins

Name:      eclipse-dltk
Version:   1.0.2
Release:   1%{?dist}
Summary:   Dynamic Languages Toolkit (DLTK) Eclipse plugin
Group:     System Environment/Libraries
License:   EPL
URL:       http://www.eclipse.org/dltk/

# source tarball and the script used to generate it from upstream's source control
# script usage:
# $ sh get-dltk.sh
Source0:   dltk-%{version}.tar.gz
Source1:   get-dltk.sh

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildArch:        noarch

BuildRequires:    java-devel
BuildRequires:    jpackage-utils
BuildRequires:    eclipse-pde >= 1:3.5.0
BuildRequires:    eclipse-emf >= 2.5.0
BuildRequires:    eclipse-mylyn >= 3.2
BuildRequires:    eclipse-rse
Requires:         java
Requires:         jpackage-utils
Requires:         eclipse-platform >= 1:3.5.0
Requires:         eclipse-emf

%description
Dynamic Languages Toolkit (DLTK) is a tool for vendors, researchers, and users
who rely on dynamic languages. DLTK is comprised of a set of extensible
frameworks designed to reduce the complexity of building full featured
development environments for dynamic languages such as PHP and Perl.

%package   ruby
Summary:   Ruby Eclipse plugin
Group:     Development/Tools
Requires:  %{name} = %{version}-%{release}

%description ruby
Ruby development environment for Eclipse based on the Eclipse Dynamic
Languages Toolkit (DLTK).

%package   tcl
Summary:   TCL Eclipse plugin
Group:     Development/Tools
Requires:  %{name} = %{version}-%{release}
Requires:  eclipse-emf >= 2.5.0

%description tcl
TCL development environment for Eclipse based on the Eclipse Dynamic
Languages Toolkit (DLTK).

%package   itcl
Summary:   Incr TCL extension for the TCL Eclipse plugin
Group:     Development/Tools
Requires:  %{name}-tcl = %{version}-%{release}

%description itcl
Incr TCL extension for the TCL Eclipse plugin.

%package   xotcl
Summary:   XOTCL extension for the TCL Eclipse plugin
Group:     Development/Tools
Requires:  %{name}-tcl = %{version}-%{release}

%description xotcl
XOTCL extension for the TCL Eclipse plugin.

#%package   javascript
#Summary:   Javascript Eclipse plugin
#Group:     Development/Tools
#Requires:  %{name} = %{version}-%{release}

#%description javascript
#Javascript development environment for Eclipse based on the Eclipse
#Dynamic Languages Toolkit (DLTK).

%package   mylyn
Summary:   Mylyn integration for Eclipse DLTK projects
Group:     Development/Tools
Requires:  %{name} = %{version}-%{release}
Requires:  eclipse-mylyn >= 3.2

%description mylyn
Mylyn task-focused UI integration for Eclipse Dynamic Languages Toolkit
(DLTK) projects.

%package   rse
Summary:   RSE integration for Eclipse DLTK projects
Group:     Development/Tools
Requires:  %{name} = %{version}-%{release}
Requires:  eclipse-rse

%description rse
Remote Development Support via RSE for DLTK based IDEs.

%package   sdk
Summary:   Eclipse DLTK SDK
Group:     System Environment/Libraries
Requires:  java-javadoc
Requires:  eclipse-pde >= 1:3.5.0
Requires:  %{name}       = %{version}-%{release}
Requires:  %{name}-ruby  = %{version}-%{release}
Requires:  %{name}-tcl   = %{version}-%{release}
Requires:  %{name}-itcl  = %{version}-%{release}
Requires:  %{name}-xotcl = %{version}-%{release}
#Requires:  %{name}-javascript = %{version}-%{release}
Requires:  %{name}-mylyn = %{version}-%{release}
Requires:  %{name}-rse   = %{version}-%{release}

%description sdk
Documentation and source for the Eclipse Dynamic Languages Toolkit (DLTK).

# TODO: Python IDE
# TODO: Uncomment the Javascript package bits when upstream gets their Rhino dependencies sanely externalised

%prep
%setup -q -n dltk-%{version}

# make sure upstream hasn't sneaked in any jars we don't know about
JARS=""
for j in `find -name "*.jar"`; do
  if [ ! -L $j ]; then
    JARS="$JARS $j"
  fi
done
if [ ! -z "$JARS" ]; then
   echo "These jars should be deleted and symlinked to system jars: $JARS"
   exit 1
fi

%build
# Note: Use date from the cvs tag as the context qualifier.
OPTIONS="-DjavacTarget=1.5 -DjavacSource=1.5 -DforceContextQualifier=v201002091326"

# build all features
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.core \
  -a "$OPTIONS" -d "emf"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.ruby \
  -a "$OPTIONS" -d "emf"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.tcl \
  -a "$OPTIONS" -d "emf"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.itcl \
  -a "$OPTIONS" -d "emf"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.xotcl \
  -a "$OPTIONS" -d "emf"
#%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.javascript \
#  -a "$OPTIONS" -d "emf"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.mylyn \
  -a "$OPTIONS" -d "mylyn"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.rse \
  -a "$OPTIONS" -d "rse"

# build all sdk features
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.core.sdk \
  -a "$OPTIONS" -d "emf"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.ruby.sdk \
  -a "$OPTIONS" -d "emf"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.tcl.sdk \
  -a "$OPTIONS" -d "emf"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.itcl.sdk \
  -a "$OPTIONS" -d "emf"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.xotcl.sdk \
  -a "$OPTIONS" -d "emf"
#%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.javascript.sdk \
#  -a "$OPTIONS" -d "emf"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.mylyn.sdk \
  -a "$OPTIONS" -d "mylyn"
%{eclipse_base}/buildscripts/pdebuild -f org.eclipse.dltk.rse.sdk \
  -a "$OPTIONS" -d "rse"

%install
rm -rf %{buildroot}
install -d -m 755 %{buildroot}%{eclipse_dropin}

SUBPACKAGES="core ruby tcl itcl xotcl mylyn rse"
for s in $SUBPACKAGES ; do
  unzip -q -n -d %{buildroot}%{eclipse_dropin}/dltk-$s  build/rpmBuild/org.eclipse.dltk.$s.zip
  unzip -q -n -d %{buildroot}%{eclipse_dropin}/dltk-sdk build/rpmBuild/org.eclipse.dltk.$s.sdk.zip

  # the non-sdk builds are a subset of the sdk builds, so delete duplicate features & plugins from the sdks
  (cd %{buildroot}%{eclipse_dropin}/dltk-sdk/eclipse/features && ls %{buildroot}%{eclipse_dropin}/dltk-$s/eclipse/features | xargs rm -rf)
  (cd %{buildroot}%{eclipse_dropin}/dltk-sdk/eclipse/plugins && ls %{buildroot}%{eclipse_dropin}/dltk-$s/eclipse/plugins | xargs rm -rf)
done

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%{eclipse_dropin}/dltk-core
%doc org.eclipse.dltk.core-feature/rootfiles/*

%files ruby
%defattr(-,root,root,-)
%{eclipse_dropin}/dltk-ruby
%doc org.eclipse.dltk.ruby-feature/rootfiles/*

%files tcl
%defattr(-,root,root,-)
%{eclipse_dropin}/dltk-tcl
%doc org.eclipse.dltk.tcl-feature/rootfiles/*

%files itcl
%defattr(-,root,root,-)
%{eclipse_dropin}/dltk-itcl
%doc org.eclipse.dltk.itcl-feature/rootfiles/*

%files xotcl
%defattr(-,root,root,-)
%{eclipse_dropin}/dltk-xotcl
%doc org.eclipse.dltk.xotcl-feature/rootfiles/*

#%files javascript
#%defattr(-,root,root,-)
#%{eclipse_dropin}/dltk-javascript
#%doc org.eclipse.dltk.javascript-feature/rootfiles/*

%files mylyn
%defattr(-,root,root,-)
%{eclipse_dropin}/dltk-mylyn
%doc org.eclipse.dltk.mylyn-feature/rootfiles/*

%files rse
%defattr(-,root,root,-)
%{eclipse_dropin}/dltk-rse
%doc org.eclipse.dltk.rse-feature/rootfiles/*

%files sdk
%defattr(-,root,root,-)
%{eclipse_dropin}/dltk-sdk
%doc org.eclipse.dltk.core.sdk/rootfiles/*

%changelog
* Wed Mar 03 2010 Mat Booth <fedora@matbooth.co.uk> 1.0.2-1
- Update to 1.0.2

* Wed Jan 20 2010 Alexander Kurtakov <akurtako@redhat.com> 1.0.0-4
- Main package should require emf.

* Mon Aug 20 2009 Mat Booth <fedora@matbooth.co.uk> 1.0.0-3
- Add a SDK package.
- Require Mylyn >= 3.2.

* Mon Aug 10 2009 Alexander Kurtakov <akurtako@redhat.com> 1.0.0-2
- Add RSE plugin.

* Mon Aug 10 2009 Alexander Kurtakov <akurtako@redhat.com> 1.0.0-1
- Update to 1.0.0 final.

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0-0.6.RC1b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Fri May 22 2009 Alexander Kurtakov <akurtako@redhat.com> 1.0.0-0.5.RC1b
- Update to 1.0.0 RC1b.
- Use %%global instead of %%define.

* Sat Apr 18 2009 Mat Booth <fedora@matbooth.co.uk> 1.0.0-0.4.M6
- Update to Milestone 6 release of 1.0.0.
- Require Eclipse 3.5.0.

* Thu Apr 02 2009 Mat Booth <fedora@matbooth.co.uk> 1.0.0-0.3.M5
- Fix files listed twice warnings.

* Thu Apr 02 2009 Mat Booth <fedora@matbooth.co.uk> 1.0.0-0.2.M5
- Drop GCJ AOT support.

* Mon Mar 30 2009 Mat Booth <fedora@matbooth.co.uk> 1.0.0-0.1.M5
- Initial release.