Subject: PATCH: pkgviews and wrappers
To: None <tech-pkg@netbsd.org>
From: Julio M. Merino Vidal <jmmv@menta.net>
List: tech-pkg
Date: 07/08/2004 21:05:39
This is a multi-part message in MIME format.

--Multipart=_Thu__8_Jul_2004_21_05_39_+0200_IdXP1GkIDN2zHHny
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hi all,

after some positive answers to my previous mail, I've patched pkg_install
to create wrappers for binaries instead of links.  I've tested it with
multiple packages with successful results :-)  A patch for pkg_install
is attached as patch.diff, and another one for bsd.pkg.mk as patch2.diff.

Package Makefiles can set the PLIST_EXEC_FILES variable to specify
expressions to match executable files.  The default is bin/* and sbin/*,
but there are packages that may install binaries outside these locations
(like libexec).  These should be overriden by wrappers as well, so this
is why the variable exists.

I've also taken minskim@'s suggestion and added another variable that can
be set in package Makefiles, named WRAPPER_VARDIRS.  For example, pkgconfig
will do, from its Makefile:

WRAPPER_VARDIRS=	PKG_CONFIG_PATH:lib/pkgconfig

and the generated wrapper will take care to set PKG_CONFIG_PATH properly,
WRT the view where it's located.

Even though, I've had to do an ugly hack: the addition of the '-i'
flag to pkg_delete to skip checksums when removing a package from a view
(it worked before because it verified the symlinks, but now fails because
it verifies the wrappers).  Any better ideas to handle this situation?

Comments?

-- 
Julio M. Merino Vidal <jmmv@menta.net>
http://www.livejournal.com/users/jmmv/
The NetBSD Project - http://www.NetBSD.org/

--Multipart=_Thu__8_Jul_2004_21_05_39_+0200_IdXP1GkIDN2zHHny
Content-Type: application/octet-stream;
 name="patch.diff"
Content-Disposition: attachment;
 filename="patch.diff"
Content-Transfer-Encoding: base64

SW5kZXg6IGxpbmtmYXJtLjEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3Qvc3JjL3Vzci5z
YmluL3BrZ19pbnN0YWxsL3ZpZXcvbGlua2Zhcm0uMSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42
CmRpZmYgLXUgLXUgLXIxLjYgbGlua2Zhcm0uMQotLS0gbGlua2Zhcm0uMQkxMiBOb3YgMjAwMyAx
MzozMTowNyAtMDAwMAkxLjYKKysrIGxpbmtmYXJtLjEJOCBKdWwgMjAwNCAxOTowMDowMiAtMDAw
MApAQCAtMzEsNyArMzEsNyBAQAogLlwiIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCiAuXCIgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAuXCIKLS5EZCBTZXB0ZW1iZXIgMiwgMjAwMworLkRkIEp1bHkg
OCwgMjAwNAogLkR0IExJTktGQVJNIDEKIC5PcwogLlNoIE5BTUUKQEAgLTEyNiw2ICsxMjYsMTgg
QEAKIGFuZAogLkFyIHN0b3dkaXIKIGRpcmVjdG9yaWVzLgorLkl0IEV2IFBMSVNUX0VYRUNfRklM
RVMKK1RoaXMgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBmaWxlcyBpbgorLkFyIHBhY2thZ2UKK3Ro
YXQgc2hvdWxkIGJlIG1hcmtlZCBhcyBleGVjdXRhYmxlcyBhbmQgdHJlYXRlZCBkaWZmZXJlbnRs
eSB3aGVuIGFkZGluZyBvcgorcmVtb3ZpbmcgdGhlIHBhY2thZ2UgaW5zdGFuY2UgZnJvbQorLkFy
IHZpZXcgLgorLkV2IFBMSVNUX0VYRUNfRklMRVMKK2lzIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qg
b2Ygc2hlbGwgZ2xvYiBwYXR0ZXJucyB0aGF0IG1hdGNoIGZpbGVzIHJlbGF0aXZlCit0byB0aGUK
Ky5BciBwYWNrYWdlCitkZXBvdCBkaXJlY3RvcnksIGFuZCBpdCBkZWZhdWx0cyB0bworLlNxIGJp
bi8qIHNiaW4vKiAuCiAuSXQgRXYgUExJU1RfSUdOT1JFX0ZJTEVTCiBUaGlzIGNhbiBiZSB1c2Vk
IHRvIHNwZWNpZnkgZmlsZXMgaW4KIC5BciBwYWNrYWdlCkBAIC0xMzYsNiArMTQ4LDE0IEBACiB0
byB0aGUKIC5BciBwYWNrYWdlCiBkaXJlY3RvcnksIGFuZCBpdCBkZWZhdWx0cyB0byAiaW5mby9k
aXIgKlt+I10gKi5PTEQgKi5vcmlnICosdiIuCisuSXQgRXYgV1JBUFBFUl9WQVJESVJTCitUaGlz
IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZXh0cmEgdmFyaWFibGVzIHRoYXQgaGF2ZSB0byBiZSBv
dmVycmlkZW4gZnJvbQordGhlIHdyYXBwZXJzIGNyZWF0ZWQgdG8gZXhlY3V0ZSBiaW5hcmllcy4K
Ky5FdiBXUkFQUEVSX1ZBUkRJUlMKK2lzIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgd2hlcmUgZWFj
aCBpdGVtIGNvbnRhaW5zIHRoZSBuYW1lIG9mIHRoZQordmFyaWFibGUgdG8gYmUgb3ZlcnJpZGVu
LCBmb2xsb3dlZCBieSBhIGNvbG9uIHN5bWJvbCBhbmQgZm9sbG93ZWQgYnkKK2EgcGF0aCAocmVs
YXRpdmUgdG8gdGhlCisuQXIgdmlldyApIC4KIC5FbAogLlNoIFNFRSBBTFNPCiAuWHIgbG5kaXIg
MSAsCkluZGV4OiBsaW5rZmFybS5zaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9zcmMv
dXNyLnNiaW4vcGtnX2luc3RhbGwvdmlldy9saW5rZmFybS5zaCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS41CmRpZmYgLXUgLXUgLXIxLjUgbGlua2Zhcm0uc2gKLS0tIGxpbmtmYXJtLnNoCTMgSnVu
IDIwMDQgMTM6MTM6NDIgLTAwMDAJMS41CisrKyBsaW5rZmFybS5zaAk4IEp1bCAyMDA0IDE5OjAw
OjAyIC0wMDAwCkBAIC0zNSw2ICszNSw4IEBACiAjIHNldCAteAogCiAjIHNldCB1cCBwcm9ncmFt
IGRlZmluaXRpb25zCitjaG1vZHByb2c9L2Jpbi9jaG1vZAorY3V0cHJvZz0vdXNyL2Jpbi9jdXQK
IGZpbmRwcm9nPS91c3IvYmluL2ZpbmQKIGdyZXBwcm9nPS91c3IvYmluL2dyZXAKIGxucHJvZz0v
YmluL2xuCkBAIC00Myw2ICs0NSw3IEBACiBybXByb2c9L2Jpbi9ybQogcm1kaXJwcm9nPS9iaW4v
cm1kaXIKIHNlZHByb2c9L3Vzci9iaW4vc2VkCitzaHByb2c9L2Jpbi9zaAogc29ydHByb2c9L3Vz
ci9iaW4vc29ydAogCiB1c2FnZSgpIHsKQEAgLTYyLDggKzY1LDMwIEBACiAJZmkKIH0KIAorY3Jl
YXRld3JhcHBlcigpIHsKKwkjIFRoZSB0YXJnZXQgZmlsZSBzaG91bGRuJ3QgZXhpc3QsIGJ1dCB3
ZSBjaGVjayBhbnl3YXkgdG8gYXZvaWQKKwkjIHphcHBpbmcgYW4gZXhpc3RpbmcgZmlsZSAod2hp
Y2ggY2FuIGJlIGluIGFueSBvdGhlciBkZXBvdAorCSMgZGlyZWN0b3J5IHRoYW4gb3VycyEpLgor
CWlmIFsgLWYgIiQyLyQzIiBdOyB0aGVuCisJCWVjaG8gImxpbmtmYXJtOiBcYCQyLyQzJyBhbHJl
YWR5IGV4aXN0cyIKKwkJZXhpdCAxCisJZmkKKworCWVjaG8gIiMhICRzaHByb2ciID4kMi8kMwor
CWVjaG8gIlBLR19WSUVXQkFTRT0nJDInOyBleHBvcnQgUEtHX1ZJRVdCQVNFIiA+PiQyLyQzCisJ
Zm9yIHYgaW4gJHdyYXBwZXJ2YXJkaXJzOyBkbworCQl2YXI9YGVjaG8gJHYgfCAkY3V0cHJvZyAt
ZCA6IC1mIDFgCisJCWRpcj1gZWNobyAkdiB8ICRjdXRwcm9nIC1kIDogLWYgMi1gCisJCWVjaG8g
IiR2YXI9JyQyLyRkaXInOyBleHBvcnQgJHZhciIgPj4kMi8kMworCWRvbmUKKwllY2hvICJleGVj
ICQxLyQzIFwiXCRAXCIiID4+JDIvJDMKKwkkY2htb2Rwcm9nICt4ICQyLyQzCit9CisKK2V4ZWNm
aWxlcz0ke1BMSVNUX0VYRUNfRklMRVM6LSJiaW4vKiBzYmluLyoifQogaWdub3JlZmlsZXM9JHtQ
TElTVF9JR05PUkVfRklMRVM6LSJpbmZvL2RpciAqW34jXSAqLk9MRCAqLm9yaWcgKix2In0KIGxp
bmt0eXBlPS1zCit3cmFwcGVydmFyZGlycz0ke1dSQVBQRVJfVkFSRElSU30KIAogIyBkZWZhdWx0
IGFjdGlvbjogY3JlYXRlIGEgbGlua2Zhcm0gaW4gJHRhcmdldCBmcm9tICRzdG93ZGlyLyQxCiAj
IGkuZS4gbGlua2Zhcm0gLS10YXJnZXQ9JHtwcmVmaXh9LyR7dmlld30gLS1kaXI9JHtwcmVmaXh9
L3BhY2thZ2VzICQxCkBAIC0yMTYsMTAgKzI0MSwyOCBAQAogCQlkb25lCiAJCWNhc2UgJGlnbm9y
ZSBpbgogCQlubykKLQkJCWlmIFsgJHZlcmJvc2UgLWd0IDAgXTsgdGhlbgotCQkJCWVjaG8gIiRs
bnByb2cgJHtsaW5rdHlwZX0gJGZyb21kaXIvJGYgJHRvZGlyLyRmIgotCQkJZmkKLQkJCSRkb2l0
ICRsbnByb2cgJHtsaW5rdHlwZX0gJGZyb21kaXIvJGYgJHRvZGlyLyRmIDs7CisJCQlleGVjPW5v
CisJCQlmb3IgaSBpbiAkZXhlY2ZpbGVzOyBkbworCQkJCWNhc2UgJGYgaW4KKwkJCQkkaSkJZXhl
Yz15ZXM7IGJyZWFrIDs7CisJCQkJZXNhYworCQkJZG9uZQorCQkJY2FzZSAkZXhlYyBpbgorCQkJ
bm8pCisJCQkJaWYgWyAkdmVyYm9zZSAtZ3QgMCBdOyB0aGVuCisJCQkJCWVjaG8gIiRsbnByb2cg
JHtsaW5rdHlwZX0gIiBcCisJCQkJCSAgICAgIiRmcm9tZGlyLyRmICR0b2Rpci8kZiIKKwkJCQlm
aQorCQkJCSRkb2l0ICRsbnByb2cgJHtsaW5rdHlwZX0gJGZyb21kaXIvJGYgJHRvZGlyLyRmCisJ
CQkJOzsKKwkJCXllcykKKwkJCQlpZiBbICR2ZXJib3NlIC1ndCAwIF07IHRoZW4KKwkJCQkJZWNo
byAiY3JlYXRpbmcgd3JhcHBlciAkdG9kaXIvJGYuLi4iCisJCQkJZmkKKwkJCQkkZG9pdCBjcmVh
dGV3cmFwcGVyICRmcm9tZGlyICR0b2RpciAkZgorCQkJCTs7CisJCQllc2FjCisJCQk7OwogCQll
c2FjCiAJZG9uZSkKIAk7OwpJbmRleDogcGtnX3ZpZXcuMQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3Zzcm9vdC9zcmMvdXNyLnNiaW4vcGtnX2luc3RhbGwvdmlldy9wa2dfdmlldy4xLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjEwCmRpZmYgLXUgLXUgLXIxLjEwIHBrZ192aWV3LjEKLS0tIHBrZ192
aWV3LjEJMyBKdW4gMjAwNCAxNTo1NDowOSAtMDAwMAkxLjEwCisrKyBwa2dfdmlldy4xCTggSnVs
IDIwMDQgMTk6MDA6MDIgLTAwMDAKQEAgLTMxLDcgKzMxLDcgQEAKIC5cIiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRQogLlwiIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogLlwiCi0uRGQgU2VwdGVtYmVy
IDgsIDIwMDMKKy5EZCBKdWx5IDgsIDIwMDQKIC5EdCBQS0dfVklFVyAxCiAuT3MKIC5TaCBOQU1F
CkBAIC00MSw2ICs0MSw3IEBACiAuTm0KIC5PcCBGbCBuVnYKIC5PcCBGbCBkIEFyIHN0b3dkaXIK
Ky5PcCBGbCBlIEFyIGV4ZWMKIC5PcCBGbCBpIEFyIGlnbm9yZQogLk9wIEZsIGsgQXIgcGtnX2Ri
ZGlyCiAuT3AgRmwgVyBBciB2aWV3YmFzZQpAQCAtMTAwLDYgKzEwMSwxNSBAQAogLlBhIHBhY2th
Z2VzCiBkaXJlY3RvcnkgdW5kZXIKIC5BciB2aWV3YmFzZSAuCisuSXQgRmwgZSBBciBleGVjCitB
ZGQKKy5BciBleGVjCit0byB0aGUgbGlzdCBvZiBmaWxlcyBpbgorLkFyIHBhY2thZ2UKK3RoYXQg
YXJlIGV4ZWN1dGFibGUuCitUaGVzZSBmaWxlcyB3b24ndCBiZSBzeW1saW5rZWQgaW50bworLkFy
IHZpZXcgOworYSB3cmFwcGVyIHdpbGwgYmUgY3JlYXRlZCBmb3IgdGhlbSBpbnN0ZWFkLgogLkl0
IEZsIGkgQXIgaWdub3JlCiBBZGQKIC5BciBpZ25vcmUKQEAgLTE5MCw2ICsyMDAsMjUgQEAKIGlz
IHRoZSBwYWNrYWdlIGRhdGFiYXNlIGRpcmVjdG9yeSBmb3IgdGhlIGRlZmF1bHQgdmlldywKIG90
aGVyd2lzZSBpdCBkZWZhdWx0cyB0bwogLlBhIC92YXIvZGIvcGtnIC4KKy5JdCBFdiBQTElTVF9F
WEVDX0ZJTEVTCitUaGlzIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZmlsZXMgaW4KKy5BciBwYWNr
YWdlCit0aGF0IHNob3VsZCBiZSBtYXJrZWQgYXMgZXhlY3V0YWJsZXMgYW5kIHRyZWF0ZWQgZGlm
ZmVyZW50bHkgd2hlbiBhZGRpbmcgb3IKK3JlbW92aW5nIHRoZSBwYWNrYWdlIGluc3RhbmNlIGZy
b20KKy5BciB2aWV3IC4KKy5FdiBQTElTVF9FWEVDX0ZJTEVTCitpcyBhIHNwYWNlLXNlcGFyYXRl
ZCBsaXN0IG9mIHNoZWxsIGdsb2IgcGF0dGVybnMgdGhhdCBtYXRjaCBmaWxlcyByZWxhdGl2ZQor
dG8gdGhlCisuQXIgcGFja2FnZQorZGVwb3QgZGlyZWN0b3J5LCBhbmQgaXQgZGVmYXVsdHMgdG8K
Ky5TcSBiaW4vKiBzYmluLyogLgorVGhpcyBpcyBvdmVycmlkZGVuIGJ5IGFueQorLkV2IF9QTElT
VF9FWEVDX0ZJTEVTCitzZXR0aW5nIGluIGEgcGFja2FnZSdzCisuQXIgYnVpbGQtaW5mby1maWxl
Cisoc2VlCisuWHIgcGtnX2NyZWF0ZSAxICkKK2lmIGl0IGV4aXN0cy4KIC5JdCBFdiBQTElTVF9J
R05PUkVfRklMRVMKIFRoaXMgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBmaWxlcyBpbgogLkFyIHBh
Y2thZ2UKQEAgLTIxMSw2ICsyNDAsMTQgQEAKIFRoZSBkZWZhdWx0IHZpZXcgY2FuIGJlIHNwZWNp
ZmllZCBpbiB0aGUKIC5FdiBQS0dfVklFVwogZW52aXJvbm1lbnQgdmFyaWFibGUuCisuSXQgRXYg
V1JBUFBFUl9WQVJESVJTCitUaGlzIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZXh0cmEgdmFyaWFi
bGVzIHRoYXQgaGF2ZSB0byBiZSBvdmVycmlkZW4gZnJvbQordGhlIHdyYXBwZXJzIGNyZWF0ZWQg
dG8gZXhlY3V0ZSBiaW5hcmllcy4KKy5FdiBXUkFQUEVSX1ZBUkRJUlMKK2lzIGEgc3BhY2Utc2Vw
YXJhdGVkIGxpc3Qgd2hlcmUgZWFjaCBpdGVtIGNvbnRhaW5zIHRoZSBuYW1lIG9mIHRoZQordmFy
aWFibGUgdG8gYmUgb3ZlcnJpZGVuLCBmb2xsb3dlZCBieSBhIGNvbG9uIHN5bWJvbCBhbmQgZm9s
bG93ZWQgYnkKK2EgcGF0aCAocmVsYXRpdmUgdG8gdGhlCisuQXIgdmlldyApIC4KIC5FbAogLlNo
IEZJTEVTCiAuQmwgLXRhZyAtd2lkdGggaW5kZW50CkluZGV4OiBwa2dfdmlldy5zaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9zcmMvdXNyLnNiaW4vcGtnX2luc3RhbGwvdmlldy9wa2df
dmlldy5zaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41CmRpZmYgLXUgLXUgLXIxLjUgcGtnX3Zp
ZXcuc2gKLS0tIHBrZ192aWV3LnNoCTEgSnVuIDIwMDQgMTY6MDg6MTAgLTAwMDAJMS41CisrKyBw
a2dfdmlldy5zaAk4IEp1bCAyMDA0IDE5OjAwOjAyIC0wMDAwCkBAIC01Myw3ICs1Myw3IEBACiB0
b3VjaHByb2c9L3Vzci9iaW4vdG91Y2gKIAogdXNhZ2UoKSB7Ci0JZWNobyAnVXNhZ2U6IHBrZ192
aWV3IFstbl0gWy12XSBbLWkgaWdub3JlXSBbLWsgcGtnX2RiZGlyX2RmbHRdIFstdyB2aWV3bmFt
ZV0gWy1kIHN0b3dkaXJdIFstVyB2aWV3YmFzZV0gYWRkfGNoZWNrfGRlbGV0ZSBwa2duYW1lLi4u
JworCWVjaG8gJ1VzYWdlOiBwa2dfdmlldyBbLW5dIFstdl0gWy1lIGV4ZWNdIFstaSBpZ25vcmVd
IFstayBwa2dfZGJkaXJfZGZsdF0gWy13IHZpZXduYW1lXSBbLWQgc3Rvd2Rpcl0gWy1XIHZpZXdi
YXNlXSBhZGR8Y2hlY2t8ZGVsZXRlIHBrZ25hbWUuLi4nCiAJZXhpdCAxCiB9CiAKQEAgLTc3LDgg
Kzc3LDExIEBACiBzdG93ZGlyPSIiCiB2aWV3YmFzZT0ke0xPQ0FMQkFTRTotL3Vzci9wa2d9CiB2
aWV3PSR7UEtHX1ZJRVc6LSIifQorZGZsdF9leGVjZmlsZXM9JHtQTElTVF9FWEVDX0ZJTEVTOi0i
YmluLyogc2Jpbi8qIn0KIGRmbHRfaWdub3JlZmlsZXM9JHtQTElTVF9JR05PUkVfRklMRVM6LSJp
bmZvL2RpciAqW34jXSAqLk9MRCAqLm9yaWcgKix2In0KIGRmbHRfcGtnX2RiZGlyPSR7UEtHX0RC
RElSOi0vdmFyL2RiL3BrZ30KK2RmbHRfd3JhcHBlcnZhcmRpcnM9JHtXUkFQUEVSX1ZBUkRJUlM6
LX0KK2V4ZWNmaWxlcz0iIgogaWdub3JlZmlsZXM9IiIKIHZlcmJvc2U9MAogCkBAIC04Niw2ICs4
OSw4IEBACiAJY2FzZSAiJDEiIGluCiAJLWQpCQlzdG93ZGlyPSQyOyBzaGlmdCA7OwogCS1kKikJ
CXN0b3dkaXI9YGVjaG8gJDEgfCAkc2VkcHJvZyAtZSAnc3xeLWR8fCdgIDs7CisJLWUpCQlleGVj
ZmlsZXM9IiRleGVjZmlsZXMgJDIiOyBzaGlmdCA7OworCS1lKikJCWV4ZWNmaWxlcz0iJGV4ZWNm
aWxlcyBgZWNobyAkMSB8ICRzZWRwcm9nIC1lICdzfF4tZXx8J2AiIDs7CiAJLWkpCQlpZ25vcmVm
aWxlcz0iJGlnbm9yZWZpbGVzICQyIjsgc2hpZnQgOzsKIAktaSopCQlpZ25vcmVmaWxlcz0iJGln
bm9yZWZpbGVzIGBlY2hvICQxIHwgJHNlZHByb2cgLWUgJ3N8Xi1pfHwnYCIgOzsKIAktaykJCWRm
bHRfcGtnX2RiZGlyPSIkMiI7IHNoaWZ0IDs7CkBAIC0xNTcsNyArMTYyLDcgQEAKICMKICMgQ2Fs
bHMgbGlua2Zhcm0oMSkgdG8gY2hlY2ssIGFkZCBvciBkZWxldGUgdGhlIHN5bWxpbmsgZmFybSBp
bgogIyAke3RhcmdldGRpcn0uICBXZSBhbHNvIGlnbm9yZSB0aGUgcmlnaHQgc2V0IG9mIGZpbGVz
IHdoZW4gZG9pbmcgdGhlCi0jIGxpbmtmYXJtIG9wZXJhdGlvbnMuCisjIGxpbmtmYXJtIG9wZXJh
dGlvbnMgYW5kIHBhc3MgdGhlIHNldCBvZiBmaWxlcyBtYXJrZWQgYXMgZXhlY3V0YWJsZXMuCiAj
CiBzeW1saW5rcygpIHsKIAlwa2c9JDIKQEAgLTE2NywxNCArMTcyLDIzIEBACiAJZGVsZXRlKQls
aW5rZmFybWZsYWdzPSItRCIgOzsKIAllc2FjCiAJaWYgWyAtZiAke2RlcG90X3BrZ19kYmRpcn0v
JHBrZy8rQlVJTERfSU5GTyBdOyB0aGVuCisJCWV4ZWM9YCRncmVwcHJvZyAiXl9QTElTVF9FWEVD
X0ZJTEVTPSIgJHtkZXBvdF9wa2dfZGJkaXJ9LyRwa2cvK0JVSUxEX0lORk8gfCAkc2VkcHJvZyAt
ZSAnc3xeX1BMSVNUX0VYRUNfRklMRVM9WyAJXSp8fCdgCiAJCWlnbm9yZT1gJGdyZXBwcm9nICJe
X1BMSVNUX0lHTk9SRV9GSUxFUz0iICR7ZGVwb3RfcGtnX2RiZGlyfS8kcGtnLytCVUlMRF9JTkZP
IHwgJHNlZHByb2cgLWUgJ3N8Xl9QTElTVF9JR05PUkVfRklMRVM9WyAJXSp8fCdgCisJCXdyYXBw
ZXJ2YXJkaXJzPWAkZ3JlcHByb2cgIl5fV1JBUFBFUl9WQVJESVJTPSIgJHtkZXBvdF9wa2dfZGJk
aXJ9LyRwa2cvK0JVSUxEX0lORk8gfCAkc2VkcHJvZyAtZSAnc3xeX1dSQVBQRVJfVkFSRElSUz1b
IAldKnx8J2AKIAlmaQorCWNhc2UgIiRleGVjIiBpbgorCSIiKQlleGVjPSIke2RmbHRfZXhlY2Zp
bGVzfSIgOzsKKwllc2FjCiAJY2FzZSAiJGlnbm9yZSIgaW4KIAkiIikJaWdub3JlPSIke2RmbHRf
aWdub3JlZmlsZXN9IiA7OwogCWVzYWMKKwljYXNlICIkd3JhcHBlcnZhcmRpcnMiIGluCisJIiIp
CXdyYXBwZXJ2YXJkaXJzPSIke2RmbHRfd3JhcHBlcnZhcmRpcnN9IiA7OworCWVzYWMKIAlkYnM9
YChjZCAke2RlcG90X3BrZ19kYmRpcn0vJHBrZzsgZWNobyArKilgCisJZXhlYz0iJHtleGVjfSAk
e2V4ZWNmaWxlc30iCiAJaWdub3JlPSIke2lnbm9yZX0gJHtpZ25vcmVmaWxlc30gJGRicyIKLQkk
ZG9pdCAkZW52cHJvZyBQTElTVF9JR05PUkVfRklMRVM9IiR7aWdub3JlfSIgJGxpbmtmYXJtcHJv
ZyAkbGlua2Zhcm1mbGFncyAtLXRhcmdldD0ke3RhcmdldGRpcn0gLS1kaXI9JHtkZXBvdF9wa2df
ZGJkaXJ9ICRwa2cKKwkkZG9pdCAkZW52cHJvZyBQTElTVF9FWEVDX0ZJTEVTPSIke2V4ZWN9IiBQ
TElTVF9JR05PUkVfRklMRVM9IiR7aWdub3JlfSIgV1JBUFBFUl9WQVJESVJTPSIke3dyYXBwZXJ2
YXJkaXJzfSIgJGxpbmtmYXJtcHJvZyAkbGlua2Zhcm1mbGFncyAtLXRhcmdldD0ke3RhcmdldGRp
cn0gLS1kaXI9JHtkZXBvdF9wa2dfZGJkaXJ9ICRwa2cKIH0KIAogIyMjIyMjIyMjIyMjIwo=

--Multipart=_Thu__8_Jul_2004_21_05_39_+0200_IdXP1GkIDN2zHHny
Content-Type: application/octet-stream;
 name="patch2.diff"
Content-Disposition: attachment;
 filename="patch2.diff"
Content-Transfer-Encoding: base64

SW5kZXg6IGJzZC5wa2cubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvcGtnc3JjL21r
L2JzZC5wa2cubWssdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTQ3NQpkaWZmIC11IC1yMS4xNDc1
IGJzZC5wa2cubWsKLS0tIGJzZC5wa2cubWsJNiBKdWwgMjAwNCAyMjo0OToxNiAtMDAwMAkxLjE0
NzUKKysrIGJzZC5wa2cubWsJOCBKdWwgMjAwNCAxOTowMDozOSAtMDAwMApAQCAtMjEwLDYgKzIx
MCwxNSBAQAogCiAuaWYgJHtQS0dfSU5TVEFMTEFUSU9OX1RZUEV9ID09ICJwa2d2aWV3cyIKICMK
KyMgX1BMSVNUX0VYRUNfRklMRVMgYmFzaWNhbGx5IG1pcnJvcnMgdGhlIGxpc3Qgb2YgZXhlY3V0
YWJsZSBmaWxlcyBmb3VuZAorIyBpbiBwa2dfdmlld3MoMSkuICBQYWNrYWdlcyBjYW4gZXh0ZW5k
IGl0IHRvIGFkZCBiaW5hcmllcyBpbnN0YWxsZWQgaW4KKyMgbm9uLXN0YW5kYXJkIHBsYWNlcywg
c28gdGhhdCB0aGV5IGFyZSB3cmFwcGVkIHByb3Blcmx5IGF0IHJ1bnRpbWUuCisjCitfUExJU1Rf
RVhFQ19GSUxFUz0JYmluLyogc2Jpbi8qCitfUExJU1RfRVhFQ19GSUxFUys9CSR7UExJU1RfRVhF
Q19GSUxFU30KK0JVSUxEX0RFRlMrPQkJX1BMSVNUX0VYRUNfRklMRVMKKworIwogIyBfUExJU1Rf
SUdOT1JFX0ZJTEVTIGJhc2ljYWxseSBtaXJyb3JzIHRoZSBsaXN0IG9mIGlnbm9yZWQgZmlsZXMg
Zm91bmQKICMgaW4gcGtnX3ZpZXdzKDEpLiAgSXQncyB1c2VkIGJ5IHRoZSBkeW5hbWljIFBMSVNU
IGdlbmVyYXRvciB0byBza2lwCiAjIGFkZGluZyB0aGUgbmFtZWQgZmlsZXMgdG8gdGhlIFBMSVNU
LgpAQCAtMjI0LDYgKzIzMywxNCBAQAogLmVuZGlmCiBCVUlMRF9ERUZTKz0JCV9QTElTVF9JR05P
UkVfRklMRVMKIAorIworIyBfV1JBUFBFUl9WQVJESVJTIGhvbGRzIHRoZSBsaXN0IG9mIHZhcmlh
YmxlL3N1YmRpcmVjdG9yeSBwYWlycyB0aGF0IHdpbGwKKyMgYmUgb3ZlcnJpZGVuIGZyb20gd3Jh
cHBlciBmaWxlcy4KKyMKK19XUkFQUEVSX1ZBUkRJUlM9CitfV1JBUFBFUl9WQVJESVJTKz0JJHtX
UkFQUEVSX1ZBUkRJUlN9CitCVUlMRF9ERUZTKz0JCV9XUkFQUEVSX1ZBUkRJUlMKKwogIyBXZSBu
ZWVkIHRvIG1ha2Ugc3VyZSB0aGUgYnVpbGRsaW5rLXgxMSBwYWNrYWdlIGlzIG5vdCBpbnN0YWxs
ZWQgc2luY2UgaXQKICMgYnJlYWtzIGJ1aWxkcyB0aGF0IHVzZSBpbWFrZS4KICMKQEAgLTQ2NzMs
NyArNDY5MCw3IEBACiAJCQljb250aW51ZSA7OwkJCQkJXAogCQllc2FjOwkJCQkJCQlcCiAJCSR7
RUNIT30gIj0+IFBlcmZvcm1pbmcgcGFja2FnZSB2aWV3IG92ZXJ3cml0ZSBjaGVjayBmb3IgJHtQ
S0dOQU1FfSBpbiAkJHZpZXduYW1lIHZpZXciOyBcCi0JCWR1cHM9YCR7U0VURU5WfSBQTElTVF9J
R05PUkVfRklMRVM9IiR7X1BMSVNUX0lHTk9SRV9GSUxFU30iICR7UEtHX1ZJRVd9IC0tdmlldz0k
JHYgY2hlY2sgJHtQS0dOQU1FfSB8fCAke1RSVUV9YDsgXAorCQlkdXBzPWAke1NFVEVOVn0gUExJ
U1RfRVhFQ19GSUxFUz0iJHtfUExJU1RfRVhFQ19GSUxFU30iIFBMSVNUX0lHTk9SRV9GSUxFUz0i
JHtfUExJU1RfSUdOT1JFX0ZJTEVTfSIgV1JBUFBFUl9WQVJESVJTPSIke19XUkFQUEVSX1ZBUkRJ
UlN9IiAke1BLR19WSUVXfSAtLXZpZXc9JCR2IGNoZWNrICR7UEtHTkFNRX0gfHwgJHtUUlVFfWA7
IFwKIAkJY2FzZSAiJCRkdXBzIiBpbgkJCQkJXAogCQkiIikJOzsJCQkJCQlcCiAJCSopCSR7RUNI
T30gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqIjsgXApAQCAtNDY4NSw3ICs0NzAyLDcgQEAKIAkJCTs7CQkJCQkJXAogCQllc2FjOwkJ
CQkJCQlcCiAJCSR7RUNIT30gIj0+IExpbmtpbmcgcGFja2FnZSBpbnRvICQkdmlld25hbWUgdmll
dyI7CVwKLQkJJHtTRVRFTlZ9IFBMSVNUX0lHTk9SRV9GSUxFUz0iJHtfUExJU1RfSUdOT1JFX0ZJ
TEVTfSIgJHtQS0dfVklFV30gLS12aWV3PSQkdiBhZGQgJHtQS0dOQU1FfTsgXAorCQkke1NFVEVO
Vn0gUExJU1RfRVhFQ19GSUxFUz0iJHtfUExJU1RfRVhFQ19GSUxFU30iIFBMSVNUX0lHTk9SRV9G
SUxFUz0iJHtfUExJU1RfSUdOT1JFX0ZJTEVTfSIgV1JBUFBFUl9WQVJESVJTPSIke19XUkFQUEVS
X1ZBUkRJUlN9IiAke1BLR19WSUVXfSAtLXZpZXc9JCR2IGFkZCAke1BLR05BTUV9OyBcCiAJZG9u
ZQogLiAgZWxzZQogCSR7X1BLR19TSUxFTlR9JHtfUEtHX0RFQlVHfSR7RE9fTkFEQX0KQEAgLTQ3
MTQsNyArNDczMSw3IEBACiAJCSopCWRiZGlyPSR7TE9DQUxCQVNFfS8kJHYvLmRiZGlyOyB2aWV3
bmFtZT0kJHYgOzsJXAogCQllc2FjOwkJCQkJCQlcCiAJCSR7RUNIT30gIj0+IFJlbW92aW5nIHBh
Y2thZ2UgZnJvbSAkJHZpZXduYW1lIHZpZXciOwlcCi0JCSR7U0VURU5WfSBQTElTVF9JR05PUkVf
RklMRVM9IiR7X1BMSVNUX0lHTk9SRV9GSUxFU30iICR7UEtHX1ZJRVd9IC0tdmlldz0kJHYgZGVs
ZXRlICR7UEtHTkFNRX07IFwKKwkJJHtTRVRFTlZ9IFBMSVNUX0VYRUNfRklMRVM9IiR7X1BMSVNU
X0VYRUNfRklMRVN9IiBQTElTVF9JR05PUkVfRklMRVM9IiR7X1BMSVNUX0lHTk9SRV9GSUxFU30i
IFdSQVBQRVJfVkFSRElSUz0iJHtfV1JBUFBFUl9WQVJESVJTfSIgJHtQS0dfVklFV30gLS12aWV3
PSQkdiBkZWxldGUgJHtQS0dOQU1FfTsgXAogCWRvbmUKIC5lbHNlCiAJJHtfUEtHX1NJTEVOVH0k
e19QS0dfREVCVUd9JHtET19OQURBfQo=

--Multipart=_Thu__8_Jul_2004_21_05_39_+0200_IdXP1GkIDN2zHHny--