diff options
author | RĂ¼diger Timm <rt@openoffice.org> | 2007-07-05 07:53:33 +0000 |
---|---|---|
committer | RĂ¼diger Timm <rt@openoffice.org> | 2007-07-05 07:53:33 +0000 |
commit | f0f396f1583e56d0d9ae5db8df0b8a915975f76c (patch) | |
tree | a53a90932ef9d0790500c0b33100395a01d61a19 /epm | |
parent | 1858424fa02727e0ec58aee35fde0884d50e42cd (diff) |
INTEGRATION: CWS freebsd08 (1.12.2); FILE MERGED
2007/06/05 21:23:53 maho 1.12.2.4: Backout PATH_MAX to 256. This is not POSIX compliant.
http://www.openoffice.org/issues/show_bug.cgi?id=73217
http://www.easysw.com/epm/newsgroups.php?s56+gepm.bugs+v66
2007/06/01 23:20:57 maho 1.12.2.3: Use PATH_MAX.
Issue number: #i73217#
2007/06/01 22:20:53 maho 1.12.2.2: Temporary extend to maximum 256 chars to 1024 chars.
Issue number: #i73217#
2007/06/01 22:16:38 maho 1.12.2.1: Hardcode pkg_create, is normally in /usr/sbin - which is
not part of the standard user $PATH.
Issue number: #i73157#
Diffstat (limited to 'epm')
-rw-r--r-- | epm/epm-3.7.patch | 811 |
1 files changed, 811 insertions, 0 deletions
diff --git a/epm/epm-3.7.patch b/epm/epm-3.7.patch new file mode 100644 index 000000000000..116aa28f6690 --- /dev/null +++ b/epm/epm-3.7.patch @@ -0,0 +1,811 @@ +*** misc/epm-3.7/bsd.c Tue Jan 14 18:05:01 2003 +--- misc/build/epm-3.7/bsd.c Mon Nov 20 14:54:51 2006 +*************** +*** 26,31 **** +--- 26,38 ---- + + #include "epm.h" + ++ void cr2semicolon(char *command) ++ { ++ int len, i; ++ len=strlen(command); ++ for (i=0;i<len;i++) ++ if(*(command+i)=='\n') *(command+i)=';'; ++ } + + /* + * 'make_bsd()' - Make a FreeBSD software distribution package. +*************** +*** 149,156 **** +--- 156,172 ---- + + for (i = dist->num_depends, d = dist->depends; i > 0; i --, d ++) + { ++ #ifdef __FreeBSD__ ++ if (d->type == DEPEND_REQUIRES) { ++ if (dist->relnumber) ++ fprintf(fp, "@pkgdep %s-%s-%d-%s", d->product, dist->version, dist->relnumber, platname); ++ else ++ fprintf(fp, "@pkgdep %s-%s-%s", d->product, dist->version, platname); ++ } ++ #else + if (d->type == DEPEND_REQUIRES) + fprintf(fp, "@pkgdep %s", d->product); ++ #endif + else + #ifdef __FreeBSD__ + /* +*************** +*** 179,187 **** +--- 195,205 ---- + " by the BSD packager.\n", stderr); + break; + case COMMAND_POST_INSTALL : ++ cr2semicolon(c->command); + fprintf(fp, "@exec %s\n", c->command); + break; + case COMMAND_PRE_REMOVE : ++ cr2semicolon(c->command); + fprintf(fp, "@unexec %s\n", c->command); + break; + case COMMAND_POST_REMOVE : +*************** +*** 199,205 **** + */ + + fprintf(fp, "@exec /bin/mkdir -p %s\n", file->dst); +! fprintf(fp, "@exec /bin/chown %s:%s %s\n", file->user, file->group, + file->dst); + fprintf(fp, "@exec /bin/chmod %04o %s\n", file->mode, file->dst); + } +--- 217,223 ---- + */ + + fprintf(fp, "@exec /bin/mkdir -p %s\n", file->dst); +! fprintf(fp, "@exec /usr/sbin/chown %s:%s %s\n", file->user, file->group, + file->dst); + fprintf(fp, "@exec /bin/chmod %04o %s\n", file->mode, file->dst); + } +*************** +*** 326,337 **** + if (Verbosity) + puts("Building FreeBSD pkg binary distribution..."); + +! if (run_command(NULL, "pkg_create -p / -s %s -c %s -d %s -f %s %s", + current, commentname, descrname, plistname, name)) + return (1); + +! if (run_command(NULL, "mv %s.tgz %s", name, directory)) +! return (1); + + /* + * Remove temporary files... +--- 344,356 ---- + if (Verbosity) + puts("Building FreeBSD pkg binary distribution..."); + +! if (run_command(NULL, "/usr/sbin/pkg_create -p / -s %s -c %s -d %s -f %s %s", + current, commentname, descrname, plistname, name)) + return (1); + +! if (run_command(NULL, "mv %s.tbz %s", name, directory)) +! if (run_command(NULL, "mv %s.tgz %s", name, directory)) +! return (1); + + /* + * Remove temporary files... +*** misc/epm-3.7/configure Thu Jul 24 03:20:54 2003 +--- misc/build/epm-3.7/configure Mon Nov 20 15:01:11 2006 +*************** +*** 1238,1244 **** +--- 1238,1249 ---- + fi + fi; + ++ # Check whether --enable-fltk or --disable-fltk was given. ++ if test "${enable_fltk+set}" = set; then ++ enableval="$enable_fltk" ++ fi; + ++ + # Check whether --with-docdir or --without-docdir was given. + if test "${with_docdir+set}" = set; then + withval="$with_docdir" +*************** +*** 4904,4939 **** + fi + + +! # Extract the first word of "fltk-config", so it can be a program name with args. +! set dummy fltk-config; ac_word=$2 +! echo "$as_me:$LINENO: checking for $ac_word" >&5 +! echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +! if test "${ac_cv_path_FLTKCONFIG+set}" = set; then +! echo $ECHO_N "(cached) $ECHO_C" >&6 +! else +! case $FLTKCONFIG in +! [\\/]* | ?:[\\/]*) +! ac_cv_path_FLTKCONFIG="$FLTKCONFIG" # Let the user override the test with a path. +! ;; +! *) +! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +! for as_dir in $PATH +! do +! IFS=$as_save_IFS +! test -z "$as_dir" && as_dir=. +! for ac_exec_ext in '' $ac_executable_extensions; do +! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +! ac_cv_path_FLTKCONFIG="$as_dir/$ac_word$ac_exec_ext" +! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 +! break 2 + fi +! done +! done +! +! ;; +! esac + fi +- FLTKCONFIG=$ac_cv_path_FLTKCONFIG + + if test -n "$FLTKCONFIG"; then + echo "$as_me:$LINENO: result: $FLTKCONFIG" >&5 +--- 4909,4946 ---- + fi + + +! if eval "test x$enable_fltk = xyes"; then +! # Extract the first word of "fltk-config", so it can be a program name with args. +! set dummy fltk-config; ac_word=$2 +! echo "$as_me:$LINENO: checking for $ac_word" >&5 +! echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +! if test "${ac_cv_path_FLTKCONFIG+set}" = set; then +! echo $ECHO_N "(cached) $ECHO_C" >&6 +! else +! case $FLTKCONFIG in +! [\\/]* | ?:[\\/]*) +! ac_cv_path_FLTKCONFIG="$FLTKCONFIG" # Let the user override the test with a path. +! ;; +! *) +! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +! for as_dir in $PATH +! do +! IFS=$as_save_IFS +! test -z "$as_dir" && as_dir=. +! for ac_exec_ext in '' $ac_executable_extensions; do +! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +! ac_cv_path_FLTKCONFIG="$as_dir/$ac_word$ac_exec_ext" +! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 +! break 2 +! fi +! done +! done +! +! ;; +! esac + fi +! FLTKCONFIG=$ac_cv_path_FLTKCONFIG + fi + + if test -n "$FLTKCONFIG"; then + echo "$as_me:$LINENO: result: $FLTKCONFIG" >&5 +*************** +*** 4950,4957 **** +--- 4957,4966 ---- + INSTALL_GUIS="" + INSTALL_OSX="" + ++ if eval "test x$enable_fltk = xyes"; then + { echo "$as_me:$LINENO: WARNING: Sorry, setup GUI requires FLTK 1.1.x." >&5 + echo "$as_me: WARNING: Sorry, setup GUI requires FLTK 1.1.x." >&2;} ++ fi + else + CXXFLAGS="`$FLTKCONFIG --cflags` ${CXXFLAGS}" + GUIS="setup uninst" +*** misc/epm-3.7/deb.c Wed Jan 15 15:29:24 2003 +--- misc/build/epm-3.7/deb.c Mon Nov 20 14:54:51 2006 +*************** +*** 26,31 **** +--- 26,53 ---- + + #include "epm.h" + ++ /* ++ * 'add_size()' - Append Installed-Size tag to DEBIAN/control file ++ */ ++ ++ int /* O - 0 = success, 1 = fail */ ++ add_size(FILE *fpControl, /* Control file stream */ ++ const char *directory) /* Directory containing all files to package */ ++ { ++ FILE *fp; ++ char command[1024]; ++ ++ snprintf(command, sizeof(command), "du -k -s %s", directory); ++ fp = popen(command, "r"); ++ if( NULL != fp ) ++ { ++ char size[1024]; ++ fscanf(fp, "%s .", size); ++ fprintf(fpControl, "Installed-Size: %s\n", size); ++ return pclose(fp); ++ } ++ return 1; ++ } + + /* + * 'make_deb()' - Make a Debian software distribution package. +*************** +*** 61,78 **** + if (Verbosity) + puts("Creating Debian distribution..."); + + if (dist->relnumber) + { + if (platname[0]) +! snprintf(name, sizeof(name), "%s-%s-%d-%s", prodname, dist->version, dist->relnumber, + platname); + else +! snprintf(name, sizeof(name), "%s-%s-%d", prodname, dist->version, dist->relnumber); + } + else if (platname[0]) +! snprintf(name, sizeof(name), "%s-%s-%s", prodname, dist->version, platname); + else +! snprintf(name, sizeof(name), "%s-%s", prodname, dist->version); + + /* + * Write the control file for DPKG... +--- 83,111 ---- + if (Verbosity) + puts("Creating Debian distribution..."); + ++ /* ++ * Use debian default naming scheme ++ */ ++ ++ if (!strcmp(platform->machine, "intel")) ++ platname = "i386"; ++ else if (!strcmp(platform->machine, "x86_64")) ++ platname = "amd64"; ++ else if (!strcmp(platform->machine, "ppc")) ++ platname = "powerpc"; ++ + if (dist->relnumber) + { + if (platname[0]) +! snprintf(name, sizeof(name), "%s_%s-%d_%s", prodname, dist->version, dist->relnumber, + platname); + else +! snprintf(name, sizeof(name), "%s_%s-%d", prodname, dist->version, dist->relnumber); + } + else if (platname[0]) +! snprintf(name, sizeof(name), "%s_%s_%s", prodname, dist->version, platname); + else +! snprintf(name, sizeof(name), "%s_%s", prodname, dist->version); + + /* + * Write the control file for DPKG... +*************** +*** 108,115 **** + * (which we change in get_platform to a common name) + */ + +! if (strcmp(platform->machine, "intel") == 0) + fputs("Architecture: i386\n", fp); + else + fprintf(fp, "Architecture: %s\n", platform->machine); + +--- 141,152 ---- + * (which we change in get_platform to a common name) + */ + +! if (!strcmp(platform->machine, "intel")) + fputs("Architecture: i386\n", fp); ++ else if (!strcmp(platform->machine, "x86_64")) ++ fputs("Architecture: amd64\n", fp); ++ else if (!strcmp(platform->machine, "ppc")) ++ fputs("Architecture: powerpc\n", fp); + else + fprintf(fp, "Architecture: %s\n", platform->machine); + +*************** +*** 148,156 **** + putc('\n', fp); + } + } +! + fclose(fp); +! + /* + * Write the preinst file for DPKG... + */ +--- 185,193 ---- + putc('\n', fp); + } + } +! + fclose(fp); +! + /* + * Write the preinst file for DPKG... + */ +*************** +*** 417,422 **** +--- 454,480 ---- + } + } + ++ ++ /* ++ * Calculate and append Installed-Size to DEBIAN/control ++ */ ++ ++ if (Verbosity) ++ puts("Calculating Installed-Size..."); ++ ++ snprintf(filename, sizeof(filename), "%s/%s/DEBIAN/control", directory, name); ++ if ((fp = fopen(filename, "a")) == NULL) ++ { ++ fprintf(stderr, "epm: Unable to Installed-Size to file \"%s\" - %s\n", filename, ++ strerror(errno)); ++ return (1); ++ } ++ ++ snprintf(filename, sizeof(filename), "%s/%s", directory, name); ++ add_size(fp, filename); ++ fclose(fp); ++ ++ + /* + * Build the distribution from the spec file... + */ +*** misc/epm-3.7/dist.c Thu Aug 7 16:14:40 2003 +--- misc/build/epm-3.7/dist.c Mon Nov 20 14:54:51 2006 +*************** +*** 394,401 **** + strcpy(platform->machine, "mips"); + #elif defined(__hpux) + strcpy(platform->machine, "hppa"); +! #elif defined(_AIX) || defined(__APPLE__) + strcpy(platform->machine, "powerpc"); + #else + for (temp = platform->machine; *temp != '\0'; temp ++) + if (*temp == '-' || *temp == '_') +--- 394,406 ---- + strcpy(platform->machine, "mips"); + #elif defined(__hpux) + strcpy(platform->machine, "hppa"); +! #elif defined(_AIX) + strcpy(platform->machine, "powerpc"); ++ #elif defined(__APPLE__) ++ if (strstr(platform->machine, "86") != NULL) ++ strcpy(platform->machine, "intel"); ++ else ++ strcpy(platform->machine, "powerpc"); + #else + for (temp = platform->machine; *temp != '\0'; temp ++) + if (*temp == '-' || *temp == '_') +*************** +*** 407,413 **** + *temp = tolower(*temp); + + if (strstr(platform->machine, "86") != NULL) +! strcpy(platform->machine, "intel"); + else if (strncmp(platform->machine, "sun", 3) == 0) + strcpy(platform->machine, "sparc"); + #endif /* __sgi */ +--- 412,423 ---- + *temp = tolower(*temp); + + if (strstr(platform->machine, "86") != NULL) +! { +! if (strstr(platform->machine, "64") != NULL) +! strcpy(platform->machine, "x86_64"); +! else +! strcpy(platform->machine, "intel"); +! } + else if (strncmp(platform->machine, "sun", 3) == 0) + strcpy(platform->machine, "sparc"); + #endif /* __sgi */ +*** misc/epm-3.7/epm.c Tue Oct 28 15:48:30 2003 +--- misc/build/epm-3.7/epm.c Mon Nov 20 14:54:51 2006 +*************** +*** 547,552 **** +--- 547,553 ---- + { + puts(EPM_VERSION); + puts("Copyright 1999-2003 by Easy Software Products."); ++ puts("Patched for OpenOffice.org"); + puts(""); + puts("EPM is free software and comes with ABSOLUTELY NO WARRANTY; for details"); + puts("see the GNU General Public License in the file COPYING or at"); +*** misc/epm-3.7/file.c Wed Jul 23 23:41:08 2003 +--- misc/build/epm-3.7/file.c Mon Nov 20 14:54:51 2006 +*************** +*** 108,114 **** + fclose(dstfile); + + chmod(dst, mode); +- chown(dst, owner, group); + + return (0); + } +--- 108,113 ---- +*************** +*** 138,144 **** + { + mkdir(buffer, 0777); + chmod(buffer, mode | 0700); +- chown(buffer, owner, group); + } + } + +--- 137,142 ---- +*************** +*** 151,157 **** + { + mkdir(buffer, 0777); + chmod(buffer, mode | 0700); +- chown(buffer, owner, group); + } + + return (0); +--- 149,154 ---- +*** misc/epm-3.7/osx.c Wed Jul 23 23:41:08 2003 +--- misc/build/epm-3.7/osx.c Mon Nov 20 14:54:51 2006 +*************** +*** 373,379 **** + else + snprintf(filename, sizeof(filename), "%s/%s", current, directory); + +! run_command(NULL, "/Developer/Applications/PackageMaker.app/" + "Contents/MacOS/PackageMaker -build " + "-p %s/%s.pkg -f %s/Package -r %s/Resources -d %s/%s-desc.plist -i %s/%s-info.plist", + filename, prodname, filename, filename, filename, prodname, filename, prodname); +--- 373,379 ---- + else + snprintf(filename, sizeof(filename), "%s/%s", current, directory); + +! run_command(NULL, "/Developer/Applications/Utilities/PackageMaker.app/" + "Contents/MacOS/PackageMaker -build " + "-p %s/%s.pkg -f %s/Package -r %s/Resources -d %s/%s-desc.plist -i %s/%s-info.plist", + filename, prodname, filename, filename, filename, prodname, filename, prodname); +*** misc/epm-3.7/pkg.c Tue Dec 17 19:57:56 2002 +--- misc/build/epm-3.7/pkg.c Mon Nov 20 14:54:51 2006 +*************** +*** 429,503 **** + + fclose(fp); + +- /* +- * Build the distribution from the prototype file... +- */ +- +- if (Verbosity) +- puts("Building PKG binary distribution..."); +- +- if (run_command(NULL, "pkgmk -o -f %s/%s.prototype -d %s/%s", +- directory, prodname, current, directory)) +- return (1); +- +- /* +- * Tar and compress the distribution... +- */ +- +- if (Verbosity) +- puts("Creating tar.gz file for distribution..."); +- +- snprintf(filename, sizeof(filename), "%s/%s.tar.gz", directory, name); +- +- if ((tarfile = tar_open(filename, 1)) == NULL) +- return (1); +- +- snprintf(filename, sizeof(filename), "%s/%s", directory, prodname); +- +- if (tar_directory(tarfile, filename, prodname)) +- { +- tar_close(tarfile); +- return (1); +- } +- +- tar_close(tarfile); +- +- /* +- * Make a package stream file... +- */ +- +- if (Verbosity) +- puts("Copying into package stream file..."); +- +- if (run_command(directory, "pkgtrans -s %s/%s %s.pkg %s", +- current, directory, name, prodname)) +- return (1); +- +- /* +- * Remove temporary files... +- */ +- +- if (!KeepFiles) +- { +- if (Verbosity) +- puts("Removing temporary distribution files..."); +- +- snprintf(filename, sizeof(filename), "%s/%s.pkginfo", directory, prodname); +- unlink(filename); +- snprintf(filename, sizeof(filename), "%s/%s.depend", directory, prodname); +- unlink(filename); +- snprintf(filename, sizeof(filename), "%s/%s.prototype", directory, prodname); +- unlink(filename); +- if (preinstall[0]) +- unlink(preinstall); +- if (postinstall[0]) +- unlink(postinstall); +- if (preremove[0]) +- unlink(preremove); +- if (postremove[0]) +- unlink(postremove); +- } +- + return (0); + } + +--- 429,434 ---- +*** misc/epm-3.7/qprintf.c Mon Jan 27 22:48:03 2003 +--- misc/build/epm-3.7/qprintf.c Mon Nov 20 14:54:51 2006 +*************** +*** 181,192 **** + + for (i = slen; i > 0; i --, s ++, bytes ++) + { + if (strchr("`~!#$%^&*()[{]}\\|;\'\"<>? ", *s)) + { + putc('\\', fp); + bytes ++; + } +! + putc(*s, fp); + } + +--- 181,199 ---- + + for (i = slen; i > 0; i --, s ++, bytes ++) + { ++ #if defined(__FreeBSD__) ++ if (strchr("`~!#%^&*()[{]}\\|;\'\"<>? ", *s)) ++ { ++ putc('\\', fp); ++ bytes ++; ++ } ++ #else + if (strchr("`~!#$%^&*()[{]}\\|;\'\"<>? ", *s)) + { + putc('\\', fp); + bytes ++; + } +! #endif + putc(*s, fp); + } + +*** misc/epm-3.7/rpm.c Wed Oct 1 21:27:15 2003 +--- misc/build/epm-3.7/rpm.c Mon Nov 20 14:54:51 2006 +*************** +*** 38,44 **** + dist_t *dist, /* I - Distribution information */ + struct utsname *platform) /* I - Platform information */ + { +! int i; /* Looping var */ + FILE *fp; /* Spec file */ + char name[1024]; /* Full product name */ + char specname[1024]; /* Spec filename */ +--- 38,44 ---- + dist_t *dist, /* I - Distribution information */ + struct utsname *platform) /* I - Platform information */ + { +! int i,n; /* Looping vars */ + FILE *fp; /* Spec file */ + char name[1024]; /* Full product name */ + char specname[1024]; /* Spec filename */ +*************** +*** 160,165 **** +--- 160,167 ---- + fprintf(fp, "Requires: %s", dname); + else if (d->type == DEPEND_PROVIDES) + fprintf(fp, "Provides: %s", dname); ++ else if (d->type == DEPEND_REPLACES) ++ fprintf(fp, "Obsoletes: %s", dname); + else + fprintf(fp, "Conflicts: %s", dname); + +*************** +*** 186,200 **** + for (i = 0; i < dist->num_descriptions; i ++) + fprintf(fp, "%s\n", dist->descriptions[i]); + +! fputs("%pre\n", fp); + for (i = dist->num_commands, c = dist->commands; i > 0; i --, c ++) + if (c->type == COMMAND_PRE_INSTALL) + fprintf(fp, "%s\n", c->command); + +! fputs("%post\n", fp); + for (i = dist->num_commands, c = dist->commands; i > 0; i --, c ++) + if (c->type == COMMAND_POST_INSTALL) + fprintf(fp, "%s\n", c->command); + + for (i = dist->num_files, file = dist->files; i > 0; i --, file ++) + if (tolower(file->type) == 'i') +--- 188,220 ---- + for (i = 0; i < dist->num_descriptions; i ++) + fprintf(fp, "%s\n", dist->descriptions[i]); + +! /* +! * %pre +! */ +! n = 0; + for (i = dist->num_commands, c = dist->commands; i > 0; i --, c ++) ++ { + if (c->type == COMMAND_PRE_INSTALL) ++ { ++ if (1 == ++n) /* Only write %pre if there is at least one command */ ++ fputs("%pre\n", fp); + fprintf(fp, "%s\n", c->command); ++ } ++ } + +! /* +! * %post +! */ +! n = 0; + for (i = dist->num_commands, c = dist->commands; i > 0; i --, c ++) ++ { + if (c->type == COMMAND_POST_INSTALL) ++ { ++ if (1 == ++n) /* Only write %post if there is at least one command */ ++ fputs("%post\n", fp); + fprintf(fp, "%s\n", c->command); ++ } ++ } + + for (i = dist->num_files, file = dist->files; i > 0; i --, file ++) + if (tolower(file->type) == 'i') +*************** +*** 202,207 **** +--- 222,229 ---- + + if (i) + { ++ if (1 == ++n) /* If not previously done so, write %post here */ ++ fputs("%post\n", fp); + fputs("if test \"x$1\" = x1; then\n", fp); + fputs(" echo Setting up init scripts...\n", fp); + +*************** +*** 259,265 **** + fputs("fi\n", fp); + } + +! fputs("%preun\n", fp); + for (i = dist->num_files, file = dist->files; i > 0; i --, file ++) + if (tolower(file->type) == 'i') + break; +--- 281,290 ---- + fputs("fi\n", fp); + } + +! /* +! * %preun +! */ +! n = 0; + for (i = dist->num_files, file = dist->files; i > 0; i --, file ++) + if (tolower(file->type) == 'i') + break; +*************** +*** 266,271 **** +--- 291,297 ---- + + if (i) + { ++ fputs("%preun\n", fp); ++n; /* Need to write %preun here */ + fputs("if test \"x$1\" = x0; then\n", fp); + fputs(" echo Cleaning up init scripts...\n", fp); + +*************** +*** 315,327 **** + } + + for (i = dist->num_commands, c = dist->commands; i > 0; i --, c ++) + if (c->type == COMMAND_PRE_REMOVE) + fprintf(fp, "%s\n", c->command); + +! fputs("%postun\n", fp); + for (i = dist->num_commands, c = dist->commands; i > 0; i --, c ++) + if (c->type == COMMAND_POST_REMOVE) + fprintf(fp, "%s\n", c->command); + + fputs("%files\n", fp); + for (i = dist->num_files, file = dist->files; i > 0; i --, file ++) +--- 341,369 ---- + } + + for (i = dist->num_commands, c = dist->commands; i > 0; i --, c ++) ++ { + if (c->type == COMMAND_PRE_REMOVE) ++ { ++ if (1 == ++n) /* Only write %preun if not previously done so */ ++ fputs("%preun\n", fp); ++ + fprintf(fp, "%s\n", c->command); ++ } ++ } + +! /* +! * %post +! */ +! n = 0; + for (i = dist->num_commands, c = dist->commands; i > 0; i --, c ++) ++ { + if (c->type == COMMAND_POST_REMOVE) ++ { ++ if (1 == ++n) /* Only write %post if there is at least one command */ ++ fputs("%postun\n", fp); + fprintf(fp, "%s\n", c->command); ++ } ++ } + + fputs("%files\n", fp); + for (i = dist->num_files, file = dist->files; i > 0; i --, file ++) +*************** +*** 415,467 **** + } + } + +- /* +- * Build the distribution from the spec file... +- */ +- +- if (Verbosity) +- puts("Building RPM binary distribution..."); +- +- if (strcmp(platform->machine, "intel") == 0) +- { +- if (run_command(NULL, EPM_RPMBUILD " %s -bb " EPM_RPMARCH "i386 %s", +- Verbosity == 0 ? "--quiet" : "", specname)) +- return (1); +- } +- else if (run_command(NULL, EPM_RPMBUILD " %s -bb " EPM_RPMARCH "%s %s", +- Verbosity == 0 ? "--quiet" : "", platform->machine, +- specname)) +- return (1); +- +- /* +- * Move the RPM to the local directory and rename the RPM using the +- * product name specified by the user... +- */ +- +- if (strcmp(platform->machine, "intel") == 0) +- run_command(NULL, "/bin/mv %s/RPMS/i386/%s-%s-%d.i386.rpm %s/%s.rpm", +- rpmdir, prodname, dist->version, dist->relnumber, +- directory, name); +- else +- run_command(NULL, "/bin/mv %s/RPMS/%s/%s-%s-%d.%s.rpm %s/%s.rpm", +- rpmdir, platform->machine, prodname, dist->version, +- dist->relnumber, platform->machine, directory, name); +- +- /* +- * Remove temporary files... +- */ +- +- if (!KeepFiles) +- { +- if (Verbosity) +- puts("Removing temporary distribution files..."); +- +- run_command(NULL, "/bin/rm -rf %s/RPMS", directory); +- run_command(NULL, "/bin/rm -rf %s/buildroot", directory); +- +- unlink(specname); +- } +- + return (0); + } + +--- 457,462 ---- |