404 lines
14 KiB
Diff
404 lines
14 KiB
Diff
|
diff --git a/common/rconfiguration.cc b/common/rconfiguration.cc
|
||
|
index 2603588..5cb8958 100644
|
||
|
--- a/common/rconfiguration.cc
|
||
|
+++ b/common/rconfiguration.cc
|
||
|
@@ -86,24 +86,22 @@ bool RWriteConfigFile(Configuration &Conf)
|
||
|
|
||
|
// store option 'consider recommended packages as dependencies'
|
||
|
// to config of apt if we run as root
|
||
|
- if (getuid() == 0) {
|
||
|
- string aptConfPath = _config->FindDir("Dir::Etc::parts", "/etc/apt/apt.conf.d/")
|
||
|
- + "99synaptic";
|
||
|
-
|
||
|
- int old_umask = umask(0022);
|
||
|
- ofstream aptfile(aptConfPath.c_str(), ios::out);
|
||
|
- if (!aptfile != 0) {
|
||
|
- cerr << "cannot open " << aptConfPath.c_str() <<
|
||
|
- " to write APT::Install-Recommends" << endl;
|
||
|
- } else {
|
||
|
- if (_config->FindB("APT::Install-Recommends", false))
|
||
|
- aptfile << "APT::Install-Recommends \"true\";" << endl;
|
||
|
- else
|
||
|
- aptfile << "APT::Install-Recommends \"false\";" << endl;
|
||
|
+ string aptConfPath = _config->FindDir("Dir::Etc::parts", "@TERMUX_PREFIX@/etc/apt/apt.conf.d/")
|
||
|
+ + "99synaptic";
|
||
|
+
|
||
|
+ int old_umask = umask(0022);
|
||
|
+ ofstream aptfile(aptConfPath.c_str(), ios::out);
|
||
|
+ if (!aptfile != 0) {
|
||
|
+ cerr << "cannot open " << aptConfPath.c_str() <<
|
||
|
+ " to write APT::Install-Recommends" << endl;
|
||
|
+ } else {
|
||
|
+ if (_config->FindB("APT::Install-Recommends", false))
|
||
|
+ aptfile << "APT::Install-Recommends \"true\";" << endl;
|
||
|
+ else
|
||
|
+ aptfile << "APT::Install-Recommends \"false\";" << endl;
|
||
|
aptfile.close();
|
||
|
- }
|
||
|
- umask(old_umask);
|
||
|
}
|
||
|
+ umask(old_umask);
|
||
|
// and backup Install-Recommends to config of synaptic
|
||
|
_config->Set("Synaptic::Install-Recommends",
|
||
|
_config->FindB("APT::Install-Recommends",
|
||
|
@@ -135,14 +133,14 @@ static bool checkConfigDir(string &path)
|
||
|
struct stat stbuf;
|
||
|
struct passwd *pwd;
|
||
|
|
||
|
- pwd = getpwuid(getuid());
|
||
|
+ /* pwd = getpwuid(getuid());
|
||
|
if (!pwd) {
|
||
|
return _error->Errno("getpwuid",
|
||
|
_
|
||
|
("ERROR: Could not get password entry for superuser"));
|
||
|
}
|
||
|
- path = string(pwd->pw_dir) + "/.synaptic";
|
||
|
- //path = "/etc/synaptic";
|
||
|
+ path = string(pwd->pw_dir) + "/.synaptic";*/
|
||
|
+ path = "@TERMUX_PREFIX@/etc/synaptic";
|
||
|
|
||
|
if (stat(path.c_str(), &stbuf) < 0) {
|
||
|
if (mkdir(path.c_str(), 0700) < 0) {
|
||
|
@@ -185,7 +183,7 @@ string RStateDir()
|
||
|
string RTmpDir()
|
||
|
{
|
||
|
struct stat stbuf;
|
||
|
- static string tmpDir = RConfDir() + string("/tmp/");
|
||
|
+ static string tmpDir = RConfDir() + string("@TERMUX_PREFIX@/tmp/");
|
||
|
if (stat(tmpDir.c_str(), &stbuf) < 0) {
|
||
|
if (mkdir(tmpDir.c_str(), 0700) < 0) {
|
||
|
_error->Errno("mkdir",
|
||
|
@@ -241,17 +239,10 @@ bool RInitConfiguration(string confFileName)
|
||
|
|
||
|
// read Install-Recommends, preferably from APT:: if we run as root
|
||
|
// or from Synaptic:: otherwise
|
||
|
- if(getuid() == 0) {
|
||
|
- _config->Set("APT::Install-Recommends",
|
||
|
- _config->FindB("APT::Install-Recommends",
|
||
|
- _config->FindB("Synaptic::Install-Recommends",
|
||
|
- false)));
|
||
|
- } else {
|
||
|
- _config->Set("APT::Install-Recommends",
|
||
|
- _config->FindB("Synaptic::Install-Recommends",
|
||
|
- _config->FindB("APT::Install-Recommends",
|
||
|
- false)));
|
||
|
- }
|
||
|
+ _config->Set("APT::Install-Recommends",
|
||
|
+ _config->FindB("APT::Install-Recommends",
|
||
|
+ _config->FindB("Synaptic::Install-Recommends",
|
||
|
+ false)));
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
diff --git a/common/rpackage.cc b/common/rpackage.cc
|
||
|
index 834b199..ad34aad 100644
|
||
|
--- a/common/rpackage.cc
|
||
|
+++ b/common/rpackage.cc
|
||
|
@@ -233,10 +233,10 @@ const char *RPackage::installedFiles()
|
||
|
filelist.erase(filelist.begin(), filelist.end());
|
||
|
|
||
|
// try normal file first
|
||
|
- string f = "/var/lib/dpkg/info/" + string(name()) + ".list";
|
||
|
+ string f = "@TERMUX_PREFIX@/var/lib/dpkg/info/" + string(name()) + ".list";
|
||
|
// try multiarch name next
|
||
|
if (!FileExists(f))
|
||
|
- f = "/var/lib/dpkg/info/" + string(name()) + ":" + arch() + ".list";
|
||
|
+ f = "@TERMUX_PREFIX@/var/lib/dpkg/info/" + string(name()) + ":" + arch() + ".list";
|
||
|
if (FileExists(f)) {
|
||
|
ifstream in(f.c_str());
|
||
|
if (!in != 0)
|
||
|
diff --git a/common/rpackagelister.cc b/common/rpackagelister.cc
|
||
|
index 084e7ae..628b274 100644
|
||
|
--- a/common/rpackagelister.cc
|
||
|
+++ b/common/rpackagelister.cc
|
||
|
@@ -309,8 +309,6 @@ bool RPackageLister::openCache()
|
||
|
|
||
|
// only lock if we run as root
|
||
|
bool lock = true;
|
||
|
- if(getuid() != 0)
|
||
|
- lock = false;
|
||
|
|
||
|
if (!_cache->open(_progMeter,lock)) {
|
||
|
_progMeter->Done();
|
||
|
diff --git a/data/synaptic.desktop.in b/data/synaptic.desktop.in
|
||
|
index 28025a8..6c5ee22 100644
|
||
|
--- a/data/synaptic.desktop.in
|
||
|
+++ b/data/synaptic.desktop.in
|
||
|
@@ -2,7 +2,7 @@
|
||
|
_Name=Synaptic Package Manager
|
||
|
_GenericName=Package Manager
|
||
|
_Comment=Install, remove and upgrade software packages
|
||
|
-Exec=synaptic-pkexec
|
||
|
+Exec=synaptic
|
||
|
Icon=synaptic
|
||
|
Terminal=false
|
||
|
Type=Application
|
||
|
diff --git a/gtk/gsynaptic.cc b/gtk/gsynaptic.cc
|
||
|
index a6d5834..602a519 100644
|
||
|
--- a/gtk/gsynaptic.cc
|
||
|
+++ b/gtk/gsynaptic.cc
|
||
|
@@ -185,12 +185,12 @@ void update_check(RGMainWindow *mainWindow, RPackageLister *lister)
|
||
|
vector<string> filenames = lister->getPolicyArchives(true);
|
||
|
for (int i=0;i<filenames.size();i++) {
|
||
|
stat(filenames[i].c_str(), &st);
|
||
|
- if(filenames[i] != "/var/lib/dpkg/status")
|
||
|
+ if(filenames[i] != "@TERMUX_PREFIX@/var/lib/dpkg/status")
|
||
|
lastUpdate = max(lastUpdate, (int)st.st_mtime);
|
||
|
}
|
||
|
|
||
|
// new apt uses this
|
||
|
- string update_stamp = _config->FindDir("Dir::State","var/lib/apt");
|
||
|
+ string update_stamp = _config->FindDir("Dir::State","@TERMUX_PREFIX@/var/lib/apt");
|
||
|
update_stamp += "update-stamp";
|
||
|
if(FileExists(update_stamp)) {
|
||
|
stat(update_stamp.c_str(), &st);
|
||
|
@@ -309,9 +309,6 @@ pid_t TestLock(string File)
|
||
|
// *) if not, show message and fail
|
||
|
void check_and_aquire_lock()
|
||
|
{
|
||
|
- if (getuid() != 0)
|
||
|
- return;
|
||
|
-
|
||
|
GtkWidget *dia;
|
||
|
gchar *msg = NULL;
|
||
|
pid_t LockedApp, runsNonInteractive;
|
||
|
@@ -429,17 +426,6 @@ int main(int argc, char **argv)
|
||
|
if (_config->FindB("help") == true)
|
||
|
ShowHelp(CmdL);
|
||
|
|
||
|
- if (getuid() != 0) {
|
||
|
- RGUserDialog userDialog;
|
||
|
- userDialog.warning(g_strdup_printf("<b><big>%s</big></b>\n\n%s",
|
||
|
- _("Starting \"Synaptic Package Manager\" without "
|
||
|
- "administrative privileges"),
|
||
|
- _("You will not be able to apply "
|
||
|
- "any changes, but you can still "
|
||
|
- "export the marked changes or "
|
||
|
- "create a download script "
|
||
|
- "for them.")));
|
||
|
- }
|
||
|
|
||
|
if (!RInitConfiguration("synaptic.conf")) {
|
||
|
RGUserDialog userDialog;
|
||
|
diff --git a/gtk/rgdebinstallprogress.cc b/gtk/rgdebinstallprogress.cc
|
||
|
index 9a8e2eb..db46575 100644
|
||
|
--- a/gtk/rgdebinstallprogress.cc
|
||
|
+++ b/gtk/rgdebinstallprogress.cc
|
||
|
@@ -142,7 +142,7 @@ read_fd(int fd, void *ptr, size_t nbytes, int *recvfd)
|
||
|
}
|
||
|
/* end read_fd */
|
||
|
|
||
|
-#define UNIXSTR_PATH "/var/run/synaptic.socket"
|
||
|
+#define UNIXSTR_PATH "@TERMUX_PREFIX@/var/run/synaptic.socket"
|
||
|
|
||
|
int ipc_send_fd(int fd)
|
||
|
{
|
||
|
@@ -259,7 +259,7 @@ void RGDebInstallProgress::conffile(gchar *conffile, gchar *status)
|
||
|
// read diff
|
||
|
string diff;
|
||
|
char buf[512];
|
||
|
- char *cmd = g_strdup_printf("/usr/bin/diff -u %s %s", orig_file.c_str(), new_file.c_str());
|
||
|
+ char *cmd = g_strdup_printf("@TERMUX_PREFIX@/bin/diff -u %s %s", orig_file.c_str(), new_file.c_str());
|
||
|
FILE *f = popen(cmd,"r");
|
||
|
while(fgets(buf,sizeof(buf),f) != NULL) {
|
||
|
diff += utf8(buf);
|
||
|
diff --git a/gtk/rgmainwindow.cc b/gtk/rgmainwindow.cc
|
||
|
index 3f2d563..a19e817 100644
|
||
|
--- a/gtk/rgmainwindow.cc
|
||
|
+++ b/gtk/rgmainwindow.cc
|
||
|
@@ -405,10 +405,8 @@ void RGMainWindow::updatePackageInfo(RPackage *pkg)
|
||
|
gtk_widget_set_sensitive(_detailsM, TRUE);
|
||
|
gtk_widget_set_sensitive(_propertiesB, TRUE);
|
||
|
// activate for root only
|
||
|
- if(getuid() == 0) {
|
||
|
- gtk_widget_set_sensitive(_pinM, TRUE);
|
||
|
- gtk_widget_set_sensitive(_autoM, TRUE);
|
||
|
- }
|
||
|
+ gtk_widget_set_sensitive(_pinM, TRUE);
|
||
|
+ gtk_widget_set_sensitive(_autoM, TRUE);
|
||
|
|
||
|
// set info
|
||
|
gtk_widget_set_sensitive(pkginfo, true);
|
||
|
@@ -872,19 +870,16 @@ gboolean RGMainWindow::xapianDoIndexUpdate(void *data)
|
||
|
}
|
||
|
|
||
|
// do not run if we don't have it
|
||
|
- if(!FileExists("/usr/sbin/update-apt-xapian-index"))
|
||
|
- return false;
|
||
|
- // no permission
|
||
|
- if (getuid() != 0)
|
||
|
+ if(!FileExists("@TERMUX_PREFIX@/bin/update-apt-xapian-index"))
|
||
|
return false;
|
||
|
|
||
|
// if we make it to this point, we need a xapian update
|
||
|
if(_config->FindB("Debug::Synaptic::Xapian",false))
|
||
|
std::cerr << "running update-apt-xapian-index" << std::endl;
|
||
|
GPid pid;
|
||
|
- const char *argp[] = {"/usr/bin/nice",
|
||
|
- "/usr/bin/ionice","-c3",
|
||
|
- "/usr/sbin/update-apt-xapian-index",
|
||
|
+ const char *argp[] = {"@TERMUX_PREFIX@/bin/nice",
|
||
|
+ "@TERMUX_PREFIX@/bin/ionice","-c3",
|
||
|
+ "@TERMUX_PREFIX@/bin/update-apt-xapian-index",
|
||
|
"--update", "-q",
|
||
|
NULL};
|
||
|
if(g_spawn_async(NULL, const_cast<char **>(argp), NULL,
|
||
|
@@ -1580,29 +1575,6 @@ void RGMainWindow::buildInterface()
|
||
|
gtk_box_set_center_widget(GTK_BOX(
|
||
|
gtk_builder_get_object(_builder, "hbox_button_toolbar")), NULL);
|
||
|
#endif
|
||
|
- // stuff for the non-root mode
|
||
|
- if(getuid() != 0) {
|
||
|
- GtkWidget *menu;
|
||
|
- gtk_widget_set_sensitive(_proceedB, false);
|
||
|
- gtk_widget_set_sensitive(_proceedM, false);
|
||
|
- button = GTK_WIDGET(gtk_builder_get_object(_builder, "button_update"));
|
||
|
- gtk_widget_set_sensitive(button, false);
|
||
|
- menu = GTK_WIDGET(gtk_builder_get_object
|
||
|
- (_builder, "menu_add_downloadedfiles"));
|
||
|
- gtk_widget_set_sensitive(menu, false);
|
||
|
- menu = GTK_WIDGET(gtk_builder_get_object(_builder, "menu_repositories"));
|
||
|
- gtk_widget_set_sensitive(menu, false);
|
||
|
- menu = GTK_WIDGET(gtk_builder_get_object(_builder, "view_commit_log"));
|
||
|
- gtk_widget_set_sensitive(menu, false);
|
||
|
- menu = GTK_WIDGET(gtk_builder_get_object
|
||
|
- (_builder, "menu_update_packages"));
|
||
|
- gtk_widget_set_sensitive(menu, false);
|
||
|
- menu = GTK_WIDGET(gtk_builder_get_object(_builder, "add_cdrom"));
|
||
|
- gtk_widget_set_sensitive(menu, false);
|
||
|
- menu = GTK_WIDGET(gtk_builder_get_object(_builder, "menu_hold"));
|
||
|
- gtk_widget_set_sensitive(menu, false);
|
||
|
- }
|
||
|
-
|
||
|
}
|
||
|
|
||
|
|
||
|
@@ -1690,10 +1662,8 @@ void RGMainWindow::setStatusText(char *text)
|
||
|
gtk_widget_set_sensitive(_upgradeB, _lister->upgradable());
|
||
|
gtk_widget_set_sensitive(_upgradeM, _lister->upgradable());
|
||
|
|
||
|
- if (getuid() == 0) {
|
||
|
- gtk_widget_set_sensitive(_proceedB, (toInstall + toRemove) != 0);
|
||
|
- gtk_widget_set_sensitive(_proceedM, (toInstall + toRemove) != 0);
|
||
|
- }
|
||
|
+ gtk_widget_set_sensitive(_proceedB, (toInstall + toRemove) != 0);
|
||
|
+ gtk_widget_set_sensitive(_proceedM, (toInstall + toRemove) != 0);
|
||
|
_unsavedChanges = ((toInstall + toRemove) != 0);
|
||
|
|
||
|
gtk_widget_queue_draw(_statusL);
|
||
|
diff --git a/gtk/rgutils.cc b/gtk/rgutils.cc
|
||
|
index f5ebdc3..e0506eb 100644
|
||
|
--- a/gtk/rgutils.cc
|
||
|
+++ b/gtk/rgutils.cc
|
||
|
@@ -114,17 +114,17 @@ std::string SizeToStr(double Size)
|
||
|
std::vector<const gchar*> GetBrowserCommand(const gchar *link)
|
||
|
{
|
||
|
std::vector<const gchar*> cmd;
|
||
|
- if (FileExists("/usr/bin/xdg-open")) {
|
||
|
- cmd.push_back("/usr/bin/xdg-open");
|
||
|
+ if (FileExists("@TERMUX_PREFIX@/bin/xdg-open")) {
|
||
|
+ cmd.push_back("@TERMUX_PREFIX@/bin/xdg-open");
|
||
|
cmd.push_back(link);
|
||
|
- } else if (FileExists("/usr/bin/firefox")) {
|
||
|
- cmd.push_back("/usr/bin/firefox");
|
||
|
+ } else if (FileExists("@TERMUX_PREFIX@/bin/netsurf-gtk3")) {
|
||
|
+ cmd.push_back("@TERMUX_PREFIX@/bin/netsurf-gtk3");
|
||
|
cmd.push_back(link);
|
||
|
- } else if (FileExists("/usr/bin/iceweasel")) {
|
||
|
- cmd.push_back("/usr/bin/iceweasel");
|
||
|
+ } else if (FileExists("@TERMUX_PREFIX@/bin/iceweasel")) {
|
||
|
+ cmd.push_back("@TERMUX_PREFIX@/bin/iceweasel");
|
||
|
cmd.push_back(link);
|
||
|
- } else if (FileExists("/usr/bin/konqueror")) {
|
||
|
- cmd.push_back("/usr/bin/konqueror");
|
||
|
+ } else if (FileExists("@TERMUX_PREFIX@/bin/konqueror")) {
|
||
|
+ cmd.push_back("@TERMUX_PREFIX@/bin/konqueror");
|
||
|
cmd.push_back(link);
|
||
|
}
|
||
|
return cmd;
|
||
|
@@ -139,46 +139,10 @@ bool RunAsSudoUserCommand(std::vector<const gchar*> cmd)
|
||
|
std::cerr << "Empty command for RunAsSudoUserCommand" << std::endl;
|
||
|
return true;
|
||
|
}
|
||
|
- bool getuidbyname = false;
|
||
|
- // try pkexec first, then sudo
|
||
|
- sudo_user = getenv("PKEXEC_UID");
|
||
|
|
||
|
- if (sudo_user == NULL) {
|
||
|
- sudo_user = getenv("SUDO_UID");
|
||
|
- }
|
||
|
- if (sudo_user == NULL) {
|
||
|
- sudo_user = getenv("USER");
|
||
|
- getuidbyname = true;
|
||
|
- }
|
||
|
- if (sudo_user == NULL) {
|
||
|
- return false;
|
||
|
- }
|
||
|
- if(strncmp("root", sudo_user, strlen("root")) == 0){
|
||
|
- return false;
|
||
|
- }
|
||
|
- if(!getuidbyname){
|
||
|
- pwd = getpwuid(atoi(sudo_user));
|
||
|
- }
|
||
|
- else{
|
||
|
- pwd = getpwnam(sudo_user);
|
||
|
- }
|
||
|
- sudo_user = pwd->pw_name;
|
||
|
#if 0 // does not work for some reason
|
||
|
- if(FileExists("/usr/bin/pkexec") && sudo_user != NULL)
|
||
|
- {
|
||
|
- prefix.push_back("/usr/bin/pkexec");
|
||
|
- prefix.push_back("--user");
|
||
|
- prefix.push_back(sudo_user);
|
||
|
- }
|
||
|
#endif
|
||
|
- if(FileExists("/usr/bin/sudo") && sudo_user != NULL)
|
||
|
- {
|
||
|
- prefix.push_back("/usr/bin/sudo");
|
||
|
- prefix.push_back("-u");
|
||
|
- prefix.push_back(sudo_user);
|
||
|
- }
|
||
|
- // insert the prefix string
|
||
|
- cmd.insert(cmd.begin(), prefix.begin(), prefix.end());
|
||
|
+
|
||
|
|
||
|
#if 0
|
||
|
for(std::vector<const gchar*>::iterator it = cmd.begin();
|
||
|
@@ -228,7 +192,7 @@ char *gtk_get_string_from_color(GdkRGBA * colp)
|
||
|
|
||
|
g_free(_str);
|
||
|
if (colp == NULL) {
|
||
|
- _str = g_strdup("");
|
||
|
+ _str = g_strdup("USER");
|
||
|
return _str;
|
||
|
}
|
||
|
_str = gdk_rgba_to_string(colp);
|
||
|
diff --git a/wings/synaptic.cc b/wings/synaptic.cc
|
||
|
index 3a84ed2..48cc5b5 100644
|
||
|
--- a/wings/synaptic.cc
|
||
|
+++ b/wings/synaptic.cc
|
||
|
@@ -61,7 +61,7 @@ int main(int argc, char **argv)
|
||
|
{
|
||
|
setlocale(LC_ALL, "");
|
||
|
|
||
|
-// bindtextdomain(PACKAGE, "/usr/local/share/locale");
|
||
|
+// bindtextdomain(PACKAGE, "@TERMUX_PREFIX@/share/locale");
|
||
|
textdomain(PACKAGE);
|
||
|
|
||
|
WMInitializeApplication("synaptic", &argc, argv);
|
||
|
@@ -75,12 +75,12 @@ int main(int argc, char **argv)
|
||
|
//XSynchronize(dpy, 1);
|
||
|
scr = WMCreateScreen(dpy, DefaultScreen(dpy));
|
||
|
|
||
|
- if (getuid() != 0) {
|
||
|
+ /* if (getuid() != 0) {
|
||
|
WMRunAlertPanel(scr, NULL, _("Error"),
|
||
|
_("You must run this program as the root user."),
|
||
|
_("OK"), NULL, NULL);
|
||
|
exit(1);
|
||
|
- }
|
||
|
+ }*/
|
||
|
|
||
|
|
||
|
if (!RInitConfiguration("synaptic.conf")) {
|