From 0f0e704dc8873aeb29f5b775e02c15bcd0ca5ca3 Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Fri, 9 Mar 2007 12:19:02 +0000 Subject: [PATCH] - update to 2.2 - handle filenames with spaces (#98655) - add requires for lrzsz - spec cleanup Resolves: #98655 --- .cvsignore | 3 +- minicom-2.2-drop-privs.patch | 20 ++++ minicom-2.2-esc.patch | 11 ++ minicom-2.2-gotodir.patch | 64 +++++++++++ minicom-2.2-ncurses.patch | 22 ++++ minicom-2.2-rh.patch | 161 ++++++++++++++++++++++++++ minicom-2.2-setlocale.patch | 12 ++ minicom-2.2-spaces.patch | 45 ++++++++ minicom-2.2-staticbuf.patch | 214 +++++++++++++++++++++++++++++++++++ minicom-2.2-umask.patch | 10 ++ minicom-2.2-wchar.patch | 20 ++++ minicom.spec | 92 +++++++-------- sources | 2 +- 13 files changed, 623 insertions(+), 53 deletions(-) create mode 100644 minicom-2.2-drop-privs.patch create mode 100644 minicom-2.2-esc.patch create mode 100644 minicom-2.2-gotodir.patch create mode 100644 minicom-2.2-ncurses.patch create mode 100644 minicom-2.2-rh.patch create mode 100644 minicom-2.2-setlocale.patch create mode 100644 minicom-2.2-spaces.patch create mode 100644 minicom-2.2-staticbuf.patch create mode 100644 minicom-2.2-umask.patch create mode 100644 minicom-2.2-wchar.patch diff --git a/.cvsignore b/.cvsignore index deaf54f..ffb3a81 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1 @@ -minicom-2.00.0.src.tar.bz2 -minicom-2.1.tar.gz +minicom-2.2.tar.gz diff --git a/minicom-2.2-drop-privs.patch b/minicom-2.2-drop-privs.patch new file mode 100644 index 0000000..f439654 --- /dev/null +++ b/minicom-2.2-drop-privs.patch @@ -0,0 +1,20 @@ +--- minicom-2.2/src/minicom.c.privs 2005-10-31 13:13:51.000000000 +0100 ++++ minicom-2.2/src/minicom.c 2007-03-09 13:08:23.000000000 +0100 +@@ -1124,6 +1124,8 @@ + use_status = 1; + break; + case 'C': /* Capturing */ ++ setegid(real_gid); ++ seteuid(real_uid); + capfp = sfopen(optarg, "a"); + if (capfp == NULL) { + werror(_("Cannot open capture file")); +@@ -1131,6 +1133,8 @@ + } + docap = 1; + vt_set(addlf, -1, capfp, docap, -1, -1, -1, -1); ++ seteuid(eff_uid); ++ setegid(eff_gid); + break; + case 'S': /* start Script */ + strncpy(scr_name, optarg, 33); diff --git a/minicom-2.2-esc.patch b/minicom-2.2-esc.patch new file mode 100644 index 0000000..c4f092e --- /dev/null +++ b/minicom-2.2-esc.patch @@ -0,0 +1,11 @@ +--- minicom-2.2/src/vt100.c.esc 2006-04-02 11:52:30.000000000 +0200 ++++ minicom-2.2/src/vt100.c 2007-03-09 13:10:38.000000000 +0100 +@@ -1041,7 +1041,7 @@ + fputc(P_CONVCAP[0] == 'Y' ? vt_inmap[c] : c, vt_capfp); + c = vt_inmap[c]; /* conversion 04.09.97 / jl */ + #if TRANSLATE +- if (vt_type == VT100 && vt_asis == 0) ++ if (vt_type == VT100 && vt_trans[vt_charset] && vt_asis == 0) + c = vt_trans[vt_charset][c]; + #endif + /* FIXME: This is wrong, but making it right would require diff --git a/minicom-2.2-gotodir.patch b/minicom-2.2-gotodir.patch new file mode 100644 index 0000000..5ca1ad2 --- /dev/null +++ b/minicom-2.2-gotodir.patch @@ -0,0 +1,64 @@ +--- minicom-2.2/src/file.c.gotodir 2005-08-14 22:39:30.000000000 +0200 ++++ minicom-2.2/src/file.c 2007-03-09 10:59:51.000000000 +0100 +@@ -277,6 +277,8 @@ + int initial_y = (76 - (WHAT_NR_OPTIONS * WHAT_WIDTH >= 76 + ? 74 : WHAT_NR_OPTIONS * WHAT_WIDTH)) / 2; + size_t i; ++ int rval; ++ char * new_prev_dir; + + cur = 0; + ocur = 0; +@@ -290,11 +292,6 @@ + dprev = -1; + tag_cnt = 0; + +- /* got to do some error-checking here!!! Maybe use mcd(), too! */ +- if (prev_dir != NULL) +- free(prev_dir); +- prev_dir = getcwd(NULL, BUFSIZ); +- + /* + * get last directory + */ +@@ -324,7 +321,30 @@ + if (strlen(work_dir) > 1 && work_dir[strlen(work_dir) - 1] == '/') + work_dir[strlen(work_dir) - 1] = (char)0; + +- chdir(work_dir); ++ /* get the current working directory, which will become the prev_dir, on success */ ++ new_prev_dir = getcwd(NULL, BUFSIZ); ++ if (new_prev_dir == NULL) { ++ return -1; ++ } ++ ++ rval = chdir(work_dir); ++ if (rval == 0) { ++ /* was able to change to new working directory */ ++ free(prev_dir); ++ prev_dir = new_prev_dir; ++ } ++ else { ++ /* Could not change to the new working directory */ ++ wbell(); ++ werror( ++ _("Could not change to directory %s (%s)"), ++ work_dir, ++ strerror(errno)); ++ ++ /* restore the previous working directory */ ++ free(work_dir); ++ work_dir = set_work_dir(new_prev_dir, strlen(new_prev_dir)); ++ } + + /* All right, draw the file directory! */ + +@@ -429,7 +449,7 @@ + wredraw(dsub, 1); + } + +- return 0; ++ return rval; + } + + diff --git a/minicom-2.2-ncurses.patch b/minicom-2.2-ncurses.patch new file mode 100644 index 0000000..0966615 --- /dev/null +++ b/minicom-2.2-ncurses.patch @@ -0,0 +1,22 @@ +--- minicom-2.2/configure.ncurses 2006-10-16 09:54:20.000000000 +0200 ++++ minicom-2.2/configure 2007-03-08 19:01:21.000000000 +0100 +@@ -6067,7 +6067,7 @@ + + LIBS="$LIBS $TERMLIBS" + +-if test "x$termlib" = xncurses; then ++if test "x$termlib" = xncurses || test "x$termlib" = xtinfo; then + + for ac_header in ncurses/termcap.h + do +--- minicom-2.2/src/port.h.ncurses 2005-10-31 11:31:38.000000000 +0100 ++++ minicom-2.2/src/port.h 2007-03-08 18:59:52.000000000 +0100 +@@ -29,6 +29,8 @@ + #endif + #ifdef HAVE_TERMCAP_H + # include ++#elif defined (HAVE_NCURSES_TERMCAP_H) ++# include + #else + char *tgetstr(void), *tgoto(void); + int tgetent(void), tputs(void), tgetnum(void), tgetflag(void); diff --git a/minicom-2.2-rh.patch b/minicom-2.2-rh.patch new file mode 100644 index 0000000..ce22967 --- /dev/null +++ b/minicom-2.2-rh.patch @@ -0,0 +1,161 @@ +--- minicom-2.2/src/main.c.rh 2005-10-31 13:13:51.000000000 +0100 ++++ minicom-2.2/src/main.c 2007-03-09 13:10:12.000000000 +0100 +@@ -82,7 +82,7 @@ + } + set_privs(); + if (lockfile[0]) +- unlink(lockfile); ++ ttyunlock(lockfile); + if (P_CALLIN[0]) + fastsystem(P_CALLIN, NULL, NULL, NULL); + if (real_uid) +@@ -154,10 +154,13 @@ + int open_term(int doinit) + { + struct stat stt; ++#ifdef NOTNOW + char buf[128]; +- int fd, n = 0; ++ int fd; + int pid; + int mask; ++#endif ++ int n = 0; + #ifdef HAVE_ERRNO_H + int s_errno; + #endif +@@ -165,6 +168,8 @@ + /* Upgrade our status. */ + set_privs(); + ++#ifdef NOTNOW ++ + /* First see if the lock file directory is present. */ + if (P_LOCK[0] && stat(P_LOCK, &stt) == 0) { + +@@ -236,6 +241,30 @@ + close(fd); + } + ++#else ++ lockfile[0] = 0; ++ if (doinit >= 0) { ++ int rc = ttylock(dial_tty); ++ if (rc < 0) { ++ if (access(dial_tty, W_OK) == -1) ++ fprintf(stderr, _("Device %s access failed: %s.\n"), ++ dial_tty, strerror(errno)); ++ else ++ fprintf(stderr, _("Device %s lock failed: %s.\n"), ++ dial_tty, strerror(-rc)); ++ } else if (rc > 0) { ++ fprintf(stderr, _("Device %s is locked.\n"), dial_tty); ++ } else if (rc == 0) { ++ snprintf(lockfile, sizeof(lockfile), "%s", dial_tty); ++ } ++ if (rc) { ++ if (stdwin) wclose(stdwin, 1); ++ drop_privs(); ++ return(-1); ++ } ++ } ++#endif ++ + /* Run a special program to disable callin if needed. */ + if (doinit > 0 && P_CALLOUT[0]) { + if (fastsystem(P_CALLOUT, NULL, NULL, NULL) < 0) { +@@ -243,7 +272,7 @@ + wclose(stdwin, 1); + fprintf(stderr, _("Could not setup for dial out.\n")); + if (lockfile[0]) +- unlink(lockfile); ++ ttyunlock(lockfile); + drop_privs(); + return -1; + } +@@ -303,12 +332,12 @@ + fprintf(stderr, _("minicom: cannot open %s. Sorry.\n"), dial_tty); + #endif + if (lockfile[0]) +- unlink(lockfile); ++ ttyunlock(lockfile); + drop_privs(); + return -1; + } + if (lockfile[0]) +- unlink(lockfile); ++ ttyunlock(lockfile); + werror(_("Cannot open %s!"), dial_tty); + drop_privs(); + return -1; +--- minicom-2.2/src/minicom.h.rh 2005-10-31 12:10:57.000000000 +0100 ++++ minicom-2.2/src/minicom.h 2007-03-09 13:10:12.000000000 +0100 +@@ -29,6 +29,8 @@ + #include "vt100.h" + #include "libport.h" + ++#include ++ + #ifdef USE_SOCKET + #include + #include +@@ -78,7 +80,7 @@ + EXTERN int escape; /* Escape code. */ + EXTERN int disable_online_time; /* disable online time display */ + +-EXTERN char lockfile[128]; /* UUCP lock file of terminal */ ++EXTERN char lockfile[1024]; /* UUCP lock file of terminal */ + EXTERN char homedir[256]; /* Home directory of user */ + EXTERN char logfname[PARS_VAL_LEN]; /* Name of the logfile */ + EXTERN char username[16]; /* Who is using minicom? */ +--- minicom-2.2/src/minicom.c.rh 2007-03-09 13:10:12.000000000 +0100 ++++ minicom-2.2/src/minicom.c 2007-03-09 13:10:12.000000000 +0100 +@@ -1532,7 +1532,7 @@ + set_privs(); + keyboard(KUNINSTALL, 0); + if (lockfile[0]) +- unlink(lockfile); ++ ttyunlock(lockfile); + close(portfd); + /* Please - if your system doesn't have uid_t and/or gid_t, define 'em + * conditionally in "port.h". +--- minicom-2.2/src/updown.c.rh 2005-08-14 22:39:30.000000000 +0200 ++++ minicom-2.2/src/updown.c 2007-03-09 13:10:12.000000000 +0100 +@@ -380,8 +380,10 @@ + { + int status; + int pid, n; ++#ifdef NOTNOW + char buf[81]; + int fd; ++#endif + + /* Clear screen, set keyboard modes etc. */ + wleave(); +@@ -395,7 +397,7 @@ + /* Remove lockfile */ + set_privs(); + if (lockfile[0]) +- unlink(lockfile); ++ ttyunlock(lockfile); + setgid((gid_t)real_gid); + setuid((uid_t)real_uid); + +@@ -416,6 +418,7 @@ + /* Re-create lockfile */ + if (lockfile[0]) { + set_privs(); ++#ifdef NOTNOW + n = umask(022); + /* Create lockfile compatible with UUCP-1.2 */ + if ((fd = open(lockfile, O_WRONLY | O_CREAT | O_EXCL, 0666)) < 0) { +@@ -427,6 +430,9 @@ + close(fd); + } + umask(n); ++#else ++ ttylock(lockfile); ++#endif + drop_privs(); + } + m_flush(portfd); diff --git a/minicom-2.2-setlocale.patch b/minicom-2.2-setlocale.patch new file mode 100644 index 0000000..5eb9814 --- /dev/null +++ b/minicom-2.2-setlocale.patch @@ -0,0 +1,12 @@ +--- minicom-2.2/src/intl.h.setlocale 2003-03-30 20:55:51.000000000 +0200 ++++ minicom-2.2/src/intl.h 2007-03-08 18:01:03.000000000 +0100 +@@ -3,9 +3,6 @@ + #ifdef HAVE_LOCALE_H + # include + #endif +-#if !HAVE_SETLOCALE +-# define setlocale(Category, Locale) /* empty */ +-#endif + + #define N_(Str) (Str) + diff --git a/minicom-2.2-spaces.patch b/minicom-2.2-spaces.patch new file mode 100644 index 0000000..833b5c5 --- /dev/null +++ b/minicom-2.2-spaces.patch @@ -0,0 +1,45 @@ +Patch from Debian's minicom_2.2-5.diff.gz: +minicom-2.2/debian/patches/bug199924.diff +--- minicom-2.2.orig/src/util.c 2005-11-09 00:34:25.000000000 +0100 ++++ minicom-2.2/src/util.c 2006-10-19 17:38:18.000000000 +0200 +@@ -116,7 +116,7 @@ + + /* Delete escape-characters ment for the shell */ + p = cmd; +- while ((p = strchr(p, '\\'))) ++ while ((p = strchr(p, '\\')) && *(p+1) != ' ') + memmove(p, p + 1, strlen(p+1)); + + /* Split line into words */ +--- minicom-2.2.orig/src/file.c 2005-08-14 22:39:30.000000000 +0200 ++++ minicom-2.2/src/file.c 2006-10-19 17:43:10.000000000 +0200 +@@ -529,6 +529,8 @@ + { + GETSDIR_ENTRY *my_d; + int indxr, len; ++ int i; ++ char *j; + + my_d = d; + for (indxr = nrents, len = 0; indxr; --indxr, ++my_d) +@@ -548,8 +550,18 @@ + for (indxr = nrents; indxr; --indxr, ++my_d) + if (my_d->cflags & FL_TAG) { + /* this could be *much* more efficient */ +- strcat(ret_buf, my_d->fname); +- strcat(ret_buf, " "); ++ for (i = strlen(ret_buf), j = my_d->fname; *j; j++) { ++ if (*j == ' ') { ++ if ((ret_buf = (char*)realloc(ret_buf, ++len)) == NULL) { ++ file_tell(_("Too many files tagged - buffer would overflow")); ++ return(NULL); ++ } ++ ret_buf[i++] = '\\'; ++ } ++ ret_buf[i++] = *j; ++ } ++ ret_buf[i++] = ' '; ++ ret_buf[i] = '\0'; + } + + ret_buf[strlen(ret_buf) - 1] = (char)0; diff --git a/minicom-2.2-staticbuf.patch b/minicom-2.2-staticbuf.patch new file mode 100644 index 0000000..c665a39 --- /dev/null +++ b/minicom-2.2-staticbuf.patch @@ -0,0 +1,214 @@ +--- minicom-2.2/src/updown.c.staticbuf 2007-03-09 13:10:38.000000000 +0100 ++++ minicom-2.2/src/updown.c 2007-03-09 13:10:38.000000000 +0100 +@@ -87,40 +87,83 @@ + * Translate %b to the current bps rate, and + * %l to the current tty port. + * %f to the serial port file descriptor ++ * ++ * Caller must free the returned string + */ + static char *translate(char *s) + { +- static char buf[128]; +- char str_portfd[8]; /* kino */ +- int i; ++ char * ptr; ++ char * translation; ++ size_t translation_length; ++ char str_portfd[8]; /* kino */ ++ ++ /* determine how many bytes we'll need for the translated version */ ++ translation_length = 0; ++ for (ptr = s; *ptr != '\0'; ptr++) { ++ if (*ptr != '%') { ++ translation_length++; ++ } ++ else { ++ switch(*++ptr) { ++ ++ case 'l': /* tty port */ ++ translation_length += strlen(dial_tty); ++ break; ++ ++ case 'b': /* baud rate (bbp) */ ++ translation_length += strlen(P_BAUDRATE); ++ break; ++ ++ case 'f': /* serial port file descriptor */ ++ sprintf(str_portfd, "%d", portfd); ++ translation_length += strlen(str_portfd); ++ break; ++ ++ default: /* treat all other escape sequences literally */ ++ translation_length += 2; ++ break; ++ } ++ } ++ } ++ ++ translation = malloc(translation_length + 1); ++ if (translation == NULL) { ++ do_log("out of memory"); ++ return NULL; ++ } + +- for (i = 0; *s && i < 127; i++, s++) { ++ /* now copy and translate s into the allocated buffer */ ++ for (ptr = translation; *s != '\0'; s++) { + if (*s != '%') { +- buf[i] = *s; ++ *ptr++ = *s; + continue; + } +- switch (*++s) { +- case 'l': +- strncpy(buf + i, dial_tty, sizeof(buf)-i); +- i += strlen(dial_tty) - 1; ++ switch(*++s) { ++ case 'l': /* tty port */ ++ strcpy(ptr, dial_tty); ++ ptr += strlen(dial_tty); + break; +- case 'b': +- strncpy(buf + i, P_BAUDRATE, sizeof(buf)-i); +- i += strlen(P_BAUDRATE) - 1; ++ ++ case 'b': /* baud rate (bbp) */ ++ strcpy(ptr, P_BAUDRATE); ++ ptr += strlen(P_BAUDRATE); + break; +- case 'f': ++ ++ case 'f': /* serial port file descriptor */ + sprintf(str_portfd, "%d", portfd); +- strncpy(buf + i, str_portfd, sizeof(buf)-i); +- i += strlen(str_portfd) - 1; ++ strcpy(ptr, str_portfd); ++ ptr += strlen(str_portfd); + break; +- default: +- buf[i++] = '%'; +- buf[i] = *s; ++ ++ default: /* treat all other escape sequences literally */ ++ *ptr++ = '%'; ++ *ptr++ = *s; + break; + } + } +- buf[i] = 0; +- return buf; ++ *ptr = '\0'; ++ ++ return translation; + } + + /* +@@ -181,7 +224,8 @@ + const char *s =""; + int pipefd[2]; + int n, status; +- char cmdline[128]; ++ char * cmdline = NULL; ++ char * translated_cmdline = NULL; + WIN *win = (WIN *)NULL; + + if (mcd(what == 'U' ? P_UPDIR : P_DOWNDIR) < 0) +@@ -213,6 +257,7 @@ + #if 1 + { + int multiple; /* 0:only directory, 1:one file, -1:any number */ ++ size_t cmdline_length; + + if (P_MUL(g)=='Y') + /* need file(s), or just a directory? */ +@@ -232,7 +277,13 @@ + } + + /* discard directory if "multiple" == 0 */ +- snprintf(cmdline, sizeof(cmdline), "%s %s", P_PPROG(g), multiple == 0? "" : s); ++ cmdline_length = strlen(P_PPROG(g)) + strlen((char*) (multiple == 0 ? "" : s)) + 1; /* + 1 for ' ' */ ++ cmdline = malloc(cmdline_length + 1); /* + 1 for NUL */ ++ if (cmdline == NULL) { ++ werror(_("Out of memory: could allocate buffer for command line")); ++ return; ++ } ++ snprintf(cmdline, cmdline_length + 1, "%s %s", P_PPROG(g), multiple == 0 ? "" : s); + } + #endif + +@@ -258,6 +309,8 @@ + } else + wreturn(); + mcd(""); ++ if(cmdline) ++ free(cmdline); + return; + case 0: /* Child */ + if (P_PIORED(g) == 'Y') { +@@ -276,11 +329,21 @@ + set_privs(); + setgid((gid_t)real_gid); + setuid((uid_t)real_uid); +- fastexec(translate(cmdline)); ++ translated_cmdline = translate(cmdline); ++ if (translated_cmdline != NULL) { ++ fastexec(translated_cmdline); ++ free(translated_cmdline); ++ } ++ if(cmdline) ++ free(cmdline); + exit(1); + default: /* Parent */ + break; + } ++ ++ if(cmdline) ++ free(cmdline); ++ + if (win) { + setcbreak(1); /* Cbreak, no echo. */ + enab_sig(1, 0); /* But enable SIGINT */ +@@ -384,6 +447,7 @@ + char buf[81]; + int fd; + #endif ++ char * translated_cmdline; + + /* Clear screen, set keyboard modes etc. */ + wleave(); +@@ -404,7 +468,11 @@ + for (n = 0; n < _NSIG; n++) + signal(n, SIG_DFL); + +- fastexec(translate(P_KERMIT)); ++ translated_cmdline = translate(P_KERMIT); ++ if (translated_cmdline != NULL) { ++ fastexec(translated_cmdline); ++ free(translated_cmdline); ++ } + exit(1); + default: /* Parent */ + break; +@@ -518,6 +586,7 @@ + char buf[81]; + char scr_lines[5]; + char cmdline[128]; ++ char *translated_cmdline; + char *ptr; + WIN *w; + int done = 0; +@@ -623,7 +692,12 @@ + mc_setenv("LOGIN", scr_user); + mc_setenv("PASS", scr_passwd); + mc_setenv("TERMLIN", scr_lines); /* jl 13.09.97 */ +- fastexec(translate(cmdline)); ++ translated_cmdline = translate(cmdline); ++ ++ if (translated_cmdline != NULL) { ++ fastexec(translated_cmdline); ++ free(translated_cmdline); ++ } + exit(1); + default: /* Parent */ + break; diff --git a/minicom-2.2-umask.patch b/minicom-2.2-umask.patch new file mode 100644 index 0000000..41994ff --- /dev/null +++ b/minicom-2.2-umask.patch @@ -0,0 +1,10 @@ +--- minicom-2.2/src/config.c.umask 2006-04-02 11:52:30.000000000 +0200 ++++ minicom-2.2/src/config.c 2007-03-09 13:09:21.000000000 +0100 +@@ -1248,6 +1248,7 @@ + } + writepars(fp, 1); + fclose(fp); ++ chmod( parfile, (mode_t) 0644 ); + werror(_("Configuration saved")); + } else { + /* Mortals save their own configuration */ diff --git a/minicom-2.2-wchar.patch b/minicom-2.2-wchar.patch new file mode 100644 index 0000000..6aa4837 --- /dev/null +++ b/minicom-2.2-wchar.patch @@ -0,0 +1,20 @@ +--- minicom-2.2/src/minicom.c.wchar 2007-03-09 13:09:01.000000000 +0100 ++++ minicom-2.2/src/minicom.c 2007-03-09 13:09:01.000000000 +0100 +@@ -27,7 +27,6 @@ + RCSID(PKG_VER "$Id: minicom.c,v 1.29 2005/10/31 12:13:51 al-guest Exp $") + + #include +-#include + #include + + #define EXTERN +--- minicom-2.2/src/window.c.wchar 2005-11-06 20:20:57.000000000 +0100 ++++ minicom-2.2/src/window.c 2007-03-09 13:09:01.000000000 +0100 +@@ -23,7 +23,6 @@ + + #include + #include +-#include + + #include "port.h" + #include "minicom.h" diff --git a/minicom.spec b/minicom.spec index 6496457..f87766d 100644 --- a/minicom.spec +++ b/minicom.spec @@ -1,31 +1,27 @@ -%define with_desktop_menu_entry 0 - -Summary: A text-based modem control and terminal emulation program. +Summary: A text-based modem control and terminal emulation program Name: minicom -Version: 2.1 -Release: 3 +Version: 2.2 +Release: 1%{?dist} +URL: http://alioth.debian.org/projects/minicom/ License: GPL Group: Applications/Communications ExcludeArch: s390 s390x -BuildRoot: %{_tmppath}/%{name}-root -BuildPrereq: lockdev-devel >= 1.0.0-13 ncurses-devel -PreReq: coreutils -Requires: lockdev -URL: http://alioth.debian.org/projects/minicom/ +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: lockdev-devel ncurses-devel +Requires: lockdev lrzsz -Source: ftp://metalab.unc.edu/pub/Linux/apps/serialcomm/dialout/minicom-%{version}.tar.gz -Source1: minicom.desktop -Patch2: minicom-drop-privs.patch -Patch4: minicom-umask.patch +Source: minicom-%{version}.tar.gz -Patch8: minicom-2.1-rh.patch -Patch10: minicom-2.1-staticbuf.patch -Patch11: minicom-2.1-esc.patch -Patch12: minicom-2.00.0-inssp.patch -Patch13: minicom-2.00.0-gotodir.patch -Patch14: minicom-2.00.0-offby1.patch -Patch15: minicom-2.00.0-gcc4.patch -Patch16: minicom-2.1-debug.patch +Patch1: minicom-2.2-ncurses.patch +Patch2: minicom-2.2-drop-privs.patch +Patch3: minicom-2.2-wchar.patch +Patch4: minicom-2.2-umask.patch +Patch5: minicom-2.2-setlocale.patch +Patch6: minicom-2.2-spaces.patch +Patch7: minicom-2.2-gotodir.patch +Patch8: minicom-2.2-rh.patch +Patch9: minicom-2.2-esc.patch +Patch10: minicom-2.2-staticbuf.patch %description Minicom is a simple text-based modem control and terminal emulation @@ -35,54 +31,50 @@ language, and other features. %prep %setup -q +%patch1 -p1 -b .ncurses %patch2 -p1 -b .privs +%patch3 -p1 -b .wchar %patch4 -p1 -b .umask +%patch5 -p1 -b .setlocale +%patch6 -p1 -b .spaces +%patch7 -p1 -b .gotodir %patch8 -p1 -b .rh +%patch9 -p1 -b .esc %patch10 -p1 -b .staticbuf -%patch11 -p1 -b .esc -%patch12 -p1 -b .ins -%patch13 -p1 -b .gotodir -%patch14 -p1 -b .offby1 -%patch15 -p1 -b .gcc4 -%patch16 -p1 - %build %configure -make - +make %{?_smp_mflags} %install -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT -%makeinstall -mkdir -p $RPM_BUILD_ROOT/etc -%if %{with_desktop_menu_entry} -install -d $RPM_BUILD_ROOT/etc/X11/applnk/Internet -install -m 644 %SOURCE1 $RPM_BUILD_ROOT/etc/X11/applnk/Internet/minicom.desktop -%endif -install -m 644 doc/minicom.users $RPM_BUILD_ROOT/etc/minicom.users +rm -rf $RPM_BUILD_ROOT +make DESTDIR=$RPM_BUILD_ROOT install +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir} +install -p -m 644 doc/minicom.users $RPM_BUILD_ROOT%{_sysconfdir}/minicom.users -%find_lang %name +%find_lang %{name} %clean -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT +rm -rf $RPM_BUILD_ROOT -%files -f %name.lang +%files -f %{name}.lang %defattr(-,root,root) -%doc doc -#%attr(0644,root,root) -%config(noreplace) /etc/minicom.users +%doc AUTHORS NEWS TODO doc/* +%config(noreplace) %{_sysconfdir}/minicom.users # DO NOT MAKE minicom SUID/SGID anything. -%attr(0755,root,uucp) %{_bindir}/minicom +%{_bindir}/minicom %{_bindir}/runscript %{_bindir}/xminicom %{_bindir}/ascii-xfr %{_mandir}/man1/* -%if %{with_desktop_menu_entry} -%config(missingok) /etc/X11/applnk/Internet/minicom.desktop -%endif %changelog +* Fri Mar 09 2007 Miroslav Lichvar 2.2-1 +- update to 2.2 +- handle filenames with spaces (#98655) +- add requires for lrzsz +- spec cleanup + * Tue Jul 18 2006 Martin Stransky 2.1-3 - removed unnecessary debug output (#199707) @@ -187,7 +179,7 @@ install -m 644 doc/minicom.users $RPM_BUILD_ROOT/etc/minicom.users - Disabled most patches as they are either included now, not needed, or it has yet to be determined. -* Fri Oct 12 2001 Trond Eivind Glomsrød 1.83.1-17 +* Fri Oct 12 2001 Trond Eivind Glomsrød 1.83.1-17 - Delete bad entries in ko.po, fix charset in ja.po * Tue Aug 28 2001 Jeff Johnson diff --git a/sources b/sources index 2427b48..00c88f4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -1c8f3b247c38fb16c3c2170df9fc102a minicom-2.1.tar.gz +13933c8777839f00e3730df23599dc93 minicom-2.2.tar.gz