upgrading from fileutils to coreutils changes "head -1" to "head -n 1". This breaks kdebase. Reproducible: Always Steps to Reproduce: 1.upgrade to coreutils 5.0 2.emerge kdebase 3.1.2 3. Actual Results: configure step fails Expected Results: compile it does compile with this patch: diff -rNu /usr/portage/kde-base/kdebase/files/3.1.2/coreutils-5.0.patch ./files/3.1.2/coreutils-5.0.patch --- /usr/portage/kde-base/kdebase/files/3.1.2/coreutils-5.0.patch 1970-01-01 01:00:00.000000000 +0100 +++ ./files/3.1.2/coreutils-5.0.patch 2003-07-29 16:24:40.176431392 +0200 @@ -0,0 +1,146 @@ +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/acinclude.m4 ./acinclude.m4 +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/acinclude.m4 2003-05-13 13:05:39.000000000 +0200 ++++ ./acinclude.m4 2003-07-29 16:24:19.512572776 +0200 +@@ -9895,7 +9895,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/aclocal.m4 ./aclocal.m4 +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/aclocal.m4 2003-05-13 13:05:45.000000000 +0200 ++++ ./aclocal.m4 2003-07-29 16:24:19.572563656 +0200 +@@ -9873,7 +9873,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/admin/cvs.sh ./admin/cvs.sh +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/admin/cvs.sh 2003-05-07 13:43:53.000000000 +0200 ++++ ./admin/cvs.sh 2003-07-29 16:24:19.578562744 +0200 +@@ -27,7 +27,7 @@ + + check_autotool_versions() + { +-AUTOCONF_VERSION=`$AUTOCONF --version | head -1` ++AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1` + case $AUTOCONF_VERSION in + Autoconf*2.5* | autoconf*2.5* ) : ;; + "" ) +@@ -42,7 +42,7 @@ + ;; + esac + +-AUTOHEADER_VERSION=`$AUTOHEADER --version | head -1` ++AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1` + case $AUTOHEADER_VERSION in + Autoconf*2.5* | autoheader*2.5* ) : ;; + "" ) +@@ -57,7 +57,7 @@ + ;; + esac + +-AUTOMAKE_STRING=`$AUTOMAKE --version | head -1` ++AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1` + case $AUTOMAKE_STRING in + automake*1.5d* ) + echo "*** YOU'RE USING $AUTOMAKE_STRING." +@@ -247,10 +247,10 @@ + echo "AC_OUTPUT" >> configure.in.new + modulename= + if test -f configure.in.in; then +- if head -2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then ++ if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then + kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"` + fi +- if head -2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then ++ if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then + line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in` + if test -n "$line"; then + modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"` +@@ -290,7 +290,7 @@ + done + rm -f configure.files + touch configure.files +-if test -f configure.in.in && head -2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then ++if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then + echo $admindir/configure.in.min >> configure.files + fi + test -f configure.in.in && echo configure.in.in >> configure.files +@@ -305,8 +305,8 @@ + subdirs() + { + dirs= +-compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -1` +-compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -1` ++compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1` ++compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1` + for i in `ls -1`; do + if test -f $i/Makefile.am; then + case " $compilefirst $compilelast " in +@@ -323,11 +323,11 @@ + done + + (for d in $dirs; do +- list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -1` ++ list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` + for s in $list; do + echo $s $d + done +- list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -1` ++ list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` + for s in $list; do + echo $d $s + done +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/admin/libtool.m4.in ./admin/libtool.m4.in +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/admin/libtool.m4.in 2003-05-07 13:43:53.000000000 +0200 ++++ ./admin/libtool.m4.in 2003-07-29 16:24:19.610557880 +0200 +@@ -4503,7 +4503,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/configure ./configure +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/configure 2003-05-13 13:08:06.000000000 +0200 ++++ ./configure 2003-07-29 16:24:19.823525504 +0200 +@@ -8030,7 +8030,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ archive_expsym_cmds='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +@@ -13973,7 +13973,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- archive_expsym_cmds_GCJ='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ archive_expsym_cmds_GCJ='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/klipper/klipperrc.desktop ./klipper/klipperrc.desktop +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/klipper/klipperrc.desktop2003-05-07 13:44:15.000000000 +0200 ++++ ./klipper/klipperrc.desktop 2003-07-29 16:24:19.834523832 +0200 +@@ -144,7 +144,7 @@ + Regexp=^https?://. + + [Action_1/Command_0] +-Commandline=dcop `dcop|grep konqueror|head -1` default 'createNewWindow(QString)' %s || kfmclient exec %s ++Commandline=dcop `dcop|grep konqueror|head -n 1` default 'createNewWindow(QString)' %s || kfmclient exec %s + Description=Open with &Konqueror + Description[af]=Open met Konqueror + Description[az]=&Konqueror il
upgrading from fileutils to coreutils changes "head -1" to "head -n 1". This breaks kdebase. Reproducible: Always Steps to Reproduce: 1.upgrade to coreutils 5.0 2.emerge kdebase 3.1.2 3. Actual Results: configure step fails Expected Results: compile it does compile with this patch: diff -rNu /usr/portage/kde-base/kdebase/files/3.1.2/coreutils-5.0.patch ./files/3.1.2/coreutils-5.0.patch --- /usr/portage/kde-base/kdebase/files/3.1.2/coreutils-5.0.patch 1970-01-01 01:00:00.000000000 +0100 +++ ./files/3.1.2/coreutils-5.0.patch 2003-07-29 16:24:40.176431392 +0200 @@ -0,0 +1,146 @@ +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/acinclude.m4 ./acinclude.m4 +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/acinclude.m4 2003-05-13 13:05:39.000000000 +0200 ++++ ./acinclude.m4 2003-07-29 16:24:19.512572776 +0200 +@@ -9895,7 +9895,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/aclocal.m4 ./aclocal.m4 +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/aclocal.m4 2003-05-13 13:05:45.000000000 +0200 ++++ ./aclocal.m4 2003-07-29 16:24:19.572563656 +0200 +@@ -9873,7 +9873,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/admin/cvs.sh ./admin/cvs.sh +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/admin/cvs.sh 2003-05-07 13:43:53.000000000 +0200 ++++ ./admin/cvs.sh 2003-07-29 16:24:19.578562744 +0200 +@@ -27,7 +27,7 @@ + + check_autotool_versions() + { +-AUTOCONF_VERSION=`$AUTOCONF --version | head -1` ++AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1` + case $AUTOCONF_VERSION in + Autoconf*2.5* | autoconf*2.5* ) : ;; + "" ) +@@ -42,7 +42,7 @@ + ;; + esac + +-AUTOHEADER_VERSION=`$AUTOHEADER --version | head -1` ++AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1` + case $AUTOHEADER_VERSION in + Autoconf*2.5* | autoheader*2.5* ) : ;; + "" ) +@@ -57,7 +57,7 @@ + ;; + esac + +-AUTOMAKE_STRING=`$AUTOMAKE --version | head -1` ++AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1` + case $AUTOMAKE_STRING in + automake*1.5d* ) + echo "*** YOU'RE USING $AUTOMAKE_STRING." +@@ -247,10 +247,10 @@ + echo "AC_OUTPUT" >> configure.in.new + modulename= + if test -f configure.in.in; then +- if head -2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then ++ if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then + kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"` + fi +- if head -2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then ++ if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then + line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in` + if test -n "$line"; then + modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"` +@@ -290,7 +290,7 @@ + done + rm -f configure.files + touch configure.files +-if test -f configure.in.in && head -2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then ++if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then + echo $admindir/configure.in.min >> configure.files + fi + test -f configure.in.in && echo configure.in.in >> configure.files +@@ -305,8 +305,8 @@ + subdirs() + { + dirs= +-compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -1` +-compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -1` ++compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1` ++compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1` + for i in `ls -1`; do + if test -f $i/Makefile.am; then + case " $compilefirst $compilelast " in +@@ -323,11 +323,11 @@ + done + + (for d in $dirs; do +- list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -1` ++ list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` + for s in $list; do + echo $s $d + done +- list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -1` ++ list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` + for s in $list; do + echo $d $s + done +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/admin/libtool.m4.in ./admin/libtool.m4.in +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/admin/libtool.m4.in 2003-05-07 13:43:53.000000000 +0200 ++++ ./admin/libtool.m4.in 2003-07-29 16:24:19.610557880 +0200 +@@ -4503,7 +4503,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/configure ./configure +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/configure 2003-05-13 13:08:06.000000000 +0200 ++++ ./configure 2003-07-29 16:24:19.823525504 +0200 +@@ -8030,7 +8030,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ archive_expsym_cmds='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +@@ -13973,7 +13973,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- archive_expsym_cmds_GCJ='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ archive_expsym_cmds_GCJ='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +diff -rNu ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/klipper/klipperrc.desktop ./klipper/klipperrc.desktop +--- ../../../../foo/kdebase-3.1.2/work/kdebase-3.1.2/klipper/klipperrc.desktop2003-05-07 13:44:15.000000000 +0200 ++++ ./klipper/klipperrc.desktop 2003-07-29 16:24:19.834523832 +0200 +@@ -144,7 +144,7 @@ + Regexp=^https?://. + + [Action_1/Command_0] +-Commandline=dcop `dcop|grep konqueror|head -1` default 'createNewWindow(QString)' %s || kfmclient exec %s ++Commandline=dcop `dcop|grep konqueror|head -n 1` default 'createNewWindow(QString)' %s || kfmclient exec %s + Description=Open with &Konqueror + Description[af]=Open met Konqueror + Description[az]=&Konqueror ilÉ Aç diff -rNu /usr/portage/kde-base/kdebase/kdebase-3.1.2.ebuild ./kdebase-3.1.2.ebuild --- /usr/portage/kde-base/kdebase/kdebase-3.1.2.ebuild 2003-07-23 01:08:18.000000000 +0200 +++ ./kdebase-3.1.2.ebuild 2003-07-29 16:19:41.779794576 +0200 @@ -6,7 +6,7 @@ IUSE="ldap pam motif encode oggvorbis cups ssl opengl samba java" DESCRIPTION="KDE base packages: the desktop, panel, window manager, konqueror..." -KEYWORDS="x86 ppc sparc alpha hppa" +KEYWORDS="x86 ppc sparc alpha hppa ~amd64" newdepend ">=media-sound/cdparanoia-3.9.8 ldap? ( >=net-nds/openldap-1.2 ) @@ -38,7 +38,7 @@ use pam && myconf="$myconf --with-pam=yes" || myconf="$myconf --with-pam=no --with-shadow" use java && myconf="$myconf --with-java=$(java-config --jdk-home)" || myconf="$myconf --without-java" -PATCHES="$FILESDIR/$PVR/sftp.patch $FILESDIR/$PVR/fontconfig-2.2-support.patch" +PATCHES="$FILESDIR/$PVR/sftp.patch $FILESDIR/$PVR/fontconfig-2.2-support.patch $FILESDIR/$PVR/coreutils-5.0.patch" src_compile() { rm -f configure configure.in # to make sure the fontconfig patch takes effect
Created attachment 15205 [details, diff] change -1 to -n 1
http://bugs.kde.org/show_bug.cgi?id=61830
I just noticed that this has been remedied in kde 3.1.3, which are we working on unveiling at this very moment.
I see the problem in 3.1.3 too. But these files are not in the kde.org cvs. generated by auto* ? dipol kdebase-3.1.3 # grep -r "head -1" * work/kdebase-3.1.3/admin/libtool.m4.in: _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -1 $export_symbols`" = xEXPORTS; then work/kdebase-3.1.3/aclocal.m4: _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -1 $export_symbols`" = xEXPORTS; then work/kdebase-3.1.3/configure: archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then work/kdebase-3.1.3/configure: archive_expsym_cmds_GCJ='if test "x`head -1 $export_symbols`" = xEXPORTS; then work/kdebase-3.1.3/acinclude.m4: _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`head -1 $export_symbols`" = xEXPORTS; then
Well, that's no good. I'll look into having the kde eclass functions attempt to auto replace this stuff as opposed to using a patch. that way, it will always work, and work for all kde packages.
I've added a function in kde-functions.eclass that scans for "head -1" and replaces it with "head -n 1" (and the same for head -2). I've updated the 3.1.3 ebuild to reflect this change. Can you please test the new 3.1.3 ebuild, or backport these fixes to a 3.1.2 and see if this fixes your compilation problems?
all of the known head problems should be fixed.