- 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.2.tar.gz
|
||||||
minicom-2.1.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
|
Name: minicom
|
||||||
Version: 2.1
|
Version: 2.2
|
||||||
Release: 3
|
Release: 1%{?dist}
|
||||||
|
URL: http://alioth.debian.org/projects/minicom/
|
||||||
License: GPL
|
License: GPL
|
||||||
Group: Applications/Communications
|
Group: Applications/Communications
|
||||||
ExcludeArch: s390 s390x
|
ExcludeArch: s390 s390x
|
||||||
BuildRoot: %{_tmppath}/%{name}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
BuildPrereq: lockdev-devel >= 1.0.0-13 ncurses-devel
|
BuildRequires: lockdev-devel ncurses-devel
|
||||||
PreReq: coreutils
|
Requires: lockdev lrzsz
|
||||||
Requires: lockdev
|
|
||||||
URL: http://alioth.debian.org/projects/minicom/
|
|
||||||
|
|
||||||
Source: ftp://metalab.unc.edu/pub/Linux/apps/serialcomm/dialout/minicom-%{version}.tar.gz
|
Source: minicom-%{version}.tar.gz
|
||||||
Source1: minicom.desktop
|
|
||||||
Patch2: minicom-drop-privs.patch
|
|
||||||
Patch4: minicom-umask.patch
|
|
||||||
|
|
||||||
Patch8: minicom-2.1-rh.patch
|
Patch1: minicom-2.2-ncurses.patch
|
||||||
Patch10: minicom-2.1-staticbuf.patch
|
Patch2: minicom-2.2-drop-privs.patch
|
||||||
Patch11: minicom-2.1-esc.patch
|
Patch3: minicom-2.2-wchar.patch
|
||||||
Patch12: minicom-2.00.0-inssp.patch
|
Patch4: minicom-2.2-umask.patch
|
||||||
Patch13: minicom-2.00.0-gotodir.patch
|
Patch5: minicom-2.2-setlocale.patch
|
||||||
Patch14: minicom-2.00.0-offby1.patch
|
Patch6: minicom-2.2-spaces.patch
|
||||||
Patch15: minicom-2.00.0-gcc4.patch
|
Patch7: minicom-2.2-gotodir.patch
|
||||||
Patch16: minicom-2.1-debug.patch
|
Patch8: minicom-2.2-rh.patch
|
||||||
|
Patch9: minicom-2.2-esc.patch
|
||||||
|
Patch10: minicom-2.2-staticbuf.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Minicom is a simple text-based modem control and terminal emulation
|
Minicom is a simple text-based modem control and terminal emulation
|
||||||
@ -35,54 +31,50 @@ language, and other features.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch1 -p1 -b .ncurses
|
||||||
%patch2 -p1 -b .privs
|
%patch2 -p1 -b .privs
|
||||||
|
%patch3 -p1 -b .wchar
|
||||||
%patch4 -p1 -b .umask
|
%patch4 -p1 -b .umask
|
||||||
|
%patch5 -p1 -b .setlocale
|
||||||
|
%patch6 -p1 -b .spaces
|
||||||
|
%patch7 -p1 -b .gotodir
|
||||||
%patch8 -p1 -b .rh
|
%patch8 -p1 -b .rh
|
||||||
|
%patch9 -p1 -b .esc
|
||||||
%patch10 -p1 -b .staticbuf
|
%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
|
%build
|
||||||
%configure
|
%configure
|
||||||
make
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
%makeinstall
|
make DESTDIR=$RPM_BUILD_ROOT install
|
||||||
mkdir -p $RPM_BUILD_ROOT/etc
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
|
||||||
%if %{with_desktop_menu_entry}
|
install -p -m 644 doc/minicom.users $RPM_BUILD_ROOT%{_sysconfdir}/minicom.users
|
||||||
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
|
|
||||||
|
|
||||||
%find_lang %name
|
%find_lang %{name}
|
||||||
|
|
||||||
%clean
|
%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)
|
%defattr(-,root,root)
|
||||||
%doc doc
|
%doc AUTHORS NEWS TODO doc/*
|
||||||
#%attr(0644,root,root)
|
%config(noreplace) %{_sysconfdir}/minicom.users
|
||||||
%config(noreplace) /etc/minicom.users
|
|
||||||
# DO NOT MAKE minicom SUID/SGID anything.
|
# DO NOT MAKE minicom SUID/SGID anything.
|
||||||
%attr(0755,root,uucp) %{_bindir}/minicom
|
%{_bindir}/minicom
|
||||||
%{_bindir}/runscript
|
%{_bindir}/runscript
|
||||||
%{_bindir}/xminicom
|
%{_bindir}/xminicom
|
||||||
%{_bindir}/ascii-xfr
|
%{_bindir}/ascii-xfr
|
||||||
%{_mandir}/man1/*
|
%{_mandir}/man1/*
|
||||||
%if %{with_desktop_menu_entry}
|
|
||||||
%config(missingok) /etc/X11/applnk/Internet/minicom.desktop
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%changelog
|
%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
|
* Tue Jul 18 2006 Martin Stransky <stransky@redhat.com> 2.1-3
|
||||||
- removed unnecessary debug output (#199707)
|
- 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
|
- Disabled most patches as they are either included now, not needed, or
|
||||||
it has yet to be determined.
|
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
|
- Delete bad entries in ko.po, fix charset in ja.po
|
||||||
|
|
||||||
* Tue Aug 28 2001 Jeff Johnson <jbj@redhat.com>
|
* Tue Aug 28 2001 Jeff Johnson <jbj@redhat.com>
|
||||||
|
Loading…
Reference in New Issue
Block a user