NetBSD Problem Report #36518
From martin@duskware.de Wed Jun 20 08:11:15 2007
Return-Path: <martin@duskware.de>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
by narn.NetBSD.org (Postfix) with ESMTP id D895563B908
for <gnats-bugs@gnats.netbsd.org>; Wed, 20 Jun 2007 08:11:14 +0000 (UTC)
Message-Id: <20070620075801.9448963B882@narn.NetBSD.org>
Date: Wed, 20 Jun 2007 07:58:01 +0000 (UTC)
From: pkgsrc@blackmouse.biz
Reply-To: pkgsrc@blackmouse.biz
To: netbsd-bugs-owner@NetBSD.org
Subject: pkg_select compile error on Linux
X-Send-Pr-Version: www-1.0
>Number: 36518
>Category: pkg
>Synopsis: pkg_select compile error on Linux
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: imil
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jun 20 08:15:00 +0000 2007
>Closed-Date: Tue Jan 16 15:58:43 +0000 2018
>Last-Modified: Tue Jan 16 15:58:43 +0000 2018
>Originator: Ondrej Tuma
>Release: current
>Organization:
Blackmouse
>Environment:
Linux ip1 2.6.20.1 #3 Thu Mar 8 18:42:01 CET 2007 i686 athlon-4 i386 GNU/Linux
>Description:
main.c:40: error: syntax error before string constant
main.c:40: warning: type defaults to `int' in declaration of `__RCSID'
main.c:40: warning: function declaration isn't a prototype
main.c:40: warning: data definition has no type or storage class
*** Error code 1
here is full log:
http://linux.blackmouse.biz/pub/blackmouse-current/i586/pkgstat/20070620.0727/pkgtools/pkg_select/.broken.html
>How-To-Repeat:
bmake
>Fix:
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: pkg-manager->linux-pkg-people
Responsible-Changed-By: wiz@netbsd.org
Responsible-Changed-When: Wed, 20 Jun 2007 22:13:45 +0000
Responsible-Changed-Why:
Linux pkgsrc problem.
From: "Frank W. Josellis" <frank@dynamical-systems.org>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: pkg/36518: pkg_select compile error on Linux
Date: Tue, 18 Dec 2007 16:32:51 +0100 (CET)
As I would appreciate to have this tool available on Linux, I did some
patching which you can find attached below. Let me give a few additional
remarks on this:
(1) The cast '(const char*)NULL' in ftpio.c is not a Linux issue, it has
been included to prevent Dragonfly's gcc-4.1.2 from stopping here and
complaining about missing sentinel.
(2) Except for the diffs in file.c, any modifications were done to cope
with build errors on Linux. The changes for loadfile() in file.c actually
fix a bug which appears to be graciously tolerated by BSD but results in a
memory corruption for Linux:
---
*** glibc detected *** pkg_select: free(): invalid next size (fast): 0x08059008 ***
======= Backtrace: =========
/lib/libc.so.6[0xb7dc4bcd]
/lib/libc.so.6(cfree+0x90)[0xb7dc8350]
pkg_select[0x804c788]
pkg_select[0x8051b85]
pkg_select[0x804a9bf]
/lib/libc.so.6(__libc_start_main+0xdc)[0xb7d6f36c]
pkg_select[0x8049b21]
======= Memory map: ========
08048000-08057000 r-xp 00000000 03:07 1324032 /usr/pkg/bin/pkg_select
08057000-08058000 rw-p 0000e000 03:07 1324032 /usr/pkg/bin/pkg_select
08058000-0809b000 rw-p 08058000 00:00 0 [heap]
b7c00000-b7c21000 rw-p b7c00000 00:00 0
b7c21000-b7d00000 ---p b7c21000 00:00 0
b7d49000-b7d53000 r-xp 00000000 03:07 1221693 /usr/lib/libgcc_s.so.1
b7d53000-b7d54000 rw-p 00009000 03:07 1221693 /usr/lib/libgcc_s.so.1
b7d54000-b7d55000 rw-p b7d54000 00:00 0
b7d55000-b7d57000 r-xp 00000000 03:07 570208 /lib/libdl-2.7.so
b7d57000-b7d58000 r--p 00001000 03:07 570208 /lib/libdl-2.7.so
b7d58000-b7d59000 rw-p 00002000 03:07 570208 /lib/libdl-2.7.so
b7d59000-b7ea1000 r-xp 00000000 03:07 570207 /lib/libc-2.7.so
b7ea1000-b7ea3000 r--p 00148000 03:07 570207 /lib/libc-2.7.so
b7ea3000-b7ea4000 rw-p 0014a000 03:07 570207 /lib/libc-2.7.so
b7ea4000-b7ea7000 rw-p b7ea4000 00:00 0
b7ea7000-b7ee0000 r-xp 00000000 03:07 570092 /lib/libncurses.so.5.6
b7ee0000-b7ee8000 rw-p 00039000 03:07 570092 /lib/libncurses.so.5.6
b7ee8000-b7ee9000 rw-p b7ee8000 00:00 0
b7ef8000-b7ef9000 r-xp b7ef8000 00:00 0 [vdso]
b7ef9000-b7f15000 r-xp 00000000 03:07 570230 /lib/ld-2.7.so
b7f15000-b7f16000 r--p 0001b000 03:07 570230 /lib/ld-2.7.so
b7f16000-b7f17000 rw-p 0001c000 03:07 570230 /lib/ld-2.7.so
---
(3) Depending on the particular Linux distribution, one may still get an
error if the contents of /usr/share/groff are different from what is
expected by nbcompat when trying to format a catpage. The catpage isn't
installed anyway, and that's ok. My suggestion would be either to avoid
this step completely or to use groff from pkgsrc, if present. But that's a
problem for nbcompat rather than pkg_select.
Regards,
Frank Josellis
--- pkg_select-20050817nb2.patch begins here ---
diff -Nur pkg_select.BAK/Makefile pkg_select/Makefile
--- pkg_select.BAK/Makefile 2007-03-17 08:06:24.000000000 +0100
+++ pkg_select/Makefile 2007-12-18 13:12:13.000000000 +0100
@@ -20,6 +20,8 @@
CONF_FILES= ${EXAMPLEDIR}/${PKGBASE}.conf.example \
${PKG_SYSCONFDIR}/${PKGBASE}.conf
+USE_FEATURES= nbcompat
+
SUBST_CLASSES+= path
SUBST_STAGE.path= pre-configure
SUBST_MESSAGE.path= Adjusting path.
diff -Nur pkg_select.BAK/distinfo pkg_select/distinfo
--- pkg_select.BAK/distinfo 2007-03-17 08:06:25.000000000 +0100
+++ pkg_select/distinfo 2007-12-18 13:12:13.000000000 +0100
@@ -6,3 +6,8 @@
SHA1 (patch-aa) = c59ecd6d4cfdde450aac1f2794ab7d42da8cbc07
SHA1 (patch-ab) = a8750c8a5603fa63e0fc17c4be3db7cd340e75b7
SHA1 (patch-ac) = 2ac66f0222d8f0f80af51eac1878d9f9e97dbbcb
+SHA1 (patch-ad) = a0600588eec2d622ebdf93a787d14b5a76e47417
+SHA1 (patch-ae) = 0e232a59599386a5704f84a3bdf8dd37762c5b2b
+SHA1 (patch-af) = 5300af0b9f91ed7855ca7da7f9b9c764b74af578
+SHA1 (patch-ag) = adb0e919d4364e10fc122d5643a4c608d0faf213
+SHA1 (patch-ah) = 9a38e36b9a9364d67f1331c7a82cb5584b5371fc
diff -Nur pkg_select.BAK/patches/patch-ad pkg_select/patches/patch-ad
--- pkg_select.BAK/patches/patch-ad 1970-01-01 01:00:00.000000000 +0100
+++ pkg_select/patches/patch-ad 2007-12-18 13:12:13.000000000 +0100
@@ -0,0 +1,12 @@
+--- curses_helpers.c.orig 2005-05-12 13:03:09.000000000 +0200
++++ curses_helpers.c 2007-12-18 12:56:28.000000000 +0100
+@@ -298,7 +298,8 @@
+ mvwprintw(popup, y, x + dispw + 1, " ");
+ }
+
+- strlcpy(dispbuf, (char *) (buf + offset), dispw + 1);
++ strncpy(dispbuf, (char *) (buf + offset), dispw);
++ dispbuf[dispw] = '\0';
+ mvwprintw(popup, y, x + 1, fmt, dispbuf);
+ wmove(popup, y, x + 1 + pos);
+
diff -Nur pkg_select.BAK/patches/patch-ae pkg_select/patches/patch-ae
--- pkg_select.BAK/patches/patch-ae 1970-01-01 01:00:00.000000000 +0100
+++ pkg_select/patches/patch-ae 2007-12-18 13:12:13.000000000 +0100
@@ -0,0 +1,19 @@
+--- ftpio.c.orig 2005-05-12 12:35:36 +0200
++++ ftpio.c 2007-12-16 12:11:17 +0100
+@@ -1,6 +1,6 @@
+ /* $NetBSD: ftpio.c,v 1.61 2003/12/20 02:37:49 grant Exp $ */
+
+-#include <sys/cdefs.h>
++#include <nbcompat.h>
+ #ifndef lint
+ __RCSID("$NetBSD: ftpio.c,v 1.61 2003/12/20 02:37:49 grant Exp $");
+ #endif
+@@ -490,7 +490,7 @@
+ /* we deal with curses, don't really want
+ stderr to mess display */
+ close(2);
+- rc1 = execlp(FTP_CMD, argv0, "-detv", base, NULL);
++ rc1 = execlp(FTP_CMD, argv0, "-detv", base, (const char*)NULL);
+ warn("setupCoproc: execlp() failed");
+ exit(1);
+ break;
diff -Nur pkg_select.BAK/patches/patch-af pkg_select/patches/patch-af
--- pkg_select.BAK/patches/patch-af 1970-01-01 01:00:00.000000000 +0100
+++ pkg_select/patches/patch-af 2007-12-18 13:12:13.000000000 +0100
@@ -0,0 +1,11 @@
+--- main.c.orig 2005-08-17 10:16:19.000000000 +0200
++++ main.c 2007-12-16 01:43:32.000000000 +0100
+@@ -32,7 +32,7 @@
+ * $Id: main.c,v 1.39 2005/08/17 08:16:19 imil Exp $
+ */
+
+-#include <sys/cdefs.h>
++#include <nbcompat.h>
+ #ifndef lint
+ #if 0
+ static char *rcsid = "$Id: main.c,v 1.39 2005/08/17 08:16:19 imil Exp $";
diff -Nur pkg_select.BAK/patches/patch-ag pkg_select/patches/patch-ag
--- pkg_select.BAK/patches/patch-ag 1970-01-01 01:00:00.000000000 +0100
+++ pkg_select/patches/patch-ag 2007-12-18 13:12:13.000000000 +0100
@@ -0,0 +1,11 @@
+--- parsedirs.c.orig 2005-02-28 12:49:44.000000000 +0100
++++ parsedirs.c 2007-12-16 01:50:20.000000000 +0100
+@@ -34,7 +34,7 @@
+
+ #include "pkg_select.h"
+
+-#if __NetBSD__
++#if __NetBSD__ || __linux__
+ #define DIRENT const struct dirent
+ #else
+ #define DIRENT struct dirent
diff -Nur pkg_select.BAK/patches/patch-ah pkg_select/patches/patch-ah
--- pkg_select.BAK/patches/patch-ah 1970-01-01 01:00:00.000000000 +0100
+++ pkg_select/patches/patch-ah 2007-12-18 13:12:13.000000000 +0100
@@ -0,0 +1,23 @@
+--- file.c.orig 2005-03-09 12:30:07.000000000 +0100
++++ file.c 2007-12-18 12:57:44.000000000 +0100
+@@ -156,10 +156,7 @@
+ if (len == 0)
+ return(NULL);
+
+- XMALLOC(lfile, ++len * sizeof(char *));
+-
+- for (i = 0; i < len; i++)
+- lfile[i] = NULL;
++ XMALLOC(lfile, (len + 1) * sizeof(char *));
+
+ if ((fp = fopen(path, "r")) == NULL)
+ err(1, "fopen");
+@@ -167,7 +164,7 @@
+ for (i = 0; fgets(buf, MAXLEN, fp) && (i < len); i++)
+ XSTRDUP(lfile[i], buf);
+
+- lfile[i] = NULL;
++ lfile[len] = NULL;
+
+ fclose(fp);
+
--- pkg_select-20050817nb2.patch ends here ---
From: David Holland <dholland-bugs@netbsd.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: pkg/36518: pkg_select compile error on Linux
Date: Sat, 8 Mar 2008 07:12:09 +0000
Also see pkg/37166.
Responsible-Changed-From-To: linux-pkg-people->imil
Responsible-Changed-By: bsiegert@NetBSD.org
Responsible-Changed-When: Sat, 30 Dec 2017 18:29:39 +0000
Responsible-Changed-Why:
Over to maintainer.
State-Changed-From-To: open->feedback
State-Changed-By: bsiegert@NetBSD.org
State-Changed-When: Sat, 30 Dec 2017 18:29:39 +0000
State-Changed-Why:
A variety of pkg_select bugs have been fixed.
Can you check if this is still a problem?
State-Changed-From-To: feedback->closed
State-Changed-By: bsiegert@NetBSD.org
State-Changed-When: Tue, 16 Jan 2018 15:58:43 +0000
State-Changed-Why:
Submitter email address bounces, assuming fixed.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.