Fix showing arch of packages after optimization
* Move the binary package arch truly into the base package
This commit is contained in:
parent
b74392c34d
commit
ecebf9fbde
|
@ -101,8 +101,8 @@ static void printPackageSearchResults(const LibRepoMgr::WebClient::Response::bod
|
|||
for (const auto &[db, package, packageID] : packages) {
|
||||
const auto &dbInfo = std::get<LibPkg::DatabaseInfo>(db);
|
||||
t.add_row(
|
||||
{ package->packageInfo ? package->packageInfo->arch : dbInfo.arch, dbInfo.name, package->name, package->version, package->description,
|
||||
package->packageInfo && !package->packageInfo->buildDate.isNull() ? package->packageInfo->buildDate.toString() : "?" });
|
||||
{ package->packageInfo ? package->arch : dbInfo.arch, dbInfo.name, package->name, package->version, package->description,
|
||||
package->packageInfo && !package->buildDate.isNull() ? package->packageInfo->buildDate.toString() : "?" });
|
||||
}
|
||||
t.row(0).format().font_align(tabulate::FontAlign::center).font_style({ tabulate::FontStyle::bold });
|
||||
configureColumnWidths(t);
|
||||
|
@ -135,7 +135,7 @@ static void printPackageDetails(const LibRepoMgr::WebClient::Response::body_type
|
|||
tabulate::Table t;
|
||||
t.format().hide_border();
|
||||
if (pkg->packageInfo) {
|
||||
t.add_row({ "Arch", pkg->packageInfo->arch });
|
||||
t.add_row({ "Arch", pkg->arch });
|
||||
} else if (!pkg->archs.empty()) {
|
||||
t.add_row({ "Archs", formatList(pkg->archs) });
|
||||
} else if (pkg->sourceInfo) {
|
||||
|
|
|
@ -322,13 +322,10 @@ std::string PackageVersion::toString() const
|
|||
*/
|
||||
string LibPkg::Package::computeFileName(const char *extension) const
|
||||
{
|
||||
if (!packageInfo) {
|
||||
return string();
|
||||
}
|
||||
if (!packageInfo->fileName.empty()) {
|
||||
if (packageInfo && !packageInfo->fileName.empty()) {
|
||||
return packageInfo->fileName;
|
||||
}
|
||||
return argsToString(name, '-', version, '-', packageInfo->arch, '.', extension);
|
||||
return argsToString(name, '-', version, '-', arch, '.', extension);
|
||||
}
|
||||
|
||||
string LibPkg::PackageBase::computeRegularPackageName() const
|
||||
|
|
|
@ -233,7 +233,6 @@ struct LIBPKG_EXPORT PackageInfo : public ReflectiveRapidJSON::JsonSerializable<
|
|||
std::string md5;
|
||||
std::string sha256;
|
||||
std::string pgpSignature;
|
||||
std::string arch; // arch of concrete binary package
|
||||
std::uint32_t size = 0;
|
||||
bool operator==(const PackageInfo &other) const = default;
|
||||
};
|
||||
|
|
|
@ -234,7 +234,7 @@ static void addPackageInfo(Package &package, PackageVersion &version, const char
|
|||
if (isPackageInfo) {
|
||||
// add as binary arch when parsing PKGINFO
|
||||
ensure_pkg_info;
|
||||
package.packageInfo->arch = valueString;
|
||||
package.arch = valueString;
|
||||
} else if (!packageCount) {
|
||||
// add to sourceInfo when still parsing base info
|
||||
package.sourceInfo->archs.emplace_back(value, valueSize);
|
||||
|
@ -319,7 +319,7 @@ static void addPackageDescription(Package &package, const char *field, size_t fi
|
|||
}
|
||||
else_if_field("ARCH")
|
||||
{
|
||||
package.packageInfo->arch = valueString;
|
||||
package.arch = valueString;
|
||||
}
|
||||
else_if_field("LICENSE")
|
||||
{
|
||||
|
@ -934,10 +934,10 @@ std::shared_ptr<Package> Package::fromPkgFileName(std::string_view fileName)
|
|||
pkg->origin = PackageOrigin::PackageFileName;
|
||||
pkg->name = name;
|
||||
pkg->version = version;
|
||||
pkg->arch = arch;
|
||||
pkg->provides.emplace_back(pkg->name, pkg->version);
|
||||
pkg->packageInfo = std::make_optional<PackageInfo>();
|
||||
pkg->packageInfo->fileName = fileName;
|
||||
pkg->packageInfo->arch = arch;
|
||||
return pkg;
|
||||
}
|
||||
|
||||
|
|
|
@ -273,10 +273,9 @@ void DataTests::testComputingFileName()
|
|||
auto pkg = Package();
|
||||
pkg.name = "test";
|
||||
pkg.version = "1.2-3";
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("packageInfo required for computing filename", string(), pkg.computeFileName());
|
||||
pkg.packageInfo = std::make_optional<PackageInfo>();
|
||||
pkg.packageInfo->arch = "x86_64";
|
||||
pkg.arch = "x86_64";
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("file name computed from name, version and arch", "test-1.2-3-x86_64.pkg.tar.zst"s, pkg.computeFileName());
|
||||
pkg.packageInfo = std::make_optional<PackageInfo>();
|
||||
pkg.packageInfo->fileName = "explicitly-specified-filename";
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("explicitly specified filename returned", "explicitly-specified-filename"s, pkg.computeFileName());
|
||||
}
|
||||
|
|
|
@ -280,7 +280,7 @@ void ParserTests::testParsingPkgName()
|
|||
CPPUNIT_ASSERT_EQUAL_MESSAGE("origin", PackageOrigin::PackageFileName, pkg->origin);
|
||||
CPPUNIT_ASSERT_EQUAL("texlive-localmanager-git"s, pkg->name);
|
||||
CPPUNIT_ASSERT_EQUAL("0.4.6.r0.gd71966e-1"s, pkg->version);
|
||||
CPPUNIT_ASSERT_EQUAL("any"s, pkg->packageInfo->arch);
|
||||
CPPUNIT_ASSERT_EQUAL("any"s, pkg->arch);
|
||||
}
|
||||
|
||||
void ParserTests::testExtractingPkgFile()
|
||||
|
|
|
@ -104,7 +104,7 @@ void BinaryParserTests::testParsingElfFromPkgFile()
|
|||
const auto pkgFilePath3 = testFilePath("perl/perl-linux-desktopfiles-0.22-2-any.pkg.tar.xz");
|
||||
const auto package3 = Package::fromPkgFile(pkgFilePath3);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("origin", PackageOrigin::PackageContents, package3->origin);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("arch", "any"s, package3->packageInfo->arch);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("arch", "any"s, package3->arch);
|
||||
const unordered_set<Dependency> expectedPerlDependencies{
|
||||
Dependency("perl", "5.28", DependencyMode::GreatherEqual), // because contained module built against Perl 5.28
|
||||
Dependency("perl", "5.29", DependencyMode::LessThan), // because contained module built against Perl 5.28
|
||||
|
@ -120,7 +120,7 @@ void BinaryParserTests::testParsingElfFromPkgFile()
|
|||
const auto pkgFilePath4 = testFilePath("python/sphinxbase-5prealpha-7-i686.pkg.tar.xz");
|
||||
const auto package4 = Package::fromPkgFile(pkgFilePath4);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("origin", PackageOrigin::PackageContents, package4->origin);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("arch", "i686"s, package4->packageInfo->arch);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("arch", "i686"s, package4->arch);
|
||||
const unordered_set<Dependency> expectedPythonDependencies{
|
||||
Dependency("libpulse"), // from PKGBUILD
|
||||
Dependency("lapack"), // from PKGBUILD
|
||||
|
|
|
@ -33,7 +33,7 @@ void checkHarfbuzzPackage(const Package &pkg)
|
|||
CPPUNIT_ASSERT_MESSAGE("package info present"s, pkg.packageInfo);
|
||||
CPPUNIT_ASSERT_MESSAGE("no source archs present"s, pkg.sourceInfo->archs.empty());
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("package arch"s, "Martchus <@.net>"s, pkg.packageInfo->packager);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("packer"s, "any"s, pkg.packageInfo->arch);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("packer"s, "any"s, pkg.arch);
|
||||
const vector<Dependency> makeDependencies = {
|
||||
Dependency("mingw-w64-configure"s),
|
||||
Dependency("mingw-w64-cairo"s),
|
||||
|
@ -81,7 +81,7 @@ void checkAutoconfPackage(const Package &pkg)
|
|||
CPPUNIT_ASSERT_MESSAGE("package info present"s, pkg.packageInfo);
|
||||
CPPUNIT_ASSERT_MESSAGE("no source archs present"s, pkg.sourceInfo->archs.empty());
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("packer"s, "Allan McRae <allan@archlinux.org>"s, pkg.packageInfo->packager);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("package arch"s, "any"s, pkg.packageInfo->arch);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("package arch"s, "any"s, pkg.arch);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("package file name"s, "autoconf-2.69-4-any.pkg.tar.xz"s, pkg.packageInfo->fileName);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("package build date"s, 636089958990000000ul, pkg.packageInfo->buildDate.totalTicks());
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("package files"s, 74ul, pkg.packageInfo->files.size());
|
||||
|
|
|
@ -177,7 +177,7 @@ bool ReloadLibraryDependencies::addRelevantPackage(LibPkg::StorageID packageID,
|
|||
std::string path, url, cachePath;
|
||||
std::error_code ec;
|
||||
const auto &fileName = packageInfo->fileName;
|
||||
const auto &arch = packageInfo->arch;
|
||||
const auto &arch = package->arch;
|
||||
if (!db->localPkgDir.empty() && std::filesystem::file_size(cachePath = db->localPkgDir % '/' + fileName, ec) && !ec) {
|
||||
path = std::move(cachePath);
|
||||
} else if (std::filesystem::file_size(cachePath = m_cacheDir + fileName, ec) && !ec) {
|
||||
|
|
|
@ -470,7 +470,7 @@ void CheckForProblems::run()
|
|||
.desc = "signature file for package \"" % package->packageInfo->fileName + "\" not present", .pkg = package->name });
|
||||
}
|
||||
}
|
||||
if (package->packageInfo->arch == "any" && (!package->libdepends.empty() || !package->libprovides.empty())) {
|
||||
if (package->arch == "any" && (!package->libdepends.empty() || !package->libprovides.empty())) {
|
||||
auto crossOnly = true;
|
||||
for (const auto &libnames : { package->libdepends, package->libprovides }) {
|
||||
for (const auto &libname : libnames) {
|
||||
|
|
|
@ -69,7 +69,7 @@ export function renderDependency(mode, value)
|
|||
}
|
||||
|
||||
const labelsWithoutBasics = ['Architecture', 'Repository', 'Description', 'Upstream URL', 'License(s)', 'Groups', 'Package size', 'Installed size', 'Packager', 'Build date', 'Dependencies', 'Optional dependencies', 'Make dependencies', 'Check dependencies', 'Provides', 'Replaces', 'Conflicts', 'Contained libraries', 'Needed libraries', 'Files'];
|
||||
const fieldsWithoutBasics = ['packageInfo.arch', 'db', 'description', 'upstreamUrl', 'licenses', 'groups', 'packageInfo.size', 'installInfo.installedSize', 'packageInfo.packager', 'packageInfo.buildDate', 'dependencies', 'optionalDependencies', 'sourceInfo.makeDependencies', 'sourceInfo.checkDependencies', 'provides', 'replaces', 'conflicts', 'libprovides', 'libdepends', 'packageInfo.files'];
|
||||
const fieldsWithoutBasics = ['arch', 'db', 'description', 'upstreamUrl', 'licenses', 'groups', 'packageInfo.size', 'installInfo.installedSize', 'packageInfo.packager', 'packageInfo.buildDate', 'dependencies', 'optionalDependencies', 'sourceInfo.makeDependencies', 'sourceInfo.checkDependencies', 'provides', 'replaces', 'conflicts', 'libprovides', 'libdepends', 'packageInfo.files'];
|
||||
const labelsWithBasics = ['Name', 'Version', ...labelsWithoutBasics];
|
||||
const fieldsWithBasics = ['name', 'version', ...fieldsWithoutBasics];
|
||||
|
||||
|
|
Loading…
Reference in New Issue