r342 - in x86/branches/utf8: . packages/bash packages/findutils packages/gpm packages/ncurses packages/readline packages/shadow packages/sharutils packages/texinfo packages/zlib

alexander at linuxfromscratch.org alexander at linuxfromscratch.org
Tue Jul 12 04:41:16 PDT 2005


Author: alexander
Date: 2005-07-12 05:41:03 -0600 (Tue, 12 Jul 2005)
New Revision: 342

Added:
   x86/branches/utf8/packages/bash/mbifs-bug.sh
   x86/branches/utf8/packages/texinfo/texinfo-4.8-multibyte-1.patch
Modified:
   x86/branches/utf8/BUGS
   x86/branches/utf8/Makefile
   x86/branches/utf8/packages/bash/Makefile
   x86/branches/utf8/packages/findutils/Makefile
   x86/branches/utf8/packages/gpm/Makefile
   x86/branches/utf8/packages/ncurses/Makefile
   x86/branches/utf8/packages/readline/Makefile
   x86/branches/utf8/packages/shadow/Makefile
   x86/branches/utf8/packages/sharutils/Makefile
   x86/branches/utf8/packages/texinfo/Makefile
   x86/branches/utf8/packages/zlib/Makefile
Log:
Built packages before diffutils. Groff and readline are dubious.


Modified: x86/branches/utf8/BUGS
===================================================================
--- x86/branches/utf8/BUGS	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/BUGS	2005-07-12 11:41:03 UTC (rev 342)
@@ -12,3 +12,21 @@
   some locales, because of two reasons: 1) assumption that the string
   length in bytes and its width in cells are the same; 2) assumption that
   translated strings fit. Possible fix: compile this program with NLS disabled.
+
+gpm/kernel:
+  In UTF-8 mode, cannot copy/paste non-ASCII characters on the Linux console.
+  There is a kernel patch that is supposed to circument this limitation, but it
+  reliably causes kernel panic on my system. Thus, WONTFIX.
+
+groff/man:
+  Downgrading to debian-patched groff-1.18.1.1 and man-db saves a lot of
+  trouble when displaying non-ISO-8859-1 manual pages. TODO: remove all
+  non-ISO-8859-1 manual pages from the CD, since they require nontrivial
+  configuration of man. Strictly speaking, non-ISO-8859-1 manual pages
+  are not a valid groff input (read: big hack).
+
+texinfo:
+  In UTF-8 locales, translations are deliberately disabled by patch.
+  Please don't report that as a bug. Without this patch, the status line
+  length is incorrect and manual pages containing hyphens and other characters
+  rendered by Groff as multibte ones are wrapped incorrectly.

Modified: x86/branches/utf8/Makefile
===================================================================
--- x86/branches/utf8/Makefile	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/Makefile	2005-07-12 11:41:03 UTC (rev 342)
@@ -170,11 +170,11 @@
 	@-mount -f -t devpts -o gid=4,mode=620 devpts $(MP)/dev/pts
 
 pre-bash: createdirs createfiles popdev ch-linux-libc-headers ch-man-pages ch-glibc ch-re-adjust-toolchain \
-	ch-binutils ch-gcc ch-redhat-patches ch-coreutils ch-zlib ch-mktemp ch-iana-etc ch-findutils ch-gawk stop-here ch-sharutils ch-gpm ch-ncurses \
-	ch-readline ch-vim ch-m4 ch-bison ch-less ch-groff ch-sed ch-flex ch-gettext ch-inetutils \
+	ch-binutils ch-gcc ch-redhat-patches ch-coreutils ch-zlib ch-mktemp ch-iana-etc ch-findutils ch-gawk ch-sharutils ch-gpm ch-ncurses \
+	ch-readline ch-m4 ch-bison ch-less ch-groff ch-sed ch-flex ch-gettext ch-inetutils \
 	ch-iproute2 ch-perl ch-texinfo ch-autoconf ch-automake ch-bash
 
-post-bash: ch-file ch-libtool ch-bzip2 ch-diffutils ch-kbd ch-e2fsprogs ch-grep ch-grub ch-gzip \
+post-bash: ch-file ch-libtool ch-bzip2 stop-here ch-diffutils ch-kbd ch-e2fsprogs ch-grep ch-grub ch-gzip \
 	ch-hotplug ch-man ch-make ch-module-init-tools ch-patch ch-procps ch-psmisc ch-shadow \
 	ch-sysklogd ch-sysvinit ch-tar ch-udev ch-util-linux ch-environment
 

Modified: x86/branches/utf8/packages/bash/Makefile
===================================================================
--- x86/branches/utf8/packages/bash/Makefile	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/packages/bash/Makefile	2005-07-12 11:41:03 UTC (rev 342)
@@ -11,6 +11,14 @@
 URL1= $(HTTP)/$(NM)/$(PATCH1)
 URL2= $(HTTP)/$(NM)/$(PATCH2)
 
+# RedHat patches:
+# -multibyteifs: "allows" the use of multibyte characters in $IFS.
+#       Buggy, fails a simple testcase (see mbifs-bug.sh) even in Fedora Core.
+#
+# -mbinc is no longer valid (fixed differently in bash-3.0).
+#
+# TODO: investigate others.
+
 # RULES
 
 .PHONY: stage1 clean chroot stage2

Added: x86/branches/utf8/packages/bash/mbifs-bug.sh
===================================================================
--- x86/branches/utf8/packages/bash/mbifs-bug.sh	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/packages/bash/mbifs-bug.sh	2005-07-12 11:41:03 UTC (rev 342)
@@ -0,0 +1,12 @@
+#!/bin/sh
+LC_ALL=en_US.UTF-8
+export LC_ALL
+# Here "‐" is the UTF-8 representation of a hyphen-dash.
+INPUT=asdf‐ghjk
+echo $INPUT | (
+	IFS="‐" read a b c
+	echo -n "$a:$b:$c" | od -t x1
+)
+# Expected output:
+# 0000000 61 73 64 66 3a 67 68 6a 6b 3a
+# 0000012


Property changes on: x86/branches/utf8/packages/bash/mbifs-bug.sh
___________________________________________________________________
Name: svn:executable
   + *

Modified: x86/branches/utf8/packages/findutils/Makefile
===================================================================
--- x86/branches/utf8/packages/findutils/Makefile	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/packages/findutils/Makefile	2005-07-12 11:41:03 UTC (rev 342)
@@ -2,7 +2,7 @@
 
 # Package versions
 NM= findutils
-VRS= 4.2.20
+VRS= 4.2.23
 DIR= $(NM)-$(VRS)
 FILE= $(DIR).tar.bz2
 URL= $(HTTP)/$(NM)/$(FILE)

Modified: x86/branches/utf8/packages/gpm/Makefile
===================================================================
--- x86/branches/utf8/packages/gpm/Makefile	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/packages/gpm/Makefile	2005-07-12 11:41:03 UTC (rev 342)
@@ -11,6 +11,9 @@
 URL1= http://www.linuxfromscratch.org/blfs/downloads/svn/$(PATCH1)
 URL2= http://www.linuxfromscratch.org/blfs/downloads/svn/$(PATCH2)
 
+# Building without curses is essential in order to avoid
+# ncurses/ncursesw clashes
+
 #RULES
 
 .PHONY: clean chroot stage2

Modified: x86/branches/utf8/packages/ncurses/Makefile
===================================================================
--- x86/branches/utf8/packages/ncurses/Makefile	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/packages/ncurses/Makefile	2005-07-12 11:41:03 UTC (rev 342)
@@ -9,6 +9,14 @@
 URL= $(HTTP)/$(NM)/$(FILE)
 URL1= ftp://invisible-island.net/ncurses/5.4/$(PATCH).bz2
 
+# Normal (non-wide-character) ncurses are installed only because of the
+# LSB requirement. They don't support UTF-8, and nothing is linked against
+# them.
+#
+# If you want to get rid of -20050319 rollup patch, the
+# ncurses-5.4-altcharset-1.patch becomes required (fixes important regression
+# in libncursesw in non-UTF-8 case).
+
 # RULES
 
 .PHONY: stage1 clean chroot stage2
@@ -36,10 +44,23 @@
 	@if [ ! -f $(PATCH) ] ; then $(WGET) $(URL1) && bunzip2 $(PATCH).bz2 ; fi
 	@if [ ! -f /usr/bin/clear ] ; then unpack $(SRC)/$(FILE) && cd $(DIR) && \
 	 sh ../$(PATCH) && \
-	 ./configure --prefix=/usr --with-shared --without-debug --with-gpm && \
-	 make sources && make -j3 && make install && chmod 755 /usr/lib/*.5.4 && \
-	 chmod 644 /usr/lib/libncurses++.a && mv /usr/lib/libncurses.so.5* /lib && \
-	 ln -sf ../../lib/libncurses.so.5 /usr/lib/libncurses.so && \
+	 ./configure --prefix=/usr --with-shared --without-normal \
+	     --without-debug --with-gpm --without-cxx-binding && \
+	 make sources && make -j3 libs && \
+	 cp -a lib/libncurses.so.5* /usr/lib && \
+	 make distclean && \
+	 ./configure --prefix=/usr --with-shared --without-debug \
+	     --with-gpm --enable-widec --without-cxx-binding && \
+	 make sources && make -j3 && \
+	 make install && chmod 755 /usr/lib/*.5.4 && \
+	 mv /usr/lib/libncursesw.so.5* /lib && \
+	 ln -sf ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so && \
+	 for ext in so a ; do \
+	   for lib in curses ncurses form panel menu ; do \
+	     ln -sf lib$${lib}w.$${ext} /usr/lib/lib$${lib}.$${ext} ; \
+	   done ; \
+	 done && \
+	 ln -sf libncursesw.so /usr/lib/libcursesw.so && \
 	 ln -sf libncurses.so /usr/lib/libcurses.so ; fi
 	@make clean
 

Modified: x86/branches/utf8/packages/readline/Makefile
===================================================================
--- x86/branches/utf8/packages/readline/Makefile	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/packages/readline/Makefile	2005-07-12 11:41:03 UTC (rev 342)
@@ -6,6 +6,11 @@
 DIR= $(NM)-$(VRS)
 FILE= $(DIR).tar.bz2
 PATCH= $(DIR)-fixes-1.patch
+
+# TODO: validate these patches.
+
+PATCH2= $(NM)-read-e-segfault.patch
+PATCH3= $(NM)-wrap.patch
 URL= $(HTTP)/$(NM)/$(FILE)
 URL1= $(HTTP)/$(NM)/$(PATCH)
 
@@ -26,6 +31,8 @@
 	 mv $(PATCH) $(SRC) ; fi
 	@if [ ! -f /usr/lib/libreadline.so ] ; then unpack $(SRC)/$(FILE) && cd $(DIR) && \
 	 patch -Np1 -i $(SRC)/$(PATCH) && \
+	 patch -Np1 -i $(REDHAT)/$(NM)/$(PATCH2) && \
+	 patch -Np1 -i $(REDHAT)/$(NM)/$(PATCH3) && \
 	 ./configure --prefix=/usr && \
 	 make -j3 SHLIB_XLDFLAGS=-lncurses && make install && chmod 755 /usr/lib/*.5.0 && \
 	 mv /usr/lib/lib{readline,history}.so.5* /lib && \

Modified: x86/branches/utf8/packages/shadow/Makefile
===================================================================
--- x86/branches/utf8/packages/shadow/Makefile	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/packages/shadow/Makefile	2005-07-12 11:41:03 UTC (rev 342)
@@ -2,12 +2,10 @@
 
 # Package versions
 NM= shadow
-VRS= 4.0.7
+VRS= 4.0.9
 DIR= $(NM)-$(VRS)
 FILE= $(DIR).tar.bz2
-PATCH=${DIR}-fix_lastlog-1.patch
 URL= $(HTTP)/$(NM)/$(FILE)
-URL1=$(HTTP)/$(NM)/$(PATCH)
 
 # RULES
 
@@ -22,10 +20,7 @@
 	@echo ""
 	@if [ ! -f $(SRC)/$(FILE) ] ; then $(WGET) $(URL) && \
 	 mv $(FILE) $(SRC) ; fi
-	@if [ ! -f $(SRC)/$(PATCH) ] ; then $(WGET) $(URL1) && \
-	 mv $(PATCH) $(SRC) ; fi
 	@if [ ! -d /etc/default ] ; then unpack $(SRC)/$(FILE) && cd $(DIR) && \
-	 patch -Np1 -i $(SRC)/$(PATCH) && \
 	 ./configure --libdir=/lib --enable-shared && \
 	 sed -i 's/groups$$(EXEEXT) //' src/Makefile && \
 	 sed -i '/groups/d' man/Makefile && \

Modified: x86/branches/utf8/packages/sharutils/Makefile
===================================================================
--- x86/branches/utf8/packages/sharutils/Makefile	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/packages/sharutils/Makefile	2005-07-12 11:41:03 UTC (rev 342)
@@ -19,7 +19,7 @@
 	@echo "======> Building $(NM) in chroot"
 	@echo ""
 	@if [ ! -f $(FILE) ] ; then $(WGET) $(URL) ; fi
-	@if [ ! -f /usr/bin/clear ] ; then unpack $(FILE) && cd $(DIR) && \
+	@if [ ! -f /usr/bin/uudecode ] ; then unpack $(FILE) && cd $(DIR) && \
 	 ./configure --prefix=/usr && \
 	 make -j3 && \
 	 make install ; fi

Modified: x86/branches/utf8/packages/texinfo/Makefile
===================================================================
--- x86/branches/utf8/packages/texinfo/Makefile	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/packages/texinfo/Makefile	2005-07-12 11:41:03 UTC (rev 342)
@@ -5,6 +5,7 @@
 VRS= 4.8
 DIR= $(NM)-$(VRS)
 FILE= $(DIR).tar.bz2
+PATCH= $(DIR)-multibyte-1.patch
 URL= http://ftp.gnu.org/gnu/$(NM)/$(FILE)
 
 # RULES
@@ -31,6 +32,7 @@
 	@if [ ! -f $(SRC)/$(FILE) ] ; then $(WGET) $(URL) && \
 	 mv $(FILE) $(SRC) ; fi
 	@if [ ! -f /usr/bin/info ] ; then unpack $(SRC)/$(FILE) && cd $(DIR) && \
+	 patch -Np1 -i ../$(PATCH) && \
 	 ./configure --prefix=/usr && make -j3 && make install && \
 	 make -j3 TEXMF=/usr/share/texmf install-tex ; fi
 	@make clean	

Added: x86/branches/utf8/packages/texinfo/texinfo-4.8-multibyte-1.patch
===================================================================
--- x86/branches/utf8/packages/texinfo/texinfo-4.8-multibyte-1.patch	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/packages/texinfo/texinfo-4.8-multibyte-1.patch	2005-07-12 11:41:03 UTC (rev 342)
@@ -0,0 +1,40 @@
+Submitted By: Alexander E. Patrakov
+Date: 2005-07-12
+Initial Package Version: 4.8
+Upstream status: Hack, won't submit
+Description: Info assumes that a string width in character cells is the
+same as its length in bytes. This patch avoids cases when this assumption
+is not true.
+
+diff -ur texinfo-4.8/info/info.c texinfo-4.8.hacked/info/info.c
+--- texinfo-4.8/info/info.c	2004-04-11 23:56:45.000000000 +0600
++++ texinfo-4.8.hacked/info/info.c	2005-07-12 12:11:34.852485776 +0600
+@@ -154,6 +154,10 @@
+ #ifdef HAVE_SETLOCALE
+   /* Set locale via LC_ALL.  */
+   setlocale (LC_ALL, "");
++  /* But don't use translated messages in the case when
++     string width and length can differ */
++  if (MB_CUR_MAX > 1)
++    setlocale(LC_MESSAGES, "C");
+ #endif
+ 
+ #ifdef ENABLE_NLS
+diff -ur texinfo-4.8/info/man.c texinfo-4.8.hacked/info/man.c
+--- texinfo-4.8/info/man.c	2004-04-11 23:56:46.000000000 +0600
++++ texinfo-4.8.hacked/info/man.c	2005-07-12 12:08:40.267026800 +0600
+@@ -325,6 +325,14 @@
+       freopen (NULL_DEVICE, "r", stdin);
+       dup2 (pipes[1], fileno (stdout));
+ 
++      if (MB_CUR_MAX > 1)
++        {
++          /* Info has trouble wrapping man output if it contains
++             multibyte characters */
++          setenv("LC_ALL", "C", 1);
++          setenv("LANGUAGE", "C", 1);
++        }
++
+       execv (formatter_args[0], formatter_args);
+ 
+       /* If we get here, we couldn't exec, so close out the pipe and

Modified: x86/branches/utf8/packages/zlib/Makefile
===================================================================
--- x86/branches/utf8/packages/zlib/Makefile	2005-07-11 13:26:17 UTC (rev 341)
+++ x86/branches/utf8/packages/zlib/Makefile	2005-07-12 11:41:03 UTC (rev 342)
@@ -24,7 +24,7 @@
 	@if [ ! -f $(SRC)/$(PATCH1) ] ; then $(WGET) $(URL1) && \
 	 mv $(PATCH1) $(SRC) ; fi
 	@if [ ! -f /usr/lib/libz.so ] ; then unpack $(SRC)/$(FILE) && \
-	 cd $(DIR) && patch -Np1 -i $(SRC)/$(PATCH1) &&\
+	 cd $(DIR) && patch -Np1 -i $(SRC)/$(PATCH1) && \
 	 ./configure --prefix=/usr --shared && \
 	 make -j3 && make install && make clean && ./configure --prefix=/usr && \
 	 make -j3 && make install && chmod 644 /usr/lib/libz.a && \




More information about the livecd mailing list