diff options
Diffstat (limited to 'lib/libalpm')
-rw-r--r-- | lib/libalpm/alpm.h | 3 | ||||
-rw-r--r-- | lib/libalpm/trans.c | 33 | ||||
-rw-r--r-- | lib/libalpm/util.h | 4 |
3 files changed, 1 insertions, 39 deletions
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index 98115241..add835d2 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -287,9 +287,6 @@ typedef enum _pmtransevt_t { PM_TRANS_EVT_EXTRACT_DONE, PM_TRANS_EVT_INTEGRITY_START, PM_TRANS_EVT_INTEGRITY_DONE, - PM_TRANS_EVT_SCRIPTLET_INFO, - PM_TRANS_EVT_SCRIPTLET_START, - PM_TRANS_EVT_SCRIPTLET_DONE, PM_TRANS_EVT_PRINTURI, PM_TRANS_EVT_RETRIEVE_START, } pmtransevt_t; diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c index 403872e0..cde8bf0f 100644 --- a/lib/libalpm/trans.c +++ b/lib/libalpm/trans.c @@ -642,7 +642,6 @@ int _alpm_runscriptlet(const char *root, const char *installfn, } if(pid == 0) { - FILE *pp; _alpm_log(PM_LOG_DEBUG, _("chrooting in %s"), root); if(chroot(root) != 0) { _alpm_log(PM_LOG_ERROR, _("could not change the root directory (%s)"), strerror(errno)); @@ -654,37 +653,7 @@ int _alpm_runscriptlet(const char *root, const char *installfn, } umask(0022); _alpm_log(PM_LOG_DEBUG, _("executing \"%s\""), cmdline); - pp = popen(cmdline, "r"); - if(!pp) { - _alpm_log(PM_LOG_ERROR, _("call to popen failed (%s)"), strerror(errno)); - retval = 1; - goto cleanup; - } - while(!feof(pp)) { - char line[1024]; - if(fgets(line, 1024, pp) == NULL) - break; - /*TODO clean this code up, remove weird SCRIPTLET_START/DONE, - * (void*)atol call, etc. */ - /* "START <event desc>" */ - if((strlen(line) > strlen(SCRIPTLET_START)) - && !strncmp(line, SCRIPTLET_START, strlen(SCRIPTLET_START))) { - EVENT(trans, PM_TRANS_EVT_SCRIPTLET_START, - _alpm_strtrim(line + strlen(SCRIPTLET_START)), NULL); - /* "DONE <ret code>" */ - } else if((strlen(line) > strlen(SCRIPTLET_DONE)) - && !strncmp(line, SCRIPTLET_DONE, strlen(SCRIPTLET_DONE))) { - EVENT(trans, PM_TRANS_EVT_SCRIPTLET_DONE, - (void*)atol(_alpm_strtrim(line + strlen(SCRIPTLET_DONE))), - NULL); - } else { - _alpm_strtrim(line); - /* log our script output */ - alpm_logaction(line); - EVENT(trans, PM_TRANS_EVT_SCRIPTLET_INFO, line, NULL); - } - } - pclose(pp); + execl("/bin/sh", "sh", "-c", cmdline, (char *)NULL); exit(0); } else { if(waitpid(pid, 0, 0) == -1) { diff --git a/lib/libalpm/util.h b/lib/libalpm/util.h index 6fedb1a5..5fa8269d 100644 --- a/lib/libalpm/util.h +++ b/lib/libalpm/util.h @@ -40,10 +40,6 @@ #define _(s) s #endif -/*TODO wtf? why is this done like this? */ -#define SCRIPTLET_START "START " -#define SCRIPTLET_DONE "DONE " - int _alpm_makepath(const char *path); int _alpm_copyfile(const char *src, const char *dest); char *_alpm_strtoupper(char *str); |