Ejemplo n.º 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)
Ejemplo n.º 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
Ejemplo n.º 3
0
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")

shutil.rmtree(temp_dir)
Ejemplo n.º 4
0
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")

shutil.rmtree(temp_dir)