diff --git a/libpkg/parser/utils.cpp b/libpkg/parser/utils.cpp index 68ec558..2a99612 100644 --- a/libpkg/parser/utils.cpp +++ b/libpkg/parser/utils.cpp @@ -262,7 +262,7 @@ static void overrideOverriddenVariableAssignment(string &pkgbuildContents, strin */ AmendedVersions amendPkgbuild(const string &path, const PackageVersion &existingVersion, const PackageAmendment &amendment) { - AmendedVersions amendedVersions; + auto amendedVersions = AmendedVersions(); if (amendment.isEmpty()) { return amendedVersions; } @@ -273,6 +273,7 @@ AmendedVersions amendPkgbuild(const string &path, const PackageVersion &existing if (amendment.setUpstreamVersion) { static const auto pkgverRegex = regex{ "\npkgver=[^\n]*", regex::extended }; pkgbuildContents = regex_replace(pkgbuildContents, pkgverRegex, "\npkgver=" + existingVersion.upstream); + amendedVersions.newUpstreamVersion = existingVersion.upstream; } // bump downstream version diff --git a/libpkg/parser/utils.h b/libpkg/parser/utils.h index 2a9478a..20fd7f9 100644 --- a/libpkg/parser/utils.h +++ b/libpkg/parser/utils.h @@ -76,6 +76,7 @@ struct LIBPKG_EXPORT PackageAmendment { }; struct LIBPKG_EXPORT AmendedVersions { + std::string newUpstreamVersion; std::string newPkgRel; std::string newEpoch; }; diff --git a/libpkg/tests/utils.cpp b/libpkg/tests/utils.cpp index 58d4b16..eb5b466 100644 --- a/libpkg/tests/utils.cpp +++ b/libpkg/tests/utils.cpp @@ -79,8 +79,9 @@ void UtilsTests::testAmendingPkgbuild() PackageAmendment{ .bumpDownstreamVersion = PackageAmendment::VersionBump::Epoch }); CPPUNIT_ASSERT_EQUAL_MESSAGE("epoch bumped, pkgrel reset", readFile(testFilePath("c++utilities/PKGBUILD.newepoch")), readFile(pkgbuildPath)); - amendPkgbuild(pkgbuildPath, PackageVersion{ .upstream = "5.0.2", .package = "3" }, PackageAmendment{ .setUpstreamVersion = true }); + auto amendment = amendPkgbuild(pkgbuildPath, PackageVersion{ .upstream = "5.0.2", .package = "3" }, PackageAmendment{ .setUpstreamVersion = true }); CPPUNIT_ASSERT_EQUAL_MESSAGE("upstream version set", readFile(testFilePath("c++utilities/PKGBUILD.newpkgver")), readFile(pkgbuildPath)); + CPPUNIT_ASSERT_EQUAL_MESSAGE("new upstream version returned", "5.0.2"s, amendment.newUpstreamVersion); const auto pkgbuildWithQuotingPath = workingCopyPath("perl-data-dumper-concise/PKGBUILD"); amendPkgbuild(pkgbuildWithQuotingPath, PackageVersion{ .upstream = "2.023", .package = "1" }, diff --git a/librepomgr/buildactions/preparebuild.cpp b/librepomgr/buildactions/preparebuild.cpp index 54f02bb..b9aaf68 100644 --- a/librepomgr/buildactions/preparebuild.cpp +++ b/librepomgr/buildactions/preparebuild.cpp @@ -784,6 +784,9 @@ void PrepareBuild::bumpVersions() if (!amendedVersions.newEpoch.empty()) { newVersion.epoch = std::move(amendedVersions.newEpoch); } + if (!amendedVersions.newUpstreamVersion.empty()) { + newVersion.upstream = std::move(amendedVersions.newUpstreamVersion); + } if (!amendedVersions.newPkgRel.empty()) { newVersion.package = std::move(amendedVersions.newPkgRel); }