pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/sysutils/tkdesk Fix up sysutils/tkdesk, some.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/06ff53976e19
branches:  trunk
changeset: 380396:06ff53976e19
user:      dholland <dholland%pkgsrc.org@localhost>
date:      Mon Jun 06 05:11:58 2022 +0000

description:
Fix up sysutils/tkdesk, some.

 - Fix up the TCL interpreter result handling so we don't need to use
   USE_INTERP_RESULT.

 - Fix the first startup segfault (probably the one seen in PR 32807
   but not necessarily) by using Tcl_Free instead of trying to bypass
   it. Unfortunately, there's at least one more segfault at startup
   with no obvious cause.

 - Don't run off the end of string buffers.

 - Remove some uses of sprintf. Use standard headers. Other minor
   tidyups.

 - Correct glitch in the configury patches that made it link
   statically to blt.

 - Avoid passing empty variable names to test(1) during configure.

 - Fix some pkglint.

Bump PKGREVISION to 4, because even though it didn't run and still
doesn't, it does build. :-|

diffstat:

 sysutils/tkdesk/Makefile                                        |   16 +-
 sysutils/tkdesk/distinfo                                        |   13 +-
 sysutils/tkdesk/patches/patch-aa                                |   41 ++-
 sysutils/tkdesk/patches/patch-aj                                |   20 +-
 sysutils/tkdesk/patches/patch-al                                |   45 ++-
 sysutils/tkdesk/patches/patch-libdesk_dsk__ls.c                 |  145 ++++++++++
 sysutils/tkdesk/patches/patch-libdesk_misc.c                    |  100 ++++++
 sysutils/tkdesk/patches/patch-libdesk_o__FileListbox.c          |   79 +++++
 sysutils/tkdesk/patches/patch-libdesk_ot.c                      |   76 +++++
 sysutils/tkdesk/patches/patch-netscape-remote_netscape-remote.c |   14 +
 10 files changed, 518 insertions(+), 31 deletions(-)

diffs (truncated from 669 to 300 lines):

diff -r 037f35644494 -r 06ff53976e19 sysutils/tkdesk/Makefile
--- a/sysutils/tkdesk/Makefile  Mon Jun 06 04:27:14 2022 +0000
+++ b/sysutils/tkdesk/Makefile  Mon Jun 06 05:11:58 2022 +0000
@@ -1,31 +1,29 @@
-# $NetBSD: Makefile,v 1.30 2020/08/17 20:20:09 leot Exp $
+# $NetBSD: Makefile,v 1.31 2022/06/06 05:11:58 dholland Exp $
 #
 
 DISTNAME=      tkdesk-2.0
 PKGNAME=       ${DISTNAME}p2
-PKGREVISION=   3
+PKGREVISION=   5
 CATEGORIES=    sysutils
 MASTER_SITES=  http://tkdesk.sourceforge.net/dist/
 
+PATCH_SITES=           http://tkdesk.sourceforge.net/patches/
+PATCHFILES=            ${DISTNAME}p1.patch ${DISTNAME}p2.patch
+PATCH_DIST_STRIP=      -p1
+
 MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
 HOMEPAGE=      http://tkdesk.sourceforge.net/
 COMMENT=       Graphical file manager
 
-PATCHFILES=            ${DISTNAME}p1.patch ${DISTNAME}p2.patch
-PATCH_DIST_STRIP=      -p1
-PATCH_SITES=           http://tkdesk.sourceforge.net/patches/
-
 USE_TOOLS+=    pax
 
 GNU_CONFIGURE=         YES
 CONFIGURE_ARGS+=       --with-tcl=${BUILDLINK_PREFIX.tcl}/lib  \
                        --with-tk=${BUILDLINK_PREFIX.tk}/lib    \
-                       --with-itcl=${BUILDLINK_PREFIX.tcl}/lib/itcl${ITCL_VERSION}     \
+                       --with-itcl=${BUILDLINK_PREFIX.tcl}/lib/itcl${ITCL_VERSION} \
                        --with-blt=${BUILDLINK_PREFIX.blt}/lib
 MAKE_ENV+=             LIB_RUNTIME_DIR=${BUILDLINK_PREFIX.tcl}/lib/itcl${ITCL_VERSION}
 
-CFLAGS+=       -DUSE_INTERP_RESULT
-
 DESTDIR_VARNAME=       INSTALL_ROOT
 INSTALLATION_DIRS+=    bin ${PKGMANDIR}/man1
 
diff -r 037f35644494 -r 06ff53976e19 sysutils/tkdesk/distinfo
--- a/sysutils/tkdesk/distinfo  Mon Jun 06 04:27:14 2022 +0000
+++ b/sysutils/tkdesk/distinfo  Mon Jun 06 05:11:58 2022 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.11 2021/10/26 11:20:18 nia Exp $
+$NetBSD: distinfo,v 1.12 2022/06/06 05:11:58 dholland Exp $
 
 BLAKE2s (tkdesk-2.0.tar.gz) = 95b665597f1700fbae03bd19ca880b108afabac8a38f6535459ff9574b75c2f4
 SHA512 (tkdesk-2.0.tar.gz) = 482f69b9181b69a0903eff9afeeceefda949d620d7986d796589221a0a201f720e33aae05a622f597eb1072def96ff178232e1f432bc45947d298e730f47155a
@@ -9,10 +9,15 @@
 BLAKE2s (tkdesk-2.0p2.patch) = a95322ec58e4fb1f6de9e489136c0d6c3d09c906f6d4deb3b6648c49dabd90fe
 SHA512 (tkdesk-2.0p2.patch) = 29171f1f706da9b2ecaf78a760138cfc70ed58a9630ce5e24a23cba9a68735a693c640e5e9378ce3f80dd919431b432b9e8afd3d544a73797d31957532d83802
 Size (tkdesk-2.0p2.patch) = 138282 bytes
-SHA1 (patch-aa) = d244a1e004247081b049156457d66c1952668a13
+SHA1 (patch-aa) = 13e1f7ed8b564774949498d2356c29a0ca23bcd1
 SHA1 (patch-ab) = 50e591e0732abf19bec531ba1667cadc6c4b24cf
 SHA1 (patch-ac) = 286a2bb4177431f87b778ed943cd57961aeb48ab
 SHA1 (patch-ae) = c09cd944af50c2a31020a7478c1568e847b0cb02
-SHA1 (patch-aj) = 42f4f44c8b5aff02bb409198fe96d42f987a165c
+SHA1 (patch-aj) = 72f8fdd5bf216fce0db937bfbb862ec540a28b96
 SHA1 (patch-ak) = 441a1eefd5872786981b25aa07482a8d6d9515aa
-SHA1 (patch-al) = 70a7a20f9e983ef1b31675631c5a7dd26e03b026
+SHA1 (patch-al) = d4f621554ae76d3ad061fe8c244e10633de4f367
+SHA1 (patch-libdesk_dsk__ls.c) = 1b5824d83b8665bc7b98fbd59fd2736ae17180a1
+SHA1 (patch-libdesk_misc.c) = a7e3e2d4b001b7528900a3ec663acbe62f5bbaaa
+SHA1 (patch-libdesk_o__FileListbox.c) = 90a19887846f869896d2aae8f17119a342b28cda
+SHA1 (patch-libdesk_ot.c) = e261153bcb876a0a30a1e2fd2854339d2b406446
+SHA1 (patch-netscape-remote_netscape-remote.c) = 3f6cda21fce514f8fbb14f066be23a479fc7e84f
diff -r 037f35644494 -r 06ff53976e19 sysutils/tkdesk/patches/patch-aa
--- a/sysutils/tkdesk/patches/patch-aa  Mon Jun 06 04:27:14 2022 +0000
+++ b/sysutils/tkdesk/patches/patch-aa  Mon Jun 06 05:11:58 2022 +0000
@@ -1,7 +1,12 @@
-$NetBSD: patch-aa,v 1.3 2006/10/14 02:18:37 rillig Exp $
+$NetBSD: patch-aa,v 1.4 2022/06/06 05:11:58 dholland Exp $
 
---- configure.orig     2004-04-14 05:39:47.000000000 +0200
-+++ configure  2006-10-14 04:17:03.000000000 +0200
+- Remove bashisms.
+- Fix itcl library names.
+- Fix BLT library names.
+- Avoid print from test(1) because ITCL_MAJOR_VERSION is never actually set.
+
+--- configure.orig     2004-04-14 03:39:47.000000000 +0000
++++ configure
 @@ -1430,7 +1430,7 @@ TK_LIB_STATIC=${TKCONF_PATH}/libtk${TK_V
  # Check for the TkStep libraries (if needed)...
  #
@@ -29,9 +34,12 @@
        { echo "$as_me:$LINENO: WARNING: you may be attempting to use TkDesk 2.x with an unsupported version of Tk.  Good luck.  Hope it works out for you." >&5
  echo "$as_me: WARNING: you may be attempting to use TkDesk 2.x with an unsupported version of Tk.  Good luck.  Hope it works out for you." >&2;}
     else
-@@ -1505,7 +1505,7 @@ echo $ECHO_N "checking version of Itcl..
+@@ -1503,9 +1503,9 @@ echo "${ECHO_T}$ITCLCONF_PATH/$ITCLCONF_
+ echo $ECHO_N "checking version of Itcl... $ECHO_C" >&6
+    echo "$as_me:$LINENO: result: $ITCL_VERSION" >&5
  echo "${ECHO_T}$ITCL_VERSION" >&6
-    if test "$ITCL_MAJOR_VERSION" -ne 3; then
+-   if test "$ITCL_MAJOR_VERSION" -ne 3; then
++   if test "${ITCL_MAJOR_VERSION:-3}" -ne 3; then
        echo
 -      if test "$ENABLE_UNSUPPORTED" == "yes" ; then
 +      if test "$ENABLE_UNSUPPORTED" = "yes" ; then
@@ -52,17 +60,28 @@
    fi
  fi
  
-@@ -1570,11 +1570,9 @@ else
-    BLT_LIB_SPEC="-L$BLT_LIB_PATH -lBLT"
-    BLT_LIB_STATIC=$BLT_LIB_PATH/libBLT.a
+@@ -1567,17 +1567,17 @@ if test -z "$BLT_LIB_PATH" ; then
+    echo "$as_me:$LINENO: result: ./blt" >&5
+ echo "${ECHO_T}./blt" >&6
+ else
+-   BLT_LIB_SPEC="-L$BLT_LIB_PATH -lBLT"
+-   BLT_LIB_STATIC=$BLT_LIB_PATH/libBLT.a
++   BLT_LIB_SPEC="-L$BLT_LIB_PATH -lBLT24"
++   BLT_LIB_STATIC=$BLT_LIB_PATH/libBLT24.a
     NEED_BLT_LIB=
 -   if test   ! -f $BLT_LIB_PATH/libBLT.a \
 -          -a ! -f $BLT_LIB_PATH/libBLT.so
-+   if test   ! -f $BLT_LIB_PATH/libBLT.a
++   if test   ! -f $BLT_LIB_PATH/libBLT24.a \
++          -a ! -f $BLT_LIB_PATH/libBLT24.so
     then
 -      if test   ! -f $BLT_LIB_PATH/lib/libBLT.a \
 -           -a ! -f $BLT_LIB_PATH/lib/libBLT.so
-+      if test   ! -f $BLT_LIB_PATH/lib/libBLT.a
++      if test   ! -f $BLT_LIB_PATH/lib/libBLT24.a \
++           -a ! -f $BLT_LIB_PATH/lib/libBLT24.so
        then
         echo
-        { { echo "$as_me:$LINENO: error: could not find libBLT.a or libBLT.so in $BLT_LIB_PATH or in $BLT_LIB_PATH/lib." >&5
+-       { { echo "$as_me:$LINENO: error: could not find libBLT.a or libBLT.so in $BLT_LIB_PATH or in $BLT_LIB_PATH/lib." >&5
++       { { echo "$as_me:$LINENO: error: could not find libBLT24.a or libBLT24.so in $BLT_LIB_PATH or in $BLT_LIB_PATH/lib." >&5
+ echo "$as_me: error: could not find libBLT.a or libBLT.so in $BLT_LIB_PATH or in $BLT_LIB_PATH/lib." >&2;}
+    { (exit 1); exit 1; }; }
+       else
diff -r 037f35644494 -r 06ff53976e19 sysutils/tkdesk/patches/patch-aj
--- a/sysutils/tkdesk/patches/patch-aj  Mon Jun 06 04:27:14 2022 +0000
+++ b/sysutils/tkdesk/patches/patch-aj  Mon Jun 06 05:11:58 2022 +0000
@@ -1,6 +1,9 @@
-$NetBSD: patch-aj,v 1.4 2014/02/22 07:53:47 obache Exp $
+$NetBSD: patch-aj,v 1.5 2022/06/06 05:11:58 dholland Exp $
 
---- libdesk/tixImgXpm.c.orig   2014-02-22 04:59:11.000000000 +0000
+- remove panic declaration (XXX: why?)
+- update for newer tcl
+
+--- libdesk/tixImgXpm.c.orig   2022-06-06 01:40:39.166611462 +0000
 +++ libdesk/tixImgXpm.c
 @@ -58,8 +58,6 @@
  #include "tkPort.h"*/
@@ -63,3 +66,16 @@
      *clientDataPtr = (ClientData) masterPtr;
      return TCL_OK;
  }
+@@ -1152,9 +1158,11 @@ ImgXpmCmd(clientData, interp, argc, argv
+     size_t length;
+ 
+     if (argc < 2) {
+-      sprintf(interp->result,
++      char buf[128];
++      snprintf(buf, sizeof(buf),
+           "wrong # args: should be \"%.50s option ?arg arg ...?\"",
+           argv[0]);
++      Tcl_SetResult(interp, buf, TCL_VOLATILE);
+       return TCL_ERROR;
+     }
+     c = argv[1][0];
diff -r 037f35644494 -r 06ff53976e19 sysutils/tkdesk/patches/patch-al
--- a/sysutils/tkdesk/patches/patch-al  Mon Jun 06 04:27:14 2022 +0000
+++ b/sysutils/tkdesk/patches/patch-al  Mon Jun 06 05:11:58 2022 +0000
@@ -1,7 +1,14 @@
-$NetBSD: patch-al,v 1.1 2006/10/14 02:18:37 rillig Exp $
+$NetBSD: patch-al,v 1.2 2022/06/06 05:11:58 dholland Exp $
+
+- Remove bashisms.
+- Fix BLT library names.
+- Avoid print from test(1) because ITCL_MAJOR_VERSION is never actually set.
 
---- configure.in.orig  2004-04-14 05:39:12.000000000 +0200
-+++ configure.in       2006-10-14 04:16:47.000000000 +0200
+Caution: it appears that not all of the direct changes to configure in
+its own patch (patch-aa) are reflected here.
+
+--- configure.in.orig  2004-04-14 03:39:12.000000000 +0000
++++ configure.in
 @@ -107,7 +107,7 @@ TK_LIB_STATIC=${TKCONF_PATH}/libtk${TK_V
  # Check for the TkStep libraries (if needed)...
  #
@@ -29,12 +36,40 @@
        AC_MSG_WARN([you may be attempting to use TkDesk 2.x with an unsupported version of Tk.  Good luck.  Hope it works out for you.])
     else
        AC_MSG_ERROR([TkDesk version 2.x requires Tk version 8 or higher.  Please upgrade your Tk or, if that is not possible, you might prefer to use TkDesk version 1.2 instead.])
-@@ -167,7 +167,7 @@ if test $success = 1 ; then
+@@ -165,9 +165,9 @@ if test $success = 1 ; then
+ 
+    AC_MSG_CHECKING(version of Itcl)
     AC_MSG_RESULT($ITCL_VERSION)
-    if test "$ITCL_MAJOR_VERSION" -ne 3; then
+-   if test "$ITCL_MAJOR_VERSION" -ne 3; then
++   if test "${ITCL_MAJOR_VERSION:-3}" -ne 3; then
        echo
 -      if test "$ENABLE_UNSUPPORTED" == "yes" ; then
 +      if test "$ENABLE_UNSUPPORTED" = "yes" ; then
         AC_MSG_WARN([you may be attempting to use TkDesk 2.x with an unsupported version of Itcl.  Good luck.  Hope it works out for you.])
        else
         AC_MSG_ERROR([found Itcl, but it appears to be the wrong version.  TkDesk 2.x requires itcl 3.x to be installed.  Please get it from: http://www.incrtcl.sourceforge.net.])
+@@ -222,17 +222,17 @@ if test -z "$BLT_LIB_PATH" ; then
+    NEED_BLT_LIB=lib_blt
+    AC_MSG_RESULT(./blt)
+ else
+-   BLT_LIB_SPEC="-L$BLT_LIB_PATH -lBLT"
+-   BLT_LIB_STATIC=$BLT_LIB_PATH/libBLT.a
++   BLT_LIB_SPEC="-L$BLT_LIB_PATH -lBLT24"
++   BLT_LIB_STATIC=$BLT_LIB_PATH/libBLT24.a
+    NEED_BLT_LIB=
+-   if test   ! -f $BLT_LIB_PATH/libBLT.a \
+-          -a ! -f $BLT_LIB_PATH/libBLT.so
++   if test   ! -f $BLT_LIB_PATH/libBLT24.a \
++          -a ! -f $BLT_LIB_PATH/libBLT24.so
+    then
+-      if test   ! -f $BLT_LIB_PATH/lib/libBLT.a \
+-           -a ! -f $BLT_LIB_PATH/lib/libBLT.so
++      if test   ! -f $BLT_LIB_PATH/lib/libBLT24.a \
++           -a ! -f $BLT_LIB_PATH/lib/libBLT24.so
+       then
+        echo
+-       AC_MSG_ERROR([could not find libBLT.a or libBLT.so in $BLT_LIB_PATH or in $BLT_LIB_PATH/lib.])
++       AC_MSG_ERROR([could not find libBLT24.a or libBLT24.so in $BLT_LIB_PATH or in $BLT_LIB_PATH/lib.])
+       else
+        BLT_LIB_PATH=$BLT_LIB_PATH/lib
+       fi
diff -r 037f35644494 -r 06ff53976e19 sysutils/tkdesk/patches/patch-libdesk_dsk__ls.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/tkdesk/patches/patch-libdesk_dsk__ls.c   Mon Jun 06 05:11:58 2022 +0000
@@ -0,0 +1,145 @@
+$NetBSD: patch-libdesk_dsk__ls.c,v 1.1 2022/06/06 05:11:58 dholland Exp $
+
+Update for Tcl 8.6 (?)
+Don't run off the end of strings.
+
+--- libdesk/dsk_ls.c~  2004-04-14 02:20:01.000000000 +0000
++++ libdesk/dsk_ls.c
+@@ -226,7 +226,7 @@ char *path;
+ #endif
+     
+     strncpy (par_path, path, MAXPATHLEN);
+-    par_path[MAXPATHLEN] = (char) NULL;
++    par_path[MAXPATHLEN - 1] = 0;
+     if (process_cmdline (argc, argv) != TCL_OK)
+       return (TCL_ERROR);
+ 
+@@ -374,8 +374,8 @@ FILE_ENTRY *fe;
+ 
+     if (S_ISLNK(fe->sb.st_mode)) {
+       strcpy (linkname, " -> ");
+-      len = readlink (fe->path, linkname + 4, MAXPATHLEN - 4);
+-      *(linkname + 4 + len) = (char) NULL;
++      len = readlink (fe->path, linkname + 4, MAXPATHLEN - 5);
++      *(linkname + 4 + len) = 0;
+       return (linkname);
+     } else {
+       return (strcpy (linkname, ""));
+@@ -1223,7 +1223,8 @@ char *path;
+     fprintf (stderr, "Opening %s ...\n", path);
+ #endif
+     if ((dp = opendir (path)) == NULL) {
+-      sprintf (dsk_interp->result, "no such file or dir: %s", path);
++      snprintf(buffer, MAXPATHLEN, "no such file or dir: %s", path);
++      Tcl_SetResult(dsk_interp, buffer, TCL_VOLATILE);
+       return (TCL_ERROR);
+     }
+ 
+@@ -1240,18 +1241,15 @@ char *path;
+           if (   (dir->d_name[1] == '\0')
+               || (dir->d_name[1] == '.' && dir->d_name[2] == '\0')) {
+               if (!par_no_points) {
+-                  strcpy (buffer, path);
+-                  strcat (buffer, dir->d_name);
++                  snprintf(buffer, MAXPATHLEN, "%s%s", path, dir->d_name);
+                   new_file_entry (buffer);
+               }
+           } else if (par_show_all) {
+-              strcpy (buffer, path);
+-              strcat (buffer, dir->d_name);
++              snprintf(buffer, MAXPATHLEN, "%s%s", path, dir->d_name);
+               new_file_entry (buffer);
+           }
+       } else {
+-          strcpy (buffer, path);
+-            strcat (buffer, dir->d_name);
++          snprintf(buffer, MAXPATHLEN, "%s%s", path, dir->d_name);
+           if (!par_only_directories) {
+               new_file_entry (buffer);
+           } else {
+@@ -1280,16 +1278,19 @@ int read_file_lists ()
+ {



Home | Main Index | Thread Index | Old Index