diff --git a/package/base/mine/postinstall.patch.orig b/package/base/mine/postinstall.patch.orig deleted file mode 100644 index 27cb7523c..000000000 --- a/package/base/mine/postinstall.patch.orig +++ /dev/null @@ -1,321 +0,0 @@ -diff -dur /usr/src/mine-0.21/install.c ./install.c ---- /usr/src/mine-0.21/install.c 2005-03-23 09:51:06.000000000 +0100 -+++ ./install.c 2005-05-03 13:14:05.000000000 +0200 -@@ -137,6 +137,21 @@ - O_RDONLY, 0, 0) == -1) goto error_errno; - if ( mode_test && mode_verbose ) printf("-- %s --\n", pname); - -+ FILE *logfile = NULL; -+ if ( ! mode_test ) -+ { -+ char postinst[1024]; -+ snprintf(postinst, 1024, "%s/var/adm/postinstall/%s-install.XXXXXX", root, pname); -+ if ( mkstemp(postinst) != -1 ) -+ logfile = fopen(postinst, "w"); -+ if ( mode_verbose ) { -+ if ( logfile == NULL ) -+ printf("Not writing postinstall log\n"); -+ else -+ printf("Writing postinstall log to %s\n", postinst); -+ } -+ } -+ - filename = 0; - while (th_read(t) == 0) - { -@@ -187,17 +201,21 @@ - } - else - { -- if (mode_verbose) -+ if ( mode_verbose ) - printf("%s: %s\n", pname, filename); - rename(buffer, buffer3); - if (tar_extract_file(t, buffer) != 0) - goto error_errno; - unlink(buffer3); -+ if ( logfile != NULL ) -+ fprintf(logfile, "%s: %s\n", pname, filename); - } - } - - tar_close(t); close(bunzip2tar[0]); - cdb_free(&c); close(gem_fd); -+ -+ if ( logfile != NULL ) fclose(logfile); - - return 0; - -diff -dur /usr/src/mine-0.21/md5sum.c ./md5sum.c ---- /usr/src/mine-0.21/md5sum.c 2005-03-23 09:51:06.000000000 +0100 -+++ ./md5sum.c 2005-05-03 16:52:52.000000000 +0200 -@@ -41,21 +41,31 @@ - ? "" : md5_file(realfilename); - } - -+/* Returns 1 if file is duplicate, 2 if file is modified. */ - int md5sum_check(char * root, char * filename) - { - char *md5_f, *md5_d; - - md5_f = md5sum_create(root, filename); - md5_d = memdb_get(&md5_memdb, filename); -- -- return md5_f != NULL && md5_d != NULL && strcmp(md5_f, md5_d); -+ -+ if (md5_f == NULL || strcmp(md5_f, "") == 0) -+ return 0; -+ else if (md5_d == NULL) -+ return 1; -+ else if (strcmp(md5_f, md5_d) == 0) -+ return 0; -+ else -+ return 2; - } - - void md5sum_initdb(char * root, int verbose) - { - struct dirent *md5_dent; -- char buffer[1024]; -+ char buffer[1024], buffer2[1024]; - char *md5sum, *filename; -+ const char const *admdirs[6] = -+ {"cksums", "dependencies", "descs", "flists", "md5sums", "packages"}; - FILE *f; - DIR *d; - -@@ -71,6 +81,16 @@ - root, md5_dent->d_name); - f = fopen(buffer, "r"); - if ( f != NULL ) { -+ /* Add the /var/adm files of each package to the -+ md5sum memdb so md5sum_check() recognizes them. */ -+ int n; -+ for (n = 0; n < 6; n++) { -+ snprintf(buffer2, 1024, "var/adm/%s/%s", -+ admdirs[n], md5_dent->d_name); -+ memdb_put(&md5_memdb, buffer2, -+ md5sum_create(root, buffer2)); -+ } -+ - while (fgets(buffer, 1024, f) != NULL) { - md5sum = strtok(buffer, " \t\n"); - filename = strtok(NULL, "\n"); -diff -dur /usr/src/mine-0.21/mine.c ./mine.c ---- /usr/src/mine-0.21/mine.c 2005-03-23 09:51:06.000000000 +0100 -+++ ./mine.c 2005-05-03 17:40:51.000000000 +0200 -@@ -87,13 +87,13 @@ - "\n" - "Install (-i), remove (-r) and check (-y) GEM packages:\n" - "\n" --" mine -i [ -t ] [ -v ] [ -f ] [-x glob ] [ -R root ] package1.gem [ .. ]\n" --" mine -r [ -t ] [ -v ] [ -f ] [ -s ] [ -R root ] package1 [ package2 [ .. ] ]\n" -+" mine -i [ -R root ] [ -t ] [ -v ] [ -f ] [-x glob ] package1.gem [ .. ]\n" -+" mine -r [ -R root ] [ -t ] [ -v ] [ -f ] [ -s ] package1 [ package2 [ .. ] ]\n" - " mine -y [ -R root ] package1 [ package2 [ .. ] ]\n" - "\n" - "Query installed packages or GEM package files:\n" - "\n" --" mine {query-mode} [ -h | -H ] [ package1 [ package2.gem [ .. ] ] ]\n" -+" mine {query-mode} [ -R root ] [ -h | -H ] [ package1 [ package2.gem [ .. ] ] ]\n" - "\n" - " Where {query-mode} might be one of:\n" - "\n" -@@ -114,13 +114,19 @@ - " -x next parameter is a pattern for files to skip\n" - " -R next parameter is the root directory\n" - "\n" --"Create GEM package files from installed packages:\n" -+"Create GEM (-C) and .tar.bz2 (-T) package files from installed packages:\n" - "\n" - " mine -C var-adm-dir package-tar-bz2 package-name gem-file\n" - " mine -T var-adm-dir root-dir package-name package-tar-bz2\n" - "\n" -+"E.g. this will create a GEM file from the mine package installed in /:\n" -+"\n" -+" mine -T /var/adm / mine mine.tar.bz2\n" -+" mine -C /var/adm mine.tar.bz2 mine.gem\n" -+"\n" - "Hint: After installing, updating or removing packages you should run the\n" --" script 'cron.run'. This updates some important system files.\n" -+" scripts 'cron.run' and 'postinstall'. This updates some important\n" -+" system files.\n" - "\n" - ); - exit(1); -@@ -316,9 +322,7 @@ - break; - - case 'R': -- if ( mine_root_dir == NULL && -- (mine_mode == MINE_MODE_INSTALL || -- mine_mode == MINE_MODE_REMOVE) ) -+ if ( mine_root_dir == NULL ) - { - mine_root_dir = optarg; - } else -@@ -340,6 +344,11 @@ - - if ( mine_mode == MINE_MODE_NONE ) help(); - if ( mine_root_dir == NULL ) mine_root_dir = ""; -+ else if ( !(mine_mode == MINE_MODE_INSTALL || -+ mine_mode == MINE_MODE_REMOVE || -+ mine_mode == MINE_MODE_CHECK || -+ mine_mode == MINE_MODE_PKGLIST || -+ mine_mode == MINE_MODE_SHOWFILE) ) help(); - - if (optind < argc) - { -@@ -362,11 +371,11 @@ - break; - - case MINE_MODE_PKGLIST: -- rc = gem_pkglist(argv[optind]); -+ rc = gem_pkglist(mine_root_dir, argv[optind]); - break; - - case MINE_MODE_SHOWFILE: -- rc = gem_showfile( mine_file_key_name, -+ rc = gem_showfile( mine_root_dir, mine_file_key_name, - mine_mode_header_block, - argv[optind]); - break; -@@ -398,20 +407,24 @@ - mine_mode == MINE_MODE_REMOVE || - mine_mode == MINE_MODE_SHOWKEY ) help(); - -- n = scandir("/var/adm/packages", &namelist, 0, alphasort); -+ char buffer[1024]; -+ snprintf(buffer, 1024, "%s/var/adm/packages", mine_root_dir); -+ n = scandir(buffer, &namelist, 0, alphasort); - if (n < 0) { -- perror("Can't read /var/adm/packages"); -+ char buffer2[1024]; -+ snprintf(buffer2, 1024, "Can't read %s", buffer); -+ perror(buffer2); - exit(1); - } - while(n--) { - rc = 0; - switch (mine_mode) { - case MINE_MODE_PKGLIST: -- rc = gem_pkglist(namelist[n]->d_name); -+ rc = gem_pkglist(mine_root_dir, namelist[n]->d_name); - break; - - case MINE_MODE_SHOWFILE: -- rc = gem_showfile( mine_file_key_name, -+ rc = gem_showfile(mine_root_dir, mine_file_key_name, - mine_mode_header_block, - namelist[n]->d_name); - break; -diff -dur /usr/src/mine-0.21/mine.h ./mine.h ---- /usr/src/mine-0.21/mine.h 2005-03-23 09:51:06.000000000 +0100 -+++ ./mine.h 2005-05-03 13:05:51.000000000 +0200 -@@ -37,9 +37,9 @@ - extern int gem_remove(char * root, int mode_test, int mode_verbose, - int mode_force, int mode_sub, char * package); - --extern int gem_pkglist(char * package); -+extern int gem_pkglist(char * root, char * package); - --extern int gem_showfile(char * name, int mode_header_block, char * package); -+extern int gem_showfile(char * root, char * name, int mode_header_block, char * package); - - extern int gem_showkey(char * name, int mode_header_line, - int mode_header_block, char * package); -diff -dur /usr/src/mine-0.21/pkglist.c ./pkglist.c ---- /usr/src/mine-0.21/pkglist.c 2005-03-23 09:51:06.000000000 +0100 -+++ ./pkglist.c 2005-05-03 13:05:51.000000000 +0200 -@@ -77,12 +77,12 @@ - return 1; - } - --int gem_pkglist(char * package) -+int gem_pkglist(char * root, char * package) - { - char buffer[1024]; - FILE *f; - -- snprintf(buffer, 1024, "/var/adm/packages/%s", package); -+ snprintf(buffer, 1024, "%s/var/adm/packages/%s", root, package); - if ( (f = fopen(buffer, "r")) == NULL ) - return gem_pkglist_gemfile(package); - -diff -dur /usr/src/mine-0.21/remove.c ./remove.c ---- /usr/src/mine-0.21/remove.c 2005-03-23 09:51:06.000000000 +0100 -+++ ./remove.c 2005-05-03 16:50:40.000000000 +0200 -@@ -32,7 +32,7 @@ - - /* we need to reverse the package file list so we first remove - * the content of a directory and after that the directory itself. -- * so we temporary store the data in a liked list. -+ * so we temporarily store the data in a linked list. - */ - struct flist; - struct flist { -@@ -98,6 +98,22 @@ - } - fclose(f); - -+ FILE *logfile = NULL; -+ if ( ! mode_test ) -+ { -+ char postinst[1024]; -+ snprintf(postinst, 1024, "%s/var/adm/postinstall/%s-remove.XXXXXX", -+ root, package); -+ if ( mkstemp(postinst) != -1 ) -+ logfile = fopen(postinst, "w"); -+ if ( mode_verbose ) { -+ if ( logfile == NULL ) -+ printf("Not writing postremove log\n"); -+ else -+ printf("Writing postremove log to %s\n", postinst); -+ } -+ } -+ - while ( flist ) - { - filename = flist->filename; -@@ -158,9 +173,13 @@ - errors++; - } - } -+ if ( logfile != NULL ) -+ fprintf(logfile, "%s: %s\n", package, filename); - } - - free(filename); - } - -+ if ( logfile != NULL ) fclose(logfile); -+ - if ( errors ) -diff -dur /usr/src/mine-0.21/showfile.c ./showfile.c ---- /usr/src/mine-0.21/showfile.c 2005-03-23 09:51:06.000000000 +0100 -+++ ./showfile.c 2005-05-03 13:05:51.000000000 +0200 -@@ -20,12 +20,12 @@ - #include - #include "mine.h" - --int gem_showfile(char * name, int mode_header_block, char * package) -+int gem_showfile(char * root, char * name, int mode_header_block, char * package) - { - char buffer[1024]; - FILE *f; - -- snprintf(buffer, 1024, "/var/adm/%s/%s", name, package); -+ snprintf(buffer, 1024, "%s/var/adm/%s/%s", root, name, package); - if ( (f = fopen(buffer, "r")) == NULL ) { - return gem_showkey(name, 0, mode_header_block, package); - } -diff -dur /usr/src/mine-0.21/TODO ./TODO ---- /usr/src/mine-0.21/TODO 2003-08-28 13:49:26.000000000 +0200 -+++ ./TODO 2005-05-03 17:07:29.000000000 +0200 -@@ -1,6 +1,5 @@ - - Todos: - -- - Don't install a file if an old file exists which is not in the package db - - Remove old files when updating a package (?) -