Subject: Re: PR pkg/26448 resuming pkgsrc distfile fetches implementation is
To: None <tech-pkg@NetBSD.org>
From: Juan RP <juan@xtraeme.nopcode.org>
List: tech-pkg
Date: 10/25/2004 17:15:09
--Signature=_Mon__25_Oct_2004_17_15_09_+0200_Hms=HfVKrv.IocOV
Content-Type: multipart/mixed;
 boundary="Multipart=_Mon__25_Oct_2004_17_15_09_+0200_gzjme9gWcukCFnqD"


--Multipart=_Mon__25_Oct_2004_17_15_09_+0200_gzjme9gWcukCFnqD
Content-Type: text/plain; charset=US-ASCII
Content-Disposition: inline
Content-Transfer-Encoding: 7bit


Hi Robert,

I've been looking into the problems reported in your Problem Report, and
I think that I got a working patch finally, please review or share suggestions.

The patch does it:

copy the file not finished to a temporary one ($$bfile.temp), use a new
option to specify the output file name (FETCH_OUTPUT_ARGS, by default-o with
NetBSD's ftp(1)), if our downloaded file is matching the checksum recorded 
in distinfo, the file is renamed to the original name.

I tested it with some packages and it's working fine, but maybe is not perfect.

--Multipart=_Mon__25_Oct_2004_17_15_09_+0200_gzjme9gWcukCFnqD
Content-Type: application/octet-stream;
 name="resume_transfers.diff"
Content-Disposition: attachment;
 filename="resume_transfers.diff"
Content-Transfer-Encoding: base64

SW5kZXg6IGJzZC5wa2cubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvcGtnc3JjL21r
L2JzZC5wa2cubWssdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTUyMgpkaWZmIC1iIC11IC1yMS4x
NTIyIGJzZC5wa2cubWsKLS0tIGJzZC5wa2cubWsJMjEgT2N0IDIwMDQgMTc6MTg6NDQgLTAwMDAJ
MS4xNTIyCisrKyBic2QucGtnLm1rCTI1IE9jdCAyMDA0IDE1OjAyOjU0IC0wMDAwCkBAIC0xNDYy
LDM0ICsxNDYyLDcyIEBACiAjIGFkZGluZyBwcmUtKiBvciBwb3N0LSogdGFyZ2V0cy9zY3JpcHRz
LCBvdmVycmlkZSB0aGVzZS4KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotIyBSZXN1bWUgYSBwcmV2aW91cyB0cmFuc2Zl
ciBub3QgZmluaXNoZWQgdG90YWxseS4KKyMjIworIyMjIF9SRVNVTUVfVFJBTlNGRVI6CisjIyMK
KyMjIyBNYWNybyB0byByZXN1bWUgYSBwcmV2aW91cyB0cmFuc2ZlciwgbmVlZHMgdG8gaGF2ZSBk
ZWZpbmVkCisjIyMgdGhlIGZvbGxvd2luZyBvcHRpb25zIGluIG1rLmNvbmY6CisjIyMKKyMjIyBQ
S0dfUkVTVU1FX1RSQU5TRkVSUworIyMjIEZFVENIX1JFU1VNRV9BUkdTIChpZiBGRVRDSF9DTUQg
IT0gZGVmYXVsdCkKKyMjIyBGRVRDSF9PVVRQVVRfQVJHUyAoaWYgRkVUQ0hfQ01EICE9IGRlZmF1
bHQpCisjIyMKKyMjIyBGb3IgZXhhbXBsZSBpZiB5b3Ugd2FudCB0byB1c2Ugd2dldCAocGtnc3Jj
L25ldC93Z2V0KToKKyMjIworIyMjIEZFVENIX0NNRD13Z2V0CisjIyMgRkVUQ0hfUkVTVU1FX0FS
R1M9LWMKKyMjIyBGRVRDSF9PVVRQVVRfQVJHUz0tTworIyMjCisjIyMgSG93IGRvZXMgaXQgd29y
az8KKyMjIworIyMjIEZFVENIX0NNRCBkb3dubG9hZHMgdGhlIGZpbGUgYW5kIHNhdmVzIGl0IHRl
bXBvcmFsbHkgaW50byAkJGJmaWxlLnRlbXAKKyMjIyBpZiB0aGUgY2hlY2tzdW0gbWF0Y2ggdGhl
IGNvcnJlY3Qgb25lLCAkJGJmaWxlLnRlbXAgaXMgcmVuYW1lZCB0bworIyMjIHRoZSBvcmlnaW5h
bCBuYW1lLgorIyMjCisKIF9SRVNVTUVfVFJBTlNGRVI9CQkJCQkJCVwKLQlkc2l6ZT1gJHtXQ30g
LWMgPCAke0RJU1RESVJ9LyR7RElTVF9TVUJESVJ9LyQkYmZpbGVgOwkJXAogCXRzaXplPWAke0FX
S30gJy9eU2l6ZS8gJiYgJCQyID09ICciXCIoJCRmaWxlKVwiIicgeyBwcmludCAkJDQgfScgJHtE
SVNUSU5GT19GSUxFfWAgfHwgJHtUUlVFfTsgXAorCWlmIFsgISAtZiAiJHtESVNURElSfS8ke0RJ
U1RfU1VCRElSfS8kJGJmaWxlLnRlbXAiIF07IHRoZW4JXAorCQkke0NQfSAke0RJU1RESVJ9LyR7
RElTVF9TVUJESVJ9LyQkYmZpbGUgJHtESVNURElSfS8ke0RJU1RfU1VCRElSfS8kJGJmaWxlLnRl
bXA7IFwKKwlmaTsJXAorCWRzaXplPWAke1dDfSAtYyA8ICR7RElTVERJUn0vJHtESVNUX1NVQkRJ
Un0vJCRiZmlsZS50ZW1wYDsJXAorCWlmIFsgIiQkZHNpemUiIC1lcSAiJCR0c2l6ZSIgLWEgLWYg
IiR7RElTVERJUn0vJHtESVNUX1NVQkRJUn0vJCRiZmlsZS50ZW1wIiBdOyB0aGVuCVwKKwkJJHtN
Vn0gJHtESVNURElSfS8ke0RJU1RfU1VCRElSfS8kJGJmaWxlLnRlbXAgJHtESVNURElSfS8ke0RJ
U1RfU1VCRElSfS8kJGJmaWxlOwlcCisJZmk7CVwKIAljYXNlICIkJHRzaXplIiBpbgkJCQkJCVwK
IAkiIikJJHtFQ0hPX01TR30gIk5vIHNpemUgaW4gZGlzdGluZm8gZmlsZSAoJHtESVNUSU5GT19G
SUxFfSkiOyBcCiAJCWJyZWFrIDs7CQkJCQkJXAogCWVzYWM7CQkJCQkJCQlcCi0JaWYgJHtURVNU
fSAtbiAiJCRmdHBfcHJveHkiIC1vIC1uICIkJGh0dHBfcHJveHkiOyB0aGVuCQlcCisJaWYgWyAt
biAiJCRmdHBfcHJveHkiIC1vIC1uICIkJGh0dHBfcHJveHkiIF07IHRoZW4JCVwKIAkJJHtFQ0hP
X01TR30gIj09PT4gUmVzdW1lIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZnRwKDEpIHVzaW5nIGh0dHAv
ZnRwIHByb3hpZXMuIjsJXAogCQlicmVhazsJCQkJCQkJXAogCWVsc2UJCQkJCQkJCVwKLQkJaWYg
JHtURVNUfSAiJCRkc2l6ZSIgLWx0ICIkJHRzaXplIjsgdGhlbgkJXAotCQkJaWYgJHtURVNUfSAi
JHtGRVRDSF9DTUQ6VH0iICE9ICJmdHAiIC1hIAlcCi0JCQkJLXogIiR7RkVUQ0hfUkVTVU1FX0FS
R1N9IjsgdGhlbgkJXAorCQlpZiBbICIkJGRzaXplIiAtbHQgIiQkdHNpemUiIF07IHRoZW4JCVwK
KwkJCWlmIFsgIiR7RkVUQ0hfQ01EOlR9IiAhPSAiZnRwIiAtYSAteiAiJHtGRVRDSF9SRVNVTUVf
QVJHU30iIF07IHRoZW4gXAogCQkJCSR7RUNIT19NU0d9ICI9PiBSZXN1bWUgdHJhbnNmZXJzIGFy
ZSBub3Qgc3VwcG9ydGVkLCBGRVRDSF9SRVNVTUVfQVJHUyBpcyBlbXB0eS4iOyBcCiAJCQkJYnJl
YWs7CQkJCQlcCiAJCQllbHNlCQkJCQkJXAogCQkJCWZvciByZXNfc2l0ZSBpbiAkJHNpdGVzOyBk
bwkJCVwKLQkJCQkJJHtFQ0hPX01TR30gIj09PT4gJCRiZmlsZSBub3QgY29tcGxldGVkLCByZXN1
bWluZy4uLiI7CVwKKwkJCQkJaWYgWyAteiAiJHtGRVRDSF9PVVRQVVRfQVJHU30iIF07IHRoZW4J
XAorCQkJCQkJJHtFQ0hPX01TR30gIj0+IEZFVENIX09VVFBVVF9BUkdTIGhhcyB0byBiZSBkZWZp
bmVkLiI7CVwKKwkJCQkJCWJyZWFrOwkJCVwKKwkJCQkJZmk7CQkJCVwKKwkJCQkJJHtFQ0hPX01T
R30gIj0+ICQkYmZpbGUgbm90IGNvbXBsZXRlZCwgcmVzdW1pbmc6IjsJXAorCQkJCQkke0VDSE9f
TVNHfSAiPT4gRG93bmxvYWRlZDogJCRkc2l6ZSBUb3RhbDogJCR0c2l6ZS4iOwlcCisJCQkJCSR7
RUNIT19NU0d9OwkJCVwKIAkJCQkJY2QgJHtfRElTVERJUn07CQkJCVwKLQkJCQkJJHtGRVRDSF9D
TUR9ICR7RkVUQ0hfQkVGT1JFX0FSR1N9ICR7RkVUQ0hfUkVTVU1FX0FSR1N9ICQke3Jlc19zaXRl
fSQke2JmaWxlfTsgXAotCQkJCQlpZiAke1RFU1R9ICQkPyAtZXEgMDsgdGhlbglcCisJCQkJCSR7
RkVUQ0hfQ01EfSAke0ZFVENIX0JFRk9SRV9BUkdTfSAke0ZFVENIX1JFU1VNRV9BUkdTfQlcCisJ
CQkJCQkke0ZFVENIX09VVFBVVF9BUkdTfSAkJHtiZmlsZX0udGVtcCAkJHtyZXNfc2l0ZX0kJHti
ZmlsZX07IFwKKwkJCQkJaWYgWyAkJD8gLWVxIDAgXTsgdGhlbgkJXAorCQkJCQkJbmRzaXplPWAk
e1dDfSAtYyA8ICR7RElTVERJUn0vJHtESVNUX1NVQkRJUn0vJCRiZmlsZS50ZW1wYDsJXAorCQkJ
CQkJaWYgWyAiJCR0c2l6ZSIgLWVxICIkJG5kc2l6ZSIgXTsgdGhlbglcCisJCQkJCQkJJHtNVn0g
JHtESVNURElSfS8ke0RJU1RfU1VCRElSfS8kJGJmaWxlLnRlbXAgJHtESVNURElSfS8ke0RJU1Rf
U1VCRElSfS8kJGJmaWxlOwkJCQkJCVwKKwkJCQkJCWZpOwkJCVwKIAkJCQkJCWJyZWFrOwkJCVwK
IAkJCQkJZmk7CQkJCVwKIAkJCQlkb25lOwkJCQkJXAogCQkJZmk7CQkJCQkJXAotCQllbGlmICR7
VEVTVH0gIiQkZHNpemUiIC1ndCAiJCR0c2l6ZSI7IHRoZW4JCVwKKwkJZWxpZiBbICIkJGRzaXpl
IiAtZ3QgIiQkdHNpemUiIF07IHRoZW4JCQlcCiAJCQkke0VDSE9fTVNHfSAiPT0+IERvd25sb2Fk
ZWQgZmlsZSBsYXJnZXIgdGhhbiB0aGUgcmVjb3JkZWQgc2l6ZS4iOwlcCiAJCQlicmVhazsJCQkJ
CQlcCiAJCWZpOyAJCQkJCQkJXApJbmRleDogZGVmYXVsdHMvbWsuY29uZgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3Zzcm9vdC9wa2dzcmMvbWsvZGVmYXVsdHMvbWsuY29uZix2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS45CmRpZmYgLWIgLXUgLXIxLjkgbWsuY29uZgotLS0gZGVmYXVsdHMvbWsuY29u
ZgkyMSBPY3QgMjAwNCAxNzowMDoxMCAtMDAwMAkxLjkKKysrIGRlZmF1bHRzL21rLmNvbmYJMjUg
T2N0IDIwMDQgMTU6MDM6MDcgLTAwMDAKQEAgLTE2Myw2ICsxNjMsMTMgQEAKICMgUG9zc2libGU6
IGFueSBwYXRoCiAjIERlZmF1bHQ6ICR7TE9DQUxCQVNFfS9jcm9zcwogCisjIFVzZWQgYnkgdGhl
IHBrZ3NyYyBjb21waWxlciBmcmFtZXdvcmsgdG8gYnVpbGQgcGFja2FnZXMgdGhyb3VnaAorIyBt
aW5ndyogcGFja2FnZXMuCisjIFBvc3NpYmxlOiBhbnkgdmFsaWQgbWluZ3cgdGFyZ2V0LgorIyBE
ZWZhdWx0OiBpMzg2LW1pbmd3MzIKKworTUlOR1dfVEFSR0VUPz0JaTM4Ni1taW5ndzMyCisKIFZB
UkJBU0U/PQkvdmFyCiAjIFdoZXJlIGZpbGVzIGNvbnRhaW5pbmcgbG9jYWwgc3RhdGUgaW5mb3Jt
YXRpb24gYXJlIGluc3RhbGxlZAogIyBQb3NzaWJsZTogYW55IHBhdGgKQEAgLTI1Nyw2ICsyNjQs
MTIgQEAKICMgRGVmYXVsdDogLVIKICMgUG9zc2libGU6IGRlcGVuZHMgb24geW91ciBGRVRDSF9D
TUQgdmFsdWUuCiAKK0ZFVENIX09VVFBVVF9BUkdTPz0JLW8KKyMgRGVmYXVsdCBhcmd1bWVudCB0
byB0aGUgb3V0cHV0IGZpbGUgd2hlbiByZXN1bWluZyB0cmFuc2ZlcmVuY2llcyBvbgorIyBwa2dz
cmMuCisjIERlZmF1bHQ6IC1vCisjIFBvc3NpYmxlOiBkZXBlbmRzIG9uIHlvdXIgRkVUQ0hfQ01E
IHZhbHVlLgorCiBMSUJUT09MSVpFX1BMSVNUPz0JeWVzCiAjIFRoaXMgZGV0ZXJtaW5lcyB3aGV0
aGVyIHRvIGV4cGFuZCBsaWJ0b29sIGFyY2hpdmVzIGluIFBMSVNUcyBpbnRvIHRoZQogIyByZXBy
ZXNlbnRlZCBsaWJyYXJ5IG5hbWVzLgo=

--Multipart=_Mon__25_Oct_2004_17_15_09_+0200_gzjme9gWcukCFnqD--

--Signature=_Mon__25_Oct_2004_17_15_09_+0200_Hms=HfVKrv.IocOV
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (NetBSD)

iD8DBQFBfRh9ypkLYVDran0RAo4OAJ9TvZnWDU/pZLSln97pSzdfkLXAiQCeKV1K
eV5FThi253w6X6sz9MX0ioY=
=P+uB
-----END PGP SIGNATURE-----

--Signature=_Mon__25_Oct_2004_17_15_09_+0200_Hms=HfVKrv.IocOV--