Update shared.cpp
This commit is contained in:
@@ -49,6 +49,7 @@
|
||||
QString appBinaryPath;
|
||||
bool runStripEnabled = true;
|
||||
bool bundleAllButCoreLibs = false;
|
||||
bool bundleEverything = false;
|
||||
bool fhsLikeMode = false;
|
||||
QString fhsPrefix;
|
||||
bool alwaysOwerwriteEnabled = false;
|
||||
@@ -429,43 +430,44 @@ LibraryInfo parseLddLibraryLine(const QString &line, const QString &appDirPath,
|
||||
if (trimmed.isEmpty())
|
||||
return info;
|
||||
|
||||
if(!bundleEverything) {
|
||||
if(bundleAllButCoreLibs) {
|
||||
/*
|
||||
Bundle every lib including the low-level ones except those that are explicitly blacklisted.
|
||||
This is more suitable for bundling in a way that is portable between different distributions and target systems.
|
||||
Along the way, this also takes care of non-Qt libraries.
|
||||
|
||||
if(bundleAllButCoreLibs) {
|
||||
/*
|
||||
Bundle every lib including the low-level ones except those that are explicitly blacklisted.
|
||||
This is more suitable for bundling in a way that is portable between different distributions and target systems.
|
||||
Along the way, this also takes care of non-Qt libraries.
|
||||
The excludelist can be updated by running the bundled script generate-excludelist.sh
|
||||
*/
|
||||
|
||||
The excludelist can be updated by running the bundled script generate-excludelist.sh
|
||||
*/
|
||||
// copy generated excludelist
|
||||
QStringList excludelist = generatedExcludelist;
|
||||
|
||||
// copy generated excludelist
|
||||
QStringList excludelist = generatedExcludelist;
|
||||
// append exclude libs
|
||||
excludelist += excludeLibs;
|
||||
|
||||
// append exclude libs
|
||||
excludelist += excludeLibs;
|
||||
|
||||
LogDebug() << "excludelist:" << excludelist;
|
||||
if (! trimmed.contains("libicu")) {
|
||||
if (containsHowOften(excludelist, QFileInfo(trimmed).completeBaseName())) {
|
||||
LogDebug() << "Skipping blacklisted" << trimmed;
|
||||
return info;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
Don't deploy low-level libraries in /usr or /lib because these tend to break if moved to a system with a different glibc.
|
||||
TODO: Could make bundling these low-level libraries optional but then the bundles might need to
|
||||
use something like patchelf --set-interpreter or http://bitwagon.com/rtldi/rtldi.html
|
||||
With the Qt provided by qt.io the libicu libraries come bundled, but that is not the case with e.g.,
|
||||
Qt from ppas. Hence we make sure libicu is always bundled since it cannot be assumed to be on target sytems
|
||||
*/
|
||||
// Manual make of Qt deploys it to /usr/local/Qt-x.x.x so we cannot remove this path just like that, so let's allow known libs of Qt.
|
||||
if (!trimmed.contains("libicu") && !trimmed.contains("lib/libQt") && !trimmed.contains("lib/libqgsttools")) {
|
||||
if ((trimmed.startsWith("/usr") or (trimmed.startsWith("/lib")))) {
|
||||
return info;
|
||||
}
|
||||
}
|
||||
LogDebug() << "excludelist:" << excludelist;
|
||||
if (! trimmed.contains("libicu")) {
|
||||
if (containsHowOften(excludelist, QFileInfo(trimmed).completeBaseName())) {
|
||||
LogDebug() << "Skipping blacklisted" << trimmed;
|
||||
return info;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
Don't deploy low-level libraries in /usr or /lib because these tend to break if moved to a system with a different glibc.
|
||||
TODO: Could make bundling these low-level libraries optional but then the bundles might need to
|
||||
use something like patchelf --set-interpreter or http://bitwagon.com/rtldi/rtldi.html
|
||||
With the Qt provided by qt.io the libicu libraries come bundled, but that is not the case with e.g.,
|
||||
Qt from ppas. Hence we make sure libicu is always bundled since it cannot be assumed to be on target sytems
|
||||
*/
|
||||
// Manual make of Qt deploys it to /usr/local/Qt-x.x.x so we cannot remove this path just like that, so let's allow known libs of Qt.
|
||||
if (!trimmed.contains("libicu") && !trimmed.contains("lib/libQt") && !trimmed.contains("lib/libqgsttools")) {
|
||||
if ((trimmed.startsWith("/usr") or (trimmed.startsWith("/lib")))) {
|
||||
return info;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum State {QtPath, LibraryName, Version, End};
|
||||
|
||||
Reference in New Issue
Block a user