diff --git a/.gitignore b/.gitignore
index e69de29..3f68048 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/v20140110.zip
diff --git a/closure-compiler-build.patch b/closure-compiler-build.patch
new file mode 100644
index 0000000..6e32999
--- /dev/null
+++ b/closure-compiler-build.patch
@@ -0,0 +1,54 @@
+diff --git a/build.xml~ b/build.xml
+index 2e4b841..dc25582 100644
+--- a/build.xml~
++++ b/build.xml
+@@ -85,27 +85,12 @@
+ classpathref="maven-ant-tasks.classpath" />
+
+
++
+
+-
+-
+-
+-
+-
+
+
+
+
+-
+-
+-
+-
+
+
+
+
+-
++
+
+
+@@ -230,8 +215,9 @@
+
+
+
+-
+-
++
++
++
+
+
+
diff --git a/closure-compiler.spec b/closure-compiler.spec
new file mode 100644
index 0000000..ea9bd00
--- /dev/null
+++ b/closure-compiler.spec
@@ -0,0 +1,176 @@
+#global _check 1
+
+Summary: JavaScript minifier and checker
+Name: closure-compiler
+Version: 20140110
+%global githash ef22f25de0c0
+Release: 1%{?dist}
+License: ASL 2.0 and MPL 1.1
+URL: https://developers.google.com/closure/compiler/
+# .tar.gz is truncated for some reason
+Source0: http://closure-compiler.googlecode.com/archive/v%{version}.zip
+Source1: closure-compiler.xml
+Patch0: closure-compiler-build.patch
+BuildArch: noarch
+
+BuildRequires: jpackage-utils
+BuildRequires: java-devel
+BuildRequires: ant
+BuildRequires: maven
+BuildRequires: maven-ant-tasks
+BuildRequires: jarjar
+BuildRequires: args4j
+BuildRequires: guava >= 15
+BuildRequires: android-json-org-java
+BuildRequires: jsr-305
+BuildRequires: junit
+BuildRequires: protobuf-java
+BuildRequires: rhino
+BuildRequires: nekohtml
+BuildRequires: plexus-classworlds
+BuildRequires: plexus-component-api
+BuildRequires: plexus-utils
+BuildRequires: findbugs
+%if 0%{?_check}
+BuildRequires: mockito
+%endif
+BuildRequires: libxslt
+BuildRequires: docbook-style-xsl
+
+Requires: jpackage-utils
+Requires: java
+Requires: args4j
+Requires: guava
+Requires: android-json-org-java
+Requires: jsr-305
+Requires: protobuf-java
+Requires: rhino
+
+%description
+The Closure Compiler is a tool for making JavaScript download and run
+faster. It is a true compiler for JavaScript. Instead of compiling
+from a source language to machine code, it compiles from JavaScript to
+better JavaScript. It parses your JavaScript, analyzes it, removes
+dead code and rewrites and minimizes what's left. It also checks
+syntax, variable references, and types, and warns about common
+JavaScript pitfalls.
+#'
+
+%package javadoc
+Summary: API documentation for %{name}
+
+%description javadoc
+This package contains the %{summary}.
+
+%prep
+%setup -q -n %{name}-%{githash}
+%patch0 -p1
+rm -rf lib/* tools/*
+build-jar-repository -s -p lib/ \
+ jarjar \
+ args4j \
+ android-json-org-java \
+ jsr-305 \
+ junit \
+ protobuf \
+ js \
+ findbugs \
+%if 0%{?_check}
+ mockito \
+%endif
+ guava
+ln -s android-json-org-java.jar lib/json.jar
+build-jar-repository -p -s tools/ \
+ maven-ant-tasks \
+ maven/maven-core \
+ maven/maven-compat \
+ maven/maven-artifact \
+ maven/maven-model \
+ maven/maven-project \
+ maven/maven-settings \
+ maven/maven-error-diagnostics \
+ maven-wagon/file \
+ maven-wagon/http \
+ maven-wagon/provider-api \
+ plexus-classworlds \
+ plexus-component-api/plexus-component-api \
+ plexus-utils \
+ nekohtml
+sed -i "s|\${tools.dir}/maven-ant-tasks-2.1.3.jar|$(build-classpath-directory tools)|" build.xml
+
+# I can't for the life of me figure out why this line breaks
+# build. But it doesn't seem very important anyway.
+sed -i 's|||' build.xml
+
+# This test requires google-caja which is not available.
+rm test/com/google/javascript/jscomp/jsonml/JsonMLConversionTest.java
+
+%build
+ant jar-nodeps javadoc
+echo "Main-Class: com.google.javascript.jscomp.CommandLineRunner" > manifest
+jar -uvmf manifest build/%{name}-*.jar
+
+xsltproc \
+ --nonet \
+ --stringparam man.output.quietly 1 \
+ --stringparam funcsynopsis.style ansi \
+ --stringparam man.authors.section.enabled 0 \
+ --stringparam man.copyright.section.enabled 0 \
+ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl %{SOURCE1}
+
+%if 0%{?_check}
+%check
+ant test
+%endif
+
+%install
+mkdir -p ${RPM_BUILD_ROOT}%{_javadir}
+cp -p build/%{name}-*.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
+
+mkdir -p $RPM_BUILD_ROOT%{_javadocdir}
+cp -pr build/javadoc $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+
+mkdir -p $RPM_BUILD_ROOT%{_mavenpomdir}
+cp -pr %{name}.pom $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}.pom
+
+%jpackage_script com.google.javascript.jscomp.CommandLineRunner "" "" jarjar:args4j:android-json-org-java:jsr-305:junit:protobuf:js:guava:%{name} %{name} true
+
+mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
+cp %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1
+
+%add_maven_depmap JPP-%{name}.pom %{name}.jar
+
+%files
+%{_javadir}/%{name}*.jar
+%{_bindir}/%{name}
+%{_mandir}/man1/%{name}.*
+%{_mavenpomdir}/JPP-%{name}.pom
+%{_mavendepmapfragdir}/%{name}
+
+%doc COPYING
+
+%files javadoc
+%doc CONTRIBUTORS COPYING README
+%{_javadocdir}/%{name}
+
+%changelog
+* Wed Feb 05 2014 Zbigniew Jędrzejewski-Szmek - 20140110-1
+- Fix requires.
+- Convert manpage to docbook.
+- Add disabled %%check.
+- Update license.
+- Update to newest upstream version.
+
+* Tue Oct 29 2013 Zbigniew Jędrzejewski-Szmek - 20131118-1
+- Update to latest upstream release.
+- Remove bundled tools/maven-ant-tasks in %%prep and add dependencies
+ on replacement packages.
+- Replace json with android-json-org-java completely.
+
+* Tue Oct 29 2013 Zbigniew Jędrzejewski-Szmek - 20131014-2
+- Replace json with android-json-org-java.
+- Put requires java libraries in Requires.
+- Add main-class manifests to the jar.
+
+* Mon Oct 28 2013 Zbigniew Jędrzejewski-Szmek - 20131014-1
+- Initial packaging.
diff --git a/closure-compiler.xml b/closure-compiler.xml
new file mode 100644
index 0000000..9634442
--- /dev/null
+++ b/closure-compiler.xml
@@ -0,0 +1,626 @@
+
+
+
+
+
+ closure-compiler
+ closure-compiler
+
+
+
+
+
+
+
+
+
+
+
+
+ closure-compiler
+ 1
+
+
+
+ closure-compiler
+ Performs checking, instrumentation, and
+ optimization on JavaScript code.
+
+
+
+
+ closure-compiler
+ OPTIONS
+ FILES
+
+
+
+
+ Description
+
+ closure-compiler may be used to
+ check and optimize JavaScript code.
+ If positional arguments are not given, code to check
+ will be read from standard input.
+
+
+
+ Options
+
+ The following options are understood:
+
+
+
+
+
+ Allows usage of const
+ keyword.
+
+
+
+
+
+ Generate $inject properties for
+ AngularJS for functions annotated with @ngInject.
+
+
+
+
+
+
+ Input and output charset for all
+ files. By default, we accept UTF-8 as
+ input and output US_ASCII.
+
+
+
+
+
+ Entry points to the program. Must be
+ goog.provide'd symbols. Any goog.provide'd symbols that are
+ not a transitive dependency of the entry points will be
+ removed. Files without goog.provide's, and their dependencies,
+ will always be left in. If any entry points are specified,
+ then the manage_closure_dependencies option will be set to
+ true and all files will be sorted in dependency order.
+
+
+
+
+
+
+ Root of your common JS dependency
+ hierarchy. Your main script.
+
+
+
+
+
+ Path prefix to be removed from
+ CommonJS module names.
+
+
+
+
+ WHITESPACE_ONLY|SIMPLE_OPTIMIZATIONS|ADVANCED_OPTIMIZATIONS
+
+
+ Specifies the compilation level to use.
+
+
+
+
+
+ If true, variable renaming and property
+ renaming map files will be produced as
+ binary name_vars_map.out and
+ binary name_props_map.out.
+ Note that this flag cannot be used in conjunction with either
+ variableMapOut putFile or property_map_output_file.
+
+
+
+
+ VAL
+
+ If specified, a source map file mapping the
+ generated source files back to the original source file will
+ be output to the specified path. The
+ %outname% placeholder will expand to the
+ name of the output file that the source map corresponds to.
+
+
+
+
+
+
+ Enable debugging options.
+
+
+
+
+
+ name=val
+
+ Override the value of a variable
+ annotated @define. The format is
+ name=val,
+ where name is the
+ name of a @define variable and val
+ is a boolean, number, or a single-quoted string that contains no single
+ quotes. If val is omitted, the
+ variable is marked true.
+
+
+
+
+
+ The file containing JavaScript
+ externs. May be specified multiple times.
+
+
+
+
+
+ A whitelist of tag names in JSDoc.
+ May be specified multiple times.
+
+
+
+
+
+ A file containing additional command-line options.
+
+
+
+
+
+ PRETTY_PRINT | PRINT_INPUT_DELIMITER | SINGLE_QUOTES
+
+
+ Specifies which formatting options, if any, should be applied to the
+ output JS.
+
+
+
+
+
+ Generates export code for those marked with
+ @export.
+
+
+
+
+
+ Displays this message
+
+
+
+
+
+ The JavaScript filename.
+ May be specified multiple times.
+
+
+
+
+
+
+ Primary output filename. If not
+ specified, output is written to stdout.
+
+
+
+
+
+ Make the named class of warnings an
+ error. Options: accessControls,
+ ambiguousFunctionDecl,
+ checkEventfulObjectDisposal,
+ checkRegExp,
+ checkStruct
+ DictInheritance,
+ checkTypes,
+ checkVars,
+ const,
+ constantProperty,
+ deprecated,
+ duplicateMessage,
+ es3,
+ es5Strict,
+ externsValidation,
+ fileoverviewTags,
+ globalThis,
+ internetExplorerChecks,
+ invalidCasts,
+ misplacedTypeAnnotation,
+ missingProperties,
+ missingProvide,
+ missingRequire,
+ missingReturn,
+ nonStandardJsDocs,
+ reportUnknownTypes,
+ suspiciousCode,
+ strictModuleDepCheck,
+ typeInvalidation,
+ undefinedNames,
+ undefinedVars,
+ unknownDefines,
+ uselessCode,
+ visibility.
+
+
+
+
+
+ Turn off the named class of warnings.
+ Options: accessControls,
+ ambiguousFunctionDecl,
+ checkEventfulObjectDisposal,
+ checkRegExp,
+ checkStructDictInheritance,
+ checkTypes,
+ checkVars,
+ const,
+ constantProperty,
+ deprecated,
+ duplicateMessage,
+ es3,
+ es5Strict,
+ externsValidation,
+ fileoverviewTags,
+ globalThis,
+ internetExplorerChecks,
+ invalidCasts,
+ misplacedTypeAnnotation,
+ missingProperties,
+ missingProvide,
+ missingRequire,
+ missingReturn,
+ nonStandardJsDocs,
+ reportUnknownTypes,
+ suspiciousCode,
+ strictModuleDepCheck,
+ typeInvalidation,
+ undefinedNames,
+ undefinedVars,
+ unknownDefines,
+ uselessCode,
+ visibility.
+
+
+
+
+
+
+ Make the named class of warnings a
+ normal warning. Options:
+ accessControls,
+ ambiguousFunctionDecl,
+ checkEventfulObjectDisposal,
+ checkRegExp,
+ checkStructDictInheritance,
+ checkTypes,
+ checkVars,
+ const,
+ constantProperty,
+ deprecated,
+ duplicateMessage,
+ es3,
+ es5Strict,
+ externsValidation,
+ fileoverviewTags,
+ globalThis,
+ internetExplorerChecks,
+ invalidCasts,
+ misplacedTypeAnnotation,
+ missingProperties,
+ missingProvide,
+ missingRequire,
+ missingReturn,
+ nonStandardJsDocs,
+ reportUnknownTypes,
+ suspiciousCode,
+ strictModuleDepCheck,
+ typeInvalidation,
+ undefinedNames,
+ undefinedVars,
+ unknownDefines,
+ uselessCode,
+ visibility.
+
+
+
+
+
+ Sets what language spec that input
+ sources conform. Options: ECMASCRIPT3
+ (default), ECMASCRIPT5,
+ ECMASCRIPT5_STRICT.
+
+
+
+
+
+ The logging level (standard
+ java.util.logging.Level values) for Compiler progress. Does
+ not control errors or warnings for the JavaScript code under
+ compilation
+
+
+
+
+
+ Automatically sort dependencies so that a file
+ that goog.provides symbol X will always come before a file
+ that goog.requires symbol X. If an input provides symbols, and
+ those symbols are never required, then that input will not be
+ included in the compilation.
+
+
+
+
+ name:num-js-files:dep...:
+
+ A JavaScript module specification. Module
+ names must be unique. Each dep is the name of a module that
+ this module depends on. Modules must be listed in dependency
+ order, and JS source files must be listed in the corresponding
+ order. Where flags occur in
+ relation to flags is unimportant.
+ Provide the value auto to trigger module
+ creation from CommonJSmodules.
+
+
+
+
+ VAL
+
+ Prefix for filenames of compiled JS
+ modules. module-name.js will be appended to this
+ prefix. Directories will be created as needed. Use with
+ .
+
+
+
+
+
+ An output wrapper for a JavaScript module
+ (optional). The format is name:wrapper. The module name must
+ correspond with a module specified using --module. The wrapper
+ must contain %s as the code placeholde r. The %basename%
+ placeholder can also be used to substitute the base name of
+ the module output file.
+
+
+
+
+
+ In development new type inference pass. DO NOT
+ USE!
+
+
+
+
+
+ Only include files in the transitive
+ dependency of the entry points (specified by
+ closure_entry_point). Files that do not provide dependencies
+ will be removed. This supersedes
+ .
+
+
+
+
+
+
+ Prints out a list of all the files in the
+ compilation. If
+ is on, this will not include files that got dropped because
+ they were not required. The %outname%
+ placeholder expands to the JS output file. If you're using
+ modularization, using %outname% will create
+ a manifest for each module.
+
+
+
+
+
+ Prints out a JSON file of dependencies
+ between modules.
+
+
+
+
+
+ Interpolate output into this string at the
+ place denoted by the marker token
+ %output%. Use marker token
+ %output|jsstring% to do js string escaping
+ on the output.
+
+
+
+
+
+ Prints a dot file describing the internal
+ abstract syntax tree and exits.
+
+
+
+
+
+ Prints a dot file describing the passes that
+ will get run and exits.
+
+
+
+
+
+ Prints out the parse tree and exits.
+
+
+
+
+
+ Processes built-ins from the Closure
+ library, such as goog.require(), goog.provide(), and goog.exportSymbol().
+
+
+
+
+
+
+ Process CommonJS modules to a concatenable form.
+
+
+
+
+
+
+ Processes built-ins from the jQuery
+ library, such as jQuery.fn and jQuery.extend().
+
+
+
+
+
+ File containing the serialized version of the
+ property renaming map produced by a previous compilation.
+
+
+
+
+
+
+ File where the serialized version of the
+ property renaming map produced should be saved.
+
+
+
+
+
+ The source map format to produce.
+ Options: V1,
+ V2,
+ V3,
+ DEFAULT.
+ DEFAULT
+ produces V2.
+
+
+
+
+
+ Controls how detailed the compilation
+ summary is. Values: 0 (never print
+ summary), 1 (print summary only if
+ there are errors or warnings), 2
+ (print summary if the 'checkTypes'
+ diagnostic group is enabled, see
+ ), 3 (always print
+ summary). The default level is 1.
+
+
+
+
+
+ Check source validity but do not enforce
+ Closure style rules and conventions.
+
+
+
+
+
+ Shows the duration of each compiler pass and
+ the impact to the compiled output size. Options:
+ ALL, RAW_SIZE,
+ TIMING_ONLY, OFF.
+
+
+
+
+
+
+ Transform AMD to CommonJS modules.
+
+
+
+
+
+ Source of translated messages.
+ Currently only supports XTB.
+
+
+
+
+
+ Scopes all translations to the specified
+ project.When specified, we will use different message ids so
+ that messages in different projects can have different
+ translations.
+
+
+
+
+
+ Specifies whether the default externs should
+ be excluded.
+
+
+
+
+
+ Experimental: perform additional optimizations
+ based on available information. Inaccurate type annotations
+ may result in incorrect results.
+
+
+
+
+ VAL
+
+ File containing the serialized version of the
+ variable renaming map produced by a previous compilation.
+
+
+
+
+
+
+ File where the serialized version of the
+ variable renaming map produced should be saved.
+
+
+
+
+
+ Prints the compiler version to stderr.
+
+
+
+
+
+ Specifies the warning level to use.
+ Options: QUIET,
+ DEFAULT,
+ VERBOSE.
+
+
+
+
+ FILE
+
+ A file containing warnings to suppress. Each
+ line should be of the form file-name:line-numberwarning-description.
+
+
+
+
+
+
+ See Also
+ https://code.google.com/p/closure-compiler/
+
+
diff --git a/sources b/sources
index e69de29..8e64dc0 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+ce07ae896c7b4530120d01301aa75594 v20140110.zip