diff --git a/closure-compiler.spec b/closure-compiler.spec
new file mode 100644
index 0000000..a48e942
--- /dev/null
+++ b/closure-compiler.spec
@@ -0,0 +1,73 @@
+Name: closure-compiler
+Summary: JavaScript minifier and checker
+Version: 20160315
+Release: 1
+License: ASL 2.0
+URL: https://developers.google.com/closure/compiler/
+Source0: https://github.com/google/closure-compiler/archive/maven-release-v%{version}.tar.gz
+Source1: closure-compiler.xml
+BuildRequires: maven-local mvn(args4j:args4j) mvn(com.google.code.findbugs:jsr305)
+BuildRequires: mvn(com.google.code.gson:gson) mvn(com.google.guava:guava:20.0)
+BuildRequires: mvn(com.google.protobuf:protobuf-java) mvn(org.apache.ant:ant)
+BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
+BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin)
+BuildRequires: mvn(org.apache.maven.plugins:maven-shade-plugin)
+BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
+BuildRequires: mvn(org.sonatype.oss:oss-parent:pom:)
+BuildRequires: libxslt docbook-style-xsl
+Requires: javapackages-tools
+BuildArch: noarch
+
+%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
+%autosetup -n %{name}-maven-release-v%{version}
+rm -rf lib/*
+%pom_disable_module "pom-main-shaded.xml" pom-main.xml
+%mvn_alias :closure-compiler-unshaded :closure-compiler
+%pom_xpath_inject "pom:plugin[pom:artifactId='maven-bundle-plugin']" \
+"
+ \${project.groupId}
+" pom-main.xml
+
+%build
+%mvn_build -f
+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}
+
+%install
+%mvn_install
+%jpackage_script com.google.javascript.jscomp.CommandLineRunner "" "" args4j:google-gson:jsr-305:protobuf-java:guava20:%{name} %{name} true
+install -Dm0644 %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/%{name}.1
+%global _docdir_fmt %{name}
+
+%files -f .mfiles
+%{_bindir}/%{name}
+%{_mandir}/man1/%{name}.*
+%license COPYING
+%doc README.md
+
+%files javadoc -f .mfiles-javadoc
+%license COPYING
+
+%changelog
+* Thu Aug 13 2020 leiju - 20160315-1
+- Package init
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/closure-compiler.yaml b/closure-compiler.yaml
new file mode 100644
index 0000000..834d371
--- /dev/null
+++ b/closure-compiler.yaml
@@ -0,0 +1,4 @@
+version_control: github
+src_repo: google/closure-compiler
+tag_prefix: "^v"
+seperator: ""
diff --git a/maven-release-v20160315.tar.gz b/maven-release-v20160315.tar.gz
new file mode 100644
index 0000000..6545cdb
Binary files /dev/null and b/maven-release-v20160315.tar.gz differ