diff --git a/_service b/_service new file mode 100644 index 0000000..5152e2a --- /dev/null +++ b/_service @@ -0,0 +1,13 @@ + + + git + https://versioncontrolseidl.in.tum.de/parsergenerators/cup.git + d69c8321fab81759df10e2d74087a9514b5b56da + %h + java-cup + + + *.tar + xz + + diff --git a/develop.tar.bz2 b/develop.tar.bz2 deleted file mode 100644 index 8cd5eee..0000000 --- a/develop.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a54e59544618844fd5209d40b7832b4623753fd1432bd60bd73cac347d27e69 -size 285904 diff --git a/java-cup-bootstrap.spec b/java-cup-bootstrap.spec index 2b143e8..bca0192 100644 --- a/java-cup-bootstrap.spec +++ b/java-cup-bootstrap.spec @@ -1,7 +1,7 @@ # # spec file for package java-cup-bootstrap # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,8 +18,10 @@ ##### WARNING: please do not edit this auto generated spec file. Use the java-cup.spec! ##### %global with_bootstrap 1 -%define cvs_version 11a +%define cvs_version 11b %define real_name java-cup +%define git_hash d69c832 +%define git_date 20210814 %bcond_with bootstrap Name: java-cup-bootstrap Version: 0.11 @@ -27,28 +29,29 @@ Release: 0 Summary: LALR Parser Generator in Java License: HPND Group: Development/Libraries/Java -Url: http://www2.cs.tum.edu/projects/cup/ -# https://www2.in.tum.de/WebSVN/dl.php?repname=CUP&path=/develop/&rev=0&isdir=1 -Source0: develop.tar.bz2 -Source1: java-cup.script -Source2: java-cup-generated-files.tar.bz2 -# From http://www2.cs.tum.edu/projects/cup/ -Source3: java-cup.license -Patch1: java-cup-no-classpath-in-manifest.patch +URL: http://www2.cs.tum.edu/projects/cup/ +Source0: %{real_name}-%{git_hash}.tar.xz +Source1: %{real_name}-generated-files.tar.xz +Source100: java-cup-nogit.patch.in +Patch0: java-cup-no-classpath-in-manifest.patch +Patch1: java-cup-java8.patch Patch2: java-cup-no-cup-no-jflex.patch Patch3: java-cup-classpath.patch -# Missing symbolFactory initialization in lr_parser, causes sinjdoc to crash -Patch4: java-cup-lr_parser-constructor.patch BuildRequires: ant BuildRequires: java-devel +BuildRequires: javapackages-tools BuildRequires: xml-commons-apis-bootstrap BuildRequires: xml-commons-resolver-bootstrap -#!BuildIgnore: xml-commons-apis xml-commons-resolver xalan-j2 xerces-j2 +#!BuildIgnore: xalan-j2 +#!BuildIgnore: xerces-j2 +#!BuildIgnore: xml-commons-apis +#!BuildIgnore: xml-commons-resolver Obsoletes: java_cup < %{version}-%{release} Provides: java_cup = %{version}-%{release} BuildArch: noarch %if %without bootstrap BuildRequires: java-cup-bootstrap +BuildRequires: javapackages-local BuildRequires: jflex %endif # bootstrap variant is just stripped down java-cup, so it conflicts @@ -92,19 +95,18 @@ java-cup is a LALR Parser Generator in Java. With v0.11, you can: * %endif %prep -%setup -q -n develop +%setup -q -n %{real_name}-%{git_hash} +cat %{SOURCE100} | sed 's#@GIT_HASH@#%{git_hash}#g' | sed 's#@GIT_DATE@#%{git_date}#g' | patch -p1 -u -l +%patch0 -p1 %patch1 -p1 %if %with bootstrap -%setup -q -T -D -a 2 -n develop +%setup -q -T -D -a 1 -n %{real_name}-%{git_hash} %patch2 -p1 %else %{_bindir}/find . -name '*.jar' | %{_bindir}/xargs rm %patch3 -p1 %endif -%patch4 -p1 -perl -pi -e 's/1\.2/1.6/g' build.xml -mkdir -p classes dist -cp %{SOURCE3} license.txt +mkdir -p target/classes %build %if %with bootstrap @@ -118,18 +120,33 @@ ant %install # jar mkdir -p %{buildroot}%{_javadir} -cp -a dist/%{real_name}-%{cvs_version}.jar %{buildroot}%{_javadir}/%{real_name}-%{version}.jar -cp -a dist/%{real_name}-%{cvs_version}-runtime.jar %{buildroot}%{_javadir}/%{real_name}-runtime-%{version}.jar -(cd %{buildroot}%{_javadir} && for jar in *-%{version}*; do ln -s ${jar} ${jar/-%{version}/}; done) +cp -a target/dist/%{real_name}-%{cvs_version}.jar %{buildroot}%{_javadir}/%{real_name}.jar +cp -a target/dist/%{real_name}-%{cvs_version}-runtime.jar %{buildroot}%{_javadir}/%{real_name}-runtime.jar + +%if %without bootstrap +# maven data +%add_maven_depmap com.github.vbmacher:%{real_name}:%{cvs_version}-%{git_date} %{real_name}.jar +%add_maven_depmap com.github.vbmacher:%{real_name}-runtime:%{cvs_version}-%{git_date} %{real_name}-runtime.jar +%endif + # compatibility symlinks (cd %{buildroot}%{_javadir} && ln -s %{real_name}.jar java_cup.jar && ln -s %{real_name}-runtime.jar java_cup-runtime.jar) mkdir -p %{buildroot}%{_bindir} -install -p -m 755 %{SOURCE1} %{buildroot}%{_bindir}/%{real_name} +%jpackage_script java_cup.Main "" "" %{real_name}:%{real_name}-runtime %{real_name} + +%if %with bootstrap %files -%doc changelog.txt license.txt +%{_javadir}/%{real_name}*.jar +%else + +%files -f .mfiles +%endif +%license licence.txt +%doc changelog.txt %attr(0755,root,root) %{_bindir}/%{real_name} -%{_javadir}/* +%{_javadir}/java_cup*.jar + %if %without bootstrap %files manual %doc manual.html diff --git a/java-cup-d69c832.tar.xz b/java-cup-d69c832.tar.xz new file mode 100644 index 0000000..1d4b32e --- /dev/null +++ b/java-cup-d69c832.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6641af174c81ab2743cd399476cdcad1b2b8c42d03787eb8221399b2807b281 +size 690472 diff --git a/java-cup-generated-files.tar.bz2 b/java-cup-generated-files.tar.bz2 deleted file mode 100644 index cda3abc..0000000 --- a/java-cup-generated-files.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d5c01e033aede7be297485de7d10b1c923f6f1268d4c679d8939285a03027dde -size 16878 diff --git a/java-cup-generated-files.tar.xz b/java-cup-generated-files.tar.xz new file mode 100644 index 0000000..7e97a93 --- /dev/null +++ b/java-cup-generated-files.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c288990c111b2787c169e311c14dd581a03da84e4a9c1bf75702dbd8a1e879a9 +size 17780 diff --git a/java-cup-java8.patch b/java-cup-java8.patch new file mode 100644 index 0000000..f87a325 --- /dev/null +++ b/java-cup-java8.patch @@ -0,0 +1,397 @@ +--- a/build.xml ++++ b/build.xml +@@ -56,7 +56,7 @@ + + + +- ++ + + + +--- a/src/java/java_cup/Main.java ++++ b/src/java/java_cup/Main.java +@@ -527,7 +527,7 @@ public class Main { + protected static void check_unused() { + + /* check for unused terminals */ +- for (var term : terminal.all()) { ++ for (terminal term : terminal.all()) { + /* don't issue a message for EOF */ + if (term == terminal.EOF) + continue; +@@ -547,7 +547,7 @@ public class Main { + } + + /* check for unused non terminals */ +- for (var nt:non_terminal.all()){ ++ for (non_terminal nt:non_terminal.all()){ + /* is this one unused */ + if (nt.use_count() == 0) { + /* count and warn if we are doing warnings */ +@@ -613,7 +613,7 @@ public class Main { + System.err.println(" Filling in tables..."); + action_table = new parse_action_table(); + reduce_table = new parse_reduce_table(); +- for (var lst:lalr_state.all_states()){ ++ for (lalr_state lst:lalr_state.all_states()){ + lst.build_table_entries(action_table, reduce_table); + } + +@@ -846,7 +846,7 @@ public class Main { + lalr_state ordered[] = new lalr_state[lalr_state.number()]; + + /* put the states in sorted order for a nicer display */ +- for (var st : lalr_state.all_states()){ ++ for (lalr_state st : lalr_state.all_states()){ + ordered[st.index()] = st; + } + +--- a/src/java/java_cup/emit.java ++++ b/src/java/java_cup/emit.java +@@ -624,14 +624,14 @@ public class emit { + + /* collect up the productions in order */ + all_prods = new production[production.number()]; +- for (var prod:production.all()){ ++ for (production prod:production.all()){ + all_prods[prod.index()] = prod; + } + + // make short[][] + short[][] prod_table = new short[production.number()][2]; + for (int i = 0; i < production.number(); i++) { +- var prod = all_prods[i]; ++ production prod = all_prods[i]; + // { lhs symbol , rhs size } + prod_table[i][0] = (short) prod.lhs().the_symbol().index(); + prod_table[i][1] = (short) prod.rhs_length(); +@@ -818,12 +818,12 @@ public class emit { + nchar = do_newline(out, nchar, nbytes); + nbytes += do_escaped(out, (char) (sa.length & 0xFFFF)); + nchar = do_newline(out, nchar, nbytes); +- for (var element:sa) { ++ for (short[] element:sa) { + nbytes += do_escaped(out, (char) (element.length >> 16)); + nchar = do_newline(out, nchar, nbytes); + nbytes += do_escaped(out, (char) (element.length & 0xFFFF)); + nchar = do_newline(out, nchar, nbytes); +- for (var element2 : element) { ++ for (short element2 : element) { + // contents of string are (value+2) to allow for common -1, 0 cases + // (UTF-8 encoding is most efficient for 0 { + public lalr_item get_one() throws internal_error { + if (_all.values().size() == 0) + return null; +- var result = iterator().next(); ++ lalr_item result = iterator().next(); + remove(result); + return result; + } +@@ -255,30 +255,30 @@ public class lalr_item_set implements Iterable { + hashcode_cache = null; + + /* each current element needs to be considered */ +- var consider = new lalr_item_set(this); ++ lalr_item_set consider = new lalr_item_set(this); + + /* repeat this until there is nothing else to consider */ + while (consider.size() > 0) { + /* get one item to consider */ +- var itm = consider.get_one(); ++ lalr_item itm = consider.get_one(); + + /* do we have a dot before a non terminal */ +- var nt = itm.dot_before_nt(); ++ non_terminal nt = itm.dot_before_nt(); + if (nt != null) { + /* create the lookahead set based on first after dot */ +- var new_lookaheads = itm.calc_lookahead(itm.lookahead()); ++ terminal_set new_lookaheads = itm.calc_lookahead(itm.lookahead()); + + /* are we going to need to propagate our lookahead to new item */ +- var need_prop = itm.lookahead_visible(); ++ boolean need_prop = itm.lookahead_visible(); + + /* create items for each production of that non term */ +- for (var prod : nt.productions()) { ++ for (production prod : nt.productions()) { + + /* create new item with dot at start and that lookahead */ +- var new_itm = new lalr_item(prod, new terminal_set(new_lookaheads)); ++ lalr_item new_itm = new lalr_item(prod, new terminal_set(new_lookaheads)); + + /* add/merge item into the set */ +- var add_itm = add(new_itm); ++ lalr_item add_itm = add(new_itm); + /* if propagation is needed link to that item */ + if (need_prop) + itm.add_propagate(add_itm); +@@ -335,7 +335,7 @@ public class lalr_item_set implements Iterable { + // CSA fix! we'd *like* to hash just a few elements, but + // that means equal sets will have inequal hashcodes, which + // we're not allowed (by contract) to do. So hash them all. +- for (var e : this) ++ for (lalr_item e : this) + result ^= e.hashCode(); + + hashcode_cache = Integer.valueOf(result); +@@ -352,7 +352,7 @@ public class lalr_item_set implements Iterable { + StringBuilder result = new StringBuilder(); + + result.append("{\n"); +- for (var e : this) ++ for (lalr_item e : this) + result.append(" " + e + "\n"); + + result.append("}"); +--- a/src/java/java_cup/lalr_state.java ++++ b/src/java/java_cup/lalr_state.java +@@ -187,14 +187,14 @@ public class lalr_state { + } + + System.out.println("lalr_state [" + st.index() + "] {"); +- for (var itm : st.items()) { ++ for (lalr_item itm : st.items()) { + System.out.print(" ["); + System.out.print(itm.the_production().lhs().the_symbol().name()); + System.out.print(" ::= "); + for (int i = 0; i < itm.the_production().rhs_length(); i++) { + if (i == itm.dot_pos()) + System.out.print("\u00B7 "); +- var part = itm.the_production().rhs(i); ++ production_part part = itm.the_production().rhs(i); + if (part.is_action()) + System.out.print("{action} "); + else +@@ -219,7 +219,7 @@ public class lalr_state { + */ + protected static void propagate_all_lookaheads() throws internal_error { + /* iterate across all states */ +- for (var st : all_states()) ++ for (lalr_state st : all_states()) + st.propagate_lookaheads(); + } + +@@ -298,7 +298,7 @@ public class lalr_state { + /* build item with dot at front of start production and EOF lookahead */ + start_items = new lalr_item_set(); + +- var start_itm = new lalr_item(start_prod); ++ lalr_item start_itm = new lalr_item(start_prod); + start_itm.lookahead().add(terminal.EOF); + + start_items.add(start_itm); +@@ -319,29 +319,29 @@ public class lalr_state { + /* continue looking at new states until we have no more work to do */ + while (!work_stack.empty()) { + /* remove a state from the work set */ +- var st = work_stack.pop(); ++ lalr_state st = work_stack.pop(); + + /* gather up all the symbols that appear before dots */ +- var outgoing = new symbol_set(); +- for (var itm : st.items()) { ++ symbol_set outgoing = new symbol_set(); ++ for (lalr_item itm : st.items()) { + /* add the symbol before the dot (if any) to our collection */ +- var sym = itm.symbol_after_dot(); ++ symbol sym = itm.symbol_after_dot(); + if (sym != null) + outgoing.add(sym); + } + + /* now create a transition out for each individual symbol */ +- for (var sym : outgoing) { ++ for (symbol sym : outgoing) { + + /* will be keeping the set of items with propagate links */ +- var linked_items = new lalr_item_set(); ++ lalr_item_set linked_items = new lalr_item_set(); + + // gather up shifted versions of all the items that have this symbol before the + // dot +- var new_items = new lalr_item_set(); +- for (var itm : st.items()) { ++ lalr_item_set new_items = new lalr_item_set(); ++ for (lalr_item itm : st.items()) { + /* if this is the symbol we are working on now, add to set */ +- var sym2 = itm.symbol_after_dot(); ++ symbol sym2 = itm.symbol_after_dot(); + if (sym.equals(sym2)) { + /* add to the kernel of the new state */ + new_items.add(itm.shift()); +@@ -353,7 +353,7 @@ public class lalr_state { + /* use new items as state kernel */ + kernel = new lalr_item_set(new_items); + /* have we seen this one already? */ +- var new_st = _all_kernels.get(kernel); ++ lalr_state new_st = _all_kernels.get(kernel); + + /* if we haven't, build a new state out of the item set */ + if (new_st == null) { +@@ -372,7 +372,7 @@ public class lalr_state { + /* otherwise relink propagation to items in existing state */ + else { + /* walk through the items that have links to the new state */ +- for (var fix_itm : linked_items) { ++ for (lalr_item fix_itm : linked_items) { + + /* look at each propagate link out of that item */ + for (int l = 0; l < fix_itm.propagate_items().size(); l++) { +@@ -410,7 +410,7 @@ public class lalr_state { + */ + protected void propagate_lookaheads() throws internal_error { + /* recursively propagate out from each item in the state */ +- for (var itm : items()) ++ for (lalr_item itm : items()) + itm.propagate_lookaheads(null); + } + +@@ -439,17 +439,17 @@ public class lalr_state { + * @param reduce_table the reduce-goto table to put entries in. + */ + public void build_table_entries(parse_action_table act_table, parse_reduce_table reduce_table) throws internal_error { +- var conflict_set = new terminal_set(); ++ terminal_set conflict_set = new terminal_set(); + + /* pull out our rows from the tables */ +- var our_act_row = act_table.under_state[index()]; +- var our_red_row = reduce_table.under_state[index()]; ++ parse_action_row our_act_row = act_table.under_state[index()]; ++ parse_reduce_row our_red_row = reduce_table.under_state[index()]; + + /* consider each item in our state */ +- for (var itm : items()) { ++ for (lalr_item itm : items()) { + /* if its completed (dot at end) then reduce under the lookahead */ + if (itm.dot_at_end()) { +- var act = new reduce_action(itm.the_production()); ++ reduce_action act = new reduce_action(itm.the_production()); + + /* consider each lookahead symbol */ + for (int t = 0; t < terminal.number(); t++) { +@@ -463,7 +463,7 @@ public class lalr_state { + } else { + /* we now have at least one conflict */ + terminal term = terminal.find(t); +- var other_act = our_act_row.under_term[t]; ++ parse_action other_act = our_act_row.under_term[t]; + + /* if the other act was not a shift */ + if ((other_act.kind() != parse_action.SHIFT) && (other_act.kind() != parse_action.NONASSOC)) { +@@ -490,9 +490,9 @@ public class lalr_state { + /* consider each outgoing transition */ + for (lalr_transition trans = transitions(); trans != null; trans = trans.next()) { + /* if its on an terminal add a shift entry */ +- var sym = trans.on_symbol(); ++ symbol sym = trans.on_symbol(); + if (!sym.is_non_term()) { +- var act = new shift_action(trans.to_state()); ++ shift_action act = new shift_action(trans.to_state()); + + /* if we don't already have an action put this one in */ + if (our_act_row.under_term[sym.index()].kind() == parse_action.ERROR) { +@@ -641,7 +641,7 @@ public class lalr_state { + boolean after_itm; + + /* consider each element */ +- for (var itm : items()) { ++ for (lalr_item itm : items()) { + /* clear the S/R conflict set for this item */ + + /* if it results in a reduce, it could be a conflict */ +@@ -650,7 +650,7 @@ public class lalr_state { + after_itm = false; + + /* compare this item against all others looking for conflicts */ +- for (var compare : items()) { ++ for (lalr_item compare : items()) { + /* if this is the item, next one is after it */ + if (itm == compare) + after_itm = true; +@@ -727,7 +727,7 @@ public class lalr_state { + + int relevancecounter = 0; + /* find and report on all items that shift under our conflict symbol */ +- for (var itm : items()) { ++ for (lalr_item itm : items()) { + + /* only look if its not the same item and not a reduce */ + if (itm != red_itm && !itm.dot_at_end()) { +--- a/src/java/java_cup/parse_action_table.java ++++ b/src/java/java_cup/parse_action_table.java +@@ -73,7 +73,7 @@ public class parse_action_table { + } + + /* now go across every production and make sure we hit it */ +- for (var prod : production.all()){ ++ for (production prod : production.all()){ + /* if we didn't hit it give a warning */ + if (prod.num_reductions() == 0) { + /* +--- a/src/java/java_cup/symbol_set.java ++++ b/src/java/java_cup/symbol_set.java +@@ -90,8 +90,8 @@ public class symbol_set implements Iterable { + not_null(other); + + /* walk down our set and make sure every element is in the other */ +- for (var e : this) +- if (!other.contains(e)) ++ for (Iterator e = iterator(); e.hasNext();) ++ if (!other.contains(e.next())) + return false; + /* they were all there */ + return true; +@@ -155,8 +155,8 @@ public class symbol_set implements Iterable { + not_null(other); + + /* walk down the other set and do the adds individually */ +- for (var e : other) +- result = add(e) || result; ++ for (Iterator e = other.iterator(); e.hasNext();) ++ result = add(e.next()) || result; + + return result; + } +@@ -172,8 +172,8 @@ public class symbol_set implements Iterable { + not_null(other); + + /* walk down the other set and do the removes individually */ +- for (var s : other) +- remove(s); ++ for (Iterator s = other.iterator(); s.hasNext();) ++ remove(s.next()); + } + + /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ +@@ -212,8 +212,8 @@ public class symbol_set implements Iterable { + int result = 0; + + /* hash together codes from at most first 5 elements */ +- for (var s : this) +- result ^= s.hashCode(); ++ for (Iterator s = iterator(); s.hasNext(); ) ++ result ^= s.next().hashCode(); + + return result; + } +@@ -228,12 +228,12 @@ public class symbol_set implements Iterable { + + result = "{"; + comma_flag = false; +- for (var s : this) { ++ for (Iterator s = iterator(); s.hasNext();) { + if (comma_flag) + result += ", "; + else + comma_flag = true; +- result += s.name(); ++ result += s.next().name(); + } + result += "}"; + diff --git a/java-cup-lr_parser-constructor.patch b/java-cup-lr_parser-constructor.patch deleted file mode 100644 index 40f7d4b..0000000 --- a/java-cup-lr_parser-constructor.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- develop/src/java_cup/runtime/lr_parser.java 2006-03-28 14:34:53.000000000 +0300 -+++ develop/src/java_cup/runtime/lr_parser.java.f 2007-06-23 11:01:53.000000000 +0300 -@@ -121,6 +121,7 @@ - * Simple constructor. - */ - public lr_parser() { -+ symbolFactory = new DefaultSymbolFactory(); - } - - /** -@@ -133,7 +134,6 @@ - * Constructor that sets the default scanner and a SymbolFactory - */ - public lr_parser(Scanner s, SymbolFactory symfac) { -- this(); // in case default constructor someday does something - symbolFactory = symfac; - setScanner(s); - } diff --git a/java-cup-no-classpath-in-manifest.patch b/java-cup-no-classpath-in-manifest.patch index 385c20f..23600e7 100644 --- a/java-cup-no-classpath-in-manifest.patch +++ b/java-cup-no-classpath-in-manifest.patch @@ -1,10 +1,15 @@ ---- develop/build.xml.orig 2006-09-09 06:43:37.000000000 +0200 -+++ develop/build.xml 2006-09-09 06:45:08.000000000 +0200 -@@ -62,7 +62,6 @@ - +--- a/build.xml ++++ b/build.xml +@@ -67,12 +67,10 @@ + -- +- - + + +- + + + diff --git a/java-cup-no-cup-no-jflex.patch b/java-cup-no-cup-no-jflex.patch index 5a78a25..5ee7048 100644 --- a/java-cup-no-cup-no-jflex.patch +++ b/java-cup-no-cup-no-jflex.patch @@ -1,6 +1,6 @@ ---- develop/build.xml.orig 2006-09-09 06:43:37.000000000 +0200 -+++ develop/build.xml 2006-09-09 06:44:10.000000000 +0200 -@@ -40,18 +40,7 @@ +--- a/build.xml ++++ b/build.xml +@@ -44,18 +44,7 @@ @@ -17,6 +17,6 @@ - - + - - + + diff --git a/java-cup-nogit.patch.in b/java-cup-nogit.patch.in new file mode 100644 index 0000000..025ace3 --- /dev/null +++ b/java-cup-nogit.patch.in @@ -0,0 +1,60 @@ +--- a/build.xml ++++ b/build.xml +@@ -20,26 +20,6 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ${changed}${gitversion} + + + +@@ -76,10 +56,6 @@ + + + +- +- + + + +--- a/src/java/java_cup/version.java ++++ b/src/java/java_cup/version.java +@@ -30,7 +30,7 @@ public class version { + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The update letter. */ +- public static final String update = "b beta 20140226"; ++ public static final String update = "b beta @GIT_DATE@"; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + +@@ -40,7 +40,7 @@ public class version { + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Full title of the system */ +- public static final String title_str = "CUP " + "v0.11b 20160615 (GIT 3d0ae71)"; ++ public static final String title_str = "CUP " + "v0.11b @GIT_DATE@ (GIT @GIT_HASH@)"; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + diff --git a/java-cup.license b/java-cup.license deleted file mode 100644 index 00743db..0000000 --- a/java-cup.license +++ /dev/null @@ -1,26 +0,0 @@ -CUP Parser Generator Copyright Notice, License, and Disclaimer -Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, provided that -the above copyright notice appear in all copies and that both the copyright -notice and this permission notice and warranty disclaimer appear in supporting -documentation, and that the names of the authors or their employers not be used -in advertising or publicity pertaining to distribution of the software without -specific, written prior permission. - -The authors and their employers disclaim all warranties with regard to this -software, including all implied warranties of merchantability and fitness. In -no event shall the authors or their employers be liable for any special, -indirect or consequential damages or any damages whatsoever resulting from loss -of use, data or profits, whether in an action of contract, negligence or other -tortious action, arising out of or in connection with the use or performance of -this software. -This is an open source license. It is also GPL-Compatible (see entry for -"Standard ML of New Jersey"). The portions of CUP output which are hard-coded -into the CUP source code are (naturally) covered by this same license, as is -the CUP runtime code linked with the generated parser. - -Java is a trademark of Sun Microsystems, Inc. References to the Java -programming language in relation to JLex are not meant to imply that Sun -endorses this product. diff --git a/java-cup.script b/java-cup.script deleted file mode 100644 index c567bae..0000000 --- a/java-cup.script +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# -# java-cup script -# JPackage Project - -# 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 - -# Configuration -MAIN_CLASS="java_cup.Main" -BASE_FLAGS="" -BASE_OPTIONS="" -BASE_JARS="java-cup java-cup-runtime" - -# Set parameters -set_jvm -set_classpath $BASE_JARS -set_flags $BASE_FLAGS -set_options $BASE_OPTIONS - -# Let's start -run "$@" diff --git a/java-cup.spec b/java-cup.spec index 7db6678..9e6c768 100644 --- a/java-cup.spec +++ b/java-cup.spec @@ -1,7 +1,7 @@ # # spec file for package java-cup # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,8 +17,10 @@ %global _without_bootstrap 1 -%define cvs_version 11a +%define cvs_version 11b %define real_name java-cup +%define git_hash d69c832 +%define git_date 20210814 %bcond_with bootstrap Name: java-cup Version: 0.11 @@ -26,28 +28,29 @@ Release: 0 Summary: LALR Parser Generator in Java License: HPND Group: Development/Libraries/Java -Url: http://www2.cs.tum.edu/projects/cup/ -# https://www2.in.tum.de/WebSVN/dl.php?repname=CUP&path=/develop/&rev=0&isdir=1 -Source0: develop.tar.bz2 -Source1: java-cup.script -Source2: java-cup-generated-files.tar.bz2 -# From http://www2.cs.tum.edu/projects/cup/ -Source3: java-cup.license -Patch1: java-cup-no-classpath-in-manifest.patch +URL: http://www2.cs.tum.edu/projects/cup/ +Source0: %{real_name}-%{git_hash}.tar.xz +Source1: %{real_name}-generated-files.tar.xz +Source100: java-cup-nogit.patch.in +Patch0: java-cup-no-classpath-in-manifest.patch +Patch1: java-cup-java8.patch Patch2: java-cup-no-cup-no-jflex.patch Patch3: java-cup-classpath.patch -# Missing symbolFactory initialization in lr_parser, causes sinjdoc to crash -Patch4: java-cup-lr_parser-constructor.patch BuildRequires: ant BuildRequires: java-devel +BuildRequires: javapackages-tools BuildRequires: xml-commons-apis-bootstrap BuildRequires: xml-commons-resolver-bootstrap -#!BuildIgnore: xml-commons-apis xml-commons-resolver xalan-j2 xerces-j2 +#!BuildIgnore: xalan-j2 +#!BuildIgnore: xerces-j2 +#!BuildIgnore: xml-commons-apis +#!BuildIgnore: xml-commons-resolver Obsoletes: java_cup < %{version}-%{release} Provides: java_cup = %{version}-%{release} BuildArch: noarch %if %without bootstrap BuildRequires: java-cup-bootstrap +BuildRequires: javapackages-local BuildRequires: jflex %endif # bootstrap variant is just stripped down java-cup, so it conflicts @@ -91,19 +94,18 @@ java-cup is a LALR Parser Generator in Java. With v0.11, you can: * %endif %prep -%setup -q -n develop +%setup -q -n %{real_name}-%{git_hash} +cat %{SOURCE100} | sed 's#@GIT_HASH@#%{git_hash}#g' | sed 's#@GIT_DATE@#%{git_date}#g' | patch -p1 -u -l +%patch0 -p1 %patch1 -p1 %if %with bootstrap -%setup -q -T -D -a 2 -n develop +%setup -q -T -D -a 1 -n %{real_name}-%{git_hash} %patch2 -p1 %else %{_bindir}/find . -name '*.jar' | %{_bindir}/xargs rm %patch3 -p1 %endif -%patch4 -p1 -perl -pi -e 's/1\.2/1.6/g' build.xml -mkdir -p classes dist -cp %{SOURCE3} license.txt +mkdir -p target/classes %build %if %with bootstrap @@ -117,18 +119,33 @@ ant %install # jar mkdir -p %{buildroot}%{_javadir} -cp -a dist/%{real_name}-%{cvs_version}.jar %{buildroot}%{_javadir}/%{real_name}-%{version}.jar -cp -a dist/%{real_name}-%{cvs_version}-runtime.jar %{buildroot}%{_javadir}/%{real_name}-runtime-%{version}.jar -(cd %{buildroot}%{_javadir} && for jar in *-%{version}*; do ln -s ${jar} ${jar/-%{version}/}; done) +cp -a target/dist/%{real_name}-%{cvs_version}.jar %{buildroot}%{_javadir}/%{real_name}.jar +cp -a target/dist/%{real_name}-%{cvs_version}-runtime.jar %{buildroot}%{_javadir}/%{real_name}-runtime.jar + +%if %without bootstrap +# maven data +%add_maven_depmap com.github.vbmacher:%{real_name}:%{cvs_version}-%{git_date} %{real_name}.jar +%add_maven_depmap com.github.vbmacher:%{real_name}-runtime:%{cvs_version}-%{git_date} %{real_name}-runtime.jar +%endif + # compatibility symlinks (cd %{buildroot}%{_javadir} && ln -s %{real_name}.jar java_cup.jar && ln -s %{real_name}-runtime.jar java_cup-runtime.jar) mkdir -p %{buildroot}%{_bindir} -install -p -m 755 %{SOURCE1} %{buildroot}%{_bindir}/%{real_name} +%jpackage_script java_cup.Main "" "" %{real_name}:%{real_name}-runtime %{real_name} + +%if %with bootstrap %files -%doc changelog.txt license.txt +%{_javadir}/%{real_name}*.jar +%else + +%files -f .mfiles +%endif +%license licence.txt +%doc changelog.txt %attr(0755,root,root) %{_bindir}/%{real_name} -%{_javadir}/* +%{_javadir}/java_cup*.jar + %if %without bootstrap %files manual %doc manual.html