Beispiel #1
0
def makeFakeRPM(repo_dir,
                name,
                epoch,
                version,
                release,
                files=None,
                provides=None):
    """Make a fake rpm file in repo_dir"""
    if provides is None:
        provides = []
    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"))
    for c in provides:
        p.add_provides(c)
    with in_tempdir("lorax-test-rpms."):
        p.make()
        rpmfile = p.get_built_rpm(expectedArch)
        shutil.move(rpmfile, repo_dir)
Beispiel #2
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)
Beispiel #3
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)))
Beispiel #4
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