Exemplo n.º 1
0
def make_fake_rpm(outdir, name, epoch, version, release, requires=None, provides=None):
    p = SimpleRpmBuild(name, version, release)
    if epoch:
        p.epoch = epoch
    if requires:
        p.add_requires(requires)
    if provides:
        p.add_provides(provides)

    with in_tempdir("bdcs-test-rpms."):
        p.make()
        rpmfile = p.get_built_rpm(expectedArch)
        shutil.move(rpmfile, os.path.join(outdir, os.path.basename(rpmfile)))
Exemplo n.º 2
0
def makeFakeRPM(repo_dir, name, epoch, version, release, files=None):
    """Make a fake rpm file in repo_dir"""
    p = SimpleRpmBuild(name, version, release)
    if epoch:
        p.epoch = epoch
    if not files:
        p.add_simple_payload_file_random()
    else:
        # Make a number of fake file entries in the rpm
        for f in files:
            p.add_installed_file(installPath=f,
                                 sourceFile=SourceFile(os.path.basename(f),
                                                       "THIS IS A FAKE FILE"))
    with in_tempdir("lorax-test-rpms."):
        p.make()
        rpmfile = p.get_built_rpm(expectedArch)
        shutil.move(rpmfile, repo_dir)
Exemplo n.º 3
0
def main():
    try:
        arch = sys.argv[1]
    except IndexError:
        arch = 'x86_64'

    pkgs = []
    for spec in SPECS:
        pkg = SimpleRpmBuild(spec.name, spec.version, spec.release, [arch])
        pkg.epoch = spec.epoch

        if spec.recommends:
            # Skip packages that require weak deps but an older version of RPM is being used
            if not can_use_rpm_weak_deps or not can_use_rpm_weak_deps():
                continue

            for recommend in spec.recommends:
                pkg.add_recommends(recommend)

        pkgs.append(pkg)

    repo = YumRepoBuild(pkgs)
    repo.make(arch)

    for pkg in pkgs:
        pkg.clean()

    print(repo.repoDir)
Exemplo n.º 4
0
def make_rpm(outdir, name='test', version='1.0', release='1', arch=None,
             for_anaconda_ver=None, for_kernel_ver=None,
             payload=None):
    p = SimpleRpmBuild(name, version, release)
    if for_anaconda_ver:
        p.add_provides('installer-enhancement = %s' % for_anaconda_ver)
    if for_kernel_ver:
        p.add_provides('kernel-modules >= %s' % for_kernel_ver)
    if payload is None:
        payload = []
    for item in payload:
        p.add_installed_file(item.path,
                             SourceFile(item.srcpath, item.contents),
                             **item.kwargs)
    with in_tempdir("anaconda-test-dd."):
        p.make()
        rpmfile = p.get_built_rpm(arch or expectedArch)
        outfile = os.path.join(outdir, os.path.basename(rpmfile))
        shutil.move(rpmfile, outfile)
    return p
Exemplo n.º 5
0
def _create_fake_rpm(temp_dir):
    rpm = SimpleRpmBuild(name="test-rpm", version="200", release="9000")
    rpm.add_installed_file(installPath="/usr/bin/TEST",
                           sourceFile=SourceFile(sourceName="TEST",
                                                 content="SO AWESOME APP!"))
    with switch_workdir(temp_dir):
        rpm.make()

    rpm_rel_path = rpm.get_built_rpm(ARCH)
    return os.path.join(temp_dir, rpm_rel_path)
Exemplo n.º 6
0
def create_repo(arch='x86_64'):
    pkgs = []
    for spec in SPECS:
        pkg = SimpleRpmBuild(spec.name, spec.version, spec.release,
                             [spec.arch or arch])
        pkg.epoch = spec.epoch

        if spec.recommends:
            # Skip packages that require weak deps but an older version of RPM is being used
            if not can_use_rpm_weak_deps or not can_use_rpm_weak_deps():
                continue

            for recommend in spec.recommends:
                pkg.add_recommends(recommend)

        pkgs.append(pkg)

    # HACK: EPEL6 version of rpmfluff can't do multi-arch packaging, so we'll just build separately and copy
    # the noarch stuff in, since we don't currently care about the repodata for noarch
    if sys.version_info[0:2] == (2, 6):
        noarch_repo = YumRepoBuild(
            [p for p in pkgs if 'noarch' in p.get_build_archs()])
        noarch_repo.make('noarch')

        repo = YumRepoBuild([p for p in pkgs if arch in p.get_build_archs()])
        repo.make(arch)

        subprocess.call("cp {0}/*.rpm {1}".format(noarch_repo.repoDir,
                                                  repo.repoDir),
                        shell=True)
    else:
        repo = YumRepoBuild(pkgs)
        repo.make(arch, 'noarch')

    for pkg in pkgs:
        pkg.clean()

    return repo.repoDir
Exemplo n.º 7
0
work_dir = os.path.dirname(work_file)
file_base_mane = PurePosixPath(work_file).stem
repo_dir = os.path.join(work_dir, file_base_mane)
temp_dir = os.path.join(repo_dir, 'temp')

if not os.path.exists(repo_dir):
    os.makedirs(repo_dir)

if not os.path.exists(temp_dir):
    os.makedirs(temp_dir)


os.chdir(temp_dir)

pkgs = []
rpm = SimpleRpmBuild('TestA', '1.0.0', '1', ['noarch'])
rpm.add_requires('TestB')
rpm.add_group('Testgroup')
pkgs.append(rpm)
# Used for install remove tests if requirement TestB is handled properly.

rpm = SimpleRpmBuild('TestA-debuginfo', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)
# Used for install debuginfo and test pluginconfpath.

rpm = SimpleRpmBuild('TestB', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)
# Requirement of TestA

rpm = SimpleRpmBuild('TestB-debuginfo', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)
work_dir = os.path.dirname(work_file)
file_base_mane = PurePosixPath(work_file).stem
repo_dir = os.path.join(work_dir, file_base_mane)
temp_dir = os.path.join(repo_dir, 'temp')

if not os.path.exists(repo_dir):
    os.makedirs(repo_dir)

if not os.path.exists(temp_dir):
    os.makedirs(temp_dir)


os.chdir(temp_dir)

pkgs = []
rpm = SimpleRpmBuild('TestA', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestA', '3.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestB', '1.0.0', '1', ['noarch'])
rpm.add_provides('TestA = 2.0.0')
rpm.add_obsoletes('TestA < 2.0.0')
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestC', '1.0.0', '1', ['noarch'])
rpm.add_provides('TestA = 4.0.0')
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestD', '1.0.0', '1', ['noarch'])
Exemplo n.º 9
0
work_file = os.path.realpath(__file__)
work_dir = os.path.dirname(work_file)
file_base_mane = PurePosixPath(work_file).stem
repo_dir = os.path.join(work_dir, file_base_mane)
temp_dir = os.path.join(repo_dir, 'temp')

if not os.path.exists(repo_dir):
    os.makedirs(repo_dir)

if not os.path.exists(temp_dir):
    os.makedirs(temp_dir)

os.chdir(temp_dir)

pkgs = []
rpm = SimpleRpmBuild('TestA', '1.0.0', '1', ['noarch'])
rpm.add_requires('(TestB or TestC)')
rpm.add_recommends('TestC')
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestB', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestC', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

repo = YumRepoBuild(pkgs)

repo.repoDir = repo_dir

repo.make("noarch")
Exemplo n.º 10
0
work_dir = os.path.dirname(work_file)
file_base_mane = PurePosixPath(work_file).stem
repo_dir = os.path.join(work_dir, file_base_mane)
temp_dir = os.path.join(repo_dir, 'temp')

if not os.path.exists(repo_dir):
    os.makedirs(repo_dir)

if not os.path.exists(temp_dir):
    os.makedirs(temp_dir)


os.chdir(temp_dir)

pkgs = []
rpm = SimpleRpmBuild('TestA', '1.0.0', '1', ['noarch'])
rpm.add_requires('TestB')
pkgs.append(rpm)
# Used for install remove tests if requirement TestB is handled properly.

rpm = SimpleRpmBuild('TestA', '1.0.0', '2', ['noarch'])
rpm.add_requires('TestB')
pkgs.append(rpm)
# Used for upgrade tests

rpm = SimpleRpmBuild('TestB', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)
# Requirement of TestA

rpm = SimpleRpmBuild('TestB', '1.0.0', '2', ['noarch'])
pkgs.append(rpm)
Exemplo n.º 11
0
work_dir = os.path.dirname(work_file)
file_base_mane = PurePosixPath(work_file).stem
repo_dir = os.path.join(work_dir, file_base_mane)
temp_dir = os.path.join(repo_dir, 'temp')

if not os.path.exists(repo_dir):
    os.makedirs(repo_dir)

if not os.path.exists(temp_dir):
    os.makedirs(temp_dir)


os.chdir(temp_dir)

pkgs = []
rpm = SimpleRpmBuild('TestA', '1.0.0', '1', ['noarch'])
rpm.add_requires('(TestB or TestC)')
rpm.add_recommends('TestC')
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestB', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestC', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

repo = YumRepoBuild(pkgs)

repo.repoDir = repo_dir

repo.make("noarch")
Exemplo n.º 12
0
work_file = os.path.realpath(__file__)
work_dir = os.path.dirname(work_file)
file_base_mane = PurePosixPath(work_file).stem
repo_dir = os.path.join(work_dir, file_base_mane)
temp_dir = os.path.join(repo_dir, 'temp')

if not os.path.exists(repo_dir):
    os.makedirs(repo_dir)

if not os.path.exists(temp_dir):
    os.makedirs(temp_dir)

os.chdir(temp_dir)

pkgs = []
rpm = SimpleRpmBuild('TestA', '1.0.0', '1', ['noarch'])
rpm.add_requires('TestB')
rpm.add_group('Testgroup')
pkgs.append(rpm)
# Used for install remove tests if requirement TestB is handled properly.

rpm = SimpleRpmBuild('TestB', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)
# Requirement of TestA

rpm = SimpleRpmBuild('TestC', '1.0.0', '1', ['noarch'])
rpm.add_group('Testgroup')
pkgs.append(rpm)
# Used for install remove tests as a negative control - should not be installed if you install TestA.

rpm = SimpleRpmBuild('TestD', '1.0.0', '1', ['noarch'])
Exemplo n.º 13
0
work_dir = os.path.dirname(work_file)
file_base_mane = PurePosixPath(work_file).stem
repo_dir = os.path.join(work_dir, file_base_mane)
temp_dir = os.path.join(repo_dir, 'temp')

if not os.path.exists(repo_dir):
    os.makedirs(repo_dir)

if not os.path.exists(temp_dir):
    os.makedirs(temp_dir)


os.chdir(temp_dir)

pkgs = []
rpm = SimpleRpmBuild('TestA', '1.0.0', '1', ['noarch'])
rpm.add_requires('(TestB and (TestC if TestD))')
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestB', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestC', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestD', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

repo = YumRepoBuild(pkgs)

repo.repoDir = repo_dir
Exemplo n.º 14
0
work_file = os.path.realpath(__file__)
work_dir = os.path.dirname(work_file)
file_base_mane = PurePosixPath(work_file).stem
repo_dir = os.path.join(work_dir, file_base_mane)
temp_dir = os.path.join(repo_dir, 'temp')

if not os.path.exists(repo_dir):
    os.makedirs(repo_dir)

if not os.path.exists(temp_dir):
    os.makedirs(temp_dir)

os.chdir(temp_dir)

pkgs = []
rpm = SimpleRpmBuild('TestA', '1.0.0', '1', ['noarch'])
rpm.add_requires('(TestC if (TestB or TestD))')
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestB', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestC', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestD', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

repo = YumRepoBuild(pkgs)

repo.repoDir = repo_dir
Exemplo n.º 15
0
work_file = os.path.realpath(__file__)
work_dir = os.path.dirname(work_file)
file_base_mane = PurePosixPath(work_file).stem
repo_dir = os.path.join(work_dir, file_base_mane)
temp_dir = os.path.join(repo_dir, 'temp')

if not os.path.exists(repo_dir):
    os.makedirs(repo_dir)

if not os.path.exists(temp_dir):
    os.makedirs(temp_dir)

os.chdir(temp_dir)

pkgs = []
rpm = SimpleRpmBuild('TestA', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestA', '3.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestB', '1.0.0', '1', ['noarch'])
rpm.add_provides('TestA = 2.0.0')
rpm.add_obsoletes('TestA < 2.0.0')
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestC', '1.0.0', '1', ['noarch'])
rpm.add_provides('TestA = 4.0.0')
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestD', '1.0.0', '1', ['noarch'])
Exemplo n.º 16
0
def make_rpm(outdir,
             name='test',
             version='1.0',
             release='1',
             arch=None,
             for_anaconda_ver=None,
             for_kernel_ver=None,
             payload=None):
    p = SimpleRpmBuild(name, version, release)
    if for_anaconda_ver:
        p.add_provides('installer-enhancement = %s' % for_anaconda_ver)
    if for_kernel_ver:
        p.add_provides('kernel-modules >= %s' % for_kernel_ver)
    if payload is None:
        payload = []
    for item in payload:
        p.add_installed_file(item.path, SourceFile(item.srcpath,
                                                   item.contents),
                             **item.kwargs)
    with in_tempdir("anaconda-test-dd."):
        p.make()
        rpmfile = p.get_built_rpm(arch or expectedArch)
        outfile = os.path.join(outdir, os.path.basename(rpmfile))
        shutil.move(rpmfile, outfile)
    return p
Exemplo n.º 17
0
work_dir = os.path.dirname(work_file)
file_base_mane = PurePosixPath(work_file).stem
repo_dir = os.path.join(work_dir, file_base_mane)
temp_dir = os.path.join(repo_dir, 'temp')

if not os.path.exists(repo_dir):
    os.makedirs(repo_dir)

if not os.path.exists(temp_dir):
    os.makedirs(temp_dir)


os.chdir(temp_dir)

pkgs = []
rpm = SimpleRpmBuild('TestA', '1.0.0', '1', ['noarch'])
rpm.add_requires('(TestC if (TestB or TestD))')
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestB', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestC', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestD', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

repo = YumRepoBuild(pkgs)

repo.repoDir = repo_dir
Exemplo n.º 18
0
work_dir = os.path.dirname(work_file)
file_base_mane = PurePosixPath(work_file).stem
repo_dir = os.path.join(work_dir, file_base_mane)
temp_dir = os.path.join(repo_dir, 'temp')

if not os.path.exists(repo_dir):
    os.makedirs(repo_dir)

if not os.path.exists(temp_dir):
    os.makedirs(temp_dir)


os.chdir(temp_dir)

pkgs = []
rpm = SimpleRpmBuild('TestA', '1.0.0', '1', ['noarch'])
rpm.add_requires('(TestB and ((TestC or TestE) if TestD))')
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestB', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestC', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestD', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)

rpm = SimpleRpmBuild('TestE', '1.0.0', '1', ['noarch'])
pkgs.append(rpm)