Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion assets/deepin-deb-installer.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Exec=deepin-deb-installer %F
GenericName=Package Installer
Icon=deepin-deb-installer
Keywords=package;installer;deepin;dde;dpkg;apt;
MimeType=application/vnd.debian.binary-package;application/x-deb;application/x-executable;
MimeType=application/vnd.debian.binary-package;application/x-deb;application/x-executable;application/x-ddim;
Name=Package Installer
StartupNotify=false
Terminal=false
Expand Down
2 changes: 2 additions & 0 deletions src/deb-installer/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ else()
if(${QAPT_VERSION_STR} VERSION_GREATER_EQUAL "3.0.5.1-1-deepin1" AND ${QAPT_VERSION_STR} MATCHES ".*deepin.*")
message(STATUS "enable virtual package enhance")
add_definitions(-DENABLE_VIRTUAL_PACKAGE_ENHANCE)
# Qt5环境且QApt版本>=3.0.5.1-1-deepin1,支持setEnvVariable方法
add_definitions(-DENABLE_QAPT_SETENV)
else()
message(STATUS "disable virtual package enhance")
endif()
Expand Down
28 changes: 28 additions & 0 deletions src/deb-installer/model/deblistmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -557,6 +557,21 @@ bool DebListModel::slotUninstallPackage(int index)

m_currentTransaction = transsaction; // 保存trans指针

#ifdef ENABLE_QAPT_SETENV // Qt5环境且qapt >= 3.0.5.1-1-deepin1,支持setEnvVariable
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
QVariantMap map;

m_currentTransaction = transsaction; //保存trans指针
// 获取当前真实用户信息
QString currentUser = env.value("USER");
// 如果SUDO_USER存在,说明当前是通过sudo启动的
QString realUser = env.value("SUDO_USER");
if (realUser.isEmpty())
realUser = currentUser;
map.insert("SUDO_USER", realUser);
transsaction->setEnvVariable(map);
#endif

qCDebug(appLog) << "Starting uninstall transaction for package:" << packageId;
transsaction->run(); // 开始卸载

Expand Down Expand Up @@ -1238,6 +1253,19 @@ void DebListModel::installDebs()

m_currentTransaction = transaction;

#ifdef ENABLE_QAPT_SETENV // Qt5环境且qapt >= 3.0.5.1-1-deepin1,支持setEnvVariable
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
QVariantMap map;

// 获取当前真实用户信息
QString currentUser = env.value("USER");
// 如果SUDO_USER存在,说明当前是通过sudo启动的
QString realUser = env.value("SUDO_USER");
if (realUser.isEmpty())
realUser = currentUser;
map.insert("SUDO_USER", realUser);
m_currentTransaction->setEnvVariable(map);
#endif
qCDebug(appLog) << "Running current transaction";
m_currentTransaction->run();
}
Expand Down
Loading