- 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)
This commit is contained in:
Jan Görig 2010-03-10 15:08:26 +00:00
parent c01367bac8
commit 5c621cf84d
14 changed files with 207 additions and 404 deletions

View File

@ -1 +1 @@
minicom-2.3.tar.gz
minicom-2.4.tar.gz

View File

@ -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 */

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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 <limits.h>
#include <stdarg.h>
#include <wchar.h>
-#include <termcap.h>
+#ifdef HAVE_TERMCAP_H
+# include <termcap.h>
+#elif defined (HAVE_NCURSES_TERMCAP_H)
+# include <ncurses/termcap.h>
+#endif
#include "port.h"
#include "minicom.h"

View File

@ -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 <time.h>
+#include <baudboy.h>
+
#ifdef USE_SOCKET
#include <sys/socket.h>
#include <sys/un.h>
@@ -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

16
minicom-2.4-config.patch Normal file
View File

@ -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);

12
minicom-2.4-esc.patch Normal file
View File

@ -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
}

113
minicom-2.4-rh.patch Normal file
View File

@ -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 <time.h>
+#include <baudboy.h>
+
#ifdef USE_SOCKET
#include <sys/socket.h>
#include <sys/un.h>
@@ -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
}
/*

View File

@ -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 */

12
minicom-2.4-umask.patch Normal file
View File

@ -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;

View File

@ -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 <jgorig@redhat.com> 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 <rel-eng@lists.fedoraproject.org> - 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 <lkundrak@redhat.com> 2.3-2
- Add ChangeLog to %doc
- Add ChangeLog to %%doc
* Sun Feb 24 2008 Lubomir Kundrak <lkundrak@redhat.com> 2.3-1
- 2.3

View File

@ -1 +1 @@
0ebe7a91898384ca906787cc4e2c3f25 minicom-2.3.tar.gz
700976a3c2dcc8bbd50ab9bb1c08837b minicom-2.4.tar.gz