diff --git a/.apache-commons-cli.metadata b/.apache-commons-cli.metadata new file mode 100644 index 0000000..cbea3a0 --- /dev/null +++ b/.apache-commons-cli.metadata @@ -0,0 +1 @@ +c238aeb10a5114b50a6351a8b452a687426ce5b6 SOURCES/commons-cli-1.4-src.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e47fecd --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/commons-cli-1.4-src.tar.gz diff --git a/SOURCES/CLI-253-workaround.patch b/SOURCES/CLI-253-workaround.patch new file mode 100644 index 0000000..798c5a4 --- /dev/null +++ b/SOURCES/CLI-253-workaround.patch @@ -0,0 +1,96 @@ +commit 77218790904f40395304669f5d79740f459c0a90 (HEAD -> cli-253, origin/cli-253) +Author: Michal Srb +AuthorDate: Mon Jun 22 15:01:30 2015 +0200 +Commit: Michal Srb +CommitDate: Mon Jun 22 15:04:05 2015 +0200 + + [CLI-253] Prevent "Unrecognized option: --null" when handling long opts in PosixParser + +diff --git a/src/main/java/org/apache/commons/cli/Options.java b/src/main/java/org/apache/commons/cli/Options.java +index 0ee4eea..1c38194 100644 +--- a/src/main/java/org/apache/commons/cli/Options.java ++++ b/src/main/java/org/apache/commons/cli/Options.java +@@ -224,6 +224,20 @@ public class Options implements Serializable + } + + /** ++ * Retrieve the {@link Option} matching the long name specified. ++ * The leading hyphens in the name are ignored (up to 2). ++ * ++ * @param opt long name of the {@link Option} ++ * @return the option represented by opt ++ */ ++ Option getLongOption(String opt) ++ { ++ opt = Util.stripLeadingHyphens(opt); ++ ++ return longOpts.get(opt); ++ } ++ ++ /** + * Returns the options with a long name starting with the name specified. + * + * @param opt the partial name of the option +diff --git a/src/main/java/org/apache/commons/cli/PosixParser.java b/src/main/java/org/apache/commons/cli/PosixParser.java +index c13a65e..14d2936 100644 +--- a/src/main/java/org/apache/commons/cli/PosixParser.java ++++ b/src/main/java/org/apache/commons/cli/PosixParser.java +@@ -131,7 +131,7 @@ public class PosixParser extends Parser + } + else + { +- currentOption = options.getOption(matchingOpts.get(0)); ++ currentOption = options.getLongOption(matchingOpts.get(0)); + + tokens.add("--" + currentOption.getLongOpt()); + if (pos != -1) +diff --git a/src/test/java/org/apache/commons/cli/bug/BugCLI253Test.java b/src/test/java/org/apache/commons/cli/bug/BugCLI253Test.java +new file mode 100644 +index 0000000..e37b7bc +--- /dev/null ++++ b/src/test/java/org/apache/commons/cli/bug/BugCLI253Test.java +@@ -0,0 +1,44 @@ ++/* ++ * Licensed to the Apache Software Foundation (ASF) under one or more ++ * contributor license agreements. See the NOTICE file distributed with ++ * this work for additional information regarding copyright ownership. ++ * The ASF licenses this file to You under the Apache License, Version 2.0 ++ * (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ */ ++ ++package org.apache.commons.cli.bug; ++ ++import static org.junit.Assert.assertTrue; ++ ++import org.apache.commons.cli.CommandLine; ++import org.apache.commons.cli.Option; ++import org.apache.commons.cli.Options; ++import org.apache.commons.cli.ParseException; ++import org.apache.commons.cli.PosixParser; ++import org.junit.Test; ++ ++@SuppressWarnings("deprecation") // tests some deprecated classes ++public class BugCLI253Test { ++ ++ @Test ++ public void testGroovyUseCase() throws ParseException { ++ CommandLine cli = new PosixParser().parse(getOptions(), new String[] { "--classpath" }); ++ assertTrue(cli.hasOption("--classpath")); ++ } ++ ++ private Options getOptions() { ++ Options options = new Options(); ++ options.addOption(Option.builder("classpath").build()); ++ options.addOption(Option.builder("cp").longOpt("classpath").build()); ++ return options; ++ } ++} diff --git a/SPECS/apache-commons-cli.spec b/SPECS/apache-commons-cli.spec new file mode 100644 index 0000000..1e48468 --- /dev/null +++ b/SPECS/apache-commons-cli.spec @@ -0,0 +1,119 @@ +Name: apache-commons-cli +Version: 1.4 +Release: 4%{?dist} +Summary: Command Line Interface Library for Java +License: ASL 2.0 +URL: http://commons.apache.org/cli/ +BuildArch: noarch + +Source0: http://www.apache.org/dist/commons/cli/source/commons-cli-%{version}-src.tar.gz + +# workaround for https://issues.apache.org/jira/browse/CLI-253 +Patch0: CLI-253-workaround.patch + +BuildRequires: maven-local +BuildRequires: mvn(junit:junit) +BuildRequires: mvn(org.apache.commons:commons-parent:pom:) +BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin) + +%description +The CLI library provides a simple and easy to use API for working with the +command line arguments and options. + +%{?javadoc_package} + +%prep +%autosetup -p1 -n commons-cli-%{version}-src + +# Compatibility links +%mvn_alias : org.apache.commons:commons-cli +%mvn_file : commons-cli %{name} + +%build +%mvn_build + +%install +%mvn_install + +%files -f .mfiles +%license LICENSE.txt NOTICE.txt +%doc README.md RELEASE-NOTES.txt + +%changelog +* Wed Feb 07 2018 Fedora Release Engineering - 1.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Jan 29 2018 Mikolaj Izdebski - 1.4-3 +- Cleanup spec file + +* Wed Jul 26 2017 Fedora Release Engineering - 1.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue Apr 11 2017 Michael Simacek - 1.4-1 +- Update to upstream version 1.4 + +* Fri Feb 10 2017 Fedora Release Engineering - 1.3.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 01 2017 Michael Simacek - 1.3.1-5 +- Remove BR on jacoco + +* Wed Jun 15 2016 Mikolaj Izdebski - 1.3.1-4 +- Regenerate build-requires + +* Wed Feb 03 2016 Fedora Release Engineering - 1.3.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jun 23 2015 Michal Srb - 1.3.1-2 +- Add workaround for CLI-253 + +* Wed Jun 17 2015 Michal Srb - 1.3.1-1 +- Update to upstream version 1.3.1 + +* Wed Jun 17 2015 Fedora Release Engineering - 1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Jun 3 2015 Mikolaj Izdebski - 1.3-1 +- Update to upstream version 1.3 + +* Sat Jun 07 2014 Fedora Release Engineering - 1.2-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Mar 04 2014 Stanislav Ochotnicky - 1.2-12 +- Use Requires: java-headless rebuild (#1067528) + +* Mon Aug 05 2013 Mat Booth - 1.2-11 +- Update for newer guidelines +- Drop ancient obsoletes/provides on old jakarta name + +* Sat Aug 03 2013 Fedora Release Engineering - 1.2-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Feb 19 2013 Mat Booth - 1.2-9 +- Add missing maven-local BuildRequires + +* Wed Feb 13 2013 Fedora Release Engineering - 1.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jul 18 2012 Fedora Release Engineering - 1.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Jan 12 2012 Fedora Release Engineering - 1.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Nov 30 2011 Alexander Kurtakov 1.2-5 +- Build with maven 3. +- Adapt to current guidelines. + +* Mon Feb 07 2011 Fedora Release Engineering - 1.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Nov 9 2010 Chris Spike 1.2-3 +- Removed maven* BRs in favour of apache-commons-parent +- Added deprecated groupId to depmap for compatibility reasons + +* Mon Oct 18 2010 Chris Spike 1.2-2 +- Removed Epoch + +* Sun Oct 3 2010 Chris Spike 1.2-1 +- Rename and rebase from jakarta-commons-cli