OpenWrt Forum Archive

Topic: Massive Patch Failures

The content of this topic has been archived on 26 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Before we dive into fixing the following patch problem I would like to ask if other people are also seeing this and if someone already made progress on this one.

S.

% grep -i 'not applied' typescript
Testing... 03_2.4.21.patch NOT APPLIED (22 missing files)
Testing... 04_2.4.22.patch NOT APPLIED (4 missing files)
Testing... 05_2.4.23.patch NOT APPLIED (62 rejects out of 65 hunks)
Testing... 06_2.4.23_core_changes.patch NOT APPLIED (2 rejects out of 2 hunks)
Testing... 60_ecn_raw_unclone.patch NOT APPLIED (3 rejects out of 3 hunks)
Testing... 61-remove-memsets.patch NOT APPLIED (2 rejects out of 2 hunks)
Testing... 61_nulldev_alignment.patch NOT APPLIED (1 rejects out of 1 hunks)
Testing... 64_masquerade-sameip-noflush.patch NOT APPLIED (3 rejects out of 3 hunks)
Testing... 69_amanda-helpers.patch NOT APPLIED (7 rejects out of 7 hunks)
Testing... 70_expect-evict-order.patch NOT APPLIED (4 rejects out of 4 hunks)
Testing... 72_recent_procfs_fix.patch NOT APPLIED (2 rejects out of 2 hunks)
Testing... 74_listhelp.patch NOT APPLIED (2 rejects out of 2 hunks)
Testing... 75_selective_cleanup.patch NOT APPLIED (2 rejects out of 2 hunks)
Testing... 76_conntrack_bucket_sysctl.patch NOT APPLIED (3 rejects out of 3 hunks)
Testing... 88_ip_queue-maxlen.patch NOT APPLIED (2 rejects out of 2 hunks)
Testing... 90_fw_compat_local-nullbinding.patch NOT APPLIED (1 rejects out of 1 hunks)
Testing... 91_listhelp_fix.patch NOT APPLIED (1 rejects out of 1 hunks)
Testing... 40_nf-log.patch NOT APPLIED (2 missing files)
Testing... 40_nf-log.patch.ipv6 NOT APPLIED (1 missing files)
Testing... 62_masquerade-oif.patch NOT APPLIED (1 rejects out of 1 hunks)
Testing... 92_redirect-indev-locking.patch NOT APPLIED (1 rejects out of 1 hunks)
Testing... HL.patch.ipv6 NOT APPLIED (2 missing files)
Testing... IPV4OPTSSTRIP.patch NOT APPLIED (1 missing files)
Testing... NETLINK.patch NOT APPLIED (2 missing files)
Testing... NETMAP.patch NOT APPLIED (1 missing files)
Testing... REJECT.patch.ipv6 NOT APPLIED (1 missing files)
Testing... SAME.patch NOT APPLIED (2 missing files)
Testing... TTL.patch NOT APPLIED (2 missing files)
Testing... connlimit.patch NOT APPLIED (2 missing files)
Testing... dstlimit.patch NOT APPLIED (2 missing files)
Testing... fuzzy.patch NOT APPLIED (2 missing files)
Testing... fuzzy6.patch.ipv6 NOT APPLIED (2 missing files)
Testing... iprange.patch NOT APPLIED (2 missing files)
Testing... ipv4options.patch NOT APPLIED (2 missing files)
Testing... nth.patch NOT APPLIED (2 missing files)
Testing... nth6.patch.ipv6 NOT APPLIED (2 missing files)
Testing... osf.patch NOT APPLIED (2 missing files)
Testing... pool.patch NOT APPLIED (5 missing files)
Testing... psd.patch NOT APPLIED (2 missing files)
Testing... quota.patch NOT APPLIED (2 missing files)
Testing... random.patch NOT APPLIED (2 missing files)
Testing... random6.patch.ipv6 NOT APPLIED (2 missing files)
Testing... raw.patch NOT APPLIED (2 missing files)
Testing... realm.patch NOT APPLIED (2 missing files)
Testing... set.patch NOT APPLIED (14 missing files)
Testing... u32.patch NOT APPLIED (2 missing files)
Testing... CLASSIFY.patch NOT APPLIED (2 missing files)
Testing... CONNMARK.patch NOT APPLIED (4 missing files)
connbytes.patch NOT APPLIED (2 missing files)
connbytes.patch NOT APPLIED (2 missing files)
Testing... IPMARK.patch NOT APPLIED (2 missing files)
Testing... condition.patch NOT APPLIED (2 missing files)
Testing... h323-conntrack-nat.patch NOT APPLIED (3 missing files)
Testing... mms-conntrack-nat.patch NOT APPLIED (3 missing files)
Testing... pptp-conntrack-nat.patch NOT APPLIED (8 missing files)
Testing... string.patch NOT APPLIED (2 missing files)

Hi Sateh,

p-o-m (patch-o-matic) is a collection of patches for Netfilter, that can be applied to many kernel versions.
Before applying a given patch, p-o-m will check if it's applicable : that's the output you just grepped...

--
Nico

Hi Sateh,

p-o-m (patch-o-matic) is a collection of patches for Netfilter, that can be applied to many kernel versions.
Before applying a given patch, p-o-m will check if it's applicable : that's the output you just grepped...

--
Nico

No, there are really things broken in this case. For example, there are no /proc/net/iptables_* entries. And many modules will not build. The netfilter system is simply not up to date.

This used to work fine in an older release of OpenWRT though. There are other reports of this on the forum.

S.

Sateh,

i've just updated a buildroot to the latest CVS (cvs up -ACdP), built it and issued a grep too:

$ grep "Patch .* applied cleanly" <buildroot-20041007-1135.log
   Patch submitted/03_2.4.21.patch applied cleanly.
   Patch submitted/03_2.4.21.patch applied cleanly.
   Patch submitted/04_2.4.22.patch applied cleanly.
   Patch submitted/04_2.4.22.patch applied cleanly.
   Patch submitted/05_2.4.23.patch applied cleanly.
   Patch submitted/05_2.4.23.patch applied cleanly.
   Patch submitted/06_2.4.23_core_changes.patch applied cleanly.
   Patch submitted/06_2.4.23_core_changes.patch applied cleanly.
   Patch submitted/60_ecn_raw_unclone.patch applied cleanly.
   Patch submitted/60_ecn_raw_unclone.patch applied cleanly.
   Patch submitted/61-remove-memsets.patch applied cleanly.
   Patch submitted/61-remove-memsets.patch applied cleanly.
   Patch submitted/61_nulldev_alignment.patch applied cleanly.
   Patch submitted/61_nulldev_alignment.patch applied cleanly.
   Patch submitted/64_masquerade-sameip-noflush.patch applied cleanly.
   Patch submitted/64_masquerade-sameip-noflush.patch applied cleanly.
   Patch submitted/69_amanda-helpers.patch applied cleanly.
   Patch submitted/69_amanda-helpers.patch applied cleanly.
   Patch submitted/70_expect-evict-order.patch applied cleanly.
   Patch submitted/70_expect-evict-order.patch applied cleanly.
   Patch submitted/72_recent_procfs_fix.patch applied cleanly.
   Patch submitted/72_recent_procfs_fix.patch applied cleanly.
   Patch submitted/74_listhelp.patch applied cleanly.
   Patch submitted/74_listhelp.patch applied cleanly.
   Patch submitted/75_selective_cleanup.patch applied cleanly.
   Patch submitted/75_selective_cleanup.patch applied cleanly.
   Patch submitted/76_conntrack_bucket_sysctl.patch applied cleanly.
   Patch submitted/76_conntrack_bucket_sysctl.patch applied cleanly.
   Patch submitted/88_ip_queue-maxlen.patch applied cleanly.
   Patch submitted/88_ip_queue-maxlen.patch applied cleanly.
   Patch submitted/90_fw_compat_local-nullbinding.patch applied cleanly.
   Patch submitted/90_fw_compat_local-nullbinding.patch applied cleanly.
   Patch submitted/91_listhelp_fix.patch applied cleanly.
   Patch submitted/91_listhelp_fix.patch applied cleanly.
   Patch pending/40_nf-log.patch applied cleanly.
   Patch pending/40_nf-log.patch applied cleanly.
   Patch pending/40_nf-log.patch.ipv6 applied cleanly.
   Patch pending/40_nf-log.patch.ipv6 applied cleanly.
   Patch pending/62_masquerade-oif.patch applied cleanly.
   Patch pending/62_masquerade-oif.patch applied cleanly.
   Patch pending/92_redirect-indev-locking.patch applied cleanly.
   Patch pending/92_redirect-indev-locking.patch applied cleanly.
   Patch base/HL.patch.ipv6 applied cleanly.
   Patch base/HL.patch.ipv6 applied cleanly.
   Patch base/IPV4OPTSSTRIP.patch applied cleanly.
   Patch base/IPV4OPTSSTRIP.patch applied cleanly.
   Patch base/NETLINK.patch applied cleanly.
   Patch base/NETLINK.patch applied cleanly.
   Patch base/NETMAP.patch applied cleanly.
   Patch base/NETMAP.patch applied cleanly.
   Patch base/REJECT.patch.ipv6 applied cleanly.
   Patch base/REJECT.patch.ipv6 applied cleanly.
   Patch base/SAME.patch applied cleanly.
   Patch base/SAME.patch applied cleanly.
   Patch base/TTL.patch applied cleanly.
   Patch base/TTL.patch applied cleanly.
   Patch base/connlimit.patch applied cleanly.
   Patch base/connlimit.patch applied cleanly.
   Patch base/dstlimit.patch applied cleanly.
   Patch base/dstlimit.patch applied cleanly.
   Patch base/fuzzy.patch applied cleanly.
   Patch base/fuzzy.patch applied cleanly.
   Patch base/fuzzy6.patch.ipv6 applied cleanly.
   Patch base/fuzzy6.patch.ipv6 applied cleanly.
   Patch base/iprange.patch applied cleanly.
   Patch base/iprange.patch applied cleanly.
   Patch base/ipv4options.patch applied cleanly.
   Patch base/ipv4options.patch applied cleanly.
   Patch base/nth.patch applied cleanly.
   Patch base/nth.patch applied cleanly.
   Patch base/nth6.patch.ipv6 applied cleanly.
   Patch base/nth6.patch.ipv6 applied cleanly.
   Patch base/osf.patch applied cleanly.
   Patch base/osf.patch applied cleanly.
   Patch base/pool.patch applied cleanly.
   Patch base/pool.patch applied cleanly.
   Patch base/psd.patch applied cleanly.
   Patch base/psd.patch applied cleanly.
   Patch base/quota.patch applied cleanly.
   Patch base/quota.patch applied cleanly.
   Patch base/random.patch applied cleanly.
   Patch base/random.patch applied cleanly.
   Patch base/random6.patch.ipv6 applied cleanly.
   Patch base/random6.patch.ipv6 applied cleanly.
   Patch base/raw.patch applied cleanly.
   Patch base/raw.patch applied cleanly.
   Patch base/realm.patch applied cleanly.
   Patch base/realm.patch applied cleanly.
   Patch base/set.patch applied cleanly.
   Patch base/set.patch applied cleanly.
   Patch base/u32.patch applied cleanly.
   Patch base/u32.patch applied cleanly.
   Patch extra/CLASSIFY.patch applied cleanly.
   Patch extra/CLASSIFY.patch applied cleanly.
   Patch extra/CONNMARK.patch applied cleanly.
   Patch extra/CONNMARK.patch applied cleanly.
   Patch extra/IPMARK.patch applied cleanly.
   Patch extra/IPMARK.patch applied cleanly.
   Patch extra/condition.patch applied cleanly.
   Patch extra/condition.patch applied cleanly.
   Patch extra/h323-conntrack-nat.patch applied cleanly.
   Patch extra/h323-conntrack-nat.patch applied cleanly.
   Patch extra/mms-conntrack-nat.patch applied cleanly.
   Patch extra/mms-conntrack-nat.patch applied cleanly.
   Patch extra/pptp-conntrack-nat.patch applied cleanly.
   Patch extra/pptp-conntrack-nat.patch applied cleanly.
   Patch extra/string.patch applied cleanly.
   Patch extra/string.patch applied cleanly.

Most of the "Testing ..." lines you mentionned are in fact applied cleanly.
So what's this massive patch failure you're talking about ?

--
Nico

Sateh,

i've just updated a buildroot to the latest CVS (cvs up -ACdP), built it and issued a grep too:

$ grep "Patch .* applied cleanly" <buildroot-20041007-1135.log
   Patch submitted/03_2.4.21.patch applied cleanly.
   ...
   Patch extra/string.patch applied cleanly.

Most of the "Testing ..." lines you mentionned are in fact applied cleanly.
So what's this massive patch failure you're talking about ?

Nico, the problem I am talking about is outlined in the first message of this thread; patches that previously applied without any problem are now failing.

The result of this is:

* The iptables is half-baked, some things applied, other things didn't. Half baked means unreliable.

* An example of missing functionality is the dissapearance of /proc/net/ip_tables_targets and /proc/net/ip_tables_matches

* Another problem is that some iptables modules are missing. Here is also a report for that: http://www.openwrt.org/forum/viewtopic.php?t=445

My question still stands: Are these observations right and has anyone looked at it. If not then I wil. I can use hints about this.

S.

Nico, the problem I am talking about is outlined in the first message of this thread; patches that previously applied without any problem are now failing.

Can you be more precise, what patches are you talking about ? What patches in p-o-m did fail to apply, except connbytes ?

* An example of missing functionality is the dissapearance of /proc/net/ip_tables_targets and /proc/net/ip_tables_matches

I have a router with CVS as of Tue, 05 Oct and I am not experiencing theese problems

# busybox 2>&1 |head -n 1
BusyBox v1.00-rc3 (2004.10.05-19:09+0000) multi-call binary

# ls -l /proc/net/ip_tables_*
-r--r--r--    1 root     root            0 Jan  2 19:49 /proc/net/ip_tables_matches
-r--r--r--    1 root     root            0 Jan  2 19:49 /proc/net/ip_tables_names
-r--r--r--    1 root     root            0 Jan  2 19:49 /proc/net/ip_tables_targets

# cat /proc/net/ip_tables_matches
tcpmss
state
multiport
mark
tcp
udp
icmp

# cat /proc/net/ip_tables_targets
TCPMSS
LOG
REDIRECT
MASQUERADE
MARK
REJECT
DNAT
SNAT

ERROR

I think most netfilter extensions are built:

$ tar -jtvf openwrt-kmodules.tar.bz2 modules/2.4.20/kernel/net/ipv4/netfilter/
drwxr-xr-x nthill/nthill     0 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/
-rw-r--r-- nthill/nthill  2260 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_helper.o
-rw-r--r-- nthill/nthill  2612 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_limit.o
-rw-r--r-- nthill/nthill  2016 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_quota.o
-rw-r--r-- nthill/nthill  2144 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_iprange.o
-rw-r--r-- nthill/nthill  9720 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_dstlimit.o
-rw-r--r-- nthill/nthill  2728 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_set.o
-rw-r--r-- nthill/nthill  3028 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_SET.o
-rw-r--r-- nthill/nthill 26008 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ip_set.o
-rw-r--r-- nthill/nthill  5724 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ip_set_ipmap.o
-rw-r--r-- nthill/nthill  5420 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ip_set_portmap.o
-rw-r--r-- nthill/nthill  5500 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ip_set_macipmap.o
-rw-r--r-- nthill/nthill  5876 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ip_set_iphash.o
-rw-r--r-- nthill/nthill  1812 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_pool.o
-rw-r--r-- nthill/nthill  1972 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_POOL.o
-rw-r--r-- nthill/nthill  6848 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ip_pool.o
-rw-r--r-- nthill/nthill  1972 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_mac.o
-rw-r--r-- nthill/nthill  1540 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_pkttype.o
-rw-r--r-- nthill/nthill  1552 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_tos.o
-rw-r--r-- nthill/nthill  3632 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_condition.o
-rw-r--r-- nthill/nthill  3492 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_psd.o
-rw-r--r-- nthill/nthill  2356 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_ipv4options.o
-rw-r--r-- nthill/nthill 14632 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_recent.o
-rw-r--r-- nthill/nthill  2312 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_ecn.o
-rw-r--r-- nthill/nthill  1712 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_dscp.o
-rw-r--r-- nthill/nthill  1720 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_ah.o
-rw-r--r-- nthill/nthill  1720 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_esp.o
-rw-r--r-- nthill/nthill  1756 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_length.o
-rw-r--r-- nthill/nthill  2064 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_ttl.o
-rw-r--r-- nthill/nthill  1816 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_connmark.o
-rw-r--r-- nthill/nthill  3680 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_connlimit.o
-rw-r--r-- nthill/nthill  2780 2004-10-03 21:54:48 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_conntrack.o
-rw-r--r-- nthill/nthill 12060 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_unclean.o
-rw-r--r-- nthill/nthill  3796 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_string.o
-rw-r--r-- nthill/nthill  2296 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_physdev.o
-rw-r--r-- nthill/nthill 19224 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_layer7.o
-rw-r--r-- nthill/nthill  3476 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_MIRROR.o
-rw-r--r-- nthill/nthill  2328 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_CLASSIFY.o
-rw-r--r-- nthill/nthill  2544 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_TOS.o
-rw-r--r-- nthill/nthill  3584 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_ECN.o
-rw-r--r-- nthill/nthill  2704 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_DSCP.o
-rw-r--r-- nthill/nthill  2312 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_IPMARK.o
-rw-r--r-- nthill/nthill 15776 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ip_nat_snmp_basic.o
-rw-r--r-- nthill/nthill  2520 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_CONNMARK.o
-rw-r--r-- nthill/nthill  2688 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_TTL.o
-rw-r--r-- nthill/nthill  3068 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_NETLINK.o
-rw-r--r-- nthill/nthill  2420 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_IPV4OPTSSTRIP.o
-rw-r--r-- nthill/nthill  8256 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ipt_ULOG.o
-rw-r--r-- nthill/nthill 18056 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/arp_tables.o
-rw-r--r-- nthill/nthill  2432 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/arpt_mangle.o
-rw-r--r-- nthill/nthill  2844 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/arptable_filter.o
-rw-r--r-- nthill/nthill 13432 2004-10-03 21:54:49 modules/2.4.20/kernel/net/ipv4/netfilter/ip_queue.o

* Another problem is that some iptables modules are missing. Here is also a report for that: http://www.openwrt.org/forum/viewtopic.php?t=445

Only a subset of iptables extensions are built and embedded in the firmware. I think the problems experienced by Squinter on Tue, 14 Sep were fixed in CVS:

...

2004-09-19  mbm

    * make/netfilter.mk, make/openwrt.mk:

    moved netfilter patches to avoid conflicts with patch-o-matic

2004-09-19  mbm

    * sources/openwrt/kernel/patches/100-revert_netfilter.patch:

    moved

2004-09-19  mbm

    *
      sources/openwrt/kernel/netfilter/patches/100-revert_netfilter.patch:

    netfilter patches must be applied before other kernel patches to avoid breaking patch-o-matic

...

I definitively can't understand what your problem is... Are you really sure you're playing with recent CVS ?

--
Nico

Nico wrote:

I definitively can't understand what your problem is... Are you really sure you're playing with recent CVS ?

You are right, in HEAD the patch that adds /proc/net/ip_tables_targets works again. It didn't in the snapshot we used from 20040807. I seem to have overlooked that.

But, even in HEAD there are some patches that fail because linksys added their own stuff to netfilter. They added support for H.323 for example, which conflicts with submitted/03_2.4.21.patch.

So it still looks somewhat fishy, and we are looking into that to see what exactly is going on.

S.

The messages in the log are somewhat confusing though, for example:

Testing... 60_ecn_raw_unclone.patch NOT APPLIED (3 rejects out of 3 hunks)

and a little later:

Testing patch submitted/60_ecn_raw_unclone.patch...
   Patch submitted/60_ecn_raw_unclone.patch applied cleanly.
Applying patch submitted/60_ecn_raw_unclone.patch...
   Patch submitted/60_ecn_raw_unclone.patch applied cleanly.

Does this mean the patch worked, or did not work? What kind of magic does patch-o-magic perform to make the patch apply?

The discussion might have continued from here.