Subject: Re: Broken PKG_PATH semantics on pkg_add
To: Hubert Feyrer <hubert.feyrer@informatik.fh-regensburg.de>
From: David Brownlee <abs@netbsd.org>
List: tech-pkg
Date: 08/27/2002 17:39:56
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-1425502792-1030466396=:28049
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Tue, 27 Aug 2002, Hubert Feyrer wrote:

> On Tue, 27 Aug 2002, David Brownlee wrote:
> > > > 		pkg_add /path1/fu.tgz /path2/bar.tgz bundy.tgz
> > > >
> > > > 	should it prepend both path1 and path2 to PKG_PATH, and should
> > > > 	bundy be looked for in /path1 and /path2 before .?
> > >
> > > I wouldn't say so.
> >
> > 	So prepend both path1 and path2 to PKG_PATH, but after any
> > 	filenames on the commandline has been resolved?
>
> Move the path-prepending to pkg_do(), then prepend each path only for the
> pkg that it belongs to (prepend /path1 for fu.tgz, /path2 for bar.tgz and
> maybe . for bundy.tgz). Of course, restore the path each pkg.

	Updated patch attached. Its calls getcwd() for every relative
	path given on the command line, which may be a net win in some
	cases :), but otherwise feels pretty reasonable.

-- 
		David/absolute          -- www.netbsd.org: No hype required --

--0-1425502792-1030466396=:28049
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=diff
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.NEB.4.44.0208271739560.28049@moss.i.formula1.com>
Content-Description: 
Content-Disposition: attachment; filename=diff

SW5kZXg6IGFkZC9wZXJmb3JtLmMNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
ClJDUyBmaWxlOiAvY3Zzcm9vdC9iYXNlc3JjL3Vzci5zYmluL3BrZ19pbnN0
YWxsL2FkZC9wZXJmb3JtLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjYz
LjIuNQ0KZGlmZiAtdSAtQiAtcjEuNjMuMi41IHBlcmZvcm0uYw0KLS0tIGFk
ZC9wZXJmb3JtLmMJMjAwMi8wNy8yMyAxMToxNToxNgkxLjYzLjIuNQ0KKysr
IGFkZC9wZXJmb3JtLmMJMjAwMi8wOC8yNyAxNTozNjowMg0KQEAgLTY5Miw3
ICs2OTIsOSBAQA0KIAkJZXJyX2NudCA9IHBrZ19kbyhOVUxMKTsNCiAJZWxz
ZSB7DQogCQl3aGlsZSAoKGxwcCA9IFRBSUxRX0ZJUlNUKHBrZ3MpKSAhPSBO
VUxMKSB7DQorCQkJcGF0aF9wcmVwZW5kX2Zyb21fZmlsZShscHAtPmxwX25h
bWUpOw0KIAkJCWVycl9jbnQgKz0gcGtnX2RvKGxwcC0+bHBfbmFtZSk7DQor
CQkJcGF0aF9yZW1vdmVfZmlyc3QoKTsNCiAJCQlUQUlMUV9SRU1PVkUocGtn
cywgbHBwLCBscF9saW5rKTsNCiAJCQlmcmVlX2xwa2cobHBwKTsNCiAJCX0N
CkluZGV4OiBsaWIvcGF0aC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS
Q1MgZmlsZTogL2N2c3Jvb3QvYmFzZXNyYy91c3Iuc2Jpbi9wa2dfaW5zdGFs
bC9saWIvcGF0aC5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjIuMQ0K
ZGlmZiAtdSAtQiAtcjEuMS4yLjEgcGF0aC5jDQotLS0gbGliL3BhdGguYwky
MDAyLzA3LzIxIDA0OjQyOjQ3CTEuMS4yLjENCisrKyBsaWIvcGF0aC5jCTIw
MDIvMDgvMjcgMTU6MzY6MDINCkBAIC0zNywxMyArMzcsMTMgQEANCiANCiBz
dHJ1Y3QgcGF0aGhlYWQgUGtnUGF0aCA9IFRBSUxRX0hFQURfSU5JVElBTEla
RVIoUGtnUGF0aCk7DQogDQorc3RhdGljIHN0cnVjdCBwYXRoICpwYXRoX25l
d19lbnRyeShjb25zdCBjaGFyICpjcCwgc2l6ZV90IGxlbik7DQorDQogdm9p
ZA0KIHBhdGhfY3JlYXRlKGNvbnN0IGNoYXIgKnBhdGgpDQogew0KIAljb25z
dCBjaGFyICpjcDsNCiAJc2l6ZV90IGxlbjsNCi0JY2hhciBjd2RbTUFYUEFU
SExFTl07DQotCXNpemVfdCBjd2RsZW47DQogDQogCXBhdGhfZnJlZSgpOw0K
IA0KQEAgLTU0LDM5ICs1NCwxNCBAQA0KIAlpZiAoVmVyYm9zZSkNCiAJCXBy
aW50ZigicGFyc2luZzogJXNcbiIsIHBhdGgpOw0KIA0KLQlpZiAoZ2V0Y3dk
KGN3ZCwgc2l6ZW9mKGN3ZCkpID09IE5VTEwpDQotCQllcnIoMSwgImdldGN3
ZCIpOw0KLQljd2RsZW4gPSBzdHJsZW4oY3dkKTsNCi0NCiAJY3AgPSBwYXRo
Ow0KIAl3aGlsZSAoKmNwKSB7DQogCQlsZW4gPSBzdHJjc3BuKGNwLCAiOyIp
Ow0KIAkJaWYgKGxlbiA+IDApIHsNCiAJCQkvKiBhZGQgYSBuZXcgcGF0aCAq
Lw0KIAkJCXN0cnVjdCBwYXRoICpuZXc7DQotDQotCQkJbmV3ID0gbWFsbG9j
KHNpemVvZigqbmV3KSk7DQotCQkJaWYgKG5ldyA9PSBOVUxMKQ0KLQkJCQll
cnIoMSwgInBhdGhfY3JlYXRlIik7DQotDQotCQkJaWYgKCFJU19GVUxMUEFU
SChjcCkgJiYgIUlTX1VSTChjcCkpIHsNCi0JCQkJLyogdGhpcyBpcyBhIHJl
bGF0aXZlIHBhdGggKi8NCi0JCQkJc2l6ZV90IHRvdGFsOw0KLQ0KLQkJCQl0
b3RhbCA9IGN3ZGxlbiArIDEgKyBsZW4gKyAxOw0KLQkJCQluZXctPnBsX3Bh
dGggPSBtYWxsb2ModG90YWwpOw0KLQkJCQlpZiAobmV3LT5wbF9wYXRoID09
IE5VTEwpDQotCQkJCQllcnIoMSwgInBhdGhfY3JlYXRlIik7DQotCQkJCXNu
cHJpbnRmKG5ldy0+cGxfcGF0aCwgdG90YWwsICIlcy8lKi4qcyIsIGN3ZCwg
KGludClsZW4sIChpbnQpbGVuLCBjcCk7DQotCQkJfQ0KLQkJCWVsc2Ugew0K
LQkJCQluZXctPnBsX3BhdGggPSBtYWxsb2MobGVuICsgMSk7DQotCQkJCWlm
IChuZXctPnBsX3BhdGggPT0gTlVMTCkNCi0JCQkJCWVycigxLCAicGF0aF9j
cmVhdGUiKTsNCi0JCQkJbWVtY3B5KG5ldy0+cGxfcGF0aCwgY3AsIGxlbik7
DQotCQkJCW5ldy0+cGxfcGF0aFtsZW5dID0gJ1wwJzsNCi0JCQl9DQogDQor
CQkJbmV3ID0gcGF0aF9uZXdfZW50cnkoY3AsIGxlbik7DQogCQkJaWYgKFZl
cmJvc2UpDQogCQkJCXByaW50ZigicGF0aDogJXNcbiIsIG5ldy0+cGxfcGF0
aCk7DQogCQkJVEFJTFFfSU5TRVJUX1RBSUwoJlBrZ1BhdGgsIG5ldywgcGxf
ZW50cnkpOw0KQEAgLTEwOSw2ICs4NCw1OSBAQA0KIAkJZnJlZShwLT5wbF9w
YXRoKTsNCiAJCWZyZWUocCk7DQogCX0NCit9DQorDQorc3RhdGljIHN0cnVj
dCBwYXRoICoNCitwYXRoX25ld19lbnRyeShjb25zdCBjaGFyICpjcCwgc2l6
ZV90IGxlbikNCit7DQorCXN0cnVjdCBwYXRoICpuZXc7DQorDQorCW5ldyA9
IG1hbGxvYyhzaXplb2YoKm5ldykpOw0KKwlpZiAobmV3ID09IE5VTEwpDQor
CQllcnIoMSwgInBhdGhfY3JlYXRlIik7DQorDQorCWlmICghSVNfRlVMTFBB
VEgoY3ApICYmICFJU19VUkwoY3ApKSB7DQorCQkvKiB0aGlzIGlzIGEgcmVs
YXRpdmUgcGF0aCAqLw0KKwkJc2l6ZV90IHRvdGFsOw0KKwkJY2hhciBjd2Rb
TUFYUEFUSExFTl07DQorCQlzaXplX3QgY3dkbGVuOw0KKw0KKwkJaWYgKGdl
dGN3ZChjd2QsIHNpemVvZihjd2QpKSA9PSBOVUxMKQ0KKwkJCWVycigxLCAi
Z2V0Y3dkIik7DQorCQljd2RsZW4gPSBzdHJsZW4oY3dkKTsNCisJCXRvdGFs
ID0gY3dkbGVuICsgMSArIGxlbiArIDE7DQorCQluZXctPnBsX3BhdGggPSBt
YWxsb2ModG90YWwpOw0KKwkJaWYgKG5ldy0+cGxfcGF0aCA9PSBOVUxMKQ0K
KwkJCWVycigxLCAicGF0aF9jcmVhdGUiKTsNCisJCXNucHJpbnRmKG5ldy0+
cGxfcGF0aCwgdG90YWwsICIlcy8lKi4qcyIsIGN3ZCwgKGludClsZW4sIChp
bnQpbGVuLCBjcCk7DQorCX0NCisJZWxzZSB7DQorCQluZXctPnBsX3BhdGgg
PSBtYWxsb2MobGVuICsgMSk7DQorCQlpZiAobmV3LT5wbF9wYXRoID09IE5V
TEwpDQorCQkJZXJyKDEsICJwYXRoX2NyZWF0ZSIpOw0KKwkJbWVtY3B5KG5l
dy0+cGxfcGF0aCwgY3AsIGxlbik7DQorCQluZXctPnBsX3BhdGhbbGVuXSA9
ICdcMCc7DQorCX0NCisJcmV0dXJuIG5ldzsNCit9DQorDQordm9pZA0KK3Bh
dGhfcHJlcGVuZF9mcm9tX2ZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUpDQor
ew0KKwlzdHJ1Y3QgcGF0aCAqbmV3Ow0KKwljaGFyICpwdHI7DQorCWlmICgo
cHRyID0gc3RycmNocihmaWxlbmFtZSAsICcvJykpKQ0KKwkJbmV3ID0gcGF0
aF9uZXdfZW50cnkoZmlsZW5hbWUsIHB0ciAtIGZpbGVuYW1lKTsNCisJZWxz
ZQ0KKwkJbmV3ID0gcGF0aF9uZXdfZW50cnkoIi4iLCAxKTsNCisNCisJVEFJ
TFFfSU5TRVJUX0hFQUQoJlBrZ1BhdGgsIG5ldywgcGxfZW50cnkpOw0KK30N
CisNCit2b2lkDQorcGF0aF9yZW1vdmVfZmlyc3QoKQ0KK3sNCisJVEFJTFFf
UkVNT1ZFKCZQa2dQYXRoLCBUQUlMUV9GSVJTVCgmUGtnUGF0aCksIHBsX2Vu
dHJ5KTsNCiB9DQogDQogdm9pZA0KSW5kZXg6IGxpYi9wYXRoLmgNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvY3Zzcm9vdC9iYXNlc3Jj
L3Vzci5zYmluL3BrZ19pbnN0YWxsL2xpYi9wYXRoLmgsdg0KcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjEuMi4xDQpkaWZmIC11IC1CIC1yMS4xLjIuMSBwYXRo
LmgNCi0tLSBsaWIvcGF0aC5oCTIwMDIvMDcvMjEgMDQ6NDI6NTUJMS4xLjIu
MQ0KKysrIGxpYi9wYXRoLmgJMjAwMi8wOC8yNyAxNTozNjowMg0KQEAgLTM1
LDQgKzM1LDYgQEANCiBleHRlcm4gc3RydWN0IHBhdGhoZWFkIFBrZ1BhdGg7
DQogdm9pZCBwYXRoX2NyZWF0ZShjb25zdCBjaGFyICopOw0KIHZvaWQgcGF0
aF9mcmVlKHZvaWQpOw0KK3ZvaWQgcGF0aF9wcmVwZW5kX2Zyb21fZmlsZShj
b25zdCBjaGFyICopOw0KK3ZvaWQgcGF0aF9yZW1vdmVfZmlyc3Qodm9pZCk7
DQogdm9pZCBwYXRoX3NldGVudihjb25zdCBjaGFyICopOw0K
--0-1425502792-1030466396=:28049--