#include "includes.h"
#include <ctype.h>
#include <string.h>
+#include <stdbool.h>
#include <errno.h>
#include "pkg.h"
void pkg_print_info(pkg_t *pkg, FILE *file)
{
+ int t=0;
char * buff;
if (pkg == NULL) {
return;
if ( buff == NULL )
return;
if (strlen(buff)>2){
- fwrite(buff, 1, strlen(buff), file);
+ t = fwrite(buff, 1, strlen(buff), file); //#~rzr:TODO
}
free(buff);
}
can be found in th available file.
But, someone proposed the idea to make it possible to
- reconstruct a .ipk from an installed package, (ie. for beaming
+ reconstruct a .opk from an installed package, (ie. for beaming
from one handheld to another). So, maybe we actually want a few
more fields here, (depends, suggests, etc.), so that that would
be guaranteed to work even in the absence of more information
return NULL;
}
- /* For uninstalled packages, get the file list firectly from the package.
+ /* For uninstalled packages, get the file list directly from the package.
For installed packages, look at the package.list file in the database.
*/
if (pkg->state_status == SS_NOT_INSTALLED || pkg->dest == NULL) {
scripts when running with offline_root mode and/or a dest other
than '/'. I've been playing around with some clever chroot
tricks and I might come up with something workable. */
+ /*
+ * Attempt to provide a restricted environment for offline operation
+ * Need the following set as a minimum:
+ * OPKG_OFFLINE_ROOT = absolute path to root dir
+ * D = absolute path to root dir (for OE generated postinst)
+ * PATH = something safe (a restricted set of utilities)
+ */
+
+ bool AllowOfflineMode = false;
if (conf->offline_root) {
setenv("OPKG_OFFLINE_ROOT", conf->offline_root, 1);
+ setenv("D", conf->offline_root, 1);
+ if (NULL == conf->offline_root_path || '\0' == conf->offline_root_path[0]) {
+ setenv("PATH", "/dev/null", 1);
+ } else {
+ setenv("PATH", conf->offline_root_path, 1);
+ AllowOfflineMode = true;
+ }
}
setenv("PKG_ROOT",
return 0;
}
- if (conf->offline_root) {
+ if (conf->offline_root && !AllowOfflineMode) {
fprintf(stderr, "(offline root mode: not running %s.%s)\n", pkg->name, script);
free(path);
return 0;