File jedit.spec of Package jedit
#
# spec file for package jedit
#
# Copyright (c) 2011 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/
#
# norootforbuild
# icecream 0
%define section free
Name: jedit
Version: 4.3.2
Release: 5
Summary: Programmer's Text Editor Written in Java
Url: http://www.jedit.org/
License: GPLv2+
Group: Productivity/Editors/Other
Source0: http://download.sourceforge.net/jedit/jedit%{version}source.tar.bz2
Source1: %{name}-16.png
Source2: %{name}-32.png
Source3: %{name}-48.png
Patch0: %{name}-installer.patch
#PATCH-FIX-OPENSUSE: bnc#629375
#use patches from debian, because they document the changes between original
#bsh and the jedit's version
Patch1: 00bsh-jedit.patch
Patch2: 01bsh-jedit-asm.patch
Patch3: 02build.xml.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
BuildRequires: java-devel
BuildRequires: aelfred
BuildRequires: ant
BuildRequires: ant-nodeps
#BuildRequires: bsh2
#BuildRequires: bsh2-classgen
#BuildRequires: bsh2-javadoc
BuildRequires: bsh2-src
BuildRequires: docbook-xsl-stylesheets
BuildRequires: gnu-regexp
BuildRequires: iso_ent
BuildRequires: libxslt
BuildRequires: openjade
BuildRequires: xml-commons-apis
BuildRequires: fop
#BuildRequires: xorg-x11
#BuildRequires: xorg-x11-devel
BuildRequires: fdupes
Requires: aelfred
Requires: asm
#Requires: bsh2
#Requires: bsh2-classgen
Requires: gnu-regexp
Requires: jpackage-utils >= 1.5
Obsoletes: %{name}-rhmenu < %{version}
Obsoletes: antlr-jedit < %{version}
Provides: %{name}-rhmenu = %{version}
Provides: antlr-jedit = %{version}
%description
jEdit is a cross-platform programmer's text editor written in Java.
Some of jEdit's features include:
* Built-in macro language (BeanShell)
* Extensible plug-in architecture with more than 80 plug-ins
available
* Plug-ins can be downloaded and installed from within jEdit using
the plug-in manager feature
* Syntax highlighting for more than 80 languages
* Supports a large number of character encodings including UTF8 and
Unicode
* Autoindenting of source code
* Folding (indent and marker based)
* Word wrap
* Unlimited undo and redo
* Highly configurable and customizable
* Every other feature, both basic and advanced, that you would expect
to find in a text editor
%package javadoc
License: GPLv2+
PreReq: coreutils
Summary: Programmer's text editor written in Java (Documentation)
Group: Productivity/Editors/Other
%description javadoc
Javadoc for jedit.
%prep
#%setup -q -n jEdit
%setup -q -D -n jEdit
# the similar apporach to Debian's package
# unpack bsh and then patch it
(%{__mkdir} bsh; cd bsh; %{__tar} -xf %{_usrsrc}/bsh2-src/bsh2.tar.bz2 )
# this will fail on each rebuild of bsh2, so do it by sed
%{__sed} -i 's/\(.*\)String VERSION = "2.0.0.b5.*/\1String VERSION = "2.0.0.b4-jedit";/' bsh/src/bsh/Interpreter.java
%patch0 -p1 -b.installer
%patch1 -p1 -b .bsh
%patch2 -p1 -b .bsh-asm
%patch3 -p2 -b .bsh-build.xml
# remove all included external sources
%__rm -rf com
# remove all binary libs
#find . -name "*.jar" -exec rm -f {} \;
%build
export CLASSPATH=$(build-classpath aelfred asm gnu.regexp)
#export CLASSPATH=$(build-classpath aelfred gnu.regexp)
# compress jedit.jar
%__perl -p -i -e 's|compress="false"|compress="true"|' build.xml
%__perl -p -i -e 's|app.version=.*|app.version=%{version}-%{release}|' installer/install.props
DOCBOOK_XSL=`rpm -ql docbook-xsl-stylesheets | %__grep /html/chunk.xsl \
| %__sed 's|/html/chunk.xsl||'`
STYLESHEET_VERSION=`rpm -q --qf '%%{version}' docbook-xsl-stylesheets`
if [ -z $DOCBOOK_XSL ]; then
echo "Unable to find docbook xsl directory"
exit 1
fi
if [ -z "$SGML_CATALOG_FILES" -a -e %{_sysconfdir}/sgml/catalog ] ; then
export SGML_CATALOG_FILES=%{_sysconfdir}/sgml/catalog
fi
cat <<EOF > build.properties
xsltproc.executable=%{_bindir}/xsltproc
docbook.xsl=%{_datadir}/xml/docbook/stylesheet/nwalsh/$STYLESHEET_VERSION/
docbook.catalog=%{_datadir}/xml/docbook/stylesheet/nwalsh/$STYLESHEET_VERSION/catalog.xml
EOF
%ant \
build docs-html
# Build QuickNotepad.jar
(cd jars/QuickNotepad && %ant)
# FIXME: crosslink with gnu.regexp and bsh2 when they have non-versioned dirs
%ant -Djava.javadoc=%{_javadocdir}/java \
-Daelfred.javadoc=%{_javadocdir}/aelfred \
-Dasm.javadoc=%{_javadocdir}/asm \
-Dbsh2.javadoc=%{_javadocdir}/bsh2 \
-Dgnu.regexp.javadoc=%{_javadocdir}/bsh2 \
docs-javadoc
%install
# dirs
%{__install} -d -m 0755 %{buildroot}%{_bindir}
%{__install} -d -m 0755 %{buildroot}/%{_datadir}/%{name}
%{__install} -d -m 0755 %{buildroot}/%{_javadocdir}/%{name}
%{__install} -d -m 0755 %{buildroot}/%{_mandir}/man1/
# jar
%{__install} -d -m 0755 %{buildroot}%{_javadir}
%{__cp} -a build/%{name}.jar %{buildroot}%{_javadir}/%{name}-%{version}.jar
(cd %{buildroot}%{_javadir} && for jar in *-%{version}*; do %{__ln_s} ${jar} ${jar/-%{version}/}; done) || true
(cd %{buildroot}%{_datadir}/%{name} && %{__ln_s} %{_javadir}/%{name}.jar %{name}.jar) || true
# the rest files
%{__cp} -pr build/{doc,macros,modes,properties,startup} %{buildroot}/%{_datadir}/%{name}
# XXX: Can this be made relative?
(cd %{buildroot}%{_datadir}/%{name}/doc && %__ln_s %{_javadocdir}/%{name} api)
%{__install} -m 0644 package-files/linux/%{name}.1 %{buildroot}/%{_mandir}/man1/
# script
%__cat > %{buildroot}%{_bindir}/%{name} << EOF
#!/bin/sh
#
# jedit script
# JPackage Project <http://www.jpackage.org/>
# Source functions library
. %{_datadir}/java-utils/java-functions
# Source system prefs
if [ -f %{_sysconfdir}/%{name}.conf ] ; then
. %{_sysconfdir}/%{name}.conf
fi
# Source user prefs
if [ -f \$HOME/.%{name}rc ] ; then
. \$HOME/.%{name}rc
fi
# Configuration
MAIN_CLASS="org.gjt.sp.jedit.jEdit"
BASE_FLAGS="-Dbsh.jedit=true -Djedit.home=%{_datadir}/%{name} -mx32m"
BASE_JARS="aelfred asm bsh2/bsh-classgen bsh2/bsh-commands bsh2/bsh-core bsh2/bsh-reflect bsh2/bsh-util gnu.regexp %{name}"
#BASE_JARS="aelfred gnu.regexp %{name}"
# Set parameters
set_jvm
set_classpath \$BASE_JARS
set_flags \$BASE_FLAGS
# Let's start
run "\$@"
EOF
# icons
%__install -D -m 644 %{SOURCE3} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
%__install -D -m 644 %{SOURCE2} %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
%__install -D -m 644 %{SOURCE1} %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
%fdupes -s %{buildroot}
%clean
%{__rm} -rf %{buildroot}
%files
%defattr(0644,root,root,0755)
%attr(0755,root,root) %{_bindir}/%{name}
%{_javadir}/*
%{_datadir}/%{name}
%{_mandir}/man1/%{name}.1*
%{_datadir}/icons/hicolor/
%exclude %{_datadir}/%{name}/doc/api
#%files manual
#%defattr(0644,root,root,0755)
#%doc doc/users-guide/*
%files javadoc
%defattr(0644,root,root,0755)
%doc %{_javadocdir}/%{name}
%{_datadir}/%{name}/doc/api
%changelog