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)
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)
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)))
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