Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 40296 - kernel-2.eclass v1.24 patch order bug
Summary: kernel-2.eclass v1.24 patch order bug
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High major (vote)
Assignee: x86-kernel@gentoo.org (DEPRECATED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-02-03 10:45 UTC by Mark Wagner
Modified: 2004-02-04 08:16 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Wagner 2004-02-03 10:45:47 UTC
Trying to emerge mm-sources-2.6.2_rc2-r1.ebuild. Was failing. Found that the patch order wasn't being respected. Was trying to apply 2/2.6.2-rc2-mm1.patch before 1/patch-2.6.2-rc2.patch even though the first was in the "2" dir and the second was in the "1" dir.

Traced the cause to /usr/portage/eclass/kernel-2.eclass line 365:

365: for i in $(find ${x} -type d)
366: do
367:        KPATCH_DIR="${KPATCH_DIR} ${i}"
368: done

The patch order is whatever order "find" finds the dirs. It looks to be the inode number. I suggest changing line 365 to be

for i in $(find ${x} -type d | sort -n)


Reproducible: Always
Steps to Reproduce:
1. ebuild mm-sources-2.6.2_rc2-r1.ebuild unpack
2. Wait for /var/tmp/portage/mm-sources-2.6.2_rc2-r1/work to be made.
3. Pause ebuild (ctrl-z).
4. cd /var/tmp/portage/mm-sources-2.6.2_rc2-r1/work
5. mkdir patches
6. mkdir patches/2
7. mkdir patches/1
8. stat -c "%i" patches/2 # look at inode number, e.g., 531912
9. stat -c "%i" patches/1 # look at inode number, e.g., 531913
10. Make sure inode of patches/2 < patches/1.
11. chown -R portage patches
12. Resume ebuild (fg).
13. Wait for error.

Note that I had to contrive these steps. In reality, somehow, the inode of patches/2 was less than patches/1 automatically.
Actual Results:  
 * Applying 2.6.2-rc2-mm1.patch...
patch: pch.c:614: intuit_diff_type: Assertion `i0 != NONE' failed.
/usr/sbin/ebuild.sh: line 1430:  6460 Aborted                 ( patch
-p${PATCH_DEPTH} --dry-run -f <${i} >/dev/null )
patch: pch.c:614: intuit_diff_type: Assertion `i0 != NONE' failed.
/usr/sbin/ebuild.sh: line 1430:  6461 Aborted                 ( patch
-p${PATCH_DEPTH} --dry-run -f <${i} >/dev/null )                               
    [ !! ] 
 
!!! ERROR: sys-kernel/mm-sources-2.6.2_rc2-r1 failed.
!!! Function unipatch, Line 418, Exitcode 1
!!! Unable to dry-run patch.


Expected Results:  
Since patch-2.6.2-rc2.patch is in patches/1 it should be applied first, not
patches/2/2.6.2-rc2-mm1.patch.

Portage 2.0.50_pre21 (default-x86-1.4, gcc-3.3.2, glibc-2.3.3_pre20040117-r0,
2.6.2-rc2-mm1)
=================================================================
System uname: 2.6.2-rc2-mm1 i686 AMD Athlon(tm) Processor
Gentoo Base System version 1.4.3.12
Autoconf: sys-devel/autoconf-2.59
Automake: sys-devel/automake-1.7.8
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=athlon-tbird -O3 -pipe"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3.1/share/config /usr/kde/3/share/config /usr/share/config
/usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/
/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/
/usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-march=athlon-tbird -O3 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox userpriv usersandbox"
GENTOO_MIRRORS="http://www.lanfear.net/ http://gentoo.ccccom.com
ftp://gentoo.ccccom.com http://mirrors.tds.net/gentoo
ftp://mirrors.tds.net/gentoo ftp://gentoo.noved.org/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="3dnow X Xaw3d aalib alsa apache2 apm arts avi berkdb bonobo crypt cups dga
emacs encode esd foomaticdb gd gdbm gif gnome gphoto2 gpm gtk gtk2 gtkhtml guile
imap imlib java jikes jpeg ladcca lcms libg++ libwww mad mikmod mmx motif
mozilla mpeg mysql ncurses nls oggvorbis opengl oss pam pda pdflib perl png
postgres python qt quicktime readline sdl slang slp snmp spell ssl svga tcltk
tcpd tetex tiff tktcl truetype usb wmf x86 xml xml2 xmms xv zlib"
Comment 1 John Mylchreest (RETIRED) gentoo-dev 2004-02-04 07:30:59 UTC
his has actually already been fixed but not yet n portage.
ill close now and commit when i get home :)
Comment 2 John Mylchreest (RETIRED) gentoo-dev 2004-02-04 08:16:24 UTC
resolving