- update to 2.2
- handle filenames with spaces (#98655) - add requires for lrzsz - spec cleanup Resolves: #98655
This commit is contained in:
parent
ebc69d0763
commit
0f0e704dc8
@ -1,2 +1 @@
|
||||
minicom-2.00.0.src.tar.bz2
|
||||
minicom-2.1.tar.gz
|
||||
minicom-2.2.tar.gz
|
||||
|
20
minicom-2.2-drop-privs.patch
Normal file
20
minicom-2.2-drop-privs.patch
Normal file
@ -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);
|
11
minicom-2.2-esc.patch
Normal file
11
minicom-2.2-esc.patch
Normal file
@ -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
|
64
minicom-2.2-gotodir.patch
Normal file
64
minicom-2.2-gotodir.patch
Normal file
@ -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;
|
||||
}
|
||||
|
||||
|
22
minicom-2.2-ncurses.patch
Normal file
22
minicom-2.2-ncurses.patch
Normal file
@ -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 <termcap.h>
|
||||
+#elif defined (HAVE_NCURSES_TERMCAP_H)
|
||||
+# include <ncurses/termcap.h>
|
||||
#else
|
||||
char *tgetstr(void), *tgoto(void);
|
||||
int tgetent(void), tputs(void), tgetnum(void), tgetflag(void);
|
161
minicom-2.2-rh.patch
Normal file
161
minicom-2.2-rh.patch
Normal file
@ -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 <baudboy.h>
|
||||
+
|
||||
#ifdef USE_SOCKET
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
@@ -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);
|
12
minicom-2.2-setlocale.patch
Normal file
12
minicom-2.2-setlocale.patch
Normal file
@ -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 <locale.h>
|
||||
#endif
|
||||
-#if !HAVE_SETLOCALE
|
||||
-# define setlocale(Category, Locale) /* empty */
|
||||
-#endif
|
||||
|
||||
#define N_(Str) (Str)
|
||||
|
45
minicom-2.2-spaces.patch
Normal file
45
minicom-2.2-spaces.patch
Normal file
@ -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;
|
214
minicom-2.2-staticbuf.patch
Normal file
214
minicom-2.2-staticbuf.patch
Normal file
@ -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;
|
10
minicom-2.2-umask.patch
Normal file
10
minicom-2.2-umask.patch
Normal file
@ -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 */
|
20
minicom-2.2-wchar.patch
Normal file
20
minicom-2.2-wchar.patch
Normal file
@ -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 <getopt.h>
|
||||
-#include <wchar.h>
|
||||
#include <wctype.h>
|
||||
|
||||
#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 <limits.h>
|
||||
#include <stdarg.h>
|
||||
-#include <wchar.h>
|
||||
|
||||
#include "port.h"
|
||||
#include "minicom.h"
|
92
minicom.spec
92
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 <mlichvar@redhat.com> 2.2-1
|
||||
- update to 2.2
|
||||
- handle filenames with spaces (#98655)
|
||||
- add requires for lrzsz
|
||||
- spec cleanup
|
||||
|
||||
* Tue Jul 18 2006 Martin Stransky <stransky@redhat.com> 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 <teg@redhat.com> 1.83.1-17
|
||||
* Fri Oct 12 2001 Trond Eivind Glomsrød <teg@redhat.com> 1.83.1-17
|
||||
- Delete bad entries in ko.po, fix charset in ja.po
|
||||
|
||||
* Tue Aug 28 2001 Jeff Johnson <jbj@redhat.com>
|
||||
|
Loading…
Reference in New Issue
Block a user