Пример #1
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)
Пример #2
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