PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /lib/rpm/macros.d/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //lib/rpm/macros.d/macros.fjava |
# Copyright (c) 2012-2016, Red Hat, Inc # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the # distribution. # 3. Neither the name of Red Hat nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # Authors: Stanislav Ochotnicky <sochotnicky@redhat.com> # Mikolaj Izdebski <mizdebsk@redhat.com> # %mvn_package - assign Maven artifact(s) to a subpackage # # Usage: %mvn_package [gId]:[aId[:ver]] <subpackage name> # # This macro causes given artifact(s) to be installed in given subpackage. # # GId, aId and ver can contain wildcards and alternatives, which allows # multiple artifacts to be matched. If any of gId, aId or ver is omited # then any value will match the respective part. In particular a bare : # symbol will match any artifact. # # Subpackage name can contain backreferences in form @n. # %mvn_package %{?scl:/usr/share/java-utils/scl-enable %{?scl_maven} %{scl} -- }/usr/libexec/platform-python /usr/share/java-utils/mvn_package.py # %mvn_alias - create alias(es) for given Maven artifact(s) # # Usage: %mvn_alias [gId]:[aId[:ver]] [aliasGId]:[aliasAId[:aliasVer]] [...] # # This macro adds one or more aliases for specified artifacts. Aliases are # additional groupId, artifactId and version triples under which artifacts # can be found. After resulting package is installed any attempts to # resolve any of aliases will result in resolving the original artifact. # # GId, aId and ver can contain wildcards and alternatives, which allows # multiple artifacts to be matched. If any of gId, aId or ver is omited # then any value will match the respective part. In particular a bare : # symbol will match any artifact. # # AliasGId, aliasAId and aliasVer can contain backreferences in form @n, # which can refer only to respective parts. # %mvn_alias %{?scl:/usr/share/java-utils/scl-enable %{?scl_maven} %{scl} -- }/usr/libexec/platform-python /usr/share/java-utils/mvn_alias.py # %mvn_file - specify file name(s) for Maven artifact(s) # # Usage: %mvn_file [gId]:[aId[:ver]] <file1> [file2 ...] # # GId, aId and ver can contain wildcards and alternatives, which allows # multiple artifacts to be matched. If any of gId, aId or ver is omited # then any value will match the respective part. In particular a bare : # symbol will match any artifact. # # File names can contain backreferences in form @n. If multiple names # are given then the first one will be primary name of the artifact and # additional names will be symbolic links pointing to the primary file. # %mvn_file %{?scl:/usr/share/java-utils/scl-enable %{?scl_maven} %{scl} -- }/usr/libexec/platform-python /usr/share/java-utils/mvn_file.py # %mvn_compat_version - specify file name(s) for Maven artifact(s) # # Usage: %mvn_compat_version [gId]:[aId[:ver]] <version1> [version2 ...] # # GId, aId and ver can contain wildcards and alternatives, which allows # multiple artifacts to be matched. If any of gId, aId or ver is omited # then any value will match the respective part. In particular a bare : # symbol will match any artifact. # # Versions can contain backreferences in form @n. If multiple versions are # given then the first one will be primary version of the artifact and # additional versions will be symbolic links pointing to the primary # version. # %mvn_compat_version %{?scl:/usr/share/java-utils/scl-enable %{?scl_maven} %{scl} -- }/usr/libexec/platform-python /usr/share/java-utils/mvn_compat_version.py # %mvn_config - set XMvn configuration option # # Usage: %mvn_config <option> <value> # # This macro sets value of specified XMvn configuration option. # # Option is a sequence of slash-delimited XML node names that identify # XMvn configuration option, as in XMvn configuration reference; for # example: buildSettings/compilerSource. # # For information about available configuration options, see XMvn # configuration reference, available on XMvn website. # %mvn_config %{?scl:/usr/share/java-utils/scl-enable %{?scl_maven} %{scl} -- }/usr/libexec/platform-python /usr/share/java-utils/mvn_config.py # %mvn_artifact - add Maven artifact to be installed # # Usage: %mvn_artifact <pom> [<artifact-file>] # %mvn_artifact %{?scl:/usr/share/java-utils/scl-enable %{?scl_maven} %{scl} -- }/usr/libexec/platform-python /usr/share/java-utils/mvn_artifact.py # %mvn_build - build Maven project # # Usage: %mvn_build [options] # # This macro causes Maven project to be built (usually compiled and # packaged). It is intended to be placed in %build section of spec file. # # For summary of accepted options execute `mvn-build --help` command. # %mvn_build %{?scl:/usr/share/java-utils/scl-enable %{?scl_maven} %{scl} -- }/usr/libexec/platform-python /usr/share/java-utils/mvn_build.py --xmvn-javadoc %{?base_xmvn_opts} %{?xmvn_opts} %{?xmvn_bootstrap: -b} %{?_without_javadoc: -j $(> .mfiles-javadoc)}%{?_without_tests: -f} # %gradle_build - build Gradle project # # Usage: %mvn_build [options] # # This macro causes Gradle project to be built (usually compiled and # packaged). It is intended to be placed in %build section of spec file. # # For summary of accepted options execute `mvn-build --help` command. # %gradle_build %{?scl:/usr/share/java-utils/scl-enable %{?scl_maven} %{scl} -- }/usr/libexec/platform-python /usr/share/java-utils/mvn_build.py --xmvn-javadoc --gradle %{?base_xmvn_opts} %{?xmvn_opts} %{?xmvn_bootstrap: -b} %{?_without_javadoc: -j $(> .mfiles-javadoc)}%{?_without_tests: -f} # %mvn_install - install Maven project # # Usage: %mvn_install # # This macro causes previously built Maven project to be installed into # buildroot. It is intended to be placed in %install section of spec file. # %mvn_install(J:X) %{?scl:/usr/share/java-utils/scl-enable %{?scl_maven} %{scl} -- }xmvn-install %{?base_xmvn_opts} %{?xmvn_install_opts} %{?-X} -R .xmvn-reactor -n %{?scl:%{pkg_name}}%{!?scl:%{name}} %{?xmvn_install_repo:-i %{xmvn_install_repo}} -d "%{buildroot}" \ %{-J*:jdir="%{-J*}"}%{!-J*:jdir=target/site/apidocs; [ -d .xmvn/apidocs ] && jdir=.xmvn/apidocs} \ %{__mkdir_p} %{buildroot}%{_licensedir} \ if [ -d "${jdir}" ]; then \ install -dm755 %{buildroot}%{_javadocdir}/%{?scl:%{pkg_name}}%{!?scl:%{name}} \ cp -pr "${jdir}"/* %{buildroot}%{_javadocdir}/%{?scl:%{pkg_name}}%{!?scl:%{name}} \ echo '%{_javadocdir}/%{?scl:%{pkg_name}}%{!?scl:%{name}}' >>.mfiles-javadoc \ fi \ %{nil} # %mvn_subst - replace all JAR files in given directory with symlinks # # Usage: %mvn_subst [options] path # # Substitutes Java archives in given directory with symlinks to system-wide or # just installed versions. %mvn_subst %{?scl:/usr/share/java-utils/scl-enable %{?scl_maven} %{scl} -- }xmvn-subst %{?base_xmvn_opts} %{?xmvn_subst_opts} -R %{buildroot} #============================================================================== # # add_maven_depmap is simplified version of jpackage-style add_to_maven_depmap # # IMPORTANT: This macro is obsolete. Use mvn_artifact macro instead. # # -f addition to fragment name # -a is "g1:a1,g2:a2" formatted string with additional depmaps (groupId:artifactId,...) # -v is "v1,v2" formatted string with additional compatibility versions # supposed to be provided (jar,pom will be renamed to -%{version} variants # and additional symlinks optionally created) # %1 is the pom filename relative to mavenpomdir # %2 is the path to jar file (when omitted we deal with parent pom file without jar) # # add_maven_depmap automatically parses pom file and it will fail with incorrect pom # or jar filename # # in the end add_maven_depmap optionally moves jar and pom file to # -%{version} variant and can create additional versioned symlinks %add_maven_depmap(f:a:v:) \ set -e \ %{lua:io.stderr:write("[WARNING] Deprecated \%add_maven_depmap macro is used. ", \ "Please use \%mvn_artifact and %mvn_install instead.\\n")} \ # default values \ %if %# == 0 \ _pompart="JPP-%{?scl:%{pkg_name}}%{!?scl:%{name}}.pom" \ _jarpart="%{?scl:%{pkg_name}}%{!?scl:%{name}}.jar" \ %else \ _pompart="%1" \ _jarpart="%2" \ %endif \ _filelist=".mfiles%{-f*:-%{-f*}}" \ install -dm 755 %{buildroot}%{_datadir}/maven-metadata \ _jbase= \ _jpath= \ for _dir in %{_jnidir} %{_javadir}; do \ if [ -f %{buildroot}$_dir/$_jarpart ]; then \ _jbase="%{buildroot}$_dir" \ _jpath="$_jbase/$_jarpart" \ fi \ done \ %if %# != 1 \ [ -z "$_jpath" ] && (echo "%0 error: $_jarpart - file not found" 1>&2; exit 1) \ %endif \ /usr/libexec/platform-python /usr/share/java-utils/maven_depmap.py %{-a} %{-v*:-r %{-v*}} \\\ -n "%{?scl}" \\\ --pom-base %{buildroot}%{_mavenpomdir} \\\ --jar-base "$_jbase" \\\ %{buildroot}%{_datadir}/maven-metadata/%{?scl:%{pkg_name}}%{!?scl:%{name}}%{-f*:-%{-f*}}.xml \\\ %{buildroot}%{_mavenpomdir}/$_pompart \\\ %if %# == 2 \ "${_jpath}" \\\ %endif \ %if %# == 0 \ "${_jpath}" \\\ %endif \ >> ${_filelist} \ sed -i 's:%{buildroot}::' ${_filelist} \ sort -u -o ${_filelist} ${_filelist} \ \ %{nil} #============================================================================== # # %pom_* -- macros for batch editing of POM files # # These macros can be used to edit Maven POM files directly from RPM spec # file. Using these macros it is possible to alter Maven dependency management, # change plugin invocation, or even inject or remove arbitrary XML code to/from # nodes described by an XPath expression. # # See comments preceding individual macros for more detailed documentation. # # Private macro, shouldn't be used directly %__pom_call %{?scl:/usr/share/java-utils/scl-enable %{?scl_maven} %{scl} -- }/usr/libexec/platform-python /usr/share/java-utils/pom_editor.py pom_ # %pom_remove_dep - remove dependency on Maven artifact from POM file # # Usage: %pom_remove_dep [groupId]:[artifactId] [POM location] # # This macro patches specified POM file not to contain dependencies on given # Maven artifact. # # groupId and artifactId are identifiers of Maven group and artifact of the # module on which dependency is to be removed. If they are ommited then all # identifiers are matched. # # POM location can be either a full path to the POM file, or a path to the # directory containing pom.xml. If POM location is not given then pom.xml from # current working directory is used. # %pom_remove_dep(rf) %{expand: %{__pom_call}remove_dep %** } # %pom_remove_plugin - remove Maven plugin invocation from POM file # # Usage: %pom_remove_plugin [groupId]:[artifactId] [POM location] # # This macro patches specified POM file not to contain invocations of given # Maven plugin. # # groupId and artifactId are identifiers of Maven group and artifact of the # plugin which invocation is to be removed. If they are ommited then all # identifiers are matched. # # POM location can be either a full path to the POM file, or a path to the # directory containing pom.xml. If POM location is not given then pom.xml from # current working directory is used. # %pom_remove_plugin(rf) %{expand: %{__pom_call}remove_plugin %** } # %pom_disable_module - disable given project module in POM file # # Usage: %pom_disable_module <module name> [POM location] # # This macro patches specified POM file not to contain reference to given # project module. # # Module name is the exact name of the module to be disabled. It must not be # ommited. # # POM location can be either a full path to the POM file, or a path to the # directory containing pom.xml. If POM location is not given then pom.xml from # current working directory is used. # %pom_disable_module() %{expand: %{__pom_call}disable_module %* } # %pom_xpath_remove - remove an XML node from POM file # # Usage: %pom_xpath_remove <XPath> [POM location] # # This macro patches specified POM file removing all XML nodes described by the # XPath expression. # # XPath is an expression describing a set of XML nodes to be removed from the # POM file. It must be a properly formated XPath 1.0 expression, as described # in <http://www.w3.org/TR/xpath/>. # # POM location can be either a full path to the POM file, or a path to the # directory containing pom.xml. If POM location is not given then pom.xml from # current working directory is used. # # NOTE: POM files use a specific namespace - http://maven.apache.org/POM/4.0.0. # The easiest way to respect this namespace in XPath expressions is prefixing # all node names with "pom:". For example, "pom:environment/pom:os" will work # because it selects nodes from pom namespace, but "environment/os" won't find # anything because it looks for nodes that don't belong to any XML namespace. # %pom_xpath_remove(rf) %{expand: %{__pom_call}xpath_remove %** } %pom_xpath_disable() %{expand: %{__pom_call}xpath_disable %** } # %pom_xpath_inject - inject XML code into POM file # # Usage: %pom_xpath_inject <XPath> [XML code] [POM location] # # This macro patches specified POM file appending some code as children of all # XML nodes described by the XPath expression. # # XPath is an expression describing a set of XML nodes in the POM file to which # child code is to be appended. It must be a properly formated XPath 1.0 # expression, as described in <http://www.w3.org/TR/xpath/>. # # POM location can be either a full path to the POM file, or a path to the # directory containing pom.xml. If POM location is not given then pom.xml from # current working directory is used. # %pom_xpath_inject() %{expand: %{__pom_call}xpath_inject %* } # %pom_xpath_replace - replace XML node from POM file with given XML code # # Usage: %pom_xpath_replace <XPath> <XML code> [POM location] # # This macro patches specified POM file removing all XML nodes described by the # XPath expression and injecting given XML code in their place. # # XPath is an expression describing a set of XML nodes to be removed from the # POM file. It must be a properly formated XPath 1.0 expression, as described # in <http://www.w3.org/TR/xpath/>. # # POM location can be either a full path to the POM file, or a path to the # directory containing pom.xml. If POM location is not given then pom.xml from # current working directory is used. # %pom_xpath_replace(rf) %{expand: %{__pom_call}xpath_replace %** } # %pom_xpath_set - set text contents of XML node from POM file # # Usage: %pom_xpath_set <XPath> <new contents> [POM location] # # This macro patches specified POM file replacing text contents of all XML nodes # described by the XPath expression with given new text content. # # XPath is an expression describing a set of XML nodes to be removed from the # POM file. It must be a properly formated XPath 1.0 expression, as described # in <http://www.w3.org/TR/xpath/>. # # POM location can be either a full path to the POM file, or a path to the # directory containing pom.xml. If POM location is not given then pom.xml from # current working directory is used. # %pom_xpath_set(rf) %{expand: %{__pom_call}xpath_set %** } # %pom_add_parent - add parent POM reference to POM file # # Usage: %pom_add_parent groupId:artifactId[:version] [POM location] # # This macro patches specified POM file adding a reference to parent POM with # specified groupId, artifactId and version. # # groupId and artifactId are identifiers of Maven group and artifact of the POM # to be referenced as parent POM. They must be specified. If version is not # specified then default value of "any" is used. # # POM location can be either a full path to the POM file, or a path to the # directory containing pom.xml. If POM location is not given then pom.xml from # current working directory is used. # %pom_add_parent() %{expand: %{__pom_call}add_parent %* } # %pom_remove_parent - remove parent POM reference from POM file # # Usage: %pom_remove_parent [POM location] # # This macro patches specified POM file removing reference to parent POM. # # POM location can be either a full path to the POM file, or a path to the # directory containing pom.xml. If POM location is not given then pom.xml from # current working directory is used. # %pom_remove_parent() %{expand: %{__pom_call}remove_parent %* } # %pom_set_parent - set parent POM reference in POM file # # Usage: %pom_set_parent groupId:artifactId[:version] [POM location] # # This macro patches specified POM file setting reference to parent POM to # specified groupId, artifactId and version. # # This macros first removes parent POM reference and then adds a new one. It's # (more or less) equivalent to call to %pom_remove_parent followed by # invocation of %pom_add_parent. See documentation for these macros for more # information about parameters. # %pom_set_parent() %{expand: %{__pom_call}set_parent %* } # %pom_add_dep[_mgmt] - add dependency to POM file # # Usage: %pom_add_dep groupId:artifactId[:version[:scope]] [POM location] \ # [extra XML] # %pom_add_dep_mgmt groupId:artifactId[:version[:scope]] [POM location] \ # [extra XML] # # These macros patch specified POM file adding a dependency on given version of # artifactId from groupId, with given scope (if any). %pom_add_dep adds the # dependency to <dependencies> XML node, while %pom_add_dep_mgmt adds it to # <dependencyManagement>. # # groupId and artifactId are identifiers of Maven artifact on which dependency # is to be added. They must be specified. If version is not specified then # default value of "any" is used. If scope is not specified then no scope is # defined (Maven defaults to "compile" in this case). # # POM location can be either a full path to the POM file, or a path to the # directory containing pom.xml. If POM location is not given then pom.xml from # current working directory is used. # # Extra XML is additional XML code to be added into the <dependency> node. This # parameter can be ommited, in which case no extra XML is appended. # %pom_add_dep() %{expand: %{__pom_call}add_dep %* } %pom_add_dep_mgmt() %{expand: %{__pom_call}add_dep_mgmt %* } # %pom_add_plugin - add plugin invocation to POM file # # Usage: %pom_add_plugin groupId:artifactId[:version] [POM location] \ # [extra XML] # # This macro patches specified POM file adding plugin invocation of given # groupId and artifactId. # # groupId and artifactId are identifiers of Maven plugin artifact of which # invocation is to be added. groupId may be ommited, in which case value of # "org.apache.maven.plugins" is used as default. artifactId must be # specified. If version is not specified then default value of "any" is used. # # POM location can be either a full path to the POM file, or a path to the # directory containing pom.xml. If POM location is not given then pom.xml from # current working directory is used. # # Extra XML is additional XML code to be added into the <plugin> node. This # parameter can be ommited, in which case no extra XML is appended. # %pom_add_plugin() %{expand: %{__pom_call}add_plugin %* } %pom_change_dep(rf) %{expand: %{__pom_call}change_dep %** } # %javadoc_package - generate javadoc subpackage definition # # Usage: %javadoc_package [options] # This macro generates %package and %files definitions for a javadoc subpackage. # Use on top-level only, preferably just before %prep. # Prerequisites: # - javadoc package must not already exist # - package must use %mvn_install to install javadoc (default when using %mvn_build) # - package should install license files using %license macro, or specify # license for javadoc package manually (see below) # # Manually specifying license files: # Use -L option to suppress automatic license installation and specify %license # directive on the next line after the macro invocation. Example: # %javadoc_package -L # %license LICENSE %javadoc_package(L) %if 0%{!?_without_javadoc:1} \ %package javadoc \ Summary: API documentation for %{?scl:%{pkg_name}}%{!?scl:%{name}} \ %description javadoc \ API documentation for %{?scl:%{pkg_name}}%{!?scl:%{name}}. \ %files javadoc -f .mfiles-javadoc \ %if 0%{!?-L:1} \ %%license %{_licensedir} \ %exclude %dir %{_licensedir} \ %endif \ %endif