From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Jan 17 16:10:03 2014 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DFA02BA1 for ; Fri, 17 Jan 2014 16:10:02 +0000 (UTC) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BF352117E for ; Fri, 17 Jan 2014 16:10:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id s0HGA2Op010664 for ; Fri, 17 Jan 2014 16:10:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id s0HGA2f2010663; Fri, 17 Jan 2014 16:10:02 GMT (envelope-from gnats) Date: Fri, 17 Jan 2014 16:10:02 GMT Message-Id: <201401171610.s0HGA2f2010663@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: KATO Tsuguru Subject: Re: ports/185696: textproc/sdcv: Fix build with clang X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: KATO Tsuguru List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jan 2014 16:10:03 -0000 The following reply was made to PR ports/185696; it has been noted by GNATS. From: KATO Tsuguru To: bug-followup@FreeBSD.org Cc: Subject: Re: ports/185696: textproc/sdcv: Fix build with clang Date: Sat, 18 Jan 2014 00:58:05 +0900 This is a multi-part message in MIME format. --Multipart=_Sat__18_Jan_2014_00_58_05_+0900_u8zpXt5RMXthaUJ7 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Remake of the patch against current tree. --Multipart=_Sat__18_Jan_2014_00_58_05_+0900_u8zpXt5RMXthaUJ7 Content-Type: text/x-diff; name="textproc_sdcv.diff" Content-Disposition: attachment; filename="textproc_sdcv.diff" Content-Transfer-Encoding: 7bit diff -urN /usr/ports/textproc/sdcv/Makefile textproc/sdcv/Makefile --- /usr/ports/textproc/sdcv/Makefile 2014-01-18 00:20:35.000000000 +0900 +++ textproc/sdcv/Makefile 2014-01-18 00:00:00.000000000 +0900 @@ -10,33 +10,33 @@ MAINTAINER= ports@FreeBSD.org COMMENT= Text-based utility for work with dictionaries in StarDict's format -OPTIONS_DEFINE= NLS +LICENSE= GPLv2 # (or later) USE_BZIP2= yes -GNU_CONFIGURE= yes -USE_AUTOTOOLS= libtool +USES= gettext pkgconfig readline USE_GNOME= glib20 -USES= pkgconfig iconv +USE_AUTOTOOLS= libtoolize aclocal automake autoconf +LIBTOOLIZE_ARGS=--copy --force +ACLOCAL_ARGS= --automake-acdir=${ACLOCAL_DIR} -I m4 +AUTOMAKE_ARGS= --add-missing --copy + SUB_FILES= pkg-message -NLS_USES= gettext -NLS_CPPFLAGS= -I${LOCALBASE}/include -NLS_LDFLAGS= -L${LOCALBASE}/lib -NLS_CONFIGURE_ENABLE= nls +CPPFLAGS+= -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib post-patch: - @${REINPLACE_CMD} -e 's|/usr/share|${PREFIX}/share|g' \ - ${WRKSRC}/doc/sdcv.1 - @${REINPLACE_CMD} -e '1425 s, install-data,,' \ - ${WRKSRC}/po/Makefile.in.in - @${REINPLACE_CMD} -e 's, getopt.h,,g' ${WRKSRC}/src/Makefile.in - @${REINPLACE_CMD} -e '146 s|()|(int, char * const [], const char *)|g' \ - ${WRKSRC}/src/getopt.h - @${REINPLACE_CMD} -e '516 s|sizeof|(guint32)sizeof|g' \ - ${WRKSRC}/src/lib/lib.cpp - @${REINPLACE_CMD} -e 's|/usr/share|${PREFIX}/share|g' \ - ${WRKSRC}/src/sdcv.cpp - @${REINPLACE_CMD} -e 's,@mandir@/uk,@mandir@,' \ - ${WRKSRC}/doc/uk/Makefile.in +.for i in doc/sdcv.1 src/sdcv.cpp + @${REINPLACE_CMD} -e \ + 's|/usr/share|${PREFIX}/share|' ${WRKSRC}/${i} +.endfor + @${REINPLACE_CMD} -e \ + 's|@mandir@/uk|@mandir@|' ${WRKSRC}/doc/uk/Makefile.am + @${REINPLACE_CMD} -e \ + 's|getopt1.c getopt.h||' ${WRKSRC}/src/Makefile.am + +pre-configure: + @${RM} -f ${WRKSRC}/m4/gettext.m4 + @${RM} -f ${WRKSRC}/src/getopt.h .include diff -urN /usr/ports/textproc/sdcv/files/patch-src__lib__lib.cpp textproc/sdcv/files/patch-src__lib__lib.cpp --- /usr/ports/textproc/sdcv/files/patch-src__lib__lib.cpp 1970-01-01 09:00:00.000000000 +0900 +++ textproc/sdcv/files/patch-src__lib__lib.cpp 2014-01-18 00:00:00.000000000 +0900 @@ -0,0 +1,27 @@ +--- src/lib/lib.cpp.orig ++++ src/lib/lib.cpp +@@ -496,9 +496,13 @@ + entries[i].keystr=p; + len=strlen(p); + p+=len+1; +- entries[i].off=g_ntohl(*reinterpret_cast(p)); ++ /* ++ * Can not use typecasting here, because *data does not have ++ * to be alligned and unalligned access fails on some architectures. ++ */ ++ entries[i].off=((unsigned char)p[0] << 24) | ((unsigned char)p[1] << 16) | ((unsigned char)p[2] << 8) | (unsigned char)p[3]; + p+=sizeof(guint32); +- entries[i].size=g_ntohl(*reinterpret_cast(p)); ++ entries[i].size=((unsigned char)p[0] << 24) | ((unsigned char)p[1] << 16) | ((unsigned char)p[2] << 8) | (unsigned char)p[3]; + p+=sizeof(guint32); + } + } +@@ -513,7 +517,7 @@ + { + fseek(idxfile, wordoffset[page_idx], SEEK_SET); + guint32 page_size=wordoffset[page_idx+1]-wordoffset[page_idx]; +- fread(wordentry_buf, std::min(sizeof(wordentry_buf), page_size), 1, idxfile); //TODO: check returned values, deal with word entry that strlen>255. ++ fread(wordentry_buf, std::min(sizeof(wordentry_buf), (size_t)page_size), 1, idxfile); //TODO: check returned values, deal with word entry that strlen>255. + return wordentry_buf; + } + diff -urN /usr/ports/textproc/sdcv/files/patch-src__lib__mapfile.hpp textproc/sdcv/files/patch-src__lib__mapfile.hpp --- /usr/ports/textproc/sdcv/files/patch-src__lib__mapfile.hpp 1970-01-01 09:00:00.000000000 +0900 +++ textproc/sdcv/files/patch-src__lib__mapfile.hpp 2014-01-18 00:00:00.000000000 +0900 @@ -0,0 +1,12 @@ +--- src/lib/mapfile.hpp.orig ++++ src/lib/mapfile.hpp +@@ -5,6 +5,9 @@ + # include "config.h" + #endif + ++#include ++#include ++ + #ifdef HAVE_MMAP + # include + # include diff -urN /usr/ports/textproc/sdcv/files/patch-src__libwrapper.cpp textproc/sdcv/files/patch-src__libwrapper.cpp --- /usr/ports/textproc/sdcv/files/patch-src__libwrapper.cpp 1970-01-01 09:00:00.000000000 +0900 +++ textproc/sdcv/files/patch-src__libwrapper.cpp 2014-01-18 00:00:00.000000000 +0900 @@ -0,0 +1,50 @@ +--- src/libwrapper.cpp.orig ++++ src/libwrapper.cpp +@@ -24,6 +24,7 @@ + + #include + #include ++#include + + #include "utils.hpp" + +@@ -117,7 +118,6 @@ + switch (*p++) { + case 'm': + case 'l': //need more work... +- case 'g': + sec_size = strlen(p); + if (sec_size) { + res+="\n"; +@@ -127,6 +127,7 @@ + } + sec_size++; + break; ++ case 'g': + case 'x': + sec_size = strlen(p); + if (sec_size) { +@@ -208,6 +209,15 @@ + + void Library::LookupData(const string &str, TSearchResultList& res_list) + { ++#if defined(_LIBCPP_VERSION) ++ std::vector > drl(ndicts()); ++ if (!Libs::LookupData(str.c_str(), &drl[0])) ++ return; ++ for (int idict=0; idict drl[ndicts()]; + if (!Libs::LookupData(str.c_str(), drl)) + return; +@@ -215,6 +225,7 @@ + for (std::vector::size_type j=0; j ++#include + #ifdef WITH_READLINE + # include + # include diff -urN /usr/ports/textproc/sdcv/files/patch-src__sdcv.cpp textproc/sdcv/files/patch-src__sdcv.cpp --- /usr/ports/textproc/sdcv/files/patch-src__sdcv.cpp 1970-01-01 09:00:00.000000000 +0900 +++ textproc/sdcv/files/patch-src__sdcv.cpp 2014-01-18 00:00:00.000000000 +0900 @@ -0,0 +1,15 @@ +--- src/sdcv.cpp.orig ++++ src/sdcv.cpp +@@ -161,7 +161,11 @@ + + strlist_t dicts_dir_list; + +- dicts_dir_list.push_back(std::string(g_get_home_dir())+G_DIR_SEPARATOR+ ++ const char *homedir = g_getenv ("HOME"); ++ if (!homedir) ++ homedir = g_get_home_dir (); ++ ++ dicts_dir_list.push_back(std::string(homedir)+G_DIR_SEPARATOR+ + ".stardict"+G_DIR_SEPARATOR+"dic"); + dicts_dir_list.push_back(data_dir); + diff -urN /usr/ports/textproc/sdcv/files/patch-src__utils.cpp textproc/sdcv/files/patch-src__utils.cpp --- /usr/ports/textproc/sdcv/files/patch-src__utils.cpp 1970-01-01 09:00:00.000000000 +0900 +++ textproc/sdcv/files/patch-src__utils.cpp 2014-01-18 00:00:00.000000000 +0900 @@ -0,0 +1,11 @@ +--- src/utils.cpp.orig ++++ src/utils.cpp +@@ -22,6 +22,8 @@ + # include "config.h" + #endif + ++#include ++#include + #include + #include + diff -urN /usr/ports/textproc/sdcv/pkg-plist textproc/sdcv/pkg-plist --- /usr/ports/textproc/sdcv/pkg-plist 2014-01-18 00:20:35.000000000 +0900 +++ textproc/sdcv/pkg-plist 2014-01-18 00:00:00.000000000 +0900 @@ -1,7 +1,7 @@ bin/sdcv man/man1/sdcv.1.gz -%%NLS%%share/locale/ru/LC_MESSAGES/sdcv.mo -%%NLS%%share/locale/sk/LC_MESSAGES/sdcv.mo -%%NLS%%share/locale/uk/LC_MESSAGES/sdcv.mo -%%NLS%%share/locale/zh_CN/LC_MESSAGES/sdcv.mo -%%NLS%%share/locale/zh_TW/LC_MESSAGES/sdcv.mo +share/locale/ru/LC_MESSAGES/sdcv.mo +share/locale/sk/LC_MESSAGES/sdcv.mo +share/locale/uk/LC_MESSAGES/sdcv.mo +share/locale/zh_CN/LC_MESSAGES/sdcv.mo +share/locale/zh_TW/LC_MESSAGES/sdcv.mo Files /usr/ports/textproc/sdcv/sdcv-0.4.2-crash.patch and textproc/sdcv/sdcv-0.4.2-crash.patch differ --Multipart=_Sat__18_Jan_2014_00_58_05_+0900_u8zpXt5RMXthaUJ7--