forked from cromer/pamac-classic
v5.1.0
This commit is contained in:
parent
9c6c435b05
commit
e9076f605e
@ -138,11 +138,12 @@ class AlpmConfig {
|
|||||||
Alpm.Errno error = 0;
|
Alpm.Errno error = 0;
|
||||||
Alpm.Handle? handle = null;
|
Alpm.Handle? handle = null;
|
||||||
if (tmp_db) {
|
if (tmp_db) {
|
||||||
string tmp_dbpath = "/tmp/pamac-checkdbs-%s".printf (Environment.get_user_name ());
|
string tmp_dbpath = "/tmp/pamac-checkdbs";
|
||||||
try {
|
try {
|
||||||
Process.spawn_command_line_sync ("mkdir -p %s".printf (tmp_dbpath));
|
Process.spawn_command_line_sync ("mkdir -p %s".printf (tmp_dbpath));
|
||||||
Process.spawn_command_line_sync ("ln -sf %s/local %s".printf (dbpath, tmp_dbpath));
|
Process.spawn_command_line_sync ("ln -sf %s/local %s".printf (dbpath, tmp_dbpath));
|
||||||
Process.spawn_command_line_sync ("cp -au %s/sync %s".printf (dbpath, tmp_dbpath));
|
Process.spawn_command_line_sync ("cp -au %s/sync %s".printf (dbpath, tmp_dbpath));
|
||||||
|
Process.spawn_command_line_sync ("chmod -R 777 %s/sync".printf (tmp_dbpath));
|
||||||
handle = new Alpm.Handle (rootdir, tmp_dbpath, out error);
|
handle = new Alpm.Handle (rootdir, tmp_dbpath, out error);
|
||||||
} catch (SpawnError e) {
|
} catch (SpawnError e) {
|
||||||
stderr.printf ("SpawnError: %s\n", e.message);
|
stderr.printf ("SpawnError: %s\n", e.message);
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const string VERSION = "5.0.0";
|
const string VERSION = "5.1.0";
|
||||||
|
|
||||||
namespace Pamac {
|
namespace Pamac {
|
||||||
|
|
||||||
|
@ -141,8 +141,8 @@ namespace Pamac {
|
|||||||
(alpm_action) => {
|
(alpm_action) => {
|
||||||
alpm_action.run ();
|
alpm_action.run ();
|
||||||
},
|
},
|
||||||
// two threads at a time
|
// only one thread created so alpm action will run one after one
|
||||||
2,
|
1,
|
||||||
// no exclusive thread
|
// no exclusive thread
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
@ -168,7 +168,12 @@ namespace Pamac {
|
|||||||
alpm_handle.logcb = (Alpm.LogCallBack) cb_log;
|
alpm_handle.logcb = (Alpm.LogCallBack) cb_log;
|
||||||
lockfile = GLib.File.new_for_path (alpm_handle.lockfile);
|
lockfile = GLib.File.new_for_path (alpm_handle.lockfile);
|
||||||
files_handle = alpm_config.get_handle (true);
|
files_handle = alpm_config.get_handle (true);
|
||||||
|
files_handle.eventcb = (Alpm.EventCallBack) cb_event;
|
||||||
|
files_handle.progresscb = (Alpm.ProgressCallBack) cb_progress;
|
||||||
|
files_handle.questioncb = (Alpm.QuestionCallBack) cb_question;
|
||||||
files_handle.fetchcb = (Alpm.FetchCallBack) cb_fetch;
|
files_handle.fetchcb = (Alpm.FetchCallBack) cb_fetch;
|
||||||
|
files_handle.totaldlcb = (Alpm.TotalDownloadCallBack) cb_totaldownload;
|
||||||
|
files_handle.logcb = (Alpm.LogCallBack) cb_log;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -471,21 +476,30 @@ namespace Pamac {
|
|||||||
write_log_file ("synchronizing package lists");
|
write_log_file ("synchronizing package lists");
|
||||||
cancellable.reset ();
|
cancellable.reset ();
|
||||||
int force = (force_refresh) ? 1 : 0;
|
int force = (force_refresh) ? 1 : 0;
|
||||||
|
// try to copy refresh dbs in tmp
|
||||||
|
string tmp_dbpath = "/tmp/pamac-checkdbs";
|
||||||
|
try {
|
||||||
|
Process.spawn_command_line_sync ("cp -au %s/sync %s".printf (tmp_dbpath, alpm_handle.dbpath));
|
||||||
|
} catch (SpawnError e) {
|
||||||
|
stderr.printf ("SpawnError: %s\n", e.message);
|
||||||
|
}
|
||||||
// update ".db"
|
// update ".db"
|
||||||
bool success = update_dbs (alpm_handle, force);
|
bool success = update_dbs (alpm_handle, force);
|
||||||
if (cancellable.is_cancelled ()) {
|
if (cancellable.is_cancelled ()) {
|
||||||
refresh_finished (false);
|
refresh_finished (false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (success) {
|
// update ".files", do not need to know if we succeeded
|
||||||
|
update_dbs (files_handle, force);
|
||||||
|
if (cancellable.is_cancelled ()) {
|
||||||
|
refresh_finished (false);
|
||||||
|
} else if (success) {
|
||||||
refreshed = true;
|
refreshed = true;
|
||||||
refresh_finished (true);
|
refresh_finished (true);
|
||||||
} else {
|
} else {
|
||||||
current_error.message = _("Failed to synchronize any databases");
|
current_error.message = _("Failed to synchronize any databases");
|
||||||
refresh_finished (false);
|
refresh_finished (false);
|
||||||
}
|
}
|
||||||
// update ".files", do it in background, do not need to know if we succeeded
|
|
||||||
update_dbs (files_handle, force);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start_refresh (bool force, GLib.BusName sender) {
|
public void start_refresh (bool force, GLib.BusName sender) {
|
||||||
|
@ -472,6 +472,9 @@ namespace Pamac {
|
|||||||
success = false;
|
success = false;
|
||||||
finish_transaction ();
|
finish_transaction ();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
success = false;
|
||||||
|
finish_transaction ();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -1396,8 +1399,8 @@ namespace Pamac {
|
|||||||
rates_nb = 0;
|
rates_nb = 0;
|
||||||
fraction = 0;
|
fraction = 0;
|
||||||
timer.start ();
|
timer.start ();
|
||||||
if (filename.has_suffix (".db")) {
|
if (filename.has_suffix (".db") || filename.has_suffix (".files")) {
|
||||||
string action = dgettext (null, "Refreshing %s").printf (filename.replace (".db", "")) + "...";
|
string action = dgettext (null, "Refreshing %s").printf (filename) + "...";
|
||||||
reset_progress_box (action);
|
reset_progress_box (action);
|
||||||
}
|
}
|
||||||
} else if (xfered == total) {
|
} else if (xfered == total) {
|
||||||
|
@ -220,9 +220,11 @@ namespace Pamac {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (lockfile.query_exists ()) {
|
if (lockfile.query_exists ()) {
|
||||||
|
if (!check_pamac_running ()) {
|
||||||
extern_lock = true;
|
extern_lock = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -847,6 +847,14 @@ namespace Pamac {
|
|||||||
db.update (0);
|
db.update (0);
|
||||||
syncdbs.next ();
|
syncdbs.next ();
|
||||||
}
|
}
|
||||||
|
// refresh file dbs
|
||||||
|
var tmp_files_handle = alpm_config.get_handle (true, true);
|
||||||
|
syncdbs = tmp_files_handle.syncdbs;
|
||||||
|
while (syncdbs != null) {
|
||||||
|
unowned Alpm.DB db = syncdbs.data;
|
||||||
|
db.update (0);
|
||||||
|
syncdbs.next ();
|
||||||
|
}
|
||||||
string[] local_pkgs = {};
|
string[] local_pkgs = {};
|
||||||
unowned Alpm.List<unowned Alpm.Package> pkgcache = tmp_handle.localdb.pkgcache;
|
unowned Alpm.List<unowned Alpm.Package> pkgcache = tmp_handle.localdb.pkgcache;
|
||||||
while (pkgcache != null) {
|
while (pkgcache != null) {
|
||||||
|
Loading…
Reference in New Issue
Block a user