guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] guix: lint: Check for version-only origin file names.


From: Eric Bavier
Subject: Re: [PATCH] guix: lint: Check for version-only origin file names.
Date: Thu, 10 Sep 2015 15:50:58 -0500

On Fri, 28 Aug 2015 09:48:48 +0200
address@hidden (Ludovic Courtès) wrote:

> Eric Bavier <address@hidden> skribis:
> 
> > From 0311d5b383003600ac43d3a9bfdec0ad3c398db2 Mon Sep 17 00:00:00 2001
> > From: Eric Bavier <address@hidden>
> > Date: Sun, 23 Aug 2015 18:00:45 -0500
> > Subject: [PATCH] guix: lint: Check for version-only origin file names.
> >
> > * guix/scripts/lint.scm (check-source): Emit warning if source filename
> >   contains only the version of the package.
> > * tests/lint.scm ("source: filename", "source: filename v",
> >   "source: filename valid"): New tests.
> > * doc/guix.texi (Invoking guix lint): Mention file name check.
> > Offending packages updated.
> 
> This is useful, thanks for looking into it.

Thanks for the review!
 
> I would prefer it to make a separate linter, like ‘source-file-name’.
> The reason is that ‘source’ is a relatively expensive check, since it
> needs to probe URLs (so you might want to skip it in some cases),
> whereas the linter your propose is lightweight.

Makes sense.

> 
> > --- a/gnu/packages/algebra.scm
> > +++ b/gnu/packages/algebra.scm
> > @@ -386,6 +386,7 @@ cosine/ sine transforms or DCT/DST).")
> >                (method url-fetch)
> >                (uri (string-append "https://bitbucket.org/eigen/eigen/get/";
> >                                    version ".tar.bz2"))
> > +              (file-name (string-append name "-" version ".tar.bz2"))
> 
> Could you make these package updates a separate patch?  Some may trigger
> large rebuilds, so you may have to keep them for ‘core-updates’ or such.

I've left the package updates out of the attached patches.

> 
> > +  (define (origin-version-name? origin)
> > +    ;; Return #t if the source file name contains only a version; indicates
> > +    ;; that the origin needs a 'file-name' field.
> > +    (let ((filename (store-path-package-name
> > +                     (with-store store
> > +                       (derivation->output-path
> > +                        (package-source-derivation store origin)))))
> > +          (version (package-version package)))
> > +      (or (string-prefix? version filename)
> > +          ;; Common in many projects is for the filename to start with a 
> > "v"
> > +          ;; followed by the version, e.g. "v3.2.0.tar.gz".
> > +          (string-prefix? (string-append "v" version) filename))))
> 
> Opening a connection to the store in the middle of the code
> (‘with-store’) is Bad Practice.  ;-)
> 
> I think this can actually be made simpler, with something akin to what
> ‘node-full-name’ does in guix/scripts/graph.scm.  Maybe we could extract
> an ‘origin-actual-file-name’ procedure from that and move it to (guix
> packages).  WDYT?

The first attached patch does this.  Is using the basename of the
source URI always accurate?  I.e. are there cases where the store file
name might not match the URI's basename?  This uncertainty, I think, is
what caused me to use store-path-package-name initially.

This revised patch might actually be considered "more accurate" in that
the checker now flags origins from 'git-reference' et al where no
'file-name' field is declared.

`~Eric
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=0001-guix-packages-Add-origin-actual-file-name.patch

RnJvbSA4ZGIzZTU5NzgzOTRiOTlhZDE0ZDY5NDk0YjAwMzQzYjcwZjkxOGUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIEJhdmllciA8YmF2aWVyQG1lbWJlci5mc2Yub3JnPgpE
YXRlOiBUaHUsIDEwIFNlcCAyMDE1IDE1OjM5OjQ0IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAxLzJd
IGd1aXg6IHBhY2thZ2VzOiBBZGQgb3JpZ2luLWFjdHVhbC1maWxlLW5hbWUuCgoqIGd1aXgvc2Ny
aXB0cy9ncmFwaC5zY20gKHVyaS0+ZmlsZS1uYW1lLCBub2RlLWZ1bGwtbmFtZSk6IE1vdmUgb3Jp
Z2luIGZpbGUKICBuYW1lIGxvZ2ljIHRvLi4uCiogZ3VpeC9wYWNrYWdlcy5zY20gKG9yaWdpbi1h
Y3R1YWwtZmlsZS1uYW1lKTogLi4uaGVyZS4KLS0tCiBndWl4L3BhY2thZ2VzLnNjbSAgICAgIHwg
MjIgKysrKysrKysrKysrKysrKysrKysrKwogZ3VpeC9zY3JpcHRzL2dyYXBoLnNjbSB8IDE1ICst
LS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAxNCBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ndWl4L3BhY2thZ2VzLnNjbSBiL2d1aXgvcGFja2FnZXMu
c2NtCmluZGV4IGU0NjZmZmUuLmVkY2I1M2UgMTAwNjQ0Ci0tLSBhL2d1aXgvcGFja2FnZXMuc2Nt
CisrKyBiL2d1aXgvcGFja2FnZXMuc2NtCkBAIC0zNyw2ICszNyw3IEBACiAgICM6dXNlLW1vZHVs
ZSAoc3JmaSBzcmZpLTI2KQogICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0zNCkKICAgIzp1c2Ut
bW9kdWxlIChzcmZpIHNyZmktMzUpCisgICM6dXNlLW1vZHVsZSAod2ViIHVyaSkKICAgIzpyZS1l
eHBvcnQgKCVjdXJyZW50LXN5c3RlbQogICAgICAgICAgICAgICAgJWN1cnJlbnQtdGFyZ2V0LXN5
c3RlbQogICAgICAgICAgICAgICAgc2VhcmNoLXBhdGgtc3BlY2lmaWNhdGlvbikgICAgICAgICA7
Zm9yIGNvbnZlbmllbmNlCkBAIC00Niw2ICs0Nyw3IEBACiAgICAgICAgICAgICBvcmlnaW4tbWV0
aG9kCiAgICAgICAgICAgICBvcmlnaW4tc2hhMjU2CiAgICAgICAgICAgICBvcmlnaW4tZmlsZS1u
YW1lCisgICAgICAgICAgICBvcmlnaW4tYWN0dWFsLWZpbGUtbmFtZQogICAgICAgICAgICAgb3Jp
Z2luLXBhdGNoZXMKICAgICAgICAgICAgIG9yaWdpbi1wYXRjaC1mbGFncwogICAgICAgICAgICAg
b3JpZ2luLXBhdGNoLWlucHV0cwpAQCAtMTg4LDYgKzE5MCwyNiBAQCByZXByZXNlbnRhdGlvbi4i
CiAgICAgICAoKF8gc3RyKQogICAgICAgICMnKG5peC1iYXNlMzItc3RyaW5nLT5ieXRldmVjdG9y
IHN0cikpKSkpCiAKKyhkZWZpbmUgKG9yaWdpbi1hY3R1YWwtZmlsZS1uYW1lIG9yaWdpbikKKyAg
IlJldHVybiB0aGUgZmlsZSBuYW1lIG9mIE9SSUdJTiwgZWl0aGVyIGl0cyAnZmlsZS1uYW1lJyBm
aWVsZCBvciB0aGUgZmlsZQorbmFtZSBvZiBpdHMgVVJJLiIKKyAgKGRlZmluZSAodXJpLT5maWxl
LW5hbWUgdXJpKQorICAgIDs7IFJldHVybiB0aGUgJ2Jhc2UgbmFtZScgb2YgVVJJIG9yIFVSSSBp
dHNlbGYsIHdoZXJlIFVSSSBpcyBhIHN0cmluZy4KKyAgICAobGV0ICgocGF0aCAoYW5kPT4gKHN0
cmluZy0+dXJpIHVyaSkgdXJpLXBhdGgpKSkKKyAgICAgIChpZiBwYXRoCisgICAgICAgICAgKGJh
c2VuYW1lIHBhdGgpCisgICAgICAgICAgdXJpKSkpCisKKyAgKG9yIChvcmlnaW4tZmlsZS1uYW1l
IG9yaWdpbikKKyAgICAgIChtYXRjaCAob3JpZ2luLXVyaSBvcmlnaW4pCisgICAgICAgICgoaGVh
ZCAuIHRhaWwpCisgICAgICAgICAodXJpLT5maWxlLW5hbWUgaGVhZCkpCisgICAgICAgICgoPyBz
dHJpbmc/IHVyaSkKKyAgICAgICAgICh1cmktPmZpbGUtbmFtZSB1cmkpKQorICAgICAgICAoZWxz
ZQorICAgICAgICAgOzsgZ2l0LCBzdm4sIGN2cywgZXRjLiByZWZlcmVuY2UKKyAgICAgICAgICNm
KSkpKQorCiAoZGVmaW5lICVzdXBwb3J0ZWQtc3lzdGVtcwogICA7OyBUaGlzIGlzIHRoZSBsaXN0
IG9mIHN5c3RlbSB0eXBlcyB0aGF0IGFyZSBzdXBwb3J0ZWQuICBCeSBkZWZhdWx0LCB3ZQogICA7
OyBleHBlY3QgYWxsIHBhY2thZ2VzIHRvIGJ1aWxkIHN1Y2Nlc3NmdWxseSBoZXJlLgpkaWZmIC0t
Z2l0IGEvZ3VpeC9zY3JpcHRzL2dyYXBoLnNjbSBiL2d1aXgvc2NyaXB0cy9ncmFwaC5zY20KaW5k
ZXggMmI2NzFiZS4uY2RkZDYzZSAxMDA2NDQKLS0tIGEvZ3VpeC9zY3JpcHRzL2dyYXBoLnNjbQor
KysgYi9ndWl4L3NjcmlwdHMvZ3JhcGguc2NtCkBAIC0zMyw3ICszMyw2IEBACiAgICM6dXNlLW1v
ZHVsZSAoc3JmaSBzcmZpLTM0KQogICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0zNykKICAgIzp1
c2UtbW9kdWxlIChpY2UtOSBtYXRjaCkKLSAgIzp1c2UtbW9kdWxlICh3ZWIgdXJpKQogICAjOmV4
cG9ydCAoJXBhY2thZ2Utbm9kZS10eXBlCiAgICAgICAgICAgICAlYmFnLW5vZGUtdHlwZQogICAg
ICAgICAgICAgJWJhZy1lbWVyZ2VkLW5vZGUtdHlwZQpAQCAtNzgsMjUgKzc3LDEzIEBACiA7Ozsg
UGFja2FnZSBEQUcuCiA7OzsKIAotKGRlZmluZSAodXJpLT5maWxlLW5hbWUgdXJpKQotICAiUmV0
dXJuIHRoZSAnYmFzZSBuYW1lJyBvZiBVUkkgb3IgVVJJIGl0c2VsZiwgd2hlcmUgVVJJIGlzIGEg
c3RyaW5nLiIKLSAgKGxldCAoKHBhdGggKGFuZD0+IChzdHJpbmctPnVyaSB1cmkpIHVyaS1wYXRo
KSkpCi0gICAgKGlmIHBhdGgKLSAgICAgICAgKGJhc2VuYW1lIHBhdGgpCi0gICAgICAgIHVyaSkp
KQotCiAoZGVmaW5lIChub2RlLWZ1bGwtbmFtZSB0aGluZykKICAgIlJldHVybiBhIGh1bWFuLXJl
YWRhYmxlIG5hbWUgdG8gZGVub3RlIFRISU5HLCBhIHBhY2thZ2UsIG9yaWdpbiwgb3IgZmlsZQog
bmFtZS4iCiAgIChjb25kICgocGFja2FnZT8gdGhpbmcpCiAgICAgICAgICAocGFja2FnZS1mdWxs
LW5hbWUgdGhpbmcpKQogICAgICAgICAoKG9yaWdpbj8gdGhpbmcpCi0gICAgICAgICAob3IgKG9y
aWdpbi1maWxlLW5hbWUgdGhpbmcpCi0gICAgICAgICAgICAgKG1hdGNoIChvcmlnaW4tdXJpIHRo
aW5nKQotICAgICAgICAgICAgICAgKChoZWFkIC4gdGFpbCkKLSAgICAgICAgICAgICAgICAodXJp
LT5maWxlLW5hbWUgaGVhZCkpCi0gICAgICAgICAgICAgICAoKD8gc3RyaW5nPyB1cmkpCi0gICAg
ICAgICAgICAgICAgKHVyaS0+ZmlsZS1uYW1lIHVyaSkpKSkpCisgICAgICAgICAob3JpZ2luLWFj
dHVhbC1maWxlLW5hbWUgdGhpbmcpKQogICAgICAgICAoKHN0cmluZz8gdGhpbmcpICAgICAgICAg
ICAgICAgICAgICAgICAgICA7ZmlsZSBuYW1lCiAgICAgICAgICAob3IgKGJhc2VuYW1lIHRoaW5n
KQogICAgICAgICAgICAgIChlcnJvciAiYmFzZW5hbWUiIHRoaW5nKSkpCi0tIAoyLjQuMwoK
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=0002-guix-lint-Check-for-meaningful-origin-file-names.patch

RnJvbSAwM2MzZjJiMjFhMjQ2NzY3NTA5MjgzMGFlYTJkZGYxOTJlMTMzZmY1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIEJhdmllciA8YmF2aWVyQG1lbWJlci5mc2Yub3JnPgpE
YXRlOiBUaHUsIDEwIFNlcCAyMDE1IDE1OjM0OjU4IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAyLzJd
IGd1aXg6IGxpbnQ6IENoZWNrIGZvciBtZWFuaW5nZnVsIG9yaWdpbiBmaWxlIG5hbWVzLgoKKiBn
dWl4L3NjcmlwdHMvbGludC5zY20gKGNoZWNrLXNvdXJjZS1maWxlLW5hbWUpOiBOZXcgcHJvY2Vk
dXJlLgogICglY2hlY2tlcnMpOiBBZGQgJ3NvdXJjZS1maWxlLW5hbWUnIGNoZWNrZXIuCiogdGVz
dHMvbGludC5zY20gKCJzb3VyY2U6IGZpbGUgbmFtZSIsICJzb3VyY2U6IGZpbGUgbmFtZSB2IikK
ICAoInNvdXJjZTogZmlsZSBuYW1lIHZhbGlkIiwgInNvdXJjZTogZmlsZSBuYW1lIGJhZCBjaGVj
a291dCIpCiAgKCJzb3VyY2U6IGZpbGUgbmFtZSBnb29kIGNoZWNrb3V0Iik6IE5ldyB0ZXN0cy4K
KiBkb2MvZ3VpeC50ZXhpIChJbnZva2luZyBndWl4IGxpbnQpOiBNZW50aW9uIGZpbGUgbmFtZSBj
aGVjay4KLS0tCiBkb2MvZ3VpeC50ZXhpICAgICAgICAgfCAgNSArKystCiBndWl4L3NjcmlwdHMv
bGludC5zY20gfCA3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t
LS0tLQogdGVzdHMvbGludC5zY20gICAgICAgIHwgODAgKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDEzMyBpbnNlcnRp
b25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvZ3VpeC50ZXhpIGIvZG9j
L2d1aXgudGV4aQppbmRleCA5YWU5MWE4Li42YzU2M2E5IDEwMDY0NAotLS0gYS9kb2MvZ3VpeC50
ZXhpCisrKyBiL2RvYy9ndWl4LnRleGkKQEAgLTQyMTcsOCArNDIxNywxMSBAQCBJZGVudGlmeSBp
bnB1dHMgdGhhdCBzaG91bGQgbW9zdCBsaWtlbHkgYmUgbmF0aXZlIGlucHV0cy4KIAogQGl0ZW0g
c291cmNlCiBAaXRlbXggaG9tZS1wYWdlCitAaXRlbXggc291cmNlLWZpbGUtbmFtZQogUHJvYmUg
QGNvZGV7aG9tZS1wYWdlfSBhbmQgQGNvZGV7c291cmNlfSBVUkxzIGFuZCByZXBvcnQgdGhvc2Ug
dGhhdCBhcmUKLWludmFsaWQuCitpbnZhbGlkLiAgQ2hlY2sgdGhhdCB0aGUgc291cmNlIGZpbGUg
bmFtZSBpcyBtZWFuaW5nZnVsLCBlLmcuIGlzIG5vdAoranVzdCBhIHZlcnNpb24gbnVtYmVyIG9y
IGBgZ2l0LWNoZWNrb3V0JycsIGFuZCBzaG91bGQgbm90IGhhdmUgYQorQGNvZGV7ZmlsZS1uYW1l
fSBkZWNsYXJlZCAoQHB4cmVme29yaWdpbiBSZWZlcmVuY2V9KS4KIAogQGl0ZW0gZm9ybWF0dGlu
ZwogV2FybiBhYm91dCBvYnZpb3VzIHNvdXJjZSBjb2RlIGZvcm1hdHRpbmcgaXNzdWVzOiB0cmFp
bGluZyB3aGl0ZSBzcGFjZSwKZGlmZiAtLWdpdCBhL2d1aXgvc2NyaXB0cy9saW50LnNjbSBiL2d1
aXgvc2NyaXB0cy9saW50LnNjbQppbmRleCAyYTYxOGM5Li42YWRlYTE0IDEwMDY0NAotLS0gYS9n
dWl4L3NjcmlwdHMvbGludC5zY20KKysrIGIvZ3VpeC9zY3JpcHRzL2xpbnQuc2NtCkBAIC0xLDYg
KzEsNiBAQAogOzs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBm
b3IgR05VCiA7OzsgQ29weXJpZ2h0IMKpIDIwMTQgQ3lyaWwgUm9lbGFuZHQgPHRpcGVjYW1sQGdt
YWlsLmNvbT4KLTs7OyBDb3B5cmlnaHQgwqkgMjAxNCBFcmljIEJhdmllciA8YmF2aWVyQG1lbWJl
ci5mc2Yub3JnPgorOzs7IENvcHlyaWdodCDCqSAyMDE0LCAyMDE1IEVyaWMgQmF2aWVyIDxiYXZp
ZXJAbWVtYmVyLmZzZi5vcmc+CiA7OzsgQ29weXJpZ2h0IMKpIDIwMTMsIDIwMTQsIDIwMTUgTHVk
b3ZpYyBDb3VydMOocyA8bHVkb0BnbnUub3JnPgogOzs7CiA7OzsgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgR05VIEd1aXguCkBAIC01Nyw2ICs1Nyw3IEBACiAgICAgICAgICAgICBjaGVjay1kZXJpdmF0
aW9uCiAgICAgICAgICAgICBjaGVjay1ob21lLXBhZ2UKICAgICAgICAgICAgIGNoZWNrLXNvdXJj
ZQorICAgICAgICAgICAgY2hlY2stc291cmNlLWZpbGUtbmFtZQogICAgICAgICAgICAgY2hlY2st
bGljZW5zZQogICAgICAgICAgICAgY2hlY2stZm9ybWF0dGluZwogCkBAIC00NzYsMzAgKzQ3Nyw1
MCBAQCBkZXNjcmlwdGlvbnMgbWFpbnRhaW5lZCB1cHN0cmVhbS4iCiAgICAgICAnKCkpKQogCiAg
IChsZXQgKChvcmlnaW4gKHBhY2thZ2Utc291cmNlIHBhY2thZ2UpKSkKLSAgICAod2hlbiAoYW5k
IG9yaWdpbgotICAgICAgICAgICAgICAgKGVxdj8gKG9yaWdpbi1tZXRob2Qgb3JpZ2luKSB1cmwt
ZmV0Y2gpKQotICAgICAgKGxldCogKChzdHJpbmdzIChvcmlnaW4tdXJpIG9yaWdpbikpCi0gICAg
ICAgICAgICAgKHVyaXMgKGlmIChsaXN0PyBzdHJpbmdzKQotICAgICAgICAgICAgICAgICAgICAg
ICAobWFwIHN0cmluZy0+dXJpIHN0cmluZ3MpCi0gICAgICAgICAgICAgICAgICAgICAgIChsaXN0
IChzdHJpbmctPnVyaSBzdHJpbmdzKSkpKSkKLQotICAgICAgICA7OyBKdXN0IG1ha2Ugc3VyZSB0
aGF0IGF0IGxlYXN0IG9uZSBvZiB0aGUgVVJJcyBpcyB2YWxpZC4KLSAgICAgICAgKGNhbGwtd2l0
aC12YWx1ZXMKLSAgICAgICAgICAgIChsYW1iZGEgKCkgKHRyeS11cmlzIHVyaXMpKQotICAgICAg
ICAgIChsYW1iZGEgKHN1Y2Nlc3M/IHdhcm5pbmdzKQotICAgICAgICAgICAgOzsgV2hlbiBldmVy
eXRoaW5nIGZhaWxzLCByZXBvcnQgYWxsIG9mIFdBUk5JTkdTLCBvdGhlcndpc2UgZG9uJ3QKLSAg
ICAgICAgICAgIDs7IHJlcG9ydCBhbnl0aGluZy4KLSAgICAgICAgICAgIDs7Ci0gICAgICAgICAg
ICA7OyBYWFg6IElkZWFsbHkgd2UnZCBzdGlsbCBhbGxvdyB3YXJuaW5ncyB0byBiZSByYWlzZWQg
aWYgKnNvbWUqCi0gICAgICAgICAgICA7OyBVUklzIGFyZSB1bnJlYWNoYWJsZSwgYnV0IGRpc3Rp
bmd1aXNoIHRoYXQgZnJvbSB0aGUgZXJyb3IgY2FzZQotICAgICAgICAgICAgOzsgd2hlcmUgKmFs
bCogdGhlIFVSSXMgYXJlIHVucmVhY2hhYmxlLgotICAgICAgICAgICAgKHVubGVzcyBzdWNjZXNz
PwotICAgICAgICAgICAgICAoZW1pdC13YXJuaW5nIHBhY2thZ2UKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoXyAiYWxsIHRoZSBzb3VyY2UgVVJJcyBhcmUgdW5yZWFjaGFibGU6IikKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnc291cmNlKQotICAgICAgICAgICAgICAoZm9yLWVh
Y2ggKGxhbWJkYSAod2FybmluZykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXkg
d2FybmluZyAoZ3VpeC13YXJuaW5nLXBvcnQpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIChy
ZXZlcnNlIHdhcm5pbmdzKSkpKSkpKSkpCisgICAgKHdoZW4gb3JpZ2luCisgICAgICAoaWYgKGVx
dj8gKG9yaWdpbi1tZXRob2Qgb3JpZ2luKSB1cmwtZmV0Y2gpCisgICAgICAgICAgKGxldCogKChz
dHJpbmdzIChvcmlnaW4tdXJpIG9yaWdpbikpCisgICAgICAgICAgICAgICAgICh1cmlzIChpZiAo
bGlzdD8gc3RyaW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXAgc3RyaW5nLT51
cmkgc3RyaW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IChzdHJpbmctPnVy
aSBzdHJpbmdzKSkpKSkKKworICAgICAgICAgICAgOzsgSnVzdCBtYWtlIHN1cmUgdGhhdCBhdCBs
ZWFzdCBvbmUgb2YgdGhlIFVSSXMgaXMgdmFsaWQuCisgICAgICAgICAgICAoY2FsbC13aXRoLXZh
bHVlcworICAgICAgICAgICAgICAgIChsYW1iZGEgKCkgKHRyeS11cmlzIHVyaXMpKQorICAgICAg
ICAgICAgICAobGFtYmRhIChzdWNjZXNzPyB3YXJuaW5ncykKKyAgICAgICAgICAgICAgICA7OyBX
aGVuIGV2ZXJ5dGhpbmcgZmFpbHMsIHJlcG9ydCBhbGwgb2YgV0FSTklOR1MsIG90aGVyd2lzZSBk
b24ndAorICAgICAgICAgICAgICAgIDs7IHJlcG9ydCBhbnl0aGluZy4KKyAgICAgICAgICAgICAg
ICA7OworICAgICAgICAgICAgICAgIDs7IFhYWDogSWRlYWxseSB3ZSdkIHN0aWxsIGFsbG93IHdh
cm5pbmdzIHRvIGJlIHJhaXNlZCBpZiAqc29tZSoKKyAgICAgICAgICAgICAgICA7OyBVUklzIGFy
ZSB1bnJlYWNoYWJsZSwgYnV0IGRpc3Rpbmd1aXNoIHRoYXQgZnJvbSB0aGUgZXJyb3IgY2FzZQor
ICAgICAgICAgICAgICAgIDs7IHdoZXJlICphbGwqIHRoZSBVUklzIGFyZSB1bnJlYWNoYWJsZS4K
KyAgICAgICAgICAgICAgICAodW5sZXNzIHN1Y2Nlc3M/CisgICAgICAgICAgICAgICAgICAoZW1p
dC13YXJuaW5nIHBhY2thZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF8gImFs
bCB0aGUgc291cmNlIFVSSXMgYXJlIHVucmVhY2hhYmxlOiIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdzb3VyY2UpCisgICAgICAgICAgICAgICAgICAoZm9yLWVhY2ggKGxhbWJk
YSAod2FybmluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwbGF5IHdhcm5p
bmcgKGd1aXgtd2FybmluZy1wb3J0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJl
dmVyc2Ugd2FybmluZ3MpKSkpKSkpKSkpCisKKyhkZWZpbmUgKGNoZWNrLXNvdXJjZS1maWxlLW5h
bWUgcGFja2FnZSkKKyAgIkVtaXQgYSB3YXJuaW5nIGlmIFBBQ0tBR0UncyBvcmlnaW4gaGFzIGEg
dmVyc2lvbi1vbmx5IGZpbGUgbmFtZS4iCisgIChkZWZpbmUgKG9yaWdpbi1maWxlLW5hbWUtdmFs
aWQ/IG9yaWdpbikKKyAgICA7OyBSZXR1cm4gI3QgaWYgdGhlIHNvdXJjZSBmaWxlIG5hbWUgY29u
dGFpbnMgb25seSBhIHZlcnNpb247IGluZGljYXRlcworICAgIDs7IHRoYXQgdGhlIG9yaWdpbiBu
ZWVkcyBhICdmaWxlLW5hbWUnIGZpZWxkLgorICAgIChsZXQgKChmaWxlLW5hbWUgKG9yaWdpbi1h
Y3R1YWwtZmlsZS1uYW1lIG9yaWdpbikpCisgICAgICAgICAgKHZlcnNpb24gKHBhY2thZ2UtdmVy
c2lvbiBwYWNrYWdlKSkpCisgICAgICAoYW5kIGZpbGUtbmFtZQorICAgICAgICAgICAobm90IChv
ciAoc3RyaW5nLXByZWZpeD8gdmVyc2lvbiBmaWxlLW5hbWUpCisgICAgICAgICAgICAgICAgICAg
IDs7IENvbW1vbiBpbiBtYW55IHByb2plY3RzIGlzIGZvciB0aGUgZmlsZW5hbWUgdG8gc3RhcnQK
KyAgICAgICAgICAgICAgICAgICAgOzsgd2l0aCBhICJ2IiBmb2xsb3dlZCBieSB0aGUgdmVyc2lv
biwKKyAgICAgICAgICAgICAgICAgICAgOzsgZS5nLiAidjMuMi4wLnRhci5neiIuCisgICAgICAg
ICAgICAgICAgICAgIChzdHJpbmctcHJlZml4PyAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikg
ZmlsZS1uYW1lKSkpKSkpCisKKyAgKGxldCAoKG9yaWdpbiAocGFja2FnZS1zb3VyY2UgcGFja2Fn
ZSkpKQorICAgICh1bmxlc3MgKG9yIChub3Qgb3JpZ2luKSAob3JpZ2luLWZpbGUtbmFtZS12YWxp
ZD8gb3JpZ2luKSkKKyAgICAgIChlbWl0LXdhcm5pbmcgcGFja2FnZQorICAgICAgICAgICAgICAg
ICAgICAoXyAidGhlIHNvdXJjZSBmaWxlIG5hbWUgc2hvdWxkIGNvbnRhaW4gdGhlIHBhY2thZ2Ug
bmFtZSIpCisgICAgICAgICAgICAgICAgICAgICdzb3VyY2UpKSkpCiAKIChkZWZpbmUgKGNoZWNr
LWRlcml2YXRpb24gcGFja2FnZSkKICAgIkVtaXQgYSB3YXJuaW5nIGlmIHdlIGZhaWwgdG8gY29t
cGlsZSBQQUNLQUdFIHRvIGEgZGVyaXZhdGlvbi4iCkBAIC02NDMsNiArNjY0LDEwIEBAIG9yIGEg
bGlzdCB0aGVyZW9mIikKICAgICAgKGRlc2NyaXB0aW9uICJWYWxpZGF0ZSBzb3VyY2UgVVJMcyIp
CiAgICAgIChjaGVjayAgICAgICBjaGVjay1zb3VyY2UpKQogICAgKGxpbnQtY2hlY2tlcgorICAg
ICAobmFtZSAgICAgICAgJ3NvdXJjZS1maWxlLW5hbWUpCisgICAgIChkZXNjcmlwdGlvbiAiVmFs
aWRhdGUgZmlsZSBuYW1lcyBvZiBzb3VyY2VzIikKKyAgICAgKGNoZWNrICAgICAgIGNoZWNrLXNv
dXJjZS1maWxlLW5hbWUpKQorICAgKGxpbnQtY2hlY2tlcgogICAgICAobmFtZSAgICAgICAgJ2Rl
cml2YXRpb24pCiAgICAgIChkZXNjcmlwdGlvbiAiUmVwb3J0IGZhaWx1cmUgdG8gY29tcGlsZSBh
IHBhY2thZ2UgdG8gYSBkZXJpdmF0aW9uIikKICAgICAgKGNoZWNrICAgICAgIGNoZWNrLWRlcml2
YXRpb24pKQpkaWZmIC0tZ2l0IGEvdGVzdHMvbGludC5zY20gYi90ZXN0cy9saW50LnNjbQppbmRl
eCBhYzQ3ZGJiLi4yZmFjMjg0IDEwMDY0NAotLS0gYS90ZXN0cy9saW50LnNjbQorKysgYi90ZXN0
cy9saW50LnNjbQpAQCAtMSw2ICsxLDYgQEAKIDs7OyBHTlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBw
YWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQogOzs7IENvcHlyaWdodCDCqSAyMDEyLCAyMDEzIEN5
cmlsIFJvZWxhbmR0IDx0aXBlY2FtbEBnbWFpbC5jb20+Ci07OzsgQ29weXJpZ2h0IMKpIDIwMTQg
RXJpYyBCYXZpZXIgPGJhdmllckBtZW1iZXIuZnNmLm9yZz4KKzs7OyBDb3B5cmlnaHQgwqkgMjAx
NCwgMjAxNSBFcmljIEJhdmllciA8YmF2aWVyQG1lbWJlci5mc2Yub3JnPgogOzs7IENvcHlyaWdo
dCDCqSAyMDE0LCAyMDE1IEx1ZG92aWMgQ291cnTDqHMgPGx1ZG9AZ251Lm9yZz4KIDs7OwogOzs7
IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgpAQCAtMjEsNiArMjEsNyBAQAogKGRlZmlu
ZS1tb2R1bGUgKHRlc3QtbGludCkKICAgIzp1c2UtbW9kdWxlIChndWl4IHRlc3RzKQogICAjOnVz
ZS1tb2R1bGUgKGd1aXggZG93bmxvYWQpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBnaXQtZG93bmxv
YWQpCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gZ251KQogICAjOnVzZS1tb2R1
bGUgKGd1aXggcGFja2FnZXMpCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBzY3JpcHRzIGxpbnQpCkBA
IC0zOTgsNiArMzk5LDgzIEBAIHJlcXVlc3RzLiIKICAgICAgICAgICAoY2hlY2staG9tZS1wYWdl
IHBrZykpKSkKICAgICAibm90IHJlYWNoYWJsZTogNDA0IikpKQogCisodGVzdC1hc3NlcnQgInNv
dXJjZTogZmlsZSBuYW1lIgorICAoLT5ib29sCisgICAoc3RyaW5nLWNvbnRhaW5zCisgICAgKHdp
dGgtd2FybmluZ3MKKyAgICAgIChsZXQgKChwa2cgKGR1bW15LXBhY2thZ2UgIngiCisgICAgICAg
ICAgICAgICAgICAgKHZlcnNpb24gIjMuMi4xIikKKyAgICAgICAgICAgICAgICAgICAoc291cmNl
CisgICAgICAgICAgICAgICAgICAgIChvcmlnaW4KKyAgICAgICAgICAgICAgICAgICAgICAobWV0
aG9kIHVybC1mZXRjaCkKKyAgICAgICAgICAgICAgICAgICAgICAodXJpICJodHRwOi8vd3d3LmV4
YW1wbGUuY29tLzMuMi4xLnRhci5neiIpCisgICAgICAgICAgICAgICAgICAgICAgKHNoYTI1NiAl
bnVsbC1zaGEyNTYpKSkpKSkKKyAgICAgICAgKGNoZWNrLXNvdXJjZS1maWxlLW5hbWUgcGtnKSkp
CisgICAgImZpbGUgbmFtZSBzaG91bGQgY29udGFpbiB0aGUgcGFja2FnZSBuYW1lIikpKQorCiso
dGVzdC1hc3NlcnQgInNvdXJjZTogZmlsZSBuYW1lIHYiCisgICgtPmJvb2wKKyAgIChzdHJpbmct
Y29udGFpbnMKKyAgICAod2l0aC13YXJuaW5ncworICAgICAgKGxldCAoKHBrZyAoZHVtbXktcGFj
a2FnZSAieCIKKyAgICAgICAgICAgICAgICAgICAodmVyc2lvbiAiMy4yLjEiKQorICAgICAgICAg
ICAgICAgICAgIChzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgKG9yaWdpbgorICAgICAgICAg
ICAgICAgICAgICAgIChtZXRob2QgdXJsLWZldGNoKQorICAgICAgICAgICAgICAgICAgICAgICh1
cmkgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vdjMuMi4xLnRhci5neiIpCisgICAgICAgICAgICAg
ICAgICAgICAgKHNoYTI1NiAlbnVsbC1zaGEyNTYpKSkpKSkKKyAgICAgICAgKGNoZWNrLXNvdXJj
ZS1maWxlLW5hbWUgcGtnKSkpCisgICAgImZpbGUgbmFtZSBzaG91bGQgY29udGFpbiB0aGUgcGFj
a2FnZSBuYW1lIikpKQorCisodGVzdC1hc3NlcnQgInNvdXJjZTogZmlsZSBuYW1lIGJhZCBjaGVj
a291dCIKKyAgKC0+Ym9vbAorICAgKHN0cmluZy1jb250YWlucworICAgICh3aXRoLXdhcm5pbmdz
CisgICAgICAobGV0ICgocGtnIChkdW1teS1wYWNrYWdlICJ4IgorICAgICAgICAgICAgICAgICAg
ICh2ZXJzaW9uICIzLjIuMSIpCisgICAgICAgICAgICAgICAgICAgKHNvdXJjZQorICAgICAgICAg
ICAgICAgICAgICAob3JpZ2luCisgICAgICAgICAgICAgICAgICAgICAgKG1ldGhvZCBnaXQtZmV0
Y2gpCisgICAgICAgICAgICAgICAgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh1cmwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20veC5naXQiKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21taXQgIjAiKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgKHNoYTI1NiAlbnVsbC1zaGEyNTYpKSkpKSkKKyAgICAgICAgKGNoZWNrLXNvdXJj
ZS1maWxlLW5hbWUgcGtnKSkpCisgICAgImZpbGUgbmFtZSBzaG91bGQgY29udGFpbiB0aGUgcGFj
a2FnZSBuYW1lIikpKQorCisodGVzdC1hc3NlcnQgInNvdXJjZTogZmlsZSBuYW1lIGdvb2QgY2hl
Y2tvdXQiCisgIChub3QKKyAgICgtPmJvb2wKKyAgICAoc3RyaW5nLWNvbnRhaW5zCisgICAgICh3
aXRoLXdhcm5pbmdzCisgICAgICAgKGxldCAoKHBrZyAoZHVtbXktcGFja2FnZSAieCIKKyAgICAg
ICAgICAgICAgICAgICAgKHZlcnNpb24gIjMuMi4xIikKKyAgICAgICAgICAgICAgICAgICAgKHNv
dXJjZQorICAgICAgICAgICAgICAgICAgICAgKG9yaWdpbgorICAgICAgICAgICAgICAgICAgICAg
ICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgKHVyaSAoZ2l0LXJl
ZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodXJsICJodHRwOi8vZ2l0LmV4
YW1wbGUuY29tL3guZ2l0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbW1pdCAi
MCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUtbmFtZSAoc3RyaW5nLWFwcGVuZCAi
eC0iIHZlcnNpb24pKQorICAgICAgICAgICAgICAgICAgICAgICAoc2hhMjU2ICVudWxsLXNoYTI1
NikpKSkpKQorICAgICAgICAgKGNoZWNrLXNvdXJjZS1maWxlLW5hbWUgcGtnKSkpCisgICAgICJm
aWxlIG5hbWUgc2hvdWxkIGNvbnRhaW4gdGhlIHBhY2thZ2UgbmFtZSIpKSkpCisKKyh0ZXN0LWFz
c2VydCAic291cmNlOiBmaWxlIG5hbWUgdmFsaWQiCisgIChub3QKKyAgICgtPmJvb2wKKyAgICAo
c3RyaW5nLWNvbnRhaW5zCisgICAgICh3aXRoLXdhcm5pbmdzCisgICAgICAgKGxldCAoKHBrZyAo
ZHVtbXktcGFja2FnZSAieCIKKyAgICAgICAgICAgICAgICAgICAgKHZlcnNpb24gIjMuMi4xIikK
KyAgICAgICAgICAgICAgICAgICAgKHNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgKG9yaWdp
bgorICAgICAgICAgICAgICAgICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgKHVyaSAiaHR0cDovL3d3dy5leGFtcGxlLmNvbS94LTMuMi4xLnRhci5neiIp
CisgICAgICAgICAgICAgICAgICAgICAgIChzaGEyNTYgJW51bGwtc2hhMjU2KSkpKSkpCisgICAg
ICAgICAoY2hlY2stc291cmNlLWZpbGUtbmFtZSBwa2cpKSkKKyAgICAgImZpbGUgbmFtZSBzaG91
bGQgY29udGFpbiB0aGUgcGFja2FnZSBuYW1lIikpKSkKKwogKHRlc3Qtc2tpcCAoaWYgJWh0dHAt
c2VydmVyLXNvY2tldCAwIDEpKQogKHRlc3QtZXF1YWwgInNvdXJjZTogMjAwIgogICAiIgotLSAK
Mi40LjMKCg==

reply via email to

[Prev in Thread] Current Thread [Next in Thread]