From 0f7718c934cd2e7494a07ebfe20ab0540b0aa715 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 14 Nov 2021 23:37:33 +0100 Subject: [PATCH] Locate PKGBUILDs locally also without variant dir This makes it possible to checkout https://github.com/archlinux/svntogit-packages.git and https://github.com/archlinux/svntogit-community.git locally to build official packages. --- librepomgr/buildactions/preparebuild.cpp | 10 +++++++--- srv/doc/server-config-example.conf | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/librepomgr/buildactions/preparebuild.cpp b/librepomgr/buildactions/preparebuild.cpp index 750cb54..dc4f2f9 100644 --- a/librepomgr/buildactions/preparebuild.cpp +++ b/librepomgr/buildactions/preparebuild.cpp @@ -436,12 +436,16 @@ void PrepareBuild::fetchMissingBuildData() } for (const auto &pkgbuildsDir : m_pkgbuildsDirs) { const auto variant = packageNameData.variant(); - auto pkgbuildPath = pkgbuildsDir % '/' % packageNameData.actualName % '/' % variant; try { - if (!filesystem::exists(pkgbuildPath + "/PKGBUILD")) { + if (const auto pkgbuildPath = pkgbuildsDir % '/' % packageName; + std::filesystem::exists(pkgbuildsDir % '/' % packageName + "/PKGBUILD")) { + buildData.originalSourceDirectory = tupleToString(pkgbuildPath); + } else if (const auto pkgbuildPath = pkgbuildsDir % '/' % packageNameData.actualName % '/' % variant; + filesystem::exists(pkgbuildPath + "/PKGBUILD")) { + buildData.originalSourceDirectory = tupleToString(pkgbuildPath); + } else { continue; } - buildData.originalSourceDirectory = tupleToString(pkgbuildPath); filesystem::create_directories(buildData.sourceDirectory); filesystem::copy(buildData.originalSourceDirectory, buildData.sourceDirectory, std::filesystem::copy_options::recursive); diff --git a/srv/doc/server-config-example.conf b/srv/doc/server-config-example.conf index f041c86..573d8ea 100644 --- a/srv/doc/server-config-example.conf +++ b/srv/doc/server-config-example.conf @@ -13,6 +13,8 @@ permissions = read_build_actions_details modify_build_actions perform_admin_acti load_files_dbs = off working_directory = /var/lib/buildservice/building local_pkgbuilds_dir = /run/media/devel/projects/pkgbuilds +local_pkgbuilds_dir = /run/media/devel/src/svntogit-packages +local_pkgbuilds_dir = /run/media/devel/src/svntogit-community ignore_local_pkgbuilds_regex = ^(some-package-name|yet-another-package-name)$ chroot_dir = /directory/with/enough/space/for/chroot #presets = presets.json