summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/installtransaction.cpp10
-rw-r--r--src/installtransaction.h2
2 files changed, 7 insertions, 5 deletions
diff --git a/src/installtransaction.cpp b/src/installtransaction.cpp
index 73bc825..9339e30 100644
--- a/src/installtransaction.cpp
+++ b/src/installtransaction.cpp
@@ -246,7 +246,7 @@ InstallTransaction::installPackage( const Package* package,
if ( fdlog == -1 ) {
return LOG_FILE_FAILURE;
}
-
+
write( fdlog, message.c_str(), message.length());
write( fdlog, "\n", 1);
@@ -291,7 +291,7 @@ InstallTransaction::installPackage( const Package* package,
result = PKGMK_FAILURE;
} else {
// -- update
- string pkgdest = getPkgDest();
+ string pkgdest = getPkgDest(parser->installRoot());
if ( pkgdest != "" ) {
// TODO: don't manipulate pkgdir
pkgdir = pkgdest;
@@ -582,10 +582,12 @@ InstallTransaction::calcDependencies( )
return SUCCESS;
}
-string InstallTransaction::getPkgDest()
+string InstallTransaction::getPkgDest(const string& installRoot)
{
string pkgdest = "";
- FILE* p = popen( ". /etc/pkgmk.conf && echo $PKGMK_PACKAGE_DIR", "r" );
+ string cmd = ". %s/etc/pkgmk.conf && echo $PKGMK_PACKAGE_DIR";
+ StringHelper::replaceAll(cmd, "%s", installRoot);
+ FILE* p = popen(cmd.c_str(), "r");
if ( p ) {
char line[256];
fgets( line, 256, p );
diff --git a/src/installtransaction.h b/src/installtransaction.h
index bd154ea..4c740c2 100644
--- a/src/installtransaction.h
+++ b/src/installtransaction.h
@@ -103,7 +103,7 @@ private:
bool update,
InstallInfo& info ) const;
- static string getPkgDest();
+ static string getPkgDest(const string& installRoot);
PkgDB* m_pkgDB;
DepResolver m_resolver;

Generated by cgit