handle circular deps

This commit is contained in:
Martchus 2015-12-08 00:25:44 +01:00
parent 98f94fc1b1
commit 860b9ff865
1 changed files with 8 additions and 4 deletions

View File

@ -98,9 +98,9 @@ void MingwBundle::addDependencies(const Package *pkg)
decltype(m_packages)::value_type entry(syncDbEntry.second.get(), pkg);
if(find(m_packages.cbegin(), m_packages.cend(), entry) == m_packages.cend()) {
m_packages.emplace_back(entry);
addDependencies(pkg);
}
}
addDependencies(pkg);
found = true;
break;
}
@ -336,13 +336,17 @@ void makeArchive(const list<PkgFileInfo> &pkgFiles, const QByteArray &pkgList, c
throw runtime_error("Specified archive format \"" + targetFormat + "\" is unknown.");
}
if(targetArchive->open(QIODevice::WriteOnly)) {
// add note
targetArchive->writeFile(root + QStringLiteral("/note.txt"), QByteArray("This archive has been created with Martchus' repository indexing tool.\n"
"List of included packages: var/lib/repoindex/packages.list\n"
"More info: http://martchus.netai.net/page.php?name=programming"));
// add package list
if(!pkgList.isEmpty()) {
targetArchive->writeFile(root % QStringLiteral("/var/lib/repoindex/packages.list"), pkgList, 0100644);
targetArchive->writeFile(root + QStringLiteral("/var/lib/repoindex/packages.list"), pkgList);
}
// set default icon theme
if(!indexFile.isEmpty()) {
targetArchive->writeFile(root % QStringLiteral("/share/icons/default/index.theme"), indexFile, 0100644);
targetArchive->writeFile(root + QStringLiteral("/share/icons/default/index.theme"), indexFile);
}
// add relevant files from packages
for(const auto &pkgFile : pkgFiles) {
@ -445,7 +449,7 @@ void MingwBundle::createBundle(const string &targetDir, const string &targetName
}
QJsonDocument pkgList;
pkgList.setArray(pkgArray);
QByteArray pkgListBytes = pkgList.toJson();
const QByteArray pkgListBytes = pkgList.toJson();
QByteArray indexFileBytes;
if(!defaultIconTheme.empty()) {
indexFileBytes.reserve(23 + defaultIconTheme.size());