diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 44478a7..0000000
--- a/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/v0.4.2.tar.gz
diff --git a/climbing-nemesis.py b/climbing-nemesis.py
deleted file mode 100644
index e78fd0c..0000000
--- a/climbing-nemesis.py
+++ /dev/null
@@ -1,230 +0,0 @@
-#!/usr/bin/env python
-
-import xml.etree.ElementTree as ET
-import argparse
-import StringIO
-import re
-import subprocess
-import logging
-
-from os.path import exists as pathexists
-from os.path import realpath
-from os.path import join as pathjoin
-from os import makedirs
-from os import symlink
-from os import remove as rmfile
-from shutil import copyfile
-
-class Artifact(object):
- def __init__(self, a, g, v):
- self.artifact = a
- self.group = g
- self.version = v
-
- @classmethod
- def fromCoords(k, coords):
- g,a,v = coords.split(":")
- return k(a, g, v)
-
- @classmethod
- def fromSubtree(k, t, ns):
- a = t.find("./%sartifactId" % ns).text
- g = t.find("./%sgroupId" % ns).text
- v = t.find("./%sversion" % ns).text
- return k(a, g, v)
-
- def contains(self, substrings):
- for s in substrings:
- if s in self.artifact or s in self.group:
- cn_debug("ignoring %r because it contains %s" % (self, s))
- return True
- if len(substrings) > 0:
- cn_debug("not ignoring %r; looked for %r" % (self, substrings))
- return False
-
- def __repr__(self):
- return "%s:%s:%s" % (self.group, self.artifact, self.version)
-
-class DummyPOM(object):
- def __init__(self, groupID=None, artifactID=None, version=None):
- self.groupID = groupID
- self.artifactID = artifactID
- self.version = version
- self.deps = []
-
-def interestingDep(dt, namespace):
- if len(dt.findall("./%soptional" % namespace)) != 0:
- cn_debug("ignoring optional dep %r" % Artifact.fromSubtree(dt, namespace))
- return False
- if [e for e in dt.findall("./%sscope" % namespace) if e.text == "test"] != []:
- cn_debug("ignoring test dep %r" % Artifact.fromSubtree(dt, namespace))
- return False
- return True
-
-class POM(object):
- def __init__(self, filename, suppliedGroupID=None, suppliedArtifactID=None, ignored_deps=[], override=None, extra_deps=[]):
- self.filename = filename
- self.sGroupID = suppliedGroupID
- self.sArtifactID = suppliedArtifactID
- self.logger = logging.getLogger("com.freevariable.climbing-nemesis")
- self.deps = []
- self.ignored_deps = ignored_deps
- self.extra_deps = extra_deps
- cn_debug("POM: extra_deps is %r" % extra_deps)
- self._parsePom()
- self.claimedGroup, self.claimedArtifact = override is not None and override or (self.groupID, self.artifactID)
-
- def _parsePom(self):
- tree = ET.parse(self.filename)
- project = tree.getroot()
- self.logger.info("parsing POM %s", self.filename)
- self.logger.debug("project tag is '%s'", project.tag)
- tagmatch = re.match("[{](.*)[}].*", project.tag)
- namespace = tagmatch and "{%s}" % tagmatch.groups()[0] or ""
- self.logger.debug("looking for '%s'", ("./%sgroupId" % namespace))
- groupIDtag = project.find("./%sgroupId" % namespace)
- if groupIDtag is None:
- groupIDtag = project.find("./%sparent/%sgroupId" % (namespace,namespace))
-
- versiontag = project.find("./%sversion" % namespace)
- if versiontag is None:
- versiontag = project.find("./%sparent/%sversion" % (namespace,namespace))
- self.logger.debug("group ID tag is '%s'", groupIDtag)
- self.groupID = groupIDtag.text
- self.artifactID = project.find("./%sartifactId" % namespace).text
- self.version = versiontag.text
- depTrees = project.findall(".//%sdependencies/%sdependency" % (namespace, namespace))
- alldeps = [Artifact.fromSubtree(depTree, namespace) for depTree in depTrees if interestingDep(depTree, namespace)]
- alldeps = [dep for dep in alldeps if not (dep.group == self.groupID and dep.artifact == self.artifactID)]
- self.deps = [dep for dep in alldeps if not dep.contains(self.ignored_deps)] + [Artifact.fromCoords(xtra) for xtra in self.extra_deps]
- jarmatch = re.match(".*JPP-(.*).pom", self.filename)
- self.jarname = (jarmatch and jarmatch.groups()[0] or None)
-
-def cn_debug(*args):
- logging.getLogger("com.freevariable.climbing-nemesis").debug(*args)
-
-def cn_info(*args):
- logging.getLogger("com.freevariable.climbing-nemesis").info(*args)
-
-def resolveArtifact(group, artifact, pomfile=None, kind="jar", ignored_deps=[], override=None, extra_deps=[]):
- # XXX: some error checking would be the responsible thing to do here
- cn_debug("rA: extra_deps is %r" % extra_deps)
- if pomfile is None:
- try:
- if getFedoraRelease() > 19:
- [pom] = subprocess.check_output(["xmvn-resolve", "%s:%s:pom:%s" % (group, artifact, kind)]).split()
- else:
- [pom] = subprocess.check_output(["xmvn-resolve", "%s:%s:%s" % (group, artifact, kind)]).split()
- return POM(pom, ignored_deps=ignored_deps, override=override, extra_deps=extra_deps)
- except:
- return DummyPOM(group, artifact)
- else:
- return POM(pomfile, ignored_deps=ignored_deps, override=override, extra_deps=extra_deps)
-
-def resolveArtifacts(identifiers):
- coords = ["%s:%s:jar" % (group, artifact) for (group, artifact) in identifiers]
- poms = subprocess.check_output(["xmvn-resolve"] + coords).split()
- return [POM(pom) for pom in poms]
-
-def resolveJar(group, artifact):
- [jar] = subprocess.check_output(["xmvn-resolve", "%s:%s:jar:jar" % (group, artifact)]).split()
- return jar
-
-def makeIvyXmlTree(org, module, revision, status="release", meta={}, deps=[]):
- ivy_module = ET.Element("ivy-module", {"version":"1.0", "xmlns:e":"http://ant.apache.org/ivy/extra"})
- info = ET.SubElement(ivy_module, "info", dict({"organisation":org, "module":module, "revision":revision, "status":status}.items() + meta.items()))
- info.text = " " # ensure a close tag
- confs = ET.SubElement(ivy_module, "configurations")
- for conf in ["default", "provided", "test"]:
- ET.SubElement(confs, "conf", {"name":conf})
- pubs = ET.SubElement(ivy_module, "publications")
- ET.SubElement(pubs, "artifact", {"name":module, "type":"jar"})
- if len(deps) > 0:
- deptree = ET.SubElement(ivy_module, "dependencies")
- for dep in deps:
- ET.SubElement(deptree, "dependency", {"org":dep.group, "name":dep.artifact, "rev":dep.version})
- return ET.ElementTree(ivy_module)
-
-def writeIvyXml(org, module, revision, status="release", fileobj=None, meta={}, deps=[]):
- # XXX: handle deps!
- if fileobj is None:
- fileobj = StringIO.StringIO()
- tree = makeIvyXmlTree(org, module, revision, status, meta=meta, deps=deps)
- tree.write(fileobj, xml_declaration=True)
- return fileobj
-
-def ivyXmlAsString(org, module, revision, status, meta={}, deps=[]):
- return writeIvyXml(org, module, revision, status, meta=meta, deps=deps).getvalue()
-
-def placeArtifact(artifact_file, repo_dirname, org, module, revision, status="release", meta={}, deps=[], supplied_ivy_file=None, scala=None, override=None, override_dir_only=False):
- if scala is not None:
- module = module + "_%s" % scala
- jarmodule = module
- if override is not None:
- org, module = override
- if not override_dir_only:
- jarmodule = module
- repo_dir = realpath(repo_dirname)
- artifact_dir = pathjoin(*[repo_dir] + [org] + [module, revision])
- ivyxml_path = pathjoin(artifact_dir, "ivy.xml")
- artifact_repo_path = pathjoin(artifact_dir, "%s-%s.jar" % (jarmodule, revision))
-
- if not pathexists(artifact_dir):
- makedirs(artifact_dir)
-
- ivyxml_file = open(ivyxml_path, "w")
- if supplied_ivy_file is None:
- writeIvyXml(org, module, revision, status, ivyxml_file, meta=meta, deps=deps)
- else:
- copyfile(supplied_ivy_file, ivyxml_path)
-
- if pathexists(artifact_repo_path):
- rmfile(artifact_repo_path)
-
- symlink(artifact_file, artifact_repo_path)
-
-def getFedoraRelease():
- cmd = "rpm -q --qf %{version} fedora-release"
- return int(subprocess.check_output(cmd.split()))
-
-def main():
- parser = argparse.ArgumentParser(description="Place a locally-installed artifact in a custom local Ivy repository; get metadata from Maven")
- parser.add_argument("group", metavar="GROUP", type=str, help="name of group")
- parser.add_argument("artifact", metavar="ARTIFACT", type=str, help="name of artifact")
- parser.add_argument("repodir", metavar="REPO", type=str, help="location for local repo")
- parser.add_argument("--version", metavar="VERSION", type=str, help="version to advertise this artifact as, overriding Maven metadata")
- parser.add_argument("--meta", metavar="K=V", type=str, help="extra metadata to store in ivy.xml", action='append')
- parser.add_argument("--jarfile", metavar="JAR", type=str, help="local jar file (use instead of POM metadata")
- parser.add_argument("--pomfile", metavar="POM", type=str, help="local pom file (use instead of xmvn-resolved one")
- parser.add_argument("--log", metavar="LEVEL", type=str, help="logging level")
- parser.add_argument("--ivyfile", metavar="IVY", type=str, help="supplied Ivy file (use instead of POM metadata)")
- parser.add_argument("--scala", metavar="VERSION", type=str, help="encode given scala version in artifact name")
- parser.add_argument("--ignore", metavar="STR", type=str, help="ignore dependencies whose artifact or group contains str", action='append')
- parser.add_argument("--override", metavar="ORG:NAME", type=str, help="override organization and/or artifact name")
- parser.add_argument("--override-dir-only", action='store_true', help="override organization and/or artifact name")
- parser.add_argument("--extra-dep", metavar="ORG:NAME:VERSION", action='append', help="add the given dependencya")
- args = parser.parse_args()
-
- if args.log is not None:
- logging.basicConfig(level=getattr(logging, args.log.upper()))
-
- override = args.override and args.override.split(":") or None
- cn_debug("cl: args.extra_dep is %r" % args.extra_dep)
- extra_deps = args.extra_dep is not None and args.extra_dep or []
-
- pom = resolveArtifact(args.group, args.artifact, args.pomfile, "jar", ignored_deps=(args.ignore or []), override=((not args.override_dir_only) and override or None), extra_deps=extra_deps)
-
- if args.jarfile is None:
- jarfile = resolveJar(pom.groupID or args.group, pom.artifactID or args.artifact)
- else:
- jarfile = args.jarfile
-
- version = (args.version or pom.version)
-
- meta = dict([kv.split("=") for kv in (args.meta or [])])
- cn_debug("meta is %r" % meta)
-
- placeArtifact(jarfile, args.repodir, pom.groupID, pom.artifactID, version, meta=meta, deps=pom.deps, supplied_ivy_file=args.ivyfile, scala=args.scala, override=override, override_dir_only=args.override_dir_only)
-
-if __name__ == "__main__":
- main()
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..5204a84
--- /dev/null
+++ b/dead.package
@@ -0,0 +1 @@
+Orphaned for 6+ weeks
diff --git a/sbinary.spec b/sbinary.spec
deleted file mode 100644
index 5b1c8fa..0000000
--- a/sbinary.spec
+++ /dev/null
@@ -1,190 +0,0 @@
-%global sbinary_version 0.4.2
-%global scala_version 2.10
-%global scala_long_version 2.10.3
-%global build_with_sbt 0
-%global want_scalacheck 0
-
-Name: sbinary
-Version: %{sbinary_version}
-Release: 15%{?dist}
-Summary: Library for describing binary formats for Scala types
-
-License: MIT
-URL: https://github.com/harrah/sbinary
-Source0: https://github.com/harrah/sbinary/archive/v%{sbinary_version}.tar.gz
-Source1: https://raw.github.com/willb/climbing-nemesis/master/climbing-nemesis.py
-
-BuildArch: noarch
-%if %{build_with_sbt}
-BuildRequires: sbt
-BuildRequires: python
-%else
-BuildRequires: java-devel
-%endif
-BuildRequires: mvn(org.scala-lang:scala-compiler)
-BuildRequires: mvn(net.sourceforge.fmpp:fmpp)
-BuildRequires: mvn(org.beanshell:bsh)
-BuildRequires: mvn(xml-resolver:xml-resolver)
-BuildRequires: mvn(org.freemarker:freemarker)
-BuildRequires: maven-local
-BuildRequires: javapackages-tools
-Requires: javapackages-tools
-Requires: scala
-
-%description
-
-SBinary is a library for describing binary protocols, in the form of
-mappings between Scala types and binary formats. It can be used as a
-robust serialization mechanism for Scala objects or a way of dealing
-with existing binary formats found in the wild.
-
-It started out life as a loose port of Haskell's Data.Binary. It's
-since evolved a bit from there to take advantage of the features Scala
-implicits offer over Haskell type classes, but the core idea has
-remained the same.
-
-%package javadoc
-Summary: Javadoc for %{name}
-
-%description javadoc
-Javadoc for %{name}.
-
-%prep
-%setup -q
-
-%if %{build_with_sbt}
-sed -i -e 's/2[.]10[.]2/2.10.3/g' project/SBinaryProject.scala
-
-sed -i -e 's|"scalacheck" % "1[.]10[.]0"|"scalacheck" % "1.11.0"|g' project/SBinaryProject.scala
-sed -i -e 's|[.]identity||g' project/SBinaryProject.scala
-sed -i -e 's/0[.]13[.]0/0.13.1/g' project/build.properties || echo sbt.version=0.13.1 > project/build.properties
-
-cp -r /usr/share/java/sbt/ivy-local .
-mkdir boot
-
-cp %{SOURCE1} .
-
-chmod 755 climbing-nemesis.py
-
-%if %{want_scalacheck}
-./climbing-nemesis.py --jarfile /usr/share/java/scalacheck.jar org.scalacheck scalacheck ivy-local --version 1.11.0 --scala %{scala_version}
-%endif
-
-./climbing-nemesis.py net.sourceforge.fmpp fmpp ivy-local
-./climbing-nemesis.py org.freemarker freemarker ivy-local
-./climbing-nemesis.py org.beanshell bsh ivy-local --override org.beanshell:bsh
-./climbing-nemesis.py xml-resolver xml-resolver ivy-local
-%endif
-
-%build
-
-%if %{build_with_sbt}
-
-export SBT_BOOT_DIR=boot
-export SBT_IVY_DIR=ivy-local
-sbt package deliverLocal publishM2Configuration
-
-%else # build without sbt
-
-mkdir -p core/target/scala-%{scala_version}/src_managed
-mkdir -p core/target/scala-%{scala_version}/classes
-mkdir -p core/target/scala-%{scala_version}/api
-
-java -cp $(build-classpath fmpp freemarker bsh oro) fmpp.tools.CommandLine -S core/src -O core/target/scala-%{scala_version}/src_managed
-
-scalac core/target/scala-%{scala_version}/src_managed/*.scala -d core/target/scala-%{scala_version}/classes
-jar -cvf core/target/scala-%{scala_version}/%{name}_%{scala_version}-%{version}.jar -C core/target/scala-%{scala_version}/classes .
-
-scaladoc core/target/scala-2.10/src_managed/*.scala -d core/target/scala-2.10/api
-
-cat << EOF > core/target/scala-%{scala_version}/%{name}_%{scala_version}-%{version}.pom
-
-
- 4.0.0
- org.scala-tools.sbinary
- sbinary_%{scala_version}
- jar
- SBinary
- %{version}
- SBinary
-
- org.scala-tools.sbinary
-
-
-
- org.scala-lang
- scala-library
- %{scala_long_version}
-
-
-
-EOF
-
-%endif
-
-%install
-mkdir -p %{buildroot}/%{_javadir}
-mkdir -p %{buildroot}/%{_mavenpomdir}
-
-mkdir -p %{buildroot}/%{_javadocdir}/%{name}
-
-install -pm 644 core/target/scala-%{scala_version}/%{name}_%{scala_version}-%{version}.jar %{buildroot}/%{_javadir}/%{name}.jar
-install -pm 644 core/target/scala-%{scala_version}/%{name}_%{scala_version}-%{version}.pom %{buildroot}/%{_mavenpomdir}/JPP-%{name}.pom
-
-cp -rp core/target/scala-%{scala_version}/api/* %{buildroot}/%{_javadocdir}/%{name}
-
-%add_maven_depmap JPP-%{name}.pom %{name}.jar
-
-%files -f .mfiles
-%doc LICENSE README
-
-%files javadoc
-%{_javadocdir}/%{name}
-%doc LICENSE
-
-%changelog
-* Sat Aug 01 2020 Fedora Release Engineering - 0.4.2-15
-- Second attempt - Rebuilt for
- https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Wed Jul 29 2020 Fedora Release Engineering - 0.4.2-14
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Sat Jul 11 2020 Jiri Vanek - 0.4.2-13
-- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
-
-* Thu Jan 30 2020 Fedora Release Engineering - 0.4.2-12
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
-
-* Fri Jul 26 2019 Fedora Release Engineering - 0.4.2-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Sat Feb 02 2019 Fedora Release Engineering - 0.4.2-10
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Sat Jul 14 2018 Fedora Release Engineering - 0.4.2-9
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Fri Feb 09 2018 Fedora Release Engineering - 0.4.2-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
-
-* Thu Jul 27 2017 Fedora Release Engineering - 0.4.2-7
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Sat Feb 11 2017 Fedora Release Engineering - 0.4.2-6
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Thu Feb 04 2016 Fedora Release Engineering - 0.4.2-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Fri Jun 19 2015 Fedora Release Engineering - 0.4.2-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Tue Jun 10 2014 Mat Booth - 0.4.2-3
-- Migrate to .mfiles
-
-* Sun Jun 08 2014 Fedora Release Engineering - 0.4.2-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Tue Jan 7 2014 William Benton - 0.4.2-1
-- initial package
diff --git a/sources b/sources
deleted file mode 100644
index f20d9db..0000000
--- a/sources
+++ /dev/null
@@ -1 +0,0 @@
-913307c1b44723d58ab125c9170cfd9d v0.4.2.tar.gz