diff --git a/.cvsignore b/.cvsignore index 2ab75eb..3f12e06 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -minicom-2.3.tar.gz +minicom-2.4.tar.gz diff --git a/minicom-2.2-umask.patch b/minicom-2.2-umask.patch deleted file mode 100644 index 41994ff..0000000 --- a/minicom-2.2-umask.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- 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.3-drop-privs.patch b/minicom-2.3-drop-privs.patch deleted file mode 100644 index 1dc2c89..0000000 --- a/minicom-2.3-drop-privs.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -urp minicom-2.3.orig/src/minicom.c minicom-2.3/src/minicom.c ---- minicom-2.3.orig/src/minicom.c 2008-02-02 23:49:53.000000000 +0100 -+++ minicom-2.3/src/minicom.c 2008-02-24 20:45:35.000000000 +0100 -@@ -1132,6 +1132,8 @@ int main(int argc, char **argv) - 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")); -@@ -1139,6 +1141,8 @@ int main(int argc, char **argv) - } - docap = 1; - vt_set(addlf, -1, docap, -1, -1, -1, -1); -+ seteuid(eff_uid); -+ setegid(eff_gid); - break; - case 'S': /* start Script */ - strncpy(scr_name, optarg, 33); -Only in minicom-2.3/src: minicom.c.orig -Only in minicom-2.3/src: minicom.c.rej diff --git a/minicom-2.3-esc.patch b/minicom-2.3-esc.patch deleted file mode 100644 index 838e251..0000000 --- a/minicom-2.3-esc.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up minicom-2.3/src/vt100.c.esc minicom-2.3/src/vt100.c ---- minicom-2.3/src/vt100.c.esc 2007-10-10 22:18:20.000000000 +0200 -+++ minicom-2.3/src/vt100.c 2008-08-29 12:53:35.000000000 +0200 -@@ -1040,7 +1040,7 @@ void vt_out(int ch) - fputc(P_CONVCAP[0] == 'Y' ? vt_inmap[c] : c, 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.3-getline.patch b/minicom-2.3-getline.patch deleted file mode 100644 index bf49f35..0000000 --- a/minicom-2.3-getline.patch +++ /dev/null @@ -1,112 +0,0 @@ -diff -up minicom-2.3/src/minicom.c.getline minicom-2.3/src/minicom.c ---- minicom-2.3/src/minicom.c.getline 2009-07-16 13:17:04.000000000 +0200 -+++ minicom-2.3/src/minicom.c 2009-07-16 13:21:55.000000000 +0200 -@@ -166,7 +166,7 @@ static void shjump(int sig) - #endif /*SIGTSTP*/ - - /* Get a line from either window or scroll back buffer. */ --static ELM *getline(WIN *w, int no) -+static ELM *get_line(WIN *w, int no) - { - int i; - static ELM outofrange[MAXCOLS] = {{0,0,0}}; -@@ -204,7 +204,7 @@ static void drawhist(WIN *w, int y, int - - w->direct = 0; - for (f = 0; f < w->ys; f++) -- mc_wdrawelm(w, f, getline(w, y++)); -+ mc_wdrawelm(w, f, get_line(w, y++)); - if (r) - mc_wredraw(w, 1); - w->direct = 1; -@@ -226,7 +226,7 @@ void drawhist_look(WIN *w, int y, int r, - tmp_line[0]='\0'; - w->direct = 0; - for (f = 0; f < w->ys; f++) { -- tmp_e = getline(w, y++); -+ tmp_e = get_line(w, y++); - - /* First we "accumulate" the line into a variable */ - mc_wdrawelm_var(w, tmp_e, tmp_line); -@@ -323,7 +323,7 @@ int find_next(WIN *w, WIN *w_hist, - - for (next_line = hit_line; next_line <= all_lines; next_line++) { - /* we do 'something' here... :-) */ -- tmp_e = getline(w_hist, next_line); -+ tmp_e = get_line(w_hist, next_line); - - /* - * First we "accumulate" the line into a variable. -@@ -378,9 +378,9 @@ wchar_t *StrStr(wchar_t *str1, wchar_t * - static void drawcite(WIN *w, int y, int citey, int start, int end) - { - if (y+citey >= start && y+citey <= end) -- mc_wdrawelm_inverse(w, y, getline(w, y+citey)); -+ mc_wdrawelm_inverse(w, y, get_line(w, y+citey)); - else -- mc_wdrawelm(w, y, getline(w, y+citey)); -+ mc_wdrawelm(w, y, get_line(w, y+citey)); - } - - static void drawcite_whole(WIN *w, int y, int start, int end) -@@ -399,7 +399,7 @@ static void do_cite(WIN *w, int start, i - for (y=start; y<=end; y++) { - vt_send('>'); - vt_send(' '); -- tmp_e = getline(w, y); -+ tmp_e = get_line(w, y); - mc_wdrawelm_var(w, tmp_e, tmp_line); - tmp_line[w->xs] = 0; - for (x = w->xs-1; x >= 0; x--) { -@@ -599,7 +599,7 @@ static void scrollback(void) - if (citemode) { - inverse = (y+cite_y >= cite_ystart && y+cite_y <= cite_yend); - } else { -- tmp_e = getline(b_us, y); -+ tmp_e = get_line(b_us, y); - if (wcslen(look_for) > 1) { - /* quick scan for pattern match */ - mc_wdrawelm_var(b_us, tmp_e, tmp_line); -@@ -610,9 +610,9 @@ static void scrollback(void) - } - - if (inverse) -- mc_wdrawelm_inverse(b_us, 0, getline(b_us, y)); -+ mc_wdrawelm_inverse(b_us, 0, get_line(b_us, y)); - else -- mc_wdrawelm(b_us, 0, getline(b_us, y)); -+ mc_wdrawelm(b_us, 0, get_line(b_us, y)); - if (citemode) - mc_wlocate(b_us, 0, cite_y); - mc_wflush(); -@@ -647,7 +647,7 @@ static void scrollback(void) - if (citemode) { - inverse = (y+cite_y >= cite_ystart && y+cite_y <= cite_yend); - } else { -- tmp_e = getline(b_us, y + b_us->ys - 1); -+ tmp_e = get_line(b_us, y + b_us->ys - 1); - if (wcslen(look_for) > 1) { - /* quick scan for pattern match */ - mc_wdrawelm_var(b_us, tmp_e, tmp_line); -@@ -659,10 +659,10 @@ static void scrollback(void) - - if (inverse) - mc_wdrawelm_inverse(b_us, b_us->ys - 1, -- getline(b_us, y + b_us->ys - 1)); -+ get_line(b_us, y + b_us->ys - 1)); - else - mc_wdrawelm(b_us, b_us->ys - 1, -- getline(b_us, y + b_us->ys - 1)); -+ get_line(b_us, y + b_us->ys - 1)); - if (citemode) - mc_wlocate(b_us, 0, cite_y); - mc_wflush(); -@@ -752,7 +752,7 @@ static void scrollback(void) - mc_wlocate(b_st, 0, 0); - mc_wprintf(b_st, hline); - mc_wredraw(b_st, 1); -- mc_wdrawelm_inverse(b_us, cite_y, getline(b_us, cite_ystart)); -+ mc_wdrawelm_inverse(b_us, cite_y, get_line(b_us, cite_ystart)); - mc_wlocate(b_us, 0, cite_y); - break; - case K_ESC: diff --git a/minicom-2.3-ncurses.patch b/minicom-2.3-ncurses.patch deleted file mode 100644 index 0b5cdc9..0000000 --- a/minicom-2.3-ncurses.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -urp minicom-2.3.orig/configure minicom-2.3/configure ---- minicom-2.3.orig/configure 2008-02-24 11:45:38.000000000 +0100 -+++ minicom-2.3/configure 2008-02-24 20:38:16.000000000 +0100 -@@ -6718,7 +6718,7 @@ done - - 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 -diff -urp minicom-2.3.orig/src/window.c minicom-2.3/src/window.c ---- minicom-2.3.orig/src/window.c 2008-02-24 21:04:29.000000000 +0100 -+++ minicom-2.3/src/window.c 2008-02-24 21:05:17.000000000 +0100 -@@ -28,7 +28,11 @@ RCSID("$Id: window.c,v 1.21 2008-02-06 2 - #include - #include - #include --#include -+#ifdef HAVE_TERMCAP_H -+# include -+#elif defined (HAVE_NCURSES_TERMCAP_H) -+# include -+#endif - - #include "port.h" - #include "minicom.h" diff --git a/minicom-2.3-rh.patch b/minicom-2.3-rh.patch deleted file mode 100644 index 5f09dfa..0000000 --- a/minicom-2.3-rh.patch +++ /dev/null @@ -1,170 +0,0 @@ -diff -urp minicom-2.3.orig/src/main.c minicom-2.3/src/main.c ---- minicom-2.3.orig/src/main.c 2008-02-02 23:49:53.000000000 +0100 -+++ minicom-2.3/src/main.c 2008-02-24 21:26:20.000000000 +0100 -@@ -87,7 +87,7 @@ void leave(const char *s) - } - set_privs(); - if (lockfile[0]) -- unlink(lockfile); -+ ttyunlock(lockfile); - if (P_CALLIN[0]) - fastsystem(P_CALLIN, NULL, NULL, NULL); - if (real_uid) -@@ -161,10 +161,13 @@ void term_socket_close(void) - int open_term(int doinit, int show_win_on_error) - { - 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 -@@ -172,6 +175,8 @@ int open_term(int doinit, int show_win_o - /* 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) { - -@@ -243,6 +248,30 @@ int open_term(int doinit, int show_win_o - 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) mc_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) { -@@ -250,7 +279,7 @@ int open_term(int doinit, int show_win_o - mc_wclose(stdwin, 1); - fprintf(stderr, _("Could not setup for dial out.\n")); - if (lockfile[0]) -- unlink(lockfile); -+ ttyunlock(lockfile); - drop_privs(); - return -1; - } -@@ -310,12 +339,12 @@ int open_term(int doinit, int show_win_o - 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); - if (show_win_on_error) - werror(_("Cannot open %s!"), dial_tty); - drop_privs(); -Only in minicom-2.3/src: main.c.orig -Only in minicom-2.3/src: main.c.rej -diff -urp minicom-2.3.orig/src/minicom.c minicom-2.3/src/minicom.c ---- minicom-2.3.orig/src/minicom.c 2008-02-24 21:21:30.000000000 +0100 -+++ minicom-2.3/src/minicom.c 2008-02-24 21:26:07.000000000 +0100 -@@ -1548,7 +1548,7 @@ dirty_goto: - 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". -Only in minicom-2.3/src: minicom.c.orig -diff -urp minicom-2.3.orig/src/minicom.h minicom-2.3/src/minicom.h ---- minicom-2.3.orig/src/minicom.h 2008-02-02 23:49:53.000000000 +0100 -+++ minicom-2.3/src/minicom.h 2008-02-24 21:26:07.000000000 +0100 -@@ -35,6 +35,8 @@ - - #include - -+#include -+ - #ifdef USE_SOCKET - #include - #include -@@ -84,7 +86,7 @@ EXTERN int tempst; /* Status line is tem - 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? */ -Only in minicom-2.3/src: minicom.h.orig -diff -urp minicom-2.3.orig/src/updown.c minicom-2.3/src/updown.c ---- minicom-2.3.orig/src/updown.c 2007-10-10 22:18:20.000000000 +0200 -+++ minicom-2.3/src/updown.c 2008-02-24 21:26:07.000000000 +0100 -@@ -384,8 +384,10 @@ void kermit(void) - { - int status; - int pid, n; -+#ifdef NOTNOW - char buf[81]; - int fd; -+#endif - - /* Clear screen, set keyboard modes etc. */ - mc_wleave(); -@@ -399,7 +401,7 @@ void kermit(void) - /* Remove lockfile */ - set_privs(); - if (lockfile[0]) -- unlink(lockfile); -+ ttyunlock(lockfile); - setgid((gid_t)real_gid); - setuid((uid_t)real_uid); - -@@ -420,6 +422,7 @@ void kermit(void) - /* 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) { -@@ -431,6 +434,9 @@ void kermit(void) - close(fd); - } - umask(n); -+#else -+ ttylock(lockfile); -+#endif - drop_privs(); - } - m_flush(portfd); -Only in minicom-2.3/src: updown.c.orig diff --git a/minicom-2.4-config.patch b/minicom-2.4-config.patch new file mode 100644 index 0000000..aa00475 --- /dev/null +++ b/minicom-2.4-config.patch @@ -0,0 +1,16 @@ +diff -up minicom-2.4/src/config.c.orig minicom-2.4/src/config.c +--- minicom-2.4/src/config.c.orig 2010-03-10 12:41:42.000000000 +0100 ++++ minicom-2.4/src/config.c 2010-03-10 13:16:16.233368251 +0100 +@@ -52,6 +52,12 @@ void read_parms(void) + + /* Read global parameters */ + if ((fp = fopen(parfile, "r")) == NULL) { ++ if (dosetup) { ++ fputs(_("minicom: WARNING: configuration file not found, using defaults\n"),stderr); ++ sleep(2); ++ return; ++ } ++ + fprintf(stderr, + _("minicom: there is no global configuration file %s\n"), parfile); + fputs(_("Ask your sysadmin to create one (with minicom -s).\n"), stderr); diff --git a/minicom-2.4-esc.patch b/minicom-2.4-esc.patch new file mode 100644 index 0000000..5dfbe92 --- /dev/null +++ b/minicom-2.4-esc.patch @@ -0,0 +1,12 @@ +diff -up minicom-2.4/src/vt100.c.orig minicom-2.4/src/vt100.c +--- minicom-2.4/src/vt100.c.orig 2009-12-12 16:47:47.000000000 +0100 ++++ minicom-2.4/src/vt100.c 2010-03-10 10:53:23.338369299 +0100 +@@ -1012,7 +1012,7 @@ void vt_out(int ch) + if (!using_iconv()) { + 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 + } diff --git a/minicom-2.4-rh.patch b/minicom-2.4-rh.patch new file mode 100644 index 0000000..173aa2b --- /dev/null +++ b/minicom-2.4-rh.patch @@ -0,0 +1,113 @@ +diff -up minicom-2.4/src/main.c.orig minicom-2.4/src/main.c +--- minicom-2.4/src/main.c.orig 2009-12-12 16:47:47.000000000 +0100 ++++ minicom-2.4/src/main.c 2010-03-10 11:43:12.588243671 +0100 +@@ -154,13 +154,18 @@ void term_socket_close(void) + int open_term(int doinit, int show_win_on_error) + { + struct stat stt; ++#ifdef NOTNOW + char buf[128]; +- int fd, n = 0; ++ int fd; + int pid; ++#endif ++ int n = 0; + #ifdef HAVE_ERRNO_H + int s_errno; + #endif + ++#ifdef NOTNOW ++ + /* First see if the lock file directory is present. */ + if (P_LOCK[0] && stat(P_LOCK, &stt) == 0) { + +@@ -212,6 +217,29 @@ int open_term(int doinit, int show_win_o + if (doinit > 0) + lockfile_create(); + ++#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) mc_wclose(stdwin, 1); ++ 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) { +diff -up minicom-2.4/src/minicom.c.orig minicom-2.4/src/minicom.c +--- minicom-2.4/src/minicom.c.orig 2009-12-12 16:47:47.000000000 +0100 ++++ minicom-2.4/src/minicom.c 2010-03-10 11:39:32.406244215 +0100 +@@ -1555,7 +1555,7 @@ dirty_goto: + mc_wclose(stdwin, 1); + keyboard(KUNINSTALL, 0); + if (lockfile[0]) +- unlink(lockfile); ++ ttyunlock(lockfile); + close(portfd); + + if (quit != NORESET && P_CALLIN[0]) +diff -up minicom-2.4/src/minicom.h.orig minicom-2.4/src/minicom.h +--- minicom-2.4/src/minicom.h.orig 2009-12-12 16:47:47.000000000 +0100 ++++ minicom-2.4/src/minicom.h 2010-03-10 11:39:32.406244215 +0100 +@@ -35,6 +35,8 @@ + + #include + ++#include ++ + #ifdef USE_SOCKET + #include + #include +@@ -82,7 +84,7 @@ EXTERN int tempst; /* Status line is tem + 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? */ +diff -up minicom-2.4/src/updown.c.orig minicom-2.4/src/updown.c +--- minicom-2.4/src/updown.c.orig 2009-12-13 16:20:34.000000000 +0100 ++++ minicom-2.4/src/updown.c 2010-03-10 11:54:05.519368852 +0100 +@@ -378,11 +378,12 @@ void updown(int what, int nr) + void lockfile_remove(void) + { + if (lockfile[0]) +- unlink(lockfile); ++ ttyunlock(lockfile); + } + + void lockfile_create(void) + { ++#ifdef NOTNOW + int fd, n; + char buf[81]; + +@@ -399,6 +400,9 @@ void lockfile_create(void) + close(fd); + } + umask(n); ++#else ++ ttylock(lockfile); ++#endif + } + + /* diff --git a/minicom-2.3-staticbuf.patch b/minicom-2.4-staticbuf.patch similarity index 82% rename from minicom-2.3-staticbuf.patch rename to minicom-2.4-staticbuf.patch index 30df69b..5d53797 100644 --- a/minicom-2.3-staticbuf.patch +++ b/minicom-2.4-staticbuf.patch @@ -1,7 +1,7 @@ -diff -up minicom-2.3/src/updown.c.staticbuf minicom-2.3/src/updown.c ---- minicom-2.3/src/updown.c.staticbuf 2008-08-29 12:55:48.000000000 +0200 -+++ minicom-2.3/src/updown.c 2008-08-29 12:55:48.000000000 +0200 -@@ -91,40 +91,83 @@ static void udcatch(int dummy) +diff -up minicom-2.4/src/updown.c.staticbuf minicom-2.4/src/updown.c +--- minicom-2.4/src/updown.c.staticbuf 2009-12-13 16:20:34.000000000 +0100 ++++ minicom-2.4/src/updown.c 2010-03-10 10:43:14.570243745 +0100 +@@ -89,40 +89,83 @@ static void udcatch(int dummy) * Translate %b to the current bps rate, and * %l to the current tty port. * %f to the serial port file descriptor @@ -105,7 +105,7 @@ diff -up minicom-2.3/src/updown.c.staticbuf minicom-2.3/src/updown.c } /* -@@ -185,7 +228,8 @@ void updown(int what, int nr) +@@ -183,7 +226,8 @@ void updown(int what, int nr) const char *s =""; int pipefd[2]; int n, status; @@ -115,7 +115,7 @@ diff -up minicom-2.3/src/updown.c.staticbuf minicom-2.3/src/updown.c WIN *win = (WIN *)NULL; if (mcd(what == 'U' ? P_UPDIR : P_DOWNDIR) < 0) -@@ -217,6 +261,7 @@ void updown(int what, int nr) +@@ -215,6 +259,7 @@ void updown(int what, int nr) #if 1 { int multiple; /* 0:only directory, 1:one file, -1:any number */ @@ -123,7 +123,7 @@ diff -up minicom-2.3/src/updown.c.staticbuf minicom-2.3/src/updown.c if (P_MUL(g)=='Y') /* need file(s), or just a directory? */ -@@ -236,7 +281,13 @@ void updown(int what, int nr) +@@ -234,7 +279,13 @@ void updown(int what, int nr) } /* discard directory if "multiple" == 0 */ @@ -138,7 +138,7 @@ diff -up minicom-2.3/src/updown.c.staticbuf minicom-2.3/src/updown.c } #endif -@@ -262,6 +313,8 @@ void updown(int what, int nr) +@@ -260,6 +311,8 @@ void updown(int what, int nr) } else mc_wreturn(); mcd(""); @@ -147,10 +147,10 @@ diff -up minicom-2.3/src/updown.c.staticbuf minicom-2.3/src/updown.c return; case 0: /* Child */ if (P_PIORED(g) == 'Y') { -@@ -280,11 +333,21 @@ void updown(int what, int nr) - set_privs(); - setgid((gid_t)real_gid); - setuid((uid_t)real_uid); +@@ -278,11 +331,21 @@ void updown(int what, int nr) + for (n = 1; n < _NSIG; n++) + signal(n, SIG_DFL); + - fastexec(translate(cmdline)); + translated_cmdline = translate(cmdline); + if (translated_cmdline != NULL) { @@ -170,19 +170,21 @@ diff -up minicom-2.3/src/updown.c.staticbuf minicom-2.3/src/updown.c if (win) { setcbreak(1); /* Cbreak, no echo. */ enab_sig(1, 0); /* But enable SIGINT */ -@@ -388,6 +451,7 @@ void kermit(void) - char buf[81]; - int fd; - #endif +@@ -409,7 +472,8 @@ void lockfile_create(void) + void kermit(void) + { + int status, pid, n; +- char *kermit_path = translate(P_KERMIT); + char * translated_cmdline; ++ char *kermit_path = P_KERMIT; - /* Clear screen, set keyboard modes etc. */ - mc_wleave(); -@@ -408,7 +472,11 @@ void kermit(void) + if (!kermit_path || !*kermit_path) { + werror("No kermit path defined!"); +@@ -433,7 +497,11 @@ void kermit(void) for (n = 0; n < _NSIG; n++) signal(n, SIG_DFL); -- fastexec(translate(P_KERMIT)); +- fastexec(kermit_path); + translated_cmdline = translate(P_KERMIT); + if (translated_cmdline != NULL) { + fastexec(translated_cmdline); @@ -191,15 +193,15 @@ diff -up minicom-2.3/src/updown.c.staticbuf minicom-2.3/src/updown.c exit(1); default: /* Parent */ break; -@@ -522,6 +590,7 @@ void runscript(int ask, const char *s, c - char buf[81]; +@@ -531,6 +599,7 @@ void runscript(int ask, const char *s, c char scr_lines[5]; char cmdline[128]; + struct pollfd fds[2]; + char *translated_cmdline; char *ptr; WIN *w; int done = 0; -@@ -627,7 +696,12 @@ void runscript(int ask, const char *s, c +@@ -633,7 +702,12 @@ void runscript(int ask, const char *s, c mc_setenv("LOGIN", scr_user); mc_setenv("PASS", scr_passwd); mc_setenv("TERMLIN", scr_lines); /* jl 13.09.97 */ diff --git a/minicom-2.4-umask.patch b/minicom-2.4-umask.patch new file mode 100644 index 0000000..5383525 --- /dev/null +++ b/minicom-2.4-umask.patch @@ -0,0 +1,12 @@ +diff -up ./minicom-2.4/src/config.c.umask ./minicom-2.4/src/config.c +--- minicom-2.4/src/config.c.umask 2010-03-09 16:32:14.876153489 +0100 ++++ minicom-2.4/src/config.c 2010-03-09 16:33:17.789153650 +0100 +@@ -1245,6 +1245,8 @@ int dodflsave(void) + } + writepars(fp, dosetup); + fclose(fp); ++ if(dosetup) ++ chmod(fname, (mode_t) 0644); + werror(_("Configuration saved")); + + return domacsave() < 0 ? -1 : 0; diff --git a/minicom.spec b/minicom.spec index fc674b8..dafa4c9 100644 --- a/minicom.spec +++ b/minicom.spec @@ -1,7 +1,7 @@ Summary: A text-based modem control and terminal emulation program Name: minicom -Version: 2.3 -Release: 6%{?dist} +Version: 2.4 +Release: 1%{?dist} URL: http://alioth.debian.org/projects/minicom/ License: GPLv2+ Group: Applications/Communications @@ -10,17 +10,15 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: lockdev-devel ncurses-devel Requires: lockdev lrzsz -Source0: http://alioth.debian.org/frs/download.php/2332/minicom-2.3.tar.gz +Source0: http://alioth.debian.org/frs/download.php/3195/minicom-2.4.tar.gz -Patch1: minicom-2.3-ncurses.patch -Patch2: minicom-2.3-drop-privs.patch -Patch4: minicom-2.2-umask.patch -Patch6: minicom-2.2-spaces.patch -Patch7: minicom-2.3-gotodir.patch -Patch8: minicom-2.3-rh.patch -Patch9: minicom-2.3-esc.patch -Patch10: minicom-2.3-staticbuf.patch -Patch11: minicom-2.3-getline.patch +Patch1: minicom-2.4-umask.patch +Patch2: minicom-2.2-spaces.patch +Patch3: minicom-2.3-gotodir.patch +Patch4: minicom-2.4-rh.patch +Patch5: minicom-2.4-esc.patch +Patch6: minicom-2.4-staticbuf.patch +Patch7: minicom-2.4-config.patch %description Minicom is a simple text-based modem control and terminal emulation @@ -30,15 +28,13 @@ language, and other features. %prep %setup -q -%patch1 -p1 -b .ncurses -%patch2 -p1 -b .drop-privs -%patch4 -p1 -b .umask -%patch6 -p1 -b .spaces -%patch7 -p1 -b .gotodir -%patch8 -p1 -b .rh -%patch9 -p1 -b .esc -%patch10 -p1 -b .staticbuf -%patch11 -p1 -b .getline +%patch1 -p1 -b .umask +%patch2 -p1 -b .spaces +%patch3 -p1 -b .gotodir +%patch4 -p1 -b .rh +%patch5 -p1 -b .esc +%patch6 -p1 -b .staticbuf +%patch7 -p1 -b .config cp -pr doc doc_ rm -f doc_/Makefile* @@ -51,7 +47,6 @@ make %{?_smp_mflags} 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} @@ -61,7 +56,6 @@ rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang %defattr(-,root,root) %doc ChangeLog AUTHORS NEWS TODO doc_/* -%config(noreplace) %{_sysconfdir}/minicom.users # DO NOT MAKE minicom SUID/SGID anything. %{_bindir}/minicom %{_bindir}/runscript @@ -70,6 +64,15 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/* %changelog +* Tue Mar 9 2010 Jan Görig 2.4-1 +- update to 2.4 +- /etc/minicom.users removed by upstream +- add minicom-2.4-config.patch +- remove minicom-2.3-getline.patch - fixed in upstream +- remove minicom-2.3-drop-privs.patch - permissions handling removed by upstream +- remove minicom-2.3-ncurses.patch - deprecated +- modify minicom-2.4-rh.patch - wrong doinit checking (#519637) + * Sat Jul 25 2009 Fedora Release Engineering - 2.3-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild @@ -85,7 +88,7 @@ rm -rf $RPM_BUILD_ROOT - rediff patches with fuzz * Thu Mar 13 2008 Lubomir Kundrak 2.3-2 -- Add ChangeLog to %doc +- Add ChangeLog to %%doc * Sun Feb 24 2008 Lubomir Kundrak 2.3-1 - 2.3 diff --git a/sources b/sources index d6c6823..da43475 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0ebe7a91898384ca906787cc4e2c3f25 minicom-2.3.tar.gz +700976a3c2dcc8bbd50ab9bb1c08837b minicom-2.4.tar.gz