From b5023b1788eb78b8c1d521e28dd89c540cf92773 Mon Sep 17 00:00:00 2001 From: pixdamix Date: Mon, 23 Nov 2009 03:28:58 -0500 Subject: Allow to install a package from a read-only dir This patch allows to install a package which is located on a readonly filesystem or folder by moving the control file into the tmp_dir directory git-svn-id: http://opkg.googlecode.com/svn/trunk@351 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'libopkg/pkg.c') diff --git a/libopkg/pkg.c b/libopkg/pkg.c index 75e9572..89f47a9 100644 --- a/libopkg/pkg.c +++ b/libopkg/pkg.c @@ -301,7 +301,7 @@ void pkg_deinit(pkg_t *pkg) } int -pkg_init_from_file(pkg_t *pkg, const char *filename) +pkg_init_from_file(opkg_conf_t *conf, pkg_t *pkg, const char *filename) { int fd, err = 0; FILE *control_file; @@ -311,7 +311,9 @@ pkg_init_from_file(pkg_t *pkg, const char *filename) pkg->local_filename = xstrdup(filename); - sprintf_alloc(&control_path, "%s.control.XXXXXX", filename); + sprintf_alloc(&control_path, "%s/%s.control.XXXXXX", + conf->tmp_dir, + basename(filename)); fd = mkstemp(control_path); if (fd == -1) { perror_msg("%s: mkstemp(%s)", __FUNCTION__, control_path); -- cgit v0.9.1