From e03b993a84bb39e3f146a0ef8782a09661239be7 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 6 Jun 2013 10:55:50 +0000 Subject: [PATCH] Create distribution working. git-svn-id: https://svn.argeo.org/slc/trunk@6333 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../slc/rpmfactory/core/CreateRpmDistribution.java | 14 ++++++++++++-- .../org/argeo/slc/rpmfactory/core/RpmFactory.java | 9 +++++++-- .../rpmfactory/core/ThirdPartyRpmRepository.java | 9 +++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/CreateRpmDistribution.java b/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/CreateRpmDistribution.java index 70a5e705c..625193aa9 100644 --- a/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/CreateRpmDistribution.java +++ b/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/CreateRpmDistribution.java @@ -16,7 +16,6 @@ import org.apache.commons.logging.LogFactory; import org.argeo.jcr.JcrUtils; import org.argeo.slc.SlcException; import org.argeo.slc.core.execution.tasks.SystemCall; -import org.springframework.core.io.ByteArrayResource; /** * Gather RPMs from various sources (local builds or third party) into a @@ -46,7 +45,7 @@ public class CreateRpmDistribution implements Runnable { SystemCall repoquery = new SystemCall(); repoquery.arg(repoqueryExecutable); - File yumConfigFile = rpmFactory.getYumConfigFile(arch); + File yumConfigFile = rpmFactory.getYumRepoFile(arch); repoquery.arg("-c", yumConfigFile.getAbsolutePath()); repoquery.arg("--requires"); repoquery.arg("--resolve"); @@ -102,6 +101,17 @@ public class CreateRpmDistribution implements Runnable { } } + // createrepo + File workspaceDir = rpmFactory.getWorkspaceDir(rpmDistribution + .getId()); + SystemCall createrepo = new SystemCall(); + createrepo.arg("createrepo"); + createrepo.arg("-q"); + createrepo.arg("-d"); + File archDir = new File(workspaceDir.getPath() + + targetFolder.getPath()); + createrepo.arg(archDir.getAbsolutePath()); + createrepo.run(); } catch (Exception e) { throw new SlcException("Cannot generate distribution " + rpmDistribution.getId(), e); diff --git a/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/RpmFactory.java b/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/RpmFactory.java index b881cf46f..4daf3b1ea 100644 --- a/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/RpmFactory.java +++ b/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/RpmFactory.java @@ -243,6 +243,10 @@ public class RpmFactory { buf.append("baseurl=").append(proxiedReposBase) .append(repository.getId()).append('/').append(arch) .append('/').append("\n"); + if (((ThirdPartyRpmRepository) repository).getYumConf() != null) + buf.append( + ((ThirdPartyRpmRepository) repository).getYumConf() + .trim()).append('\n'); } } @@ -259,6 +263,7 @@ public class RpmFactory { buf.append('[').append(workspace).append("]\n"); buf.append("baseurl=").append(managedReposBase).append(workspace) .append('/').append(arch).append('/').append("\n"); + buf.append("gpgcheck=0").append("\n"); } /** Creates a mock config file. */ @@ -284,8 +289,8 @@ public class RpmFactory { } /** Creates a yum config file. */ - public File getYumConfigFile(String arch) { - File yumConfigFile = new File(yumConfDir, getIdWithArch(arch) + ".conf"); + public File getYumRepoFile(String arch) { + File yumConfigFile = new File(yumConfDir, getIdWithArch(arch) + ".repo"); try { FileUtils.writeStringToFile(yumConfigFile, generateYumConfigFile(arch)); diff --git a/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/ThirdPartyRpmRepository.java b/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/ThirdPartyRpmRepository.java index 3e366e28b..29025301c 100644 --- a/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/ThirdPartyRpmRepository.java +++ b/runtime/org.argeo.slc.rpmfactory/src/main/java/org/argeo/slc/rpmfactory/core/ThirdPartyRpmRepository.java @@ -5,5 +5,14 @@ package org.argeo.slc.rpmfactory.core; * will be cached within the system. */ public class ThirdPartyRpmRepository extends AbstractRpmRepository { + private String yumConf; + + public String getYumConf() { + return yumConf; + } + + public void setYumConf(String yumConf) { + this.yumConf = yumConf; + } } -- 2.39.5