47fd2c
%bcond_with bootstrap
47fd2c
47fd2c
Summary:        Fast Scanner Generator
47fd2c
Name:           jflex
47fd2c
Version:        1.4.3
47fd2c
Release:        19%{?dist}
47fd2c
Epoch:          0
47fd2c
License:        GPL+
47fd2c
URL:            http://jflex.de/
47fd2c
# ./create-tarball.sh %%{version}
47fd2c
Source0:        %{name}-%{version}-clean.tar.gz
47fd2c
Source1:        http://repo2.maven.org/maven2/de/jflex/jflex/1.4.3/jflex-1.4.3.pom
47fd2c
Source4:        %{name}.1
47fd2c
Source5:        create-tarball.sh
47fd2c
47fd2c
Patch0:         jflex-build_xml.patch
47fd2c
Patch1:         jflex-junit-incompatibility.patch
47fd2c
47fd2c
# Build-require itself except in bootstrapping mode
47fd2c
%{!?with_bootstrap:BuildRequires: jflex}
47fd2c
47fd2c
BuildRequires:  jpackage-utils >= 0:1.5
47fd2c
BuildRequires:  ant
47fd2c
BuildRequires:  emacs
47fd2c
BuildRequires:  junit
47fd2c
BuildRequires:  java-devel
47fd2c
BuildRequires:  java_cup
47fd2c
Requires:       emacs-filesystem >= %{_emacs_version}
47fd2c
Requires:       java
47fd2c
Requires:       java_cup
47fd2c
BuildArch:      noarch
47fd2c
47fd2c
%description
47fd2c
JFlex is a lexical analyzer generator (also known as scanner
47fd2c
generator) for Java, written in Java.  It is also a rewrite of the
47fd2c
very useful tool JLex which was developed by Elliot Berk at Princeton
47fd2c
University.  As Vern Paxson states for his C/C++ tool flex: They do
47fd2c
not share any code though.  JFlex is designed to work together with
47fd2c
the LALR parser generator CUP by Scott Hudson, and the Java
47fd2c
modification of Berkeley Yacc BYacc/J by Bob Jamison.  It can also be
47fd2c
used together with other parser generators like ANTLR or as a
47fd2c
standalone tool.
47fd2c
47fd2c
%package javadoc
47fd2c
Summary:        API documentation for %{name}
47fd2c
47fd2c
%description javadoc
47fd2c
This package provides %{summary}.
47fd2c
47fd2c
%prep
47fd2c
%setup -q
47fd2c
%patch0 -b .sav
47fd2c
%patch1 -p1 -b .sav
47fd2c
47fd2c
%{__sed} -i 's/\r//' COPYRIGHT
47fd2c
%{__sed} -i 's|includes="JFlex/\*\*,java_cup/\*\*,skeleton|includes="JFlex/\*\*,skeleton|g' src/build.xml
47fd2c
47fd2c
%build
47fd2c
47fd2c
pushd src
47fd2c
%if %{with bootstrap}
47fd2c
# intial build using the autogenerated sym.java LexParse.java and LexScan.java
47fd2c
# these are created by the jflex ant task which needs to be built first
47fd2c
export CLASSPATH=$(build-classpath junit java_cup)
47fd2c
ant jar-bootstrap
47fd2c
# now that the JFlex.jar has been build we can use jflex ant tasks
47fd2c
# removing the generated files and rebuilding using the JFlex.jar
47fd2c
export CLASSPATH=${CLASSPATH}:../lib/JFlex.jar
47fd2c
%else
47fd2c
export CLASSPATH=$(build-classpath junit java_cup jflex)
47fd2c
%endif
47fd2c
47fd2c
ant genclean libclean jar
47fd2c
javadoc -sourcepath . -d ../api JFlex
47fd2c
popd
47fd2c
47fd2c
# Compile Emacs jflex-mode source
47fd2c
%{_emacs_bytecompile} lib/jflex-mode.el
47fd2c
47fd2c
%install
47fd2c
install -d -m 755 %{buildroot}%{_javadir}
47fd2c
install -d -m 755 %{buildroot}%{_mavenpomdir}
47fd2c
install -d -m 755 %{buildroot}%{_javadocdir}/%{name}
47fd2c
install -d -m 755 %{buildroot}%{_mandir}/man1
47fd2c
install -d -m 755 %{buildroot}%{_emacs_sitelispdir}/%{name}
47fd2c
install -d -m 755 %{buildroot}%{_datadir}/pixmaps
47fd2c
47fd2c
# jars
47fd2c
install -p -m 644 lib/JFlex.jar %{buildroot}%{_javadir}/%{name}.jar
47fd2c
ln -sf %{name}.jar %{buildroot}%{_javadir}/JFlex.jar
47fd2c
47fd2c
# pom
47fd2c
install -pm 644 %{SOURCE1} %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom
47fd2c
%add_maven_depmap
47fd2c
47fd2c
# javadoc
47fd2c
cp -pr api/* %{buildroot}%{_javadocdir}/%{name}
47fd2c
47fd2c
# wrapper script for direct execution
47fd2c
%jpackage_script JFlex.Main "" "" jflex:java_cup jflex true
47fd2c
47fd2c
# manpage
47fd2c
install -p -m 644 %{SOURCE4} %{buildroot}%{_mandir}/man1
47fd2c
47fd2c
# Emacs files
47fd2c
install -p -m 644 lib/jflex-mode.el %{buildroot}%{_emacs_sitelispdir}/%{name}
47fd2c
install -p -m 644 lib/jflex-mode.elc %{buildroot}%{_emacs_sitelispdir}/%{name}
47fd2c
47fd2c
47fd2c
%files -f .mfiles
47fd2c
%doc doc
47fd2c
%doc COPYRIGHT
47fd2c
%{_javadir}/JFlex.jar
47fd2c
%{_bindir}/%{name}
47fd2c
%{_mandir}/man1/%{name}.1.gz
47fd2c
%{_emacs_sitelispdir}/%{name}
47fd2c
47fd2c
%files javadoc
47fd2c
%doc COPYRIGHT
47fd2c
%doc %{_javadocdir}/%{name}
47fd2c
47fd2c
47fd2c
%changelog
47fd2c
* Thu Oct 24 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:1.4.3-19
47fd2c
- Remove desktop files
47fd2c
47fd2c
* Fri Aug 02 2013 Michal Srb <msrb@redhat.com> - 0:1.4.3-18
47fd2c
- Add create-tarball.sh script to SRPM
47fd2c
47fd2c
* Fri Jul 12 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:1.4.3-17
47fd2c
- Remove workaround for rpm bug #646523
47fd2c
47fd2c
* Fri Jun 28 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:1.4.3-16
47fd2c
- Rebuild to regenerate API documentation
47fd2c
- Resolves: CVE-2013-1571
47fd2c
47fd2c
* Thu Jun 20 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:1.4.3-15
47fd2c
- Fix javadoc generation
47fd2c
- Update to current packaging guidelines
47fd2c
47fd2c
* Thu Jun 20 2013 Michal Srb <msrb@redhat.com> - 0:1.4.3-14
47fd2c
- Build from clean tarball
47fd2c
- Install license file with javadoc package
47fd2c
47fd2c
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:1.4.3-13
47fd2c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
47fd2c
47fd2c
* Thu Nov 22 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:1.4.3-12
47fd2c
- Install Emacs jflex-mode
47fd2c
47fd2c
* Thu Nov 22 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:1.4.3-11
47fd2c
- Remove bundled java_cup sources
47fd2c
- Resolves: rhbz#877051
47fd2c
47fd2c
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:1.4.3-10
47fd2c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
47fd2c
47fd2c
* Wed May  2 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:1.4.3-9
47fd2c
- Fix license tag
47fd2c
- Import manpage from Debian's jflex 1.4.1-3 (GPL+)
47fd2c
47fd2c
* Thu Apr 19 2012 Jaromir Capik <jcapik@redhat.com> - 0:1.4.3-8
47fd2c
- Desktop file generated
47fd2c
- Icon created from the GPL licensed logo
47fd2c
47fd2c
* Mon Mar 12 2012 Jaromir Capik <jcapik@redhat.com> - 0:1.4.3-7
47fd2c
- Wrapper script generated
47fd2c
- Minor spec file changes according to the latest guidelines
47fd2c
47fd2c
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:1.4.3-6
47fd2c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
47fd2c
47fd2c
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:1.4.3-5
47fd2c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
47fd2c
47fd2c
* Mon Feb 15 2010 Alexander Kurtakov <akurtako@redhat.com> 0:1.4.3-4
47fd2c
- Add dependency on java_cup in the maven pom.xml.
47fd2c
47fd2c
* Mon Feb 15 2010 Alexander Kurtakov <akurtako@redhat.com> 0:1.4.3-3
47fd2c
- Require java_cup.
47fd2c
47fd2c
* Wed Jan 20 2010 Alexander Kurtakov <akurtako@redhat.com> 0:1.4.3-3
47fd2c
- Provide JFlex.jar.
47fd2c
- Don't put java_cup classes in the jar.
47fd2c
47fd2c
* Fri Jan 8 2010 Alexander Kurtakov <akurtako@redhat.com> 0:1.4.3-2
47fd2c
- Add maven pom and depmaps.
47fd2c
47fd2c
* Fri Jan 8 2010 Alexander Kurtakov <akurtako@redhat.com> 0:1.4.3-1
47fd2c
- Update to 1.4.3.
47fd2c
47fd2c
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:1.4.1-0.5
47fd2c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
47fd2c
47fd2c
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:1.4.1-0.4
47fd2c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
47fd2c
47fd2c
* Wed Jul  9 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0:1.4.1-0.3
47fd2c
- drop repotag
47fd2c
47fd2c
* Mon Mar 03 2008 Matt Wringe <mwringe@redhat.com> - 0:1.4.1-0jpp.2
47fd2c
- Add missing buildrequires on java_cup
47fd2c
47fd2c
* Fri Feb 22 2008 Matt Wringe <mwringe@redhat.com> - 0:1.4.1-0jpp.1
47fd2c
- Patch build file to allow bootstrap building
47fd2c
47fd2c
* Mon Feb 18 2008 Lubomir Kundrak <lkundrak@redhat.com> - 0:1.4.1-0jpp.1
47fd2c
- Naive attempt to update to newer version
47fd2c
47fd2c
* Mon Apr 02 2007 Matt Wringe <mwringe@redhat.com> - 0:1.3.5-2jpp.2
47fd2c
- Add patches jflex-CharSet_java.patch and jflex-StateSet_java.patch
47fd2c
  to allow building with the new gcj
47fd2c
47fd2c
* Mon Feb 12 2007 Matt Wringe <mwringe@redhat.com> - 0:1.3.5-2jpp.1
47fd2c
- Remove javadoc post and postun sections due to new jpp standard 
47fd2c
- Update makefile patch to compress jar
47fd2c
- Fix rpmlint issues
47fd2c
47fd2c
* Wed Jan 04 2006 Fernando Nasser <fnasser@redhat.com> - 0:1.3.5-2jpp
47fd2c
- First JPP 1.7 build
47fd2c
47fd2c
* Wed Nov 16 2005 Ralph Apel <r.apel at r-apel.de> - 0:1.3.5-1jpp
47fd2c
- First JPackage release