Date: Mon, 08 Oct 2012 16:23:31 +0200 From: Alex Dupre <ale@FreeBSD.org> To: Greg Larkin <glarkin@FreeBSD.org>, Joe Marcus Clarke <marcus@freebsd.org>, gnome@FreeBSD.org, autotools@FreeBSD.org, demon@FreeBSD.org, portmgr@FreeBSD.org Subject: [HEADS UP] charset.alias Message-ID: <5072E1E3.7000307@FreeBSD.org> In-Reply-To: <506F01C4.6040704@FreeBSD.org> References: <506F01C4.6040704@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------090909010708040502050105 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Alex Dupre ha scritto: > the latest update to devel/patch spotted a (new, at least for me) > problem related to charset.alias file. After a little research I found > that gettext install both charset.alias and locale.alias and no other > ports should install them. So devel/patch should be fixed. > But in my research I found another issue: charset.alias probably should be > actually installed by converters/libiconv, and in fact it installs a > private copy in a different directory. And actually the one installed by > libiconv is quite correct, while the one installed by gettext is wrong > (it was correct for FreeBSD 4.x that misses nl_langinfo()). > In the end, a created a patch for the following affected ports: > converters/libiconv > devel/gettext > devel/patch > ports-mgmt/portlint > > Please have a look at it and comment. I've added converters/recode to the patch and updated/improved it. I have received zero feedback until now. -- Alex Dupre --------------090909010708040502050105 Content-Type: text/plain; charset=ISO-8859-15; name="charset.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="charset.patch" Index: converters/libiconv/files/patch-ae =================================================================== --- converters/libiconv/files/patch-ae (revision 305297) +++ converters/libiconv/files/patch-ae (working copy) @@ -1,15 +1,7 @@ --- libcharset/lib/Makefile.in.orig 2009-03-26 08:01:00.000000000 -0400 +++ libcharset/lib/Makefile.in 2009-06-06 15:28:00.000000000 -0400 -@@ -10,6 +10,7 @@ prefix = @prefix@ - local_prefix = /usr/local - exec_prefix = @exec_prefix@ - libdir = @libdir@ -+sysconfdir = ${exec_prefix}/libdata +@@ -44,7 +44,7 @@ SHELL = /bin/sh - # Programs used by "make": - CC = @CC@ -@@ -44,7 +45,7 @@ SHELL = /bin/sh - # Before making a release, change this according to the libtool documentation, # section "Library interface versions". -LIBCHARSET_VERSION_INFO = 1:0:0 @@ -17,47 +9,3 @@ # Needed by $(LIBTOOL). top_builddir = .. -@@ -59,7 +60,7 @@ libcharset.la : $(OBJECTS) - $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(CFLAGS) -o libcharset.la -rpath $(libdir) -version-info $(LIBCHARSET_VERSION_INFO) -no-undefined $(OBJECTS) - - localcharset.lo : $(srcdir)/localcharset.c -- $(LIBTOOL_COMPILE) $(CC) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(DEFS) -c $(srcdir)/localcharset.c -+ $(LIBTOOL_COMPILE) $(CC) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(DEFS) -DLIBDIR=\"$(sysconfdir)\" -c $(srcdir)/localcharset.c - - relocatable.lo : $(srcdir)/relocatable.c $(srcdir)/relocatable.h - $(LIBTOOL_COMPILE) $(CC) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(DEFS) -c $(srcdir)/relocatable.c -@@ -80,7 +81,7 @@ ref-del.sed : $(srcdir)/ref-del.sin - # $(libdir) and $(includedir) - don't use $(prefix) and $(exec_prefix) here. - install-lib : all force - $(mkinstalldirs) $(libdir) -- $(LIBTOOL_INSTALL) $(INSTALL_DATA) libcharset.la $(libdir)/libcharset.la -+ $(LIBTOOL_INSTALL) cp libcharset.la $(libdir)/libcharset.la - test -f $(libdir)/charset.alias && orig=$(libdir)/charset.alias \ - || orig=charset.alias; \ - sed -f ref-add.sed $$orig > $(libdir)/t-charset.alias; \ -@@ -108,16 +109,17 @@ install : all force - need_charset_alias=false ; \ - fi ; \ - $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ -- $(LIBTOOL_INSTALL) $(INSTALL_DATA) libcharset.la $(DESTDIR)$(libdir)/libcharset.la -- if test -f $(DESTDIR)$(libdir)/charset.alias; then \ -- sed -f ref-add.sed $(DESTDIR)$(libdir)/charset.alias > $(DESTDIR)$(libdir)/t-charset.alias; \ -- $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias $(DESTDIR)$(libdir)/charset.alias; \ -- rm -f $(DESTDIR)$(libdir)/t-charset.alias; \ -+ $(mkinstalldirs) $(DESTDIR)$(sysconfdir) ; \ -+ $(LIBTOOL_INSTALL) cp libcharset.la $(DESTDIR)$(libdir)/libcharset.la -+ if test -f $(DESTDIR)$(sysconfdir)/charset.alias; then \ -+ sed -f ref-add.sed $(DESTDIR)$(sysconfdir)/charset.alias > $(DESTDIR)$(sysconfdir)/t-charset.alias; \ -+ $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/t-charset.alias $(DESTDIR)$(sysconfdir)/charset.alias; \ -+ rm -f $(DESTDIR)$(sysconfdir)/t-charset.alias; \ - else \ - if $$need_charset_alias; then \ -- sed -f ref-add.sed charset.alias > $(DESTDIR)$(libdir)/t-charset.alias; \ -- $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias $(DESTDIR)$(libdir)/charset.alias; \ -- rm -f $(DESTDIR)$(libdir)/t-charset.alias; \ -+ sed -f ref-add.sed charset.alias > $(DESTDIR)$(sysconfdir)/t-charset.alias; \ -+ $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/t-charset.alias $(DESTDIR)$(sysconfdir)/charset.alias; \ -+ rm -f $(DESTDIR)$(sysconfdir)/t-charset.alias; \ - fi ; \ - fi - Index: converters/libiconv/files/patch-libcharset::lib::config.charset =================================================================== --- converters/libiconv/files/patch-libcharset::lib::config.charset (revision 305297) +++ converters/libiconv/files/patch-libcharset::lib::config.charset (working copy) @@ -35,8 +35,8 @@ + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "Big5 BIG5" ++ echo "Big5HKSCS BIG5-HKSCS" + echo "SJIS SHIFT_JIS" -+ echo "Shift_JIS SHIFT_JIS" + ;; netbsd*) echo "646 ASCII" Index: converters/libiconv/pkg-plist =================================================================== --- converters/libiconv/pkg-plist (revision 305297) +++ converters/libiconv/pkg-plist (working copy) @@ -2,6 +2,7 @@ include/iconv.h include/libcharset.h include/localcharset.h +lib/charset.alias lib/libcharset.a lib/libcharset.la lib/libcharset.so @@ -10,7 +11,6 @@ lib/libiconv.la lib/libiconv.so lib/libiconv.so.3 -libdata/charset.alias %%DOCSDIR%%/iconv.1.html %%DOCSDIR%%/iconv.3.html %%DOCSDIR%%/iconv_close.3.html Index: converters/libiconv/Makefile =================================================================== --- converters/libiconv/Makefile (revision 305297) +++ converters/libiconv/Makefile (working copy) @@ -7,6 +7,7 @@ PORTNAME= libiconv PORTVERSION= 1.14 +PORTREVISION= 1 CATEGORIES= converters devel MASTER_SITES= GNU Index: converters/recode/files/patch-libiconv-Makefile.in =================================================================== --- converters/recode/files/patch-libiconv-Makefile.in (revision 305533) +++ converters/recode/files/patch-libiconv-Makefile.in (working copy) @@ -1,13 +1,11 @@ ---- libiconv/Makefile.in.orig Fri Oct 5 01:32:06 2001 -+++ libiconv/Makefile.in Fri Oct 5 01:33:06 2001 -@@ -112,8 +112,8 @@ - EXTRA_DIST = encodings.def encodings_local.def config.charset ref-add.sin ref-del.sin +--- libiconv/Makefile.in.orig 2012-10-08 15:36:05.000000000 +0200 ++++ libiconv/Makefile.in 2012-10-08 15:35:41.000000000 +0200 +@@ -198,7 +198,7 @@ + check: check-am + installcheck-am: + installcheck: installcheck-am +-install-exec-am: install-exec-local ++install-exec-am: + install-exec: install-exec-am - --charset_alias = $(DESTDIR)$(libdir)/charset.alias --charset_tmp = $(DESTDIR)$(libdir)/charset.tmp -+charset_alias = $(DESTDIR)$(prefix)/libdata/charset.alias -+charset_tmp = $(DESTDIR)$(prefix)/libdata/charset.tmp - - SUFFIXES = .sed .sin - + install-data-am: Index: converters/recode/Makefile =================================================================== --- converters/recode/Makefile (revision 305533) +++ converters/recode/Makefile (working copy) @@ -7,7 +7,7 @@ PORTNAME= recode PORTVERSION= 3.6 -PORTREVISION= 8 +PORTREVISION= 9 CATEGORIES= converters MASTER_SITES= ${MASTER_SITE_GNU} MASTER_SITE_SUBDIR= recode Index: devel/gettext/files/patch-gettext-runtime_intl_Makefile.in =================================================================== --- devel/gettext/files/patch-gettext-runtime_intl_Makefile.in (revision 0) +++ devel/gettext/files/patch-gettext-runtime_intl_Makefile.in (working copy) @@ -0,0 +1,39 @@ +--- gettext-runtime/intl/Makefile.in.orig 2012-10-08 15:54:02.000000000 +0200 ++++ gettext-runtime/intl/Makefile.in 2012-10-08 15:54:44.000000000 +0200 +@@ -410,36 +410,6 @@ + : ; \ + fi + if test '@USE_INCLUDED_LIBINTL@' = yes; then \ +- if test @GLIBC21@ = no; then \ +- case '@host_os@' in \ +- darwin[56]*) \ +- need_charset_alias=true ;; \ +- darwin* | cygwin* | mingw* | pw32* | cegcc*) \ +- need_charset_alias=false ;; \ +- *) \ +- need_charset_alias=true ;; \ +- esac; \ +- else \ +- need_charset_alias=false; \ +- fi; \ +- if $$need_charset_alias; then \ +- $(mkdir_p) $(DESTDIR)$(libdir); \ +- fi; \ +- temp=$(DESTDIR)$(libdir)/t-charset.alias; \ +- dest=$(DESTDIR)$(libdir)/charset.alias; \ +- if test -f $(DESTDIR)$(libdir)/charset.alias; then \ +- orig=$(DESTDIR)$(libdir)/charset.alias; \ +- sed -f ref-add.sed $$orig > $$temp; \ +- $(INSTALL_DATA) $$temp $$dest; \ +- rm -f $$temp; \ +- else \ +- if $$need_charset_alias; then \ +- orig=charset.alias; \ +- sed -f ref-add.sed $$orig > $$temp; \ +- $(INSTALL_DATA) $$temp $$dest; \ +- rm -f $$temp; \ +- fi; \ +- fi; \ + $(mkdir_p) $(DESTDIR)$(localedir); \ + test -f $(DESTDIR)$(localedir)/locale.alias \ + && orig=$(DESTDIR)$(localedir)/locale.alias \ Property changes on: devel/gettext/files/patch-gettext-runtime_intl_Makefile.in ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Index: devel/gettext/pkg-plist =================================================================== --- devel/gettext/pkg-plist (revision 305297) +++ devel/gettext/pkg-plist (working copy) @@ -25,7 +25,6 @@ include/gettext-po.h include/libintl.h @exec /bin/mkdir -p %D/lib/gettext -lib/charset.alias lib/libasprintf.a lib/libasprintf.la lib/libasprintf.so Index: devel/gettext/Makefile =================================================================== --- devel/gettext/Makefile (revision 305297) +++ devel/gettext/Makefile (working copy) @@ -7,6 +7,7 @@ PORTNAME= gettext PORTVERSION= 0.18.1.1 +PORTREVISION= 1 CATEGORIES= devel MASTER_SITES= ${MASTER_SITE_GNU} MASTER_SITE_SUBDIR= gettext @@ -65,6 +66,9 @@ post-patch: @${FIND} ${WRKSRC} -name configure -print | ${XARGS} \ ${REINPLACE_CMD} -e 's|mkdir gmkdir|mkdir|' + # use libiconv charset.alias + @${FIND} ${WRKSRC} -name Makefile.in -print | ${XARGS} ${REINPLACE_CMD} \ + -e 's|install-exec-local: install-exec-localcharset|install-exec-local:|' .if defined (NOPORTDOCS) .for dir in runtime tools @${REINPLACE_CMD} -e 's|^SUBDIRS = doc|SUBDIRS =|' \ Index: devel/patch/files/patch-lib__Makefile.in =================================================================== --- devel/patch/files/patch-lib__Makefile.in (revision 305533) +++ devel/patch/files/patch-lib__Makefile.in (working copy) @@ -1,11 +0,0 @@ ---- ./lib/Makefile.in.orig 2012-10-05 10:51:11.000000000 -0400 -+++ ./lib/Makefile.in 2012-10-05 10:51:34.000000000 -0400 -@@ -1372,7 +1372,7 @@ - uninstall: uninstall-am - - install-am: all-am -- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -+ @$(MAKE) $(AM_MAKEFLAGS) install-data-am - - installcheck: installcheck-am - install-strip: Index: devel/patch/files/patch-lib__localcharset.c =================================================================== --- devel/patch/files/patch-lib__localcharset.c (revision 305533) +++ devel/patch/files/patch-lib__localcharset.c (working copy) @@ -1,98 +0,0 @@ ---- ./lib/localcharset.c.orig 2012-10-05 10:28:29.000000000 -0400 -+++ ./lib/localcharset.c 2012-10-05 10:38:42.000000000 -0400 -@@ -122,7 +122,7 @@ - cp = charset_aliases; - if (cp == NULL) - { --#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__) -+#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined __FreeBSD__) - const char *dir; - const char *base = "charset.alias"; - char *file_name; -@@ -249,6 +249,86 @@ - - #else - -+# if defined __FreeBSD__ -+ /* To avoid the trouble of installing a file that is shared by many -+ GNU packages -- many packaging systems have problems with this --, -+ simply inline the aliases here. */ -+ cp = "US-ASCII" "\0" "ASCII" "\0" -+ "la_LN.ASCII" "\0" "ASCII" "\0" -+ "lt_LN.ASCII" "\0" "ASCII" "\0" -+ "da_DK.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "da_DK.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "de_AT.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "de_AT.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "de_CH.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "de_CH.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "de_DE.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "de_DE.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "en_AU.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "en_AU.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "en_CA.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "en_CA.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "en_GB.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "en_GB.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "en_US.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "en_US.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "es_ES.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "es_ES.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "fi_FI.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "fi_FI.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "fr_BE.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "fr_BE.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "fr_CA.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "fr_CA.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "fr_CH.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "fr_CH.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "fr_FR.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "fr_FR.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "is_IS.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "is_IS.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "it_CH.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "it_CH.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "it_IT.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "it_IT.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "la_LN.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "la_LN.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "lt_LN.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "lt_LN.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "nl_BE.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "nl_BE.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "nl_NL.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "nl_NL.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "no_NO.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "no_NO.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "pt_PT.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "pt_PT.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "sv_SE.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "sv_SE.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "cs_CZ.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "hr_HR.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "hu_HU.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "la_LN.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "lt_LN.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "pl_PL.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "sl_SI.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "la_LN.ISO_8859-4" "\0" "ISO-8859-4" "\0" -+ "lt_LT.ISO_8859-4" "\0" "ISO-8859-4" "\0" -+ "ru_RU.KOI8-R" "\0" "KOI8-R" "\0" -+ "ru_RU.ISO_8859-5" "\0" "ISO-8859-5" "\0" -+ "ru_RU.CP866" "\0" "CP866" "\0" -+ "ru_SU.KOI8-R" "\0" "KOI8-R" "\0" -+ "ru_SU.ISO_8859-5" "\0" "ISO-8859-5" "\0" -+ "ru_SU.CP866" "\0" "CP866" "\0" -+ "uk_UA.KOI8-U" "\0" "KOI8-U" "\0" -+ "zh_TW.BIG5" "\0" "BIG5" "\0" -+ "zh_TW.Big5" "\0" "BIG5" "\0" -+ "zh_CN.EUC" "\0" "GB2312" "\0" -+ "ja_JP.EUC" "\0" "EUC-JP" "\0" -+ "ja_JP.SJIS" "\0" "SHIFT_JIS" "\0" -+ "ja_JP.Shift_JIS" "\0" "SHIFT_JIS" "\0" -+ "ko_KR.EUC" "\0" "EUC-KR" "\0"; -+# endif -+ - # if defined DARWIN7 - /* To avoid the trouble of installing a file that is shared by many - GNU packages -- many packaging systems have problems with this --, Index: devel/patch/Makefile =================================================================== --- devel/patch/Makefile (revision 305533) +++ devel/patch/Makefile (working copy) @@ -7,7 +7,7 @@ PORTNAME= patch PORTVERSION= 2.7 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= devel MASTER_SITES= ${MASTER_SITE_GNU} MASTER_SITE_SUBDIR= patch @@ -21,8 +21,14 @@ CONFIGURE_ARGS+=--program-prefix=g USE_GMAKE= yes USE_XZ= yes +USE_ICONV= yes MAN1= gpatch.1 PLIST_FILES= bin/gpatch +post-patch: + # use libiconv charset.alias + @${REINPLACE_CMD} 's|install-exec-local: install-exec-localcharset|install-exec-local:|' \ + ${WRKSRC}/lib/Makefile.in + .include <bsd.port.mk> Index: ports-mgmt/portlint/src/portlint.pl =================================================================== --- ports-mgmt/portlint/src/portlint.pl (revision 305297) +++ ports-mgmt/portlint/src/portlint.pl (working copy) @@ -836,8 +836,15 @@ "disallowed."); } - if ($_ =~ /charset\.alias$/ || $_ =~ /locale\.alias$/) { - &perror("WARN", $file, $., "installing charset.alias or locale.alias, ". + if ($_ =~ /charset\.alias$/) { + &perror("WARN", $file, $., "installing charset.alias, ". + "please add USE_ICONV=yes and remove installation of ". + "charset.alias by setting need_charset_alias=false. ". + "See devel/gettext post-patch for an example."); + } + + if ($_ =~ /locale\.alias$/) { + &perror("WARN", $file, $., "installing locale.alias, ". "please add USE_GETTEXT=yes and use libintl from devel/gettext ". "instead of from outdated bundled one if possible. ". "See http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/71531 ". Index: ports-mgmt/portlint/Makefile =================================================================== --- ports-mgmt/portlint/Makefile (revision 305297) +++ ports-mgmt/portlint/Makefile (working copy) @@ -8,7 +8,7 @@ # PORTNAME= portlint -PORTVERSION= 2.13.12 +PORTVERSION= 2.13.13 CATEGORIES= ports-mgmt MASTER_SITES= # none DISTFILES= # none --------------090909010708040502050105--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5072E1E3.7000307>