__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!/usr/bin/python
# Copyright (c) 2012, 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>
#
import os
import sys
import signal
import traceback
from javapackages import Depmap
class TagBuilder:
def __init__ (self, filelist=None):
if filelist == None:
filelist = sys.stdin
paths = map (lambda x: x.rstrip (), filelist.readlines ())
self.provided_artifacts = []
self.skipped_artifacts = []
if paths:
# let's first read all fragment files for provided artifacts
fragment_dir = os.path.dirname(paths[0])
for dirname, dirnames, filenames in os.walk(fragment_dir):
for filename in filenames:
if filename.endswith(".pom"):
continue
depmap = Depmap(os.path.join(dirname, filename))
self.provided_artifacts.extend(depmap.get_provided_mappings())
self.skipped_artifacts.extend(depmap.get_skipped_artifacts())
for path in paths:
if path.endswith(".pom"):
continue
self.print_mvn_requires(path)
def __process_jvm_req(self, name, version):
if not version:
return
try:
jsplit = version.split('.')
if len(jsplit) != 2:
# if we don't have major.minor format, just ignore version
raise ValueError("Required Java version not in major.minor format")
major = int(jsplit[0])
minor = int(jsplit[1])
if major > 1 or minor > 5:
print("{name} >= 1:{major}.{minor}".format(name=name,
major=major,
minor=minor))
else:
print("{name} >= {major}.{minor}".format(name=name,
major=major,
minor=minor))
except ValueError:
# what? not a numbered major/minor java release?
print(name)
def print_mvn_requires(self, path):
depmap = Depmap(path)
skipped_but_required = []
base_package_requires=set()
for provided in depmap.get_provided_artifacts():
if provided.namespace:
base_package_requires.add("{ns}-runtime".format(ns=provided.namespace))
else:
base_package_requires.add("jpackage-utils")
for basereq in base_package_requires:
print basereq
unknown_deps = []
for dependency in depmap.get_required_artifacts():
if dependency.version == "UNKNOWN":
unknown_deps.append(dependency)
continue
for skipped in self.skipped_artifacts:
if (skipped.groupId == dependency.groupId and
skipped.artifactId == dependency.artifactId and
skipped.classifier == dependency.classifier and
skipped.extension == dependency.extension):
skipped_but_required.append(skipped)
for m_provided, l_provided in self.provided_artifacts:
if (m_provided.groupId == dependency.groupId and
m_provided.artifactId == dependency.artifactId and
m_provided.classifier == dependency.classifier and
m_provided.extension == dependency.extension and
m_provided.namespace == dependency.namespace):
# if dependency is versioned but another subpackage provides
# non-versioned artifact, it's coming from a different package
if (dependency.version and
dependency.version != l_provided.version):
continue
# if dependency is not versioned but provides is versioned
# the dependency is coming from a different package
if not dependency.version and l_provided.version:
continue
# requires on subpackages are always versioned
print("{rpmstr} = {version}".format(
rpmstr=dependency.get_rpm_str(dependency.version),
version=m_provided.version))
break
else:
# TODO: remove when not needed
# do not generate requires like "a:b:pom:" yet
if dependency.extension == "pom":
dependency.extension = ""
print(dependency.get_rpm_str(dependency.version))
if unknown_deps:
unknown_msg = "Following dependencies were not resolved and " \
"requires cannot be generated. Either remove the " \
"dependency from pom.xml or add proper packages to " \
"BuildRequires:\n"
for unknown in unknown_deps:
unknown_msg = unknown_msg + \
"{art}\n".format(art=unknown)
raise Exception(unknown_msg)
if skipped_but_required:
skipped_msg = "Following artifacts were built " \
"but are not being installed however other " \
"artifacts require them. Either package these " \
"artifacts or do not build them. To package " \
"call %mvn_package in %prep:\n"
for skipped in skipped_but_required:
skipped_msg = skipped_msg + \
"%mvn_package {art} <package_name>\n".format(art=skipped)
raise Exception(skipped_msg)
reqs = {'java': depmap.get_java_requires(),
'java-devel': depmap.get_java_devel_requires()}
for name, version in reqs.iteritems():
self.__process_jvm_req(name, version)
if __name__ == "__main__":
try:
builder = TagBuilder ()
except Exception, e:
traceback.print_exc(file=sys.stderr)
sys.stderr.write(str(e))
# rpmbuild ignores non-zero exit codes but this that is bad. Make sure
# the build fails and doesn't silently ignore problems
os.kill(os.getppid(), signal.SIGTERM)
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| fileattrs | Folder | 0755 |
|
|
| macros.d | Folder | 0755 |
|
|
| platform | Folder | 0755 |
|
|
| redhat | Folder | 0755 |
|
|
| appdata.prov | File | 333 B | 0755 |
|
| brp-compress | File | 1.41 KB | 0755 |
|
| brp-java-gcjcompile | File | 1.38 KB | 0755 |
|
| brp-python-bytecompile | File | 2.96 KB | 0755 |
|
| brp-python-hardlink | File | 658 B | 0755 |
|
| brp-strip | File | 509 B | 0755 |
|
| brp-strip-comment-note | File | 741 B | 0755 |
|
| brp-strip-shared | File | 706 B | 0755 |
|
| brp-strip-static-archive | File | 411 B | 0755 |
|
| check-buildroot | File | 1.21 KB | 0755 |
|
| check-files | File | 1.02 KB | 0755 |
|
| check-prereqs | File | 418 B | 0755 |
|
| check-rpaths | File | 1.01 KB | 0755 |
|
| check-rpaths-worker | File | 4.93 KB | 0755 |
|
| config.guess | File | 44.24 KB | 0755 |
|
| config.sub | File | 34.62 KB | 0755 |
|
| debugedit | File | 33.01 KB | 0755 |
|
| desktop-file.prov | File | 602 B | 0755 |
|
| elfdeps | File | 15.31 KB | 0755 |
|
| find-debuginfo.sh | File | 14.42 KB | 0755 |
|
| find-lang.sh | File | 5.77 KB | 0755 |
|
| find-provides | File | 1.52 KB | 0755 |
|
| find-requires | File | 3.43 KB | 0755 |
|
| fontconfig.prov | File | 489 B | 0755 |
|
| javadoc.req | File | 76 B | 0755 |
|
| kabi.sh | File | 428 B | 0755 |
|
| libtooldeps.sh | File | 718 B | 0755 |
|
| macros | File | 37.33 KB | 0644 |
|
| macros.perl | File | 473 B | 0644 |
|
| macros.php | File | 192 B | 0644 |
|
| macros.python | File | 906 B | 0644 |
|
| maven.prov | File | 3.67 KB | 0755 |
|
| maven.req | File | 7.75 KB | 0755 |
|
| mkinstalldirs | File | 3.41 KB | 0755 |
|
| mono-find-provides | File | 1.08 KB | 0755 |
|
| mono-find-requires | File | 1.87 KB | 0755 |
|
| ocaml-find-provides.sh | File | 1.62 KB | 0755 |
|
| ocaml-find-requires.sh | File | 2.08 KB | 0755 |
|
| osgi.prov | File | 3.51 KB | 0755 |
|
| osgi.req | File | 3.79 KB | 0755 |
|
| osgideps.pl | File | 10.33 KB | 0755 |
|
| perl.prov | File | 5.72 KB | 0755 |
|
| perl.req | File | 11.48 KB | 0755 |
|
| perldeps.pl | File | 32.13 KB | 0644 |
|
| pkgconfigdeps.sh | File | 1.25 KB | 0755 |
|
| pythondeps.sh | File | 875 B | 0755 |
|
| rpm.daily | File | 296 B | 0644 |
|
| rpm.log | File | 61 B | 0644 |
|
| rpm.supp | File | 688 B | 0644 |
|
| rpm2cpio.sh | File | 1.3 KB | 0755 |
|
| File | 0 B | 0 |
|
|
| File | 0 B | 0 |
|
|
| rpmdb_loadcvt | File | 1.43 KB | 0755 |
|
| File | 0 B | 0 |
|
|
| File | 0 B | 0 |
|
|
| File | 0 B | 0 |
|
|
| File | 0 B | 0 |
|
|
| rpmdeps | File | 11.52 KB | 0755 |
|
| rpmpopt-4.11.3 | File | 9.51 KB | 0644 |
|
| rpmrc | File | 15.01 KB | 0644 |
|
| script.req | File | 322 B | 0755 |
|
| sepdebugcrcfix | File | 15.24 KB | 0755 |
|
| tcl.req | File | 2.02 KB | 0755 |
|
| tgpg | File | 929 B | 0755 |
|