Subject: pkg/29026: comms/minicom build failure on MacOS X 10.1.x, 10.2.x
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <jdbaker@mylinuxisp.com>
List: pkgsrc-bugs
Date: 01/20/2005 22:01:00
>Number:         29026
>Category:       pkg
>Synopsis:       comms/minicom build failure on MacOS X 10.1.x, 10.2.x
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jan 20 22:01:00 +0000 2005
>Originator:     John D. Baker
>Release:        N/A (MacOS X 10.2.8)
>Organization:
>Environment:
Darwin pm8500.technoskunk.fur 6.8 Darwin Kernel Version 6.8: Wed Sep 10 15:20:55 PDT 2003; root:xnu/xnu-344.49.obj~2/RELEASE_PPC  Power Macintosh powerpc

>Description:
Several errors.

First, /usr/pkgsrc/comms/minicom/work/minicom-1.83.1/src/windiv.c
needs to include <sys/types.h> or <sys/dirent.h> will fail:

cc  -no-cpp-precomp -I/usr/pkg/include -Wall -D_POSIX -D_BSD43 -D_SELECT -D_DCDFLOW -D_HISTORY -D_HAVE_MACROS -D_SEARCH_HISTORY -D_I18N_ -DBINDIR=\"/usr/pkg/bin\" -DLIBDIR=\"/usr/pkg/etc/minicom\"  -no-cpp-precomp -I/usr/pkg/include  -c -o windiv.o windiv.c
In file included from /usr/include/dirent.h:64,
                 from windiv.c:15:
/usr/include/sys/dirent.h:73: error: parse error before "u_int32_t"
/usr/include/sys/dirent.h:75: error: parse error before "d_type"
/usr/include/sys/dirent.h:76: error: parse error before "d_namlen"
/usr/include/sys/dirent.h:83: error: parse error before '}' token
gnumake: *** [windiv.o] Error 1
*** Error code 2

Stop.
bmake: stopped in /usr/pkgsrc/comms/minicom


Second:  problem with internationalization language files:

/usr/bin/gnumake -C po
xgettext --default-domain=minicom \
          --add-comments --keyword=_ --keyword=N_ ../main.c ../minicom.c ../config.c ../updown.c ../dial.c ../help.c ../rwconf.c ../file.c ../getsdir.c ../ipc.c ../script.c ../windiv.c
if cmp -s minicom.po minicom.pot; then \
    rm -f minicom.po; \
else \
    mv minicom.po minicom.pot; \
fi
msgfmt -o pt_BR.mo pt_BR.po
msgfmt -o fi_FI.mo fi_FI.po
msgfmt -o ja.mo ja.po
msgfmt: ja.po: warning: Charset "euc-japanese" is not a portable encoding name.
                        Message conversion to user's charset might not work.
cc ujis2sjis.c -o ujis2sjis
./ujis2sjis <ja.po >ja_JP.SJIS.po
msgfmt -o ja_JP.SJIS.mo ja_JP.SJIS.po
msgfmt: ja_JP.SJIS.po: warning: Charset "euc-japanese" is not a portable encoding name.
                                Message conversion to user's charset might not work.
msgfmt -o fr.mo fr.po
msgfmt -o pl.mo pl.po
msgfmt -o ko.mo ko.po
ko.po:131:9: invalid multibyte sequence
ko.po:917:31: invalid multibyte sequence
ko.po:1095:14: invalid multibyte sequence
ko.po:1095:21: invalid multibyte sequence
ko.po:1992:10: invalid multibyte sequence
ko.po:1992:17: invalid multibyte sequence
ko.po:2039:10: invalid multibyte sequence
ko.po:2039:17: invalid multibyte sequence
msgfmt: found 8 fatal errors
gnumake[1]: *** [ko.mo] Error 1
gnumake: *** [po] Error 2
*** Error code 2

Stop.
bmake: stopped in /usr/pkgsrc/comms/minicom



Third:  installation fails as shown below:

/usr/bin/sudo Password:
Group 'dialer' already exists.
User 'uucp' already exists.
# this script creates a link from your comm port to /dev/modem
/bin/sh /usr/pkgsrc/comms/minicom/scripts/create-dev-link

Minicom will be installed mode 4511 (setuid) owner uucp, and group dialer.

Is this ok? [y] 
/usr/pkgsrc/comms/minicom/scripts/create-dev-link: line 17: syntax error near unexpected token `else'
/usr/pkgsrc/comms/minicom/scripts/create-dev-link: line 17: `   else'
*** Error code 2

Stop.
bmake: stopped in /usr/pkgsrc/comms/minicom

>How-To-Repeat:
On a MacOS X 10.1.x or 10.2.x system with the Developer Tools installed:

Change directory to where you have your pkgsrc installed

cd .../pkgsrc/comms/minicom
bmake install

>Fix:
cd .../pkgsrc/comms/minicom
bmake patch

Fix for first problem:

--- work/minicom-1.83.1/src/windiv.c.orig       Thu Jan 20 15:08:46 2005
+++ work/minicom-1.83.1/src/windiv.c    Thu Jan 20 15:09:30 2005
@@ -14,2 +14,3 @@
  */
+#include <sys/types.h>
 #include <dirent.h>


Workaround for second problem:  disable internationalization:

--- PLIST.orig  Thu Jan 20 15:21:22 2005
+++ PLIST       Thu Jan 20 15:21:53 2005
@@ -48,9 +48,9 @@
 share/examples/minicom/minicom.users
-${PKGLOCALEDIR}/locale/fi_FI/LC_MESSAGES/minicom.mo
-${PKGLOCALEDIR}/locale/fr/LC_MESSAGES/minicom.mo
-${PKGLOCALEDIR}/locale/ja/LC_MESSAGES/minicom.mo
-${PKGLOCALEDIR}/locale/ja_JP.SJIS/LC_MESSAGES/minicom.mo
-${PKGLOCALEDIR}/locale/ko/LC_MESSAGES/minicom.mo
-${PKGLOCALEDIR}/locale/pl/LC_MESSAGES/minicom.mo
-${PKGLOCALEDIR}/locale/pt_BR/LC_MESSAGES/minicom.mo
+@comment ${PKGLOCALEDIR}/locale/fi_FI/LC_MESSAGES/minicom.mo
+@comment ${PKGLOCALEDIR}/locale/fr/LC_MESSAGES/minicom.mo
+@comment ${PKGLOCALEDIR}/locale/ja/LC_MESSAGES/minicom.mo
+@comment ${PKGLOCALEDIR}/locale/ja_JP.SJIS/LC_MESSAGES/minicom.mo
+@comment ${PKGLOCALEDIR}/locale/ko/LC_MESSAGES/minicom.mo
+@comment ${PKGLOCALEDIR}/locale/pl/LC_MESSAGES/minicom.mo
+@comment ${PKGLOCALEDIR}/locale/pt_BR/LC_MESSAGES/minicom.mo
 @dirrm share/examples/minicom

--- work/minicom-1.83.1/src/Makefile.postpatch  Thu Jan 20 15:40:46 2005
+++ work/minicom-1.83.1/src/Makefile    Thu Jan 20 15:42:07 2005
@@ -42,3 +42,3 @@
 #
-OPFLAGS        = -D_HISTORY -D_HAVE_MACROS -D_SEARCH_HISTORY -D_I18N_
+OPFLAGS        = -D_HISTORY -D_HAVE_MACROS -D_SEARCH_HISTORY # -D_I18N_
 
@@ -46,3 +46,3 @@
 # the localized strings
-PO     = po
+#PO    = po
 
@@ -187,3 +187,3 @@
 LFLAGS = $(LDFLAGS)
-LIBS   = -lintl -lcurses -ltermcap
+LIBS   = -lcurses -ltermcap
 CC     = cc
@@ -224,4 +224,4 @@
 
-po: dummy
-               $(MAKE) -C po
+#po: dummy
+#              $(MAKE) -C po
 
@@ -277,3 +277,3 @@
 
-install:       $(PROGS)
+install2:      $(PROGS)
                $(MAKE) -C po install R=$(R)
@@ -281,3 +281,3 @@
 
-install2:      $(PROGS)
+install:       $(PROGS)
                sh install.sh $(R)$(EGDIR) $(R)$(BINDIR) $(R)$(MANDIR) $(R)$(DOCDIR)
@@ -286,3 +286,3 @@
                rm -f *.o *~ minicom keyserv runscript ascii-xfr
-               $(MAKE) -C po clean
+#              $(MAKE) -C po clean
 

Third, patch scripts/create-dev-link:

--- scripts/create-dev-link.orig        Thu Jan 20 15:50:04 2005
+++ scripts/create-dev-link     Thu Jan 20 15:50:37 2005
@@ -15,3 +15,3 @@
        if [ ${fooz} = Y -o ${fooz} = y -o ${fooz} = yes ] ; then
-               # ok to continue
+               echo "" # ok to continue
        else