[packages/opengrok] - up to 0.11.1 - add jflex and lucene patch from fedora

glen glen at pld-linux.org
Fri Aug 29 19:00:18 CEST 2014


commit 4aaecc0b1f171a27d8b2008ddb1894901fba0c9b
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Fri Aug 29 19:58:46 2014 +0300

    - up to 0.11.1
    - add jflex and lucene patch from fedora

 configuration.xml |  16 +++++++
 jflex.patch       |  29 ++++++++++++
 lucene35.patch    |  43 ++++++++++++++++++
 opengrok.sh       |  44 +++++++++++++++++++
 opengrok.spec     | 129 +++++++++++++++++++++++++++++++++++++++---------------
 5 files changed, 226 insertions(+), 35 deletions(-)
---
diff --git a/opengrok.spec b/opengrok.spec
index 4513800..d1eebd8 100644
--- a/opengrok.spec
+++ b/opengrok.spec
@@ -1,29 +1,41 @@
+# TODO
+# - fix man generation
 #
 # Conditional build:
+%bcond_with	javadoc		# don't build javadoc
+
 %include	/usr/lib/rpm/macros.java
-Summary:	A wicked fast source browser
+Summary:	Source browser and indexer
 Name:		opengrok
-Version:	0.7
+Version:	0.11.1
 Release:	0.1
 License:	CDDL
-Group:		Development/Languages/Java
-Source0:	http://opensolaris.org/os/project/opengrok/files/%{name}-%{version}-src.tar.gz
-# Source0-md5:	131c14590db48da55fc5a1ff2509e878
-URL:		http://opensolaris.org/os/project/opengrok/
+Group:		Development/Tools
+Source0:	https://java.net/projects/opengrok/downloads/download/archive/%{name}-%{version}-src.tar.gz
+# Source0-md5:	beb185b056a678b4119eff0c89a62d6c
+Source1:	%{name}.sh
+Source2:	configuration.xml
+Patch0:		lucene35.patch
+Patch1:		jflex.patch
+URL:		http://opengrok.github.io/OpenGrok/
 BuildRequires:	ant
-BuildRequires:	ant-nodeps
-BuildRequires:	jakarta-bcel >= 5.1
-BuildRequires:	java-lucene
+BuildRequires:	docbook-dtd42-sgml
+BuildRequires:	docbook-dtd42-xml
+BuildRequires:	docbook-utils
+BuildRequires:	java-bcel >= 5.1
+BuildRequires:	java-cup
+BuildRequires:	java-lucene >= 3.1
+BuildRequires:	java-lucene-contrib >= 3.1
 BuildRequires:	java-oro
-BuildRequires:	java-servletapi5
+BuildRequires:	java-servletapi
 BuildRequires:	jdk
-BuildRequires:	jflex
+BuildRequires:	jflex >= 1.4
 BuildRequires:	jpackage-utils
 BuildRequires:	rpm-javaprov
 BuildRequires:	rpmbuild(macros) >= 1.300
 Requires:	ctags
 Requires:	group(servlet)
-Requires:	java-servletapi5
+Requires:	java-servletapi
 Requires:	jpackage-utils
 BuildArch:	noarch
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -35,57 +47,104 @@ tree. It can understand various program file formats and version
 control histories like Mercurial, Git, SCCS, RCS, CVS, Subversion,
 Teamware, ClearCase, Perforce and Bazaar. In other words it lets you
 grok (profoundly understand) the open source, hence the name OpenGrok.
-It is written in Java.
 
 %prep
 %setup -q -n %{name}-%{version}-src
+%patch0 -p1
+%patch1 -p1
 
+# nuke prebuilt stuff
 mv lib nolibs
 mkdir lib
 
-%{__sed} -i -e 's,\r$,,' conf/web.xml
+# Default war configuration
+sed 's,/var/opengrok/etc/configuration.xml,%{_sysconfdir}/%{name}/configuration.xml,' \
+        -i web/WEB-INF/web.xml
 
 %build
 export JAVA_HOME="%{java_home}"
 
 # TODO: patch build.xml to use jflex from CLASSPATH
-jflex_jar=$(find-jar jflex)
-ln -sf $jflex_jar lib/JFlex.jar
+#jflex_jar=$(find-jar jflex)
+#ln -sf $jflex_jar lib/JFlex.jar
 
-required_jars="jaxp_parser_impl jflex ant"
+required_jars="jflex cup junit"
 CLASSPATH=$(build-classpath $required_jars)
 export CLASSPATH
 
 %ant \
 	-Djavac.source=1.5 \
 	-Djavac.target=1.5 \
-	-Dfile.reference.ant.jar=$(find-jar ant) \
-	-Dfile.reference.bcel-5.1.jar=$(find-jar bcel) \
-	-Dfile.reference.jakarta-oro-2.0.8.jar=$(find-jar oro) \
-	-Dfile.reference.lucene-core-2.2.0.jar=$(find-jar lucene) \
-	-Dfile.reference.servlet-api.jar=$(find-jar servlet-api) \
-
-#	-Dfile.reference.lucene-spellchecker-2.2.0.jar}:\
-#	-Dfile.reference.org.apache.commons.jrcs.diff.jar}:\
-#	-Dfile.reference.org.apache.commons.jrcs.rcs.jar}:\
-#	-Dfile.reference.swing-layout-0.9.jar}:\
-#	-Dfile.reference.jmxremote_optional.jar}
+	\
+	-Dfile.reference.ant.jar=$(build-classpath ant) \
+	-Dfile.reference.bcel-5.2.jar=$(build-classpath bcel) \
+	-Dfile.reference.jakarta-oro-2.0.8.jar=$(build-classpath oro) \
+	-Dfile.reference.lucene-core-3.0.2.jar=$(build-classpath lucene) \
+	-Dfile.reference.lucene-spellchecker-3.0.2.jar=$(build-classpath lucene-contrib/lucene-spellchecker) \
+	-Dfile.reference.org.apache.commons.jrcs.diff.jar=jrcs/lib/org.apache.commons.jrcs.diff.jar \
+	-Dfile.reference.org.apache.commons.jrcs.rcs.jar=jrcs/lib/org.apache.commons.jrcs.rcs.jar \
+	-Dfile.reference.servlet-api.jar=$(build-classpath servlet-api) \
+	-Dfile.reference.swing-layout-0.9.jar=$(build-classpath swing-layout)
+
+# SolBook is more-or-less DocBook subset, so this can be done safely
+# FIXME: db2x_docbook2man output is not as nice as it should be
+%if 0
+%{__sed} -e '
+        s,^<!DOCTYPE.*,<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "/usr/share/sgml/docbook/xml-dtd-4.2/docbookx.dtd">,
+        /^<?Pub Inc>/d
+		/<?xml version="1.0" encoding="UTF-8"?>/d
+' dist/opengrok.1 > opengrok.1.in
+#docbook2man opengrok.1.in
+refentry2man < dist/opengrok.1.in > opengrok.1
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_javadir}}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_bindir},%{_mandir}/man1,%{_javadir}} \
+	$RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/{src,data} \
+	$RPM_BUILD_ROOT%{_javadocdir}/%{name}
 
-cp -a dist/opengrok.jar $RPM_BUILD_ROOT%{_javadir}
 #     [echo] To run this application from the command line without Ant, try:
-#     [echo] java -cp "/usr/share/java/ant.jar:/usr/share/java/bcel.jar:/usr/share/java/oro.jar:/usr/share/java/lucene.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/lib/lucene-spellchecker-2.2.0.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/lib/org.apache.commons.jrcs.diff.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/lib/org.apache.commons.jrcs.rcs.jar:/usr/share/java/servlet-api.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/lib/swing-layout-0.9.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/lib/jmxremote_optional.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/dist/opengrok.jar" org.opensolaris.opengrok.index.Indexer
-cp -a dist/source.war $RPM_BUILD_ROOT%{_javadir}
-cp -a conf/web.xml
+#     [echo] java -cp "%{_javadir}/ant.jar:%{_javadir}/bcel.jar:%{_javadir}/oro.jar:%{_javadir}/lucene.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/lib/lucene-spellchecker-2.2.0.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/lib/org.apache.commons.jrcs.diff.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/lib/org.apache.commons.jrcs.rcs.jar:%{_javadir}/servlet-api.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/lib/swing-layout-0.9.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/lib/jmxremote_optional.jar:/home/users/glen/rpm/BUILD.noarch-linux/opengrok-0.7-src/dist/opengrok.jar" org.opensolaris.opengrok.index.Indexer
+
+# jar
+install -p dist/opengrok.jar $RPM_BUILD_ROOT%{_javadir}/opengrok-%{version}.jar
+ln -sf opengrok-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/opengrok.jar
+
+# jrcs
+install -p lib/jrcs.jar $RPM_BUILD_ROOT%{_javadir}/opengrok-jrcs-%{version}.jar
+ln -sf opengrok-jrcs-%{version}.jar \
+        $RPM_BUILD_ROOT%{_javadir}/opengrok-jrcs.jar
 
-#     [echo] Generating man page..
+# bin
+install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name}
+#cp -p opengrok.1 $RPM_BUILD_ROOT%{_mandir}/man1
+
+%if %{with javadoc}
+cp -a dist/javadoc $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+%endif
+
+# Configuration file configuration.xml
+cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc README.txt CHANGES.txt
+%doc CHANGES.txt LICENSE.txt README.txt doc/EXAMPLE.txt
+%dir %{_sysconfdir}/%{name}
+%config(noreplace) %{_sysconfdir}/%{name}/configuration.xml
+%attr(755,root,root) %{_bindir}/opengrok
+#%{_mandir}/man1/opengrok.1*
+%{_javadir}/opengrok-%{version}.jar
+%{_javadir}/opengrok.jar
+%{_javadir}/opengrok-jrcs-%{version}.jar
+%{_javadir}/opengrok-jrcs.jar
+%{_localstatedir}/lib/%{name}
+
+%if %{with javadoc}
+%files javadoc
+%defattr(644,root,root,755)
+%{_javadocdir}/*
+%endif
diff --git a/configuration.xml b/configuration.xml
new file mode 100644
index 0000000..8a0c494
--- /dev/null
+++ b/configuration.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  OpenGrok Configuration file
+-->
+
+<java class="java.beans.XMLDecoder">
+ <object class="org.opensolaris.opengrok.configuration.Configuration">
+  <void property="dataRoot">
+   <string>/var/lib/opengrok/data</string>
+  </void>
+  <void property="sourceRoot">
+   <string>/var/lib/opengrok/src</string>
+  </void>
+ </object>
+</java>
diff --git a/jflex.patch b/jflex.patch
new file mode 100644
index 0000000..3dd11b2
--- /dev/null
+++ b/jflex.patch
@@ -0,0 +1,29 @@
+From 9b768c8d4c23b6dfccca1ba8a7080a40662b9d3e Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak at v3.sk>
+Date: Mon, 31 May 2010 10:36:23 +0200
+Subject: [PATCH] We include jflex differently.
+
+---
+ build.xml | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/build.xml b/build.xml
+index d2e3f49..5ea450b 100644
+--- a/build.xml
++++ b/build.xml
+@@ -142,10 +142,12 @@ Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
+         <pathelement path="lib/pmd/lib/"/>
+     </path>
+ 
++    <!-- it's called jflex.jar, and we add it to classpath by ourselves
+     <available file="JFlex.jar" type="file" property="JFlex.present">
+         <filepath refid="lib.search.path"/>
+     </available>
+     <fail unless="JFlex.present" message="Please download JFlex (http://jflex.de/) and put JFlex.jar it into ./lib directory (or in ant classpath)."/>
++    -->
+ 
+     <taskdef classname="JFlex.anttask.JFlexTask" name="jflex" classpathref="lib.search.path"/>    
+     <target name="jflex">
+-- 
+1.8.3.1
+
diff --git a/lucene35.patch b/lucene35.patch
new file mode 100644
index 0000000..00cf790
--- /dev/null
+++ b/lucene35.patch
@@ -0,0 +1,43 @@
+From 504bdd0e5a3ad449455c7bbb1703d20bbe258dc1 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak at v3.sk>
+Date: Mon, 28 Oct 2013 12:52:26 +0100
+Subject: [PATCH] Fix build with lucene 3.5
+
+---
+ src/org/opensolaris/opengrok/index/IndexDatabase.java | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/org/opensolaris/opengrok/index/IndexDatabase.java b/src/org/opensolaris/opengrok/index/IndexDatabase.java
+index 99df496..8dcb0cf 100644
+--- a/src/org/opensolaris/opengrok/index/IndexDatabase.java
++++ b/src/org/opensolaris/opengrok/index/IndexDatabase.java
+@@ -41,6 +41,7 @@ import org.apache.lucene.document.Document;
+ import org.apache.lucene.document.Fieldable;
+ import org.apache.lucene.index.IndexReader;
+ import org.apache.lucene.index.IndexWriter;
++import org.apache.lucene.index.IndexWriterConfig;
+ import org.apache.lucene.index.Term;
+ import org.apache.lucene.index.TermEnum;
+ import org.apache.lucene.queryParser.ParseException;
+@@ -53,6 +54,8 @@ import org.apache.lucene.store.FSDirectory;
+ import org.apache.lucene.store.LockFactory;
+ import org.apache.lucene.store.NoLockFactory;
+ import org.apache.lucene.store.SimpleFSLockFactory;
++import org.apache.lucene.util.Version;
++import org.apache.lucene.analysis.standard.StandardAnalyzer;
+ import org.opensolaris.opengrok.analysis.AnalyzerGuru;
+ import org.opensolaris.opengrok.analysis.Ctags;
+ import org.opensolaris.opengrok.analysis.Definitions;
+@@ -487,7 +490,8 @@ public class IndexDatabase {
+             indexReader = IndexReader.open(indexDirectory,false);
+             checker = new SpellChecker(spellDirectory);
+             //TODO below seems only to index "defs" , possible bug ?
+-            checker.indexDictionary(new LuceneDictionary(indexReader, "defs"));
++            IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35));
++            checker.indexDictionary(new LuceneDictionary(indexReader,"defs"), config, true);
+             log.info("done");
+         } catch (IOException e) {
+             log.log(Level.SEVERE, "ERROR: Generating spelling: {0}", e);
+-- 
+1.8.3.1
+
diff --git a/opengrok.sh b/opengrok.sh
new file mode 100755
index 0000000..7cb9b5b
--- /dev/null
+++ b/opengrok.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+# 
+# OpenGrok script
+# Lubomir Rintel <lkundrak at v3.sk>
+
+# Source functions library
+if [ -f /usr/share/java-utils/java-functions ] ; then 
+  . /usr/share/java-utils/java-functions
+else
+  echo "Can't find functions library, aborting"
+  exit 1
+fi
+
+# Load system-wide configuration
+if [ -f /etc/opengrok.conf ]; then
+  . /etc/opengrok.conf
+fi
+
+# Load user configuration
+if [ -f "$HOME/.opengrokrc" ]; then
+  . "$HOME/.opengrokrc"
+fi
+
+# Rest of the configuration
+MAIN_CLASS=org.opensolaris.opengrok.index.Indexer
+
+BASE_JARS="$BASE_JARS lucene.jar"
+BASE_JARS="$BASE_JARS lucene-contrib/lucene-spellchecker.jar"
+BASE_JARS="$BASE_JARS jakarta-oro.jar"
+BASE_JARS="$BASE_JARS opengrok-jrcs"
+BASE_JARS="$BASE_JARS bcel.jar"
+BASE_JARS="$BASE_JARS servlet.jar"
+BASE_JARS="$BASE_JARS ant.jar"
+BASE_JARS="$BASE_JARS swing-layout.jar"
+BASE_JARS="$BASE_JARS opengrok.jar"
+
+# Set parameters
+set_jvm
+set_classpath $BASE_JARS
+set_flags $BASE_FLAGS
+set_options $BASE_OPTIONS $OPENGROK_OPTS
+
+# Let's start
+run "$@"
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/opengrok.git/commitdiff/4aaecc0b1f171a27d8b2008ddb1894901fba0c9b



More information about the pld-cvs-commit mailing list